跳至主要內容

Banner 广告

大约 3 分钟

Banner 广告

概述

Banner 广告即横幅广告,在内容底部或顶部显示的小条形广告,常见于文章页末尾,详情页面底部,信息流顶部等。

广告加载和展示

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

调用loadSABannerAd(SAAllianceAdParams params, ViewGroup containers, SABannerAdLoadListener listener)进行广告加载;

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

SAAllianceAdBanner广告相关方法说明

方法说明
加载Banner广告
展示Banner广告,传入Banner广告视图所要的容器。
SABannerAdLoadListener.onBannerAdLoad()回调后调用

SABannerAdLoadListener说明

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

SABannerAd说明

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

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

loadSABannerAd方法说明

参数说明是否必填
广告参数必填
广告容器可选,可以传null
Banner广告加载结果回调必填

SAAllianceAdParams说明

SABannerAdInteractionListener广告生命周期回调

方法说明
Banner展示错误,code 错误码,message 错误信息
void onAdShow()Banner广告展示
广告点击
void ()Banner广告关闭

请求Banner广告示例

private void loadBannerAd(Activity context, String posId, int width, int height, ViewGroup viewGroup) {
    
    //设置广告参数
    SAAllianceAdParams params = new SAAllianceAdParams();
    params.setPosId(posId); //设置广告位ID

    //广告对象初始化
    SAAllianceAd saAllianceAd = SAAllianceAdSdk.getSAAllianceAdManager().createSAAllianceAd(context);
    
    saAllianceAd.loadSABannerAd(params, null, new SABannerAdLoadListener() {
        @Override
        public void onBannerAdLoad(SABannerAd saBannerAd) {
            if (saBannerAd == null) {
                Log.e(TAG, "广告加载失败");
                return;
            }

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

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

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

                @Override
                public void onAdClose() {
                    Log.i(TAG, "点击关闭");                    
                    if (viewGroup != null) {
                        viewGroup.removeAllViews();
                    }
                }

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

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

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

        @Override
        public void onResourceLoad() {

        }
    }); //loadSABannerAd end
}

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

广告展示

建议在 onBannerAdLoad 方法加载完毕后 再在调用 showBanner 方法进行广告的展示

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