UTM tracking GA4 : le guide ultime en 2026
Vous voulez tout comprendre sur le tracking UTM avec GA4 ? Ce guide vous explique ce que sont vraiment les UTM, comment ils fonctionnent et comment les configurer une bonne fois pour toutes sur toutes vos régies.

Sommaire
- Qu’est-ce qu’un paramètre UTM ?
- Comment GA4 lit et attribue vos paramètres UTM
- UTM : Canaux par défaut et personnalisés GA4
- Paramétrer les UTM sur Google Ads
- Paramétrer les UTM sur Meta Ads
- Paramétrer les UTM sur TikTok Ads
- Paramétrer les UTM sur Snapchat Ads
- Nomenclature UTM : quelques bonnes pratiques
- Conclusion
Vous avez lancé votre campagne Google Ads et Meta Ads, et pourtant dans GA4 une bonne partie de votre trafic remonte en “direct” ou, pire, en “Unassigned”. Les paramètres UTM sont probablement à l’origine de ce problème.
Dans ce guide, je vous explique comment fonctionne l’attribution UTM dans GA4, comment vos paramètres déterminent le canal d’acquisition, et comment construire des UTM fiables pour chacune de vos régies publicitaires.
Qu’est-ce qu’un paramètre UTM ?
Un paramètre UTM (“Urchin Tracking Module”) est un paramètre ajouté à une URL pour transmettre des informations d’attribution de trafic à votre outil analytics.
GA4 n’est pas le seul outil à les lire — Matomo, Piwik Pro et bien d’autres les supportent nativement — mais c’est la façon dont GA4 les interprète pour construire son attribution qui va nous intéresser ici.
Il existe sept standards UTM :
| Paramètre | Rôle | Exemple |
|---|---|---|
utm_source (required) |
Identifie l’origine du trafic | google, meta, newsletter |
utm_medium (required) |
Identifie le canal marketing | cpc, paid-social, email |
utm_campaign (required) |
Identifie la campagne | ete_2026 |
utm_content (optional) |
Différencie les annonces ou contenus | creative_1234 |
utm_term (optional) |
Identifie le mot-clé (Search) | Boryl |
utm_id (optional) |
Identifiant numérique de la campagne | campaignid |
utm_source_platform (optional) |
Identifie la plateforme source | DV360 |
Le paramètre utm_id est particulièrement utile comme clé de réconciliation avec les importations de coût publicitaire par campagne sur GA4
Comment GA4 lit et attribue vos paramètres UTM
Il y a deux notions essentielles à avoir en tête pour comprendre comment les UTM impactent l’attribution sur GA4 :
- D’abord, les différents scopes sur GA4
- Ensuite, l’ordre de priorité des UTM en fonction des dimensions utilisées.
Comprendre les 3 scopes GA4
Pour bien comprendre comment fonctionnent les UTM, il est important de revenir sur les différents scopes GA4.
Il existe trois scopes :
- Utilisateurs
- Sessions
- Événements
On retrouvera donc dans GA4 3 dimensions différentes, par exemple :
- Source / support de la session : c’est l’attribution pour chaque nouvelle session identifiée via l’événement
session_start. - Source / support du premier utilisateur : c’est l’attribution pour la toute première session de l’utilisateur, identifiée via
first_visit. - Source / support : c’est l’attribution appliquée aux événements clés (pas applicable à tous les événements)
Au scope utilisateur et au scope session, GA4 utilisera le modèle d’attribution du dernier clic non direct.
Pour les événements clés, GA4 définit le modèle “basé sur la donnée” (data-driven) par défaut, qui permet d’attribuer en fonction de leur poids chacun des touchpoints qui a mené à la conversion.
Avec une bonne gestion des UTM, vous pourrez donc profiter de ces 3 scopes, pour répondre à des questions comme :
- Quel canal marketing a conduit à la première visite des utilisateurs ? (scope user)
- Quel est le dernier canal marketing qui a contribué à la conversion ? (scope session)
- Quels canaux marketing ont contribué à la conversion ? (scope évènement clé)
Mais il y a une autre subtilité à avoir en tête.
Comprendre la priorité des UTM sur l’attribution GA4
GA4 met à disposition différents types de dimensions, par exemple :
- session source / medium
- Session manual source / medium
La différence entre ces deux types de dimensions est principalement liée aux régies Google (Google Ads, Floodlight..). Je vous explique.
En fonction de la dimension sélectionnée, GA4 va appliquer un ordre de priorité sur les critères d’attribution :
Pour les rapports de trafic par défaut (dimension default channel group) et les dimensions “classiques” (Session source/medium | First user source/medium | source/medium, etc..), GA4 applique la priorité suivante :
- Si votre propriété Google Ads est connecté et que l’auto-tagging est activée, les données seront récupérées depuis les campagnes Google Ads grâce à la présence du clic publicitaire (GCLID) dans l’URL sans prendre en compte les UTM.
- Si l’auto-tagging n’est pas activé ou absent, c’est l’ensemble des UTM qui définiront l’attribution.
- Si l’auto tagging et les UTM sont absents, GA4 se basera sur le referrer de la page et/ou l’attribution des sessions précédentes.
- En dernier lieu et à défaut, la source de trafic sera définie en (direct).
Une mauvaise gestion des UTM peut donc vous mener à son lot de trafic direct mais également de trafic unassigned, même si le paramètre est techniquement présent. J’ai détaillé ce sujet dans un article dédié au trafic unassigned GA4.
À contrario, toutes les dimensions comprenant “manuel” vont prioriser les UTM à la logique de l’auto-tagging.
GA4 ne reconnaît que les ID publicitaires des outils Google (Google Ads, Floodlight…), donc les UTM restent le seul moyen de suivre les autres régies publicitaires comme Meta ou TikTok par exemple.
Si vous souhaitez aller plus loin sur l’attribution GA4, je vous conseille l’excellent article de Matteo Zambon.
UTM : Canaux par défaut et personnalisés GA4
En dehors de la spécificité Google Ads avec l’auto-tagging, GA4 regroupe donc automatiquement vos sessions dans des groupes de canaux par défaut (Paid Search, Paid Social, Organic Search, Email..) en fonction de utm_source, utm_medium, et parfois utm_campaign.
Voici l’ensemble des règles UTM pour faire correspondre votre trafic aux bons canaux marketing GA4 :
| Canal | Règle de correspondance |
|---|---|
| Direct | Source = (direct) ET Medium = (not set) ou (none) |
| Cross-network | Nom de campagne contenant cross-network (Demand Gen, Performance Max, Smart Shopping) |
| Paid Shopping | Source correspond à une liste de sites shopping OU Nom de campagne matchant ^(.*shop|shopping.*)$ ET Medium matchant ^(.*cp.*|ppc|retargeting|paid.*)$ (ex : cpc, cpm, ppc, retargeting) |
| Paid Search | Source correspond à une liste de moteurs de recherche ET Medium matchant ^(.*cp.*|ppc|retargeting|paid.*)$ (ex : cpc, ppc) |
| Paid Social | Source correspond à une liste de plateformes sociales ET Medium matchant ^(.*cp.*|ppc|retargeting|paid.*)$ (ex : paid-social, cpc) |
| Paid Video | Source correspond à une liste de plateformes vidéo ET Medium matchant ^(.*cp.*|ppc|retargeting|paid.*)$ (ex : paid-video, cpv) |
| Display | Medium = display, banner, expandable, interstitial ou cpm |
| Paid Other | Medium matchant ^(.*cp.*|ppc|retargeting|paid.*)$ |
| Organic Shopping | Source matchant une liste de sites de shopping OU Campagne matchant ^(.*shop|shopping.*)$ (ex : utm_campaign=shopping-catalogue, sans medium payant) |
| Organic Social | Source plateforme sociale OU Medium = social, social-network, social-media ou sm |
| Organic Video | Source plateforme vidéo OU Medium contient la regex ^(.video.)$ _(ex : video, video-ads) _ |
| Organic Search | Source moteur de recherche (liste SOURCE_CATEGORY_SEARCH) OU Medium = organic |
| AI Assistant | Medium = ai-assistant _ |
| Referral | Medium = referral, app ou link |
Source OU Medium = email, e-mail ou e_mail |
|
| Affiliates | Medium = affiliate |
| Audio | Medium = audio |
| SMS | Source OU Medium = sms |
| Mobile Push Notifications | Medium se termine par push, contient mobile ou notification OU Source = firebase |
Si pour une raison d’harmonisation ou toute autre raison obscure, vous ne souhaitez pas modifier vos UTM pour les faire correspondre à ce que GA4 attend, il existe une solution.
GA4 permet de créer groupes de canaux personnalisés, accessibles depuis Admin > Affichage des données > Groupes de canaux.
Vous pourrez y définir vos propres règles de correspondance en fonction de la nomenclature de vos UTM.

Assez parlé de GA4, il est temps de vous expliquer comment paramètrer vos UTM à la perfection sur chacune des régies publicitaires.
Paramétrer les UTM sur Google Ads
Google Ads propose une liste de paramètres dynamiques appelés ValueTrack parameters :
| Variable | Ce qu’elle retourne | Niveau |
|---|---|---|
{lpurl} |
URL de la page de destination (obligatoire dans le modèle de suivi) | — |
{campaignid} |
ID numérique de la campagne | Campagne |
{adgroupid} |
ID numérique du groupe d’annonces | Groupe |
{creative} |
ID numérique de l’annonce | Annonce |
{keyword} |
Mot-clé ayant déclenché l’annonce | Mot-clé |
{matchtype} |
Type de correspondance : e (exact), p (expression), b (large) |
Mot-clé |
{device} |
Appareil : m (mobile), t (tablette), c (ordinateur) |
Session |
{network} |
Réseau : g (Recherche Google), s (Partenaires), d (Display) |
Session |
Pour gérer vos UTM, contrairement à beaucoup d’autres régies, Google Ads vous permet de créer une règle globale au niveau de votre compte.
Rendez-vous sur : Paramètres du compte → Suivi → Modèle de suivi

Comme nous l’avons vu plus haut, si vous avez connecté Google Ads à GA4 avec l’auto-tagging, les UTM auront un rôle limité, mais restent largement recommandés pour assurer un backup.
Voici ma recommandation pour que GA4 attribue proprement le canal “Paid Search” :
{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_content={creative}&utm_term={keyword}_{matchtype}&utm_source_platform={network}
utm_source=google: statique, toujours en minuscules.utm_medium=cpc: la seule valeur que GA4 reconnaît pour “Paid Search”.utm_campaign={campaignid}: l’ID numérique de la campagne, à défaut d’avoir le nom de la campagneutm_content={creative}: identifie précisément quel visuel ou texte performe.utm_term={keyword}_{matchtype}: précieux pour analyser vos requêtes Search dans GA4.utm_source_platform={network}: intéressant pour connaître le réseau de diffusion
Je ne traite pas le sujet ici, mais il existe des scripts Google Ads qui peuvent permettre de récupérer le nom d’une campagne, plutôt que son ID pour utm_campaign
Paramétrer les UTM sur Meta Ads
Meta utilise les variables dynamiques avec des double accolades :
| Variable | Ce qu’elle retourne |
|---|---|
{{campaign.name}} |
Nom de la campagne |
{{campaign.id}} |
ID de la campagne |
{{adset.name}} |
Nom de l’ensemble d’annonces |
{{ad.name}} |
Nom de l’annonce |
{{ad.id}} |
ID de l’annonce |
{{site_source_name}} |
Source du placement : fb, ig, msg, an |
Pour configurer ses UTM, rendez-vous dans la section Suivi → Paramètres d’URL, tout en en bas de la configuration de l’annonce.

Pour que GA4 attribue correctement vos campagnes dans “Paid Social”, voici ma recommandation :
utm_source=meta: statique.utm_medium=paid-social: permet de matcher avec Paid Socialutm_campaign={{campaign.name}}: Le nom de votre campagne Metautm_content={{ad.name}}: identifie l’annonce précise qui performe.utm_id={{campaign.id}}: utile pour avoir une clé de réconciliation pour l’import de coût sur GA4utm_source_platform={{site_source_name}}: intéressant pour connaître le réseau de diffusion (Instagram, Messenger, Facebook..)
Voici à quoi ressemble l’URL finale :
?utm_source=meta&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_id={{campaign.id}}&utm_source_platform={{site_source_name}}
Si vous souhaitez avoir le détail des types de placements facilement, vous pouvez toujours opter pour utm_medium=paid-{{placement}}. Les rapports source/support seront plus détaillés. Vous gagnez en granularité, mais vous perdez lisibilité sur la vue d’ensemble.
Paramétrer les UTM sur TikTok Ads
Voici les variables dynamiques disponibles pour TikTok :
| Variable | Ce qu’elle retourne |
|---|---|
__CAMPAIGN_NAME__ |
Nom de la campagne |
__CAMPAIGN_ID__ |
ID de la campagne |
__AID_NAME__ |
Nom du groupe d’annonces |
__AID__ |
ID du groupe d’annonces |
__ADID_V2_NAME__ |
Nom de l’annonce (campagnes Smart+ uniquement) |
__ADID_V2__ |
ID de l’annonce (campagnes Smart+ uniquement) |
__CID_NAME__ |
Nom de la création |
__CID__ |
ID de la création |
__PLACEMENT__ |
Type de placement (TikTok, TikTok Pangle) |
Les paramètres se configurent au niveau de l’annonce, dans la partie Website URL.
Voici mes recommandations pour une attribution GA4 propre :
utm_source=tiktokutm_medium=paid-socialutm_campaign=__CAMPAIGN_NAME__utm_content=__CID_NAME__: identifie la création qui performe. Sur les campagnes Smart+, préférez__ADID_V2_NAME__pour descendre au niveau de l’annonce.utm_id=__CAMPAIGN_ID__: utile pour avoir une clé de réconciliation pour l’import de coût sur GA4utm_source_platform=__PLACEMENT__: distingue le trafic diffusé sur TikTok de celui diffusé sur le réseau Pangle
Et voilà ce que ça donne dans une URL :
?utm_source=tiktok&utm_medium=paid-social&utm_campaign=__CAMPAIGN_NAME__&utm_content=__CID_NAME__&utm_id=__CAMPAIGN_ID__&utm_source_platform=__PLACEMENT__
Paramétrer les UTM sur Snapchat Ads
Pour ces variables dynamiques, Snapchat reprend la syntaxe des double accolades de Meta :
| Variable | Ce qu’elle retourne |
|---|---|
{{campaign.name}} |
Nom de la campagne |
{{campaign.id}} |
ID de la campagne |
{{adSet.name}} |
Nom de l’ensemble de publicités |
{{adSet.id}} |
ID de l’ensemble de publicités |
{{ad.id}} |
ID de la publicité |
{{creative.name}} |
Nom de la création |
{{creative.headline}} |
Titre de la création |
{{site_source_name}} |
Source du placement |
Les paramètres se configurent au niveau de l’annonce, section Destination.
utm_source=snapchatutm_medium=paid-socialutm_campaign={{campaign.name}}utm_content={{creative.name}}utm_id={{campaign.id}}: utile pour avoir une clé de réconciliation pour l’import de coût sur GA4utm_source_platform={{site_source_name}}: intéressant pour connaître le placement de diffusion
?utm_source=snapchat&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{creative.name}}&utm_id={{campaign.id}}&utm_source_platform={{site_source_name}}
Nomenclature UTM : quelques bonnes pratiques
Vous l’aurez compris : bien nommer ses UTM, c’est le socle pour obtenir une bonne attribution sur GA4.
Voici quelques bonnes pratiques, quelle que soit la régie :
- Tout en minuscules :
cpcet nonCPC,googleet nonGoogle. GA4 est sensible à la casse pour l’attribution des canaux. - Pas d’espaces : remplacez-les par des tirets (
-) ou des underscores (_). Un espace s’encode en%20et peut créer des entrées parasites dans vos rapports. - Pas d’accents :
ete-2026et nonété-2026. - Évitez autant que possible d’intégrer des UTM dans la navigation de votre site web, cela pourrait fausser l’attribution d’un achat avec le modèle “basé sur la donnée” de GA4.
Dernière recommandation, et peut-être la plus importante sur le long terme : documentez votre nomenclature dans un fichier partagé.
Google Sheets, Notion, peu importe le support.
Ce qui compte, c’est que toutes les équipes susceptibles de travailler sur vos campagnes pub, emailing ou sur votre site web s’y réfèrent.
Prenez le temps d’échanger sur le sujet avec vos développeurs. Il arrive parfois que des logiques UTM soient historiquement implémentées avec le mauvais format ou au mauvais endroit (comme les emails transactionnels, emails de création de compte, etc..)
Conclusion
Vous l’aurez compris, des UTM bien paramétrés, c’est la base d’une attribution GA4 propre et pérenne dans le temps.
C’est aussi et avant tout une stratégie collective qui a besoin d’être partagée avec toutes les parties prenantes, sur laquelle in fine, tout le monde peut avoir confiance.
C’est un investissement dans le temps. De mon expérience, il est beaucoup moins coûteux (dans tous les sens du terme) de définir sa structure UTM par outil et de faire toutes les vérifications nécessaires, plutôt que de se rendre compte 2 ans plus tard, que vos analyses étaient faussées ou incomplètes.
Sachez enfin que certains CRM (ex: Hubspot) et autres outils connectés à vos régies peuvent centraliser le paramètrage des UTM. Un gain de temps intéressant en fonction votre stack technique.