Pourquoi l’authentification est incontournable

Vous voulez brancher votre outil de mesure (Google Analytics 4, Adobe Analytics ou Matomo) et en extraire les données par API. L’approche naïve : « j’appelle l’endpoint et je récupère les données ». Ça ne marche pas. Aucune API sérieuse ne donne accès sans authentification : il faut prouver qui vous êtes, et ce que vous avez le droit de faire. Chaque plateforme a sa propre méthode.

Google Analytics 4 (GA4 Data API)

Deux méthodes d’authentification existent :

Le flux typique avec un compte de service :

  1. créer un projet Google Cloud ;
  2. activer l’Analytics Data API ;
  3. créer un Service Account ;
  4. lui donner accès à votre propriété GA4 avec le rôle Lecteur (Viewer) ;
  5. télécharger le fichier de clé JSON ;
  6. utiliser une bibliothèque comme google-auth pour générer un jeton.

Une fois le jeton obtenu, l’appel ressemble à ceci :

curl -X POST https://analyticsdata.googleapis.com/v1beta/properties/XXXXX:runReport \
-H "Authorization: Bearer ya29.a0AfH6SMXXXXX" \
-H "Content-Type: application/json" \
-d @body.json

Documentation officielle : https://developers.google.com/analytics/devguides/reporting/data/v1

Adobe Analytics (via l’Adobe Developer Console)

Pour l’automatisation, Adobe propose OAuth Server-to-Server (client credentials). Pour les parcours pilotés par un utilisateur, c’est OAuth User. Point important : les identifiants Service Account (JWT) sont arrivés en fin de vie le 30 juin 2025 et ne fonctionnent plus. Si un vieux script utilise encore JWT, il faut le migrer.

Il vous faut : un client_id, un client_secret, les scopes de votre credential et votre identifiant d’organisation (en-tête x-gw-ims-org-id sur les appels API).

Le flux OAuth Server-to-Server :

  1. créer un projet dans l’Adobe Developer Console ;
  2. y ajouter l’Analytics API ;
  3. configurer les accès (product profiles, sandboxes, scopes) ;
  4. ajouter un credential OAuth Server-to-Server au projet ;
  5. demander un jeton d’accès à Adobe IMS avec votre client ID et votre secret.
curl -X POST 'https://ims-na1.adobelogin.com/ims/token/v3' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'client_id={CLIENT_ID}&client_secret={CLIENT_SECRET}&grant_type=client_credentials&scope={SCOPES}'

Documentation officielle : https://developer.adobe.com/developer-console/docs/guides/authentication/ServerToServerAuthentication/implementation

Matomo

Ici, un seul jeton suffit : token_auth. Il peut être transmis de deux façons : dans le corps d’une requête POST (recommandé), ou en paramètre d’URL (refusé pour les jetons créés avec « Only allow secure requests »).

curl -X POST "https://matomo.yourdomain.com/index.php" \
  -d "module=API&method=VisitsSummary.get&idSite=1&period=day&date=today&format=JSON&token_auth=your_token"

Documentation officielle : https://developer.matomo.org/api-reference/reporting-api

Les trois méthodes en un coup d’œil

PlateformeMéthodeDurée de vie du jeton
GA4 Data APIOAuth2 ou Service Account + JWT1 heure
Adobe AnalyticsOAuth Server-to-Server (JWT supprimé)environ 24 heures
Matomotoken_authseulement si vous fixez une date d’expiration

Bonnes pratiques

Avant d’appeler une API d’analytics, sécurisez d’abord votre authentification :

L’authentification n’est pas un obstacle. C’est le ticket d’entrée vers un accès aux données fiable et sécurisé.

Sources

Pour aller plus loin, lisez la version complète de l’article (en anglais) : How to Authenticate to Google, Adobe & Matomo APIs.

Besoin d’aide sur ce sujet ? Consultant GA4 et audit analytics.

Vous doutez de votre tracking ?

Réserver un appel Ou commencez par l’audit analytics gratuit →