Unity Monetization 3.0 部分接入文档内容

 GameId 在 Operate Dashboard 左边的导航栏中Monetization --> Platforms 下,IOS和Android都有,是七位数数字。

一定记得,要 Monetization.Initialize(gameId, false); SDK为3.0

如果导入SDK3.0后打包安卓平台报错,那么可以试试把ads关掉,就能打包成功了。services下的ads的on搞成off就行。而且,亲测广告可用。

在Unity编辑器下是在主线程执行的回调,但是在安卓环境下,执行回调是在子线程中执行的,

原因是在回调中操作了UI,但是捕捉到了一个错误,在子线程不能操作UI的错误。由此推测:在移动平台(安卓和IOS)都是在子线程中执行回调函数。

集成Unity广告需要集成 插件SDK或者 打开ads service。但是不能同时打开,相当于集成了两个SDK,会冲突。

以下是官方文档原文

原文地址:Unity developer integration guides

Unity 广告 Konowledge base 
 Unity的接入引导
 概述
  这个接入引导是为了你使用Unity制作的游戏中导入Unity 广告
   *如果你是IOS开发者,使用Object-C,点这里:https://unityads.unity3d.com/help/ios/integration-guide-ios
   *如果你是安卓开发者,使用Java,点这里:https://unityads.unity3d.com/help/android/integration-guide-android
  
  Unity的 Monetization(变现) 平台提供给你强大的变现工具。如果你的游戏既使用游戏内购买,也有广告,unity的机器学习数据模型可以优化变现战略,无缝插入内容类型,学习更多关于Unity帮助你增加收入 ,看文档在:https://unityads.unity3d.com/help/monetization/placements
  在这个引导中
   *实现基础的广告
   *实现带奖励的广告
   *横幅广告
   *测试你的操作
   *高级变现建议
   *api的引用
  基础的实现
   配置你的项目
    设置打包平台
     配置你的项目支持一个平台,使用 打包设置窗口 ,设置平台为IOS或者安卓,然后点击 选择平台
   安装Unity Ads
   确保使用最新版本的Unity Ads,从资源商店下载他,Monetization 的API 要求SDK3.0或者更新。资源包的信息在下载和安装文件中,看资源包的文档
     下载地址:https://assetstore.unity.com/packages/add-ons/services/unity-ads-66123
     资源包文档:https://docs.unity3d.com/2018.1/Documentation/Manual/AssetPackages.html
   创建一个控件  注: Monetization 以下 称之为广告
    布局触发事件,让游戏显示广告内容,管理布局在开发者面板的 操作页签 选择你的项目,然后在左边的导航栏选择 Monetization > Placements 
     布局连接:https://unityads.unity3d.com/help/monetization/placements
     开发者面板:https://operate.dashboard.unity3d.com/
    点击 AddPlacement 按钮调出创建布局的提示,命名您的布局并选择其类型:
     *选择没有奖励(Non-rewarded)显示基础的缝隙广告或者促销内容,没有奖励的布局允许玩家在一定得时间后跳过
     *选择奖励(Rewarded),允许玩家选择观看广告以获得奖励,奖励布局不允许玩家跳过
     *选择横幅(Banner)创建一个专用横幅的布局
    所有的Unity广告激活的项目默认都有'免费视频'和'奖励视频',你自由选择使用适合你项目的它们或者创建你自己的
   初始化SDK
    初始化SDK,你必须引用合适的项目的游戏Id,在开发者面板的操作页签选择项目获取Id,然后在左边的导航栏选择 Monetization > Placements 
    在你的游戏代码头部,导入命名空间:UnityEngine.Monetization,在游戏时生命周期的开始初始化SDK,最好在启动时。使用 Monetization.Initialize (gameId, testMode); 方法。例子
    

      using UnityEngine.Monetization;
      public class UnityAdsScript : MonoBehaviour { 
      string gameId = "1234567";
      bool testMode = true;
      void Start () {
          Monetization.Initialize (gameId, testMode);
      }
      }


    实现基础的(没有奖励)的广告
    放置内容是一个对象代表变现内容,你的放置可以显示(更多信息,看文档在内容类型和个性化布局),使用 GetPlacementContent 方法,在准备显示时检索内容,和 Show 方法去显示他。看例子
  

     using UnityEngine.Monetization;
     public class UnityAdsPlacement : MonoBehaviour {
     public string placementId = "video";
     public void ShowAd () {
         StartCoroutine (ShowAdWhenReady ());
     }
     private IEnumerator ShowAdWhenReady () {
         while (!Monetization.IsReady (placementId)) {
             yield return new WaitForSeconds(0.25f);
         }
         ShowAdPlacementContent ad = null;
         ad = Monetization.GetPlacementContent (placementId) as ShowAdPlacementContent;
         if(ad != null) {
             ad.Show ();
         }
     }
     }


    在这个例子中,协程检查使用 IsReady 方法通过布局Id,可获得 PlacementContent ,如果内容可用,存储为一个变量,执行 show 方法
   实现奖励广告
    奖励玩家观看广告增加用户体验,导致更高的收入,在例子中,游戏可能奖励玩家游戏内的货币,消耗材料,增加生命值,或者经验倍数,如何有效设计你的奖励广告的更多信息,可以看文档,广告更好做法:https://unityads.unity3d.com/help/resources/best-practices
    奖励玩家观看广告,跟随相同步骤的详情在基础实现部分,但是显示广告使用奖励的回调方法和自定义的逻辑为玩家完成广告
   选择一个布局
    你必须显示奖励广告来展示奖励广告,所有Unity广告激活的项目也有一个默认的'奖励视频'布局,你自由选择使用适合你项目的它们或者创建你自己的
   添加回调方法在你的代码中
    show 方法接收回调,SDK使用返回一个 ShowResult 枚举,这个结果指示玩家是否完成或者跳过了广告,使用这个信息去写一个自定义的方法如何处理每个场景。看例子:
    

     using UnityEngine.Monetization;
     public class RewardedAdsPlacement : MonoBehaviour {
     public string placementId = "rewardedVideo";
     public void ShowAd () {
         StartCoroutine (WaitForAd ());
     }
     IEnumerator WaitForAd () {
         while (!Monetization.IsReady (placementId)) {
             yield return null;
         }
     
         ShowAdPlacementContent ad = null;
         ad = Monetization.GetPlacementContent (placementId) as ShowAdPlacementContent;
     
         if (ad != null) {
             ad.Show (AdFinished);
         }
     }
     void AdFinished (ShowResult result) {
         if (result == ShowResult.Finished) {
             // Reward the player
         }
     }
     }


   奖励广告按钮代码例子
    简介广告通常使用一个按钮提示玩家选择观看广告,以下描述了如何创建一个奖励广告按钮,在点击的时候显示一个广告,只要内容是可用的
     1.在Untiy编辑器,选择 GameObject -> UI -> Button 去添加一个按钮在你的场景。
     2.选中按钮,在属性面板,点击 AddComponent -> NewScript 给他添加一个脚本组件,脚本名字 和类型都是 UnityAdsButton 
     3.打开代码和添加以下例子代码
    

      using UnityEngine;
      using UnityEngine.UI;
      using UnityEngine.Monetization;
      [RequireComponent (typeof (Button))]
      public class UnityAdsButton : MonoBehaviour {
      public string placementId = "rewardedVideo";
      private Button adButton;
      #if UNITY_IOS
      private string gameId = "1234567";
      #elif UNITY_ANDROID
          private string gameId = "7654321";
      #endif
      void Start () {
          adButton = GetComponent<Button> ();
          if (adButton) {
              adButton.onClick.AddListener (ShowAd);
          }
      
          if (Monetization.isSupported) {
              Monetization.Initialize (gameId, true);
          }
      }
      void Update () {
          if (adButton) {
              adButton.interactable = Monetization.IsReady (placementId);
          }
      }
      void ShowAd () {
          ShowAdCallbacks options = new ShowAdCallbacks ();
          options.finishCallback = HandleShowResult;
          ShowAdPlacementContent ad = Monetization.GetPlacementContent (placementId) as ShowAdPlacementContent;
          ad.Show (options);
      }
      void HandleShowResult (ShowResult result) {
          if (result == ShowResult.Finished) {
              // Reward the player
          } else if (result == ShowResult.Skipped) {
              Debug.LogWarning ("The player skipped the video - DO NOT REWARD!");
          } else if (result == ShowResult.Failed) {
              Debug.LogError ("Video failed to show");
          }
      }
      }


    备注:这个例子在特定点,检查在游戏里放置内容是否准备好去显示,作为另一种方法,你可以实现监听器,在内容可用时通知您。
   实现横幅广告
    布局配置
     横幅广告要求一个横幅布局专用的特定类型,横幅广告当前显示锚定在屏幕的底部中心。
    代码实现
     在你的布局代码头部,声明命名空间 UnityEngine.Advertisement ,其中包含 Banner 类,初始化SDK使用 Advertisement.Banner.Show() ,显示横幅广告,看例子:
      

      using System.Collections;
      using UnityEngine;
      using UnityEngine.Advertisements;
      public class BannerAds : MonoBehaviour {
          public string bannerPlacement = "banner";
          public bool testMode = false;
      #if UNITY_IOS
          public const string gameID = "1234567";
      #elif UNITY_ANDROID
          public const string gameID = "1234568";
      #elif UNITY_EDITOR
          public const string gameID = "1111111";
      #endif
          void Start () {
              Advertisement.Initialize (gameID, testMode);
              StartCoroutine (ShowBannerWhenReady ());
          }
          IEnumerator ShowBannerWhenReady () {
              while (!Advertisement.IsReady ("banner")) {
                  yield return new WaitForSeconds (0.5f);
              }
              Advertisement.Banner.Show (bannerPlacement);
          }
      }


   测试
    在发布游戏之前,启用测试模式跟着这些步骤:
     1.在开发者面板 操作页签 选择你的项目,
     2.在左边的导航栏选择 Monetization -> Platforms
     3.选择期望的平台,然后选择 设置页签
     4.向下滚动到 测试模式 部分,切换客户端的测试模式,然后选择 强制测试模式开启单选按钮  Force test mode ON 按钮。
    在Unity编辑器,点击播放按钮运行你的项目和测试你的广告实现。
    注释:你必须在测试广告积分之前启用测试模式,以免欺诈行为
   优化你的收入
    祝贺实现Unity广告,我们的目标是简单的达到最大化你的收入,考虑到这一点,考虑下面的步骤:
     *你的游戏内购吗?
      ·如果是,实现内购宣传片宣传你的游戏
      ·如果不是,创建游戏内的商店使用Unity的内购插件
       IAP宣传片:https://docs.unity3d.com/2018.1/Documentation/Manual/IAPPromo.html
      Unity的内购插件:https://docs.unity3d.com/2018.1/Documentation/Manual/UnityIAP.html
     你有广告和安装了内购,使用个性化布局增加你的广告和内购战略提高你整个游戏的收入
      个性化:https://unityads.unity3d.com/help/monetization/placements#personalized-placements
     回顾我们的最佳实践指南,了解如何设计有效的广告机制。
      最佳实践:https://unityads.unity3d.com/help/resources/best-practices

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值