Unity 的印象级别收入集成
使用展示级别收入(ILR)解决方案来轨道每个展示量的广告收入数据,与第三方数据分析服务平台集成。
阅读时间4 分钟最后更新于 2 天前
先决条件
确保已将 LevelPlay SDK 9.5.0+ 正确集成到应用程序中。请参阅 Unity 软件包集成。
有关展示级别收入 (ILR) SDK 功能和先决条件的更多信息,请参阅展示级别收入服务器端 API。
实现印象事件
LevelPlay SDK 会触发回传以通知您显示的广告。事件是一个可选事件,您可以在每个广告对象上订阅以接收展示数据。此监听器将为您提供有关所有广告单位的信息,并且您可以使用展示量收入来识别不同的广告服务。
OnAdImpressionDataReady要将 ImpressionData 监听器添加到应用程序中,请确保在初始化 LevelPlay SDK 之前声明监听器,以避免任何信息丢失。
LevelPlay SDK 将在背景线程上触发器一个回调,以通知您的监听器器成功的展示数据回传:
// This event is triggered on a background thread, not the Unity main thread.LevelPlay.OnImpressionDataReady += ImpressionDataReadyEvent;private void ImpressionDataReadyEvent(LevelPlayImpressionData impressionData){}
设置展示事件
订阅每个广告对象的。在构建广告对象之后以及加载或展示广告对象之前立即订阅,这样就不会错过展示。每个事件仅为其所属的广告实例提供展示量。
OnAdImpressionDataReadyLevelPlayInterstitialAd interstitialAd = new LevelPlayInterstitialAd("adUnitId");interstitialAd.OnAdImpressionDataReady += OnInterstitialImpressionDataReady;void OnInterstitialImpressionDataReady(LevelPlayImpressionData impressionData){ Debug.Log($"Interstitial OnAdImpressionDataReady: {impressionData}");}LevelPlayRewardedAd rewardedAd = new LevelPlayRewardedAd("adUnitId");rewardAd.OnAdImpressionDataReady += OnRewardedImpressionDataReady;void OnRewardedImpressionDataReady(LevelPlayImpressionData impressionData){ Debug.Log($"Rewarded OnAdImpressionDataReady: {impressionData}");}LevelPlayBannerAd bannerAd = new LevelPlayBannerAd("adUnitId");bannerAd.OnAdImpressionDataReady += OnBannerImpressionDataReady;void OnBannerImpressionDataReady(LevelPlayImpressionData impressionData){ Debug.Log($"Banner OnAdImpressionDataReady: {impressionData}");}
删除印象事件
要停止接收广告对象的展示数据,请使用 取消订阅。
-=interstitialAd.OnAdImpressionDataReady -= OnInterstitialImpressionDataReady;rewardedAd.OnAdImpressionDataReady -= OnRewardedImpressionDataReady;bannerAd.OnAdImpressionDataReady -= OnBannerImpressionDataReady;
集成 ILR 数据
订阅展示事件后,您可以将展示数据发送到您自己的专有 BI 工具和 DWH,或者将其与第三方工具集成。
您可以单独引用每个字段,也可以使用 allData 方法获取所有信息:
private void OnInterstitialImpressionDataReady(LevelPlayImpressionData impressionData){ string allData = impressionData.AllData; string adNetwork = impressionData.AdNetwork; double? revenue = impressionData.Revenue;}
有关可用 ILR 数据的完整列表,包括字段描述和类型,请参阅展示级收入服务器端 API。
以下示例详细介绍了如何将展示级别收入 SDK API 数据与 Google Firebase 数据分析服务集成。您可以按原样使用,或进行任何必要的更改,以便与第三方报告工具或您自己的专有优化工具和数据库集成。
private void OnInterstitialImpressionDataReady(LevelPlayImpressionData impressionData) { Debug.Log("unity-script:ImpressionDataReadyEvent impressionData = " + impressionData); if (impressionData != null) { Firebase.Analytics.Parameter[] AdParameters = { new Firebase.Analytics.Parameter("ad_platform", "LevelPlay"), new Firebase.Analytics.Parameter("ad_source", impressionData.AdNetwork), new Firebase.Analytics.Parameter("ad_format", impressionData.AdFormat), new Firebase.Analytics.Parameter("ad_unit_name", impressionData.InstanceName), new Firebase.Analytics.Parameter("currency", "USD"), new Firebase.Analytics.Parameter("value", impressionData.Revenue ??0) // 为 null 值添加保护 }; Firebase.Analytics.FirebaseAnalytics.LogEvent("custom_ad_impression", AdParameters); }}