Unityのインプレッション レベルの収益インテグレーション
インプレッションレベル収益(ILR)ソリューションを使用して、各インプレッションの広告収益データを追跡し、サードパーティ製の Analytics プラットフォームと統合します。
読み終わるまでの所要時間 6 分最終更新 6日前
前提条件
LevelPlay SDK 9.5.0 以降がアプリケーションに正しく統合されていることを確認します。Unity パッケージインテグレーション を参照してください。
インプレッションレベル収益(ILR)SDKの特徴と前提条件の詳細については、インプレッションレベル収益のサーバー側APIを参照してください。
インプレッションイベントの実装
LevelPlay SDK はポストバックを起動して、表示された広告について通知します。イベントは、インプレッションデータを受信するために各広告オブジェクトでサブスクライブできる任意のイベントです。このリスナーは、すべての広告ユニットに関する情報を提供し、インプレッションレベルの収益を使用してさまざまな広告を識別できます。
OnAdImpressionDataReadyImpressionData リスナーをアプリケーションに追加するには、LevelPlay SDK を初期化する前にリスナーを宣言して、情報の損失を避けてください。
LevelPlay SDK は背景スレッドでコールバックをトリガーし、インプレッションデータのポストバックが成功したことをリスナーに通知します。
// This event is triggered on a background thread, not the Unity main thread.LevelPlay.OnImpressionDataReady += ImpressionDataReadyEvent;private void ImpressionDataReadyEvent(LevelPlayImpressionData impressionData){}
インプレッションイベントの設定
各広告オブジェクトのをサブスクライブします。インプレッションを逃さないように、広告オブジェクトの構築直後、かつロードまたは表示する前に登録してください。各イベントは、そのイベントが属する広告インスタンスのインプレッションのみを配信します。
OnAdImpressionDataReadyLevelPlayInterstitialAd interstitialAd = new LevelPlayInterstitialAd("adUnitId");interstitialAd.OnAdImpressionDataReady += OnInterstitialImpressionDataReady;void OnInterstitialImpressionDataReady(LevelPlayImpressionData impressionData){ Debug.Log($"Interstitial OnAdImpressionDataReady: {impressionData}");}LevelPlayRewardedAd rewardedAd = new LevelPlayRewardedAd("adUnitId");rewardedAd.OnAdImpressionDataReady += OnRewardedImpressionDataReady;void OnRewardedImpressionDataReady(LevelPlayImpressionData impressionData){ Debug.Log($"Rewarded OnAdImpressionDataReady: {impressionData}");}LevelPlayBannerAd bannerAd = new LevelPlayBannerAd("adUnitId");bannerAd.OnAdImpressionDataReady += OnBannerImpressionDataReady;void OnBannerImpressionDataReady(LevelPlayImpressionData impressionData){ Debug.Log($"Banner OnAdImpressionDataReady: {impressionData}");}
インプレッションイベントの削除
広告オブジェクトのインプレッションデータの受信を停止するには、で登録を解除します。
-=interstitialAd.OnAdImpressionDataReady -= OnInterstitialImpressionDataReady;rewardedAd.OnAdImpressionDataReady -= OnRewardedImpressionDataReady;bannerAd.OnAdImpressionDataReady -= OnBannerImpressionDataReady;
ILR データの統合
インプレッションイベントにサブスクライブしたら、独自のプロプライエタリ BI ツールと DWH にインプレッションデータを送信したり、サードパーティ製のツールと統合したりできます。
各フィールドを個別に参照するか、 allData メソッドを使用してすべての情報を取得できます。
private void OnInterstitialImpressionDataReady(LevelPlayImpressionData impressionData){ string allData = impressionData.AllData; string adNetwork = impressionData.AdNetwork; double? revenue = impressionData.Revenue;}
フィールドの説明や種類など、使用可能な ILR データの完全なリストについては、インプレッションレベル収益サーバー側 API を参照してください。
以下の例では、インプレッションレベル収益SDK APIデータをGoogle Analytics for Firebaseと統合する方法について詳しく説明します。そのまま使用することも、サードパーティ製のレポート作成ツールや独自のプロプライエタリ最適化ツールおよびデータベースと統合するために必要な変更を加えることもできます。
private void OnInterstitialImpressionDataReady(LevelPlayImpressionData impressionData) { Debug.Log("unity-script:ImpressionDataReadyEvent impressionData = " + impressionData); if (impressionData != null) { Firebase.Analytics.Parameter[] AdParameters = { new Firebase.Analytics.Parameter("ad_platform", "LevelPlay"), new Firebase.Analytics.Parameter("ad_source", impressionData.AdNetwork), new Firebase.Analytics.Parameter("ad_format", impressionData.AdFormat), new Firebase.Analytics.Parameter("ad_unit_name", impressionData.InstanceName), new Firebase.Analytics.Parameter("currency", "USD"), new Firebase.Analytics.Parameter("value", impressionData.Revenue ??0) // null 値の保護を追加 }; Firebase.Analytics.FirebaseAnalytics.LogEvent("custom_ad_impression", AdParameters); }}