Um QR-Code-Scans in Google Analytics 4 zu tracken, hängen Sie UTM-Parameter an den Link, bevor Sie daraus einen Code machen, zum Beispiel https://www.beispiel.de/speisekarte?utm_source=flyer&utm_medium=qr&utm_campaign=fruehling_2026. Jeder Scan, der Ihre Seite öffnet, erscheint in GA4 dann als Sitzung mit flyer / qr. Bauen Sie den Link mit unserem kostenlosen UTM-Link-Generator, fügen Sie ihn in den kostenlosen QR-Code-Generator ein und laden Sie ein PNG oder SVG herunter. Beide Tools sind kostenlos, brauchen kein Konto und laufen in Ihrem Browser.
Ein Haken, den kaum eine Anleitung erwähnt: GA4 hat keinen Standardkanal für QR-Codes. Traffic mit utm_medium=qr landet deshalb unter Nicht zugeordnet (Unassigned), bis Sie eine eigene Channelgruppe anlegen. Alles Folgende haben wir am 3. November 2026 getestet: Die Links stammen aus unserem Live-UTM-Tool in Chrome, jeder QR-Code wurde mit zwei Decodern zurückgelesen, und die Kanäle haben wir mit den von Google veröffentlichten GA4-Regeln geprüft.
So funktioniert QR-Code-Tracking in GA4 wirklich
Ein statischer QR-Code ist nur Text, hier eine URL. Beim Scannen öffnet das Smartphone diese URL wie jeden anderen Link, und Ihr GA4-Tag liest die utm_-Parameter aus der Adresse. GA4 sieht den Scan selbst nie, nur den Besuch danach. Das hat zwei praktische Folgen:
- Sie zählen Besuche, keine Scans. Ein Scan, der nie geöffnet wird, ein Handy ohne Netz oder ein Besucher, der Analyse-Cookies ablehnt, tauchen nicht auf. Sehen Sie die GA4-Zahlen als Untergrenze.
- Die Zielseite braucht Ihr GA4-Tag. Führt der Code zu einem PDF, einem Google-Maps-Eintrag oder einer fremden Website, hat GA4 nichts zu erfassen. Verlinken Sie eine Seite auf Ihrer Website, auch wenn sie nur weiterleitet.
Deshalb brauchen Sie keinen kostenpflichtigen Dienst für „dynamische QR-Codes“, der Scans über seine eigene Weiterleitung zählt. Ein statischer Code mit UTM liefert dieselben Kampagnendaten in Ihre eigene Analyse und läuft nie ab. Der Nachteil: Nach dem Druck steht das Ziel fest. Falls Sie es später ändern müssen, codieren Sie eine kurze URL auf Ihrer eigenen Domain, die auf den getaggten Link weiterleitet.
Schritt für Schritt: einen trackbaren QR-Code erstellen
- Wählen Sie die Zielseite. Nehmen Sie die exakte End-URL mit
https://und der richtigen Variante mit oder ohnewww, damit keine Weiterleitung nötig ist. - Öffnen Sie den UTM-Link-Generator und fügen Sie die URL ein.
- Füllen Sie drei Felder aus. UTM Source ist der Ort, an dem der Code gedruckt ist (
flyer,plakat,tischaufsteller,verpackung). UTM Medium istqr, bei allen Codes gleich. UTM Campaign ist das, wofür Sie werben (fruehling_2026). Mit UTM Content unterscheiden Sie Varianten wietisch_12oderplakat_b. - Klicken Sie aus dem letzten Feld heraus. Der Generator baut den Link neu, wenn ein Feld den Fokus verliert, nicht bei jedem Tastendruck. In unserem Test zeigte das Ergebnis direkt nach dem Eintippen der Kampagne noch
...?utm_source=flyer&utm_medium=qr; die Kampagne kam erst nach einem Klick daneben dazu. Prüfen Sie vor dem Kopieren, ob alle Parameter da sind. - Fügen Sie den Link in den QR-Code-Generator ein (Typ Text), wählen Sie Größe und Fehlerkorrektur und laden Sie ein PNG für Bildschirme oder ein SVG für die Druckerei herunter.
- Scannen Sie Ihren eigenen Code mit der Handykamera oder laden Sie das Bild in den QR-Code-Leser und prüfen Sie, ob die decodierte URL Zeichen für Zeichen stimmt.
- Testen Sie in GA4, bevor Sie drucken (siehe letzter Abschnitt).
Gleich ausprobieren: getaggten Link erstellen und danach in einen QR-Code umwandeln. Beide Seiten erzeugen das Ergebnis lokal in Ihrem Browser.
Beispiele (echte Ergebnisse unserer Tools)
Diese Eingaben haben wir in den Live-UTM-Generator auf Deutsch eingetippt. Die Ergebnisse sind unverändert kopiert:
| Eingabe | Erzeugter Link |
|---|---|
URL https://www.beispiel.de/speisekarte, Source flyer, Medium qr, Campaign fruehling_2026 | https://www.beispiel.de/speisekarte?utm_source=flyer&utm_medium=qr&utm_campaign=fruehling_2026 (94 Zeichen) |
Gleich, mit Campaign Frühlingsaktion Größe | ...&utm_campaign=Fr%C3%BChlingsaktion%20Gr%C3%B6%C3%9Fe (116 Zeichen) |
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 ohne Protokoll: example.com/menu | https://example.com/menu?utm_source=flyer&... (https ergänzt, kein www) |
Leerzeichen werden standardmäßig zu %20 (oder zu +, wenn Sie das unter Leerzeichen kodieren als wählen; die Längenangaben unten wurden mit + gemessen), jeder Umlaut und das ß zu sechs Zeichen (%C3%BC, %C3%B6, %C3%9F). Das ist gültig, macht den Link aber 22 Zeichen länger und hob den Code von Version 6 auf Version 7. Schreiben Sie Umlaute aus und nutzen Sie Unterstriche (fruehlingsaktion). Vorhandene Parameter wie lang=en bleiben erhalten, und das Fragment #hours bleibt am Ende, wo es hingehört: UTM-Parameter hinter einem # kommen nie bei GA4 an. Das Tool ergänzt https://, kann das www aber nicht erraten, also tippen Sie die volle Adresse. Einen langen Link prüfen Sie mit dem URL-Parser: Beim dritten Link listete er alle fünf Werte einzeln und hours als Fragment auf.
Längerer Link, dichterer Code
QR-Codes wachsen in „Versionen“: Version 1 hat 21×21 Module (die kleinen Quadrate), jede weitere Version 4 Module mehr pro Seite. Mehr Zeichen bedeuten eine höhere Version und kleinere Quadrate bei gleicher Druckgröße. Wir haben jeden Link in 512×512 px erzeugt und die Version mit dem Decoder zxing-cpp ausgelesen:
| Codierte URL | Zeichen | Version bei M | Version bei H |
|---|---|---|---|
https://www.example.com/menu (ohne 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) |
Speisekarten-Link mit fruehling_2026 | 94 | 6 (41×41) | 9 (53×53) |
Link mit Frühlingsaktion Größe | 116 | 7 (45×45) | 10 (57×57) |
Langer Pfad, lange Werte (poster_downtown_bus_stop, poster_a3_version_b) | 189 | 10 (57×57) | 14 (73×73) |
Bei einem 25-mm-Code ergibt Version 5 Module von etwa 0,68 mm, Version 10 nur noch etwa 0,44 mm. Das macht sich bei billigem Druck, glänzenden Oberflächen oder Scans aus der Entfernung bemerkbar. Alle Codes wurden von zxing-cpp und unserem QR-Code-Leser fehlerfrei decodiert, samt & und #hours: Die Länge ist kein Genauigkeits-, sondern ein Druckproblem. Halten Sie die Werte kurz (fr26 statt fruehling_2026), lassen Sie utm_term weg (das ist für bezahlte Keywords) und bleiben Sie bei Fehlerkorrektur M, außer Sie setzen ein Logo auf den Code.
Die GA4-Falle: utm_medium=qr wird als „Nicht zugeordnet“ angezeigt
GA4 sortiert jede Sitzung nach festen, nicht änderbaren Regeln in einen Standardkanal (Organische Suche, E-Mail, Verweis usw.). Wir haben unsere Tags mit den Regeln aus Googles Hilfeseite zur Standard-Channelgruppe und der dort verlinkten Quellenliste abgeglichen:
| Source / Medium / Campaign | Standardkanal | Warum |
|---|---|---|
| flyer / qr / fruehling_2026 | Nicht zugeordnet | Keine Regel kennt qr, und flyer ist keine bekannte Quelle |
| flyer / print oder offline | Nicht zugeordnet | Auch dafür gibt es keine Regel |
| instagram / qr oder whatsapp / qr | Organic Social | instagram und whatsapp stehen in Googles Liste sozialer Quellen |
| flyer / qr / onlineshop_herbst | Organic Shopping | Kampagnen, die shop (nach einem Buchstaben wie e) oder shopping enthalten, gelten als Shopping |
| flyer / mobile-qr | Mobile Push Notifications | Jedes Medium, das mobile enthält |
| flyer / qr-video | Organic Video | Jedes Medium, das video enthält |
| flyer / qr_cpm | Paid Other | Jedes Medium, das cp enthält |
Versuchen Sie also nicht, „Nicht zugeordnet“ mit cleveren Medium-Namen zu umgehen: Damit landen Ihre Scans nur im falschen Kanal. Beachten Sie auch das harmlose Wort Onlineshop im Kampagnennamen. Behalten Sie utm_medium=qr und geben Sie ihm einen eigenen Kanal:
- Gehen Sie in GA4 zu Verwaltung → Datenanzeige → Channelgruppen und klicken Sie auf Neue Channelgruppe erstellen. Sie beginnt als Kopie der Standardgruppe. Dafür brauchen Sie mindestens die Rolle Bearbeiter.
- Fügen Sie einen neuen Kanal hinzu, nennen Sie ihn QR-Codes und setzen Sie die Bedingung Medium stimmt genau mit qr überein.
- Ziehen Sie QR-Codes über Neu anordnen ganz nach oben, denn Traffic landet im ersten passenden Kanal. Sonst bliebe
instagram / qrin Organic Social. - Speichern Sie die Gruppe und wählen Sie sie als primäre Dimension unter Berichte → Akquisition → Zugriffsakquisition.
Laut Googles Dokumentation gelten eigene Channelgruppen auch rückwirkend für ältere Daten; eine Standard-Property kann 2 davon mit je bis zu 50 Kanälen haben. Kanalbedingungen unterscheiden nicht zwischen Groß- und Kleinschreibung, die Werte in den Berichten aber schon: Google weist darauf hin, dass utm_source=google und utm_source=Google verschiedene Werte sind. Flyer / QR und flyer / qr wären also zwei Zeilen. Schreiben Sie alles klein.
Weiterleitungen und Kurz-URLs: Kommen die UTM-Parameter an?
Zeigt der Code auf eine URL mit Weiterleitung, muss diese die Parameter mitnehmen. Meist klappt das: Unser Redirect-Checker zeigte, dass https://google.com/?utm_source=flyer... per 301 auf https://www.google.com/?utm_source=flyer... weiterleitet, alle Tags intakt. In einem curl-Test antwortete https://fb.com/?utm_source=flyer&utm_medium=qr aber mit 301 auf das nackte https://www.facebook.com/, ohne Tags. Eine solche Weiterleitung auf Ihrer Website macht aus jedem Scan Direct-Traffic. Prüfen Sie die letzte URL der Kette, nicht die erste; mehr dazu unter 301 oder 302: Weiterleitungen prüfen.
Häufige Fehler
- Ein Code für alles. Teilen sich Flyer und Plakat denselben Code, können Sie sie nicht vergleichen. Ändern Sie
utm_sourceoderutm_contentpro Standort; bei statischen Codes kostet das nichts. - UTM an internen Links Ihrer Website. QR-Codes sind Einstiegspunkte, also taggen Sie sie; Links zwischen Ihren eigenen Seiten nicht. Mehr in unserem Leitfaden zu UTM-Parametern in GA4.
- Zu wenig Kontrast. Ein Code in zu heller Markenfarbe lässt sich womöglich nicht scannen. Unser Generator warnt bei geringem Kontrast; dunkel auf hell ist am sichersten.
- Das Ziel verschleiern. Das Handy zeigt die URL vor dem Öffnen an, und Ihre eigene Domain wirkt vertrauenswürdiger als ein beliebiger Kurzlink. Siehe wie Sie prüfen, ob ein QR-Code sicher ist.
Vor dem Druck in GA4 testen
Öffnen Sie ein privates Browserfenster, das als neuer Nutzer zählt, und rufen Sie Ihren getaggten Link auf (oder scannen Sie den Code mit einem Handy, das Ihre Website noch nie besucht hat). Öffnen Sie in GA4 Berichte → Echtzeit und stellen Sie die Karte mit Nutzern nach Quelle der ersten Nutzerinteraktion auf Kampagne der ersten Nutzerinteraktion um. Laut Google zeigt der Echtzeitbericht Dimensionen der ersten Akquisition des Nutzers, deshalb ist ein frischer Browser wichtig. Erscheint die Kampagne nach wenigen Minuten, funktionieren Tag, Link und Weiterleitungen. Die vollständigen Zahlen folgen später in der Zugriffsakquisition unter Sitzung – Quelle/Medium und Sitzung – Kampagne.
Häufig gestellte Fragen
Kann Google Analytics QR-Code-Scans tracken?
Indirekt. GA4 sieht den Scan nicht, aber wenn der QR-Code einen Link mit UTM-Parametern enthält, wird jeder Scan, der Ihre Seite öffnet, als Sitzung mit dieser Quelle, diesem Medium und dieser Kampagne erfasst.
Welches utm_medium sollte ich für QR-Codes verwenden?
Verwenden Sie qr für alle Codes und tragen Sie den Standort in utm_source ein, etwa flyer oder plakat. GA4 hat keinen QR-Standardkanal, also legen Sie eine eigene Channelgruppe mit der Bedingung Medium stimmt genau mit qr überein an und setzen Sie sie an erste Stelle.
Warum erscheint mein QR-Code-Traffic in GA4 als Nicht zugeordnet?
Weil keine Standardregel das Medium qr (oder print, offline) kennt. Legen Sie eine eigene Channelgruppe namens QR-Codes an; sie gilt auch rückwirkend.
Brauche ich einen dynamischen QR-Code, um Scans zu tracken?
Nein. Ein statischer Code mit UTM-Parametern liefert die Besuche pro Scan in Ihr eigenes GA4, kostenlos und ohne Ablaufdatum. Ein dynamischer Code bietet nur die Möglichkeit, das Ziel nach dem Druck zu ändern, und das schafft auch eine Weiterleitung auf Ihrer eigenen Domain.
Machen UTM-Parameter den QR-Code schwerer scannbar?
Sie machen ihn dichter. In unseren Tests ergab eine URL mit 28 Zeichen einen Code der Version 3, die getaggte Variante mit 94 Zeichen Version 6, beide mit Fehlerkorrektur M. Kurze Werte ohne Umlaute halten den Code gut lesbar.
Sind der UTM-Generator und der QR-Code-Generator kostenlos?
Ja. Beide sind kostenlos, brauchen kein Konto und laufen in Ihrem Browser. Es gibt kein Wasserzeichen, und die Codes laufen nicht ab, weil sie statisch sind.
Bereit, Ihre Printkampagne zu messen? Taggen Sie Ihren Link mit dem UTM-Link-Generator, machen Sie daraus mit dem QR-Code-Generator einen Code und prüfen Sie ihn mit dem QR-Code-Leser, bevor er in den Druck geht. Für gedruckte WLAN-Codes lesen Sie wie Sie einen WLAN-QR-Code erstellen.