---
metadata:
  - name: generator
    content: Diplodoc Platform v5.57.3
alternate:
  - https://ads.yandex.com/helpcenter/en/easy/integration/android/advanced-settings/ilrd.md
  - https://ads.yandex.com/helpcenter/ru/easy/integration/android/advanced-settings/ilrd.md
  - https://ads.yandex.com/helpcenter/zh/easy/integration/android/advanced-settings/ilrd.md
  - href: zh/easy/integration/android/advanced-settings/ilrd.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://ads.yandex.com/helpcenter/zh/llms.txt

# ILRD

通过**展示层级收入数据 (ILRD)**，您可以追踪并收集广告数据。

#|
||

**父类**

|

**方法**

||
||

InterstitialAdEventListener

|

`onAdImpression`

||
||

NativeAdEventListener

|

`onImpression`

||
||

RewardedAdEventListener

|

`onAdImpression`

||
||

BannerAdEventListener

|

`onImpression`

||
|#

每个方法都包含一个 `ImpressionData` 参数，并带有一个 `getRawData` 方法。此方法返回一个包含 ILRD 的 JSON 字符串（请参阅[下表](#data)）。

{% note info %}

`onImpression / onAdImpression` 方法仅在统计广告展示次数后触发。

{% endnote %}


{% list tabs %}

- Kotlin

  ```kotlin
  data class ImpressionDataModel(
      val ad_unit_id: String,
      val adType: String,
      val currency: String,
      val revenue: String,
      val revenueUSD: String,
      val precision: String,
      val network: NetworkData
  )

  data class NetworkData(
      val name: String,
      val ad_unit_id: String
  )


  class ExampleNativeAdEventListener : NativeAdEventListener {
      // ...
      override fun onImpression(data: ImpressionData?) {
          val impressionData = data?.rawData?.let {
              try {
                  Gson().fromJson(it, ImpressionDataModel::class.java)
              } catch (_: Throwable) {
                  null
              }
          } ?: return

          // 现在，您可以访问已解析对象的字段。
          val adUnitId = impressionData.ad_unit_id
          val adType = impressionData.adType
          val currency = impressionData.currency
          val revenue = impressionData.revenue
          val revenueUSD = impressionData.revenueUSD
          val precision = impressionData.precision
          val networkName = impressionData.network.name
          val networkAdUnitId = impressionData.network.ad_unit_id

          // 您可以根据需要使用这些数据，例如，进行记录。
          println("Ad Unit ID: $adUnitId")
          println("Ad Type: $adType")
          println("Currency: $currency")
          println("Revenue: $revenue")
          println("Revenue USD: $revenueUSD")
          println("Precision: $precision")
          println("Network Name: $networkName")
          println("Network Ad Unit ID: $networkAdUnitId")
      }
  }
  ```

{% endlist %}

#### 可用数据 {#data}

您可以解析 `rawData` 以获取下列信息：

#|
||

**键值**

|

**类型**

|

**描述**

||
||

`ad_unit_id`

|

字符串

|

唯一的 ad unit ID。

||
||

`adType`

|

字符串

|

广告类别：

* 内嵌或粘性横幅广告。

* 插屏广告。

* 原生广告。

* 激励广告。

* 开屏广告。

||
||

`currency`

|

字符串

|

广告网络使用的货币。

||
||

`revenue`

|

字符串

|

以广告网络货币计算的展示收入。使用 `currency` 字段中指定的货币。

||
||

`revenueUSD`

|

字符串

|

单次展示的收入，以美元为单位。

||
||

`precision`

|

字符串

|

`revenue` 值的准确度。可接受的值：

* `publisher_defined`：考虑聚合界面 CPM 底价的数值。

* `estimated`：基于自动策略生成的数值。

||
||

`network.name`

|

字符串

|

提供本次展示机会的广告网络的名称。

||
||

`network.ad_unit_id`

|

字符串

|

投放广告的网络中的唯一 ad unit ID。

||
|#

