💡Tips
- 🚀 采用预加载机制提升用户体验
- ⚠️ 注意处理生命周期防止内存泄漏
- 🔧 推荐使用标准化回调处理流程
MCRewardedAd mRewardVideoAd = new MCRewardedAd(activity, "your mediation unit id");
mRewardVideoAd.setListener(new MCRewardedAdListener() {
@Override
public void onUserRewarded(MCAdInfo mcAdInfo, MCReward mcReward) {
// 激励触发回调
}
@Override
public void onUserRewardFailed(MCAdInfo mcAdInfo) {
// 激励触发失败回调
}
@Override
public void onRewardedVideoStarted(MCAdInfo mcAdInfo) {
// 视频开始播放回调
}
@Override
public void onRewardedVideoCompleted(MCAdInfo mcAdInfo) {
// 视频播放完成回调
}
@Override
public void onAdLoaded(MCAdInfo mcAdInfo) {
// 加载成功回调
// 重置重试加载次数
retryAttempt = 0;
}
@Override
public void onAdDisplayed(MCAdInfo mcAdInfo) {
// 展示成功回调
// pre-load
mRewardVideoAd.loadAd();
}
@Override
public void onAdHidden(MCAdInfo mcAdInfo) {
// 广告关闭回调
// pre-load
mRewardVideoAd.loadAd();
}
@Override
public void onAdClicked(MCAdInfo mcAdInfo) {
// 触发点击回调
}
@Override
public void onAdLoadFailed(MCError mcError) {
// 加载失败回调
// 我们建议您按照指数递增的方式延长重试间隔,直到达到最大延迟时间(本例为 8 秒)或最大重试次数(本例为 3 次)
if (retryAttempt >= 3) return;
retryAttempt++;
long delayMillis = TimeUnit.SECONDS.toMillis((long) Math.pow(2, Math.min(3, retryAttempt)));
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mRewardVideoAd.loadAd();
}
}, delayMillis);
}
@Override
public void onAdDisplayFailed(MCAdInfo mcAdInfo, MCError mcError) {
// 展示失败回调
// pre-load
mRewardVideoAd.loadAd();
}
});
mRewardVideoAd.setRevenueListener(new MCAdRevenueListener() {
@Override
public void onAdRevenuePaid(MCAdInfo adInfo) {
// 可在此回调获取广告收益
}
});
mRewardVideoAd.loadAd();
if (mRewardVideoAd.isAdReady()) {
mRewardVideoAd.showAd(activity, null);
} else {
mRewardVideoAd.load();
}
if (mRewardVideoAd != null) {
mRewardVideoAd.destroy();
}
MCRewardedAd mRewardVideoAd = new MCRewardedAd(activity, "your mediation unit id");
String userid = "test_userid_001";
String userdata = "test_userdata_001";
Map<String, Object> localMap = new HashMap<>();
localMap.put(MCAdConst.KEY.USER_ID, userid);
localMap.put(MCAdConst.KEY.USER_CUSTOM_DATA, userdata);
mRewardVideoAd.setLoadExtraParameter(localMap);
Map<String, String> extraParameter = new HashMap<>();
extraParameter.put("test_extra_key", "test_extra_value");
mRewardVideoAd.setExtraParameter(extraParameter);
mRewardVideoAd.setListener(new MCRewardedAdListener() {
...
@Override
public void onAdLoaded(MCAdInfo mcAdInfo) {
// 获取自定义参数
mcAdInfo.getOriginJsonString();
}
...
});
mRewardVideoAd.loadAd();