跳至主要內容

插屏广告

大约 3 分钟

插屏广告

概述

插屏广告是移动广告的一种常见形式,一般在应用使用过程中弹出,用户可以选择点击广告以访问目标网址,或者关闭广告以返回应用。
插屏广告有两种形式:半屏和全屏。两者都覆盖整个屏幕,区别在于广告内容的展示区域大小。半屏广告在展示区域之外,背景为半透明。

广告加载和展示

使用SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd()获取SAAllianceAd接口类型对象;

调用loadSAInterstitialAd(SAAllianceAdParams params, SAInterstitialAdLoadListener listener)进行广告加载;

调用showInterstitial(Activity activity)方法进行广告展示。

SAAllianceAd插屏相关方法说明

方法说明
void loadSAInterstitialAd(SAAllianceAdParams params, SAInterstitialAdLoadListener listener);加载插屏广告
void showInterstitial(Activity activity)展示插屏广告,传入插屏广告视图所要的Activity。
SAInterstitialAdLoadListener.onInterstitialAdLoad()回调后调用

SAInterstitialAdLoadListener说明

方法说明
void onInterstitialAdLoad(SAInterstitialAd ad);加载成功,SAInterstitialAd ad插屏广告对象
void onError(int code, String message);加载失败,code 错误码,message 错误信息
void onResourceLoad();广告素材加载成功
void onTimeOut()加载超时

SAInterstitialAd说明

加载获取到的插屏广告实例,用于生命周期监听,获取价格等

方法说明
void setInterstitialAdInteractionListener(SAInterstitialAdInteractionListener listener);设置生命周期监听,在调用showInterstitial()方法之前设置
String getECPM();获取广告价格,单位:分
void destroy();销毁广告

loadSAInterstitialAd方法说明

参数说明是否必填
SAAllianceAdParams params广告参数必填
SAInterstitialAdLoadListener listener插屏广告加载结果回调必填

SAAllianceAdParams说明

方法广告参数配置是否必填
setPosId(String posId)广告位id必填
setMute(boolean isMute)设置是否静音,默认静音可选

SAInterstitialAdInteractionListener 广告生命周期回调

方法说明
void onAdClick()插屏点击
void onAdShow()插屏展示
void onAdDismiss()插屏关闭
void onAdError(int code, String message);插屏展示错误,code 错误码,message 错误信息
void onSkippedVideo();插屏跳过

请求插屏示例

private void loadInterstitialAd(Activity context, String posId, int width, int height) {

    //设置广告参数
    SAAllianceAdParams params = new SAAllianceAdParams();
    params.setPosId(sposId); //设置广告位ID
	  params.setMute(true); //设置视频素材是否默认静音,默认为true

    //广告对象初始化
    SAAllianceAd saAllianceAd = SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd(context);
    
    saAllianceAd.loadSAInterstitialAd(params, new SAInterstitialAdLoadListener() {
        @Override
        public void onInterstitialAdLoad(SAInterstitialAd saInterstitialAd) {
            if (saInterstitialAd == null) {
                Log.e(TAG, "广告加载失败");
                return;
            }

            String ecpm = saInterstitialAd.getECPM(); //获取广告价格,单位分

            //设置广告交互监听
            saInterstitialAd.setInterstitialAdInteractionListener(new SAInterstitialAdInteractionListener() {
                @Override
                public void onAdShow() {
                    Log.i(TAG, "广告成功展示");
                }

                @Override
                public void onAdClick() {
                    Log.i(TAG, "广告点击");
                }

                @Override
                public void onAdDismiss() {
                    Log.i(TAG, "广告关闭");
                    destroyInterstitialAd();//在这里销毁广告
                }

                @Override
                public void onAdError(int code, String message) {
                    Log.e(TAG, "广告展示失败,code = " + code + ", msg = " + msg);
                }

                @Override
                public void onSkippedVideo() {
                    Log.i(TAG, "广告跳过");
                    destroyInterstitialAd();//在这里销毁广告
                }
            }); //setInterstitialAdInteractionListener end

            //展示广告
            if (saAllianceAd != null && activity != null) {
                saAllianceAd.showInterstitial(activity);
            }
            
        } //onInterstitialAdLoad end

        @Override
        public void onError(int code, String msg) {
            Log.e(TAG, "广告加载失败,code = " + code + ", msg = " + msg);
        }

        @Override
        public void onResourceLoad() {

        }
    }); //loadSAInterstitialAd end
}

private void destroyInterstitialAd() {
    Log.i(TAG, "销毁广告");
    if (saInterstitialAd != null) {
        saInterstitialAd.destroy();
        saInterstitialAd = null;
    }
}

广告展示

建议在onInterstitialAdLoad方法加载完毕后,再调用showInterstitial方法进行广告展示

if (saAllianceAd != null && activity != null) {
    saAllianceAd.showInterstitial(activity);
}
上次编辑于: