菜单

插屏广告

1. 插屏广告抽象方法实现以及广告事件回调

1.1 插屏广告需要额外实现的抽象方法

抽象方法参数说明返回值作用是否必须实现
isAdReady-boolean用于判断自定义广告平台的插屏广告是否已经是准备完成的状态
showActivity activity:Activity的上下文void实现展示自定义广告平台插屏的逻辑

1.2 插屏广告事件回调

使用CustomInterstitialAdapter的CustomInterstitialEventListene成员变量实现广告事件的回调


回调方法参数说明说明
onInterstitialAdVideoStart-广告视频播放开始时执行回调给开发者
onInterstitialAdVideoEnd-广告视频播放结束时执行回调给开发者
onInterstitialAdVideoErrorString errorCode: 错误码信息 String errorMsg: 详细错误信息广告视频播放失败时执行回调给开发者
onInterstitialAdClose-广告页面关闭时执行回调给开发者
onInterstitialAdClicked-广告被点击时执行回调给开发者
onInterstitialAdShow-广告页面打开时执行回调给开发者

注意:使用成员变量CustomInterstitialEventListene时候需要做判空处理,因为聚合SDK内部有可能会回收该Listener对象

1.3 示例代码

public class FacebookInterstitialAdapter extends CustomInterstitialAdapter {

    InterstitialAd mInterstitialAd;
    String mUnitid;
    String mPayload;

    /***
     * load ad
     */
    private void startLoad(final Context context) {

        final InterstitialAdListener interstitialAdListener = new InterstitialAdListener() {

            @Override
            public void onError(Ad ad, AdError adError) {
                if (mLoadListener != null) {
                    mLoadListener.onAdLoadError(adError.getErrorCode() + "", "" + adError.getErrorMessage());
                }
            }

            @Override
            public void onAdLoaded(Ad ad) {
                if (mLoadListener != null) {
                    mLoadListener.onAdCacheLoaded();
                }
            }

            @Override
            public void onAdClicked(Ad ad) {
                if (mImpressListener != null) {
                    mImpressListener.onInterstitialAdClicked();
                }
            }

            @Override
            public void onLoggingImpression(Ad ad) {
            }

            @Override
            public void onInterstitialDisplayed(Ad ad) {
                if (mImpressListener != null) {
                    mImpressListener.onInterstitialAdShow();
                }
            }

            @Override
            public void onInterstitialDismissed(Ad ad) {
                if (mImpressListener != null) {
                    mImpressListener.onInterstitialAdClose();
                }
            }
        };

        mInterstitialAd = new InterstitialAd(context.getApplicationContext(), mUnitid);
        // Load a new interstitial.
        final InterstitialAd.InterstitialAdLoadConfigBuilder adConfig = mInterstitialAd.buildLoadAdConfig()
                .withAdListener(interstitialAdListener);

        if (!TextUtils.isEmpty(mPayload)) {
            adConfig.withBid(mPayload);
        }

        mInterstitialAd.loadAd(adConfig.build());
    }

    @Override
    public void destory() {
        try {
            if (mInterstitialAd != null) {
                mInterstitialAd.setAdListener(null);
                mInterstitialAd.destroy();
                mInterstitialAd = null;
            }
        } catch (Exception e) {
        }
    }

    @Override
    public void loadCustomNetworkAd(Context context, Map<String, Object> serverExtras, Map<String, Object> localExtras) {

        if (serverExtras.containsKey("unit_id")) {
            mUnitid = (String) serverExtras.get("unit_id");
        } else {
            if (mLoadListener != null) {
                mLoadListener.onAdLoadError("", "facebook sdkkey is empty.");
            }
            return;
        }

        if (serverExtras.containsKey("payload")) {
            mPayload = serverExtras.get("payload").toString();
        }

        FacebookInitManager.getInstance().initSDK(context.getApplicationContext(), serverExtras);
        startLoad(context);
    }

    @Override
    public boolean isAdReady() {
        if (mInterstitialAd == null || !mInterstitialAd.isAdLoaded()) {
            return false;
        }

        if (mInterstitialAd.isAdInvalidated()) {
            return false;
        }

        return true;
    }

    @Override
    public boolean setUserDataConsent(Context context, boolean isConsent, boolean isEUTraffic) {
        return false;
    }

    @Override
    public void show(Activity activity) {
        if (mInterstitialAd != null) {
            mInterstitialAd.show();
        }
    }

    @Override
    public String getNetworkSDKVersion() {
        return FacebookInitManager.getInstance().getNetworkVersion();
    }

    @Override
    public String getNetworkName() {
        return FacebookInitManager.getInstance().getNetworkName();
    }

    @Override
    public String getNetworkPlacementId() {
        return mUnitid;
    }
}


上一个
激励视频
下一个
横幅广告
最近修改: 2025-05-30Powered by