← All articles

31 March 2026 · Stirling-QR Team

How to Track QR Code Scans (Step by Step)

Learn how to track QR code scans with dynamic codes, UTM parameters, dashboards, and conversion metrics in a clear step-by-step workflow.

qr-codesbloginformationaltrack QR code scans

If you want to track QR code scans, you need more than a QR image. You need the right setup before launch, clean campaign structure, and a process for turning scan data into decisions.

Many teams generate a code, print it, then ask for reporting later. By that point, key tracking details are missing. This guide gives you a repeatable system you can use from day one.

What "tracking QR scans" actually means

When people say they want to track scans, they often mean one of three things:

1. Basic activity: total scans over time. 2. Campaign analysis: which channel, location, or creative drove scans. 3. Business outcomes: how many scans became leads, bookings, orders, or signups.

A strong setup should support all three.

Step 1: Use dynamic QR codes, not static

To track QR code scans reliably, start with dynamic QR codes. Dynamic codes route scans through a managed short link layer, which enables editability and analytics.

Static codes are usually poor for campaign reporting because they do not provide built-in scan event tracking.

If you are running marketing campaigns, dynamic should be your default choice.

Step 2: Define your measurement plan before generating any code

Create a mini measurement brief with these fields:

1. Campaign name. 2. Campaign goal (awareness, leads, sales, support, app installs). 3. Primary conversion metric. 4. Secondary metric. 5. Date range. 6. Owner.

Without this step, you collect data but cannot make clear decisions from it.

Step 3: Build destination URLs with UTM parameters

UTM parameters allow your analytics stack to identify source context after users land on your site.

Use a simple naming standard like this:

1. utm_source: where the scan happened (poster, menu, packaging, flyer). 2. utm_medium: qr. 3. utm_campaign: campaign name. 4. utm_content: variation or placement (front-door, table-3, box-insert-a).

Example:

https://yourdomain.com/spring-offer?utm_source=poster&utm_medium=qr&utm_campaign=spring_launch&utm_content=window_a

Keep naming lowercase and consistent.

Step 4: Generate one code per meaningful placement

A common mistake is using one QR code everywhere. That makes attribution weak.

Instead, create separate codes for locations or creatives you need to compare.

Good split examples:

1. Storefront poster vs checkout counter stand. 2. Box insert vs shipping label. 3. Table tent vs receipt footer. 4. Event booth A vs booth B.

If you need insight, give each placement its own code.

Step 5: Name and tag codes clearly in your dashboard

When your library grows, clear naming becomes critical.

Use a pattern like:

[Campaign] - [Channel] - [Location] - [Variant]

Example:

spring-launch - print - stockholm-storefront - v1

Also tag by business unit, campaign quarter, and region where relevant.

Step 6: Launch with a pre-flight QA checklist

Before materials go live, test everything.

1. Scan from iOS and Android. 2. Confirm destination loads quickly on mobile. 3. Confirm UTM parameters are present after redirect. 4. Confirm dashboard logs scan events. 5. Confirm analytics platform receives sessions with expected source/medium values. 6. Confirm conversion events fire correctly.

A 15-minute QA process can save weeks of bad data.

Step 7: Monitor core scan metrics weekly

Most teams track too many metrics. Start with this core set.

1. Total scans. 2. Unique scans or unique visitors. 3. Scans by date/time. 4. Scans by location (if platform supports it). 5. Device or OS mix. 6. Landing page conversion rate.

If scans are high but conversions are low, the issue is usually the landing experience, not the QR code itself.

Step 8: Tie scan data to business outcomes

Scan counts are useful but incomplete. Connect scans to outcomes.

For lead generation, track:

1. Form starts. 2. Form completions. 3. Qualified leads.

For ecommerce, track:

1. Product views. 2. Add-to-cart. 3. Purchases. 4. Revenue per scan.

For restaurants, track:

1. Menu views. 2. Click-to-call or reservation taps. 3. Order starts and completions.

Business outcomes turn activity data into decision data.

Step 9: Run controlled tests

To improve performance, test one variable at a time.

What to test:

1. Call to action text near the QR code. 2. Placement height and visibility. 3. Destination page headline. 4. Offer framing. 5. Incentive type.

Example test:

Version A CTA: "Scan for Menu" Version B CTA: "Scan for Today's Specials"

Use separate codes and compare both scan rate and conversion rate.

Step 10: Build a monthly optimization routine

Create a simple monthly review cadence.

1. Identify top three codes by conversion rate. 2. Identify bottom three codes by scan-to-conversion drop-off. 3. Keep top performers unchanged for stability. 4. Improve bottom performers with one focused test. 5. Archive inactive codes. 6. Document learnings in one shared report.

Consistency beats complexity.

Troubleshooting guide

Problem: Scans are high, conversions are low

Likely causes:

1. Landing page mismatch with CTA. 2. Slow page speed. 3. Weak mobile UX. 4. No clear next action.

Problem: Data looks inconsistent across tools

Likely causes:

1. Missing or inconsistent UTM parameters. 2. Redirect stripping query parameters. 3. Conversion events not firing. 4. Different attribution windows between platforms.

Problem: Team cannot compare channels

Likely causes:

1. Same QR code reused across too many placements. 2. No naming standard. 3. Missing campaign taxonomy.

Governance tips for growing teams

As your organization scales, tracking quality depends on process.

1. Create one campaign naming policy. 2. Create one UTM policy. 3. Use approval workflows for high-volume codes. 4. Keep ownership clear for every active code. 5. Review active codes quarterly.

Good governance keeps your data trusted.

Example 30-day rollout plan

Week 1:

1. Define measurement plan. 2. Create UTM taxonomy. 3. Generate dynamic QR codes by placement. 4. QA tracking.

Week 2:

1. Launch campaign. 2. Validate dashboards daily. 3. Fix any attribution issues quickly.

Week 3:

1. Review early patterns. 2. Select one underperforming code for test.

Week 4:

1. Compare results. 2. Ship winning variation. 3. Publish a one-page insight summary.

This makes tracking operational, not theoretical.

The Stirling-QR approach

At Stirling-QR, we push teams to track the full journey, not just the scan event. That means dynamic codes, consistent UTM structure, clear code ownership, and reporting that ties scans to outcomes like leads, bookings, or revenue.

The biggest wins usually come from operational consistency: one naming system, one QA checklist, and one monthly review rhythm. When those pieces are in place, scan analytics become actionable instead of noisy.

Related Stirling-QR resources

Use these internal pages when setting up your reporting workflow:

1. Analytics-focused plan options: /pricing 2. Main analytics workspace: /dashboard 3. QR code list and management view: /dashboard/qrcodes 4. Help documentation for setup and troubleshooting: /help

Final takeaway

To track QR code scans effectively, think beyond scan count. Use dynamic codes, structure your UTM naming, create separate codes for meaningful placements, and connect scans to real outcomes.

When tracking is planned before launch, QR codes become a measurable growth channel. When tracking is an afterthought, they become hard-to-interpret traffic.

Start simple, stay consistent, and improve one variable at a time. That is how scan data turns into performance gains.