integration guide android - unity-cn/unityads-help-cn GitHub Wiki

注意: 这篇是Unity Ads 1.5.x集成文档, Unity Ads 2.0 已经推出, 1.5.x将只会在未来有限的时间内获得支持. Unity Ads 2.0 的文档请参考这里

注意: 这篇是Android开发时候集成的文档, 并不是使用Unity Editor开发时的集成方法. 如果需要查看Unity开发时候的集成文档, 请查阅本站的其他文档.

Unity Ads的集成包括两部分:

在 Android 游戏中集成Unity Ads 1.5.x

如果还没下载的话, 可以 从 Github 上下载 Unity Ads SDK.

大纲:

  • 在你的Android项目中导入 unity-ads
  • 初始化Unity Ads并传入Game ID
  • 检查有广告(Campaign)可以展示
  • 展示广告
  • 待用户看完广告后奖励用户游戏内道具或货币

在项目中加入 Unity Ads SDK (Android Studio)

使用 unity-ads.aar 这个包里有所有Android SDK所需的文件.

选择 'File' > 'New' > 'New Module', 然后选择 'Import .JAR/.AAR Package' 导入 unity-ads.aar 包.

之后把导入的Unity Ads包加成Android项目的依赖(dependency). 右键点击app module, 选择 'Open Module Settings', 然后选择 'Dependencies' tab. 添加一个 'Module Dependency', 选择unity-ads作为module dependency.

在代码中集成 Unity Ads

初始化 Unity Ads

Unity Ads API UnityAds 类. 在初始化 UnityAds 的时候, 你需要传入activity, gameid和一个实现了UnityAdsListener的实例.

UnityAds.init((Activity)this, "11001", (UnityAdsListener)this);
调试模式和测试模式

你可以开启 调试模式(debug mode) 来获得更丰富的log. 关掉调试模式后需要重新编译才能发布. 测试模式(test mode) 可以开启测试广告, 来限制它.

UnityAds.setDebugMode(true);
UnityAds.setTestMode(true);
与 Activity Lifecycle 集成

在Activity切换或生命周期改变的时候, 我们希望让Unity Ads能够知道当前的Activity以保证它能够正确的工作, 可以在onResume里加上这句changeActivity(Activity)来实现.

例如:

@Override
public void onResume()
{
	super.onResume();
	UnityAds.changeActivity(this);
}
UnityAdsListener 接口

UnityAdsListener 里最重要的方法是, onFetchCompletedonFetchFailed, 用来通知用户广告的可用状况.

init 之后Unity Ads会自动调用这2个方法, 如果有广告可用的话就调用onFetchCompleted, 否则的话就调用onFetchFailed.

另外一个最重要的方法是

  • onVideoCompleted(String itemKey, boolean skipped) – 在视频结束时被调动. 在奖励式视频广告中也用于给玩家奖励.

注意: itemKey 已经不用了.

展示一个广告

Unity Ads SDK 初始化完成后, 就可以展示广告啦. 你需要使用 canShow 方法检查广告准备好了. 默认情况下使用默认(default)的广告位(placement).

if ( UnityAds.canShow() )
{
	UnityAds.show();
}
使用广告位(Ad Placement 或者 Zone)

这个功能让开发者可以在 Publisher Dashboard 上设置广告位, 并针对不同的广告位进行不同的设置.

  public boolean setZone(String zoneId)

如果 zone ID 不存在, setZone 会返回 false.

setZonecanShow 都返回 true 之后才能展示广告.

For example:

if ( UnityAds.setZone("rewardedVideo") && UnityAds.canShow() )
{
	UnityAds.show();
}

zoneId 是在 Publisher Dashboard 里定义的广告位 (Integration ID, Ad-placement).

你可以通过 getZone 方法获得当前激活中的ZoneID.

奖励玩家

如果你并不打算使用奖励式视频广告来奖励玩家, 可以跳过这一节.

注意: Item key 已经废弃了..

视频完成播放后, onVideoCompleted(String itemKey, boolean skipped) 方法会被调用.

如果 skipped 是 false, 说明玩家看完了视频, 你就可以根据zone id来奖励玩家了.

Integration Support

如果您在集成时候遇到任何问题, 可以向 [email protected] 发邮件联系技术支持寻求帮助. 技术支持是支持中文的.

Android Studio 之外的 Android集成.

我们建议使用Android Studio进行集成和开发. 但如果受限于您的环境仍然必须使用Eclipse的话, 可以参考这个文档

⚠️ **GitHub.com Fallback** ⚠️