Envía eventos del Protocolo de medición a Google Analytics

En esta guía, se explica cómo puedes enviar eventos de flujos 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:

Formatea la solicitud

El Protocolo de medición de Google Analytics solo admite solicitudes POST HTTP.

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: Es el SECRETO DE API generado en la IU de Google Analytics.

    Para crear un secreto nuevo, navega a Administrador > Recopilación y modificación de datos > Flujos de datos > elige tu flujo > Secretos de la API del Protocolo de medición > Crear.

  • measurement_id: Es el ID de medición asociado a un flujo, que se encuentra en la IU de Google Analytics en Administrador > Flujos de datos > elige tu flujo > ID de medición.

    El measurement_id no es tu ID de transmisión.

Debes proporcionar un cuerpo de solicitud en el formato de cuerpo POST de JSON para el Protocolo de Measurement. Por ejemplo:

  {
   "client_id": "CLIENT_ID",
   "events": [
      {
        "name": "login",
        "params": {
          "method": "Google",
          "session_id": "SESSION_ID",
          "engagement_time_msec": 100
        }
      }
   ]
  }

Si bien session_start es un nombre de evento reservado, crear un nuevo session_id crea una nueva sesión 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ían un evento tutorial_begin y un evento join_group a tu servidor de Google Analytics, se incluye información geográfica con el campo user_location y se incluye información del dispositivo con el campo device.

const measurementId = "MEASUREMENT_ID";
const apiSecret = "API_SECRET";

fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurementId}&api_secret=${apiSecret}`, {
  method: "POST",
  body: JSON.stringify({
    client_id: "CLIENT_ID",
    events: [
      {
        name: "tutorial_begin",
        params: {
          "session_id": "SESSION_ID",
          "engagement_time_msec": 100
        }
      },
      {
        name: "join_group",
        params: {
          "group_id": "G_12345",
          "session_id": "SESSION_ID",
          "engagement_time_msec": 150
        }
      }
    ],
    user_location: {
      city: "Mountain View",
      region_id: "US-CA",
      country_id: "US",
      subcontinent_id: "021",
      continent_id: "019"
    },
    device: {
      category: "mobile",
      language: "en",
      screen_resolution: "1280x2856",
      operating_system: "Android",
      operating_system_version: "14",
      model: "Pixel 9 Pro",
      brand: "Google",
      browser: "Chrome",
      browser_version: "136.0.7103.60"
    }
  })
});

Anular la marca de tiempo

Measurement Protocol usa la primera marca de tiempo first que encuentra en la siguiente lista para cada evento y propiedad del usuario en la solicitud:

  1. Es el timestamp_micros del evento o la propiedad del usuario.
  2. El timestamp_micros de la solicitud.
  3. Es la fecha y hora en 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 y las propiedades del usuario de la solicitud. Como resultado, Measurement Protocol asigna una marca de tiempo de requestUnixEpochTimeInMicros a los eventos tutorial_begin y join_group, y a la propiedad del usuario customer_tier.

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin"
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ],
  "user_properties": {
    "customer_tier": {
      "value": "PREMIUM"
    }
  }
}

En el siguiente ejemplo, se envían una marca de tiempo a nivel de la solicitud, una marca de tiempo a nivel del evento y una marca de tiempo a nivel de la propiedad del usuario. Como resultado, el Protocolo de Measurement asigna las siguientes marcas de tiempo:

  • tutorialBeginUnixEpochTimeInMicros para el evento de tutorial_begin
  • customerTierUnixEpochTimeInMicros para la propiedad del usuario customer_tier
  • requestUnixEpochTimeInMicros para el evento join_group y la propiedad del usuario newsletter_reader
{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin",
      "timestamp_micros": tutorialBeginUnixEpochTimeInMicros
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ],
  "user_properties": {
    "customer_tier": {
      "value": "PREMIUM",
      "timestamp_micros": customerTierUnixEpochTimeInMicros
    },
    "newsletter_reader": {
      "value": "true"
    }
  }
}

Comportamiento de validación para eventos pasados y propiedades del usuario

Los eventos y las propiedades del usuario se pueden registrar con una fecha anterior de hasta 72 horas. Si el valor de timestamp_micros es anterior a 72 horas, el Protocolo de Measurement acepta o rechaza el evento o la propiedad del usuario de la siguiente manera:

  • Si validation_behavior no está configurado o se configura como RELAXED, el Protocolo de Measurement acepta el evento o la propiedad del usuario, pero anula su marca de tiempo y la establece en hace 72 horas.
  • Si el parámetro validation_behavior se establece en ENFORCE_RECOMMENDATIONS, Measurement Protocol rechaza el evento o la propiedad del usuario.

Limitaciones

Se aplican las siguientes limitaciones al envío de 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 de los parámetros 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 del elemento pueden tener un máximo de 10 parámetros personalizados.
  • El cuerpo de la publicación debe ser inferior a 130 kB.
  • La marca de tiempo debe ser de las últimas 72 horas. Consulta Comportamiento de validación para eventos pasados para obtener más detalles.
  • Los eventos del Protocolo de medición de aplicaciones que se envían a Google Analytics no completan los públicos de la 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.