Entrate pubblicitarie a livello di impressione

Quando si verifica un'impressione, l'SDK Google Mobile Ads fornisce i dati sulle entrate pubblicitarie associate a quell'impressione. Puoi utilizzare i dati per calcolare il lifetime value di un utente o inoltrarli ad altri sistemi pertinenti.

Questa guida ha lo scopo di aiutarti a implementare la raccolta dei dati sulle entrate pubblicitarie a livello di impressione nella tua app per Android.

Prerequisiti

  • Importa l'SDK Google Mobile Ads 21.1.0 o versioni successive.

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:

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

Per ulteriori informazioni sull'origine annuncio vincente, consulta Recuperare informazioni sulla risposta all'annuncio.

Integrazione con i partner di attribuzione app (AAP)

Per informazioni dettagliate sull'inoltro dei dati sulle entrate pubblicitarie alle piattaforme di analisi, consulta la guida del partner:

SDK partner
Adjust
AppsFlyer
Singular
Tenjin

Best practice per l'implementazione

  • Imposta l'ascoltatore immediatamente dopo aver creato o ottenuto l'accesso all'oggetto annuncio e, in ogni caso, prima di mostrare l'annuncio. In questo modo, non perderai alcun callback per eventi a pagamento.
  • Invia le informazioni sulle entrate pubblicitarie a livello di impressione al tuo server di analisi preferito immediatamente al momento dell'attivazione del callback dell'evento a pagamento. In questo modo, eviterai di perdere accidentalmente i callback ed eviterai discrepanze nei dati.

AdValue

AdValue è una classe che rappresenta il valore monetario guadagnato per un annuncio, incluso il codice valuta del valore e il relativo tipo di precisione codificato come indicato di seguito.

PrecisionType Descrizione
UNKNOWN Un valore dell'annuncio sconosciuto. Viene restituito quando il pingback LTV è attivo, 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 l'annuncio.

Nel caso di AdMob Mediation, AdMob tenta di fornire un valore ESTIMATED per le origini annuncio ottimizzate.

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.

Testare le impressioni provenienti dalle origini annuncio per l'asta

Dopo che si verifica un evento di entrate pubblicitarie a livello di impressione per un'origine annuncio per l'asta tramite una richiesta di test, ricevi solo i seguenti valori:

  • UNKNOWN: indica il tipo di precisione.
  • 0: indica il valore dell'annuncio.

In precedenza, potresti aver visto il tipo di precisione 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, consulta Attivare i dispositivi di test.