文档

​
​

Development

User Acquisition

Monetization

工业

LevelPlay SDK - iOS

Unity SDK

Android SDK

iOS SDK

Adobe AIR SDK

Flutter SDK

React Native SDK

LevelPlay SDK - iOS

Unity LevelPlay
​
​
iOS SDK
  • 开始使用
  • 法规和设置
    • 法规高级设置
    • iOS 的高级设置
    • 隐私设置和配置
    • Apple 应用隐私调查问卷
    • 展示级别收入集成
    • 集成 AdInfo 的 LevelPlay 监听器
  • 广告格式
  • 聚合网络
  • 测试集成
  1. 实现游戏增长
  2. Unity LevelPlay
  3. LevelPlay SDK
  4. 适用于 iOS 开发者的 LevelPlay SDK

iOS 的展示级收入集成

使用展示级别收入(ILR) SDK API 将展示级别收入数据集成到数据分析服务平台。
阅读时间5 分钟
最后更新于 4 天前

先决条件

确保已将 LevelPlay SDK 9.5.0+ 正确集成到应用程序中。请参阅 iOS SDK 集成。
有关展示级别收入 (ILR) SDK 功能和先决条件的更多信息,请参阅展示级别收入服务器端 API。

实现 LPMImpressionDataDelegate

LevelPlay SDK 会触发回传以通知您显示的广告。LPMImpressionDataDelegate 是一个可选的委托,您可以实现此委托来接收展示数据。此监听器将为您提供有关所有广告单位的信息,并且您可以使用展示量收入来识别不同的广告服务。
要将 ImpressionData 监听器添加到应用程序中,请在初始化 LevelPlay SDK 之前声明监听器以避免任何信息丢失。
+ (void)addImpressionDataDelegate:(id<LPMImpressionDataDelegate>)delegate;
LevelPlay.添加(_ 委托:任何 LPMImpressionDataDelegate)
LevelPlay SDK 将通知您的委托与展示数据相关的成功回传:
- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData;
func impressionDataDidSucceed(_ impressionData:LPMImpressionData)

设置印象委托

实现
LPMImpressionDataDelegate
并通过调用
setImpressionDataDelegate:
在每个广告对象上进行设置。在构建广告对象之后以及加载或显示广告对象之前立即分配广告对象,这样就不会错过展示量。每个委托仅接收分配给它的实例的展示。
注意
广告对象会弱小地保存展示委托。保持对委托的强引用,否则可能会取消分配并停止接收回调。

插页式视频

self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"];[self.interstitialAd setImpressionDataDelegate:self];#pragma mark - LPMImpressionDataDelegate Methods- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData { } NSLog(@"Interstitial impressionDataDidSucceed: %@", impressionData);}
self.interstitialAd = LPMInterstitialAd(adUnitId: "adUnitId")self.interstitialAd.setImpressionDataDelegate(self)// MARK:LPMImpressionDataDelegatefunc impressionDataDidSucceed(_ impressionData:LPMImpressionData) { print("Interstitial impressionDataDidSucceed: \(impressionData)")}

奖励视频

self.rewardedAd = [[LPMRewardedAd alloc] initWithAdUnitId:@"adUnitId"];[self.rewardedAd setImpressionDataDelegate:self];#pragma mark - LPMImpressionDataDelegate Methods- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData { } NSLog(@"Rewarded impressionDataDidSucceed: %@", impressionData);}
self.rewardedAd = LPMRewardedAd(adUnitId: "adUnitId")self.rewardedAd.setImpressionDataDelegate(self)// MARK:LPMImpressionDataDelegatefunc impressionDataDidSucceed(_ impressionData:LPMImpressionData) { print("Rewarded impressionDataDidSucceed: \(impressionData)")}

横幅广告

self.bannerAdView = [[LPMBannerAdView alloc] initWithAdUnitId:@"adUnitId"];[self.bannerAdView setImpressionDataDelegate:self];#pragma mark - LPMImpressionDataDelegate Methods- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData { } NSLog(@"Banner impressionDataDidSucceed: %@", impressionData);}
self.bannerAdView = LPMBannerAdView(adUnitId: "adUnitId")self.bannerAdView.setImpressionDataDelegate(self)// MARK:LPMImpressionDataDelegatefunc impressionDataDidSucceed(_ impressionData:LPMImpressionData) { print("Banner impressionDataDidSucceed: \(impressionData)")}

删除展示数据监听器

要停止接收广告对象的展示数据,请将
nil
通道给
setImpressionDataDelegate:
。
[self.interstitialAd setImpressionDataDelegate:nil];[self.rewardedAd setImpressionDataDelegate:nil];[self.bannerAdView setImpressionDataDelegate:nil];
interstitialAd.setImpressionDataDelegate(nil)rewardedAd.setImpressionDataDelegate(nil)bannerAdView.setImpressionDataDelegate(nil)
注意
从 LevelPlay SDK 7.1.0 版本开始,setImpressionDataDelegate 已弃用并替换为 addImpressionDataDelegate。

集成 ILR 数据

实现 LPMImpressionDataDelegate 后,您可以将展示数据发送到您自己的专有 BI 工具和 DWH,或者将其与第三方工具集成。
重要
返回的数据可能包括 null 值。确保在分配数据之前添加保护以避免潜在的崩溃。
您可以单独引用每个字段,也可以使用 allData 方法获取所有信息:
- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData { NSNumber *revenue = impressionData.revenue; NSString *ad_network = impressionData.adNetwork; NSDictionary *all_data = impressionData.allData;}
func impressionDataDidSucceed(_ impressionData:LPMImpressionData) { 让收入:Float = impressionData.revenue as?Float ??float0.0 让 adNetwork:String = impressionData.adNetwork ?? "unknown" let allData:Dictionary = impressionData.allData as?字典<string, any>?? [:] }
以下示例展示了如何将展示级别收入 SDK API 数据与 Google Firebase 数据分析服务集成。您可以按原样使用,或进行任何必要的更改,以便与第三方报告工具或您自己的专有优化工具和数据库集成。
重要
确保内部参数不为 null。
/** 成功显示广告并记录展示数据时调用 **/- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData { NSLog(@"%s", __PRETTY_FUNCTION__); [FIRAnalytics logEventWithName:kFIREventAdImpression parameters:@{ kFIRParameterAdPlatform:@"LevelPlay", kFIRParameterAdSource:(impressionData.ad_network ?: @"No ad_network", kFIRParameterAdFormat:(impressionData.ad_format ?: @"No ad_format"), kFIRParameterAdUnitName:(impressionData.instance_name ?: @"No instance_name"), kFIRParameterCurrency:@"USD", kFIRParameterValue:(impressionData.revenue ?: @0) }];}
/** 成功显示广告并记录展示数据时调用 **/ func impressionDataDidSucceed(_ impressionData:LPMImpressionData) { print("\(#function)") Analytics.logEvent( AnalyticsEventAdImpression、 参数:[ AnalyticsParameterAdPlatform:"LevelPlay", AnalyticsParameterAdSource: impressionData.ad_network ??“No ad_network”, AnalyticsParameterAdFormat: impressionData.ad_format ??"No ad_format", AnalyticsParameterAdUnitName: impressionData.instance_name ??"No instance_name", AnalyticsParameterCurrency:"USD", AnalyticsParameterValue: impressionData.revenue ??0, ])}

Copyright © 2026 Unity Technologies
法律信息隐私政策CookiesDocumentation Terms of Use请勿出售或分享我的个人信息您的隐私选择(Cookie 设置)

“Unity”、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属公司在美国和其他地方的商标或注册商标(此处查看更多信息)。其他名称或品牌是其各自所有者的商标。

为方便起见,一些页面是机器翻译的,可能包含不准确的内容。如有信息不一致的情况,以英文版本为准。

  • 在本页上
    • 先决条件

    • 实现 LPMImpressionDataDelegate

      • 设置印象委托

        • 插页式视频

        • 奖励视频

        • 横幅广告

      • 删除展示数据监听器

    • 集成 ILR 数据


报告此页面的问题