En esta guía, se explica cómo puedes enviar los eventos del flujo web y de aplicaciones del Protocolo de medición de Google Analytics a un servidor de Google Analytics para que puedas ver los eventos del Protocolo de medición en tus informes de Google Analytics.
Elige la plataforma que quieres ver en esta guía:
Da formato a la solicitud
El Protocolo de medición de Google Analytics solo admite solicitudes HTTP POST
.
Para enviar un evento, usa el siguiente formato:
POST /mp/collect HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
<payload_data>
Debes proporcionar lo siguiente en la URL de la solicitud:
api_secret
: El CÓDIGO CLAVE DE API generado en la IU de Google Analytics.Para crear un secreto nuevo, navega a Administrador > Flujos de datos > elige tu flujo > Protocolo de medición > Crear.
measurement_id
: Es el ID de medición asociado con un flujo, que se encuentra en la IU de Google Analytics en Administrador > Flujos de datos > Elige tu flujo > ID de medición.measurement_id
no es tu ID de transmisión.
Consulta Parámetros de consulta para obtener la referencia completa.
Debes proporcionar lo siguiente en el cuerpo de la solicitud:
client_id
: Es un identificador único para un cliente. Esto es diferente de unapp_instance_id
de Firebase. Usa gtag.js('get').
user_id
: Opcional Es un identificador único para un usuario. Solo puede contener caracteres UTF-8. Consulta User-ID para el análisis multiplataforma si necesitas más información sobre este identificador.consent
: Opcional Obtén información para configurar la configuración de consentimiento.timestamp_micros
: Opcional Es la época de Unix, en microsegundos, para los eventos y las propiedades del usuario en la solicitud. Si no se especifica, se establece de forma predeterminada en la hora de la solicitud.events
: Es un array de elementos de evento. Puedes incluir varios eventos en una sola solicitud.Para que la actividad del usuario se muestre en informes como En tiempo real, se deben proporcionar
engagement_time_msec
ysession_id
como parte deparams
para unevent
. El parámetroengagement_time_msec
debe reflejar el tiempo de participación del evento en milisegundos.Por ejemplo:
{
"client_id": "123456.7654321",
"events": [
{
"name": "campaign_details",
"params": {
"campaign_id": "google_1234",
"campaign": "Summer_fun",
"source": "google",
"medium": "cpc",
"term": "summer+travel",
"content": "logolink",
"session_id": "123",
"engagement_time_msec": 100
}
}
]
}
Si bien session_start
es un nombre de evento reservado, crear un session_id
nuevo crea una sesión nueva sin necesidad de enviar session_start
. Comprende cómo se registran las sesiones.
Probar
Este es un ejemplo que puedes usar para enviar varios eventos a la vez. En este ejemplo, se envía un evento tutorial_begin
y un evento join_group
a tu servidor de Google Analytics.
const measurement_id = `G-XXXXXXXXXX`;
const api_secret = `<secret_value>`;
fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}`, {
method: "POST",
body: JSON.stringify({
client_id: "XXXXXXXXXX.YYYYYYYYYY",
events: [
{
name: "tutorial_begin",
params: {
"session_id": "123",
"engagement_time_msec": 100
}
},
{
name: "join_group",
params: {
"group_id": "G_12345",
"session_id": "123",
"engagement_time_msec": 150
}
}
]
})
});
Marca de tiempo de anulación
El Protocolo de medición usa la primera marca de tiempo que encuentra en la siguiente lista para cada evento de la solicitud:
- Es el
timestamp_micros
del evento. - El
timestamp_micros
de la solicitud. - Es la hora en la que el Protocolo de medición recibe la solicitud.
En el siguiente ejemplo, se envía una marca de tiempo a nivel de la solicitud que se aplica a todos los eventos de la solicitud. Como resultado, el Protocolo de medición asigna a los eventos tutorial_begin
y join_group
una marca de tiempo de requestUnixEpochTimeInMicros
.
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin"
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
]
}
En el siguiente ejemplo, se envía una marca de tiempo a nivel de la solicitud y una marca de tiempo a nivel del evento. Como resultado, el Protocolo de medición asigna al evento tutorial_begin
una marca de tiempo de tutorialBeginUnixEpochTimeInMicros
y al evento join_group
una marca de tiempo de requestUnixEpochTimeInMicros
.
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin",
"timestamp_micros": tutorialBeginUnixEpochTimeInMicros
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
]
}
Limitaciones
Se aplican las siguientes limitaciones para enviar eventos del Protocolo de medición a Google Analytics:
- Las solicitudes pueden tener un máximo de 25 eventos.
- Los eventos pueden tener un máximo de 25 parámetros.
- Los eventos pueden tener un máximo de 25 propiedades del usuario.
- Los nombres de las propiedades del usuario deben tener 24 caracteres o menos.
- Los valores de propiedad del usuario deben tener 36 caracteres o menos.
- Los nombres de eventos deben tener 40 caracteres o menos, solo pueden contener caracteres alfanuméricos y guiones bajos, y deben comenzar con un carácter alfabético.
- Los nombres de parámetros, incluidos los parámetros de elementos, deben tener 40 caracteres o menos, solo pueden contener caracteres alfanuméricos y guiones bajos, y deben comenzar con un carácter alfabético.
- Los valores de los parámetros, incluidos los valores del parámetro del elemento, deben tener 100 caracteres o menos para una propiedad estándar de Google Analytics y 500 caracteres o menos para una propiedad de Google Analytics 360.
- Los parámetros de artículo pueden tener un máximo de 10 parámetros personalizados.
- El cuerpo de la publicación debe ser inferior a 130 KB.
- Los eventos del Protocolo de medición de aplicaciones que se envían a Google Analytics no propagan los públicos de Búsqueda en Google Ads para los usuarios de la aplicación.
Para conocer los requisitos adicionales de cada caso de uso, consulta casos de uso comunes.