# Flutterのインプレッションレベルの収益インテグレーション

> インプレッションレベル収益(ILR)SDK APIを統合し、各インプレッションの広告収益データをリアルタイムでキャプチャ。これにより、Monetizationに関する詳細な分析情報とサードパーティ製のAnalyticsプラットフォームとのシームレスなインテグレーションが可能になります。

## 前提条件##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) {
    String? auctionId = impressionData?.auctionId;
    String? adUnit = impressionData?.adUnit;
    String? adUnitName = impressionData?.adUnitName;
    String? adUnitId = impressionData?.adUnitId;
    String? adFormat = impressionData?.adFormat;
    String? country = impressionData?.country;
    String? ab = impressionData?.ab;
    String? segmentName = impressionData?.segmentName;
    String? placement = impressionData?.placement ;
    String? adNetwork = impressionData?.adNetwork;
    String? instanceName = impressionData?.instanceName;
    String? instanceId =  impressionData?.instanceId;
    double? revenue = impressionData?.revenue;
    String? precision = impressionData?.precision;
    double? lifetimeRevenue = impressionData?.lifetimeRevenue;
    String? encryptedCPM = impressionData?.encryptedCPM;
    double? conversionValue = impressionData?.conversionValue;
}
```
