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 aplicación con Google Analytics para Firebase implementada. Si quieres obtener información para realizar la integración con Google Analytics para Firebase, consulta primero este codelab. Si quieres obtener más información sobre cómo compilar una app con Firebase, consulta Firebase Android Codelab: Build friendly Chat.

Qué aprenderás

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

Requisitos

  • Su aplicación 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

Crear un Secret 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 tu llamada

Si no sabes 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 con Google Analytics debería estar visible, y también puedes navegar directamente desde allí.

73b4d77a57eddfba.png

Recopila 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 el código fuente de la app

Ambos se explican en detalle a continuación.

  1. Usa BigQuery Export

Si tienes habilitado 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 se haya habilitado el botón de activación durante alrededor de 24 a 48 horas.

63d061088b622961.png

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

4b1b80bdc2884581.png

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

Si tu app se compila con Java, puedes usar algo como esto para recuperar el parámetro 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 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 vínculos según tu infraestructura

3. Redacta la llamada

Puedes crear una llamada de muestra mediante el Creador de eventos en GA4. (Para ello, debes acceder a tu cuenta y habilitar las cookies). 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ó anteriormente en GA4
  • firebase_app_id: Para obtener esto, puedes navegar a Administrador > Flujos de datos > elegir tu flujo . Se debe mostrar como se muestra a continuación

19801c8e5cb29222.png

  • app_instance_id: Ya recuperaste este valor
  • El campo user_id no es obligatorio. Puedes dejarlo en blanco por ahora
  • Categoría: Cambia esta opción a "Personalizada" en el menú desplegable y escribe el nombre de cualquier evento que elijas (no uses ningún evento recopilado automáticamente). Aquí usamos “test_from_codelab”

54cce53df64d697.png

De manera opcional, también puedes elegir proporcionar parámetros de eventos o propiedades del usuario. Para ello, haz clic en los siguientes botones

16a8f531a3894021.png

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

475801f25c3caf26.png

Una vez allí, haz clic en “VALIDAR EVENTO” (VALIDATE EVENT), en el botón destacado en naranja. Debería mostrar el siguiente mensaje, en el que se especifica que el evento es válido, y debería aparecer el botón “ENVIAR A DG”. En este punto, si el evento aparece como no válido, la herramienta te indicará el campo exacto en el que hay un problema, y puedes corregirlo y volver a intentarlo.

23e4e6800705b4aa.png

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

4. Valida eventos en GA4

Una vez que hayas enviado el evento, puedes navegar a tu cuenta de GA4 y consultar la opción En tiempo real. Deberías ver que el evento se transmite

994b51ca46bb1973.png

Los eventos pueden demorar alrededor de 24 horas en propagarse de la vista en tiempo real a la pestaña de informes de eventos reales, por lo que no debes preocuparte si no ves esto de inmediato en los informes de eventos normales.

Si tiene problemas o discrepancias, podría ser ú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 crear una arquitectura similar en Python (o en cualquier lenguaje que elijas) que pueda realizar esta llamada. Luego, puedes programarlo con la frecuencia deseada y ponerlo en funcionamiento. Para esta parte, puedes usar cualquier IDE que desees que sea compatible con Python o simplemente un notebook de Google Colab que no requiera ninguna instalación en tu dispositivo.

Si vuelves al compilador 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 era 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 lo siguiente:

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 de manera similar cómo 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 empresariales y de marketing. Para aprovechar al máximo esta situación, también te sugerimos conectarte a Google Ads y, luego, importar estos eventos como conversiones. Puedes consultar el paso 6 de este codelab para obtener instrucciones detalladas al respecto. Para fines de seguimiento de conversiones, Google Ads solo mostrará los datos asociados con el IDFA o los IDs de dispositivo recopilados desde el SDK de Firebase en los últimos 60 días. Ten en cuenta que esta sigue siendo una API alfa y asegúrate de superar 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 MP
  • Cómo enviar y validar eventos de prueba
  • Cómo crear una secuencia de comandos para enviar llamadas de MP