跳至主要內容

开屏广告

大约 4 分钟

开屏广告

概述

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

广告加载和展示

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

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

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

SAAllianceAd开屏相关方法说明

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

SASplashAdLoadListener说明

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

SASplashAd说明

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

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

loadSASplashAd方法说明

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

SAAllianceAdParams说明


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();

                FrameLayout frameLayout = new FrameLayout(context);
                frameLayout.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
                saAllianceAd.showSplash(frameLayout);
                viewGroup.addView(frameLayout);

                /* 开屏广告会填充满容器,所以需要保证容器有宽高 */
                //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);
}
上次编辑于: