L’API Google Analytics permet d’accéder aux données de rapport Google Analytics (GA) telles que les pages vues, les sessions, la source de trafic et le taux de rebond.

Le documentation officielle de Google explique qu’il peut être utilisé pour :

  • Créez des tableaux de bord personnalisés pour afficher les données GA.
  • Automatisez les tâches complexes de création de rapports.
  • Intégration avec d’autres applications.

Vous pouvez accéder à la réponse de l’API à l’aide de plusieurs méthodes différentes, notamment Java, PHP et JavaScript, mais cet article, en particulier, se concentrera sur l’accès et l’exportation de données à l’aide de Python.

Cet article ne couvrira que certaines des méthodes qui peuvent être utilisées pour accéder à différents sous-ensembles de données à l’aide de différentes mesures et dimensions.

J’espère écrire un guide de suivi explorant différentes façons d’analyser, visualiser, et combinez les données.

Publicité

Configuration de l’API

Création d’un compte de service Google

La première étape consiste à créer un projet ou à en sélectionner un dans votre Compte de service Google.

Une fois que cela a été créé, l’étape suivante consiste à sélectionner le + Créer un compte de service bouton.

Compte De Service GoogleCapture d’écran de Google Cloud, décembre 2022
Compte De Service Google

Vous serez ensuite promu pour ajouter des détails tels qu’un nom, un identifiant et une description.

Détails Du Compte De ServiceCapture d’écran de Google Cloud, décembre 2022
Détails Du Compte De Service

Une fois le compte de service créé, accédez au CLÉS et ajoutez une nouvelle clé.

Clé De Compte De ServiceCapture d’écran de Google Cloud, décembre 2022
Clé De Compte De Service

Cela vous invitera à créer et télécharger une clé privée. Dans ce cas, sélectionnez JSON, puis créez et attendez le téléchargement du fichier.

Clé D’informations D’identification JsonCapture d’écran de Google Cloud, décembre 2022
Clé D’informations D’identification Json

Ajouter au compte Google Analytics

Vous voudrez également prendre une copie de l’e-mail qui a été généré pour le compte de service – cela peut être trouvé sur la page principale du compte.

E-Mail Du Compte GoogleCapture d’écran de Google Cloud, décembre 2022
E-Mail Du Compte Google

L’étape suivante consiste à ajouter cet e-mail en tant qu’utilisateur dans Google Analytics avec les autorisations d’analyste.

E-Mail Dans Google AnalyticsCapture d’écran de Google Analytics, décembre 2022
E-Mail Dans Google Analytics

Activation de l’API

La dernière étape, et sans doute la plus importante, consiste à vous assurer que vous avez activé l’accès à l’API. Pour ce faire, assurez-vous d’être dans le bon projet et suivez Ce lien pour activer l’accès.

Ensuite, suivez les étapes pour l’activer lors de la promotion.

Activation De L’apiCapture d’écran de Google Cloud, décembre 2022
Activation De L’api

Ceci est nécessaire pour accéder à l’API. Si vous manquez cette étape, vous serez invité à la terminer lors de la première exécution du script.

Accès à l’API Google Analytics avec Python

Maintenant que tout est configuré dans notre compte de service, nous pouvons commencer à écrire le script pour exporter les données.

J’ai choisi Blocs-notes Jupyter pour créer cela, mais vous pouvez également utiliser d’autres environnements de développement intégrés (IDE), notamment : PyCharm ou VSCode.

Installation des bibliothèques

La première étape consiste à installer les bibliothèques nécessaires à l’exécution du reste du code.

Certains sont uniques à l’API d’analyse et d’autres sont utiles pour les futures sections du code.

!pip install --upgrade google-api-python-client
!pip3 install --upgrade oauth2client
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
!pip install connect
!pip install functions
import connect

Remarque : lorsque vous utilisez pip dans un bloc-notes Jupyter, ajoutez le bouton ! – si vous êtes exécuté dans la ligne de commande ou un autre IDE, le ! n’est pas nécessaire.

Création d’une build de service

L’étape suivante consiste à configurer notre portée, qui est le lien d’authentification de l’API d’analyse en lecture seule.

Ceci est suivi par le téléchargement JSON des secrets client qui a été généré lors de la création de la clé privée. Ceci est utilisé de la même manière qu’une clé API.

Pour accéder facilement à ce fichier dans votre code, assurez-vous d’avoir enregistré le fichier JSON dans le même dossier que le fichier de code. Cela peut ensuite être facilement appelé avec la fonction KEY_FILE_LOCATION.

Enfin, ajoutez l’ID de vue du compte d’analyse avec lequel vous souhaitez accéder aux données.

Id De Vue Google AnalyticsCapture d’écran de l’auteur, décembre 2022
Google Analytics View Id

Dans l’ensemble, cela ressemblera à ce qui suit. Nous ferons référence à ces fonctions tout au long de notre code.

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
KEY_FILE_LOCATION = 'client_secrets.json'
VIEW_ID = 'XXXXX'

Une fois que nous avons ajouté notre fichier de clé privée, nous pouvons l’ajouter à la fonction d’informations d’identification en appelant le fichier et en le configurant via l’étape ServiceAccountCredentials.

Ensuite, configurez le rapport de génération, en appelant l’API de reporting d’analyse V4 et nos informations d’identification déjà définies ci-dessus.

credentials = ServiceAccountCredentials.from_json_keyfile_name(KEY_FILE_LOCATION, SCOPES)
service = build('analyticsreporting', 'v4', credentials=credentials)

Rédaction du corps de la demande

Une fois que nous avons tout mis en place et défini, le vrai plaisir commence.

À partir de la version du service API, il est possible de sélectionner les éléments de la réponse à laquelle nous voulons accéder. Il s’agit d’un objet ReportRequest qui requiert au minimum les éléments suivants :

  • ID d’affichage valide pour le champ viewId.
  • Au moins une entrée valide dans le champ dateRanges.
  • Au moins une entrée valide dans le champ des métriques.

Voir l’ID

Comme mentionné, il y a quelques choses qui sont nécessaires au cours de cette phase de construction, à commencer par notre viewId. Comme nous l’avons déjà défini précédemment, il nous suffit d’appeler ce nom de fonction (VIEW_ID) plutôt que d’ajouter à nouveau l’ID de vue entier.

Si vous souhaitez collecter des données à partir d’une vue analytique différente à l’avenir, il vous suffit de modifier l’ID dans le bloc de code initial plutôt que les deux.

Plage de dates

Ensuite, nous pouvons ajouter la plage de dates pour les dates pour lesquelles nous voulons collecter les données. Il s’agit d’une date de début et d’une date de fin.

Il existe plusieurs façons d’écrire ceci dans la demande de build.

Vous pouvez sélectionner des dates définies, par exemple, entre deux dates, en ajoutant la date au format année-mois-date, ‘startDate’: ‘2022-10-27’, ‘endDate’: ‘2022-11-27’.

Ou, si vous souhaitez afficher les données des 30 derniers jours, vous pouvez définir la date de début sur « Il y a 30 jours » et la date de fin sur « aujourd’hui ».

Mesures et dimensions

La dernière étape de l’appel de réponse de base consiste à définir les mesures et les dimensions. Les métriques sont les mesures quantitatives de Google Analytics, telles que le nombre de sessions, la durée de la session et le taux de rebond.

Les dimensions sont les caractéristiques des utilisateurs, de leurs sessions et de leurs actions. Par exemple, le chemin d’accès à la page, la source du trafic et les mots-clés utilisés.

Il y a beaucoup de métriques et de dimensions différentes qui peuvent être consultées. Je ne vais pas tous les passer en revue dans cet article, mais ils peuvent tous être trouvés avec des informations et des attributs supplémentaires ici.

Tout ce à quoi vous pouvez accéder dans Google Analytics peut être consulté dans l’API. Cela inclut les conversions d’objectifs, les démarrages et les valeurs, le navigateur utilisé pour accéder au site Web, la page de destination, le suivi du chemin de la deuxième page et la recherche interne, la vitesse du site et les mesures d’audience.

Les métriques et les dimensions sont ajoutées dans un format de dictionnaire, à l’aide de paires clé:valeur. Pour les métriques, la clé sera ‘expression’ suivie du signe deux-points (:) et ensuite la valeur de notre métrique, qui aura un format spécifique.

Par exemple, si nous voulions obtenir un décompte de toutes les sessions, nous ajouterions ‘expression’: ‘ga:sessions’. Ou ‘expression’: ‘ga:newUsers’ si nous voulions voir un décompte de tous les nouveaux utilisateurs.

Avec les dimensions, la clé sera ‘name’ suivie du signe deux-points et de la valeur de la dimension. Par exemple, si nous voulions extraire les différents chemins de page, ce serait ‘name’: ‘ga:pagePath’.

Ou ‘name’: ‘ga:medium’ pour voir les différentes sources de trafic vers le site.

Combinaison des dimensions et des métriques

La valeur réelle réside dans la combinaison de métriques et de dimensions pour extraire les informations clés qui nous intéressent le plus.

Par exemple, pour voir un décompte de toutes les sessions qui ont été créées à partir de différentes sources de trafic, nous pouvons définir notre métrique sur ga:sessions et notre dimension sur ga:medium.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:sessions'}],
          'dimensions': [{'name': 'ga:medium'}]
        }]
      }
  ).execute()

Création d’un DataFrame

La réponse que nous obtenons de l’API est sous la forme d’un dictionnaire, avec toutes les données dans des paires clé:valeur. Pour rendre les données plus faciles à visualiser et à analyser, nous pouvons les transformer en une base de données Pandas.

Pour transformer notre réponse en un dataframe, nous devons d’abord créer des listes vides, pour contenir les métriques et les dimensions.

Ensuite, en appelant la sortie de réponse, nous ajouterons les données des dimensions dans la liste des dimensions vides et un décompte des mesures dans la liste des métriques.

Cela extraira les données et les ajoutera à nos listes précédemment vides.

dim = []
metric = []

for report in response.get('reports', []):

columnHeader = report.get('columnHeader', {})
dimensionHeaders = columnHeader.get('dimensions', [])
metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])
rows = report.get('data', {}).get('rows', [])

for row in rows:

dimensions = row.get('dimensions', [])
dateRangeValues = row.get('metrics', [])

for header, dimension in zip(dimensionHeaders, dimensions):
dim.append(dimension)

for i, values in enumerate(dateRangeValues):
for metricHeader, value in zip(metricHeaders, values.get('values')):
metric.append(int(value))

Ajout des données de réponse

Une fois que les données sont dans ces listes, nous pouvons facilement les transformer en un cadre de données en définissant les noms de colonne, entre crochets, et en affectant les valeurs de liste à chaque colonne.

df = pd.DataFrame()
df["Sessions"]= metric
df["Medium"]= dim
df= df[["Medium","Sessions"]]
df.head()

Exemple Dataframe 
Exemple Dataframe

Plus d’exemples de demande de réponseLes

Métriques multiples

Il est également possible de combiner plusieurs métriques, chaque paire étant ajoutée entre accolades et séparée par une virgule.

'metrics': [
              {"expression": "ga:pageviews"},
              {"expression": "ga:sessions"}
          ]

Filtrage

Vous pouvez également demander que la réponse de l’API renvoie uniquement les mesures qui renvoient certains critères en ajoutant des filtres de métriques. Il utilise le format suivant :

if {metricName} {operator} {comparisonValue}
   return the metric

Par exemple, si vous souhaitez uniquement extraire les pages vues avec plus de dix vues.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:pageviews'}],
          'dimensions': [{'name': 'ga:pagePath'}],

"metricFilterClauses": [{
"filters": [{
"metricName": "ga:pageviews",
"operator": "GREATER_THAN",
"comparisonValue": "10"
}]
}]
}]
}
).execute()

Les filtres fonctionnent également pour les dimensions de la même manière, mais les expressions de filtre seront légèrement différentes en raison de la nature caractéristique des dimensions.

Par exemple, si vous souhaitez uniquement extraire les pages vues des utilisateurs qui ont visité le site à l’aide du navigateur Chrome, vous pouvez définir un opérateur EXTRACT et utiliser « Chrome » comme expression.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:pageviews'}],
          "dimensions": [{"name": "ga:browser"}],
          "dimensionFilterClauses": [
        {
          "filters": [
            {
              "dimensionName": "ga:browser",
              "operator": "EXACT",
              "expressions": ["Chrome"]
            }
          ]
        }
      ]
    }
  ]
}
).execute()

Expressions

Comme les métriques sont des mesures quantitatives, il est également possible d’écrire des expressions, qui fonctionnent de la même manière que les métriques calculées.

Cela implique de définir un alias pour représenter l’expression et de compléter une fonction mathématique sur deux métriques.

Par exemple, vous pouvez calculer les achèvements par utilisateur en divisant le nombre d’achèvements par le nombre d’utilisateurs.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          "metrics":
      [
        {
          "expression": "ga:goal1completions/ga:users",
          "alias": "completions per user"
        }
      ]
    }
  ]
}
).execute()

Histogrammes

L’API vous permet également de regrouper des dimensions de compartiment avec une valeur entière (numérique) dans des plages à l’aide de compartiments d’histogramme.

Par exemple, en compartimentant la dimension du nombre de sessions en quatre compartiments de 1-9, 10-99, 100-199 et 200-399, vous pouvez utiliser le type de commande HISTOGRAM_BUCKET et définir les plages dans histogramBuckets.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          "metrics": [{"expression": "ga:sessions"}],
          "dimensions": [
        {
              "name": "ga:sessionCount",
              "histogramBuckets": ["1","10","100","200","400"]
        }
      ],
         "orderBys": [
        {
              "fieldName": "ga:sessionCount",
              "orderType": "HISTOGRAM_BUCKET"
        }
      ]
    }
  ]
}
).execute()
Exemple D’histogramme Capture d’écran de l’auteur, décembre 2022
Exemple D’histogramme

En conclusion

J’espère que cela vous a fourni un guide de base pour accéder à l’API Google Analytics, écrire différentes demandes et collecter des informations significatives dans un format facile à consulter.

J’ai ajouté le code de construction et de demande, ainsi que les extraits partagés dans ce fichier GitHub.

J’aimerais savoir si vous essayez l’un de ces éléments et vos plans pour explorer davantage les données.

Plus de ressources :


Image de couverture: BestForBest / Shutterstock

Rate this post
Publicité
Article précédentLes patients âgés remplissent les hôpitaux de Shanghai Covid
Article suivantROUNDUP: Sautez en 2023 avec plus de 100 illustrations de célébration d’anime, de manga et plus
Avatar
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici