chinese unity integration guide new - unity-cn/unityads-help-cn GitHub Wiki
/*
Title: Unity 编辑器集成指南
Description: A guide to integrating Unity Ads in Unity
Sort: 11
*/
这篇指南中包含以下两种在Unity里集成UnityAds的方式。
- 服务窗口(Services Window)方式。
- 资源包(Asset Package)方式。
大纲
- 设置 Build Targets
- 使用Unity Ads
- 服务窗口(Services Window)方式
- 资源包(Asset Package)方式
- 展示广告
- 奖励玩家
- 奖励按钮示例
- 在Dashboard上管理设置
在 Build Settings window 中配置一个支持的平台.
选择 iOS 或者 Android, 然后点击 Switch Platform.
使用Services Window或者Asset Package的方式接入广告服务,所需的步骤略微有些不同。
为了开启广告服务,您需要为Unity Services对您的项目进行配置,需要设置(关联或新建)组织 Organization 和项目 Project Name。详细步骤请参考 配置服务(setting up Services).
Services配置好后,就可以开启Unity Ads了:
- 在Unity编辑器里开启服务窗口: 选择 Window > Services .
- 从服务列表里选择 Ads 。
- 点击开关来开启服务(如图所示)。
- 如果您的游戏在美国发布且专门供美国13岁以下的儿童使用,依据美国儿童隐私保护法,您需要点击COPPA勾选框 (一般的全年龄段游戏不需要勾选), 然后点击继续(Continue)。
在上面使用服务窗口的方法里,由于关联了一个项目,所以它能读取到GameID从而为开发者进行初始化。使用Asset Package时,与Service Window唯一的区别是需要在源代码中传入GameID对UnityAds进行初始化。
获得 Unity Ads Game ID
-
使用UDN账户登录 UnityAds开发者操作台 > Projects, 选择已有的项目或者新建一个项目.
-
新建项目需填写项目信息.
-
选中一个项目 > Monetization > Platforms > GAME ID, 您可以看到Unity自动为iOS和Android平台分别生成的对应
GAME ID
。
更详细的如何创建和管理项目及平台,请参见《后台操作手册》。
初始化Unity Ads
-
声明使用Unity Ads命名空间,
UnityEngine.Advertisements
(详见 UnityEngine.Advertisements ):using UnityEngine.Advertisements;
-
尽量在游戏生命周期的早期,如游戏开启时,使用前面取得的Game ID 初始化Unity Ads,
gameId
:
Advertisement.Initialize(string gameId)
注意: 通常需要尽早初始化UnityAds。比如在一个Start()方法里。
-
声明使用Unity Ads命名空间,
UnityEngine.Advertisements
(详见 UnityEngine.Advertisements ):using UnityEngine.Advertisements;
-
调用
Show()
展示一个视频广告Advertisement.Show()
对看完视频的玩家给与奖励,可以提高玩家的参与度,从而带来更高的收入。比如可以奖励游戏内货币,可消耗道具,额外生命,或者奖励翻倍等。
想要检查玩家是否完整观看完毕广告视频,可以使用ShowOptions的resultCallback属性,在展示视频的时候挂接一个callback方法,然后通过在这个callback方法里检查result
等于ShowResult.Finished
来保证玩家观看完整视频后才被给与奖励。
- 在脚本里,添加一个callback处理方法HandleShowResult。
- 把配置好resultCallback的ShowOptions作为参数传入
Show()
方法。 - (可选) 如果想要广告视频不可被跳过,可以在调用
Show()
时同时指定不可被跳过的placement ID作为参数传入,如 “rewardedVideo” 。
void ShowRewardedVideo ()
{
ShowOptions options = new ShowOptions();
options.resultCallback = HandleShowResult;
Advertisement.Show(“rewardedVideo”, options);
}
void HandleShowResult (ShowResult result)
{
if(result == ShowResult.Finished) {
Debug.Log("Video completed - Offer a reward to the player");
// 奖励用户
}else if(result == ShowResult.Skipped) {
Debug.LogWarning("Video was skipped - Do NOT reward the player");
}else if(result == ShowResult.Failed) {
Debug.LogError("Video failed to show");
}
}
使用下面代码来创建一个奖励视频广告的按钮。在有加载好的广告时,点击这个按钮会展示一个视频广告。
- 选择 Game Object > UI > Button 在您的 Scene里添加一个按钮。
- 选择刚刚添加的这个按钮,使用 Inspector 为其添加一个脚本组件(在 Inspector 面板选择 Add Component > New Script), 给脚本命名为 UnityAdsButton 以和类名保持一致。
-
Open the script 并添加如下代码
注意: 如果您不是使用 Asset Package 方式集成,请记得删除掉标注在 ONLY NECESSARY FOR ASSET PACKAGE INTEGRATION 部分内的代码。
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;
[RequireComponent(typeof(Button))]
public class UnityAdsButton : MonoBehaviour
{
//---------- ONLY NECESSARY FOR ASSET PACKAGE INTEGRATION: ----------//
#if UNITY_IOS
private string gameId = "1486551";
#elif UNITY_ANDROID
private string gameId = "1486550";
#endif
//-------------------------------------------------------------------//
Button m_Button;
public string placementId = "rewardedVideo";
void Start ()
{
m_Button = GetComponent<Button>();
if (m_Button) m_Button.onClick.AddListener(ShowAd);
//---------- ONLY NECESSARY FOR ASSET PACKAGE INTEGRATION: ----------//
if (Advertisement.isSupported) {
Advertisement.Initialize (gameId, true);
}
//-------------------------------------------------------------------//
}
void Update ()
{
if (m_Button) m_Button.interactable = Advertisement.IsReady(placementId);
}
void ShowAd ()
{
ShowOptions options = new ShowOptions();
options.resultCallback = HandleShowResult;
Advertisement.Show(placementId, options);
}
void HandleShowResult (ShowResult result)
{
if(result == ShowResult.Finished) {
Debug.Log("Video completed - Offer a reward to the player");
}else if(result == ShowResult.Skipped) {
Debug.LogWarning("Video was skipped - Do NOT reward the player");
}else if(result == ShowResult.Failed) {
Debug.LogError("Video failed to show");
}
}
}
- 在Unity编辑器里点击 Play 来测试是否集成成功。
欢迎加入Unity广告论坛查阅更多信息并与其他开发者互动。
在Unity Ads的开发者控制台上,可以针对平台,以及广告位层面调整一些设置。
更多操作截图请参见《后台操作手册》
-
使用UDN账户登录 UnityAds开发者操作台 > Projects, 选择一个项目.
-
选择想要修改的平台 (iOS 或者 Android).
-
选择编辑一个广告位. (参见 广告位和广告过滤)