Use Cases 2026-02-26 7 min By Cornelious Fazal
Try the UTM Builder Free · No signup · Permanent

How to Run a QR Code Marketing Campaign (Free Tracking)

Quick Answer

Use QR codes in print and offline marketing with full UTM tracking in GA4. Covers the one-code-per-channel rule, A/B testing, and reading campaign results - free.

Print advertising has one stubborn problem: you cannot tell who responded. You run a flyer campaign, distribute 5,000 mailers, and your only measure of success is whether the phone rang more often that week.

A QR code marketing campaign solves that problem - but only when set up correctly. A QR code with UTM parameters turns every print placement into a trackable digital touchpoint. You see exactly which flyer version worked, which location drove traffic, and which placement should scale. This guide covers the full setup, from building your first tagged URL to reading results in Google Analytics 4.

Why Marketers Use QR Codes in Campaigns

A standard URL QR code sends a scanner to a webpage. A UTM-tagged URL QR code sends a scanner to the same webpage - but also tells Google Analytics exactly where they came from. Without UTM tags, every scan that leads to a website visit looks identical: direct traffic. You cannot compare your flyer against your poster against your mailer. You cannot optimize what you cannot measure.

QR codes are the only practical way to add tracking to physical print materials and offline QR code advertising. A flyer cannot carry a tracking pixel. A poster cannot set a cookie. A QR code combined with UTM parameters is as close as print gets to digital analytics - and it costs nothing to set up.

The Rule: One QR Code Per Channel Per Campaign

This is the single most important strategy decision in a QR-based marketing campaign. Most marketers create one QR code and use it everywhere - the same code on the flyer, the poster, the mailer, and the event handout. That approach produces data you cannot act on. "The campaign got 340 scans" tells you nothing about what to scale.

The correct approach: one unique QR code per placement. Each code points to a different UTM-tagged URL.

Placementutm_sourceutm_mediumutm_campaign
Window posterstore-windowqrwinter-sale
Direct mail flyermailerqrwinter-sale
Magazine admagazine-nameprintwinter-sale
Event handouttrade-showqrwinter-sale

With this structure, GA4 shows you not just how many scans the campaign got - but which placement drove the most conversions, so you know where to put the next campaign's budget.

How to Create a Trackable Marketing QR Code in 5 Steps

Creating a trackable campaign QR code takes five steps: build your UTM URL, generate the code, brand it, download the right format, and test before printing. Each step is covered below.

Step 1 - Build Your UTM-Tagged URL

Go to the UTM Builder tool and fill in:

  • Website URL: the landing page for this campaign - your sale page, product page, or sign-up form
  • Campaign Source: the placement (flyer, poster, mailer)
  • Campaign Medium: the channel (qr, print, ooh)
  • Campaign Name: the campaign identifier (winter-sale, grand-opening)

The tool generates a complete URL with all parameters appended. Copy it for the next step.

Step 2 - Generate the QR Code

Go to the free QR code generator and select the URL tab. Paste your UTM-tagged URL into the field. The QR code generates live in the preview as you type.

UTM parameters make your URL longer, which increases QR code density. Keep source and campaign values short - use mailer not direct-mail-autumn-2026 - and test scannability before committing to print.

Step 3 - Brand the Code for the Campaign

Apply your brand colors to the QR code foreground and upload your logo if the campaign materials use one. Keep contrast high: dark modules on a light background scan most reliably. For seasonal campaigns, a code colored to match the campaign palette - red for a holiday sale, green for a spring promotion - increases visual recognition and perceived quality on premium print materials.

Step 4 - Download the Right Format per Medium

Print mediumRecommended format
Flyers (small print runs)PNG at 1000px minimum
Professional offset or digital pressSVG
Billboards and large formatSVG
Digital screens and social adsPNG
Newspapers and magazinesSVG

SVG is vector-based and scales to any size without quality loss. For anything going to a professional printer or appearing larger than a business card, download SVG.

Step 5 - Test Before the Print Run

Scan the final QR code from both an iPhone and an Android device. Confirm three things:

  1. The code scans cleanly with no failed reads
  2. The correct landing page opens
  3. UTM parameters appear in the browser address bar after scanning (?utm_source=...)

If UTM parameters are missing from the URL, the destination has a redirect stripping them before the page loads. Fix the landing page redirect or host the UTM URL directly. Approve the print run only after all three checks pass on both phone types.

Build your campaign now: Start with the UTM Builder to tag your URL, then generate the QR code - no account needed.

Where to Use Campaign QR Codes

Each placement works best with a specific QR code size and contrast level. Below are the seven most effective offline marketing placements, each with the recommended UTM source value and minimum print size.

  • Flyers and leaflets (utm_source=flyer) - Minimum 3 x 3 cm. Place on the front. Add a label: "Scan to claim your offer."
  • Direct mail (utm_source=mailer) - Your highest-intent offline channel. Recipients who scan are pre-qualified. Place at the bottom with a specific CTA.
  • Posters and window displays (utm_source=poster) - Minimum 5 x 5 cm for arm's-length scanning. Never display without a CTA label above the code.
  • Out-of-home and billboards (utm_source=billboard) - Minimum 15 cm. Use high contrast and Error Correction Level H for codes scanned at distance.
  • Magazine and newspaper ads (utm_source=magazine-name) - SVG only. Include the destination URL in small text below the code as a fallback.
  • Event programs and handouts (utm_source=event-name) - Highest scan rate environment. Include a reason to scan now: "Scan for the exclusive post-event discount."
  • Packaging inserts (utm_source=packaging) - Every fulfilled order is a campaign touchpoint. See the social media QR guide for packaging-specific placement tips.

How to Read Your Campaign Results in Google Analytics 4

GA4 shows each UTM-tagged placement as a separate row once scans start arriving. Here is exactly where to find the data and what to look at first.

  1. Open GA4 and go to Reports → Acquisition → Traffic Acquisition
  2. Change the primary dimension to Session source / medium
  3. Filter by your campaign: type your utm_campaign value in the search bar

Each QR placement appears as a separate row. Compare session count, engagement rate, and conversions across rows. High session count with low engagement rate means the placement attracted scans but the landing page did not convert - a landing page problem, not a QR problem. To group all placements by campaign name, change the primary dimension to Session campaign.

A/B Testing With QR Codes (Without a Subscription)

Most marketers assume A/B testing print materials requires a paid dynamic QR platform. It does not. You can run controlled print tests for free using UTM parameters and GA4.

Create two versions of a flyer with one variable changed (headline, image, or offer). Assign a different UTM-tagged QR code to each version using the utm_content parameter:

  • Version A: utm_content=headline-v1
  • Version B: utm_content=headline-v2

Distribute both in the same area in equal quantities. After two weeks, compare the utm_content values in GA4 under Traffic Acquisition. The version with more goal completions per session wins. This gives you data at the same precision as a paid platform - because the tracking lives in GA4, not in the QR code.

5 Mistakes That Ruin a QR Code Marketing Campaign

These five errors account for the majority of failed campaigns. Each one is avoidable with a two-minute check before the print run.

  1. No UTM parameters - Every scan arrives as direct traffic. You cannot attribute the campaign to any result. Always build your URL in the UTM Builder first.
  2. One code for all channels - Using the same QR on a flyer, poster, and mailer makes it impossible to compare which placement drove results. One placement, one code.
  3. Printing without testing - A single wrong character in the URL means every scan on the print run fails silently. Test from two phone types before approving production.
  4. Wrong download format - Sending a PNG to a print shop that scales it up produces a pixelated code that fails to scan. Use SVG for all professional print jobs.
  5. No CTA label - A bare QR code without text gets ignored. "Scan for 20% off today" outperforms an unlabeled code on every print medium tested.

Build your first trackable campaign QR code now. Start with the UTM Builder to create your tagged URL, then generate the QR code in under 60 seconds - no account needed, no expiry date on the codes.

Frequently Asked Questions

No. You can track QR code campaign results for free by adding UTM parameters to your destination URL before generating the code. When someone scans the QR code and visits your website, GA4 records the visit tagged with your UTM values. The tracking is in Google Analytics, not in the QR code itself - so no paid dynamic QR platform is needed.

Use these three at minimum: utm_source (where the code is placed, e.g. mailer), utm_medium (the channel type, e.g. qr), and utm_campaign (the campaign name, e.g. winter-sale). Add utm_content when A/B testing two versions of the same placement. Build your full tagged URL using the UTM Builder tool before generating any QR code.

Direct scan counts require a dynamic QR platform. However, you can track website visits from QR scans for free using UTM parameters and GA4. Go to Reports, then Acquisition, then Traffic Acquisition, and filter by your utm_campaign value. Each UTM-tagged placement appears as a separate row showing session counts and conversion data.

You can, but you should not. Using one QR code on a flyer, poster, and mailer makes it impossible to compare which placement drove results. Create a separate QR code for each placement, each pointing to a different UTM-tagged URL. The codes cost nothing to generate and take under two minutes each to create.

For billboards and large-format prints, make the QR code at least 15 cm (6 inches) square to allow scanning from several meters away. Use Error Correction Level H for maximum reliability and download as SVG so it scales without quality loss. Use maximum contrast - black modules on a white background - and include a short CTA label above the code.

utm_source identifies the specific placement, such as mailer, flyer, or poster. utm_medium identifies the broader channel type, such as qr or print. Think of source as the specific piece and medium as the category. For example: utm_source=holiday-mailer and utm_medium=qr. This lets you filter by medium to compare all QR placements, or by source to compare individual pieces.