# Flutter 的印象级别收入集成

> 集成展示量级别收入(ILR) SDK API 可捕获每个展示量的实时广告收入数据，从而实现详细的 Monetization 见解并与第三方数据分析服务平台无缝集成。

## 先决条件##prerequisites

确保已将 LevelPlay SDK 7.0.3+ 正确[集成](/grow/levelplay/sdk/flutter/plugin-integration.md)到您的应用程序中。

## 实现 ImpressionData 监听器##implement-the-impressiondata-listener

Unity LevelPlay SDK 会触发回传以通知您显示的广告。`LevelPlayImpressionData`监听器是一个可选监听器，可以实现它来接收展示数据。此监听器为您提供有关所有广告单位的信息，并使您能够使用展示量收入识别不同的广告服务。

如果要将`LevelPlayImpressionData`监听器添加到应用程序中，请确保在初始化 Unity LevelPlay SDK 之前声明监听器，以避免任何信息丢失。

```dart
LevelPlay.addImpressionDataListener(this);
```

Unity LevelPlay SDK 将通知您的监听器与展示数据相关的成功回传。请参阅以下`onImpressionSuccess`示例：

```dart
abstract class LevelPlayImpressionDataListener {
   void onImpressionSuccess(LevelPlayImpressionData? impressionData);
}
```

## 集成 ILR 数据##integrate-the-ilr-data

实现`LevelPlayImpressionDataListener`后，您可以使用展示数据并将其发送到您自己的专有 BI 工具和 DWH，或者将其与第三方工具集成。

> **Note:**
>
> 返回的数据可能包括 null 值。确保在分配数据之前添加保护，以避免潜在的崩溃。

您可以单独引用每个字段，也可以使用 allData 方法获取所有信息：

```dart
@override
void onImpressionSuccess(LevelPlayImpressionData? impressionData) {
    字符串？ auctionId = impressionData?.auctionId;
    字符串？ adUnit = impressionData?.adUnit;
    字符串？ adUnitName = impressionData?.adUnitName;
    String? adUnitId = impressionData?.adUnitId;
    字符串？ adFormat = impressionData?.adFormat;
    字符串？ country = impressionData?.country;
    字符串？ab = impressionData?.ab;
    String? segmentName = impressionData?.segmentName;
    字符串 放置/位置 = impression放置/位置;
    字符串？ adNetwork = impressionData?.adNetwork;
    字符串？instanceName = impressionData?.instanceName;
    字符串？instanceId = impressionData?.instanceId;
    double? revenue = impressionData?.revenue;
    字符串？精度 = impressionData?.precision;
    double? lifetimeRevenue = impressionData?.lifetimeRevenue;
    字符串？cryptedCPM = impressionData?.encryptedCPM;
    double? conversionValue = impressionData?.conversionValue;
}
```
