原文地址:https://blogs.unity3d.com/2015/04/09/integrating-unity-ads/
原文作者未做版權(quán)聲明,視為共享知識(shí)產(chǎn)權(quán)進(jìn)入公共領(lǐng)域,自動(dòng)獲得授權(quán)
在這篇文章里,我們將看到Unity新的廣告服務(wù)以及它是如何集成到你當(dāng)前的項(xiàng)目中去。我們的目標(biāo)是通過增加一些小的損耗和維護(hù)成本通過當(dāng)前(希望以后也是)的玩家來賺錢。你將看到具體要做那些才能將廣告系統(tǒng)整合到你的工程里面(相信我,沒有太多工作),以及一些可能會(huì)減緩你進(jìn)度的陷阱。
一、創(chuàng)建你的賬號(hào)
在工程里面設(shè)置廣告部分真的只有幾步。第一步是去Unity廣告系統(tǒng)網(wǎng)站然后創(chuàng)建一個(gè)賬號(hào)(免費(fèi)并且只需幾分鐘)。一旦你登陸以后,你將看到廣告系統(tǒng)的面板。要開始貨幣化你的項(xiàng)目的話,點(diǎn)擊“Start Monetizing”(你也可以點(diǎn)擊”Games“菜單然后點(diǎn)擊“Add New Game”)。
然后系統(tǒng)將詢問一些你項(xiàng)目的基本信息。繼續(xù)并且設(shè)定你的目標(biāo)平臺(tái)和項(xiàng)目名稱。如果你的項(xiàng)目已經(jīng)部署了,你可以查找一下。如果你的項(xiàng)目還在開發(fā)中,底部有一個(gè)鏈接你可以將開發(fā)版本添加到你的賬戶中。
一個(gè)有趣的事實(shí)是如果你的游戲同時(shí)支持iOS和安卓,你將在你的賬戶李米娜創(chuàng)建兩個(gè)不同的游戲配置文件。這意味著你將有不同的廣告ID,因此能夠獨(dú)立地追蹤各個(gè)平臺(tái)的廣告情況。
現(xiàn)在你的游戲已經(jīng)添加到你的Unity廣告系統(tǒng)的賬號(hào)里面了,你將看到你的游戲面板。有很多的控件、選項(xiàng)以及信息面板,但是我們目前只關(guān)心游戲ID。這個(gè)ID是我們控制廣告展現(xiàn)以及得到用戶反饋的關(guān)鍵。
張圖片是來自我給這篇文章創(chuàng)建的一個(gè)示例游戲。我強(qiáng)烈推薦你創(chuàng)建自己的賬號(hào)和游戲,而不是使用示例的Game ID,否則你的游戲收入都會(huì)到我的賬戶上。這也就是說,如果你要用我的游戲ID,我不會(huì)阻止你,畢竟誰不喜歡錢呢
二、把廣告SDK集成到你的項(xiàng)目
設(shè)置好了賬戶,就可以在游戲中插入廣告了。在Unity下,導(dǎo)航到資源商店(Window->Asset Store)下載并導(dǎo)入U(xiǎn)nity廣告資源包。請(qǐng)注意:如果在Unity5下工作,你可能會(huì)收到一個(gè)警告,這是因?yàn)檫@個(gè)包是在Unity4下打的并且上傳的。沒有危害,只是存在向后兼容的問題。
資源導(dǎo)入到你的項(xiàng)目中,初始化和展現(xiàn)就很簡單了。
注意:廣告SDK目前只支持iOS和安卓,你的編輯器設(shè)置也只能將目標(biāo)設(shè)為這兩個(gè)平臺(tái)。在進(jìn)行下一步之前,你可能要在Unity的構(gòu)建設(shè)置里面切換下平臺(tái)(File->Build Settings)。
在項(xiàng)目中,廣告是由腳本控制的,并且至少需要三行代碼,第一行代碼讓我們的腳本代碼能夠訪問廣告的名字空間:
using UnityEngine.Advertisements;
接著我們要初始化我們的廣告SDK。你可以在任何你喜歡的地方調(diào)用這個(gè)方法,但是必須在你調(diào)用廣告SDK的內(nèi)容之前。Initialize()函數(shù)的第一個(gè)參數(shù)是從Unity廣告系統(tǒng)網(wǎng)站上得到的游戲ID(記住,用你自己的而不是我的)。第二個(gè)參數(shù)是你的游戲是在測試模式下。一般來說,如果你的游戲還在開發(fā)中,這個(gè)項(xiàng)該被置為true。我們將在后面仔細(xì)討論。
Advertisement.Initialize("29239",true);
最后我們展示廣告。如果我們是在編輯器中運(yùn)行我們的項(xiàng)目,我們會(huì)看到一個(gè)通用的廣告版。如果實(shí)在設(shè)備上運(yùn)行,并且測試模式為true,那么我將看到一個(gè)占位符廣告。最后,如果我們?cè)谠O(shè)備上運(yùn)行并且測試模式為false,我們將看到一個(gè)真實(shí)的廣告。
Advertisement.Show();
現(xiàn)在,廣告系統(tǒng)的初始化不是立刻完成的,所以你需要在廣告表現(xiàn)出來等待它被加載好。這樣可以防止錯(cuò)誤,否則可能會(huì)困擾你,你可以通過函數(shù)isReady()來判斷廣告系統(tǒng)是否準(zhǔn)備好。
Advertisement.isReady();
現(xiàn)在把上面說的東西都放在一起,一個(gè)簡單的在游戲啟動(dòng)的時(shí)候用來展現(xiàn)廣告的腳本應(yīng)該看下來像這樣:
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 ();
}
}