Gösterim düzeyinde reklam geliri

Bir gösterim gerçekleştiğinde GMA Next-Gen SDK, bu gösterimle ilişkili reklam geliri verilerini sağlar. Verileri, bir kullanıcının yaşam boyu değerini hesaplamak veya verileri aşağı akışta diğer ilgili sistemlere yönlendirmek için kullanabilirsiniz.

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

Ön koşullar

Her reklam biçiminin onAdPaid etkinlik geri çağırması vardır. Bir reklam etkinliğinin yaşam döngüsü sırasında GMA Next-Gen SDK, gösterim etkinliklerini izler ve kazanılan değerle işleyiciyi çağırır.

Aşağıdaki örnekte, ödüllü reklam için ücretli etkinlikler ele alınmaktadır:

Kotlin

ad.adEventCallback =
  object : RewardedAdEventCallback {
    override fun onAdPaid(adValue: AdValue) {
      // Send the impression-level ad revenue information to your
      // preferred analytics server directly within this callback.

      // Extract the impression-level ad revenue data.
      val valueMicros = adValue.valueMicros
      val currencyCode = adValue.currencyCode
      val precisionType = adValue.precisionType

      val loadedAdSourceResponseInfo = ad.getResponseInfo().loadedAdSourceResponseInfo
      val adSourceName = loadedAdSourceResponseInfo?.name
      val adSourceId = loadedAdSourceResponseInfo?.id
      val adSourceInstanceName = loadedAdSourceResponseInfo?.instanceName
      val adSourceInstanceId = loadedAdSourceResponseInfo?.instanceId
      val extras = ad.getResponseInfo().responseExtras
      val mediationGroupName = extras.getString("mediation_group_name")
      val mediationABTestName = extras.getString("mediation_ab_test_name")
      val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
    }
  }

Java

ad.setAdEventCallback(
    new RewardedAdEventCallback() {
      @Override
      public void onAdPaid(@NonNull AdValue value) {
        // Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.

        // Extract the impression-level ad revenue data.
        long valueMicros = value.getValueMicros();
        String currencyCode = value.getCurrencyCode();
        PrecisionType precisionType = value.getPrecisionType();

        AdSourceResponseInfo loadedAdSourceResponseInfo =
            ad.getResponseInfo().getLoadedAdSourceResponseInfo();
        String adSourceName = loadedAdSourceResponseInfo.getName();
        String adSourceId = loadedAdSourceResponseInfo.getId();
        String adSourceInstanceName = loadedAdSourceResponseInfo.getInstanceName();
        String adSourceInstanceId = loadedAdSourceResponseInfo.getInstanceId();

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

Özel etkinlik reklam kaynağı adını belirleme

Özel etkinlik reklam kaynakları için AdSourceResponseInfo.name özelliği reklam kaynağı adını Custom event 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. AdSourceResponseInfo.name özelliğini alın.
  2. Benzersiz bir reklam kaynağı adı belirleyin.

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

Kotlin

private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdSourceResponseInfo): String {
  var adSourceName = loadedAdapterResponseInfo.name
  if (adSourceName == "Custom Event") {
    if (
      loadedAdapterResponseInfo.adapterClassName ==
        "com.google.ads.mediation.sample.customevent.SampleCustomEvent"
    ) {
      adSourceName = "Sample Ad Network (Custom Event)"
    }
  }
  return adSourceName
}

Java

private String getUniqueAdSourceName(@NonNull AdSourceResponseInfo loadedAdapterResponseInfo) {
  String adSourceName = loadedAdapterResponseInfo.getName();
  if (adSourceName.equals("Custom Event")) {
    if (loadedAdapterResponseInfo
        .getAdapterClassName()
        .equals("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 başlıklı makaleyi inceleyin.

Kullanımla ilgili en iyi uygulamalar

  • Reklam nesnesini oluşturur veya nesneye erişir erişmez ve kesinlikle reklamı göstermeden önce dinleyiciyi ayarlayın. Bu sayede, ücretli etkinlik geri aramalarını kaçırmazsınız.
  • Ücretli etkinlik geri çağırması çağrıldığında gösterim düzeyindeki reklam geliri bilgilerini hemen tercih ettiğiniz analiz sunucusuna gönderin. Bu sayede, geri aramaları yanlışlıkla bırakmaz ve veri tutarsızlıklarını önlersiniz.

AdValue

AdValue, bir reklamdan kazanılan parasal değeri temsil eden bir sınıftır. Bu değerin para birimi kodu ve aşağıdaki gibi kodlanmış kesinlik türü de dahildir.

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 Yayıncı tarafından sağlanan reklam değeri (ör. bir uyumlulaştırma grubundaki manuel BGBM'ler).
PRECISE Bu reklam için ödenen kesin değer.

Uyumlulaştırma söz konusu olduğunda Ad Manager, otomatik veri toplama özelliği etkin olan reklam kaynakları için ESTIMATED değeri sağlamaya çalışır. Optimize edilmemiş reklam kaynakları için veya anlamlı bir tahmin raporlamak üzere yeterli toplu verinin olmadığı durumlarda PUBLISHER_PROVIDED değeri döndürülür.

Open Bidding'den gelen test gösterimleri

Bir test isteği aracılığıyla Open Bidding reklam kaynağı için 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 ve reklam değerini 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.