跳至主要內容

插屏广告

大约 4 分钟

插屏广告

概述

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

广告加载和展示

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

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

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

SAAllianceAd插屏相关方法说明

方法说明
加载插屏广告
展示插屏广告,传入插屏广告视图所要的Activity。

SAInterstitialAdLoadListener说明

方法说明
加载成功,
加载失败,code 错误码,message 错误信息
广告素材加载成功
void onTimeOut()加载超时

SAInterstitialAd说明

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

方法说明
设置生命周期监听,在调用
获取广告价格,单位:分
销毁广告

loadSAInterstitialAd方法说明

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

SAAllianceAdParams说明


SAInterstitialAdInteractionListener 广告生命周期回调

方法说明
void onAdClick()插屏点击
void onAdShow()插屏展示
void ()插屏关闭
插屏展示错误,code 错误码,message 错误信息
插屏跳过
void onDownloadTipDialogShow()下载类应用详情页打开(可选)
void onDownloadTipDialogClose()下载类应用详情页关闭(可选)
void onAdDetailsActivityShow()落地页打开(可选)
void onAdDetailsActivityClose()落地页关闭(可选)

请求插屏示例

private void loadInterstitialAd(Activity context, String sposId, 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 + ", message = " + message);
                }

                @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);
}
上次编辑于: