Tracking QR code performance is essential for proving ROI and optimizing campaigns. Without tracking, you know a QR code exists but not whether it works. This guide covers the complete setup process for QR code tracking using dynamic QR platforms and Google Analytics 4. For broader analytics strategy, see our QR code analytics guide. For marketing campaign strategy, see QR code marketing.
The Three-Layer QR Tracking System
Complete QR tracking requires three complementary layers working together.
Layer 1: Dynamic QR Platform Analytics. Your QR generator (QR Tiger, Beaconstac) logs every scan at the redirect server. Data includes: total scans, unique scans, scan location (city/country), device type, browser, and time. This layer captures the scan event itself — who scanned, when, and from where — regardless of what happens on your website afterward.
Layer 2: UTM Parameters in Destination URL. Appending UTM query parameters to the URL encoded in your QR code causes Google Analytics to tag the resulting web session with your defined source, medium, and campaign values. Format example: https://yoursite.com/page?utm_source=lobby-poster&utm_medium=qr-code&utm_campaign=spring-2026&utm_content=version-a. Every visitor who scans this QR code appears in GA4 under Acquisition with these attribution tags, connecting the physical scan to digital behavior.
Layer 3: GA4 Conversion Events. Define what actions count as conversions for QR-originated traffic: purchases, form submissions, video plays, page views of a specific depth. In GA4 > Configure > Events, mark relevant events as conversions. In Reports > Acquisition, filter by Session medium = qr-code to see conversion rates, revenue, and goal completions for QR-originated sessions specifically. This layer answers the question: did QR visitors actually do what you wanted?
Step-by-Step UTM Parameter Setup
- Plan your UTM convention. Decide on naming conventions before creating any codes. All values should be lowercase and hyphenated. Define: utm_source (placement name: lobby-flyer, product-box), utm_medium (always: qr-code), utm_campaign (campaign identifier), utm_content (variant or creative version).
- Build UTM URLs using Google's Campaign URL Builder. Visit Google Campaign URL Builder. Enter your destination URL and UTM values. Copy the generated URL exactly.
- Encode the UTM URL into your dynamic QR code. Paste the complete UTM-tagged URL as the destination when creating your QR code. The QR code now encodes a redirect to this UTM URL via the dynamic platform's redirect server.
- Test the complete tracking chain. Scan the QR code with a test device. Check: (a) the dynamic platform recorded the scan, (b) GA4 shows a session with the correct UTM attribution (check Real-time > Traffic Sources), and (c) any conversion events fire on the destination page.
- Create a GA4 custom report for QR performance. In GA4 > Explore, create an Exploration with dimension: Session source/medium + Session campaign + Session content. Include metrics: Sessions, Conversions, Revenue. Save this as your standard QR performance report template.
Setting Up Dynamic QR Platform Analytics
After creating your dynamic QR code, navigate to the platform's analytics dashboard. Most platforms show a real-time scan counter, scan history graph, geographic heat map, and device breakdown for each code. Key configurations: enable email scan reports (daily or weekly summaries sent to your inbox), set up scan threshold alerts (notify when a code reaches 100, 500, 1000 scans), and configure data export schedule (automatic CSV export weekly or monthly for record-keeping). For campaigns with multiple codes, use the platform's campaign grouping feature to see aggregate performance across all codes in a single campaign view.
| Tracking Layer | What It Measures | Tool Required | Setup Effort |
|---|---|---|---|
| Platform Analytics | Scans, location, device, time | Dynamic QR generator | Auto (no config) |
| UTM Parameters | Web traffic attribution in GA4 | Google Campaign URL Builder | 5 minutes per code |
| Conversion Tracking | Post-scan conversions and revenue | Google Analytics 4 | 30 minutes initial setup |
Google Analytics 4 Configuration for QR Codes
In GA4, QR code traffic appears automatically once UTM parameters are configured correctly. Navigate to Reports > Acquisition > Traffic Acquisition. Change the primary dimension to "Session source/medium." Look for entries matching your utm_medium=qr-code parameter. Add a comparison filter for Session medium = qr-code to see QR-specific performance isolated from all other traffic. Create a custom channel grouping in GA4 Admin that groups sessions with utm_medium=qr-code into a "QR Code" channel for cleaner reporting. GA4's Conversion Events should be configured for your key actions. Mark as conversions: purchase (for e-commerce), generate_lead (for B2B), form_submit (for lead capture), and any other actions you want attributed to QR traffic.
Advanced QR Tracking Techniques
A/B Testing Landing Pages via QR
Create two identical QR codes pointing to different landing page versions (Version A and Version B). Deploy them in split-equal placements (alternating table cards, alternating flyer batches). Compare conversion rates after sufficient volume (minimum 200 scans per variant). The landing page version with the higher conversion rate wins for full deployment. Some advanced QR platforms (Beaconstac, QR Tiger Advanced) support built-in URL rotation so a single QR code alternates between two destinations, enabling A/B testing from a single physical code.
Retargeting Pixel Integration
Advanced platforms support embedding Facebook Pixel and Google Ads remarketing tags that fire when QR code destination pages load. This creates remarketing audiences from physical-world interactions. Set up: in your QR platform's code settings, find the "Retargeting Pixels" or "Tracking Pixels" section. Add your Facebook Pixel ID or Google Ads conversion tag. The platform inserts the pixel code into the redirect response. Every QR scanner is added to your remarketing audience automatically, enabling follow-up digital advertising to people who physically engaged with your print materials.
Frequently Asked Questions About QR Code Tracking
How do I track a QR code in Google Analytics?
Add UTM parameters to the destination URL before encoding it in your QR code. Example: ?utm_source=flyer&utm_medium=qr-code&utm_campaign=spring2026. In GA4, navigate to Reports > Acquisition > Traffic Acquisition and filter by Session medium = qr-code to see all traffic and conversions attributed to your QR codes.
Can I track a static QR code?
Partially. Static codes with UTM parameters in the destination URL track web traffic in GA4 but cannot provide platform-level scan data (location, device, count at the scan event level). For complete tracking, dynamic QR codes are required. Consider whether the additional analytics capability justifies the dynamic QR subscription cost for your use case.
What UTM parameters should I use for QR codes?
Standard QR UTM convention: utm_source = the physical placement (lobby-flyer, product-packaging, trade-show-booth), utm_medium = qr-code (always), utm_campaign = campaign name (spring-promo-2026), utm_content = creative variant if running tests (version-a, red-cta). Keep all values lowercase and hyphenated for consistent GA4 reporting.
Why is there a gap between QR platform scans and GA4 sessions?
A 5-15% gap is normal due to bot filtering, caching, and network timing. Gaps exceeding 20% indicate issues: UTM parameters not encoding correctly in the QR code, destination URL redirects stripping query parameters, or JavaScript errors preventing GA4 from firing. Check that the full UTM URL loads correctly when the QR code is scanned on a test device.
How do I track QR code conversions?
In GA4, mark relevant events as conversions (Admin > Events > Mark as conversion). Filter the Conversions report by Session medium = qr-code to see conversion counts and revenue from QR-originated sessions. For e-commerce, the purchase event includes revenue data. For lead generation, form_submit events provide conversion counts for ROI calculation.
How do I see which QR code placement performs best?
Use distinct utm_source values for each placement. In GA4, view Traffic Acquisition filtered by qr-code medium and grouped by Session source. Each source represents a different physical placement. Compare conversion rates and revenue per session across placements to identify your highest-performing QR code locations for budget reallocation.
What is the best dynamic QR tracker?
QR Tiger offers the best combination of platform analytics and UTM support at /month. Beaconstac provides the most advanced tracking including GPS coordinates, real-time dashboards, and direct Google Analytics integration at /month. Both support retargeting pixels on advanced plans for remarketing audience building from physical QR interactions.
How do I track QR code performance by location?
Platform analytics provide scan location at city and country level automatically for dynamic codes. For GA4 location tracking, the standard Geo report shows user locations of QR-originated sessions filtered by utm_medium=qr-code. Enterprise platforms like Beaconstac provide GPS coordinates per scan for granular geographic heat mapping.
Key Takeaways
- Three-layer tracking (platform + UTM + GA4 conversions) provides complete QR code attribution
- UTM parameters must be appended to the destination URL before encoding in the QR code
- Use lowercase, hyphenated UTM values; document conventions before creating any codes
- A 5-15% gap between platform scans and GA4 sessions is normal; gaps over 20% require investigation
- Create a saved GA4 Exploration report filtered to qr-code medium for consistent campaign reporting
- A/B test landing pages by comparing two QR codes with identical UTM except utm_content variation
- Retargeting pixels on QR destinations build remarketing audiences from physical-world interactions