Android向けインプレッション レベルの収益インテグレーション
インプレッションレベル収益(ILR)SDK APIを統合し、各インプレッションの広告収益データをリアルタイムでキャプチャ。これにより、Monetizationに関する詳細な分析情報とサードパーティ製のAnalyticsプラットフォームとのシームレスなインテグレーションが可能になります。
読み終わるまでの所要時間 7 分最終更新 6日前
前提条件
LevelPlay SDK 9.5.0 以降がアプリケーションに正しく統合されていることを確認します。Android インテグレーションチェックリスト を参照してください。
LevelPlayImpressionDataListener を実装する
LevelPlay SDK はポストバックを起動して、表示された広告について通知します。LevelPlayImpressionDataListener は、インプレッションデータを受信するために実装できる任意のリスナーです。このリスナーは、すべての広告ユニットに関する情報を提供し、インプレッションレベルの収益を使用してさまざまな広告を識別できます。
LevelPlayImpressionDataListener をアプリケーションに追加するには、LevelPlay SDK を初期化する前にリスナーを宣言して、情報の損失を避けます。
public static void addImpressionDataListener(LevelPlayImpressionDataListener listener)
LevelPlay SDK は、インプレッションデータに関連する成功ポストバックをリスナーに通知します。
public static void addImpressionDataListener(ImpressionDataListener listener){ /** 広告が正常に表示され、インプレッションデータが記録されたときに呼び出されます。 **/ }
インプレッションリスナーの設定
LevelPlayImpressionDataListenersetImpressionDataListener()Java
import com.unity3d.mediation.impression.LevelPlayImpressionData;import com.unity3d.mediation.impression.LevelPlayImpressionDataListener;// InterstitialLevelPlayInterstitialAd interstitialAd = new LevelPlayInterstitialAd("adUnitId");interstitialAd.setImpressionDataListener(new LevelPlayImpressionDataListener() { @Override public void onImpressionSuccess(LevelPlayImpressionData impressionData) { Log.d(TAG, "Interstitial onImpressionSuccess: " + impressionData); }});// RewardedLevelPlayRewardedAd rewardedAd = new LevelPlayRewardedAd("adUnitId");rewardedAd.setImpressionDataListener(new LevelPlayImpressionDataListener() { @Override public void onImpressionSuccess(LevelPlayImpressionData impressionData) { Log.d(TAG, "Rewarded onImpressionSuccess: " + impressionData); }});// BannerLevelPlayBannerAdView bannerAdView = new LevelPlayBannerAdView(this, "adUnitId");bannerAdView.setImpressionDataListener(new LevelPlayImpressionDataListener() { @Override public void onImpressionSuccess(LevelPlayImpressionData impressionData) { Log.d(TAG, "Banner onImpressionSuccess: " + impressionData); }});
Kotlin
import com.unity3d.mediation.impression.LevelPlayImpressionDataimport com.unity3d.mediation.impression.LevelPlayImpressionDataListener// Interstitialval interstitialAd = LevelPlayInterstitialAd("adUnitId")interstitialAd.setImpressionDataListener(object :LevelPlayImpressionDataListener { override fun onImpressionSuccess(impressionData:LevelPlayImpressionData) { Log.d(TAG, "Interstitial onImpressionSuccess: $impressionData") }})// Rewardedval rewardedAd = LevelPlayRewardedAd("adUnitId")rewardedAd.setImpressionDataListener(object :LevelPlayImpressionDataListener { override fun onImpressionSuccess(impressionData:LevelPlayImpressionData) { Log.d(タグ, "Rewarded onImpressionSuccess: $impressionData") }})// Bannerval bannerAdView = LevelPlayBannerAdView(this, "adUnitId")bannerAdView.setImpressionDataListener(object :LevelPlayImpressionDataListener { override fun onImpressionSuccess(impressionData:LevelPlayImpressionData) { Log.d(TAG, "Banner onImpressionSuccess: $impressionData") }})
インプレッションデータの削除
広告オブジェクトのインプレッションデータの受信を停止するには、をに渡します。
nullsetImpressionDataListener()Java
interstitialAd.setImpressionDataListener(null);rewardedAd.setImpressionDataListener(null);bannerAdView.setImpressionDataListener(null);
Kotlin
interstitialAd.setImpressionDataListener(null)rewardedAd.setImpressionDataListener(null)bannerAdView.setImpressionDataListener(null)
ILR データの統合
LevelPlayImpressionDataListener を実装したら、インプレッションデータを独自のプロプライエタリ BI ツールと DWH に送信するか、サードパーティ製のツールと統合できます。
各フィールドを個別に参照するか、 allData メソッドを使用してすべての情報を取得できます。
public void onImpressionSuccess (LevelPlayImpressionData impressionData){ Double revenue = impressionData.getRevenue(); String adNetwork = impressionData.getAdNetwork(); JSONObject allData = impressionData.getAllData(); }
フィールドの説明や種類など、使用可能な ILR データの完全なリストについては、インプレッションレベル収益 SDK API を参照してください。
以下の例は、インプレッションレベル収益SDK APIデータをGoogle Analytics for Firebaseと統合する方法を示しています。そのまま使用することも、サードパーティ製のレポート作成ツールや独自のプロプライエタリ最適化ツールおよびデータベースと統合するために必要な変更を加えることもできます。
/** 広告が正常に表示され、インプレッションデータが記録されたときに呼び出されます。 **/ @Overridepublic void onImpressionSuccess(LevelPlayImpressionData impressionData) { // The onImpressionSuccess will be reported when the rewarded video and interstitial ad is opened. // For banners, the impression is reported on load success.Log.d(TAG, "onImpressionSuccess" + impressionData); if (impressionData != null) { Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.AD_PLATFORM, "LevelPlay"); bundle.putString(FirebaseAnalytics.Param.AD_SOURCE, impressionData.getAdNetwork()); bundle.putString(FirebaseAnalytics.Param.AD_FORMAT, impressionData.getAdFormat()); bundle.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, impressionData.getInstanceName()); bundle.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); bundle.putDouble(FirebaseAnalytics.Param.VALUE, java.util.Objects.requireNonNullElse(impressionData.getRevenue(), 0.0)); // null 値に対する保護を追加 mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, bundle); } }