Unity加入Unity Ads打包到IOS的详细步骤笔记

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了。
这个是我第一次打包IOS参考的教程:
https://blog.csdn.net/star__119/article/details/79883086?utm_medium=distribute.pc_relevant.none-task-blog-utm_term-4&spm=1001.2101.3001.4242
后面我再出个教程吧。(教程已出,在下方评论里)

然后如果大家在打包的过程中遇到了我这篇文章中提到的问题时,可以参考一下。
Unity加入广告SDK打包IOS工程报错的经验记录

最后在真机上运行测试
在这里插入图片描述
因为游戏上线了,我设置的是真实广告,然后测试广告是带有Unity标志的广告。

最后文章笔记记录到这里了,欢迎感兴趣的小伙伴下方参与评论。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值