广告加载状态:
// 广告状态标志位mAdLoadStatus =AD_STATUS_READY // 广告加载成功AD_STATUS_FAILED // 广告失效
- banner:
banner广告中,只有两处控制广告加载状态: ```java // 广告加载成功 onAdReady() { mAdLoadStatus = AD_STATUS_READY } // 广告加载失败 onAdFailed() { mAdLoadStatus = AD_STATUS_FAILED }
// 使用处 showAd() { if (mAdLoadStatus == AD_STATUS_READY) { // 广告状态正常,正常展示,上报埋点 } else if (mAdLoadStatus == AD_STATUS_FAILED) { // 广告加载失败,callback错误 callbackError(); } }
2.
插屏广告:
<br />插屏广告中,也只有两处控制广告加载状态:
```java
// 广告加载成功
onAdReady() {
mAdLoadStatus = AD_STATUS_READY
}
// 广告加载失败
onAdFailed() {
mAdLoadStatus = AD_STATUS_FAILED
}
// 使用处 1
showInterstialAd() {
if (mAdLoadStatus == AD_STATUS_READY) {
// 正常展示,上报埋点
} else if (mAdLoadStatus == AD_STATUS_FAILED) {
callbackError()
}
}
// 使用处 2
load() {
if (mAdLoadStatus == AD_STATUS_READY) {
// 广告已加载,不再重新加载
request.getCallback().callback(Response.SUCCESS);
runCallbackContext(EVENT_LOAD, CODE_ON_LOAD, null);
} else {
if (mAdLoadStatus != AD_STATUS_DEFAULT_NO_RESPONED) {
// 广告未加载,加载广告
if (mInsertAdRef != null && mInsertAdRef.get() != null) {
mInsertAdRef.get().load();
}
}
}
- 激励视频
在激励视频广告中,多处控制广告状态: ```java onAdLoad() { mAdLoadStatus = AD_STATUS_READY; } onAdFailed() { mAdLoadStatus = AD_STATUS_FAILED; }
onVideoClose() { mAdLoadStatus = AD_STATUS_FAILED; //当前广告播放完毕,本地广告失效,提示 CP 去手动刷新广告 }
onVideoClose() { mAdLoadStatus = AD_STATUS_FAILED; //当前广告播放完毕,本地广告失效,提示 CP 去手动刷新广告 }
onVideoError() { mAdLoadStatus = AD_STATUS_FAILED; //当前广告播放完毕,本地广告失效,提示 CP 去手动刷新广告 }
// 使用处:1 showRewardedAd() { if (mAdLoadStatus != AD_STATUS_READY || mVideoAdResponse == null || hasBeenPlayed) { // 广告未准备好,callbackError callbackError(); return; } }
// 使用处:2 loadRewardedAd() { // 广告已Ready,无需重新加载,直接返回Success if (mAdLoadStatus == AD_STATUS_READY && !hasBeenPlayed) { request.getCallback().callback(Response.SUCCESS); runCallbackContext(EVENT_LOAD, CODE_ON_LOAD, null); return; } // 否则加载广告 mVivoVideoAd.loadAd(); }
4.
原生广告:
```java
onADLoaded() {
mAdLoadStatus = AD_STATUS_READY;
// 若Response json解析错误 设置为AD_STATUS_FAILED
}
onNOAD() {
mAdLoadStatus = AD_STATUS_FAILED; // 无广告,AD_STATUS_FAILED
}
// 上报曝光或者上报点击后,失效
reportAdClick()
reportAdShow() {
mAdLoadStatus = AD_STATUS_FAILED; // 设置失效,下次重新加载新广告
}
