原生Android和iOS都可以在app中集成使用unity的Ads服务,需要下载对应的SDK,这里就不介绍了,需要了解的戳这里:https://unityads.unity3d.com/help/index
本文主要是介绍如何在unity里使用Unity Ads
在unity里使用Unity Ads有两种方式:一种是通过unity资源包集成;另一种是使用Unity Services开启广告,推荐这种方法。
Tips:
- 在Unity的AssetStore官方账号下,可以下载到UnityAds的资源包。 https://assetstore.unity.com/packages/add-ons/services/unity-ads-66123
- 在Unity4.6及以上的版本里,可以使用资源包。在Unity5.4及其以下的版本里,都推荐使用资源包的方式进行集成。5.4以前的Service中所带的是UnityAds1.5,已于2017年早期不再进行维护和支持。
这里先讲使用Unity Services开启广告的方法。
第一步:在unity里设置build targets,设置iOS或者Android
第二步:在service窗口中开启ADS
第三步:在代码中使用广告
创建一个button,再创建一个UnityAdsButton脚本,然后将脚本附在button上
UnityAdsButton脚本:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Advertisements; [RequireComponent(typeof(Button))] publicclassUnityAdsButton : MonoBehaviour { Buttonm_Button; publicstringplacementId = "video"; voidStart() { m_Button = GetComponent<Button>(); if (m_Button) m_Button.onClick.AddListener(ShowAd); } voidUpdate() { if (m_Button) m_Button.interactable = Advertisement.IsReady(placementId); } voidShowAd() { ShowOptionsoptions = newShowOptions(); options.resultCallback = HandleShowResult; Advertisement.Show(placementId, options); } voidHandleShowResult(ShowResultresult) { if (result == ShowResult.Finished) { Debug.Log("Video completed - Offer a reward to the player"); } elseif (result == ShowResult.Skipped) { Debug.LogWarning("Video was skipped - Do NOT reward the player"); } elseif (result == ShowResult.Failed) { Debug.LogError("Video failed to show"); } } }
最后运行发布到iOS或Android上就可以了。
对于通过unity资源包集成
第一步:和上面的一样,在unity里设置build targets,设置iOS或者Android。
第二步:在Unity Ads Dashboard里创建一个Unity Ads Game ID
然后选择iOS或者Android
这样就可以获得一个Game ID 了
第三步:导入UnityAds的资源包
第四步:和上面的类似,但是脚本的内容有点差别
创建一个button,再创建一个UnityAdsButton脚本,然后将脚本附在button上,脚本代码里的gameId就是上面获得的Game ID
using UnityEngine; using UnityEngine.UI; using UnityEngine.Advertisements; //---------- ONLY NECESSARY FOR ASSET PACKAGE INTEGRATION: ----------// #if UNITY_IOS privatestringgameId = "1486551"; #elif UNITY_ANDROID private string gameId = "1486550"; #endif //-------------------------------------------------------------------// [RequireComponent(typeof(Button))] publicclassUnityAdsButton : MonoBehaviour { Buttonm_Button; publicstringplacementId = "rewardedVideo"; voidStart() { m_Button = GetComponent<Button>(); if (m_Button) m_Button.onClick.AddListener(ShowAd); //---------- ONLY NECESSARY FOR ASSET PACKAGE INTEGRATION: ----------// if (Advertisement.isSupported) { Advertisement.Initialize(gameId, true); } //-------------------------------------------------------------------// } voidUpdate() { if (m_Button) m_Button.interactable = Advertisement.IsReady(placementId); } voidShowAd() { ShowOptionsoptions = newShowOptions(); options.resultCallback = HandleShowResult; Advertisement.Show(placementId, options); } voidHandleShowResult(ShowResultresult) { if (result == ShowResult.Finished) { Debug.Log("Video completed - Offer a reward to the player"); } elseif (result == ShowResult.Skipped) { Debug.LogWarning("Video was skipped - Do NOT reward the player"); } elseif (result == ShowResult.Failed) { Debug.LogError("Video failed to show"); } } }
最后运行发布到iOS或Android上就可以了。
注意:在使用unity资源包集成的时候,一定不能开启服务里的ADS,不然unity会用service里的,而不使用导入的
暂无关于此日志的评论。