Quando uma impressão ocorre, o SDK dos Anúncios para Dispositivos Móveis do Google fornece dados de receita de publicidade associados a ela. É possível usar os dados para calcular o valor da vida útil de um usuário ou encaminhá-los para outros sistemas relevantes.
A finalidade deste guia é ajudar você a implementar a captura de dados de receita de publicidade no nível da impressão no seu app Android.
Pré-requisitos
- Ative o recurso de receita de publicidade no nível da impressão na interface da AdMob.
- Importe o SDK dos Anúncios para Dispositivos Móveis do Google 21.1.0 ou mais recente.
- Leia o guia para iniciantes.
Antes de receber qualquer receita de publicidade no nível da impressão, implemente pelo menos um formato do anúncio:
Manipulador de eventos pagos
Cada formato de anúncio tem um OnPaidEventListener
.
Durante o ciclo de vida de um evento de anúncio, o SDK dos Anúncios para Dispositivos Móveis do Google monitora eventos de impressão e invoca o manipulador com um valor ganho.
O exemplo a seguir processa eventos pagos para um anúncio premiado:
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")
}
}
Identificar um nome de origem de anúncio de evento personalizado
Para origens de anúncios de eventos personalizados, o método getAdSourceName()
retorna o nome da origem Custom event
. Se você usa vários eventos personalizados, o nome da origem de anúncios não é granular o suficiente para distinguir entre eles. Para localizar um evento personalizado específico:
- Chame o método
getAdSourceName()
. - Defina um nome exclusivo para a origem de anúncios.
O exemplo a seguir define um nome exclusivo de origem de anúncios para um evento personalizado:
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
}
Para mais informações sobre a origem de anúncios vencedora, consulte Recuperar informações sobre a resposta do anúncio.
Integração com parceiros de atribuição de app (AAP)
Para detalhes completos sobre o encaminhamento de dados de receita de publicidade para plataformas de análise, consulte o guia do parceiro:
SDK do parceiro |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
Práticas recomendadas de implementação
- Defina o listener imediatamente depois de criar ou acessar o objeto de anúncio e, definitivamente, antes de mostrar o anúncio. Assim, você não perde nenhum callback de evento pago.
- Envie as informações de receita de publicidade no nível da impressão imediatamente para o servidor de análise de sua preferência quando o callback do evento pago for chamado. Isso garante que você não descarte acidentalmente nenhum callback e evita discrepâncias de dados.
AdValue
AdValue
é uma classe que representa o valor monetário ganho por um anúncio, incluindo o código da moeda e o tipo de precisão do valor, codificados conforme mostrado a seguir.
PrecisionType | Descrição |
---|---|
UNKNOWN |
Um valor de anúncio desconhecido. Retornado quando o pingback de LTV está ativado, mas não há dados suficientes disponíveis. |
ESTIMATED |
É um valor de anúncio estimado com base nos dados agregados. |
PUBLISHER_PROVIDED |
Um valor de anúncio fornecido pelo publisher, como CPMs manuais em um grupo de mediação. |
PRECISE |
O valor exato pago pelo anúncio. |
No caso da Mediação da AdMob, a AdMob tenta fornecer um valor de ESTIMATED
para origens de anúncios otimizadas.
Em origens não otimizadas ou nos casos em que não há dados agregados suficientes para informar uma estimativa significativa, o valor PUBLISHER_PROVIDED
é retornado.
Testar impressões de origens de anúncios dos lances
Depois que um evento de receita de publicidade no nível da impressão ocorre para uma origem de anúncio dos lances por uma solicitação de teste, você recebe apenas os seguintes valores:
UNKNOWN
: indica o tipo de precisão.
0
: indica o valor do anúncio.
Antes, o tipo de precisão podia aparecer como um valor diferente de UNKNOWN
e um valor de anúncio maior que 0
.
Para detalhes sobre como enviar uma solicitação de anúncio de teste, consulte Ativar dispositivos de teste.