跳至主要內容

开屏广告

大约 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()广告倒计时结束
void onDownloadTipDialogShow()下载类应用详情页打开(可选)
void onDownloadTipDialogClose()下载类应用详情页关闭(可选)
void onAdDetailsActivityShow()落地页打开(可选)
void onAdDetailsActivityClose()落地页关闭(可选)

请求开屏示例

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