最后更新于
July 15, 2022
如果一个应用已经选择了“不接受行为定向广告”,那我们不会对其展示横幅广告。
横幅广告仅在 Chartboost Android SDKs 8.0.1 及以上版本支持。
Charboost Banner 横幅广告是在一个 View 视图的子类上展示的广告,跟其它广告类型不同, 开发需要自己手动控制在 App 里的某个 UI 视图上展示 Banner。
如果需要的话,多个横幅广告可以同时展示。
要创建一个 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 - OptionalChartboostBanner 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 广告
chartboostBanner.cache();
展示 Banner 广告
chartboostBanner.show();
STANDARD – 320 x 50
MEDIUM – 300 x 250
LEADERBOARD – 728 x 90
Banner 横幅广告默认会自动刷新其内容,刷新时间间隔为 30 秒。 你可以通过下面的方法来设置开启自动刷新,只需执行一次即可。Banner 在被点击后也会自动刷新其内容。
chartboostBanner.setAutomaticallyRefreshesContent(true);
可以通过下面的方法控制 Banner 手动刷新,首先将自动刷新关闭:
chartboostBanner.setAutomaticallyRefreshesContent(false);
然后您需要手动缓存和加载 Banner,然后设置相应的事件回调函数,确保 Banner 加载完毕后会自动展示: 范例:
void cacheBanner() { chartboostBanner.cache();}@Overridevoid onAdCached(ChartboostCacheEvent event, ChartboostCacheError error) { if(error != null) { chartboostBanner.show() ; }}@Overridevoid onAdShown(ChartboostShowEvent event, ChartboostShowError error) { if(error != null) { chartboostBanner.cache(); }}
可以为每个 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);
委托方法调用中的所有非错误事件都包含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()