qr code tracking
How I track a QR code after printing
A practical QR code tracking setup for local campaigns: dynamic QR redirects, scan counts, campaign URLs, clean naming, and careful reading of the data.
Updated 2026-06-30
QR code tracking is usually redirect tracking. The printed QR code opens a short campaign URL first, the system records the scan, then the customer is sent to the real destination.
That gives me enough data for local print work without making the QR code complicated: scan count, time, campaign, and destination. I still treat the numbers as directional. A scan is not a customer.
If someone asks whether they can track a QR code, the answer depends on how the code was made. A static QR code that already points straight to the final URL cannot report scans by itself. A dynamic QR code can, because the scan passes through a trackable redirect before the customer reaches the destination.
Use a dynamic QR campaign
The redirect is where tracking happens
A static QR code points straight to the final URL. There is no service in the middle to count scans or change the destination later. That can be fine for simple print jobs, but it is not enough when I need reporting.
A dynamic QR code points to a managed short URL. When someone scans, that short URL can log the request and redirect to the destination. It can also be edited later, which matters when the printed code is on signs, menus, business cards, or flyers.
For Local QR Code, that means the printed code points to `/q/...`, not directly to the menu, review link, PDF, or landing page. The redirect records the scan count, then sends the visitor on. The printed code keeps working if I change the destination later.
I keep the QR payload short for the same reason I do with PDF codes. DENSO WAVE's QR Code documentation explains that larger amounts of encoded data require larger QR symbols. The short redirect URL keeps the printed symbol simpler.
What QR code tracking can show
Measure the print asset, not the whole business
- Total scans for each printed QR campaign.
- Which placement gets scanned more often: counter card, table tent, receipt, sticker, label, or flyer.
- Whether an old printed code is still being used.
- Whether a destination change happened without breaking the printed code.
- Whether a scan reached a destination that can be measured again in analytics.
That is enough for practical local marketing decisions. If the table tent gets scans and the window poster does not, I know where to print next. If a campaign has zero scans after staff tested it, I check whether the sign is visible, the call to action is clear, and the destination still loads quickly on a phone.
Name campaigns before printing
Bad names ruin good data
I name the campaign before exporting the QR code. The name should tell me the business, channel, location, and print asset without opening the file.
- dentist-main-street-front-desk-card
- cafe-june-menu-table-tent
- realtor-123-oak-flyer
- gym-winter-offer-window-poster
The names are plain on purpose because they make reporting easier. If a counter card and a window poster use the same destination, I still create separate campaigns. Otherwise I cannot tell which print asset did the work.
Use campaign URLs when useful
Analytics needs a clean destination too
If the destination site uses Google Analytics, I often add campaign parameters to the final URL. Google's Analytics help says campaign URL parameters can identify campaigns that refer traffic, and that those values can appear in traffic acquisition reporting.
For print, I keep the parameters plain: source as the business or location, medium as qr, and campaign as the print asset. I avoid stuffing every detail into the URL because the dynamic QR campaign already has its own name and scan history.
I split the reporting work. The QR platform tells me scans. The destination analytics tells me what happened after the page opened, if the site is set up to measure it.
I do not put a giant tagged URL directly into the printed QR code just to get tracking. Long URLs make denser symbols. The cleaner setup is a short dynamic QR link for the printed code, with campaign parameters added to the destination behind the redirect when the destination analytics can use them.
Read scan counts carefully
A scan is not a sale
QR tracking can answer practical print questions. The table tent may get scanned more than the counter card. A front-desk flyer may beat the mailer. An old poster may still get traffic after the new one goes up.
It cannot prove everything. One person can scan twice. Staff can test the code. A customer can scan and leave. A browser or network can fail after the scan. I use scan data to compare campaigns and spot problems, not to pretend every scan is revenue.
- Ignore the first few test scans before judging a campaign.
- Compare similar print assets over similar dates.
- Check destination analytics before calling a campaign successful.
- Keep old campaigns active if printed material is still in the world.
What I check after launch
Tracking should not break the customer path
After printing, I scan the physical code and watch the full path. The short URL should load quickly, redirect cleanly, and land on the right mobile page. If campaign parameters are used, I check that the destination URL still opens normally.
My first check is simple: open the printed QR code on mobile, confirm the destination, refresh the campaign dashboard, and make sure the scan count moved. Then I wait before judging performance. Test scans, staff scans, and setup scans can distort the first day.
I also keep the original final URL in the campaign notes. If a tracking link ever needs to be rebuilt, I do not want to recover the destination from a printed proof or a screenshot.
For most local QR campaigns, I track the scan, keep the destination editable, use campaign URLs when the destination analytics can read them, and avoid overstating what a scan count means.