Tutorial: avaliar as conversões de anúncios no iOS

Etapa 3: iniciar a medição de conversões no dispositivo usando Google Analytics


Introdução: medir conversões de anúncios do iOS

Etapa 1: Implementar uma experiência de login

Etapa 2: integrar Google Analytics

Etapa 3: iniciar a medição de conversões no dispositivo usando Google Analytics

Etapa 4: resolver problemas comuns


Agora que você pode coletar endereços de e-mail e números de telefone dos usuários e seu app tem o Google Analytics para SDK do Firebase, é possível usar os dois para começar a medir conversões.

Chamar a API

Chame a API de medição de conversões com o endereço de e-mail ou número de telefone consentido da etapa 1, que é usado para a medição de conversões de anúncios, sem permitir que informações de identificação pessoal saiam do dispositivo do usuário.

Há duas maneiras de iniciar a medição:

Usar endereço de e-mail ou número de telefone

Swift

Importe o módulo FirebaseAnalytics e transmita o endereço de e-mail ou número de telefone para a API initiateOnDeviceConversionMeasurement().

import FirebaseAnalytics

// ...
// If you're using an email address....
Analytics.initiateOnDeviceConversionMeasurement(emailAddress: "example@gmail.com")
// If you're using a phone number....
Analytics.initiateOnDeviceConversionMeasurement(phoneNumber: "+15555555555")

Objective-C

Importe o módulo FirebaseAnalytics e transmita o endereço de e-mail para a API initiateOnDeviceConversionMeasurementWithEmailAddress: ou o número de telefone para a API initiateOnDeviceConversionMeasurementWithPhoneNumber:.

@import FirebaseAnalytics;

// ...
// If you're using an email address....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithEmailAddress:@"example@gmail.com"];
// If you're using a phone number....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithPhoneNumber:@"+15555555555"];

Unity

Importe o namespace Firebase.Analytics e transmita o endereço de e-mail para a API InitiateOnDeviceConversionMeasurementWithEmailAddress() ou o número de telefone para a API InitiateOnDeviceConversionMeasurementWithPhoneNumber():

using Firebase.Analytics;

// ...
// If you're using an email address....
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithEmailAddress("example@gmail.com");
// If you're using a phone number....
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithPhoneNumber("+15555555555");

Práticas recomendadas para chamar a API

Para garantir uma medição de conversões no dispositivo precisa e contínua, faça o seguinte:

Google Analytics para a versão 12.1.0 e mais recentes do SDK do Firebase incluem melhorias na medição de conversões no dispositivo. Para garantir que essas melhorias sejam aplicadas a todos os usuários, incluindo aqueles que já fizeram login antes da atualização do app, é fundamental chamar a API initiateOnDeviceConversionMeasurement novamente após a atualização do app.

Especificamente, os usuários que fizeram login antes da atualização do app para a versão 12.1.0 do SDK não serão incluídos no escopo de medição otimizada até que a API initiateOnDeviceConversionMeasurement seja chamada novamente para eles. Sem a verificação de atualização do app, isso só aconteceria se eles saíssem e fizessem login novamente.

A prática recomendada é chamar a API para usuários conectados pelo menos uma vez por versão do app. Você pode implementar uma verificação na inicialização do app para chamar a API somente quando a versão do app tiver mudado desde a última chamada.

Swift

// On app launch if the app version has changed, call the API with the first-party data
// (for example: email address, phone number, hashed email address, hashed phone number).
let cachedAppVersion = UserDefaults.standard.string(forKey: "cachedAppVersion")
let currentAppVersion =
  Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String

if cachedAppVersion != currentAppVersion {
let hashedEmailAddress = ...
Analytics.initiateOnDeviceConversionMeasurement(hashedEmailAddress: hashedEmailAddress)
UserDefaults.standard.set(currentAppVersion, forKey: "cachedAppVersion")
}

Objective-C

// On app launch if the app version has changed, call the API with the first-party data
// (for example: email address, phone number, hashed email address, hashed phone number).
NSString *cachedAppVersion =
  [[NSUserDefaults standardUserDefaults] stringForKey:@"cachedAppVersion"];
NSString *currentAppVersion = [[NSBundle mainBundle]
  objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

if (![cachedAppVersion isEqualToString:currentAppVersion]) {
NSString *hashedEmailAddress = ...
[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedEmailAddress:hashedEmailAddress];
[[NSUserDefaults standardUserDefaults] setObject:currentAppVersion
                                          forKey:@"cachedAppVersion"];
}

Unity

// On app launch if the app version has changed, call the API with the first-party data
// (for example: email address, phone number, hashed email address, hashed phone number).
string cachedAppVersion = PlayerPrefs.GetString("cached_app_version", "");
string currentAppVersion = Application.version;

if (cachedAppVersion != currentAppVersion) {
byte[] hashedEmailAddress = ...
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedEmailAddress(
    hashedEmailAddress);
PlayerPrefs.SetString("cached_app_version", currentAppVersion);
PlayerPrefs.Save();
}

Chamar imediatamente após o login

Sempre chame a API initiateOnDeviceConversionMeasurement logo depois que um usuário fizer login ou registrar o e-mail ou número de telefone.

Consideração de tempo para novos registros

Se um evento de conversão ocorrer imediatamente após o registro de um usuário (e você chamar a API), considere implementar um pequeno atraso (por exemplo, cinco segundos) entre a chamada de API e o registro do evento principal. Isso ajuda a garantir que a medição no dispositivo seja totalmente inicializada antes do registro do evento.

Usar um endereço de e-mail ou número de telefone com hash

A API aceita endereços de e-mail e números de telefone com hash SHA256. Você pode manter o controle dos dados do usuário realizando o hash no código antes de fazer chamadas para o SDK.

Para usar credenciais com hash, normalize endereços e números, gere hash com SHA256 e chame a API.

Normalizar endereços de e-mail e números de telefone

Para endereços de e-mail, a Google Analytics API pressupõe que uma normalização específica seja realizada antes da aplicação do SHA256. Portanto, siga estas etapas para normalizar seus dados:

  1. Converta todo o endereço de e-mail para letras minúsculas.

  2. Se o endereço de e-mail terminar no domínio @googlemail.com, substitua o @googlemail.com domínio por @gmail.com.

  3. Para endereços que terminam no domínio @gmail.com (incluindo aqueles modificados na etapa anterior):

    1. Remova todos os pontos da parte do nome de usuário.

    2. Faça as seguintes substituições na parte do nome de usuário:

      • Para letras I ou i, ou dígito 1, substitua a letra l
      • Para o dígito 0, substitua a letra o
      • Para o dígito 2, substitua a letra z
      • Para o dígito 5, substitua a letra s

Por exemplo, após a normalização:

  • an.email.user0125@googlemail.com se torna anemalluserolzs@gmail.com
  • CAPSUSER0125@provider.net se torna capsuser0125@provider.net

Para números de telefone, os números já precisam estar no formato E.164 (ou seja, prefixo com +, 1 a 3 dígitos para o código do país, no máximo 12 dígitos para o número do assinante) antes de gerar hash com SHA256.

Observação: o e-mail ou número de telefone SHA256 com hash precisa ter 32 bytes de comprimento e não ser uma string hexadecimal.

Chamar a API com credenciais com hash

Swift

Importe o módulo FirebaseAnalytics e transmita o endereço de e-mail ou número de telefone para a API initiateOnDeviceConversionMeasurement().

import FirebaseAnalytics

// ...
// If you're using an email address....
Analytics.initiateOnDeviceConversionMeasurement(hashedEmailAddress: hashedEmailAddress)
// If you're using a phone number....
Analytics.initiateOnDeviceConversionMeasurement(hashedPhoneNumber: hashedPhoneNumber)

Objective-C

Importe o módulo FirebaseAnalytics e transmita o endereço de e-mail para a API initiateOnDeviceConversionMeasurementWithHashedEmailAddress: ou o número de telefone para a API initiateOnDeviceConversionMeasurementWithHashedPhoneNumber:.

@import FirebaseAnalytics;

// ...
// If you're using an email address....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedEmailAddress:hashedEmailAddress];
// If you're using a phone number....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedPhoneNumber:hashedPhoneNumber];

Unity

Importe o namespace Firebase.Analytics e transmita o endereço de e-mail para a API InitiateOnDeviceConversionMeasurementWithHashedEmailAddress() ou o número de telefone para a API InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber():

using Firebase.Analytics;

// ...
// If you're using an email address....
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedEmailAddress(hashedEmailAddress);
// If you're using a phone number....
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber(hashedPhoneNumber);

Conferir a integração

Ative o modo de depuração. Depois de chamar a API de medição de inicialização, verifique se uma mensagem de registro como a seguinte aparece no console de depuração do Xcode:

[FirebaseAnalytics][I-ACS023225] Initiated on-device conversion measurement

Se você ativou o modo de depuração e incluiu o argumento de inicialização -DebugOnDeviceConversionMeasurement, chamar a API initiateOnDeviceConversionMeasurement() vai simular uma correspondência.

[FirebaseAnalytics][I-ACS023229] On-device conversion measurement found a match




Etapa 2: integrar Google Analytics Etapa 4: resolver problemas comuns