Envíe eventos de aplicaciones a GA4 mediante el protocolo de medición

1. Introducción

Última actualización: 2021-06-08

lo que construirás

En este codelab, aprenderá cómo enviar eventos externos a GA4 mediante el protocolo de medición .

Este codelab supone que ya tienes implementada una aplicación con Google Analytics para Firebase. Si desea aprender cómo integrarse con Google Analytics para Firebase, consulte primero este codelab . Si desea aprender cómo crear una aplicación con Firebase, consulte Firebase Android Codelab-Build Friendly Chat .

lo que aprenderás

  • Pasos para realizar tu primera llamada MP
  • Comprender los parámetros necesarios para la llamada
  • Envía y valida tu llamada de prueba
  • Cree un script de muestra en Python para realizar la llamada

Lo que necesitarás

  • Tu aplicación para Android o iOS
  • Cualquier IDE para realizar cambios.
  • Cuenta GA4
  • Opcional: entorno de desarrollo Python (o Colab )

2. Recoge los campos obligatorios

Crear secreto de API en GA4

Navegue a GA4 y cree su nuevo secreto de API navegando a Administrador > Flujos de datos > elija su flujo > Protocolo de medición > Crear

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

Puede proporcionar cualquier apodo y se mostrará el valor secreto, que puede utilizar en su llamada.

En caso de que no esté seguro de cómo acceder a GA4, puede visitar su proyecto Firebase, verificar Configuración del proyecto > Integraciones > Google Analytics y hacer clic en "Administrar". La conexión de Google Analytics debería estar visible y también podrás navegar directamente desde allí.

73b4d77a57eddfba.png

Recopilar app_instance_id

Puede utilizar cualquiera de los métodos siguientes para recopilar su app_instance_id.

  1. Usar la exportación de BigQuery
  2. Obteniendo de forma nativa el código fuente de su aplicación

Ambos se explican en detalle a continuación.

  1. Usar la exportación de BigQuery

Si tiene habilitada la exportación de BigQuery , puede seguir los pasos a continuación

  • Iniciar sesión en Firebase
  • Vaya a Configuración del proyecto > Integraciones > BigQuery
  • Haga clic en "Ver en BigQuery" cerca del conjunto de datos.

Nota: el conjunto de datos estará disponible solo después de que se haya habilitado la opción durante aproximadamente 24 a 48 horas.

63d061088b622961.png

  • En BigQuery, puedes buscar user_pseudo_id en la tabla. Este es el app_instance_id que puedes usar en tu llamada

4b1b80bdc2884581.png

  1. Obteniendo de forma nativa el código fuente de su aplicación

Si su aplicación está creada con Java, puede usar algo como esto para recuperar 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();
            }
        }
    });

Para Kotlin, puedes probar lo siguiente

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

Si tiene una aplicación iOS, puede usar lo siguiente en 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
*/

A continuación se muestran más enlaces dependiendo de su infraestructura.

3. Construyendo la llamada

Puede crear una llamada de muestra utilizando el Generador de eventos en GA4. (Esto requiere que inicies sesión y tengas las cookies habilitadas). Asegúrese de que el interruptor esté configurado en "firebase"

fd78d961f3e48238.png

Deberá completar los siguientes campos

  • api_secret: ya creado anteriormente en GA4
  • firebase_app_id: para obtener esto, puede navegar a Administrador > Flujos de datos > elegir su flujo . Debería mostrarse como se muestra a continuación.

19801c8e5cb29222.png

  • app_instance_id: ya has recuperado este valor
  • user_id no es obligatorio. Puedes dejarlo en blanco por ahora.
  • Categoría: cámbielo a "Personalizado" en el menú desplegable e ingrese cualquier nombre de evento que elija (no use ningún evento recopilado automáticamente ). Aquí estamos usando "test_from_codelab"

54cce53df64d697.png

Opcionalmente, también puede optar por proporcionar parámetros de evento y/o propiedades de usuario haciendo clic en los botones siguientes

16a8f531a3894021.png

Una vez que hayas completado todo, deberías ver algo como esto, con un botón para "Validar evento".

475801f25c3caf26.png

Una vez que llegue aquí, haga clic en "VALIDAR EVENTO", el botón resaltado en naranja. Debería mostrar el siguiente mensaje, especificando que el evento es válido, y verá un botón para "ENVIAR A GA". En este punto, si el evento resulta no válido, la herramienta le indicará el campo exacto donde hay un problema y podrá solucionarlo y volver a intentarlo.

23e4e6800705b4aa.png

Ahora puede hacer clic en el botón y debería enviar un evento de prueba a GA4.

4. Validación de eventos en GA4

Una vez que haya enviado el evento, puede navegar a su cuenta GA4 y verificar Realtime. Deberías ver el evento llegar

994b51ca46bb1973.png

Los eventos podrían tardar alrededor de 24 horas en propagarse desde la vista en tiempo real a la pestaña de informes de eventos reales, por lo que no debe preocuparse si no ve esto en los informes de eventos habituales de inmediato.

Si tiene problemas o discrepancias, puede ser útil consultar las limitaciones conocidas del Protocolo de medición aquí.

5. Construyendo una secuencia de comandos Python

Ahora que lo ha probado, puede examinar la llamada a la API y la carga útil del evento para crear una arquitectura similar en Python (o en cualquier idioma de su elección) que pueda realizar esta llamada. Luego puede programarlo con la frecuencia deseada y ponerlo en funcionamiento. Para esta parte, puede usar cualquier IDE de su elección que admita Python o simplemente usar una computadora portátil de Google Colab que no requiere ninguna instalación en su dispositivo.

Volviendo al Generador de eventos GA4, verá que el punto final es el siguiente

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

La carga útil del evento fue la siguiente

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

Puedes traducir esto a Python usando algo como esto

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 vez que ejecute esto con los valores correctos, debería ver de manera similar el evento reflejado en tiempo real en GA4.

6. Felicitaciones

Felicitaciones, ha utilizado con éxito el Protocolo de medición en GA4. Ahora puede crear potentes arquitecturas de soluciones para enviar datos más significativos a Google Analytics y mejorar sus análisis comerciales y de marketing. Para aprovechar esto al máximo, también sugerimos conectarse a Google Ads e importar estos eventos como conversiones. Puede consultar el paso 6 de este codelab para obtener instrucciones detalladas al respecto. Para fines de seguimiento de conversiones, Google Ads solo mostrará datos asociados con IDFA o ID de dispositivo recopilados del SDK de Firebase en los últimos 60 días. Tenga en cuenta que esta sigue siendo una API alfa y asegúrese de cumplir con las limitaciones enumeradas aquí , que deben abordarse antes del lanzamiento completo.

has aprendido

  • Cómo recopilar las variables adecuadas para realizar llamadas MP
  • Cómo enviar y validar eventos de prueba
  • Cómo crear un script para enviar llamadas MP