FlowKit

Automatiser un rapport Google Analytics 4 (GA4) hebdomadaire avec n8n

Publié le 31 juillet 2026 · 6 min de lecture

Ouvrir Google Analytics chaque lundi, comparer de mémoire les chiffres à ceux de la semaine d'avant, puis tout recopier dans un message Slack : ce rituel prend vingt minutes et ne survit pas aux semaines chargées. Avec le node Google Analytics natif de n8n, la Data API de GA4 fait le même travail — sessions, utilisateurs actifs, conversions, sources de trafic — sur un déclencheur hebdomadaire, avec en bonus une synthèse rédigée par IA et une alerte si le trafic décroche. Voici le montage de bout en bout.

Connecter n8n à GA4 avec le node Google Analytics

Contrairement à Search Console, Google Analytics dispose d'un node natif dans n8n, qui s'appuie sur la Data API de GA4. La connexion passe par un credential OAuth2 Google classique :

  1. Dans Google Cloud Console, activez la « Google Analytics Data API » sur votre projet, puis créez des identifiants OAuth 2.0 de type « Application Web » avec l'URL de redirection fournie par n8n.
  2. Dans n8n, créez le credential OAuth2 du node Google Analytics et lancez l'autorisation une fois : le refresh token est stocké et renouvelé automatiquement. La procédure détaillée est dans notre guide pour configurer OAuth2 Google dans n8n.
  3. Dans le node, sélectionnez votre propriété GA4 (pas une ancienne vue Universal Analytics — on y revient).

Le compte authentifié doit avoir au moins un accès « Lecteur » sur la propriété : le node n'expose rien de plus que l'interface.

Choisir les métriques et dimensions du rapport

GA4 raisonne en couples métriques/dimensions. Pour un rapport actionnable, un socle réduit suffit :

  • Métriques : sessions, activeUsers, conversions (ou vos événements clés), éventuellement engagementRate.
  • Dimensions : sessionSource et sessionMedium pour savoir d'où vient le trafic, landingPage pour savoir où il atterrit.

Deux requêtes valent mieux qu'une : une première ventilée par source/médium, une seconde par page de destination. Croiser les deux dans la même requête multiplie les lignes et noie le signal. Si le node natif ne suffit pas, la Data API reste appelable en HTTP Request avec le même credential — l'endpoint runReport accepte deux plages de dates dans la même requête, ce qui simplifie la comparaison :

{
  "dateRanges": [
    { "startDate": "2026-07-20", "endDate": "2026-07-26" },
    { "startDate": "2026-07-13", "endDate": "2026-07-19" }
  ],
  "dimensions": [{ "name": "sessionSource" }, { "name": "sessionMedium" }],
  "metrics": [{ "name": "sessions" }, { "name": "activeUsers" }, { "name": "conversions" }],
  "limit": 100
}

Les bornes de dates se génèrent dynamiquement avec un node Set en amont ({{ $now.minus({ days: 8 }).toFormat('yyyy-MM-dd') }} et consorts) : le workflow reste valable indéfiniment. Notez le décalage d'un jour — on n'inclut jamais la veille, pour une raison expliquée dans les pièges.

Comparer la semaine à la semaine précédente

Un node Code fusionne les deux périodes sur la clé source + médium, puis calcule pour chaque ligne la variation absolue et en pourcentage. Trois règles rendent le résultat lisible :

  • Trier par variation absolue de sessions, pas en pourcentage : « +400 % » sur une source qui passe de 2 à 10 sessions n'a aucun intérêt.
  • Ne garder que le top 10 des hausses et des baisses : un rapport de 200 lignes n'est jamais lu.
  • Calculer un total global (sessions, utilisateurs actifs, conversions) qui servira de titre au rapport et de base à l'alerte de chute.

Ce pattern période sur période est exactement celui de notre rapport SEO hebdomadaire avec l'API Search Console : les deux workflows se complètent dans le même canal Slack — l'un dit ce que Google vous envoie, l'autre ce que les visiteurs en font.

Synthèse IA, envoi Slack et archivage

Un node IA transforme ensuite le tableau de variations en trois ou quatre phrases : tendance globale, sources en progression, anomalies (une landing page qui perd 60 % de ses sessions, un canal payant qui s'effondre). Le prompt doit être contraint — commenter uniquement les chiffres fournis, ne jamais spéculer sur des causes externes invérifiables — sur le même principe que le rapport de synthèse d'audit généré par IA : données structurées en entrée, synthèse contrainte en sortie.

Le rapport part ensuite sur Slack (totaux en tête, top variations en liste, synthèse IA en dessous — voir notre guide du bot Slack avec n8n pour le formatage) ou par email pour un client externe. Pour les tendances longues, archivez chaque exécution avant l'envoi :

  • Google Sheets pour la simplicité : une ligne par semaine avec les totaux, comme décrit dans notre guide pour automatiser Google Sheets avec n8n. Lisible par tous, suffisant pour un site.
  • Postgres dès que le volume grandit : une table ga4_weekly interrogeable en SQL pour des moyennes mobiles ou du année-sur-année, avec le node Postgres de n8n. Et si vos données marketing croisent plusieurs sources à grande échelle, l'étape suivante est BigQuery comme data warehouse marketing — GA4 propose d'ailleurs un export natif vers BigQuery.

Piloter aux données n'est pas qu'un confort : l'étude d'Erik Brynjolfsson, Lorin Hitt et Heekyung Kim publiée en 2011, « Strength in Numbers: How Does Data-Driven Decisionmaking Affect Firm Performance? », menée sur 179 grandes entreprises, montre que celles qui ancrent leurs décisions dans les données affichent une productivité supérieure de 5 à 6 % à ce que leurs autres investissements laisseraient prévoir. Un rapport qui arrive seul chaque lundi est la version artisanale de ce principe.

Alerte automatique en cas de chute de trafic

Le rapport hebdomadaire ne suffit pas si le trafic s'effondre un mardi. Ajoutez un second workflow, léger, sur un déclencheur quotidien :

  1. Requête GA4 sur les sessions de l'avant-veille (journée consolidée) et la même journée de la semaine précédente.
  2. Node IF : si la baisse dépasse un seuil — 30 % est un bon point de départ, à ajuster selon la volatilité du site — le workflow continue ; sinon il s'arrête sans bruit.
  3. Message Slack immédiat avec le chiffre et les trois sources qui expliquent le plus la baisse.

Comparer au même jour de la semaine précédente (mardi contre mardi) plutôt qu'à la veille évite les fausses alertes dues à la saisonnalité hebdomadaire. Et calez le cron sur le fuseau horaire de la propriété GA4, comme détaillé dans notre guide du Schedule Trigger et des fuseaux horaires.

Pièges spécifiques à GA4

  • Les données de la veille sont incomplètes. GA4 peut mettre 24 à 48 heures à consolider une journée. Un rapport qui inclut hier compare des données partielles à des données complètes et « détecte » des chutes imaginaires. Décalez toujours la fenêtre d'au moins un jour, deux par prudence.
  • Les quotas de la Data API se comptent en jetons. Chaque requête consomme des tokens selon sa complexité, avec des plafonds par propriété, par heure et par jour. Un rapport hebdomadaire n'en approche jamais ; une boucle qui interroge cinquante propriétés toutes les heures, si. En cas d'erreur de quota, espacez les appels.
  • (not set) partout. Une dimension sans valeur (landing page sur certains événements, source sur du trafic mal taggué) remonte comme (not set). Filtrez ou regroupez ces lignes dans le node Code plutôt que de les laisser polluer le top 10.
  • Universal Analytics n'existe plus. Les anciennes propriétés UA ne traitent plus de données depuis leur arrêt par Google, et les métriques ont changé de logique (sessions et utilisateurs ne se calculent plus pareil, le taux de rebond a laissé place au taux d'engagement). Ne comparez jamais un historique UA à des chiffres GA4 ligne à ligne : traitez GA4 comme un nouveau départ.

Enfin, si votre reporting couvre aussi l'acquisition payante, le même squelette s'étend aux plateformes publicitaires — voir notre guide du reporting Google Ads et Meta Ads avec n8n et l'IA.

En résumé

  • Le node Google Analytics natif de n8n interroge GA4 via la Data API, avec un simple credential OAuth2 Google.
  • Deux requêtes suffisent (source/médium et landing pages), comparées semaine sur semaine et réduites à un top 10 trié par variation absolue.
  • La synthèse IA contrainte rend le tableau lisible ; Slack ou email pour la diffusion, Google Sheets ou Postgres pour l'historique.
  • Une alerte quotidienne à seuil (baisse de X % contre le même jour de la semaine précédente) complète le rapport hebdomadaire.
  • Respectez le délai de consolidation de 24 à 48 h de GA4, surveillez les quotas en jetons de la Data API, neutralisez les lignes (not set).

FAQ

Questions fréquentes

Le node Google Analytics de n8n fonctionne-t-il avec GA4 ?

Oui. Le node Google Analytics natif de n8n prend en charge Google Analytics 4 via la Data API : vous sélectionnez la propriété GA4, puis les métriques et dimensions voulues directement dans les paramètres du node. Les anciennes vues Universal Analytics ne renvoient plus de données depuis l'arrêt du traitement par Google.

Pourquoi mes chiffres GA4 dans n8n diffèrent-ils de l'interface Google Analytics ?

Trois causes fréquentes : les données des dernières 24 à 48 heures sont encore en cours de traitement côté GA4, l'interface applique parfois un échantillonnage ou des seuils de confidentialité, et certaines lignes sont regroupées sous (not set). Pour un rapport hebdomadaire fiable, interrogez des journées entièrement consolidées, jamais la veille immédiate.

Quel quota impose la Google Analytics Data API ?

La Data API fonctionne avec un système de jetons (tokens) consommés par requête, avec des plafonds par propriété, par heure et par jour. Un rapport hebdomadaire qui envoie quelques requêtes reste très loin des limites ; le quota ne devient sensible que si vous interrogez de nombreuses propriétés à haute fréquence ou avec beaucoup de dimensions.

Faut-il stocker l'historique dans Google Sheets ou dans Postgres ?

Google Sheets suffit pour un suivi simple et lisible par des non-développeurs : une ligne par semaine, un onglet par site. Postgres devient préférable dès que vous voulez des requêtes de tendance (moyennes mobiles, comparaison année sur année), plusieurs propriétés ou plusieurs années d'historique sans ralentissement.

Bundle FlowKit Complet

269 €