Inviare eventi app a GA4 utilizzando Measurement Protocol

1. Introduzione

Ultimo aggiornamento: 08/06/2021

Cosa creerai

In questo codelab imparerai a inviare eventi esterni a GA4 utilizzando Measurement Protocol.

Questo codelab presuppone che tu abbia già implementato un'app con Google Analytics per Firebase. Se vuoi scoprire come eseguire l'integrazione con Google Analytics for Firebase, consulta prima questo codelab. Se vuoi scoprire come creare un'app con Firebase, consulta il Codelab Firebase per Android: crea una chat amichevole.

Cosa imparerai a fare

  • Passaggi per effettuare la prima chiamata a un membro del Parlamento
  • Informazioni sui parametri richiesti per la chiamata
  • Invia e convalida la chiamata di prova
  • Crea uno script di esempio in Python per effettuare la chiamata

Che cosa ti serve

  • La tua app per Android o iOS
  • Qualsiasi IDE per apportare modifiche
  • Account GA4
  • (Facoltativo) Ambiente di sviluppo Python (o Colab)

2. Raccogliere i campi obbligatori

Creare un API secret in GA4

Vai a GA4 e crea il nuovo secret API in Amministrazione > Stream di dati > scegli il tuo stream > Measurement Protocol > Crea

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

Puoi fornire un nickname qualsiasi e verrà visualizzato il valore del secret, che potrai utilizzare nella chiamata

Se non sai come accedere a GA4, puoi visitare il tuo progetto Firebase, controllare Impostazioni progetto > Integrazioni > Google Analytics e fare clic su "Gestisci". Il collegamento a Google Analytics dovrebbe essere visibile e puoi anche navigare direttamente da lì.

73b4d77a57eddfba.png

Raccogliere app_instance_id

Puoi utilizzare uno dei metodi riportati di seguito per raccogliere l'app_instance_id.

  1. Utilizzo di BigQuery Export
  2. Recupero in modo nativo nel codice sorgente dell'app

Entrambe le opzioni sono descritte in dettaglio di seguito

  1. Utilizzare BigQuery Export

Se hai attivato BigQuery Export , puoi seguire i passaggi riportati di seguito

  • Accedi a Firebase
  • Vai a Impostazioni progetto > Integrazioni > BigQuery
  • Fai clic su "Visualizza in BigQuery" accanto al set di dati

Nota : il set di dati sarà disponibile solo dopo che l'opzione è stata attivata per circa 24-48 ore

63d061088b622961.png

  • In BigQuery, puoi verificare la presenza di user_pseudo_id nella tabella. Questo è l'app_instance_id che puoi utilizzare nella chiamata

4b1b80bdc2884581.png

  1. Eseguire il recupero in modo nativo nel codice sorgente dell'app

Se la tua app è creata utilizzando Java, puoi utilizzare qualcosa di simile per recuperare l'app_instance_id

 FirebaseAnalytics.getInstance(this).getAppInstanceId().addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
            if (task.isSuccessful()) {
                String user_pseudo_id = task.getResult();
            }
        }
    });

Per Kotlin, puoi provare quanto segue

Thread {
   Firebase.analytics.appInstanceId.addOnSuccessListener { user_pseudo_id ->
       Log.d("Firebase", "user_pseudo_id using appInstanceId is $user_pseudo_id")
       /*
       Store the value to your server or do something with the retrieved id
        */
   }
}.start()

Se hai un'app per iOS, puoi utilizzare quanto segue in Swift

let user_pseudo_id = Analytics.appInstanceID()
print("user_pseudo_id = \(user_pseudo_id)")
/*
Store the value to your server or do something with the retrieved id
*/

Di seguito sono riportati altri link a seconda della tua infrastruttura

3. Creazione della chiamata

Puoi creare una chiamata di esempio utilizzando lo strumento per la creazione di eventi in GA4. Per farlo, devi accedere e avere attivato i cookie. Assicurati che l'opzione sia impostata su "firebase"

fd78d961f3e48238.png

Dovrai compilare i seguenti campi

  • api_secret: già creato in precedenza in GA4
  • firebase_app_id: per ottenerlo, vai ad Amministrazione > Stream di dati > scegli il tuo stream . Dovrebbe essere visualizzato come mostrato di seguito

19801c8e5cb29222.png

  • app_instance_id: hai già recuperato questo valore
  • user_id non è obbligatorio. Per il momento puoi lasciarlo vuoto
  • Categoria: imposta il valore "Personalizzata" dal menu a discesa e inserisci il nome dell'evento che preferisci (non utilizzare eventi raccolti automaticamente). Qui utilizziamo "test_from_codelab"

54cce53df64d697.png

Se vuoi, puoi anche scegliere di fornire parametri evento e/o proprietà utente facendo clic sui pulsanti di seguito.

16a8f531a3894021.png

Dopo aver compilato tutti i campi, dovresti visualizzare una schermata simile a questa, con un pulsante per "Convalida evento".

475801f25c3caf26.png

Una volta raggiunto questo punto, fai clic su "CONVALIDA EVENTO" , il pulsante evidenziato in arancione. Dovresti visualizzare il messaggio riportato di seguito, che specifica che l'evento è valido, e un pulsante "INVI A GA". A questo punto, se l'evento non è valido, lo strumento ti indicherà il campo esatto in cui si verifica il problema, in modo da poterlo correggere e riprovare.

23e4e6800705b4aa.png

Ora puoi fare clic sul pulsante e dovrebbe essere inviato un evento di test a GA4

4. Convalida degli eventi in GA4

Dopo aver inviato l'evento, puoi accedere al tuo account GA4 e controllare la sezione In tempo reale. Dovresti vedere l'evento

994b51ca46bb1973.png

Potrebbero essere necessarie circa 24 ore per la propagazione degli eventi dalla visualizzazione in tempo reale alla scheda dei report sugli eventi effettivi, quindi non preoccuparti se non li vedi immediatamente nei report sugli eventi standard.

Se riscontri problemi o discrepanze, potrebbe essere utile consultare le limitazioni note di Measurement Protocol qui

5. Creazione di uno script Python

Ora che hai eseguito il test, puoi esaminare la chiamata API e il payload dell'evento per creare un'architettura simile in Python (o in qualsiasi altro linguaggio a tua scelta) che possa effettuare questa chiamata. Puoi quindi pianificarla con la frequenza che preferisci e metterla in funzione. Per questa parte, puoi utilizzare qualsiasi IDE di tua scelta che supporti Python o semplicemente un notebook Google Colab che non richiede alcuna installazione sul tuo dispositivo.

Se torniamo al generatore di eventi GA4, vedrai che l'endpoint è il seguente

POST /mp/collect?firebase_app_id=XXXX&api_secret=XXXX 
HTTP/1.1
Host: www.google-analytics.com

Il payload dell'evento era il seguente

{
  "app_instance_id": XXXX,
  "non_personalized_ads": false,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}

Puoi tradurre questo codice in Python utilizzando qualcosa di simile

import requests
import json
url = "https://www.google-analytics.com/mp/collect?firebase_app_id=XXXX&api_secret=XXXX"
payload = {
  "app_instance_id": XXXX,
  "non_personalized_ads": False,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}
r = requests.post(url,data=json.dumps(payload),verify=True)
print(r.status_code)

Una volta eseguito con i valori corretti, dovresti vedere l'evento riflesso in tempo reale in GA4.

6. Complimenti

Congratulazioni, hai utilizzato correttamente Measurement Protocol in GA4. Ora puoi creare architetture di soluzioni efficaci per inviare a Google Analytics dati più significativi e migliorare il marketing e l'analisi aziendale. Per sfruttare al meglio questa opportunità, ti consigliamo anche di collegarti a Google Ads e di importare questi eventi come conversioni. Per istruzioni dettagliate, consulta il passaggio 6 di questo codelab. Ai fini del monitoraggio delle conversioni, Google Ads mostrerà solo i dati associati agli IDFA o agli ID dispositivo raccolti dall'SDK Firebase negli ultimi 60 giorni. Tieni presente che si tratta ancora di un'API alpha e assicurati di esaminare le limitazioni elencate qui che devono essere risolte prima del lancio completo

Hai appreso

  • Come raccogliere le variabili giuste per effettuare chiamate MP
  • Come inviare e convalidare gli eventi di test
  • Come creare uno script per inviare chiamate MP