下載最新版本的 Unity Ads Framework
Unity iOS 2.0 SDK 最低支持 iOS 7.0
大綱
Quickstart 指南
新建游戲項(xiàng)目 Project
代碼集成
Swift
Objective-C
高級(jí)操作指南
Quickstart 指南
在Unity Ads Dashboard 新建一個(gè)游戲項(xiàng)目 Project
使用您的 UDN 賬戶登錄 UnityAds開發(fā)者操作臺(tái).
如果您還沒有 UDN 賬戶,請(qǐng)注冊(cè)
從開發(fā)者后臺(tái)選擇 Projects > 點(diǎn)擊 NEW PROJECT 新建一個(gè)項(xiàng)目.
提示: 如果您的游戲在美國(guó)發(fā)布且專門供美國(guó)13歲以下的兒童使用,依據(jù)美國(guó)兒童隱私保護(hù)法,您需要點(diǎn)擊COPPA勾選框。全年齡段適用的游戲則不需要勾選此項(xiàng)。
選中新建的項(xiàng)目 > Settings > Project Settings , 您可以看到Unity自動(dòng)為iOS和Android平臺(tái)分別生成的對(duì)應(yīng) GAME ID 。您將會(huì)在初始化 Unity Ads 時(shí)使用對(duì)應(yīng)的 Game ID 。
Locate your Game ID
選中新建的項(xiàng)目 > Monetization > Placements , 您可以查看廣告位,Unity會(huì)在您新建項(xiàng)目時(shí)默認(rèn)為您生成2個(gè)廣告位,您也可以手動(dòng)添加更多。
video (默認(rèn)廣告位 / 5秒后允許用戶跳過廣告)
rewardedVideo (不可跳過廣告)
可選: 通過Platform的設(shè)置選項(xiàng)開啟測(cè)試模式以接收測(cè)試廣告,游戲發(fā)布上線前,請(qǐng)您務(wù)必記得回到此處關(guān)閉測(cè)試模式,以免影響您的廣告收入。
Projects > 選中一個(gè)項(xiàng)目 > Settings > Project Settings > Test Mode > 選擇一個(gè)平臺(tái) > Force test mode ON
代碼集成
Swift 集成 Unity Ads
點(diǎn)擊跳轉(zhuǎn)Objective-C方式
導(dǎo)入U(xiǎn)nity Ads
下載最新版本的 Unity Ads Framework
拖拽UnityAds.framework到您的項(xiàng)目,添加時(shí)勾選 Copy items.
在 ViewController 中導(dǎo)入U(xiǎn)nityAds,并實(shí)現(xiàn) UnityAdsDelegate 協(xié)議
import UnityAds
class GameViewController: UIViewController, UnityAdsDelegate {
在 ViewController 中實(shí)現(xiàn)UnityAdsDelegate 協(xié)議的如下回調(diào)方法
unityAdsReady
unityAdsDidStart
unityAdsDidError
unityAdsDidFinish
func unityAdsReady(_ placementId: String) { }
func unityAdsDidStart(_ placementId: String) { }
func unityAdsDidError(_ error: UnityAdsError, withMessage message: String) { }
func unityAdsDidFinish(_ placementId: String, with state: UnityAdsFinishState) { }
到此步驟,您的項(xiàng)目應(yīng)該可以成功通過編譯。
初始化 Unity Ads 和 展示廣告
使用 UnityAds.initialize() 初始化SDK。
將您從開發(fā)者后臺(tái)獲取的 Game ID 以String類型,以及代表ViewController的 self 作為參數(shù)傳入:
override func viewDidLoad() {
super.viewDidLoad()
UnityAds.initialize("1003843", delegate: self)
}
提示:
Unity Ads 初始化一般需要至少10秒,建議您盡量在游戲生命周期的早期進(jìn)行初始化。
Unity Ads 只初始化一次. SDK 2.0 的網(wǎng)絡(luò)重連功能更加可靠. 您可以在沒有網(wǎng)絡(luò)連接的情況下嘗試初始化, 之后 SDK 會(huì)在網(wǎng)絡(luò)可用的時(shí)候再請(qǐng)求廣告.
檢查廣告加載完成 ready 后,選擇一個(gè)合法的 Placement ID 作為參數(shù),和 self 一起傳入 UnityAds.show() 來展示廣告。
提示:
如果不指定 Placement ID,則展示 Default placement ID, 您可以在開發(fā)者后臺(tái)查看您的 Default placement ID。
Unity Ads SDK 2.0 在任何一次調(diào)用展示(show)方法時(shí)候, 都需要傳入一個(gè) ViewController 作為參數(shù) (如示例中的self ).
let placement = "rewardedVideo"
if (UnityAds.isReady(placement)) {
//廣告加載完成 且 廣告位合法
UnityAds.show(self, placementId: placement)
}
到此步驟,您應(yīng)該可以在運(yùn)行時(shí)成功觀看到廣告展示。
對(duì)看完視頻的玩家給予獎(jiǎng)勵(lì)
對(duì)看完視頻的玩家給與獎(jiǎng)勵(lì),可以提高玩家的參與度,從而帶來更高的收入。常見的獎(jiǎng)勵(lì)方式如:
免費(fèi)的游戲貨幣
一定時(shí)長(zhǎng)的性能提速
挑戰(zhàn)失敗后繼續(xù)游戲
游戲道具 或 解鎖關(guān)卡
通過在 unityAdsDidFinish() 回調(diào)方法里檢查廣告視頻沒有被跳過,確認(rèn)玩家觀看完整視頻后再給與獎(jiǎng)勵(lì)。
func unityAdsDidFinish(_ placementId: String, with state: UnityAdsFinishState) {
if state != .skipped{
// 獎(jiǎng)勵(lì)用戶
}
}
到此步驟,您應(yīng)該可以成功展示廣告和獎(jiǎng)勵(lì)用戶。
Objective-C 集成 Unity Ads
導(dǎo)入U(xiǎn)nity Ads
下載最新版本的 Unity Ads Framework
拖拽UnityAds.framework到您的項(xiàng)目,添加時(shí)勾選 Copy items.
在 ViewController(.h)文件中導(dǎo)入U(xiǎn)nityAds,并實(shí)現(xiàn) UnityAdsDelegate 協(xié)議
#import "UnityAds/UnityAds.h"
@interface ViewController : UIViewController<UnityAdsDelegate>
在 ViewController(.m)文件中實(shí)現(xiàn)UnityAdsDelegate 協(xié)議的如下回調(diào)方法
- (void)unityAdsReady:(NSString *)placementId{
}
- (void)unityAdsDidError:(UnityAdsError)error withMessage:(NSString *)message{
}
- (void)unityAdsDidStart:(NSString *)placementId{
}
- (void)unityAdsDidFinish:(NSString *)placementId withFinishState:(UnityAdsFinishState)state{
}
到此步驟,您的項(xiàng)目應(yīng)該可以成功通過編譯。
初始化 Unity Ads 和 展示廣告
使用 UnityAds.initialize() 初始化SDK。
將您從開發(fā)者后臺(tái)獲取的 Game ID 以String類型,以及代表ViewController的 self 作為參數(shù)傳入:
- (void)viewDidLoad {
[super viewDidLoad];
[UnityAds initialize:@"1088169" delegate:self];
}
提示:
Unity Ads 初始化一般需要至少10秒,建議您盡量在游戲生命周期的早期進(jìn)行初始化。
Unity Ads 只初始化一次. SDK 2.0 的網(wǎng)絡(luò)重連功能更加可靠. 您可以在沒有網(wǎng)絡(luò)連接的情況下嘗試初始化, 之后 SDK 會(huì)在網(wǎng)絡(luò)可用的時(shí)候再請(qǐng)求廣告.
檢查廣告加載完成 ready 后,選擇一個(gè)合法的 Placement ID 作為參數(shù),和 self 一起傳入 UnityAds.show() 來展示廣告。
提示:
如果不指定 Placement ID,則展示 Default placement ID, 您可以在開發(fā)者后臺(tái)查看您的 Default placement ID。
Unity Ads SDK 2.0 在任何一次調(diào)用展示(show)方法時(shí)候, 都需要傳入一個(gè) ViewController 作為參數(shù) (如示例中的self ).
if ([UnityAds isReady:@"rewardedVideo"]) {
//廣告加載完成 且 廣告位合法
[UnityAds show:self placementId:@"rewardedVideo"];
}
到此步驟,您應(yīng)該可以在運(yùn)行時(shí)成功觀看到廣告展示。
對(duì)看完視頻的玩家給予獎(jiǎng)勵(lì)
對(duì)看完視頻的玩家給與獎(jiǎng)勵(lì),可以提高玩家的參與度,從而帶來更高的收入。常見的獎(jiǎng)勵(lì)方式如:
免費(fèi)的游戲貨幣
一定時(shí)長(zhǎng)的性能提速
挑戰(zhàn)失敗后繼續(xù)游戲
游戲道具 或 解鎖關(guān)卡
通過在 unityAdsDidFinish() 回調(diào)方法里檢查廣告視頻沒有被跳過,確認(rèn)玩家觀看完整視頻后再給與獎(jiǎng)勵(lì)。
- (void)unityAdsDidFinish:(NSString *)placementId withFinishState:(UnityAdsFinishState)state{
if (state != kUnityAdsFinishStateSkipped) {
//獎(jiǎng)勵(lì)用戶
}
}
到此步驟,您應(yīng)該可以成功展示廣告和獎(jiǎng)勵(lì)用戶。