Cas d'utilisation avancés

Ce document décrit plusieurs fonctionnalités avancées de Google Analytics API Data v1. Pour en savoir plus sur l'API, consultez la documentation de référence de l'API.

Lister des définitions personnalisées et créer des rapports

L'API Data permet de créer des rapports sur les données personnalisées des dimensions et des dimensions personnalisées Métriques. L'API Metadata Méthode pour répertorier l'API noms des définitions personnalisées enregistrées de votre propriété. Ces noms d'API peuvent être utilisée pour signaler les demandes runReport.

Les sections suivantes présentent des exemples pour chaque type de définition personnalisée. Dans dans ces exemples, remplacez GA_PROPERTY_ID par l'ID de votre propriété.

Dimensions personnalisées de portée événement

Étape 1:Interrogez la méthode de l'API Metadata par votre ID de propriété.

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

Étape 2:Recherchez la dimension personnalisée de portée événement qui vous intéresse créer des rapports à partir de la réponse. Si la dimension n'est pas présente, vous devez pour enregistrer la dimension.

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

Étape 3:incluez la dimension personnalisée dans une demande de rapport. Les éléments suivants : est un exemple de requête envoyée à la méthode 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" }]
}

Dimensions personnalisées axées sur les utilisateurs

Étape 1:Interrogez la méthode de l'API Metadata par votre ID de propriété.

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

Étape 2:Recherchez la dimension personnalisée de portée utilisateur qui vous intéresse créer des rapports à partir de la réponse. Si la dimension n'est pas présente, vous devez pour enregistrer la dimension.

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

Étape 3:incluez la dimension personnalisée dans une demande de rapport. Les éléments suivants : est un exemple de requête envoyée à la méthode 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étriques personnalisées axées sur les événements

Étape 1:Interrogez la méthode de l'API Metadata par votre ID de propriété.

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

Étape 2:Recherchez la métrique personnalisée de portée événement qui vous intéresse créer des rapports à partir de la réponse. Si la métrique n'est pas présente, vous devez enregistrer la métrique.

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

Étape 3:incluez la métrique personnalisée dans une demande de rapport. Les éléments suivants : est un exemple de requête envoyée à la méthode 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étriques sur le taux d'événements clés pour un événement clé

Étape 1:Interrogez l'API Metadata Méthode par votre ID de propriété.

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

Étape 2:Recherchez la métrique "Taux d'événements clés" pour un événement clé qui vous intéresse à créer des rapports à partir de la réponse. Si l'événement clé n'est pas présent, vous devez configurer la clé événement.

"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",
    },
...
],

Étape 3:incluez la métrique "Taux d'événements clés" dans une demande de rapport. Les éléments suivants : un exemple de requête envoyée à 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" }]
}

Moyennes des métriques personnalisées de portée événement

Étape 1:Interrogez la méthode de l'API Metadata par votre ID de propriété.

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

Étape 2:Recherchez la moyenne de la métrique personnalisée de portée événement qui vous intéresse créer des rapports à partir de la réponse. Si la métrique n'est pas présente, vous devez enregistrer la métrique.

"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"
    },
...
],

Étape 3:Incluez la moyenne de la métrique personnalisée dans une demande de rapport. Les éléments suivants : est un exemple de requête envoyée à la méthode 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" }]
}

Exemples de rapports sur les cohortes

Les rapports sur les cohortes créent une série temporelle de fidélisation des utilisateurs pour la cohorte. Pour documentation détaillée de chaque champ d'API, consultez la documentation de référence de l'API REST CohortSpec.

Créer un rapport sur les cohortes

Voici un exemple de rapport sur les cohortes dans lequel:

  • La cohorte comprend les utilisateurs avec un firstSessionDate de 2020-12-01. c'est configurés par l'objet cohorts. Dimensions et métriques du rapport ne dépend que des utilisateurs de la cohorte.
  • Le rapport sur les cohortes comporte trois colonnes : elle est configurée par de dimensions et de métriques.
    • La dimension cohort correspond au nom de la cohorte.
    • La dimension cohortNthDay correspond au nombre de jours écoulés depuis le 2020-12-01.
    • La métrique cohortActiveUsers correspond au nombre d'utilisateurs encore actifs.
  • L'objet cohortsRange indique que le rapport doit contenir des données d'événement. à partir du 2020-12-01 et jusqu'au 2020-12-06 pour cette cohorte.
    • Avec un niveau de précision de DAILY, la dimension cohortNthDay est par souci de cohérence.

La demande de rapport pour la cohorte est la suivante:

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"
    }
  },
}

Voici un exemple de réponse à cette demande:

{
  "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
}

Le graphique correspondant s'affiche à partir de cette réponse. Un insight d'après ce rapport, la plus forte baisse du nombre d'utilisateurs actifs pour cette cohorte entre le premier et le deuxième jour.

Visualisation de la cohorte d'utilisateurs au fil du temps

Cohortes multiples et fraction de fidélisation des utilisateurs

L'acquisition et la fidélisation des utilisateurs permettent de développer votre site Web ou votre application. Cohorte se concentrent sur la fidélisation des utilisateurs. Dans cet exemple, le rapport affiche cette propriété a amélioré de 10% la fidélisation des utilisateurs sur 4 jours en l'espace de deux semaines.

Pour créer ce rapport, vous devez spécifier trois cohortes: la première associée à une firstSessionDate de 2020-11-02, la seconde avec un firstSessionDate de 2020-11-09, et la troisième avec un firstSessionDate de 2020-11-16. En effet, le nombre d'utilisateurs de votre propriété sera différent pour ces trois jours, comparer la métrique de la part de fidélisation des utilisateurs de la cohorte cohortActiveUsers/cohortTotalUsers plutôt que d'utiliser la méthode directe Métrique cohortActiveUsers.

La demande de rapport pour ces cohortes est la suivante:

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"
    }
  },
}

Voici un exemple de réponse à cette demande:

{
  "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
}

Le graphique correspondant s'affiche à partir de cette réponse. Un insight de ce rapport est que la fidélisation des utilisateurs sur 4 jours a augmenté de 10% au cours de deux semaines. Cohorte la plus récente avec firstSessionDate de 2020-11-16 dépasse le taux de rétention de la cohorte précédente avec firstSessionDate sur 2020-11-02.

Graphique des rétentions de cohortes multiples

Cohortes hebdomadaires et utilisation de cohortes avec d'autres fonctionnalités d'API

Pour supprimer les variations quotidiennes du comportement des utilisateurs, utilisez des cohortes hebdomadaires. En semaine rapports sur les cohortes, tous les utilisateurs ayant enregistré firstSessionDate au cours de la même semaine cohorte. La semaine commence le dimanche et se termine le samedi. Dans ce rapport, nous qui segmente la cohorte pour comparer les utilisateurs ayant effectué une activité en Russie à ceux ayant au Mexique. Ce segment utilise la dimension country et une dimensionFilter pour ne prendre en compte que les deux pays.

La demande de rapport pour ces cohortes est la suivante:

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"
    }
  },
}

Voici un exemple de réponse à cette demande:

{
  "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
}

Le graphique de ce rapport sur les cohortes s'affiche à partir de la réponse obtenue. D'après ces rapport, cette propriété est plus efficace pour fidéliser les utilisateurs actifs au Mexique que ceux ayant des activités en Russie.

Graphique des cohortes comparatives par pays

Comparaisons

Vous pouvez évaluer différents sous-ensembles de données côte à côte en effectuant des comparaisons. Vous pouvez définit des comparaisons en spécifiant le comparisons dans une définition de rapport. La fonctionnalité Comparisons de l'API Data est similaire à Comparaisons dans l'interface Google Analytics.

Pour obtenir une documentation détaillée sur chaque champ de l'API, consultez la documentation de référence de l'API REST Comparaison :

Créer une comparaison

Vous pouvez créer une comparaison distincte pour chaque ensemble de données que vous souhaitez comparer. Par exemple, pour comparer les données d'application et les données Web, vous pouvez créer une comparaison pour Données Android et iOS, et une autre comparaison pour les données Web.

Voici un exemple de rapport qui définit deux comparaisons et renvoie les utilisateurs actifs réparties par pays.

La première comparaison intitulée "Trafic vers l'application" utilise inListFilter pour faire correspondre la dimension "platform" aux valeurs "iOS" et "Android". Le deuxième comparaison intitulée "Trafic Web" utilise stringFilter pour correspondre à platform par "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"
      }
    ]
  }

Pour toutes les requêtes utilisant la fonctionnalité de comparaison, le champ comparison est automatiquement au rapport généré. Ce champ contient le nom de la comparaison fournie dans la requête.

Voici un exemple d'extrait de réponse contenant des comparaisons:

{
  "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"
        }
      ]
    },

    ...

  ],

...

}