qr code generator tracking
How I use a QR code generator with tracking
A practical QR code tracking setup for printed campaigns: use a short dynamic link, keep UTM names consistent, test the printed proof, and compare scan data.
Updated 2026-07-05
A QR code generator with tracking should do two jobs. It should make a code that scans cleanly, and it should show which printed placement sent people to the destination.
For most print jobs, I skip the long analytics URL inside the QR code. I make a short dynamic QR code, then keep the campaign parameters and final destination behind it.
Start with the print question
Tracking only helps when the placements are separate
Before generating the code, I decide what I need to compare. A cafe might compare table tents against receipt footers. Clinics may compare front-desk cards against appointment reminders. Shops might compare window stickers against product labels.
Each placement gets its own QR campaign. If I reuse one code everywhere, the scan count is still useful, but it cannot tell me which print asset worked.
- Counter card.
- Receipt or invoice.
- Window sign.
- Flyer, label, sticker, or mailer.
Use a short tracked link
Keep the printed QR code simple
QR codes get denser as the encoded data gets longer. DENSO WAVE documents QR Code versions from Version 1 at 21 by 21 modules to Version 40 at 177 by 177 modules, and explains that more data needs more modules.
That is why I prefer a short dynamic URL in the QR code. The destination can still include UTM parameters or other campaign fields, but the printed symbol stays cleaner.
Google Analytics documents campaign URL parameters such as utm_source, utm_medium, and utm_campaign. I keep those names lowercase and consistent, because different capitalization can split reporting into separate rows.
Name campaigns like someone has to read them later
Future me is the first reporting user
Plain campaign names work better later: july_menu_table_tent, review_receipt_footer, spring_flyer_front_desk. The name should say where the code was printed and which page it opens.
For Local QR Code campaigns, I also save the destination, print asset, placement, and launch date. When a scan spike appears later, I want to know whether it came from a new placement or from an old file someone reused.
Test the printed proof
The scan still has to work
A tracking dashboard is useless if customers cannot scan the code. DENSO WAVE says a QR code needs a clear quiet zone around the symbol. I keep that margin visible and scan the proof at the size and distance customers will use.
I test the final material too. A glossy sticker, a thermal receipt, and a laminated table tent can behave differently from the same QR image on a monitor.
Read the data carefully
Scans and customers are different numbers
A scan tells me the printed code got attention and the phone opened the URL. Purchase, booking, review, or reading data still has to come from the destination page analytics or the business system behind it.
Scan tracking is most useful for print decisions. If the table tent gets scans and the window poster does not, I know where the next print run should go. If a code gets no scans after staff tested it, I check visibility, copy, placement, and destination speed.
For a new print campaign, I keep one tracked QR code per placement, a short printable URL, consistent campaign names, and a real proof scan before anything goes to customers.