使用 Android Banner 横幅广告

Banner 仅在 Chartboost Android SDKs 8.0.1 及以上版本支持。
Charboost Banner 横幅广告是在一个 View 视图的子类上展示的广告,跟其它广告类型不同, 开发需要自己手动控制在 App 里的某个 UI 视图上展示 Banner。您可以同时创建并展示多个 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 是否正常工作。