Android

 


 

开始之前

  • 您是否已经注册了Chartboost 帐户?
  • 您是否在后台控制面板上添加了应用程序?
  • 您有没有下载最新的 SDK?
  • 您是否有活跃的广告发布活动?
  • 亚马逊集成使用与 Android 相同的 SDK。这些集成说明适用于 Google Play 或 Amazon App Store 的游戏。
  • 如果您的游戏在 Unity 中构建,强烈建议使用我们的Android Unity 插件。如果您喜欢配合自己的 Unity 适配器使用 Android SDK,请使用这一方法以确保广告在您的游戏中显示。
  • Chartboost SDK 要求 API 等级9(Android OS 2.3)或更高版本。
  • 所需权限: android.permission.INTERNET
  • 所需权限: android.permission.ACCESS_NETWORK_STATE
  • 强烈建议:为确保与 Android 6.0 设备的兼容性,请在您的build.gradle文件中将项目的构建和编译 SDK 版本设置为 API 等级 23:
    buildToolsVersion = '23.0.0'
    compileSdkVersion = 23
  • 强烈建议:若要定位 Android 6.0 Marshmallow 功能,请将项目的定位 SDK 版本设置为 API 级别 23, 在您的AndroidManfiest.xml:
    android:targetSdkVersion="23"
  • 可选(但建议使用)权限: android.permission.WRITE_EXTERNAL_STORAGE允许 SDK 在外部存储器缓存所有广告资源(广告素材、自定义边框等)。通过立即投放广告并减少 SDK 所用网络流量,让性能达到最大化。
  • 可选(但建议使用)权限: android.permission.ACCESS_WIFI_STATE允许 SDK 核对 HTTP 请求中的 WiFi 详情。这将与 Android ID 和/或 GAID 一起作为用户的标识符。请查看设备标识符,获取更多信息。
  • 可选(但建议使用)权限: android.permission.READ_PHONE_STATE允许 SDK 处理中断视频播放的调用。

 


 

请将chartboost.jar文件添加至您的libs目录。

  • 如果没有libs文件夹,请创建并添加 .jar 文件。
  • 可选项:请添加chartboost.jar.propertiesdoc目录至libs以便在 IDE 中获得 Javadoc。

 


 

请添加 Google Play 服务库作为您项目的依赖项。

  • Google Play服务库拥有自己的一套整合说明,包括Android Manifest 和 ProGuard 配置的附加功能。
  • 请遵照来自 Google 的这些设置说明。
您只需将 com.google.android.gms:play-services-ads:8.4.0导入构建,无需导入 Google Play 的所有功能。
可使用高于 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 导入使用 Chartboost 的任何活动。

导入 com.chartboost.sdk.Chartboost; 导入 com.chartboost.sdk.CBLocation; 导入com.chartboost.sdk.ChartboostDelegate;
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生命周期方法,如下所示:
public class <your Class name> extends Activity { @Override public void onCreate() { super.onCreate(); Chartboost.startWithAppId(this, appId, appSignature); Chartboost.onCreate(this); } }
  • 或者,可通过简单地扩展ChartboostActivity,让 SDK 为您处理这一问题。这将避免采用重写活动生命周期的方法,如onCreate因此您可以只调用Chartboost.OnCreate().
专业提示:请留意 异常:初始化错误信息。这表明 SDK 未正确初始化。
专业提示:如果正以自己的 Unity 适配器使用 Android SDK,在 startWithAppId使用方法 Chartboost.setFramework(CBFramework.CBFrameworkUnity, unityVersion);之后,必须立即将 Unity 当作框架来报告。请替换 unityVersion,以 此 Unity 功能返回的值进行替换。.
startWithAppId必须始终在您 App 启动的前几秒内 硬启动和软启动期间调用。与您应用程序内的任何其他操作或用户互动无关。

 


 

添加您的 App ID 和 App 签名。

 


 

覆盖您活动的生命周期方法。

  • 添加以下代码来扩展您活动的onStart(),onPause(),onResume(),onStop(),onDestroy()onBackPressed()方法:
@Override public void onStart() { super.onStart(); Chartboost.onStart(this); } @Override public void onResume() { super.onResume(); Chartboost.onResume(this); } @Override public void onPause() { super.onPause(); Chartboost.onPause(this); } @Override public void onStop() { super.onStop(); Chartboost.onStop(this); } @Override public void onDestroy() { super.onDestroy(); Chartboost.onDestroy(this); } @Override public void onBackPressed() { // If an interstitial is on screen, close it. if (Chartboost.onBackPressed()) return; else super.onBackPressed(); }

 


 

若要显示静态广告或视频插页式广告:

Chartboost.cacheInterstitial(CBLocation.LOCATION_DEFAULT); Chartboost.showInterstitial(CBLocation.LOCATION_DEFAULT);
不要为同一位置直接调用 showInterstitial,在 cacheInterstitial之后,否则 SDK 将悄然失效。
我们 强烈建议您在显示插页式广告之前对其进行缓存。 了解更多关于缓存的信息▶
即使您正在使用聚合功能,预取的视频(总计)也只占用 30-50MB。

 

要显示激励式视频广告:

Chartboost.cacheRewardedVideo(CBLocation.LOCATION_GAMEOVER); Chartboost.showRewardedVideo(CBLocation.LOCATION_GAMEOVER);
请勿在cacheInterstitial之后 直接为同一位置调用 showInterstitial,否则 SDK 将悄然失效。
我们 强烈建议您在显示插页式广告之前对其进行缓存。 了解更多关于缓存的信息▶
即使您正在使用聚合功能,预取的视频(总计)也只占用 30-50MB。

 

如果您正在使用 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 的功能和设置。
  • 聚合:将您的广告与其他高品质网络的众多广告一同显示。

 


 

使用 OpenGL 和旧版本的 Chartboost SDK

<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" />
  • 对于 Chartboost SDK v3.4.0 或更低版本: cb.setImpressionsUseActivities(true);
  • 对于 Chartboost SDK 4.x 版: CBPreferences.getInstance().setImpressionsUseActivities(true);
  • 对于 Chartboost SDK 5.x 版: Chartboost.setImpressionsUseActivities(boolean impressionsUseActivities)在您活动的onCreate()方法中调用此方法,在此之前,应先以startWithAppIdSDK 进行初始化,但在调用之前Chartboost.onCreate()

 


 

您可能还喜欢…
  • 错误代码:集成 Anftoid 版 SDK 时d 常见问题及解决办法。

 

▲返回页首