Quando si verifica un'impressione, l'SDK Google Mobile Ads fornisce i dati sulle entrate pubblicitarie associati a questa impressione. Puoi utilizzare i dati per calcolare il valore del ciclo di vita di un utente o inoltrarli a valle ad altri sistemi pertinenti.
Questa guida ha lo scopo di aiutarti a implementare l'acquisizione dei dati sulle entrate pubblicitarie a livello di impressione nella tua app per Android.
Prerequisiti
- Assicurati di aver attivato la funzionalità delle entrate pubblicitarie a livello di impressione nell'interfaccia utente di Ad Manager.
- Importa l'SDK Google Mobile Ads 21.1.0 o versioni successive.
- Completa la Guida introduttiva.
Prima di poter ricevere entrate pubblicitarie a livello di impressione, devi implementare almeno un formato dell'annuncio:
Gestore di eventi a pagamento
Ogni formato dell'annuncio ha un
OnPaidEventListener
.
Durante il ciclo di vita di un evento annuncio, l'SDK Google Mobile Ads monitora
gli eventi impressione e richiama il gestore con un valore guadagnato.
L'esempio seguente gestisce gli eventi a pagamento per un annuncio con premio:
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")
}
}
Identificare il nome di un'origine annuncio evento personalizzato
Per le origini annuncio con eventi personalizzati, il metodo getAdSourceName()
restituisce il nome dell'origine annuncio Custom event
. Se utilizzi più eventi personalizzati, il nome dell'origine annuncio non è sufficientemente granulare per distinguere tra più eventi personalizzati. Per individuare un evento personalizzato specifico:
- Chiama il metodo
getAdSourceName()
. - Imposta un nome univoco per l'origine annuncio.
L'esempio seguente imposta un nome univoco per l'origine annuncio per un evento personalizzato:
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
}
Per saperne di più sull'origine annuncio vincente, consulta Recuperare informazioni sulla risposta all'annuncio.
Best practice per l'implementazione
- Imposta il listener immediatamente dopo aver creato o ottenuto l'accesso all'oggetto annuncio e sicuramente prima di mostrare l'annuncio. In questo modo, non perderai nessuna richiamata di eventi a pagamento.
- Invia le informazioni sulle entrate pubblicitarie a livello di impressione al tuo server di analisi preferito immediatamente al momento della chiamata di callback dell'evento a pagamento. In questo modo, non perderai accidentalmente alcun callback ed eviterai discrepanze nei dati.
AdValue
AdValue
è una classe che rappresenta il valore monetario guadagnato per un annuncio,
inclusi il codice valuta del valore e il tipo di precisione codificato come segue.
PrecisionType | Descrizione |
---|---|
UNKNOWN |
Un valore dell'annuncio sconosciuto. Questo valore viene restituito quando il pingback del valore del ciclo di vita è abilitato, ma non sono disponibili dati sufficienti. |
ESTIMATED |
Il valore di un annuncio stimato a partire da dati aggregati. |
PUBLISHER_PROVIDED |
Il valore di un annuncio fornito dal publisher, ad esempio i CPM manuali in un gruppo di mediazione. |
PRECISE |
L'esatto valore pagato per questo annuncio. |
Nel caso della mediazione, Ad Manager tenta di
fornire un valore ESTIMATED
per le origini annuncio che
hanno attivato la raccolta automatica dei dati.
Per le origini annuncio non ottimizzate o nei casi in cui non sono disponibili dati aggregati
sufficienti per generare una stima significativa, viene restituito il valore PUBLISHER_PROVIDED
.
Impressioni di test da Open Bidding
Dopo che si è verificato un evento di entrate pubblicitarie a livello di impressione per un'origine annuncio Open Bidding tramite una richiesta di test, ricevi solo i seguenti valori:
UNKNOWN
: indica il tipo di precisione.
0
: indica il valore dell'annuncio.
In precedenza, il tipo di precisione poteva essere visualizzato come un valore diverso da
UNKNOWN
e un valore dell'annuncio superiore a 0
.
Per informazioni dettagliate sull'invio di una richiesta di annuncio di prova, vedi Attivare i dispositivi di test.