Tutorial: misurare le conversioni degli annunci per iOS

Passaggio 3: avvia la misurazione delle conversioni sul dispositivo utilizzando Google Analytics


Introduzione: Misura le conversioni degli annunci iOS

Passaggio 1: Implementa un'esperienza di accesso

Passaggio 2: integra Google Analytics

Passaggio 3: avvia la misurazione delle conversioni sul dispositivo utilizzando Google Analytics

Passaggio 4: risolvi e gestisci i problemi comuni


Ora che puoi raccogliere gli indirizzi email e i numeri di telefono degli utenti e la tua app ha l'Google Analytics per SDK Firebase, puoi utilizzare questi dati per iniziare a misurare le conversioni.

Chiama l'API

Chiama l'API di misurazione delle conversioni con l'indirizzo email o il numero di telefono per il quale è stato fornito il consenso del passaggio 1, che viene utilizzato per la misurazione delle conversioni degli annunci, senza consentire che le informazioni che consentono l'identificazione personale lascino il dispositivo dell'utente.

Esistono due modi per avviare la misurazione:

Utilizza l'indirizzo email o il numero di telefono

Swift

Importa il modulo FirebaseAnalytics e trasmetti l'indirizzo email o il numero di telefono all'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

Importa il modulo FirebaseAnalytics e trasmetti l'indirizzo email all'API initiateOnDeviceConversionMeasurementWithEmailAddress: o il numero di telefono all'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

Importa lo spazio dei nomi Firebase.Analytics e trasmetti l'indirizzo email all'API InitiateOnDeviceConversionMeasurementWithEmailAddress() o il numero di telefono all'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");

Best practice per chiamare l'API

Per garantire una misurazione delle conversioni sul dispositivo accurata e continua, esegui una delle seguenti operazioni:

Google Analytics per la versione 12.1.0 e successive dell'SDK Firebase include miglioramenti alla misurazione delle conversioni sul dispositivo. Per assicurarti che questi miglioramenti vengano applicati a tutti gli utenti, inclusi quelli che hanno già eseguito l'accesso prima dell'aggiornamento dell'app, è fondamentale chiamare di nuovo l'API initiateOnDeviceConversionMeasurement dopo l'aggiornamento dell'app.

In particolare, gli utenti che hanno eseguito l'accesso prima dell'aggiornamento dell'app alla versione 12.1.0 dell'SDK non sono inclusi nell'ambito della misurazione avanzata finché non viene chiamata di nuovo l'API initiateOnDeviceConversionMeasurement per questi utenti. Senza il controllo dell'aggiornamento dell'app, questa operazione avverrebbe solo se gli utenti eseguono la disconnessione e poi di nuovo l'accesso.

La best practice consiste nel chiamare l'API per gli utenti che hanno eseguito l'accesso almeno una volta per versione dell'app. Puoi implementare un controllo all'avvio dell'app per chiamare l'API solo quando la versione dell'app è cambiata dall'ultima chiamata.

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();
}

Chiama immediatamente dopo l'accesso

Chiama sempre l'API initiateOnDeviceConversionMeasurement subito dopo che un utente ha eseguito l'accesso o ha registrato il suo indirizzo email o numero di telefono.

Considerazioni sui tempi per le nuove registrazioni

Se un evento di conversione chiave si verifica immediatamente dopo la registrazione di un utente (e chiami l'API), valuta la possibilità di implementare un piccolo ritardo (ad esempio, cinque secondi) tra la chiamata API e la registrazione dell'evento chiave. In questo modo, la misurazione sul dispositivo viene inizializzata completamente prima della registrazione dell'evento.

Utilizza un indirizzo email o un numero di telefono sottoposto ad hashing

L'API accetterà indirizzi email e numeri di telefono sottoposti ad hashing con SHA256. Puoi mantenere il controllo dei dati dei tuoi utenti eseguendo l'hashing nel codice prima di effettuare chiamate all'SDK.

Per utilizzare le credenziali sottoposte ad hashing, normalizza gli indirizzi e i numeri, esegui l'hashing con SHA256, quindi chiama l'API.

Normalizza gli indirizzi email e i numeri di telefono

Per gli indirizzi email, l'API Google Analytics presuppone che venga eseguita una normalizzazione specifica prima dell'applicazione di SHA256, quindi segui questi passaggi per normalizzare i dati:

  1. Converti l'intero indirizzo email in lettere minuscole.

  2. Se l'indirizzo email termina con il dominio @googlemail.com, sostituisci il @googlemail.com dominio con @gmail.com.

  3. Per gli indirizzi che terminano con il dominio @gmail.com (inclusi quelli modificati nel passaggio precedente):

    1. Rimuovi tutti i punti dalla parte del nome utente.

    2. Esegui le seguenti sostituzioni nella parte del nome utente:

      • Per le lettere I o i o la cifra 1, sostituisci la lettera l
      • Per la cifra 0, sostituisci la lettera o
      • Per la cifra 2, sostituisci la lettera z
      • Per la cifra 5, sostituisci la lettera s

Ad esempio, dopo la normalizzazione:

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

Per i numeri di telefono, i numeri devono essere già in formato E.164 (ovvero, con il prefisso +, 1-3 cifre per il codice paese, massimo 12 cifre per il numero dell'abbonato) prima dell'hashing con SHA256.

Tieni presente che gli indirizzi email o i numeri di telefono sottoposti ad hashing con SHA256 devono avere una lunghezza di 32 byte e non essere una stringa esadecimale.

Chiama l'API con le credenziali sottoposte ad hashing

Swift

Importa il modulo FirebaseAnalytics e trasmetti l'indirizzo email o il numero di telefono all'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

Importa il modulo FirebaseAnalytics e trasmetti l'indirizzo email all'API initiateOnDeviceConversionMeasurementWithHashedEmailAddress: o il numero di telefono all'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

Importa lo spazio dei nomi Firebase.Analytics e trasmetti l'indirizzo email all'API InitiateOnDeviceConversionMeasurementWithHashedEmailAddress() o il numero di telefono all'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);

Verifica l'integrazione

Attiva la modalità di debug. Dopo aver chiamato l'API di avvio della misurazione, assicurati che nella console di debug di Xcode venga visualizzato un messaggio di log simile al seguente:

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

Se hai attivato la modalità di debug e hai incluso l'argomento di avvio -DebugOnDeviceConversionMeasurement, la chiamata all'API initiateOnDeviceConversionMeasurement() simulerà una corrispondenza.

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




Passaggio 2: integra Google Analytics Passaggio 4: risolvi e gestisci i problemi comuni