Guide
Campaign tracking for print, packs, and QR codes
A poster that opens the homepage is Direct. A booth that opens the homepage is Direct. Packaging that opens the homepage is Direct. Offline is not exempt from campaign URLs. It is the channel that forgets them first.
Encode the tagged URL, not the brand domain
The QR payload must be the full campaign URL. If design “cleans up” the code to example.com, you printed Direct. Build the link first in the campaign URL builder, then generate the code in the UTM QR generator. Print a proof. Scan it on a phone that is not on office Wi‑Fi.
Name the object, not the scanner
Source is the piece or place: packaging, poster, booth, insert. Medium is the channel type. qr is clear and often Unassigned. print is also clear. Some teams use offline. Pick one, test it in the channel checker, and live with the group you get — or add a custom channel later. Do not invent a new medium per event.
Campaign is the initiative on the piece: summer-popup-2026. Content is the variant: window-a, tote, aisle-3. One campaign for the program. That rule is the same as email. See naming conventions.
Shorteners and redirects
A short link is fine if it 301/302s and keeps the query string. A short link that lands on a page with no tags is a pretty Direct visit. After print is locked you cannot patch the ink. QA with the checklist before the file goes to the printer.
Why this is still “always track traffic”
Print spend does not show in Ads Manager. If the URL has no tags, you will never prove the insert worked. That is the same hole described in why you should always track campaign traffic — only the click starts on paper.
A proof checklist before ink
- Build the URL in the builder. Do not type it in the design file by hand.
- Generate the QR from that exact string in the QR tool.
- Print a cheap proof. Scan on LTE, not office Wi‑Fi.
- Decode the address bar. If tags are gone, stop the print file.
- One test session in GA4 with a throwaway campaign name if the piece is expensive.
Error correction on the QR should stay at a medium level so a fold or a coffee ring does not destroy the query string. Do not shrink the code until the quiet zone disappears. A scannable untagged homepage is still Direct.