Pour suivre les scans d’un QR code dans Google Analytics 4, ajoutez des paramètres UTM au lien avant de le transformer en code, par exemple https://www.exemple.fr/menu?utm_source=affiche&utm_medium=qr&utm_campaign=menu_printemps_2026. Chaque scan qui ouvre votre page apparaît alors dans GA4 comme une session affiche / qr. Créez le lien avec notre générateur de liens UTM gratuit, collez-le dans le générateur de QR code gratuit et téléchargez un PNG ou un SVG. Les deux outils sont gratuits, sans inscription, et fonctionnent dans votre navigateur.
Un piège que la plupart des guides passent sous silence : GA4 n’a pas de canal par défaut pour les QR codes, donc le trafic en utm_medium=qr tombe dans Non attribué (Unassigned) tant que vous n’avez pas créé de groupe de canaux personnalisé. Tout ce qui suit a été testé le 3 novembre 2026 : liens générés par notre outil UTM en ligne dans Chrome, QR codes relus avec deux décodeurs, canaux vérifiés avec les règles publiées par Google pour GA4.
Comment le suivi d’un QR code fonctionne réellement dans GA4
Un QR code statique n’est que du texte, ici une URL. Quand quelqu’un le scanne, le téléphone ouvre cette URL comme n’importe quel lien, et la balise GA4 lit les paramètres utm_ de l’adresse. GA4 ne voit jamais le scan lui-même, seulement la visite qui suit. Deux conséquences concrètes :
- Vous comptez des visites, pas des scans. Un scan jamais ouvert, un téléphone sans réseau ou un visiteur qui refuse les cookies de mesure n’apparaissent pas. Considérez les chiffres de GA4 comme un minimum.
- La page d’arrivée doit porter votre balise GA4. Si le code mène à un PDF, à une fiche Google Maps ou au site d’un autre, GA4 n’a rien à enregistrer. Visez une page de votre site, quitte à ce qu’elle renvoie ailleurs.
Vous n’avez donc pas besoin d’un service payant de « QR code dynamique », qui compte les scans via sa propre redirection. Un code statique avec UTM place les mêmes données de campagne dans votre propre outil d’analyse, et il n’expire jamais. La contrepartie : une fois imprimé, sa destination est figée. Si vous risquez de devoir la changer, encodez une URL courte de votre propre domaine qui redirige vers le lien tagué.
Étape par étape : créer un QR code mesurable
- Choisissez la page d’arrivée. Utilisez l’URL finale exacte, avec
https://et la bonne version avec ou sanswww, pour ne pas dépendre d’une redirection. - Ouvrez le générateur de liens UTM et collez l’URL.
- Remplissez trois champs. UTM Source indique où le code est imprimé (
affiche,flyer,chevalet,emballage). UTM Medium vautqr, identique sur tous les codes. UTM Campaign désigne ce que vous promouvez (menu_printemps_2026). UTM Content sert à distinguer les versions, commetable_12ouaffiche_b. - Cliquez hors du dernier champ. Le générateur recalcule le lien quand un champ perd le focus, pas à chaque frappe. Dans notre test, juste après la saisie de la campagne, le résultat affichait encore
...?utm_source=affiche&utm_medium=qr; la campagne n’est apparue qu’après un clic ailleurs. Vérifiez que tous les paramètres sont là avant de copier. - Collez le lien dans le générateur de QR code (type Texte), choisissez la taille et le niveau de correction d’erreurs, puis téléchargez un PNG pour l’écran ou un SVG pour l’imprimeur.
- Scannez votre propre code avec l’appareil photo du téléphone, ou envoyez l’image au lecteur de QR code, et vérifiez que l’URL décodée est identique au caractère près.
- Testez dans GA4 avant d’imprimer (voir la dernière section).
Essayez maintenant : créez votre lien tagué, puis transformez-le en QR code. Les deux pages produisent le résultat localement, dans votre navigateur.
Exemples concrets (résultats réels de nos outils)
Nous avons saisi ces données dans le générateur UTM en ligne, dans sa version française. Les résultats sont copiés tels quels :
| Saisie | Lien généré |
|---|---|
URL https://www.exemple.fr/menu, source affiche, medium qr, campaign menu_printemps_2026 | https://www.exemple.fr/menu?utm_source=affiche&utm_medium=qr&utm_campaign=menu_printemps_2026 (93 caractères) |
Idem, avec campaign Fête des Mères | ...&utm_campaign=F%C3%AAte%20des%20M%C3%A8res (98 caractères) |
URL https://www.example.com/menu?lang=en#hours, source table_tent, content table_12 | https://www.example.com/menu?lang=en&utm_source=table_tent&utm_medium=qr&utm_campaign=spring_menu_2026&utm_content=table_12#hours |
URL saisie sans protocole : example.com/menu | https://example.com/menu?utm_source=flyer&... (https ajouté, pas de www) |
Les espaces deviennent %20 par défaut (ou + si vous le choisissez dans Encoder les espaces en ; les longueurs ci-dessous ont été mesurées avec +) et chaque lettre accentuée six caractères (%C3%AA pour ê, %C3%A8 pour è) : c’est valide, mais inutilement long. Préférez les tirets bas sans accents (fete_des_meres). Les paramètres existants comme lang=en sont conservés, et le fragment #hours reste à la fin, là où il doit être : des UTM placés après un # n’arrivent jamais jusqu’à GA4. L’outil ajoute https:// mais ne peut pas deviner le www : saisissez l’adresse complète. Pour relire un long lien, collez-le dans l’analyseur d’URL : pour le troisième lien, il a listé les cinq valeurs séparément, avec hours comme fragment.
Plus le lien est long, plus le code est dense
Un QR code grandit par « versions » : la version 1 compte 21×21 modules (les petits carrés), et chaque version ajoute 4 modules par côté. Plus de caractères, c’est une version plus élevée et des carrés plus petits à taille imprimée égale. Nous avons généré chaque lien en 512×512 px et relu la version avec le décodeur zxing-cpp :
| URL encodée | Caractères | Version en M | Version en H |
|---|---|---|---|
https://www.example.com/menu (sans UTM) | 28 | 3 (29×29) | 4 (33×33) |
https://www.example.com/m?utm_source=flyer&utm_medium=qr&utm_campaign=sp26 | 74 | 5 (37×37) | 8 (49×49) |
| Lien de l’affiche du menu de printemps | 93 | 6 (41×41) | 9 (53×53) |
Chemin long et valeurs longues (poster_downtown_bus_stop, poster_a3_version_b) | 189 | 10 (57×57) | 14 (73×73) |
Sur un code de 25 mm, la version 5 donne des modules d’environ 0,68 mm, la version 10 seulement 0,44 mm environ. Cela compte avec une impression bon marché, un support brillant ou un scan à distance. Tous ces codes ont été décodés sans erreur par zxing-cpp et par notre lecteur de QR code, y compris les & et le #hours : la longueur n’est pas un problème d’exactitude, mais d’impression. Gardez des valeurs courtes (mp26 plutôt que menu_printemps_2026), oubliez utm_term (réservé aux mots-clés payants) et restez en correction M, sauf si vous posez un logo sur le code.
Le piège de GA4 : utm_medium=qr apparaît en « Non attribué »
GA4 range chaque session dans un canal par défaut (Recherche organique, E-mail, Site référent, etc.) selon des règles fixes que vous ne pouvez pas modifier. Nous avons confronté nos balises aux règles de la page d’aide Google sur le groupe de canaux par défaut et à sa liste téléchargeable de sources :
| source / medium / campaign | Canal par défaut | Pourquoi |
|---|---|---|
| affiche / qr / menu_printemps_2026 | Non attribué | Aucune règle ne mentionne qr, et affiche n’est pas une source connue |
| affiche / papier, print ou offline | Non attribué | Aucune règle pour ces valeurs non plus |
| instagram / qr | Réseaux sociaux naturels | instagram figure dans la liste des sources sociales de Google |
| affiche / qr / eshop_noel | Shopping naturel | Les campagnes contenant eshop, -shop ou shopping comptent comme achats |
| affiche / mobile-qr | Notifications push mobiles | Tout medium contenant mobile |
| affiche / qr-video | Vidéos naturelles | Tout medium contenant video |
| affiche / qr_cpm | Autre trafic payant | Tout medium contenant cp |
N’essayez donc pas d’échapper au « Non attribué » avec des noms de medium astucieux : ils déplacent simplement vos scans dans le mauvais canal. Gardez utm_medium=qr et donnez-lui son propre canal :
- Dans GA4, allez dans Administration → Affichage des données → Groupes de canaux et cliquez sur Créer un groupe de canaux. Vous partez d’une copie du groupe par défaut. Il faut le rôle Éditeur ou plus.
- Ajoutez un nouveau canal, nommez-le QR codes et définissez la condition Support correspond exactement à qr.
- Avec Réorganiser, faites glisser QR codes tout en haut, car le trafic va au premier canal qui correspond. Sinon,
instagram / qrresterait dans les réseaux sociaux. - Enregistrez le groupe, puis choisissez-le comme dimension principale dans Rapports → Acquisition → Acquisition de trafic.
D’après la documentation de Google, les groupes de canaux personnalisés s’appliquent aussi aux données passées, et une propriété standard peut en avoir 2, avec 50 canaux chacun au maximum. Les conditions de canal ne tiennent pas compte de la casse, mais les valeurs des rapports si : Google précise que utm_source=google et utm_source=Google sont deux valeurs distinctes, donc Affiche / QR et affiche / qr donneraient deux lignes. Écrivez tout en minuscules.
Redirections et raccourcisseurs : vérifiez que les UTM survivent
Si le code pointe vers une URL qui redirige, la redirection doit transmettre les paramètres. C’est le cas le plus souvent : notre vérificateur de redirections a montré https://google.com/?utm_source=flyer... répondre 301 vers https://www.google.com/?utm_source=flyer... avec toutes les balises. Mais lors d’un test avec curl, https://fb.com/?utm_source=flyer&utm_medium=qr a répondu 301 vers https://www.facebook.com/ tout court, balises perdues. Une redirection de ce type sur votre site transforme chaque scan en trafic Direct. Regardez la dernière URL de la chaîne, pas la première ; voir comment savoir si une redirection est 301 ou 302.
Erreurs fréquentes
- Un seul code pour tout. Si le flyer et l’affiche partagent le même code, impossible de les comparer. Changez
utm_sourceouutm_contentpour chaque emplacement : avec des codes statiques, cela ne coûte rien. - Mettre des UTM sur les liens internes de votre site. Les QR codes sont des points d’entrée, taguez-les ; les liens entre vos propres pages, non. Nous l’expliquons dans notre guide des paramètres UTM dans GA4.
- Des couleurs trop peu contrastées. Un code aux couleurs de la marque trop pâle peut ne pas se scanner. Notre générateur signale un contraste faible ; foncé sur clair reste le plus sûr.
- Masquer la destination. Le téléphone affiche l’URL avant de l’ouvrir, et votre propre domaine inspire plus confiance qu’un raccourcisseur quelconque. Voir comment vérifier si un QR code est sûr.
Testez dans GA4 avant d’imprimer
Ouvrez une fenêtre de navigation privée, qui compte comme un nouvel utilisateur, et visitez votre lien tagué (ou scannez le code avec un téléphone qui n’a jamais visité votre site). Dans GA4, ouvrez Rapports → Temps réel et basculez la fiche des utilisateurs par source du premier utilisateur sur Campagne du premier utilisateur. Google indique que le rapport Temps réel affiche des dimensions liées à la première acquisition de l’utilisateur, d’où l’intérêt d’un navigateur vierge. Si la campagne apparaît en quelques minutes, la balise, le lien et les redirections fonctionnent. Les chiffres complets arrivent ensuite dans Acquisition de trafic, sous Source/Support de la session et Campagne de la session.
Questions fréquentes
Google Analytics peut-il suivre les scans d’un QR code ?
Indirectement. GA4 ne voit pas le scan, mais si le QR code contient un lien avec des paramètres UTM, chaque scan qui ouvre votre page est enregistré comme une session avec cette source, ce support et cette campagne.
Quel utm_medium utiliser pour un QR code ?
Utilisez qr sur tous les codes et indiquez l’emplacement dans utm_source, par exemple affiche ou flyer. GA4 n’a pas de canal QR par défaut : créez un groupe de canaux personnalisé avec la condition Support correspond exactement à qr, placé en premier.
Pourquoi le trafic de mon QR code est-il Non attribué dans GA4 ?
Parce qu’aucune règle de canal par défaut ne reconnaît le support qr (ni papier, ni offline). Créez un groupe de canaux personnalisé nommé QR codes ; il s’applique aussi aux données passées.
Faut-il un QR code dynamique pour suivre les scans ?
Non. Un code statique avec des paramètres UTM vous donne les visites issues des scans dans votre propre GA4, gratuitement et sans expiration. Un code dynamique permet seulement de changer la destination après impression, ce qu’une redirection sur votre domaine fait aussi.
Les paramètres UTM rendent-ils le QR code plus difficile à scanner ?
Ils le rendent plus dense. Dans nos tests, une URL de 28 caractères a donné un code en version 3, et la version taguée de 93 caractères une version 6, les deux en correction M. Des valeurs courtes et sans accents gardent le code facile à lire.
Le générateur UTM et le générateur de QR code sont-ils gratuits ?
Oui. Les deux sont gratuits, sans inscription, et fonctionnent dans votre navigateur. Pas de filigrane, et les codes n’expirent pas puisqu’ils sont statiques.
Prêt à mesurer votre campagne imprimée ? Taguez votre lien avec le générateur de liens UTM, transformez-le en code avec le générateur de QR code et vérifiez-le avec le lecteur de QR code avant de l’envoyer à l’imprimeur. Pour les QR codes Wi-Fi imprimés, voir comment créer un QR code Wi-Fi.