インプレッションレベルレベニューの実装

Before you start ironSource SDK 7.0.3 以降がアプリケーションに正しく実装されていることを確認してください。実装の概要はこちら
SDK の機能によるインプレッションレベルレベニュー(ILR)仕様の詳細や前提条件などについてはこちらをご覧ください。

ImpressionDataListener の実装

ironSource SDK は、表示された広告の情報についてポストバックを発火して通知します。実装オプションとして、ImpressionDataListener でインプレッションデータを受信する事が出来ます。このリスナーはすべての広告ユニットに関する情報を提供するので、インプレッションレベルレベニューを使用して異なる広告を識別することができます。

アプリで ImpressionDataListener を使用する場合、情報の損失を防ぐため、必ず ironSource SDK を初期化する前にリスナーを設定してください。

ironSource SDK は、インプレッションデータに関するポストバックをリスナーに通知します:

IronSourceEvents.onImpressionSuccessEvent += ImpressionSuccessEvent;
private void ImpressionSuccessEvent(IronSourceImpressionData impressionData){}

Android アプリと iOS アプリの両方で、広告が表示された時にも通知を受け取るようにするには、onImpressionDataReadyEvent コールバックを使用します。アプリのバックグラウンドスレッドでコールバックが送信される可能性があるため、バックグラウンドスレッドで発生するすべてのアクションをサポートする処理を追加する必要があります。このコールバックを使用する場合、重複を避けるために onImpressionSuccess を削除してください。

IronSourceEvents.onImpressionDataReadyEvent += ImpressionDataReadyEvent;
private void ImpressionDataReadyEvent(IronSourceImpressionData impressionData){}

ILR データを実装する

ImpressionDataListener を実装すると、インプレッションデータを独自の BI ツールや DWH に送信したり、サードパーティツールと連携する事ができるようになります。

Note:  返されるデータには null 値が含まれる場合があります。潜在的なクラッシュを回避するために、データをアサインする前に必ず値を確認してください。

便利な仕様として、各フィールドを個別に参照する事も、allData メソッドで全ての情報を取得する事も出来ます:

private void ImpressionDataReadyEvent(IronSourceImpressionData impressionData)
{
    string allData = impressionData.allData;
    string adNetwork = impressionData.adNetwork;
    double? revenue = impressionData.revenue;
}

フィールドの説明とタイプを含む、利用可能な IL​​R データの完全なリストはこちらで確認出来ます。

以下は、インプレッションレベルレベニュー SDK API のデータを Google Analytics for Firebase へ実装する方法の例です。そのまま使用することも、必要な変更を加えてサードパーティのレポートツールや、独自の最適化ツール、データベース等へ実装することもできます。

private void ImpressionDataReadyEvent(IronSourceImpressionData impressionData) {
    Debug.Log ("unity-script:  ImpressionDataReadyEvent impressionData = " + impressionData);
    if (impressionData != null) {
        Firebase.Analytics.Parameter[] AdParameters = {
 		new Firebase.Analytics.Parameter("ad_platform", "ironSource"),
  		new Firebase.Analytics.Parameter("ad_source", impressionData.adNetwork),
  		new Firebase.Analytics.Parameter("ad_unit_name", impressionData.getAdUnit),
		new Firebase.Analytics.Parameter("ad_format", impressionData.getInstanceName),
  		new Firebase.Analytics.Parameter("currency","USD"),
                new Firebase.Analytics.Parameter("value", impressionData.getRevenue)
	};

	Firebase.Analytics.FirebaseAnalytics.LogEvent("ad_impression", AdParameters);
    }
}

Important! パラメーターが null では無いことを確認してください。