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 :
- OAuth2, pour les parcours pilotés par un utilisateur ;
- Service Account + JWT, pour le serveur à serveur et l’automatisation.
Le flux typique avec un compte de service :
- créer un projet Google Cloud ;
- activer l’Analytics Data API ;
- créer un Service Account ;
- lui donner accès à votre propriété GA4 avec le rôle Lecteur (Viewer) ;
- télécharger le fichier de clé JSON ;
- utiliser une bibliothèque comme
google-authpour 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 :
- créer un projet dans l’Adobe Developer Console ;
- y ajouter l’Analytics API ;
- configurer les accès (product profiles, sandboxes, scopes) ;
- ajouter un credential OAuth Server-to-Server au projet ;
- 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
| Plateforme | Méthode | Durée de vie du jeton |
|---|---|---|
| GA4 Data API | OAuth2 ou Service Account + JWT | 1 heure |
| Adobe Analytics | OAuth Server-to-Server (JWT supprimé) | environ 24 heures |
| Matomo | token_auth | seulement si vous fixez une date d’expiration |
Bonnes pratiques
Avant d’appeler une API d’analytics, sécurisez d’abord votre authentification :
- ne mettez jamais vos clés en dur dans un dépôt public ;
- gérez correctement l’expiration des jetons (voir le tableau ci-dessus) ;
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
- Google : GA4 Data API
- Google : OAuth2 avec compte de service
- Adobe : OAuth Server-to-Server, implémentation
- Adobe : migration depuis JWT
- Matomo : Reporting API
- Matomo : token_auth et requêtes sécurisées
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.