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:
Chamar em todas as atualizações do app (recomendado)
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:
Converta todo o endereço de e-mail para letras minúsculas.
Se o endereço de e-mail terminar no domínio @googlemail.com, substitua o @googlemail.com domínio por @gmail.com.
Para endereços que terminam no domínio @gmail.com (incluindo aqueles modificados na etapa anterior):
Remova todos os pontos da parte do nome de usuário.
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.comse tornaanemalluserolzs@gmail.comCAPSUSER0125@provider.netse tornacapsuser0125@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