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
- Upewnij się, że masz włączoną funkcję przychodów z reklam na poziomie wyświetleń w interfejsie Ad Managera.
- Skonfiguruj GMA Next-Gen SDK.
Aby otrzymywać przychody z reklam na poziomie wyświetleń, musisz wdrożyć co najmniej 1 format reklamy:
Moduł obsługi zdarzeń płatnych
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:
- Pobierz właściwość
AdSourceResponseInfo.name. - 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.