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 encaminhar os dados para outros sistemas relevantes.
A finalidade deste guia é ajudar a implementar a captura de dados de receita de publicidade no nível da impressão no seu projeto do Unity.
Pré-requisitos
- Ative o recurso de receita de publicidade no nível da impressão na interface da AdMob.
- Plug-in do Unity 5.0.0 ou versão mais recente.
- Leia a seção Como começar. O pacote do plug-in dos anúncios para dispositivos móveis do Google para Unity já precisa ter sido importado no app.
Antes de receber qualquer receita de publicidade no nível da impressão, implemente pelo menos um formato do anúncio:
Implementar um manipulador de eventos pago
Cada formato do anúncio tem um evento OnAdPaid
. 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 AdValue
que representa o valor ganho.
O exemplo a seguir processa eventos pagos para um anúncio premiado:
private void LoadRewardedAd()
{
// Send the request to load the ad.
AdRequest adRequest = new AdRequest();
RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd rewardedAd, LoadAdError error) =>
{
// If the operation failed with a reason.
if (error != null)
{
Debug.LogError("Rewarded ad failed to load an ad with error : " + error);
return;
}
rewardedAd.OnAdPaid += this.HandleAdPaidEvent;
});
}
public void HandleAdPaidEvent(AdValue adValue)
{
// TODO: Send the impression-level ad revenue information to your
// preferred analytics server directly within this callback.
long valueMicros = adValue.Value;
string currencyCode = adValue.CurrencyCode;
PrecisionType precision = adValue.Precision;
ResponseInfo responseInfo = rewardedAd.GetResponseInfo();
string responseId = responseInfo.GetResponseId();
AdapterResponseInfo loadedAdapterResponseInfo = responseInfo.GetLoadedAdapterResponseInfo();
string adSourceId = loadedAdapterResponseInfo.AdSourceId;
string adSourceInstanceId = loadedAdapterResponseInfo.AdSourceInstanceId;
string adSourceInstanceName = loadedAdapterResponseInfo.AdSourceInstanceName;
string adSourceName = loadedAdapterResponseInfo.AdSourceName;
string adapterClassName = loadedAdapterResponseInfo.AdapterClassName;
long latencyMillis = loadedAdapterResponseInfo.LatencyMillis;
Dictionary<string, string> credentials = loadedAdapterResponseInfo.AdUnitMapping;
Dictionary<string, string> extras = responseInfo.GetResponseExtras();
string mediationGroupName = extras["mediation_group_name"];
string mediationABTestName = extras["mediation_ab_test_name"];
string mediationABTestVariant = extras["mediation_ab_test_variant"];
}
Identificar um nome de origem de anúncio de evento personalizado
Para origens de anúncios de eventos personalizados, a propriedade AdSourceName
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:
- Acesse a propriedade
AdapterClassName
. - 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:
private string GetAdSourceName(AdapterResponseInfo loadedAdapterResponseInfo)
{
if (loadedAdapterResponseInfo == null)
{
return string.Empty;
}
string adSourceName = loadedAdapterResponseInfo.AdSourceName;
if (adSourceName == "Custom Event")
{
#if UNITY_ANDROID
if (loadedAdapterResponseInfo.AdapterClassName ==
"com.google.ads.mediation.sample.customevent.SampleCustomEvent")
{
adSourceName = "Sample Ad Network (Custom Event)";
}
#elif UNITY_IPHONE
if (loadedAdapterResponseInfo.AdapterClassName == "SampleCustomEvent")
{
adSourceName = "Sample Ad Network (Custom Event)";
}
#endif
}
return adSourceName;
}
Para mais informações sobre a origem do anúncio vencedor, consulte Recuperar informações sobre a resposta do anúncio.
Fazer a 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 evento
OnPaidEvent
imediatamente depois de criar ou acessar o objeto de anúncio e, definitivamente, antes de mostrar o anúncio. Isso garante que você não perca nenhum callback. - 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 no manipulador
OnPaidEvent
. 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.
AdValue.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. |
PublisherProvided |
Um valor de anúncio fornecido pelo publisher, como CPMs manuais em um grupo de mediação. |
Precise |
O valor exato desse anúncio. |
No caso da mediação, a AdMob tenta fornecer um valor Estimated
para origens de anúncios otimizadas. Em origens não otimizadas ou em casos em que não há dados agregados suficientes para informar uma estimativa significativa, o valor PublisherProvided
é 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.