Przychody z reklam na poziomie wyświetleń

Gdy nastąpi wyświetlenie, Google Mobile Ads SDK (Legacy) dostarcza dane o przychodach z reklam powiązane z tym wyświetleniem. Możesz używać tych danych do obliczania wartości użytkownika od początku śledzenia lub przekazywać je do innych odpowiednich systemów.

Ten przewodnik pomoże Ci wdrożyć w aplikacji na Androida rejestrowanie danych o przychodach z reklam na poziomie wyświetleń.

Wymagania wstępne

  • Zaimportuj pakiet Google Mobile Ads SDK (Legacy) w wersji 21.1.0 lub nowszej.

Każdy format reklamy ma OnPaidEventListener. W cyklu życia zdarzenia reklamowego Google Mobile Ads SDK (Legacy) monitoruje zdarzenia wyświetlenia i wywołuje moduł obsługi z wypracowaną wartością.

Poniższy przykład obsługuje zdarzenia płatne w przypadku reklamy z nagrodą:

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

Identyfikowanie nazwy źródła reklam zdarzenia niestandardowego

W przypadku źródeł reklam ze zdarzeniami niestandardowymi metoda getAdSourceName() zwraca nazwę źródła reklam Custom event. Jeśli używasz wielu zdarzeń niestandardowych, nazwa źródła reklam nie jest wystarczająco szczegółowa, aby je rozróżnić. Aby znaleźć konkretne zdarzenie niestandardowe:

  1. Wywołaj metodę getAdSourceName().
  2. Ustaw unikalną nazwę źródła reklam.

W tym przykładzie ustawiono unikalną nazwę źródła reklam dla zdarzenia niestandardowego:

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
}

Więcej informacji o zwycięskim źródle reklam znajdziesz w artykule Pobieranie informacji o odpowiedzi na reklamę.

Integracja z firmami uczestniczącymi w programie App Attribution Partner (AAP)

Szczegółowe informacje o przekazywaniu danych o przychodach z reklam do platform analitycznych znajdziesz w przewodniku partnera:

Pakiet SDK partnera
Adjust
AppsFlyer
Singular
Tenjin

Sprawdzone metody wdrażania

  • Ustaw detektor natychmiast po utworzeniu obiektu reklamy lub uzyskaniu do niego dostępu, a na pewno przed wyświetleniem reklamy. Dzięki temu nie przegapisz żadnych wywołań zwrotnych dotyczących płatnych wydarzeń.
  • Wysyłaj informacje o przychodach z reklam na poziomie wyświetleń na preferowany serwer analityczny natychmiast po wywołaniu wywołania zwrotnego płatnego zdarzenia. Dzięki temu nie utracisz przypadkowo żadnych wywołań zwrotnych i unikniesz rozbieżności danych.

AdValue

AdValue to klasa, która reprezentuje wartość pieniężną uzyskaną z reklamy, w tym kod waluty i typ dokładności zakodowane w następujący sposób.

PrecisionType Opis
UNKNOWN Nieznana wartość reklamy. Ten błąd jest zwracany, gdy pingback wartości od początku śledzenia jest włączony, ale nie ma wystarczającej ilości danych.
ESTIMATED Wartość reklamy została oszacowana na podstawie danych zbiorczych.
PUBLISHER_PROVIDED Wartość reklamy podana przez wydawcę, np. CPM ustawiony ręcznie w grupie zapośredniczenia.
PRECISE Dokładna kwota zapłacona za tę reklamę.

W przypadku zapośredniczenia AdMob usługa AdMob próbuje podać wartość ESTIMATED dla źródeł reklam, które są zoptymalizowane. W przypadku niezoptymalizowanych źródeł reklam lub gdy nie ma wystarczającej ilości danych zbiorczych, aby podać wiarygodne oszacowanie, zwracana jest wartość PUBLISHER_PROVIDED.

Wyświetlenia testowe ze źródeł reklam z ustalaniem stawek

Gdy w przypadku źródła reklam z ustalaniem stawek wystąpi zdarzenie przychodów z reklam na poziomie wyświetleń, otrzymasz tylko te wartości:

  • UNKNOWN: wskazuje typ dokładności.
  • 0: wskazuje wartość reklamy.
Wcześniej typ dokładności mógł mieć wartość inną niż UNKNOWN, a wartość reklamy mogła być większa niż 0.

Szczegółowe informacje o wysyłaniu żądania reklamy testowej znajdziesz w artykule Włączanie urządzeń testowych.