UTM sur QR codes : structurer vos campagnes dans GA4
Un paramètre UTM mal tagué sur un QR code imprimé se paie jusqu'à la fin du tirage. Voici une nomenclature fiable pour structurer vos campagnes print et garder des données GA4 propres.
Scénario classique, vu et revu en agence : 4 000 flyers imprimés avec un QR code pointant vers une URL taguée utm_source=flyer sur une affiche et utm_source=flyers sur une autre. Un s en trop. Résultat : deux lignes distinctes dans GA4, impossible de fusionner les données sans exporter et retraiter manuellement dans un tableur. Trois semaines de campagne à moitié perdues côté reporting.
C'est le genre d'erreur qui n'existe presque jamais avec un lien web classique, parce qu'on peut corriger un lien sur un site en trente secondes. Sur un support imprimé, le qr code utm suivi campagne doit être juste du premier coup, sinon vous vivez avec l'erreur jusqu'à la fin du tirage. J'ai vu cette erreur assez de fois pour avoir fini par construire une convention stricte, et je vais la partager telle quelle.
Pourquoi l'impression change tout
Sur le web, un lien avec un mauvais paramètre UTM se corrige en éditant le CMS ou en renvoyant un email rectifié. Sur une affiche collée dans 40 vitrines de commerçants partenaires, ou sur un packaging déjà produit à 10 000 exemplaires, cette flexibilité n'existe pas.
J'ai vu des équipes marketing découvrir après coup que leur utm_medium disait "print" sur une campagne et "offline" sur une autre pour le même canal, simplement parce que deux personnes différentes avaient rempli le générateur d'URL sans se consulter. Dans GA4, ça donne deux médiums distincts qui diluent les chiffres et rendent impossible toute comparaison propre entre les supports.
Le tracking qr code google analytics repose entièrement sur la cohérence des paramètres au moment de la génération du lien. Une fois le QR code imprimé sur du papier glacé ou gravé sur un packaging, il n'y a plus de marge de manœuvre. C'est pour ça que j'insiste toujours, avant même de parler de design ou de taille du QR, sur la nomenclature. D'ailleurs si vous n'avez pas encore vérifié la lisibilité de votre visuel, j'ai écrit un article sur la taille minimale d'un QR code imprimé et la règle des 10 % qui vaut la peine d'être lu avant de passer en production.
Une convention de nommage par support
Ma règle numéro un : le paramètre utm_source ne décrit jamais l'entreprise ou la marque, il décrit le support physique. Le utm_medium décrit toujours le canal générique, jamais le détail. Et le utm_campaign porte le nom de l'opération marketing, identique partout où elle apparaît.
Voici la structure que j'utilise sur tous les projets clients :
- Affiche en vitrine :
utm_source=affiche_vitrine,utm_medium=print,utm_campaign=nom_campagne - Flyer distribué en main propre :
utm_source=flyer_distrib,utm_medium=print,utm_campaign=nom_campagne - Packaging produit :
utm_source=packaging,utm_medium=print,utm_campaign=nom_campagne - Carte de visite ou vCard :
utm_source=carte_visite,utm_medium=print,utm_campaign=nom_campagne - Affichage extérieur (panneau, kiosque) :
utm_source=affichage_ext,utm_medium=print,utm_campaign=nom_campagne
Le utm_medium=print reste identique sur tous les supports imprimés. C'est volontaire. Ça permet de filtrer d'un coup tout le trafic offline dans GA4 sans avoir à cocher quinze sources différentes. Ensuite, le détail du support vit dans utm_source, et c'est là qu'on va chercher la granularité pour comparer une vitrine à un flyer.
J'écris tout en minuscules, sans accents, sans espaces. GA4 traite Flyer et flyer comme deux valeurs distinctes, et j'ai perdu assez d'heures à réconcilier des rapports fragmentés pour appliquer cette règle sans exception, même quand un client insiste pour mettre une majuscule "parce que ça fait plus propre dans le tableur".
Pour le utm_campaign, je fixe un format daté : nomcampagne_2026q1 ou ouverture_succursale_042026. Ça évite la confusion l'année suivante quand vous relancez une campagne similaire et que vous devez la distinguer de la précédente dans les rapports historiques.
Isoler les scans QR dans GA4
Une fois les UTM bien construits, encore faut-il les retrouver proprement dans les rapports. Le piège classique : le trafic issu d'un scan QR arrive souvent classé en "Direct" dans GA4 si les paramètres UTM ne sont pas correctement propagés, ou si l'utilisateur ferme l'onglet avant que le paramètre soit enregistré par le SDK d'analytics.
Pour éviter cette pollution, je fais systématiquement ces vérifications :
- Tester le lien avant impression, jamais après. Je scanne le QR code avec mon téléphone, je vérifie dans l'URL finale que les paramètres sont bien présents après les éventuelles redirections.
- Créer un rapport personnalisé dans GA4 filtré sur
medium=print, isolé du reste du trafic, pour ne jamais mélanger les scans avec les visites organiques ou payantes. - Vérifier la propagation des UTM si le QR pointe vers une page qui redirige elle-même vers une autre URL. Chaque redirection supplémentaire est un risque de perdre les paramètres en cours de route.
Le point trois est celui qui casse le plus de campagnes. Si votre QR code pointe vers une URL courte qui redirige vers votre site, et que cette redirection n'est pas configurée pour préserver la query string, vos UTM disparaissent purement et simplement. Ça arrive avec des services de raccourcissement génériques mal configurés, et l'équipe ne s'en rend compte qu'après plusieurs semaines de campagne, en voyant qu'une grosse part du trafic soi-disant "organique" vient en fait de son propre flyer.
Si vous voulez comprendre pourquoi la robustesse du QR code lui-même (et pas seulement l'URL derrière) compte aussi dans cette équation, mon article sur les niveaux de correction L, M, Q, H explique comment un QR endommagé ou mal scanné peut aussi fausser vos statistiques de conversion, indépendamment du tracking UTM.
Corriger sans réimprimer
Voici la partie qui justifie à elle seule d'utiliser un code qr dynamique plutôt qu'un QR statique pour toute campagne imprimée un tant soit peu sérieuse.
Dans le scénario du début d'article, celui du s en trop sur flyer versus flyers, il aurait fallu vivre avec cette erreur jusqu'à épuisement du stock de 4 000 flyers si le QR code avait été statique. Un QR statique encode l'URL complète, UTM compris, directement dans le motif du code. Toute correction implique une réimpression totale.
Avec un QR dynamique, le code imprimé pointe vers une URL de redirection fixe que vous contrôlez depuis une plateforme, et c'est cette URL de redirection qui embarque les UTM vers la destination finale. Ça change tout : vous pouvez corriger le paramètre fautif en quelques secondes depuis un tableau de bord, sans toucher un seul flyer déjà imprimé ou déjà distribué.
C'est exactement le genre de scénario où on structure nos QR codes chez QR Code Agency : générer le code une fois, garder la possibilité de repointer la destination et d'ajuster les paramètres de tracking après coup, sans jamais devoir renvoyer un visuel à l'imprimeur. Si votre budget ne permet pas une deuxième impression en cas d'erreur (et c'est le cas de la plupart des PME), le QR dynamique n'est pas un luxe, c'est une assurance.
J'ai déjà détaillé la mécanique complète de correction d'un QR déjà imprimé dans cet article dédié, qui va plus loin sur les aspects techniques de la redirection elle-même. Et si vous hésitez encore entre statique et dynamique pour votre prochaine campagne, la comparaison complète est ici.
Le cas du packaging et des flyers de masse
Sur des projets où plusieurs milliers de QR codes doivent être générés d'un coup (packaging de série, flyers pour un réseau de franchises), la tentation est de tout automatiser sans se poser la question des UTM avant de lancer le batch. Grave erreur.
Quand on génère 5 000 QR codes via API pour un même lot de packaging, chaque code peut recevoir une URL avec des UTM légèrement différents selon la région de distribution ou le point de vente, ce qui permet ensuite de savoir précisément quelle succursale génère le plus de scans. Mais ça veut dire que la structure UTM doit être validée avant le lancement du batch, jamais après, parce que corriger 5 000 URLs une par une n'est pas une option réaliste. J'ai un article qui détaille comment automatiser cette génération en masse depuis un fichier CSV vers une API, avec exactement ce genre de contrôle en amont sur la structure des paramètres.
Mon conseil concret : créez un gabarit Excel ou Google Sheets avec des colonnes verrouillées pour utm_source, utm_medium et utm_campaign, avec des listes déroulantes plutôt que des champs texte libres. Ça élimine la faute de frappe humaine à la source, avant même que le lien ne soit généré.
Ce qu'il faut retenir
Règle simple à appliquer sur chaque projet : aucun QR code n'est envoyé à l'imprimeur sans un tableau de validation des UTM relu par une deuxième personne. Ça prend dix minutes, ça évite des semaines de données inutilisables.
Concrètement, cette discipline permet de livrer des rapports GA4 propres sur des campagnes multi-supports (affiche, flyer, packaging), où on peut enfin comparer objectivement quel support génère le plus de scans, sans retraiter manuellement des exports Excel pendant des heures. Cas type : sur une campagne multi-supports pour une chaîne de cafés, ce niveau de granularité peut révéler que les QR codes sur les gobelets à emporter génèrent nettement plus de scans que ceux sur les affiches en vitrine, une information impossible à extraire si les deux sources sont taguées de façon incohérente.
L'action concrète à prendre aujourd'hui, avant votre prochaine impression : ouvrez un tableur, listez chaque support physique prévu pour la campagne, et écrivez à côté le utm_source, utm_medium et utm_campaign exacts que vous allez utiliser. Faites relire ce tableau par une deuxième personne avant de générer le moindre QR code. Et si vous n'êtes pas sûr à 100 % de vos paramètres, générez un QR dynamique plutôt qu'un statique. Ça vous laisse le droit à l'erreur, ce que le papier imprimé ne vous accordera jamais.
A lire aussi
Keep reading
Taille minimale d'un QR code imprimé : la règle des 10 % expliquée
La règle des 10 % relie la taille d'un QR code à sa distance de scan : un code lu à 1 mètre doit mesurer au moins 10 cm de côté. Voici comment appliquer ce calcul selon le support, les facteurs qui forcent à voir plus grand, et les erreurs qui coûtent un tirage complet.
QR code statique ou dynamique : lequel choisir selon votre usage
Un QR statique fige sa destination pour toujours ; un dynamique la laisse modifiable après impression, avec des statistiques de scan en prime. Voici la différence concrète, les cas où chaque format gagne, et la question à se poser avant d'imprimer quoi que ce soit.
QR Code Wi-Fi : le générer sans app tierce ni risque
Générer un QR code Wi-Fi directement depuis ton téléphone, sans app tierce ni site suspect : la méthode native Android et iPhone, les erreurs d'encodage qui cassent le scan, et les bonnes pratiques selon que le code est affiché chez toi ou en commerce.