Quando uma impressão ocorre, o SDK dos anúncios para dispositivos móveis do Google chama o gerenciador de eventos pagos com os dados de receita associados. Ao implementar esse manipulador, você pode usar os dados para calcular o valor da vida útil de um usuário ou encaminhar os dados para outros sistemas relevantes.
Este guia tem o objetivo de ajudar você a implementar a captura de dados de LTV no seu app iOS.
Pré-requisitos
- Confira se você ativou 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 9.10.0 ou mais recente.
- Leia o Guia explicativo.
Antes de receber qualquer receita de publicidade no nível da impressão, é necessário implementar pelo menos um formato de anúncio:
Implementar um manipulador de eventos pagos
Cada formato de anúncio tem uma propriedade paidEventHandler
do tipo
GADPaidEventHandler
.
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 gerenciador com um valor ganho.
Swift
class ViewController: UIViewController, GADFullScreenContentDelegate {
var rewardedAd: GADRewardedAd?
func requestRewardedAd() {
GADRewardedAd.load(
withAdUnitID: "AD_UNIT_ID", request: GADRequest()
) { (ad, error) in
if let error = error {
print("Rewarded ad failed to load with error: \(error.localizedDescription)")
return
}
if let ad = ad {
self.rewardedAd = ad
self.rewardedAd?.paidEventHandler = { adValue in
// TODO: Send the impression-level ad revenue information to your preferred analytics
// server directly within this callback.
// Extract the impression-level ad revenue data.
let value = adValue.value
let precision = adValue.precision
let currencyCode = adValue.currencyCode
// Get the ad unit ID.
let adUnitId = ad.adUnitID
let responseInfo = ad.responseInfo
let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo
let adSourceId = loadedAdNetworkResponseInfo?.adSourceID
let adSourceInstanceId = loadedAdNetworkResponseInfo?.adSourceInstanceID
let adSourceInstanceName = loadedAdNetworkResponseInfo?.adSourceInstanceName
let adSourceName = loadedAdNetworkResponseInfo?.adSourceName
let mediationGroupName = responseInfo?.extrasDictionary["mediation_group_name"]
let mediationABTestName = responseInfo?.extrasDictionary["mediation_ab_test_name"]
let mediationABTestVariant = responseInfo?.extrasDictionary["mediation_ab_test_variant"]
}
}
}
}
}
Objective-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController ()
@property(nonatomic, strong) GADRewardedAd *rewardedAd;
@end
@implementation ViewController
- (void)requestRewardedAd {
__weak ViewController *weakSelf = self;
GADRequest *request = [GADRequest request];
[GADRewardedAd
loadWithAdUnitID:@"AD_UNIT_ID"
request:request
completionHandler:^(GADRewardedAd *ad, NSError *error) {
if (error) {
NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]);
return;
}
self.rewardedAd = ad;
self.rewardedAd.paidEventHandler = ^void(GADAdValue *_Nonnull value){
ViewController *strongSelf = weakSelf;
// TODO: Send the impression-level ad revenue information to your preferred analytics
// server directly within this callback.
// Extract the impression-level ad revenue data.
NSDecimalNumber *value; = value.value;
NSString *currencyCode = value.currencyCode;
GADAdValuePrecision precision = value.precision;
// Get the ad unit ID.
NSString *adUnitId = strongSelf.rewardedAd.adUnitID;
GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo =
strongSelf.rewardedAd.responseInfo.loadedAdNetworkResponseInfo;
NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName;
NSString *adSourceID = loadedAdNetworkResponseInfo.adSourceID;
NSString *adSourceInstanceName = loadedAdNetworkResponseInfo.adSourceInstanceName;
NSString *adSourceInstanceID = loadedAdNetworkResponseInfo.adSourceInstanceID;
NSDictionary<NSString *, id> *extras = strongSelf.rewardedAd.responseInfo.extrasDictionary;
NSString *mediationGroupName = extras["mediation_group_name"];
NSString *mediationABTestName = extras["mediation_ab_test_name"];
NSString *mediationABTestVariant = extras["mediation_ab_test_variant"];
};
]};
}
Para saber mais sobre a origem vencedora, consulte Recuperar informações sobre a resposta do anúncio.
Integrar com parceiros de atribuição de app (AAPs)
Para detalhes completos sobre como encaminhar dados de receita de anúncios para plataformas de análise, consulte o guia do parceiro:
SDK do parceiro |
---|
Adjust (link em inglês) |
AppsFlyer |
Singular |
Tenjin (link em inglês) |
Práticas recomendadas de implementação
- Defina o manipulador imediatamente após criar ou ter acesso ao objeto de anúncio e definitivamente antes de mostrar o anúncio. Isso garante que você não perca callbacks de eventos pagos.
- Envie as informações do evento pago para o servidor de análise preferencial
imediatamente quando o método
paidEventHandler
for chamado. Isso garante que você não descarte acidentalmente nenhum callback e evite discrepâncias de dados.
GADAdValue
GADAdValue
é uma classe que representa o valor monetário ganho com um anúncio,
incluindo o código de moeda do valor e o tipo de precisão codificado conforme abaixo.
GADAdValuePrecision | Descrição |
---|---|
GADAdValuePrecisionUnknown
|
Um valor de anúncio desconhecido. Isso é retornado quando o pingback de LTV está ativado, mas não há dados suficientes disponíveis. |
GADAdValuePrecisionEstimated
|
É um valor de anúncio estimado com base nos dados agregados. |
GADAdValuePrecisionPublisherProvided
|
Um valor de anúncio fornecido pelo editor, como CPMs manuais em um grupo de mediação. |
GADAdValuePrecisionPrecise
|
O valor exato pago por este anúncio. |
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úncios de lances por uma solicitação de teste, você recebe apenas os seguintes valores:
GADAdValuePrecisionUnknown
: indica o tipo de precisão.
0
: indica o valor do anúncio.
Anteriormente, o tipo de precisão era um valor diferente de
GADAdValuePrecisionUnknown
e um valor de anúncio maior que 0
.
Para saber mais sobre como enviar uma solicitação de anúncio de teste, consulte Ativar dispositivos de teste.