【译】集成UNITY广告SDK(ADS)
发表于2016-03-15
原文作者未做版权声明,视为共享知识产权进入公共领域,自动获得授权
在这篇文章里,我们将看到Unity新的广告服务以及它是如何集成到你当前的项目中去。我们的目标是通过增加一些小的损耗和维护成本通过当前(希望以后也是)的玩家来赚钱。你将看到具体要做那些才能将广告系统整合到你的工程里面(相信我,没有太多工作),以及一些可能会减缓你进度的陷阱。
一、创建你的账号
在工程里面设置广告部分真的只有几步。第一步是去Unity广告系统网站然后创建一个账号(免费并且只需几分钟)。一旦你登陆以后,你将看到广告系统的面板。要开始货币化你的项目的话,点击“Start Monetizing”(你也可以点击”Games“菜单然后点击“Add New Game”)。
然后系统将询问一些你项目的基本信息。继续并且设定你的目标平台和项目名称。如果你的项目已经部署了,你可以查找一下。如果你的项目还在开发中,底部有一个链接你可以将开发版本添加到你的账户中。
一个有趣的事实是如果你的游戏同时支持iOS和安卓,你将在你的账户李米娜创建两个不同的游戏配置文件。这意味着你将有不同的广告ID,因此能够独立地追踪各个平台的广告情况。
现在你的游戏已经添加到你的Unity广告系统的账号里面了,你将看到你的游戏面板。有很多的控件、选项以及信息面板,但是我们目前只关心游戏ID。这个ID是我们控制广告展现以及得到用户反馈的关键。
张图片是来自我给这篇文章创建的一个示例游戏。我强烈推荐你创建自己的账号和游戏,而不是使用示例的Game ID,否则你的游戏收入都会到我的账户上。这也就是说,如果你要用我的游戏ID,我不会阻止你,毕竟谁不喜欢钱呢
二、把广告SDK集成到你的项目
设置好了账户,就可以在游戏中插入广告了。在Unity下,导航到资源商店(Window->Asset Store)下载并导入Unity广告资源包。请注意:如果在Unity5下工作,你可能会收到一个警告,这是因为这个包是在Unity4下打的并且上传的。没有危害,只是存在向后兼容的问题。
资源导入到你的项目中,初始化和展现就很简单了。
注意:广告SDK目前只支持iOS和安卓,你的编辑器设置也只能将目标设为这两个平台。在进行下一步之前,你可能要在Unity的构建设置里面切换下平台(File->Build Settings)。
在项目中,广告是由脚本控制的,并且至少需要三行代码,第一行代码让我们的脚本代码能够访问广告的名字空间:
using UnityEngine.Advertisements;
接着我们要初始化我们的广告SDK。你可以在任何你喜欢的地方调用这个方法,但是必须在你调用广告SDK的内容之前。Initialize()函数的第一个参数是从Unity广告系统网站上得到的游戏ID(记住,用你自己的而不是我的)。第二个参数是你的游戏是在测试模式下。一般来说,如果你的游戏还在开发中,这个项该被置为true。我们将在后面仔细讨论。
Advertisement.Initialize ("29239", true);
最后我们展示广告。如果我们是在编辑器中运行我们的项目,我们会看到一个通用的广告版。如果实在设备上运行,并且测试模式为true,那么我将看到一个占位符广告。最后,如果我们在设备上运行并且测试模式为false,我们将看到一个真实的广告。
Advertisement.Show ();
现在,广告系统的初始化不是立刻完成的,所以你需要在广告表现出来等待它被加载好。这样可以防止错误,否则可能会困扰你,你可以通过函数isReady()来判断广告系统是否准备好。
Advertisement.isReady ();
现在把上面说的东西都放在一起,一个简单的在游戏启动的时候用来展现广告的脚本应该看下来像这样:
using UnityEngine;
using UnityEngine.Advertisements;
using System.Collections;
public class SimpleAdScript : MonoBehaviour
{
void Start ()
{
Advertisement.Initialize ("29239", true);
StartCoroutine (ShowAdWhenReady ());
}
IEnumerator ShowAdWhenReady()
{
while (!Advertisement.isReady ())
yield return null;
Advertisement.Show ();
}
}
在下一篇文章里,我们将讨论更加深入的使用广告SDK,以及如何使用这里演示的概念来构建一个广告。