Casos de uso avanzados

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

Enumerar definiciones personalizadas y crear informes

La API de datos puede crear informes sobre las campañas Dimensiones y Personalizado Métricas. La API de metadatos Method para enumerar las APIs de las definiciones personalizadas registradas de tu propiedad. Estos nombres de API se pueden usadas en las Solicitudes de Reporte al runReport.

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

Dimensiones personalizadas centradas en el evento

Paso 1: Consulta el método de la API de metadatos por tu ID de propiedad.

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

Paso 2: Busca la dimensión personalizada centrada en el evento que te interesa crear informes a partir de la respuesta. Si la dimensión no está presente, debes para registrar la dimensión.

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

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

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_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 por tu ID de propiedad.

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

Paso 2: Busca la dimensión personalizada centrada en el usuario que te interesa crear informes a partir de la respuesta. Si la dimensión no está presente, debes para registrar la dimensión.

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

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

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "entity": { "propertyId": "GA_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 por tu ID de propiedad.

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

Paso 2: Busca la métrica personalizada centrada en el evento que te interesa crear informes a partir de la respuesta. Si la métrica no está presente, debes registrar la métrica.

"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. Lo siguiente es una solicitud de muestra al método runReport.

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

Métricas de tasa de eventos clave para un evento clave

Paso 1: Consulta la API de metadatos Method por tu ID de propiedad.

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

Paso 2: Busca la métrica de tasa de eventos clave para un evento clave que te interese en la creación de informes a partir de la respuesta. Si el evento clave no está presente, puedes debes configurar la clave un evento.

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

Paso 3: Incluye la métrica de porcentaje de eventos clave en una solicitud de informe. Lo siguiente es una solicitud de muestra al comando runReport .

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

Promedios de métricas personalizadas centradas en el evento

Paso 1: Consulta el método de la API de metadatos por tu ID de propiedad.

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

Paso 2: Busca el promedio de métricas personalizadas centradas en el evento que te interesa crear informes a partir de la respuesta. Si la métrica no está presente, debes registrar la métrica.

"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 la métrica personalizada en una solicitud de informe. Lo siguiente es una solicitud de muestra al método runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_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 documentación detallada de cada campo de API, consulta la referencia de REST para CohortSpec.

Cómo crear un informe de cohorte

Este es un ejemplo de informe de cohorte en el que:

  • La cohorte está formada por usuarios con una firstSessionDate de 2020-12-01. esto es que configura el objeto cohorts. Las dimensiones y métricas del informe respuesta solo se basará en los usuarios de la cohorte.
  • El informe de cohorte mostrará tres columnas: esto lo configura el 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 comienza en 2020-12-01 y finaliza en 2020-12-06 para esta cohorte.
    • Cuando se usa un nivel de detalle de DAILY, se establece la dimensión cohortNthDay se recomienda para mantener la coherencia.

La solicitud de informe de la cohorte es la siguiente:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_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:

{
  "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 la respuesta de este informe, se muestra un gráfico de este informe de cohorte. Una estadística de este informe es que la mayor caída de usuarios activos para esta cohorte entre el primer y el segundo día.

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

Múltiples cohortes y fracción de retención de usuarios

La adquisición y retención de usuarios son maneras de hacer crecer tu sitio web o aplicación. Cohorte se enfocan en la retención de usuarios. En este ejemplo, el informe muestra esta propiedad mejoró su 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; el segundo con un firstSessionDate de 2020-11-09 y el tercero con un firstSessionDate de 2020-11-16. Debido a que el la cantidad de usuarios en tu propiedad será diferente para estos tres días, comparar la métrica de fracción de retención de usuarios de la cohorte cohortActiveUsers/cohortTotalUsers en lugar de usar cohortActiveUsers métrica.

La solicitud de informe de estas cohortes es la siguiente:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_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:

{
  "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 la respuesta de este informe, se muestra un gráfico de 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 en un plazo de dos semanas. La cohorte posterior con firstSessionDate de 2020-11-16 supera la retención de la cohorte anterior con un firstSessionDate de 2020-11-02.

Gráfico de retenciones de varias cohortes

Cohortes semanales y uso de cohortes con otras funciones de la API

Para quitar la variación diaria en el comportamiento de los usuarios, usa cohortes semanales. En una semana informes de cohorte, todos los usuarios con firstSessionDate en la misma semana del cohorte. Las semanas comienzan los domingos y finalizan los sábados. En este informe, también dividir la cohorte para comparar los usuarios con la actividad en Rusia con los usuarios con actividad en México. Esta segmentación usa la dimensión country y una dimensionFilter para considerar únicamente los dos países.

La solicitud de informe de estas cohortes es la siguiente:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_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:

{
  "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 la respuesta de este informe, se muestra un gráfico de este informe de cohorte. Basado en esto En este informe, esta propiedad retiene mejor a los usuarios con actividad en México que los usuarios con actividad en Rusia.

Gráfico de cohortes de comparación por país

Comparaciones

Las comparaciones le permiten evaluar subconjuntos de sus datos en paralelo. Puedes definir las comparaciones especificando comparisons en la definición de un informe. La función Comparaciones de la API de datos es similar Comparaciones en el frontend de Google Analytics.

Para obtener documentación detallada de cada campo de API, consulta la referencia de REST para Comparación.

Crear una comparación

Puedes crear una comparación independiente para cada conjunto de datos que desees comparar. Por ejemplo, para comparar los datos web y de la aplicación, puedes crear una comparación para Datos de iOS y Android, y otra comparación de datos web.

Este es un informe de muestra que define dos comparaciones y devuelve los usuarios activos desglosadas por país.

La primera comparación denominada "Tráfico de aplicaciones" usa el inListFilter para Hacer coincidir la dimensión platform con los valores "iOS" y "Android". El segundo comparación denominada "Tráfico web" usa el stringFilter para hacer coincidir el platform con "web".

  POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
  {
    "comparisons": [
      {
        "name": "App traffic",
        "dimensionFilter": {
          "filter": {
            "fieldName": "platform",
            "inListFilter": {
              "values": [
                "iOS",
                "Android"
              ]
            }
          }
        }
      },
      {
        "name": "Web traffic",
        "dimensionFilter": {
          "filter": {
            "fieldName": "platform",
            "stringFilter": {
              "matchType": "EXACT",
              "value": "web"
            }
          }
        }
      }
    ],
    "dateRanges": [
      {
        "startDate": "2024-05-01",
        "endDate": "2024-05-15"
      }
    ],
    "dimensions": [
      {
        "name": "country"
      }
    ],
    "metrics": [
      {
        "name": "activeUsers"
      }
    ]
  }

Para todas las solicitudes que usan la función de comparaciones, se aplica el siguiente campo comparison: automáticamente al informe generado. Este campo contiene el nombre de la comparación proporcionada en la solicitud.

A continuación, se muestra un fragmento de muestra de una respuesta que contiene comparaciones:

{
  "dimensionHeaders": [
    {
      "name": "comparison"
    },
    {
      "name": "country"
    }
  ],
  "metricHeaders": [
    {
      "name": "activeUsers",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "Web traffic"
        },
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "638572"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Web traffic"
        },
        {
          "value": "Japan"
        }
      ],
      "metricValues": [
        {
          "value": "376578"
        }
      ]
    },
  {
      "dimensionValues": [
        {
          "value": "App traffic"
        },
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "79527"
        }
      ]
    },

    ...

  ],

...

}