Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

chinese_sdk_android_integration_guide

Jasmine edited this page Oct 18, 2018 · 4 revisions

Unity Ads SDK 2.0 - Android Integration Guide

本文档将为您讲解如何在 Android Studio 项目环境下集成Unity Ads。

如果您是从 SDK 1.5.x 升级的话, 可以参考Android升级指南

下载最新版本的 Unity Ads Android SDK

Unity Android 2.0 SDK 最低支持 API 16 (Android 4.1)

可供参考的 教学视频

您也可以到 GitHub 下载我们的 示例项目 作为参考。

大纲

  • Quickstart 指南
    • 新建游戏项目 Project
    • 代码集成
  • 高级操作指南

Quickstart 指南

在Unity Ads Dashboard 新建一个游戏项目 Project

使用您的 UDN 账户登录 UnityAds开发者操作台.

  • 如果您还没有 UDN 账户,请注册

从开发者后台选择 Projects > 点击 NEW PROJECT 新建一个项目.

提示: 如果您的游戏在美国发布且专门供美国13岁以下的儿童使用,依据美国儿童隐私保护法,您需要点击COPPA勾选框。全年龄段适用的游戏则不需要勾选此项。

选中新建的项目 > Platforms , 您可以看到Unity自动为iOS和Android平台分别生成的对应 GAME ID 。您将会在初始化 Unity Ads 时使用对应的 Game ID 。

Locate your Game ID

选中新建的项目 > Placements , 您可以查看广告位,Unity会在您新建项目时默认为您生成2个广告位,您也可以手动添加更多。

  • video (默认广告位 / 5秒后允许用户跳过广告)
  • rewardedVideo (不可跳过广告)

可选: 通过Platform的设置选项开启测试模式以接收测试广告,游戏发布上线前,请您务必记得回到此处关闭测试模式,以免影响您的广告收入。

Projects > 选中一个项目 > Platforms > 选中一个平台 > SETTINGS > Force test mode ON

代码集成

使用 Android Studio 集成 Unity Ads

重要! Unity SDK 不支持多进程,且所有广告操作要放在主线程。

导入Unity Ads

  1. 下载最新版本的 Unity Ads Android SDK 中的 unity-ads.aar

  2. 使用 Android Studio 新建或打开已有的 Android 项目.

  3. 新建 aar 类型 Module ,选择 unity-ads.aar 导入到项目中. 可以将 module 命名为 “unity-ads”.

Add Unity Ads Module

  1. 打开 app 的 Module Settings,添加 unity-ads 依赖.

Add Unity Ads Dependency2

Add Unity Ads Dependency3

  1. 在 Activity 中导入UnityAdsIUnityAdsListener.
import com.unity3d.ads.IUnityAdsListener;
import com.unity3d.ads.UnityAds;
  1. 在 Activity 中 implements IUnityAdsListener.
    Android Studio 会提示您缺少实现接口所必须添加的回调方法,点击提示后选择Implement methods一键添加; 当然您也可以手动添加这些回调方法.
@Override
public void onUnityAdsReady(String s) {

}

@Override
public void onUnityAdsStart(String s) {

}

@Override
public void onUnityAdsFinish(String s, UnityAds.FinishState finishState) {

}

@Override
public void onUnityAdsError(UnityAds.UnityAdsError unityAdsError, String s) {

}

到此步骤,您的项目应该可以成功通过编译。

初始化 Unity Ads 和 展示广告

在实现了IUnityAdsListener的 Activity 里, 调用UnityAds.initialize(this, gameId, this) 初始化SDK。
将您从开发者后台获取的 Game ID 以String类型,以及分别代表 activity 和 listener 的前后两个 this 作为参数传入:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    UnityAds.initialize(this, "1850470", this);
} 

提示:
Unity Ads 初始化一般需要至少10秒,建议您尽量在游戏生命周期的早期进行初始化。
Unity Ads 只初始化一次. SDK 2.0 的网络重连功能更加可靠. 您可以在没有网络连接的情况下尝试初始化, 之后 SDK 会在网络可用的时候再请求广告.

检查广告加载完成 ready 后,选择一个合法的 Placement ID 作为参数,和 this 一起传入 UnityAds.show() 来展示广告。

提示:
如果不指定 Placement ID,则展示 Default placement ID, 您可以在开发者后台查看您的 Default placement ID。
Unity Ads SDK 2.0 在任何一次调用展示(show)方法时候, 都需要传入一个 activity 作为参数 (如示例中的this ).

if (UnityAds.isReady("rewardedVideo")) {
	//广告加载完成 且 广告位合法
	UnityAds.show(this, "rewardedVideo");
}

到此步骤,您应该可以在运行时成功观看到广告展示。

对看完视频的玩家给予奖励

对看完视频的玩家给与奖励,可以提高玩家的参与度,从而带来更高的收入。常见的奖励方式如:

  • 免费的游戏货币
  • 一定时长的性能提速
  • 挑战失败后继续游戏
  • 游戏道具 或 解锁关卡

通过在 onUnityAdsFinish 回调方法里检查广告视频没有被跳过,确认玩家观看完整视频后再给与奖励。

@Override
public void onUnityAdsFinish(String placementID, UnityAds.FinishState state) {
    if (state != UnityAds.FinishState.SKIPPED) {
        //奖励用户
    }
}

到此步骤,您应该可以成功展示广告和奖励用户。


不使用 Android Studio 集成 Unity Ads

如果您的编译系统无法使用 AAR 包, 您仍可以下载 unity-ads.zip 文件集成 Unity Ads, 但您需要手动执行如下操作:

  1. 导入 classes.jar
  2. 手动合并 AndroidManifest.xml 中的内容.

注意:
确保您添加了 AdUnitActivityAdUnitSoftwareActivity activity
确保您添加了 INTERNETACCESS_NETWORK_STATE permission

  1. 如果您使用 ProGuard, 请将 proguard.txt 中的所有内容添加到您的 ProGuard 配置文件中.

Unity Ads Android 高级操作指南

如有其他疑问,请邮件发送至 unityads-support@unity3d.com 以获取技术支持。

Clone this wiki locally