曝光層級廣告收益

選取平台: Android iOS Unity

如有曝光,Google Mobile Ads SDK 將提供與該曝光相關的廣告收益資料。您可以運用這項資料,計算使用者的生命週期價值,或將資料往下游轉送至其他相關系統。

本指南內容可協助您導入整合,以利於 Android 應用程式擷取曝光層級廣告收益資料。

先決條件

  • 匯入 Google Mobile Ads SDK 21.1.0 以上版本。

每種廣告格式都有 OnPaidEventListener。 在廣告事件的生命週期,Google Mobile Ads SDK 會監控曝光事件,然後叫用處理常式並傳送收益值。

以下示範如何處理獎勵廣告付費事件:

Java

private void setOnPaidEventListener(RewardedAd ad) {
  ad.setOnPaidEventListener(
      new OnPaidEventListener() {
        @Override
        public void onPaidEvent(@NonNull AdValue adValue) {
          // Extract the impression-level ad revenue data.
          long valueMicros = adValue.getValueMicros();
          String currencyCode = adValue.getCurrencyCode();
          int precision = adValue.getPrecisionType();

          // Get the ad unit ID.
          String adUnitId = ad.getAdUnitId();

          // Extract ad response information.
          AdapterResponseInfo loadedAdapterResponseInfo =
              ad.getResponseInfo().getLoadedAdapterResponseInfo();
          if (loadedAdapterResponseInfo != null) {
            String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
            String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
            String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
            String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();

            Bundle extras = ad.getResponseInfo().getResponseExtras();
            String mediationGroupName = extras.getString("mediation_group_name");
            String mediationABTestName = extras.getString("mediation_ab_test_name");
            String mediationABTestVariant = extras.getString("mediation_ab_test_variant");
          }
        }
      });
}

Kotlin

private fun setOnPaidEventListener(ad: RewardedAd) {
  ad.onPaidEventListener = OnPaidEventListener { adValue ->
    // Extract the impression-level ad revenue data.
    val valueMicros = adValue.valueMicros
    val currencyCode = adValue.currencyCode
    val precision = adValue.precisionType

    // Get the ad unit ID.
    val adUnitId = ad.adUnitId

    // Extract ad response information.
    val loadedAdapterResponseInfo = ad.responseInfo.loadedAdapterResponseInfo
    val adSourceName = loadedAdapterResponseInfo?.adSourceName
    val adSourceId = loadedAdapterResponseInfo?.adSourceId
    val adSourceInstanceName = loadedAdapterResponseInfo?.adSourceInstanceName
    val adSourceInstanceId = loadedAdapterResponseInfo?.adSourceInstanceId
    val extras = ad.responseInfo.responseExtras
    val mediationGroupName = extras.getString("mediation_group_name")
    val mediationABTestName = extras.getString("mediation_ab_test_name")
    val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
  }
}

找出自訂事件廣告來源名稱

針對自訂事件廣告來源,getAdSourceName() 方法會傳回廣告來源名稱 Custom event。如果有多個自訂事件,廣告來源名稱將不足以細分這些事件,因此請按照下列步驟操作,找出特定自訂事件:

  1. 呼叫 getAdSourceName() 方法。
  2. 設定專屬的廣告來源名稱。

以下示範如何設定自訂事件的專屬廣告來源名稱:

Java

private String getUniqueAdSourceName(@NonNull AdapterResponseInfo loadedAdapterResponseInfo) {

  String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
  if (adSourceName.equals("Custom Event")) {
    if (loadedAdapterResponseInfo
        .getAdapterClassName()
        .equals("com.google.ads.mediation.sample.customevent.SampleCustomEvent")) {
      adSourceName = "Sample Ad Network (Custom Event)";
    }
  }
  return adSourceName;
}

Kotlin

private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdapterResponseInfo): String {

  var adSourceName = loadedAdapterResponseInfo.adSourceName
  if (adSourceName == "Custom Event") {
    if (
      loadedAdapterResponseInfo.adapterClassName ==
        "com.google.ads.mediation.sample.customevent.SampleCustomEvent"
    ) {
      adSourceName = "Sample Ad Network (Custom Event)"
    }
  }
  return adSourceName
}

請參閱「擷取廣告回應的相關資訊」,進一步瞭解勝出的廣告來源。

應用程式歸因合作夥伴 (AAP) 整合

如需完整資訊,瞭解如何將廣告收益資料轉送至數據分析平台,請參閱合作夥伴指南:

合作夥伴 SDK
Adjust
AppsFlyer
Singular
Tenjin

導入最佳做法

  • 建立或取得廣告物件後,立即設定事件監聽器,且務必在顯示廣告前完成,以免錯過任何付費事件回呼。
  • 系統一呼叫付費事件回呼,便立即將曝光層級廣告收益資訊傳送至偏好的數據分析伺服器,避免不小心錯過任何回呼或資料不一致的問題。

AdValue

AdValue 類別代表廣告賺取的金額價值,包含貨幣代碼和精確度型別,編碼方式如下。

精準度類型 說明
UNKNOWN 廣告價值不明。如已啟用生命週期價值 (LTV) 自動參照通知,但資料不足,則系統會傳回此值。
ESTIMATED 根據匯總資料預估的廣告價值。
PUBLISHER_PROVIDED 由發布商提供的廣告價值,例如中介服務群組中的手動千次曝光出價。
PRECISE 為該廣告支付的精確價值。

如果是 AdMob 中介服務,AdMob 會嘗試針對已最佳化的廣告來源提供 ESTIMATED 值。

如果廣告來源未最佳化,或匯總資料不足以計算有意義的預估值,系統將傳回 PUBLISHER_PROVIDED 值。

測試出價廣告來源的曝光

送出測試請求,觸發出價廣告來源的曝光層級廣告收益事件之後,您只會收到下列值:

  • UNKNOWN:表示精確度類型。
  • 0:表示廣告價值。

先前,您看到的精確度類型值可能不是 UNKNOWN,且廣告價值大於 0

請參閱「啟用測試裝置」,進一步瞭解如何傳送測試廣告請求。