如果一个应用已经选择了“不接受行为定向广告”,那我们不会对其展示横幅广告。
横幅广告仅在 Chartboost Android SDKs 8.0.1 及以上版本支持。
Charboost Banner 横幅广告是在一个 View 视图的子类上展示的广告,跟其它广告类型不同, 开发需要自己手动控制在 App 里的某个 UI 视图上展示 Banner。
如果需要的话,多个横幅广告可以同时展示。
创建一个 Banner 横幅广告
XML 配置 文件
要创建一个 Banner 横幅广告,需要在 Android App 的 XML Layout 布局文件里添加下面内容:
<com.chartboost.sdk.ChartboostBanner xmlns:chartboost="h ttp://schemas.android.com/apk/res-auto" android:id="@+id/example_banner" android:layout_width="wrap_content" android:layout_height=" wrap_content" android:layout_centerInParent="true" chartboost:location="start" chartboost:size="STANDARD" />
开发者需要为 Banner 指定命名位置 (Location) 以及 Banner 的尺寸。
代码实现
开发者需要创建一个 ChartboostBanner 对象然后指派到一个 view 视图里。 View 视图可以用 LayoutParams 参数进行自定义,
BannerSize 对象根据 XML 配置文件里的 size 值来设定。ChartboostBannerListener 随后可以通过 setListener 函数来绑定。
//create new banner with: 创建一个 Banner 对象 // - context - required // - location - required // - BannerSize - Required // - ChartboostBannerListener - Optional ChartboostBanner chartboostBanner = new ChartboostBanner(this, bannerLocation, bannerSize, null); //Attach object to layout 将 Banner 绑定到 Layout 对象中 mBannerContainer.removeAllViews(); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.gravity = CENTER_HORIZONTAL; mBannerContainer.addView(chartboostBanner, params);
开发者可以随时解除 Banner 和视图的绑定,然后删除 banner。方法如下:
chartboostBanner.detachBanner();
展示 Banner 横幅广告
通过上面描述的方法创建 Banner 对象后,调用下面的方法:
缓存 Banner 广告
chartboostBanner.cache();
展示 Banner 广告
chartboostBanner.show();
Banner 横幅广告尺寸
STANDARD – 320 x 50
MEDIUM – 300 x 250
LEADERBOARD – 728 x 90
自动刷新功能
Banner 横幅广告默认会自动刷新其内容,刷新时间间隔为 30 秒。
你可以通过下面的方法来设置开启自动刷新,只需执行一次即可。Banner 在被点击后也会自动刷新其内容。
chartboostBanner.setAutomaticallyRefreshesContent(true);
手动刷新 Banner
可以通过下面的方法控制 Banner 手动刷新,首先将自动刷新关闭:
chartboostBanner.setAutomaticallyRefreshesContent(false);
然后您需要手动缓存和加载 Banner,然后设置相应的事件回调函数,确保 Banner 加载完毕后会自动展示:
范例:
void cacheBanner() { chartboostBanner.cache(); } @Override void onAdCached(ChartboostCacheEvent event, ChartboostCacheError error) { if(error != null) { chartboostBanner.show() ; } } @Override void onAdShown(ChartboostShowEvent event, ChartboostShowError error) { if(error != null) { chartboostBanner.cache(); } }
Banner 监听函数
可以为每个 Banner 设定特定的监听函数(可选),此方法可在 Banner 初始化或者后续进行。
自定义的监听函数可以用来处理 Banner 生命周期中相关的事件。
以下是 Banner 所有的事件监听函数:
Class name: ChartboostBannerListener
// Called after ad is cached and ready to be shown or indicated reason of failure // 在 Banner 缓存成功或者失败时被执行 void onAdCached(ChartboostCacheEvent event, ChartboostCacheError error); // Called after ad is displayed and visible on the screen or indicated reason of failure // 在 Banner 展示成功或者失败时被执行 void onAdShown(ChartboostShowEvent event, ChartboostShowError error); // Called after ad has been clicked or indicated reason of failure // 在 Banner 被点击或者发生点击错误时执行 void onAdClicked(ChartboostClickEvent event, ChartboostClickError error);
ChartboostCacheEvent
,ChartboostShowEven
,ChartboostClickEvent
– 当一切事件表现正常,这几个对象的值是非空。ChartboostCacheError
,ChartboostShowError
,ChartboostClickError
– 当一切工作正常,这几个对象的值为空,当有错误发生时,则为非空。开发者可以同时检测以上两组对象以确定 Banner 是否正常工作。
广告识别符
委托方法调用中的所有非错误事件都包含
adID
属性。这是一个对已加载广告的特殊标识字符串,可以帮助和Chartboost一起识别错误素材。
横幅广告错误
委托方法调用中的所有非错误事件都包含
adID
属性。错误及具体信息可以通过以下公开代码进行检查:
ChartboostCacheError cacheError = new ChartboostCacheError(ChartboostCacheError.Code.INTERNAL); cacheError.code.getErrorCode() ChartboostShowError showError = new ChartboostCacheError(ChartboostShowError.Code.INTERNAL); showError.code.getErrorCode() ChartboostClickError clickError = new ChartboostClickError(ChartboostClickError.Code.INTERNAL); clickError.code.getErrorCode()
Last Updated on 2月 8, 2021