ILRD
通过展示层级收入数据 (ILRD),您可以追踪并收集广告数据。
|
父类 |
方法 |
|
InterstitialAdDelegate |
|
|
NativeAdDelegate |
|
|
RewardedAdDelegate |
|
|
AdViewDelegate |
|
每个方法都包含一个 ImpressionData 参数,并带有一个 rawData 方法。此方法返回一个包含 ILRD 的 JSON 字符串(请参阅下表)。
备注
didTrackImpressionWithData 方法仅在统计广告展示次数后触发。
-
Logger 作为纯函数:
struct NetworkData: Decodable { let name: String let ad_unit_id: String } struct ImpressionDataModel: Decodable { let ad_unit_id: String let adType: String let currency: String let revenue: String let revenueUSD: String let precision: String let network: NetworkData } func logImpression(_ impressionData: ImpressionData?, tag: String = "Ad") { guard let raw = impressionData?.rawData else { print("[\(tag)] Impression: no data") return } guard let jsonData = raw.data(using: .utf8) else { print("[\(tag)] Impression: invalid encoding") return } do { let parsed = try JSONDecoder().decode(ImpressionDataModel.self, from: jsonData) print(""" [\(tag) Impression] ├─ adUnitId: \(parsed.ad_unit_id) ├─ adType: \(parsed.adType) ├─ currency: \(parsed.currency) ├─ revenue: \(parsed.revenue) ├─ revenueUSD: \(parsed.revenueUSD) ├─ precision: \(parsed.precision) ├─ networkName: \(parsed.network.name) └─ networkAdUnitId: \(parsed.network.ad_unit_id) """) } catch { print("[\(tag)] Impression parse error: \(error.localizedDescription)") print("[\(tag)] Raw: \(raw)") } } -
Callbacks 用于支持内置 Logger 的不同广告代码格式:
// MARK:- 插播广告 func interstitialAd(_ ad: InterstitialAd, didTrackImpressionWith impressionData: ImpressionData?) { logImpression(impressionData, tag: "Interstitial") } // MARK:- 激励广告 func rewardedAd(_ ad: RewardedAd, didTrackImpressionWith impressionData: ImpressionData?) { logImpression(impressionData, tag: "Rewarded") } // MARK:- 原生广告 func nativeAd(_ ad: NativeAd, didTrackImpressionWith impressionData: ImpressionData?) { logImpression(impressionData, tag: "Native") } // MARK: - AppOpen func appOpenAd(_ ad: AppOpenAd, didTrackImpressionWith impressionData: ImpressionData?) { logImpression(impressionData, tag: "AppOpen") } // MARK:- 横幅广告 func adView(_ adView: AdView, didTrackImpression impressionData: ImpressionData?) { logImpression(impressionData, tag: "Banner") }
可用数据
您可以解析 rawData 以获取下列信息:
|
键值 |
类型 |
描述 |
|
|
字符串 |
唯一的 |
|
|
字符串 |
广告类别:
|
|
|
字符串 |
广告网络使用的货币。 |
|
|
字符串 |
以广告网络货币计算的展示收入。使用 |
|
|
字符串 |
单次展示的收入,以美元为单位。 |
|
|
字符串 |
|
|
|
字符串 |
提供本次展示机会的广告网络的名称。 |
|
|
字符串 |
投放广告的网络中的唯一 ad unit ID。 |