Przychody z reklam na poziomie wyświetleń

Gdy nastąpi wyświetlenie, GMA Next-Gen SDK udostępnia dane o przychodach z reklam powiązane z tym wyświetleniem. Możesz użyć tych danych do obliczenia wartości użytkownika w całym okresie jego aktywności lub przekazać je do innych odpowiednich systemów.

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

Wymagania wstępne

Każdy format reklamy ma wywołanie zwrotne zdarzenia onAdPaid. W trakcie cyklu życia zdarzenia reklamy GMA Next-Gen SDK monitoruje zdarzenia wyświetlenia i wywołuje moduł obsługi z uzyskaną wartością.

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

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

Określanie nazwy źródła reklam zdarzenia niestandardowego

W przypadku źródeł reklam zdarzeń niestandardowych właściwość AdSourceResponseInfo.name 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 odróżnić od siebie poszczególne zdarzenia niestandardowe. Aby znaleźć konkretne zdarzenie niestandardowe:

  1. Pobierz właściwość AdSourceResponseInfo.name.
  2. Ustaw unikalną nazwę źródła reklam.

Poniższy przykład ustawia unikalną nazwę źródła reklam dla zdarzenia niestandardowego:

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

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

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 zdarzeń płatnych.
  • Wysyłaj informacje o przychodach z reklam na poziomie wyświetleń do preferowanego serwera analitycznego natychmiast po wywołaniu zwrotnym zdarzenia płatnego. Dzięki temu unikniesz przypadkowego pominięcia wywołań zwrotnych i rozbieżności danych.

AdValue

AdValue to klasa reprezentująca wartość pieniężną uzyskaną za reklamę, w tym kod waluty i typ precyzji zakodowany w ten sposób.

PrecisionType Opis
UNKNOWN Nieznana wartość reklamy. Jest zwracana, gdy włączone jest pingowanie LTV, ale nie ma wystarczającej ilości danych.
ESTIMATED Wartość reklamy została oszacowana na podstawie danych zbiorczych.
PUBLISHER_PROVIDED Wartość reklamy została podana przez wydawcę, np. na podstawie CPM ustawionego ręcznie w grupie zapośredniczenia.
PRECISE Dokładna kwota zapłacona za tę reklamę.

W przypadku zapośredniczenia Ad Manager próbuje podać wartość ESTIMATED dla źródeł reklam, w których włączone jest automatyczne zbieranie danych. W przypadku źródeł reklam nieoptymalizowanych lub gdy nie ma wystarczającej ilości danych zbiorczych, aby podać wiarygodne oszacowanie, zwracana jest wartość PUBLISHER_PROVIDED.

Testowanie wyświetleń z Otwartego ustalania stawek

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

  • UNKNOWN – wskazuje typ precyzji.
  • 0 – wskazuje wartość reklamy.

Wcześniej typ precyzji mógł być wyświetlany jako wartość inna niż UNKNOWN, a wartość reklamy mogła być większa niż 0.

Więcej informacji o wysyłaniu testowego żądania reklamy znajdziesz w artykule Włączanie urządzeń testowych.