How to Track QR Code Traffic With UTM Parameters and Analytics

Build a reliable QR measurement workflow with consistent UTM parameters, pre-print testing, GA4 session reporting, and placement-level conversion tracking.

To track QR code traffic UTM analytics must be planned before the code goes to print. Create a tagged destination URL, encode that complete URL in the QR code, test the printed experience, and then report the resulting sessions and outcomes in Google Analytics 4.

The important distinction is that GA4 measures activity on your website, not the physical scan itself. A QR platform may report scans or redirects, while GA4 reports collected sessions, engagement, key events, and—when ecommerce tracking is implemented—revenue. Those figures answer different questions and should not be expected to match.

Understand the QR measurement chain

A measurable campaign has several connected parts: the printed QR code, the encoded URL, any redirect service, the final landing page, the GA4 tag, and the events that represent a useful result. A failure at any point can weaken attribution.

  1. A person scans the printed QR code.
  2. The phone opens the encoded URL, which may pass through a redirect.
  3. The final destination retains the UTM query parameters.
  4. The landing page loads and the GA4 tag collects the visit.
  5. The visitor takes an action such as submitting a form, requesting a quote, joining a list, or purchasing.
  6. GA4 records that action only if the relevant event implementation is working.

This is why “QR scans” and “QR sessions” are not interchangeable. Someone can scan twice, close the browser before the page loads, decline analytics consent, or use a browser that blocks collection. Redirect logs and GA4 may also count activity differently. Use scan data to evaluate code interaction and GA4 data to evaluate what happened on the site.

Set a UTM naming system before generating codes

GA4 supports manual campaign tagging and maps parameters such as utm_source, utm_medium, utm_campaign, utm_content, utm_term, and utm_id to manual traffic-source dimensions. Google recommends supplying the relevant parameters consistently because incomplete tagging can contribute to “(not set)” values. Its manual campaign tagging documentation explains the available fields and their corresponding dimensions.

There is no universal value that every organization must use for QR traffic. The useful system is the one your team documents and applies consistently. Avoid switching between values such as qr, qr-code, print_qr, and qrcode when they all mean the same thing.

Parameter Recommended role Example
utm_source Identifies the source category used by your reporting system qr
utm_medium Identifies the broader delivery medium offline
utm_campaign Groups all placements supporting one initiative spring_open_house_2026
utm_content Distinguishes physical placements, designs, or print batches downtown_window_a

With that taxonomy, a complete destination might be:

https://www.example.com/open-house/?utm_source=qr&utm_medium=offline&utm_campaign=spring_open_house_2026&utm_content=downtown_window_a

Keep the campaign value stable across placements that belong to the same initiative. Use utm_content for the counter sign, package insert, table tent, event poster, store window, or creative variation. That gives you placement-level reporting without creating dozens of campaign names.

Use names people can interpret later

Choose lowercase values, one separator convention, and durable descriptions. Names such as poster1 and final_version provide little context six months later. A value such as west_store_counter or welcome_box_insert_v2 is easier to connect to a physical asset.

Do not put personal information, email addresses, customer names, or other sensitive values in UTM parameters. Query strings can appear in analytics systems, browser histories, server logs, and copied links.

Create a deployment log

The URL alone will not tell you which physical object carried it. Maintain a campaign log that connects every QR file to its real-world deployment. A spreadsheet is sufficient if it has a clear owner and controlled naming.

  • QR file name and version
  • Complete tagged URL
  • Final landing-page URL
  • Campaign and content values
  • Physical asset type and design version
  • Placement or distribution location
  • Print quantity or batch identifier, when useful
  • Print date and launch date
  • Campaign owner
  • Redirect provider or QR platform, if one is used
  • Date and result of the final test

Freeze the logged URL before generating the production code. If a destination must change later, document the date and the change. Silent changes make comparisons unreliable, particularly when one QR image appears across several print batches.

Test the complete journey before printing

Do not limit quality assurance to scanning a code from a large desktop preview. Print it at its intended production size and test the same journey customers will encounter.

  1. Scan the production-size sample with multiple current phones and camera apps.
  2. Confirm that the browser reaches the expected HTTPS destination without security warnings.
  3. Inspect the final address and verify that all UTM parameters remain present after redirects.
  4. Check that the page is fast, readable, and easy to use on a phone.
  5. Complete the main action, such as submitting the form or placing a test order through an approved test workflow.
  6. Confirm the visit and relevant events in GA4 Realtime or DebugView.
  7. Repeat the test using the actual material, finish, lighting, angle, and placement distance where practical.

Google identifies missing campaign tags and redirects among the factors that can cause traffic to be attributed as Direct. Its guidance recommends checking that campaign parameters remain intact at the destination. GA4 also provides Realtime and DebugView for validating collected activity and troubleshooting event implementations.

The destination experience matters as much as the tag. A slow homepage with several competing actions can produce correctly attributed but ineffective traffic. Build a focused mobile destination that matches the promise printed beside the code; this guide to QR code landing-page best practices explains the page-level decisions.

Treat print size claims as starting points

QR readability depends on more than nominal dimensions. Data density, contrast, quiet space, material, finish, print quality, viewing distance, lighting, curvature, and camera capability can all affect scanning.

CustomStickers states that 0.5 inches is the smallest readable QR code it can print, but that is provider-specific guidance rather than a universal minimum. If you are deploying custom QR code stickers on packaging, windows, equipment, or event materials, test a production sample in its real setting before approving the full run.

Find QR traffic in GA4

For campaign reporting, open Reports, then Acquisition, then Traffic acquisition. This report is designed to show where sessions came from and can use dimensions including session source, session medium, session source/medium, and session campaign. It can also include sessions, engaged sessions, engagement rate, key events, event count, and total revenue.

Change the report’s primary dimension or add a comparison based on the values in your taxonomy. For the example above, you might filter for session source equal to qr, session medium equal to offline, and session campaign equal to spring_open_house_2026. Then use the manual ad content or corresponding session-scoped content dimension available in your GA4 reporting setup to compare physical placements.

Do not assume the traffic will appear in a particular default channel merely because it came from a QR code. Default channel treatment depends on GA4’s rules and the values supplied. Build operational reporting around the source, medium, campaign, and content values your team controls.

Use Traffic acquisition for campaign sessions

Traffic acquisition and User acquisition answer different questions. Traffic acquisition is session-scoped, so it is normally the better starting point for evaluating visits generated by a current QR campaign. User acquisition focuses on how a user was first acquired. A returning visitor who originally found you through search and later scans a QR code can therefore be represented differently in the two reports. Google advises that these scopes should not be treated as interchangeable.

Measure outcomes, not just arrivals

Sessions show that the printed asset generated measurable website visits, but they do not establish business value. Decide before launch which actions indicate success. Depending on the campaign, that might be a menu view, coupon reveal, file download, form submission, phone-link click, account creation, add-to-cart event, or purchase.

Mark or configure the relevant actions as key events according to your GA4 setup, then include those outcomes in the campaign report. For ecommerce, GA4 installation by itself is not enough: the appropriate ecommerce events and parameters must be sent to Analytics before purchase and revenue reporting can work. Test this implementation before ordering print, not after the first customers arrive.

Placement Sessions Engagement rate Primary outcomes Outcome rate Revenue if configured
Counter sign Report weekly Report weekly Use the chosen key event Outcomes divided by sessions Use collected ecommerce revenue
Package insert Report weekly Report weekly Use the chosen key event Outcomes divided by sessions Use collected ecommerce revenue
Store window Report weekly Report weekly Use the chosen key event Outcomes divided by sessions Use collected ecommerce revenue

Add practical context beside the numbers: days active, approximate distribution quantity, placement changes, stockouts, weather exposure, or a broken display. A package insert sent 5,000 times should not be judged exactly like a window sign seen by an unknown number of passersby.

Troubleshoot missing or confusing QR attribution

Traffic appears as Direct

Scan the deployed code and inspect the final browser address. Confirm that the code contains the tagged URL and that every redirect preserves its query string. Also check whether staff distributed an untagged short link or replaced the destination after the code was generated. Consent choices, blockers, and collection failures can still prevent some sessions from being attributed or recorded.

Campaign fields show “(not set)”

Check for omitted parameters, malformed query strings, inconsistent capitalization, or a redirect that strips selected values. Verify the exact destination rather than relying on the QR generator’s saved label. Google recommends setting all relevant UTM parameters when using manual tagging.

The QR platform reports more activity than GA4

This is not automatically an error. The platform may count scans or redirect requests, while GA4 counts collected website sessions under its own processing and identity rules. Compare trends and placement performance, but label each metric precisely.

Sessions appear, but conversions or revenue do not

Complete the intended action while using DebugView or another approved validation method. Confirm that the event fires, carries the necessary parameters, and is configured appropriately for reporting. For a store, validate the full ecommerce sequence rather than assuming the base GA4 tag collects purchase details automatically.

Use this launch and reporting routine

Before launch, approve the UTM taxonomy, log the final destination, generate the QR code, print a production-size sample, test parameter retention, verify the mobile page, and validate GA4 sessions and outcome events. Only then should the design move to a full print run.

Once the campaign is active, review each placement weekly using the same date range and session-scoped dimensions. Record sessions, engagement, key events, outcome rate, and revenue where properly configured. Pair those metrics with distribution or exposure context and any physical changes made during the week.

The practical goal is not perfect equality between scan counts and analytics sessions. It is a stable chain from a specific printed asset to a documented tagged URL, a usable landing page, and a measurable business action. When that chain is logged and tested before printing, QR reporting becomes repeatable rather than a post-campaign guessing exercise.

References

  1. Traffic-source dimensions, manual tagging, and auto-tagging – Analytics Help
  2. [GA4] Understand (direct) / (none) traffic – Analytics Help
  3. [GA4] Report on key events – Analytics Help
  4. Custom QR code Stickers | Promotional Stickers – CustomStickers.com
  5. FAQ – CustomStickers.com
  6. [GA4] Traffic acquisition report – Computer – Analytics Help
  7. User acquisition report vs. Traffic acquisition report – Analytics Help
  8. [GA4] Ecommerce purchases report – Analytics Help