How to Track QR Codes in Google Analytics 4 (GA4): Complete UTM Setup Guide
Looking to build this now? Try our Dynamic QR Codes with UTM Tracking
Preserve Google Analytics 4 UTM parameters through ultra-fast sub-50ms cloud redirects.
1. Standardized UTM Parameters for Offline QR Code Campaigns
Google Analytics 4 relies on UTM query strings to categorize inbound traffic. When deploying physical QR codes on print collateral, use this standardized UTM taxonomy:
| UTM Parameter | Function in GA4 | Recommended QR Convention | Real-World Print Example |
|---|---|---|---|
| utm_source | Identifies specific physical placement | Specific print touchpoint or location | direct_mail, table_tent, packaging_box, billboard_hwy101 |
| utm_medium | High-level marketing channel | Standardize organization-wide to qr_code | qr_code (always lowercase) |
| utm_campaign | Marketing promotion or initiative | Campaign or seasonal offer name | spring_sale_2026, loyalty_onboarding, q3_catalog |
| utm_content | Creative variation or placement format | Differentiates material sizes or variants | blue_flyer_a5, counter_stand_pos1, menu_card_v2 |
| utm_term | Branch location or cohort tag | Store branch code or customer segment | nyc_soho_store, chicago_loop, vip_tier1 |
2. How to Build Your Trackable QR Destination URL
Construct your destination link with your website address and UTM parameters before creating your QR code in TryQRMint:
- Illustrative Tracking Link: `https://example.com/promo?utm_source=direct_mail&utm_medium=qr_code&utm_campaign=spring_sale`
- Base Webpage URL (`https://example.com/promo`): The landing page on your website where scanners will arrive.
- Placement Parameter (`utm_source=direct_mail`): Tells GA4 exactly which physical collateral generated the visit.
- Medium Parameter (`utm_medium=qr_code`): Enables your analytics team to filter and aggregate all QR campaigns into a unified channel.
- Campaign Identifier (`utm_campaign=spring_sale`): Attributes revenue, leads, and engagement time to your seasonal initiative.
- Why Dynamic QR Codes Are Critical for UTMs: A URL containing multiple UTM tags easily exceeds 120 characters. In a static QR code, this creates a dense, complex dot matrix that is difficult for cameras to focus on from a distance. A Dynamic QR Code encodes a short redirect link (keeping the matrix clean and fast-scanning) while forwarding the complete UTM query string intact to your destination site (compare options in our Static vs Dynamic QR Code guide).
Create Your Custom QR Code in Seconds
Generate high-resolution dynamic & static QR codes with your custom brand colors, center logos, and sub-50ms global edge redirection.
3. Reconciling Differences: QR Redirect Scans vs. GA4 Sessions
A frequent source of confusion for marketing teams is discovering that their TryQRMint QR scan count is higher than the recorded session count in Google Analytics 4. These measure three distinct layers of user interaction:
- Layer 1 — Physical QR Scan / Redirect: Recorded on TryQRMint's cloud servers the instant a phone camera detects the code and requests the short redirect URL. This represents raw physical engagement.
- Layer 2 — Web Server Pageview: Recorded when the user's mobile browser completes the HTTP redirect and requests your website's HTML document.
- Layer 3 — GA4 Session: Recorded client-side only after your webpage loads, parses Google Tag Manager or `gtag.js`, and executes analytics tracking.
- Why Scan and Session Counts Differ: (1) Bounce before load: users scanning on slow cellular networks may close their browser before your site loads; (2) Ad-blockers & privacy browsers: privacy-focused browsers like Brave or iOS content blockers may block Google Analytics scripts while still loading your page; (3) Cookie consent banners: in EU/GDPR jurisdictions, users who decline analytics cookies are not counted in GA4; (4) Link re-sharing: users who bookmark the page or share the link via WhatsApp generate additional GA4 sessions without scanning the physical code.
4. Step-by-Step: Viewing and Analyzing QR Campaign Traffic in GA4
Follow these verified steps inside your Google Analytics 4 property to review traffic and conversions generated by physical QR codes:
- Step 1: Sign in to your Google Analytics 4 account and navigate to your active web property.
- Step 2: In the left navigation menu, click Reports > Acquisition > Traffic acquisition.
- Step 3: In the report data table, click the primary dimension dropdown and select 'Session source / medium' (or 'Session campaign').
- Step 4: Type `qr_code` into the search bar directly above the table to filter for all QR-driven traffic.
- Step 5: Review performance metrics: Users, Sessions, Engaged sessions, Average engagement time per session, Key events (conversions), and Total revenue.
- Step 6: Add a secondary dimension (such as 'Device category' or 'Landing page') to evaluate mobile UX performance across scanner types.
5. Technical Troubleshooting & Common Data Loss Pitfalls
Avoid these technical configuration traps that strip UTM tracking parameters or distort analytics data:
- Trailing Slash Redirect Stripping: Many web servers (WordPress, Shopify, Next.js) enforce URL normalization by 301-redirecting `example.com/promo` to `example.com/promo/`. Ensure your server preserves query strings during internal redirects; otherwise, all UTM parameters will be discarded upon landing.
- iOS 17 Link Tracking Protection: Apple's Link Tracking Protection removes user-identifying tracking parameters in Safari Private Browsing and Mail, but standard marketing campaign UTMs (`utm_source`, `utm_medium`, `utm_campaign`) are fully preserved.
- 24 to 48-Hour GA4 Processing Delay: While TryQRMint reports QR scans in real time on your live dashboard, standard GA4 Acquisition reports experience a 24 to 48-hour data processing window. For same-day validation, use GA4's Realtime report view.
- Double-Redirect Chains: Avoid redirecting your dynamic QR code to a shortener or intermediate tracking service (e.g., bit.ly) before reaching your site, as multiple hops introduce mobile latency and risk parameter stripping.
Final Takeaway
Tracking QR code campaigns in Google Analytics 4 bridges the gap between physical marketing collateral and digital revenue attribution. By standardizing on `utm_medium=qr_code`, utilizing dynamic QR codes to maintain clean dot pitch, and inspecting traffic in GA4 acquisition reports, marketers can measure offline campaign engagement with confidence.
Related Guides & Tutorials
QR Codes on Vehicles & Car Wraps: Sizing, Siting & ROI Guide (2026)
Learn how contractors, trades, and fleet managers use QR codes on vehicle wraps and magnets. Calculate scan distances, contrast rules, and track mobile leads.
How to Create a QR Code for Instagram: Grow Followers from Foot Traffic (2026)
Learn how to create branded, trackable Instagram QR codes for storefronts, restaurant tables, packaging, and business cards to grow real-world followers.
QR Code for Etsy Sellers: Complete Unboxing & Repeat Sales Guide (2026)
Learn how Etsy artisans and handmade businesses use branded QR code packaging inserts to gain Instagram followers, boost repeat sales, and collect 5-star reviews.
Frequently Asked Questions
Find immediate answers regarding dynamic QR codes, analytics, formats, and commercial usage.
Add standard UTM parameters (`utm_source=direct_mail`, `utm_medium=qr_code`, `utm_campaign=spring_sale`) to your destination link, create a dynamic QR code in TryQRMint to keep the matrix clean, and review the resulting traffic under Reports > Acquisition > Traffic acquisition in GA4.
TryQRMint captures server-side redirect scans the instant a camera reads the code. GA4 sessions require the destination webpage to finish loading and execute client-side JavaScript. Discrepancies happen when users bounce during loading, use ad/privacy blockers, decline cookie consent banners, or revisit bookmarked links later.
Using a consistent medium like `utm_medium=qr_code` prevents data fragmentation and allows you to group all physical print scans across flyers, packaging, and table tents into a single reporting channel in GA4.
No. Any user with Viewer access can see QR traffic in GA4 by navigating to Reports > Acquisition > Traffic acquisition and selecting 'Session source / medium'. Administrator or Editor permissions are only required if you wish to create custom Channel Groups.
No. Attribution works through standard URL query parameters that your website's existing Google Analytics tag reads automatically. TryQRMint forwards the complete UTM parameter string during dynamic redirection.
A standard illustrative URL is: `https://example.com/promo?utm_source=direct_mail&utm_medium=qr_code&utm_campaign=spring_sale`. Each parameter identifies the placement, channel, and initiative for clean reporting in GA4.
Ready to Supercharge Your QR Campaigns?
Join 10,000+ businesses and creators leveraging TryQRMint for dynamic redirects, custom brand designs, and real-time tracking.