Przychody z reklam na poziomie wyświetleń

Gdy nastąpi wyświetlenie reklamy, pakiet SDK do reklam mobilnych Google prześle dane o przychodach z reklam powiązane z tym wyświetleniem. Możesz użyć tych danych do obliczenia wartości dożywotnej użytkownika lub przekazać je do innych odpowiednich systemów.

Ten przewodnik ma pomóc Ci w wdrożeniu rejestrowania danych o przychodach z reklam na poziomie wyświetleń w aplikacji na Androida.

Wymagania wstępne

  • Zaimportuj pakiet SDK do reklam mobilnych Google w wersji 21.1.0 lub nowszej.

Każdy format reklamy ma OnPaidEventListener. W trakcie cyklu życia zdarzenia reklamy pakiet SDK do reklam mobilnych Google monitoruje zdarzenia wyświetleń i wywołuje moduł obsługi z wartością zarobioną.

W tym przykładzie omawiamy zdarzenia płatne w reklamach z nagrodą:

Kotlin

import com.google.android.gms.ads.rewarded.RewardedAd

class MainActivity : AppCompatActivity() {
  private var rewardedAd: RewardedAd? = null
  private final var TAG = "MainActivity"

  override fun onCreate(savedInstanceState: Bundle?) {
    val adRequest = AdRequest.Builder().build()

    RewardedAd.load(this, "AD_UNIT_ID",
      adRequest, object: RewardedAdLoadCallback() {
        override fun onAdLoaded(ad: RewardedAd) {
          rewardedAd = ad
          // Set paid event listener
          rewardedAd.onPaidEventListener = OnPaidEventListener { adValue ->
            // TODO: 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 precision = adValue.precisionType

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

            val loadedAdapterResponseInfo = rewardedAd.responseInfo.loadedAdapterResponse
            val adSourceName = loadedAdapterResponseInfo.adSourceName
            val adSourceId = loadedAdapterResponseInfo.adSourceId
            val adSourceInstanceName = loadedAdapterResponseInfo.adSourceInstanceName
            val adSourceInstanceId = loadedAdapterResponseInfo.adSourceInstanceId
            val extras = rewardedAd.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")
          }
        }
    })
  }
}

Java

import com.google.android.gms.ads.rewarded.RewardedAd;

public class MainActivity extends Activity {
  private RewardedAd rewardedAd;
  private final String TAG = "MainActivity";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    AdRequest adRequest = new AdRequest.Builder().build();

    RewardedAd.load(this, "AD_UNIT_ID",
      adRequest, new RewardedAdLoadCallback(){
        @Override
        public void onAdLoaded(@NonNull RewardedAd ad) {
          rewardedAd = ad;
          // Set paid event listener
          rewardedAd.setOnPaidEventListener(new OnPaidEventListener() {
            @Override
            public void onPaidEvent(AdValue adValue) {
              // TODO: 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 = adValue.getValueMicros();
              String currencyCode = adValue.getCurrencyCode();
              int precision = adValue.getPrecisionType();

              // Get the ad unit ID.
              String adUnitId = rewardedAd.getAdUnitId();
              
              AdapterResponseInfo loadedAdapterResponseInfo = rewardedAd.getResponseInfo().
                  getLoadedAdapterResponseInfo();
              String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
              String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
              String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
              String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();

              Bundle extras = rewardedAd.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");
            }
          });
        }
    });
  }
}

Więcej informacji o wygrywającym źródle reklamy znajdziesz w artykule Pobieranie informacji o odpowiedzi na reklamę.

Integracja z programem App Attribution Partner (AAP)

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

Pakiet SDK partnera
Adjust
AppsFlyer
Singular
Tenjin

Sprawdzone metody wdrażania

  • Ustaw listenera natychmiast po utworzeniu lub uzyskaniu dostępu do obiektu reklamy, ale na pewno przed wyświetleniem reklamy. Dzięki temu nie przegapisz żadnego wywołania zwrotnego płatnego zdarzenia.
  • Przesyłaj informacje o przychodach z reklam na poziomie wyświetlenia do preferowanego serwera analitycznego natychmiast po wywołaniu funkcji obsługi wywołania zwrotnego zdarzenia płatnego. Dzięki temu nie pominiesz żadnego wywołania zwrotnego i unikniesz rozbieżności danych.

AdValue

AdValue to klasa, która reprezentuje wartość pieniężną uzyskaną z reklamy, w tym kod waluty wartości i jej dokładność, zakodowane jak poniżej.

PrecisionType Opis
UNKNOWN Nieznana wartość reklamy. Zwracana jest, gdy pingback LTV jest włączony, ale nie ma wystarczającej ilości danych.
ESTIMATED Wartość reklamy 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 reklamę.

W przypadku zapośredniczenia AdMob usługa AdMob próbuje podać wartość ESTIMATED dla źródeł reklam, które są optymalizowane.

W przypadku nieoptymalizowanych źródeł reklam lub gdy nie ma wystarczającej ilości danych zbiorczych, aby podać wiarygodne oszacowanie, zwracana jest wartość PUBLISHER_PROVIDED.

Testowanie wyświetleń źródeł reklam z ustalaniem stawek

Gdy zdarzenie przychodów z reklam na poziomie wyświetleń wystąpi w źródle reklam z ustawioną stawką w ramach żądania testowego, otrzymasz tylko te wartości:

  • UNKNOWN: wskazuje typ dokładności.
  • 0: wskazuje wartość reklamy.

Wcześniej typ dokładności mógł być inny niż UNKNOWN, a wartość reklamy większa niż 0.

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