跳至主要內容

开屏广告

大约 3 分钟

开屏广告

概述

开屏广告是应用程序启动时呈现的全屏广告,开发者只需遵循标准接入流程即可展示广告视图。开屏广告在应用启动时显示,持续5秒后自动关闭。用户也可以点击“跳过”快速进入主界面,或点击广告了解更多信息。

广告加载和展示

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

调用loadSASplashAd(SAAllianceAdParams params, ViewGroup containers, int timeOut, SASplashAdLoadListener listener)进行广告加载;

调用showSplash(ViewGroup container)方法进行广告展示。

SAAllianceAd开屏相关方法说明

方法说明
void loadSASplashAd(SAAllianceAdParams params, ViewGroup containers, int timeOut, SASplashAdLoadListener listener);加载开屏广告
void showSplash(ViewGroup container)展示开屏广告,传入开屏广告视图所要的容器。
SASplashAdLoadListener.onSplashAdLoad()回调后调用

SASplashAdLoadListener说明

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

SASplashAd说明

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

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

loadSASplashAd方法说明

参数说明是否必填
SAAllianceAdParams params广告参数必填
ViewGroup containers开屏广告视图容器可选
int timeOut加载广告超时设置,单位毫秒
SASplashAdLoadListener listener开屏广告加载结果回调必填

SAAllianceAdParams说明

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

SASplashAdInteractionListener广告生命周期回调

方法说明
void onAdClick()开屏点击
void onAdShow()开屏展示
void onAdSkip()开屏跳过
void onAdTimeOver()广告倒计时结束

请求开屏示例

private void loadSplashAd(Activity context, String sposId, ViewGroup viewGroup) {
    
    //设置广告参数
    SAAllianceAdParams params = new SAAllianceAdParams();
    params.setPosId(sposId); //设置广告位ID
	  params.setMute(true); //设置视频素材是否默认静音,默认为true

    //广告对象初始化
    /* 注意:传入的context和展示广告的context需一致 */
    SAAllianceAd saAllianceAd = SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd(context);

    /**
     * @param i 广告加载等待时间,单位ms,此处示例3000(3秒)
     */
    saAllianceAd.loadSASplashAd(params, null, 3000, new SASplashAdLoadListener() {
        @Override
        public void onTimeOut() {
            Log.e(TAG, "广告加载超时");
        }

        @Override
        public void onSplashAdLoad(SASplashAd saSplashAd) {
            if (saSplashAd == null) {
                Log.e(TAG, "广告加载失败");
                return;
            }
            
            String ecpm = saSplashAd.getECPM(); //获取广告价格,单位分

            //设置广告交互监听
            saSplashAd.setSplashAdInteractionListener(new SASplashAdInteractionListener() {
                @Override
                public void onAdClick() {
                    Log.i(TAG, "广告点击");
                }

                @Override
                public void onAdShow() {
                    Log.i(TAG, "广告成功展示");
                }

                @Override
                public void onAdTimeOver() {
                    Log.i(TAG, "广告倒计时结束");
                    destroySplashAd(); //在这里销毁广告
                }

                @Override
                public void onAdSkip() {
                    Log.i(TAG, "点击跳过");
                    destroySplashAd(); //在这里销毁广告
                }
            }); //setSplashAdInteractionListener end

            //将广告添加到容器中进行展示
            if (saAllianceAd != null && viewGroup != null) {
                viewGroup.removeAllViews();

                /* 开屏广告会填充满容器,所以需要保证容器有宽高 */
                saAllianceAd.showSplash(viewGroup);
            }
        
        } //onSplashAdLoad end

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

        @Override
        public void onResourceLoad() {

        }
    }); //loadSASplashAd end
}

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

展示广告

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

if (saAllianceAd !=null && viewGroup !=null) {
    viewGroup.removeAllViews();
    saAllianceAd.showSplash(viewGroup);
}
上次编辑于: