Casos de uso avanzados

En este documento, se describen varias funciones avanzadas de la API de datos de Google Analytics v1. Para obtener una referencia detallada de la API, consulta la Referencia de la API.

Enumera definiciones personalizadas y crea informes

La API de datos puede crear informes sobre las Dimensiones personalizadas y las Métricas personalizadas registradas. El método de la API de metadatos se puede usar para enumerar los nombres de la API de las definiciones personalizadas registradas de tu propiedad. Estos nombres de API se pueden usar en las solicitudes de informes al método runReport, por ejemplo.

En las siguientes secciones, se muestran ejemplos para cada tipo de definición personalizada. En estos ejemplos, reemplaza GA4_PROPERTY_ID por tu ID de propiedad.

Dimensiones personalizadas centradas en el evento

Paso 1: Consulta el Método de la API de metadatos con tu ID de propiedad.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID/metadata

Paso 2: Busca en la respuesta la dimensión personalizada con alcance de evento que te interesa crear. Si la dimensión no está presente, debes registrarla.

"dimensions": [
...
    {
      "apiName": "customEvent:achievement_id",
      "uiName": "Achievement ID",
      "description": "An event scoped custom dimension for your Analytics property."
    },
...
],

Paso 3: Incluya la dimensión personalizada en una solicitud de informe. La siguiente es una solicitud de muestra al método runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "2020-09-01", "endDate": "2020-09-15" }],
  "dimensions": [{ "name": "customEvent:achievement_id" }],
  "metrics": [{ "name": "eventCount" }]
}

Dimensiones personalizadas centradas en el usuario

Paso 1: Consulta el Método de la API de metadatos con tu ID de propiedad.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID/metadata

Paso 2: Busca en la respuesta la dimensión personalizada con alcance de usuario que te interesa crear. Si la dimensión no está presente, debes registrarla.

"dimensions": [
...
    {
      "apiName": "customUser:last_level",
      "uiName": "Last level",
      "description": "A user property for your Analytics property."
    },
...
],

Paso 3: Incluya la dimensión personalizada en una solicitud de informe. La siguiente es una solicitud de muestra al método runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "entity": { "propertyId": "GA4_PROPERTY_ID" },
  "dateRanges": [{ "startDate": "7daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "customUser:last_level" }],
  "metrics": [{ "name": "activeUsers" }]
}

Métricas personalizadas centradas en el evento

Paso 1: Consulta el Método de la API de metadatos con tu ID de propiedad.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID/metadata

Paso 2: Busca la métrica personalizada con alcance de evento que te interesa crear en la respuesta. Si la métrica no está presente, debes registrarla.

"metrics": [
...
    {
      "apiName": "customEvent:credits_spent",
      "uiName": "Credits Spent",
      "description": "An event scoped custom metric for your Analytics property.",
      "type": "TYPE_STANDARD"
    },
...
],

Paso 3: Incluye la métrica personalizada en una solicitud de informe. La siguiente es una solicitud de muestra al método runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "30daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "customEvent:credits_spent" }]
}

Métricas del porcentaje de conversiones para una conversión

Paso 1: Consulta el Método de la API de metadatos con tu ID de propiedad.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID/metadata

Paso 2: busque la métrica del porcentaje de conversiones para una conversión que le interese crear en los informes. Si el evento de conversión no está presente, debes configurarlo.

"metrics": [
...
    {
      "apiName": "sessionConversionRate:add_to_cart",
      "uiName": "Session conversion rate for add_to_cart",
      "description": "The percentage of sessions in which a specific conversion event was triggered",
    },
...
],

Paso 3: Incluya la métrica del porcentaje de conversiones en una solicitud de informe. La siguiente es una solicitud de muestra al método runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "30daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "sessionConversionRate:add_to_cart" }]
}

Promedios de métricas personalizadas centradas en el evento

Paso 1: Consulta el Método de la API de metadatos con tu ID de propiedad.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID/metadata

Paso 2: Busca el promedio de métricas personalizadas con alcance de evento que te interesa crear en la respuesta. Si la métrica no está presente, debes registrarla.

"metrics": [
...
    {
      "apiName": "averageCustomEvent:credits_spent",
      "uiName": "Average Credits Spent",
      "description": "The average of an event scoped custom metric for your Analytics property.",
      "type": "TYPE_STANDARD"
    },
...
],

Paso 3: Incluye el promedio de métricas personalizadas en una solicitud de informe. La siguiente es una solicitud de muestra al método runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "2020-11-01", "endDate": "2020-11-10" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "averageCustomEvent:credits_spent" }]
}

Ejemplos de informes de cohorte

Los informes de cohorte crean una serie temporal de retención de usuarios para la cohorte. Para ver la documentación detallada de cada campo de la API, consulta la referencia de REST para CohortSpec.

Cómo crear un informe de cohorte

A continuación, se muestra un informe de cohorte de muestra:

  • La cohorte son usuarios con un firstSessionDate de 2020-12-01; esto se configura mediante el objeto cohorts. Las dimensiones y las métricas de la respuesta del informe solo se basarán en los usuarios de la cohorte.
  • El informe de cohorte mostrará tres columnas. Esto se configura mediante los objetos de dimensiones y métricas.
    • La dimensión cohort es el nombre de la cohorte.
    • La dimensión cohortNthDay es la cantidad de días desde 2020-12-01.
    • La métrica cohortActiveUsers es la cantidad de usuarios que aún están activos.
  • El objeto cohortsRange especifica que el informe debe contener datos de eventos que comiencen en 2020-12-01 y terminen en 2020-12-06 para esta cohorte.
    • Cuando se usa un nivel de detalle de DAILY, se recomienda la dimensión cohortNthDay para mantener la coherencia.

La solicitud de informe de la cohorte es:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dimensions": [{ "name": "cohort" }, { "name": "cohortNthDay" }],
  "metrics": [{ "name": "cohortActiveUsers" }],
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-12-01", "endDate": "2020-12-01" }
      }
    ],
    "cohortsRange": {
      "endOffset": 5,
      "granularity": "DAILY"
    }
  },
}

Para esta solicitud, un ejemplo de respuesta de informe es el siguiente:

{
  "dimensionHeaders": [
    { "name": "cohort" }, { "name": "cohortNthDay" }
  ],
  "metricHeaders": [
    { "name": "cohortActiveUsers", "type": "TYPE_INTEGER" }
  ],
  "rows": [
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0000" }],
      "metricValues": [{ "value": "293" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0001" }],
      "metricValues": [{ "value": "143" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0002" }],
      "metricValues": [{ "value": "123" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0003" }],
      "metricValues": [{ "value": "92" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0005" }],
      "metricValues": [{ "value": "86" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0004" }],
      "metricValues": [{ "value": "83" }]
    }
  ],
  "metadata": {},
  "rowCount": 6
}

A partir de esta respuesta del informe, se muestra un gráfico para este informe de cohorte. Una estadística de este informe es que la mayor caída en usuarios activos para esta cohorte es entre el primer y el segundo día.

Visualización de los usuarios de la cohorte a lo largo del tiempo

Franja múltiple de usuarios y fracción de retención de usuarios

La adquisición y la retención de usuarios son maneras de hacer crecer tu sitio web o app. Los informes de cohortes se enfocan en la retención de usuarios. En este ejemplo, el informe muestra que esta propiedad mejoró la retención de usuarios de 4 días en un 10% en el transcurso de dos semanas.

Para crear este informe, especificamos tres cohortes: la primera con un firstSessionDate de 2020-11-02, la segunda con un firstSessionDate de 2020-11-09 y la tercera con un firstSessionDate de 2020-11-16. Debido a que la cantidad de usuarios de tu propiedad será diferente durante estos tres días, comparamos la métrica de fracción de retención de usuarios de la cohorte de cohortActiveUsers/cohortTotalUsers en lugar de usar la métrica directa de cohortActiveUsers.

La solicitud de informe de estas cohortes es la siguiente:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dimensions": [{ "name": "cohort" },{ "name": "cohortNthDay" }],
  "metrics": [
    {
      "name": "cohortRetentionFraction",
      "expression": "cohortActiveUsers/cohortTotalUsers"
    }
  ],
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-02", "endDate": "2020-11-02" }
      },
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-09", "endDate": "2020-11-09" }
      },
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-16", "endDate": "2020-11-16" }
      }
    ],
    "cohortsRange": {
      "endOffset": 4,
      "granularity": "DAILY"
    }
  },
}

Para esta solicitud, un ejemplo de respuesta de informe es el siguiente:

{
  "dimensionHeaders": [{ "name": "cohort" },{ "name": "cohortNthDay" }],
  "metricHeaders": [{
      "name": "cohortRetentionFraction",
      "type": "TYPE_FLOAT"
    }
  ],
  "rows": [
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.308" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.272" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.257" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.248" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.235" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.211" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.198" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.172" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.167" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.155" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.141" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.118" }]
    }
  ],
  "metadata": {},
  "rowCount": 15
}

A partir de esta respuesta del informe, se muestra un gráfico para este informe de cohorte. Una estadística de este informe es que la retención de usuarios de 4 días aumentó un 10% en el transcurso de dos semanas. La cohorte posterior con firstSessionDate de 2020-11-16 supera la retención de la cohorte anterior con firstSessionDate de 2020-11-02.

Gráfico de varias retenciones de cohorte

Cohortes semanales y uso de cohortes con otras funciones de API

Para eliminar la variación diaria del comportamiento de los usuarios, usa cohortes semanales. En los informes de cohortes semanales, todos los usuarios con firstSessionDate en la misma semana forman la cohorte. Las semanas comienzan el domingo y finalizan el sábado. También en este informe, desglosamos la cohorte para comparar a los usuarios con la actividad en Rusia con los usuarios con la actividad en México. Esta división usa la dimensión country y una dimensionFilter para considerar solo los dos países.

La solicitud de informe de estas cohortes es la siguiente:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dimensions": [
    { "name": "cohort" },
    { "name": "cohortNthWeek" },
    { "name": "country" }
  ],
  "metrics": [{ "name": "cohortActiveUsers" }],
  "dimensionFilter": {
    "filter": {
      "fieldName": "country",
      "inListFilter": {
        "values": [ "Russia", "Mexico" ]
      }
    }
  },
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": {
          "startDate": "2020-10-04",
          "endDate": "2020-10-10"
        }
      }
    ],
    "cohortsRange": {
      "endOffset": 5,
      "granularity": "WEEKLY"
    }
  },
}

Para esta solicitud, un ejemplo de respuesta de informe es el siguiente:

{
  "dimensionHeaders": [
    { "name": "cohort" },
    { "name": "cohortNthWeek" },
    { "name": "country" }
  ],
  "metricHeaders": [
    { "name": "cohortActiveUsers", "type": "TYPE_INTEGER" }
  ],
  "rows": [
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0000" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "105" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0000" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "98" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0001" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "35" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0002" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "24" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0001" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "23" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0004" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "17" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0003" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "15" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0005" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "15" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0002" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "3" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0003" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0004" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "1" }]
    }
  ],
  "metadata": {},
  "rowCount": 11
}

A partir de esta respuesta del informe, se muestra un gráfico de este informe de cohorte. Según este informe, esta propiedad logra retener mejor a los usuarios con actividad en México que los usuarios con actividad en Rusia.

Gráfico de cohortes de comparación de países