Paso 3: Inicia la medición de conversiones en el dispositivo con Google Analytics
| Introducción: Mide las conversiones de los anuncios en iOS |
|
Paso 1: Implementa una experiencia de acceso |
| Paso 2: Integra Google Analytics |
|
Paso 3: Inicia la medición de conversiones en el dispositivo con Google Analytics |
| Paso 4: Soluciona y aborda problemas comunes |
Ahora que puedes recopilar las direcciones de correo electrónico y los números de teléfono de los usuarios, y tu app tiene el objeto Google Analytics para el SDK de Firebase, puedes usar ambos para comenzar a medir las conversiones.
Llama a la API
Llama a la API de medición de conversiones con la dirección de correo electrónico o el número de teléfono con consentimiento del paso 1, que se usa para la medición de conversiones de anuncios, sin permitir que salga información de identificación personal del dispositivo del usuario.
Existen dos maneras de iniciar la medición:
Usar una dirección de correo electrónico o un número de teléfono
Swift
Importa el módulo FirebaseAnalytics y pasa la dirección de correo electrónico o el número de teléfono a la API de 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
Importa el módulo FirebaseAnalytics y pasa la dirección de correo electrónico a la API de initiateOnDeviceConversionMeasurementWithEmailAddress: o el número de teléfono a la API de 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
Importa el espacio de nombres Firebase.Analytics y pasa la dirección de correo electrónico a la API de InitiateOnDeviceConversionMeasurementWithEmailAddress() o el número de teléfono a la API de 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ácticas recomendadas para llamar a la API
Para garantizar una medición de conversiones en el dispositivo precisa y continua, realiza una de las siguientes acciones:
Llamada en cada actualización de la app (recomendado)
Google Analytics para la versión 12.1.0 y posteriores del SDK de Firebase incluye mejoras en la medición de conversiones en el dispositivo. Para garantizar que estas mejoras se apliquen a todos los usuarios, incluidos los que ya accedieron antes de que se actualizara tu app, es fundamental volver a llamar a la API de initiateOnDeviceConversionMeasurement después de que se actualice la app.
Específicamente, los usuarios que accedieron antes de que tu app se actualizara a la versión 12.1.0 del SDK no se incluyen en el alcance de la medición mejorada hasta que se vuelva a llamar a la API de initiateOnDeviceConversionMeasurement para ellos. Sin la verificación de actualización de la app, esto solo sucedería si el usuario saliera de su cuenta y volviera a acceder.
La práctica recomendada es llamar a la API para los usuarios que accedieron al menos una vez por versión de la app. Puedes implementar una verificación en el inicio de la app para llamar a la API solo cuando la versión de la app haya cambiado desde la última llamada.
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(); }
Llamada inmediatamente después del acceso
Siempre llama a la API de initiateOnDeviceConversionMeasurement inmediatamente después de que un usuario acceda correctamente o registre su correo electrónico o número de teléfono.
Consideraciones de tiempo para registros nuevos
Si se produce un evento de conversión clave inmediatamente después de que un usuario se registra (y llamas a la API), considera implementar una pequeña demora (por ejemplo, cinco segundos) entre la llamada a la API y el registro del evento clave. Esto ayuda a garantizar que la medición integrada en el dispositivo se inicialice por completo antes de que se registre el evento.
Usa una dirección de correo electrónico o un número de teléfono con codificación hash
La API aceptará direcciones de correo electrónico y números de teléfono con codificación hash SHA256. Puedes mantener el control de los datos de tus usuarios realizando el hash en tu código antes de realizar llamadas al SDK.
Para usar credenciales con codificación hash, normaliza las direcciones y los números, genera un hash con SHA256 y, luego, llama a la API.
Normaliza las direcciones de correo electrónico y los números de teléfono
En el caso de las direcciones de correo electrónico, la API de Google Analytics supone que se realiza una normalización específica antes de aplicar SHA256, por lo que debes seguir estos pasos para normalizar tus datos:
Convierte toda la dirección de correo electrónico a minúsculas.
Si la dirección de correo electrónico termina en el dominio @googlemail.com, reemplázalo por @gmail.com.
Para las direcciones que terminan en el dominio @gmail.com (incluidas las que se modificaron en el paso anterior), haz lo siguiente:
Quita todos los puntos de la parte del nombre de usuario.
Realiza las siguientes sustituciones en la parte del nombre de usuario:
- Para las letras I o i, o el dígito 1, sustituye la letra l.
- Para el dígito 0, sustituye la letra o.
- Para el dígito 2, sustituye la letra Z.
- Para el dígito 5, sustituye la letra s.
Por ejemplo, después de la normalización:
an.email.user0125@googlemail.comse convierte enanemalluserolzs@gmail.comCAPSUSER0125@provider.netse convierte encapsuser0125@provider.net
En el caso de los números de teléfono, estos ya deben estar en formato E.164 (es decir, con el prefijo +, de 1 a 3 dígitos para el código de país y un máximo de 12 dígitos para el número de suscriptor) antes de generar el hash con SHA256.
Ten en cuenta que los números de teléfono o las direcciones de correo electrónico con codificación hash SHA256 deben tener 32 bytes de longitud y no ser una cadena hexadecimal.
Llama a la API con credenciales hash
Swift
Importa el módulo FirebaseAnalytics y pasa la dirección de correo electrónico o el número de teléfono a la API de 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
Importa el módulo FirebaseAnalytics y pasa la dirección de correo electrónico a la API de initiateOnDeviceConversionMeasurementWithHashedEmailAddress: o el número de teléfono a la API de initiateOnDeviceConversionMeasurementWithHashedPhoneNumber:.
@import FirebaseAnalytics; // ... // If you're using an email address.... [FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedEmailAddress:hashedEmailAddress]; // If you're using a phone number.... [FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedPhoneNumber:hashedPhoneNumber];
Unity
Importa el espacio de nombres Firebase.Analytics y pasa la dirección de correo electrónico a la API de InitiateOnDeviceConversionMeasurementWithHashedEmailAddress() o el número de teléfono a la API de InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber():
using Firebase.Analytics; // ... // If you're using an email address.... FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedEmailAddress(hashedEmailAddress); // If you're using a phone number.... FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber(hashedPhoneNumber);
Verifica la integración
Habilite el modo de depuración. Después de llamar a la API de medición de inicio, asegúrate de que aparezca un mensaje de registro como el siguiente en la consola de depuración de Xcode:
[FirebaseAnalytics][I-ACS023225] Initiated on-device conversion measurement
Si habilitaste el modo de depuración y agregaste el argumento de inicio -DebugOnDeviceConversionMeasurement, llamar a la API de initiateOnDeviceConversionMeasurement() simulará una coincidencia.
[FirebaseAnalytics][I-ACS023229] On-device conversion measurement found a match
Paso 2: Integra Google Analytics Paso 4: Soluciona problemas y maneja inconvenientes comunes