Unity加入Unity Ads打包到IOS的详细步骤笔记
1、准备
①从Package Manager中导入Advertisement.或者直接打开Services中的ADS,配置好项目信息,然后导入。
2、Unity DashBoard
注意:如果你的项目还未上线至App Store,那么你需要设置的是测试广告。可以勾上Unity中的Enable test Mode。也可以在Unity Dashboard中打开project Settings选择投放测试广告。
Unity Dashboard 地址:
https://dashboard.unity3d.com/monetization?_ga=2.145880372.187512823.1607336533-1794781052.1603796251 进入网页后,选择在Unity Ads配置好的项目,打开。
打开Placements,记下Game IDs以及广告的名字,Video是弹出广告、rewardedVideo是激励广告,这两个是默认的提供的广告展示,如果有其他需求可以自行设置,这里我用的是激励广告。
3、代码
创建Initialize Ads脚本,拖入至新创建的Ads对象。
以下是Initialize Ads中的脚本代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;
public class InitializeAds : MonoBehaviour, IUnityAdsListener
{
string gameId = "上面提到的GameIDs";
string myPlacementId = "rewardedVideo";//上面提到的广告名字
bool testMode = true; //测试广告
void Start()
{
//初始化广告
Advertisement.AddListener(this);
Advertisement.Initialize(gameId);
}
public void ShowRewardedVideo() //展示激励广告
{
// Check if UnityAds ready before calling Show method:
if (Advertisement.IsReady(myPlacementId)) //如果广告准备好了,展示广告
{
Advertisement.Show(myPlacementId);
}
else //如果没有准备好
{
//res.NoReadyAds(); //未准备好的逻辑
Debug.Log("Rewarded video is not ready at the moment! Please try again later!");
}
}
public void OnUnityAdsDidFinish(string placementId, ShowResult showResult)//观看广告的逻辑
{
// Define conditional logic for each ad completion status:
if (showResult == ShowResult.Finished) //观看完成
{
// Reward the user for watching the ad to completion.
// res.FinshAds(); //奖励
}
else if (showResult == ShowResult.Skipped) //观看未完成(如跳过)
{
//res.NoFinshAds(); //未观看完逻辑
// Do not reward the user for skipping the ad.
}
else if (showResult == ShowResult.Failed) //观看失败
{
Debug.LogWarning("The ad did not finish due to an error.");
}
}
public void OnUnityAdsReady(string placementId)
{
// If the ready Placement is rewarded, show the ad:
if (placementId == myPlacementId)//广告加载完成
{
// Optional actions to take when the placement becomes ready(For example, enable the rewarded ads button)
Debug.Log("加载完成");
}
}
public void OnUnityAdsDidError(string message)
{
// Log the error.
}
public void OnUnityAdsDidStart(string placementId)
{
// Optional actions to take when the end-users triggers an ad.
}
// When the object that subscribes to ad events is destroyed, remove the listener:
public void OnDestroy() //观看完广告后需要删除
{
Advertisement.RemoveListener(this);
}
}
代码中已经注释清楚了,如果有什么不懂的可以评论私聊询问。注意的是需要引用UnityEngine.Advertisements;以及继承IUnityAdsListener。
最后,将上面ShowRewardedVideo()方法放在合适的位置调用即刻。例如按钮点击时调用这个方法,弹出广告。
4、最后
展示效果:
这个是在Unity DashBoard中设置了广告可跳过
所以Unity运行时,左上角有个跳过的按钮,右上角是观看完毕关闭的按钮。在Unity中测试时,统一结果都是我上面的展示效果。接着就是打包Unity到Xcode了。
后面我再出个教程吧。(教程已出,在下方评论里)
最后在真机上运行测试
因为游戏上线了,我设置的是真实广告,然后测试广告是带有Unity标志的广告。
最后文章笔记记录到这里了,欢迎感兴趣的小伙伴下方参与评论。