Receita de Anúncio no Nível de Impressão
Quando ocorre uma impressão, o Godot AdMob Plugin fornece dados de receita de anúncios associados a essa impressão. Você pode usar os dados para calcular o valor de vida útil (lifetime value) de um usuário ou encaminhar os dados para outros sistemas relevantes.
Este guia destina-se a ajudá-lo a implementar a captura de dados de receita de anúncios no nível de impressão em seu projeto Godot.
Pré-requisitos
- Certifique-se de ter ativado o recurso de receita de anúncios no nível de impressão na interface do AdMob.
- Complete o Guia de Primeiros Passos. Seu projeto Godot já deve ter o plugin AdMob da Poing Studios importado e configurado.
- Antes de poder receber qualquer dado de receita de anúncios no nível de impressão, você precisa implementar pelo menos um formato de anúncio:
Implementando um manipulador de eventos pagos
Cada formato de anúncio possui um evento on_ad_paid (OnAdPaid em C#). Durante o ciclo de vida de um evento de anúncio, o Godot AdMob Plugin monitora os eventos de impressão e invoca o manipulador com um AdValue representando o valor ganho. O tipo de precisão deste valor é definido por AdValue.PrecisionType.
O exemplo a seguir gerencia eventos pagos para um anúncio premiado:
var _rewarded_ad: RewardedAd
func _load_rewarded_ad() -> void:
# Send the request to load the ad.
var ad_request := AdRequest.new()
RewardedAdLoader.new().load("AD_UNIT_ID", ad_request, func(rewarded_ad: RewardedAd, error: LoadAdError):
# If the operation failed with a reason.
if error != null:
push_error("Rewarded ad failed to load an ad with error: %s" % error.message)
return
_rewarded_ad = rewarded_ad
_rewarded_ad.on_ad_paid = _handle_ad_paid_event
)
func _handle_ad_paid_event(ad_value: AdValue) -> void:
# TODO: Send the impression-level ad revenue information to your
# preferred analytics server directly within this callback.
var value_micros: int = ad_value.value_micros
var currency: String = ad_value.currency_code
var precision := ad_value.precision # (AdValue.PrecisionType)
var response_info: ResponseInfo = _rewarded_ad.get_response_info()
var response_id: String = response_info.response_id
var loaded_adapter_response_info: AdapterResponseInfo = response_info.loaded_adapter_response_info
if loaded_adapter_response_info:
var ad_source_id: String = loaded_adapter_response_info.ad_source_id
var ad_source_instance_id: String = loaded_adapter_response_info.ad_source_instance_id
var ad_source_instance_name: String = loaded_adapter_response_info.ad_source_instance_name
var ad_source_name: String = loaded_adapter_response_info.ad_source_name
var adapter_class_name: String = loaded_adapter_response_info.adapter_class_name
var latency_millis: int = loaded_adapter_response_info.latency_millis
var credentials: Dictionary = loaded_adapter_response_info.ad_unit_mapping
var extras: Dictionary = response_info.response_extras
var mediation_group_name = extras.get("mediation_group_name", "")
var mediation_ab_test_name = extras.get("mediation_ab_test_name", "")
var mediation_ab_test_variant = extras.get("mediation_ab_test_variant", "")
Identificar o nome de origem do anúncio de um evento personalizado
Para origens de anúncios de eventos personalizados, a propriedade ad_source_name (AdSourceName) fornece o nome Custom Event. Se você usar múltiplos eventos personalizados, o nome de origem do anúncio não é granular o suficiente para diferenciá-los. Para localizar um evento personalizado específico, siga estas etapas:
- Obtenha a propriedade
adapter_class_name(AdapterClassName). - Defina um nome de origem de anúncio exclusivo.
O exemplo a seguir define um nome de origem de anúncio exclusivo para um evento personalizado:
func _get_ad_source_name(loaded_adapter_response_info: AdapterResponseInfo) -> String:
if loaded_adapter_response_info == null:
return ""
var ad_source_name: String = loaded_adapter_response_info.ad_source_name
if ad_source_name == "Custom Event":
var adapter_class_name: String = loaded_adapter_response_info.adapter_class_name
if OS.get_name() == "Android":
if adapter_class_name == "com.google.ads.mediation.sample.customevent.SampleCustomEvent":
ad_source_name = "Sample Ad Network (Custom Event)"
elif OS.get_name() == "iOS":
if adapter_class_name == "SampleCustomEvent":
ad_source_name = "Sample Ad Network (Custom Event)"
return ad_source_name
Para obter mais informações sobre a origem do anúncio vencedor, consulte Recuperar informações sobre a resposta do anúncio.
Integrar com Parceiros de Atribuição de Aplicativos (AAP)
Para detalhes completos sobre o encaminhamento de dados de receita de anúncios para plataformas de análise, consulte o guia do parceiro:
Boas práticas de implementação
- Configure o evento
on_ad_paid(OnAdPaid) imediatamente após criar ou obter acesso ao objeto do anúncio, e definitivamente antes de exibir o anúncio. Isso garante que você não perca nenhum callback. - Envie as informações de receita de anúncios no nível de impressão para o seu servidor de análise preferido imediatamente no seu manipulador
on_ad_paid. Isso garante que você não perca callbacks acidentalmente e evita discrepâncias de dados.
AdValue
Ponto Chave
O valor de AdValue é um valor em micro que representa o valor de cada anúncio. Por exemplo, um valor de 5.000 indica que a estimativa de valor deste anúncio é de $0.005.
AdValue.PrecisionType |
Description |
|---|---|
UNKNOWN |
Um valor de anúncio com precisão desconhecida. |
ESTIMATED |
Um valor de anúncio estimado a partir de dados agregados. |
PUBLISHER_PROVIDED |
Um valor de anúncio fornecido pelo editor, como CPMs manuais em um grupo de mediação. |
PRECISE |
O valor exato pago por este anúncio. |
No caso de mediação, o AdMob tenta fornecer um valor ESTIMATED para origens de anúncios que são otimizadas. Para origens de anúncios não otimizadas, ou nos casos em que não há dados agregados suficientes para relatar uma estimativa significativa, o valor PUBLISHER_PROVIDED é retornado.
Impressões de teste de origens de anúncios de lances (bidding)
Após a ocorrência de um evento de receita de anúncios no nível de impressão para uma origem de anúncio de lances através de uma solicitação de teste, você receberá apenas os seguintes valores:
UNKNOWN: indica o tipo de precisão.0: indica o valor do anúncio.
Anteriormente, você poderia ter visto o tipo de precisão com um valor diferente de UNKNOWN e um valor de anúncio maior que 0.
Para obter detalhes sobre o envio de uma solicitação de anúncio de teste, consulte Ativar anúncios de teste.