QR Code Marketing: How to Track Campaigns with UTM Parameters

QR codes have had a remarkable comeback. Once dismissed as a gimmick, they are now on restaurant menus, product packaging, event tickets, and business cards worldwide. But most businesses make a critical mistake: they create QR codes that link to plain URLs, making it impossible to measure how many scans came from which campaign, which location, or which print material.

The fix is simple and free: UTM parameters. By appending tracking tags to your QR code URLs, you can see exactly how your offline materials drive online engagement—all within Google Analytics or any other analytics platform you already use.

What Are UTM Parameters?

UTM (Urchin Tracking Module) parameters are tags appended to a URL that tell your analytics tool where traffic came from. There are five standard UTM parameters:

ParameterRequired?PurposeExample
utm_sourceYesIdentifies the traffic sourceflyer, poster, menu
utm_mediumYesIdentifies the marketing mediumqr_code, print, offline
utm_campaignYesIdentifies the specific campaignspring_sale_2026
utm_termNoIdentifies paid search keywordsRarely used for QR
utm_contentNoDifferentiates similar contentheader_qr, footer_qr

Building a Trackable QR Code URL

Here is the process, step by step:

Step 1: Start with your landing page URL:

Base URL
https://yourdomain.com/spring-sale

Step 2: Append UTM parameters:

URL with UTM Parameters
https://yourdomain.com/spring-sale?utm_source=store_flyer&utm_medium=qr_code&utm_campaign=spring_sale_2026&utm_content=front_page

Step 3: Generate a QR code from this URL using our QR Code Generator.

Step 4: Test the QR code by scanning it with your phone. Verify it opens the correct page and that the UTM parameters appear in your analytics real-time reports.

The long URL with parameters might look unwieldy, but it does not matter—it is encoded in the QR code and the end user never sees or types it.

Naming Conventions That Scale

Consistent naming is the difference between actionable analytics and a mess of data. Establish these conventions before your first campaign:

  • Use lowercase only. UTM parameters are case-sensitive. "QR_Code" and "qr_code" appear as separate sources in analytics.
  • Use underscores, not spaces. Spaces get encoded as %20, making reports harder to read.
  • Be specific but consistent. "store_flyer_istanbul_kadikoy" is better than "flyer1" when you have multiple locations.
  • Include dates in campaign names. "spring_sale_2026_mar" is easier to filter than "spring_sale" when the same campaign runs yearly.
  • Document your conventions. Create a simple spreadsheet tracking every UTM combination you use. This prevents duplicates and ensures consistency across team members.

Real-World Campaign Examples

Restaurant Table Tent

?utm_source=table_tent&utm_medium=qr_code&utm_campaign=loyalty_program_2026&utm_content=dessert_offer

Product Packaging

?utm_source=product_box&utm_medium=qr_code&utm_campaign=warranty_registration&utm_content=model_x200

Conference Booth

?utm_source=techconf_2026&utm_medium=qr_code&utm_campaign=lead_gen&utm_content=booth_banner

Business Card

?utm_source=business_card&utm_medium=qr_code&utm_campaign=networking&utm_content=jane_doe

Each of these URLs, when encoded as a QR code and scanned, will appear in your analytics as a distinct traffic source. You can then answer questions like: "How many scans did the conference booth QR code get?" or "Which product model drives the most warranty registrations?"

Reading the Data in Google Analytics

In Google Analytics 4, navigate to Reports → Acquisition → Traffic acquisition. Add a secondary dimension of "Session campaign" to see your UTM campaign names. You can also create custom explorations filtering by source/medium containing "qr_code" to build a dedicated QR performance dashboard.

Key metrics to track:

  • Sessions: How many times was the QR code scanned?
  • Engagement rate: Did scanners actually interact with the page, or did they bounce immediately?
  • Conversions: Did the scan lead to the desired action (purchase, signup, download)?
  • Device breakdown: QR scans are almost exclusively mobile—make sure your landing page is mobile-optimized.

QR Code Best Practices for Print

  • Minimum size: 2 cm × 2 cm (0.8" × 0.8") for reliable scanning at arm's length. Larger for distances (posters, banners).
  • Quiet zone: Leave a white border around the QR code equal to at least 4 modules (the small squares). Without this margin, scanners may fail.
  • Contrast: Dark code on light background. Avoid reverse (white on dark) as some scanners struggle with it.
  • Error correction: Use medium or high error correction for print materials that may get damaged or partially obscured.
  • Test before printing: Always scan the QR code from the actual print proof, not just the screen version. Print resolution and color shifts can affect scannability.
  • Add a call-to-action: "Scan for 20% off" converts better than an unlabeled QR code. People need a reason to pull out their phone.

Common Tracking Mistakes

  1. Forgetting to test. A broken QR code on 10,000 printed flyers is an expensive mistake. Always scan before sending to print.
  2. Inconsistent naming. "qr-code," "QR_Code," "qrcode," and "qr" all showing as different sources makes aggregation impossible.
  3. Not shortening URLs. While QR codes handle long URLs fine, extremely long URLs create denser QR codes that are harder to scan at small sizes. Consider URL shorteners for very long UTM strings.
  4. Linking to the homepage. Always link to a specific, relevant landing page. A QR code on a product should go to that product's page, not the homepage.
  5. No mobile optimization. If your landing page is not mobile-friendly, QR tracking will show high bounce rates because nearly all QR scans happen on phones.

Generate your trackable QR codes with our QR Code Generator. Need to verify what is encoded in an existing QR code? Use our QR Code Decoder.

Create Trackable QR Codes

Generate QR codes with UTM parameters for your marketing campaigns.

Try QR Code Generator
Back to Blog
×

Support students & indie developers

Toolomix is a free platform maintained by students and independent developers in their spare time. If our tools help you, a small crypto donation goes directly to them so they can keep learning, building, and sharing more tools with the community.

Crypto wallet addresses for supporting students and indie developers