广告加载状态:

  1. // 广告状态标志位
  2. mAdLoadStatus =
  3. AD_STATUS_READY // 广告加载成功
  4. AD_STATUS_FAILED // 广告失效
  1. 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();
                }
            } 
}
  1. 激励视频
    在激励视频广告中,多处控制广告状态: ```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;    // 设置失效,下次重新加载新广告
}