插屏广告 - sunitsdk/SUnitDemo GitHub Wiki

下述参数中的unitId对应各家广告源生成的「Unit Space ID」,可协同SHAREit服务对接人获取

1. loadAd

InterstitialAd.loadAd(String unitId);

2. isAdReady

此接口必须要在主线程中调用

//scene 广告展示的场景
InterstitialAd.isAdReady(String unitId, String scene)

特殊场景:如果业务需要循环调用此方法检测广告缓存,或其他方式使用此方法(不是用来展示广告),避免产生不必要的数据,scene规定为 ShareItAd.LOOP
插屏并不推荐在非showAd时机调用此方法判断可见性,理论上插屏只需要在展示前判断一次即可。

InterstitialAd.isAdReady(unitId, ShareItAd.LOOP);

scene需要传入,方便做数据分析

3. showAd 展示

此接口必须要在主线程中调用

目前提供了两种展示模式:

  • SDK管理广告缓存(推荐)(需配合isAdReady使用,loadAd时不带adLoadListener参数)
InterstitialAd.showAd(String unitId, IAdShowListener adShowListener)

SDK将根据unitId查找已有的缓存对象,无缓存时将展示失败(配合isAdReady使用)
示例:

//load        
InterstitialAd.loadAd(unitId, null);

//show
if (InterstitialAd.isAdReady(unitId, scene)) {
    InterstitialAd.showAd(unitId, null);
}
  • 接入方自己管理缓存(loadAd时带adLoadListener参数)
InterstitialAd.showAd(AdWrapper adWrapper, IAdShowListener adShowListener)

可以将缓存的广告对象直接进行展示. 广告对象过期或被销毁等情况将展示失败(需配合adLoadListenner使用)
示例:

InterstitialAd.loadAd(unitId, new IAdLoadListener() {
    @Override
    public void onAdLoaded(String unitId, AdWrapper adWrapper) {
        InterstitialAd.showAd(adWrapper, null);
    }

    @Override
    public void onAdError(String unitId, AdException adError) {
    }
});
⚠️ **GitHub.com Fallback** ⚠️