Envía eventos de aplicaciones a GA4 con el Protocolo de medición

1. Introducción

Última actualización: 8/6/2021

Qué compilarás

En este codelab, aprenderás a enviar eventos externos a GA4 con el Protocolo de medición.

En este codelab, se supone que ya tienes una app con Google Analytics para Firebase implementado. Si deseas obtener información para realizar la integración en Google Analytics para Firebase, primero consulta este codelab. Si quieres obtener información para compilar una app con Firebase, consulta Chat apto para compilaciones de codelabs de Firebase para Android.

Qué aprenderás

  • Pasos para hacer tu primera llamada de MP
  • Comprende los parámetros necesarios para la llamada
  • Envía y valida la llamada de prueba
  • Compila una secuencia de comandos de muestra en Python para realizar la llamada

Requisitos

  • Tu app para Android o iOS
  • Cualquier IDE para realizar cambios
  • Cuenta de GA4
  • Opcional: Entorno de desarrollo de Python (o Colab)

2. Recopila los campos obligatorios

Crea un secreto de API en GA4

Navega a GA4 y crea tu nuevo secreto de API. Para ello, navega a Administrador > Flujos de datos > elige tu flujo > Protocolo de medición > Crear.

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

Puedes proporcionar cualquier sobrenombre y se mostrará el valor del secreto, que puedes usar en la llamada

En caso de que no sepas cómo acceder a GA4, puedes visitar tu proyecto de Firebase, consultar Configuración del proyecto > Integraciones > Google Analytics y hacer clic en "Administrar". La conexión de Google Analytics debe estar visible, por lo que también podrás navegar directamente desde allí

73b4d77a57eddfba.png

Recopilar app_instance_id

Puedes usar cualquiera de los siguientes métodos para recopilar tu app_instance_id.

  1. Usa BigQuery Export
  2. Recupera de forma nativa en el código fuente de tu app

Ambas opciones se explican a continuación en detalle.

  1. Usa BigQuery Export

Si tienes habilitada la opción BigQuery Export , puedes seguir los pasos que se indican a continuación.

  • Accede a Firebase
  • Navega a Configuración del proyecto > Integraciones > BigQuery
  • Haz clic en “Ver en BigQuery” cerca del conjunto de datos.

Nota : El conjunto de datos estará disponible solo después de que el botón de activación se haya habilitado por aproximadamente 24 a 48 horas.

63d061088b622961.png

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

4b1b80bdc2884581.png

  1. Recupera de forma nativa en el código fuente de tu app

Si tu aplicación se compila con Java, puedes utilizar algo como esto para recuperar el campo 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 tienes una app para iOS, puedes usar la siguiente información 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
*/

Aquí tienes más vínculos según tu infraestructura

3. Generar la llamada

Puedes crear una llamada de muestra con el Creador de eventos en GA4. (Esta acción requiere que accedas y tengas las cookies habilitadas). Asegúrate de que el botón de activación esté configurado en “firebase”

fd78d961f3e48238.png

Deberás completar los siguientes campos:

  • api_secret: Ya se creó antes en GA4.
  • firebase_app_id: Para obtenerla, puedes navegar a Administrador > Flujos de datos > elegir tu flujo . Debería aparecer como se muestra a continuación.

19801c8e5cb29222.png

  • app_instance_id: Ya recuperaste este valor
  • user_id no es obligatorio. Por ahora, puedes dejarlo en blanco.
  • Categoría: Cambia esta opción a "Personalizado" en el menú desplegable y agrega el nombre de evento que desees (no uses ningún evento recopilado automáticamente). Aquí usamos "test_from_codelab"

54cce53df64d697.png

De manera opcional, también puedes proporcionar parámetros de eventos o propiedades del usuario. Para ello, haz clic en los botones que aparecen a continuación.

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 llegues a este punto, haz clic en “VALIDAR EVENTO”, el botón destacado en naranja. Debería mostrar el siguiente mensaje y especificar que el evento es válido, y verás el botón "SEND TO GA". En este punto, si el evento resulta no válido, la herramienta te indicará el campo exacto donde hay un problema, y podrás corregirlo y volver a intentarlo

23e4e6800705b4aa.png

Ahora puedes 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 hayas enviado el evento, puedes navegar a tu cuenta de GA4 y consultar la información en tiempo real. Deberías ver cómo se completa el evento

994b51ca46bb1973.png

Los eventos pueden demorar 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 debes preocuparte si no ves esto en los informes de eventos habituales de inmediato.

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

5. Compila una secuencia de comandos de Python

Ahora que la probaste, puedes examinar la llamada a la API y la carga útil del evento para compilar una arquitectura similar en Python (o en cualquier lenguaje que elijas) que pueda realizar esta llamada. Luego, puedes programar esto con la frecuencia deseada y ponerlo en funcionamiento. En ese caso, puedes usar el IDE que prefieras que sea compatible con Python o solo un notebook de Google Colab que no requiera instalación en tu dispositivo.

Con referencia al Creador de eventos de GA4, verás que el extremo 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 ejecutes esto con los valores correctos, deberías ver del mismo modo que el evento se refleja en tiempo real en GA4.

6. ¡Felicitaciones!

Felicitaciones, utilizaste correctamente el Protocolo de medición en GA4. Ahora puedes crear arquitecturas de soluciones potentes para enviar datos más significativos a Google Analytics y mejorar tus estadísticas comerciales y de marketing. Para aprovechar al máximo esto, también te sugerimos que te conectes a Google Ads y que importes estos eventos como conversiones. Puedes consultar el paso 6 de este codelab para obtener instrucciones detalladas sobre cómo hacerlo. Para realizar el seguimiento de conversiones, Google Ads solo mostrará los datos asociados con el IDFA o los IDs de dispositivo recopilados del SDK de Firebase en los últimos 60 días. Ten en cuenta que esta aún es una API alfa y asegúrate de cumplir con las limitaciones que se indican aquí , las cuales deben abordarse antes del lanzamiento completo.

Aprendiste lo siguiente

  • Cómo recopilar las variables correctas para hacer llamadas al Protocolo de medición
  • Cómo enviar y validar eventos de prueba
  • Cómo crear una secuencia de comandos para enviar llamadas de MP