How to Track QR Code Scans: The Complete Guide
Learn how to track QR code scans from printed flyers, packaging, and signs. Compare server-side redirect telemetry with GA4 UTM campaign attribution.
There are two primary ways to track QR code scans: server-side dynamic redirect telemetry (which measures total scans, device types, and geographic locations) and client-side web analytics using UTM parameters (which tracks on-site conversions, session length, and sales in Google Analytics 4).
For maximum marketing visibility, the best practice is to combine both methods: tag your destination link with UTM parameters, then shorten and render it as a Dynamic QR code. This gives you high-level scan counts even if users block web analytics cookies, while feeding complete attribution data into GA4.
Deploy trackable dynamic QR codes with real-time scan analytics, bot filtering, and 1-click UTM builder integration.
Method 1: Server-Side Dynamic QR Analytics
When a user scans a dynamic QR code, their mobile browser requests the short redirect URL (e.g. modifyle.com/q/flyer-promo). Before forwarding the user to the destination, the redirect router inspects the incoming HTTP request headers to record anonymous telemetry:
- Scan Volume & Timestamps: Exact dates and hours when physical materials were engaged with, revealing peak scanning times.
- Device & Operating System: Detects iPhone (iOS), Android, tablet, or desktop scanners via user-agent string parsing.
- Country of Origin: Identifies the geographical region using edge CDN IP-country headers.
- Referring Context: Detects whether the scan came from a standalone camera app, WeChat/WhatsApp in-app browser, or social scanner.
Modifyle automatically filters out automated crawler bots and social media link preview scrapers (like Slackbot or Twitterbot) using header pattern matching, ensuring your dashboard metrics reflect genuine human engagement.
Method 2: Google Analytics 4 (GA4) UTM Campaign Tagging
If your goal is tracking what happens AFTER the scan—such as newsletter signups, booking inquiries, or e-commerce purchases—you must tag the destination URL with standardized UTM parameters before generating the QR code.
Without UTM parameters, mobile browsers treat physical scans as untracked 'Direct' traffic. By appending tags with our free UTM Builder, GA4 categorizes the visit cleanly:
- utm_source=spring_mailer (Identifies the physical piece)
- utm_medium=qr (Distinguishes the scan from paid search or email)
- utm_campaign=2026_grand_opening (Connects the scan to your overall campaign)
- utm_content=table_tent_a (Enables A/B testing between different print placements)
The Optimal 3-Step Setup for Offline Campaign Tracking
Follow this sequence to ensure zero lost attribution across physical print runs:
1. Build the tagged destination URL
Open the Modifyle UTM Builder (/tools/utm-builder), paste your landing page URL, and define source, medium, and campaign parameters.
2. Bridge to the Dynamic QR Generator
Click the 1-click 'Generate Dynamic QR' button to transfer the complete tagged URL into our Dynamic QR Studio (/dynamic-qr-code-generator).
3. Export print-ready vector SVG
Download your QR code in scalable vector SVG format, verify high contrast (dark foreground on solid white background), and send it to your printer.
Frequently Asked Questions
Can I track scans on a static QR code?
Do dynamic QR scans violate GDPR or user privacy?
Why does my printed QR code look different than the preview?
Related Technical Guides
View all guidesDiscover whether dynamic QR tracking ROI outweighs reprint and software costs.
Learn how dynamic redirects allow post-print updates.
Understand QR longevity and redirect hosting terms.