Gösterim düzeyinde reklam geliri

Bir gösterim gerçekleştiğinde Google Mobile Ads SDK (Legacy), bu gösterimle ilişkili reklam geliri verilerini sağlar. Bu verileri kullanarak bir kullanıcının yaşam boyu değerini hesaplayabilir veya verileri diğer ilgili sistemlere iletebilirsiniz.

Bu kılavuz, Android uygulamanızda gösterim düzeyinde reklam geliri veri yakalama özelliğini uygulamanıza yardımcı olmak için hazırlanmıştır.

Ön koşullar

  • Google Mobile Ads SDK (Legacy) 21.1.0 veya sonraki bir sürümü içe aktarın.

Her reklam biçiminin bir OnPaidEventListener vardır. Bir reklam etkinliğinin yaşam döngüsü sırasında Google Mobile Ads SDK (Legacy), gösterim etkinliklerini izler ve işleyiciyi kazanılan bir değerle çağırır.

Aşağıdaki örnekte, ödüllü reklamlar için ücretli etkinlikler işlenmektedir:

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")
  }
}

Özel etkinlik reklam kaynağı adı belirleme

Özel etkinlik reklam kaynakları için getAdSourceName() yöntemi, Custom event reklam kaynağı adını döndürür. Birden fazla özel etkinlik kullanıyorsanız reklam kaynağı adı, birden fazla özel etkinlik arasında ayrım yapacak kadar ayrıntılı değildir. Belirli bir özel etkinliği bulmak için:

  1. getAdSourceName() yöntemini çağırın.
  2. Benzersiz bir reklam kaynağı adı belirleyin.

Aşağıdaki örnekte, özel bir etkinlik için benzersiz bir reklam kaynağı adı ayarlanmaktadır:

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
}

Kazanan reklam kaynağı hakkında daha fazla bilgi için Reklam yanıtı hakkında bilgi alma bölümüne bakın.

Uygulama İlişkilendirme Ortakları (AAP) entegrasyonu

Reklam geliri verilerini analiz platformlarına yönlendirme hakkında ayrıntılı bilgi için iş ortağının kılavuzuna bakın:

İş Ortağı SDK'sı
Adjust
AppsFlyer
Singular
Tenjin

Kullanımla ilgili en iyi uygulamalar

  • Reklam nesnesini oluşturduktan veya nesneye erişim elde ettikten hemen sonra ve kesinlikle reklamı göstermeden önce dinleyiciyi ayarlayın. Böylece ücretli etkinlik geri çağırmalarını kaçırmazsınız.
  • Ücretli etkinlik geri çağırma işlevi çağrıldığında, gösterim düzeyinde reklam geliri bilgilerini hemen tercih ettiğiniz analiz sunucusuna gönderin. Bu sayede, geri çağırmaları yanlışlıkla silmez ve veri tutarsızlıklarını önlersiniz.

AdValue

AdValue, bir reklam için kazanılan maddi değeri temsil eden bir sınıftır. Değerin para birimi kodu ve kesinlik türü aşağıdaki gibi kodlanır.

PrecisionType Açıklama
UNKNOWN Bilinmeyen bir reklam değeri. Bu, YBD geri pingi etkinleştirildiğinde ancak yeterli veri olmadığında döndürülür.
ESTIMATED Birleştirilmiş verilerden tahmin edilen bir reklam değeridir.
PUBLISHER_PROVIDED Uyumlulaştırma grubundaki manuel BGBM'ler gibi yayıncı tarafından sağlanan reklam değeri.
PRECISE Bu reklam için ödenen kesin değer.

AdMob Uyumlulaştırması'nda AdMob, optimize edilmiş reklam kaynakları için ESTIMATED değeri sağlamaya çalışır. Optimize edilmemiş reklam kaynakları için veya anlamlı bir tahmin raporlamak için yeterli birleştirilmiş veri olmadığında PUBLISHER_PROVIDED değeri döndürülür.

Teklifli sistem reklam kaynaklarından gelen test gösterimleri

Bir teklifli sistem reklam kaynağı için test isteği aracılığıyla gösterim düzeyinde reklam geliri etkinliği gerçekleştiğinde yalnızca aşağıdaki değerleri alırsınız:

  • UNKNOWN: Kesinlik türünü gösterir.
  • 0: Reklam değerini gösterir.
Daha önce kesinlik türünü UNKNOWN dışında bir değer, reklam değerini ise 0 değerinden yüksek olarak görmüş olabilirsiniz.

Test reklamı isteği gönderme hakkında ayrıntılı bilgi için Test cihazlarını etkinleştirme başlıklı makaleyi inceleyin.