Étape 3 : Lancez la mesure des conversions sur l'appareil à l'aide de Google Analytics
| Introduction : Mesurer les conversions des annonces iOS |
|
Étape 1 : Implémenter une expérience de connexion |
| Étape 2 : Intégrer Google Analytics |
|
Étape 3 : Lancez la mesure des conversions sur l'appareil à l'aide de Google Analytics |
| Étape 4 : Résoudre et gérer les problèmes courants |
Maintenant que vous pouvez collecter les adresses e-mail et les numéros de téléphone des utilisateurs, et que votre application dispose du SDK Firebase Google Analytics, vous pouvez utiliser ces deux éléments pour commencer à mesurer les conversions.
Appeler l'API
Appelez l'API de mesure des conversions avec l'adresse e-mail ou le numéro de téléphone consentis à l'étape 1, qui sont utilisés pour la mesure des conversions d'annonces, sans autoriser la transmission d'informations permettant d'identifier personnellement l'utilisateur hors de son appareil.
Il existe deux façons de lancer la mesure :
Utiliser une adresse e-mail ou un numéro de téléphone
Swift
Importez le module FirebaseAnalytics et transmettez l'adresse e-mail ou le numéro de téléphone à l'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
Importez le module FirebaseAnalytics et transmettez l'adresse e-mail à l'API initiateOnDeviceConversionMeasurementWithEmailAddress: ou le numéro de téléphone à l'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
Importez l'espace de noms Firebase.Analytics et transmettez l'adresse e-mail à l'API InitiateOnDeviceConversionMeasurementWithEmailAddress() ou le numéro de téléphone à l'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");
Bonnes pratiques pour appeler l'API
Pour assurer une mesure précise et continue des conversions sur l'appareil, procédez comme suit :
Appeler à chaque mise à jour d'application (recommandé)
Google Analytics pour le SDK Firebase version 12.1.0 et ultérieure inclut des améliorations concernant la mesure des conversions sur les appareils. Pour vous assurer que ces améliorations s'appliquent à tous les utilisateurs, y compris ceux déjà connectés avant la mise à jour de votre application, il est essentiel d'appeler à nouveau l'API initiateOnDeviceConversionMeasurement après la mise à jour de l'application.
Plus précisément, les utilisateurs qui se sont connectés avant que votre application ne passe à la version 12.1.0 du SDK ne sont pas inclus dans le champ de mesures améliorées tant que l'API initiateOnDeviceConversionMeasurement n'est pas appelée à nouveau pour eux. Sans la mise à jour d'application, cela ne se produirait que s'ils se déconnectaient et se reconnectaient.
La bonne pratique consiste à appeler l'API pour les utilisateurs connectés au moins une fois par version d'application. Vous pouvez implémenter une vérification au lancement de l'application pour n'appeler l'API que lorsque la version de l'application a changé depuis le dernier appel.
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(); }
Appel immédiatement après la connexion
Appelez toujours l'API initiateOnDeviceConversionMeasurement juste après qu'un utilisateur s'est connecté ou a enregistré son adresse e-mail ou son numéro de téléphone.
Délai à prendre en compte pour les nouvelles inscriptions
Si un événement de conversion clé se produit immédiatement après l'enregistrement d'un utilisateur (et que vous appelez l'API), envisagez d'implémenter un petit délai (par exemple, cinq secondes) entre l'appel de l'API et la journalisation de l'événement clé. Cela permet de s'assurer que la mesure sur l'appareil est entièrement initialisée avant la journalisation de l'événement.
Utiliser une adresse e-mail ou un numéro de téléphone hachés
L'API accepte les adresses e-mail et les numéros de téléphone hachés avec SHA256. Vous pouvez garder le contrôle sur les données de vos utilisateurs en effectuant le hachage dans votre code avant d'appeler le SDK.
Pour utiliser des identifiants hachés, normalisez les adresses et les numéros, hachez-les avec SHA256, puis appelez l'API.
Normaliser les adresses e-mail et les numéros de téléphone
Pour les adresses e-mail, l'API Google Analytics suppose qu'une normalisation particulière est effectuée avant l'application de SHA256. Suivez donc ces étapes pour normaliser vos données :
Convertissez l'intégralité de l'adresse e-mail en minuscules.
Si l'adresse e-mail se termine par le domaine @googlemail.com, remplacez-le par @gmail.com.
Pour les adresses se terminant par le domaine @gmail.com (y compris celles modifiées à l'étape précédente) :
Supprimez tous les points de la partie nom d'utilisateur.
Effectuez les substitutions suivantes dans la partie du nom d'utilisateur :
- Remplacez les lettres I ou i, ou le chiffre 1, par la lettre l.
- Pour le chiffre 0, remplacez-le par la lettre "o".
- Remplacez le deuxième chiffre par la lettre "z".
- Remplacez le chiffre 5 par la lettre s.
Par exemple, après la normalisation :
an.email.user0125@googlemail.comdevientanemalluserolzs@gmail.comCAPSUSER0125@provider.netdevientcapsuser0125@provider.net
Pour les numéros de téléphone, ils doivent déjà être au format E.164 (c'est-à-dire précédés d'un signe +, suivis de 1 à 3 chiffres pour l'indicatif du pays et de 12 chiffres maximum pour le numéro de l'abonné) avant d'être hachés avec SHA256.
Notez que les adresses e-mail ou les numéros de téléphone hachés SHA256 doivent comporter 32 octets et ne pas être une chaîne hexadécimale.
Appeler l'API avec des identifiants hachés
Swift
Importez le module FirebaseAnalytics et transmettez l'adresse e-mail ou le numéro de téléphone à l'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
Importez le module FirebaseAnalytics et transmettez l'adresse e-mail à l'API initiateOnDeviceConversionMeasurementWithHashedEmailAddress: ou le numéro de téléphone à l'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
Importez l'espace de noms Firebase.Analytics et transmettez l'adresse e-mail à l'API InitiateOnDeviceConversionMeasurementWithHashedEmailAddress() ou le numéro de téléphone à l'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);
Vérifier l'intégration
Activez le mode de débogage. Après avoir appelé l'API de mesure, assurez-vous qu'un message de journal semblable à celui ci-dessous s'affiche dans la console de débogage Xcode :
[FirebaseAnalytics][I-ACS023225] Initiated on-device conversion measurement
Si vous avez activé le mode débogage et inclus l'argument de lancement -DebugOnDeviceConversionMeasurement, l'appel de l'API initiateOnDeviceConversionMeasurement() simulera un match.
[FirebaseAnalytics][I-ACS023229] On-device conversion measurement found a match
Étape 2 : Intégrer Google Analytics Étape 4 : Résoudre les problèmes courants