インプレッション単位の広告収益

インプレッションが発生すると、そのインプレッションに関連する広告収益データが Google Mobile Ads SDK によって提供されます。このデータを使用して、ユーザーのライフタイム バリューを計算したり、データをダウンストリームの他の関連システムに転送したりできます。

このガイドでは、Unity プロジェクトでインプレッション単位の広告収益データ キャプチャを実装する方法について説明します。

前提条件

有料イベント ハンドラを実装する

各広告フォーマットには OnAdPaid イベントが含まれています。Google Mobile Ads SDK は広告イベントのライフサイクル全体でインプレッション イベントを監視しており、インプレッションが発生すると、得られた収益を表す AdValue とともにハンドラを呼び出します。

次の例では、リワード広告の有料イベントを処理します。

private void LoadRewardedAd()
{
   // Send the request to load the ad.
   AdRequest adRequest = new AdRequest();
   RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd rewardedAd, LoadAdError error) =>
   {
      // If the operation failed with a reason.
      if (error != null)
      {
         Debug.LogError("Rewarded ad failed to load an ad with error : " + error);
         return;
      }

      rewardedAd.OnAdPaid += this.HandleAdPaidEvent;
   });
}

public void HandleAdPaidEvent(AdValue adValue)
{
    // TODO: Send the impression-level ad revenue information to your
    // preferred analytics server directly within this callback.

    long valueMicros = adValue.Value;
    string currencyCode = adValue.CurrencyCode;
    PrecisionType precision = adValue.Precision;

    ResponseInfo responseInfo = rewardedAd.GetResponseInfo();
    string responseId = responseInfo.GetResponseId();

    AdapterResponseInfo loadedAdapterResponseInfo = responseInfo.GetLoadedAdapterResponseInfo();
    string adSourceId = loadedAdapterResponseInfo.AdSourceId;
    string adSourceInstanceId = loadedAdapterResponseInfo.AdSourceInstanceId;
    string adSourceInstanceName = loadedAdapterResponseInfo.AdSourceInstanceName;
    string adSourceName = loadedAdapterResponseInfo.AdSourceName;
    string adapterClassName = loadedAdapterResponseInfo.AdapterClassName;
    long latencyMillis = loadedAdapterResponseInfo.LatencyMillis;
    Dictionary<string, string> credentials = loadedAdapterResponseInfo.AdUnitMapping;

    Dictionary<string, string> extras = responseInfo.GetResponseExtras();
    string mediationGroupName = extras["mediation_group_name"];
    string mediationABTestName = extras["mediation_ab_test_name"];
    string mediationABTestVariant = extras["mediation_ab_test_variant"];
}

広告枠を落札した広告ソースについてさらに詳しい情報が必要な場合は、広告レスポンスに関する情報を取得するをご覧ください。

App Attribution Partner(AAP)と統合する

広告収益データを分析プラットフォームに転送する方法について詳しくは、各パートナーのガイドをご覧ください。

パートナー SDK
調整
AppsFlyer
単数形
Tenjin

実装に関するベスト プラクティス

  • 広告オブジェクトを作成または取得したら、広告を表示する前に、すぐに OnPaidEvent イベントを設定します。これにより、コールバックを逃すことがなくなります。
  • OnPaidEvent ハンドラで任意の分析サーバーにインプレッション単位の広告収益情報をすぐに送信します。これにより、誤ってコールバックを逃すことがなくなり、データの不一致を回避できます。

AdValue

AdValue は、広告で得られた金銭的価値を表すクラスで、その金銭的価値の通貨コードと、以下に示すエンコードされた精度タイプが含まれます。

AdValue.PrecisionType 説明
Unknown 広告の価値が不明。LTV Pingback が有効になっているものの、十分なデータがない場合に返されます。
Estimated 集計データから推定された広告の価値。
PublisherProvided パブリッシャーが指定した広告の価値(メディエーション グループ内の手動 CPM など)。
Precise この広告の正確な価値。

メディエーションの場合、AdMob は最適化された広告ソースの Estimated 値を提供しようとします。最適化されていない広告ソースの場合や、意味のある推計を得るのに十分な集計データがない場合は、PublisherProvided 値が返されます。

入札広告ソースからのインプレッションをテストする

テスト リクエストを介して入札広告ソースのインプレッション単位の広告収益イベントが発生すると、次の値のみが返されます。

  • Unknown: 精度タイプを示します。
  • 0: 広告の価値を示します。

以前は、精度タイプが Unknown 以外の値で、広告値が 0 より大きい場合がありました。

テスト広告リクエストの送信の詳細については、テストデバイスを有効にするをご覧ください。