- 开始之前
- 请将 Chartboost 的远程库连接和依赖库添加至项目的 Gradle 文件里
- 正在添加 Google Play Services 库
- 正在添加至 Android Manifest 清单
- 支持屏幕方向变化
- 导入 Chartboost SDK
- 初始化 Chartboost SDK
- 添加您的 App ID 和 App 签名
- 正在显示静态或视频插页式广告
- 正在显示激励式视频广告
- 显示 Banner 横幅广告
- 使用 ProGuard
- 测试您的集成
- 在后台控制面板中检查 SDK 图标
- 更多 SDK 功能
- GDPR
- 覆盖 Activity 活动生命周期的方法函数
![]() |
开始之前 |
- 您是否已经注册了Chartboost 帐户?
- 您是否在后台控制面板上添加了应用程序?
- 使用旧版本的 SDK (7.5.0 及更旧版本)请 参考这里
- 从 7.5.0 升级到 8.0.1+ 请 参考这里 获取详细的 API 改动细节及集成步骤。
- 亚马逊集成使用与 Android 相同的 SDK。这些集成说明适用于 Google Play 或 Amazon App Store 的游戏。
- Chartboost Android 范例项目 下载地址。
- 如果您的游戏在 Unity 中构建,强烈建议使用我们的 Android Unity 插件。如果您喜欢配合自己的 Unity 适配器使用 Android SDK,请使用这一方法以确保广告在您的游戏中显示。
![]() |
必要和非必要的权限 |
- Chartboost SDK 要求 API 等级21(Android OS 5)或更高版本。
- 所需权限:
android.permission.INTERNET
- 所需权限:
android.permission.ACCESS_NETWORK_STATE
- 可选(但建议使用)权限:
android.permission.WRITE_EXTERNAL_STORAGE
允许 SDK 在外部存储器缓存所有广告资源(广告素材、自定义边框等)。通过立即投放广告并减少 SDK 所用网络流量,让性能达到最大化。 - 可选(但建议使用)权限:
android.permission.ACCESS_WIFI_STATE
允许 SDK 核对 HTTP 请求中的 WiFi 详情。这将与 Android ID 和/或 GAID 一起作为用户的标识符。请查看设备标识符,获取更多信息。 - 可选(但建议使用)权限:
android.permission.READ_PHONE_STATE
允许 SDK 处理中断视频播放的调用。
GDPR 相关:针对欧洲的用户,开发者可以调用 Chartboost SDK 里的
setPIDataUseConsent
API 来设置用户的授权许可状态。作为服务条款的一部分,开发者需要向用户征求授权许可(同意、不同意、未知),然后用上述 API 传递给 Chartboost,此 API 的调用必须在执行 startWithAppId
之前。![]() |
请将 Chartboost远程安装库的地址和依赖库连接添加至您项目的Gradle文件里。 |
- 要集成Chartboost,请将下列内容添加到 Android 项目的 Gradle 文件里:
repositories { maven { url "https://chartboostmobile.bintray.com/Chartboost" } } dependencies { implementation 'com.chartboost:chartboost-sdk:8.0.2' }
![]() |
请添加 Google Play 服务库作为您项目的依赖项。Chartboost 7.2.1 及以上版本需要添加 “play-services-base” 和 “play-services-ads-identifier” 库的支持 |
- Google Play服务库拥有自己的一套整合说明,包括Android Manifest 和 ProGuard 配置的附加功能。
- 请遵照来自 Google 的这些设置说明。
- 接下来需要加入 Play Services 库。将下面两行配置加入到 build.gradle 文件:
implementation "com.google.android.gms:play-services-base:$project.ext.googlePlayServicesVersion" implementation "com.google.android.gms:play-services-ads-identifier:$project.ext.googlePlayServicesVersion"
可使用高于 Android 8.4.0 的任何版本。
![]() |
请在您的AndroidManifest.xml文件中添加以下条目。 |
<activity android:name="com.chartboost.sdk.CBImpressionActivity" android:excludeFromRecents="true" android:hardwareAccelerated="true" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" android:configChanges="keyboardHidden|orientation|screenSize" />
对于不包含
CBImpressionActivity
的复杂集成,显示 Chartboost 广告的任何活动
必须在 Android 清单的活动条目中有值
android:hardwareAccelerated="true"
,否则视频可能无法正确显示。![]() |
如果您在支持不同屏幕显示方向的活动中显示 Chartboost 广告,请将以下属性添加至该文件的活动中AndroidManifest.xml. |
android:configChanges="keyboardHidden|orientation|screenSize"
这有助于在屏幕方向改变时平滑播放视频。
![]() |
用下列的代码将 Chartboost SDK 导入你需要使用它的代码活动类里(Activity)。 |
import com.chartboost.sdk.Chartboost; import com.chartboost.sdk.CBLocation; import com.chartboost.sdk.ChartboostDelegate;
- 若在使用 SDK 附加功能时,您要导入这些类库:
import com.chartboost.sdk.Libraries.CBLogging.Level; import com.chartboost.sdk.Model.CBError.CBClickError; import com.chartboost.sdk.Model.CBError.CBImpressionError; import com.chartboost.sdk.Tracking.CBAnalytics; import com.chartboost.sdk.CBImpressionActivity;
![]() |
在您的启动器活动类中初始化 Chartboost SDK。 |
- 请扩展您主要活动的
onCreate
生命周期方法。Chartboost SDK 8.0.1 版以后将改为传递 context 作为参数。如下所示:
public static void startWithAppId(Context context, String appId, String appSignature)
专业提示:请留意
Exception: Initialization error
信息。这表明 SDK 未正确初始化。专业提示:如果你使用自己编写的 Unity 适配器来调用 Android SDK,需要在执行
startWithAppId
之后马上调用
Chartboost.setFramework(CBFramework.CBFrameworkUnity, unityVersion);
将 Unity 设定为框架。其中
unityVersion
的值可以通过
此 Unity 功能返回的值进行替换。.startWithAppId
必须始终在您 App 启动的前几秒内
硬启动和软启动期间调用。与您应用程序内的任何其他操作或用户互动无关。GDPR 相关:针对欧洲的用户,开发者可以调用 Chartboost SDK 里的
setPIDataUseConsent
API 来设置用户的授权许可状态。作为服务条款的一部分,开发者需要向用户征求授权许可(同意、不同意、未知),然后用上述 API 传递给 Chartboost,此 API 的调用必须在执行 startWithAppId
之前。![]() |
添加您的 App ID 和 App 签名。 |
- 使用您的 App ID 和 App 签名替换
appID
和appSignature
。 - 在哪里能找到我的 App ID 和 App 签名?
Chartboost App ID 是系统的唯一标识符, 每个 App 必须使用单独的 Chartboost App ID .
![]() |
若要显示静态广告或视频插页式广告: |
Chartboost.cacheInterstitial(CBLocation.LOCATION_DEFAULT); Chartboost.showInterstitial(CBLocation.LOCATION_DEFAULT);
- 您可使用
CBLocation
接口类获得默认位置常量的列表并自行定义。一旦使用某个位置,它会被添加至您的后台控制面板,您可在此自定义其设置。 - 为了自定义控制广告在游戏中的表现,Chartboost SDK 还提供更多功能如缓存、委托方法和命名位置。
- 了解更多关于 Chartboost 视频广告的信息▶
不要为同一位置直接调用
showInterstitial
,在
cacheInterstitial
之后,否则 SDK 将悄然失效。我们
强烈建议您在显示插页式广告之前对其进行缓存。
了解更多关于缓存的信息▶
即使您正在使用聚合功能,预取的视频(总计)也只占用 30-50MB。
![]() |
显示激励式视频广告: |
Chartboost.cacheRewardedVideo(CBLocation.LOCATION_GAMEOVER); Chartboost.showRewardedVideo(CBLocation.LOCATION_GAMEOVER);
- 为了自定义控制广告在游戏中的表现,Chartboost SDK 还提供更多功能如缓存、委托方法和命名位置。
- 了解更多关于 Chartboost 视频广告的信息▶
请勿在cacheInterstitial之后
直接为同一位置
调用 showInterstitial,
否则 SDK 将悄然失效。我们强烈建议您在显示插页式广告之前对其进行缓存。 了解更多关于缓存的信息▶
即使您正在使用聚合功能,预取的视频(总计)也只占用 30-50MB。
![]() |
显示 Banner 横幅广告: |
chartboostBanner.cache() chartboostBanner.show()
要显示 Banner 横幅广告,您需要先创建它。 (详情请参考 这里),然后调用相应的代理函数。
默认情况下,Banner 横幅广告会自动刷新。默认刷新间隔是 30 秒。
如果您想关闭自动刷新,可以通过调用
setAutomaticallyRefreshesContent
方法并传递参数值为 false
来实现。![]() |
如果您正在使用 ProGuard,请将以下项目添加至您的proguard-rules.pro: |
-keep class com.chartboost.** { *; }
专业提示:请遵照
Google Play Services 的说明正确设置 ProGuard。
![]() |
测试您的集成。 |
- 在 Android 设备上运行您的项目。
- 如果您有活跃的广告发布活动并集成了“显示插页式广告”或“显示激励式视频广告”调用,应可看到上线的广告。
- 如果您没有任何广告发布活动但仍集成了这些调用,可使用测试模式查看是否显示测试广告。
- 为什么我在游戏中看不到广告?
![]() |
查看 Chartboost 后台控制面板中的SDK 图标 |
- 在您的控制面板中,前往您应用程序的 App 设置>基本设置。
- 当我们的服务器使用您的 App ID从SDK 成功接收启动调用时,您应用程序图标下方的 SDK 图标将从灰色变为绿色。

w00t!您刚把 Chartboost SDK 集成到应用程序中!
现在您可以开始发布广告
查看更多 Chartboost SDK 功能
- 缓存:通过在设备上本地存储广告加快广告加载时间。
- Chartboost 视频:添加美观的高品质视频广告,为玩家提供最佳的游戏中体验。
- 命名位置:在后台控制面板中对您的广告定位和广告频率进行微调。
- 委托方法:在广告环境中获得更强的游戏操控能力
- SDK 配置方法:访问 Chartboost SDK 的功能和设置。
- 聚合:将您的广告与其他高品质网络的众多广告一同显示。
GDPR
public void onCreate() { super.onCreate(); // Get the consent status via the Chartboost.getPIDataUseConsent().getValue() method. Chartboost.getPIDataUseConsent().getValue() // Set the consent status corresponding to the user's response using // the Chartboost.setPIDataUseConsent(this, Chartboost.CBPIDataUseConsent.YES_BEHAVIORAL) method. Chartboost.setPIDataUseConsent(this, Chartboost.CBPIDataUseConsent.YES_BEHAVIORAL) Chartboost.startWithAppId(this, appId, appSignature); }
覆盖您活动的生命周期方法。
- 添加以下代码来扩展您活动的
onBackPressed()
方法:
@Override public void onBackPressed() { // If an interstitial is on screen, close it. if (Chartboost.onBackPressed()) return; else super.onBackPressed(); }
您可能还喜欢…
- 错误代码:集成 Anftoid 版 SDK 时d 常见问题及解决办法。
▲返回页首
Last Updated on 5月 20, 2020