QR Code Generator for UTM Parameters

Create trackable QR codes for your print campaigns. Set UTM source, medium, and campaign — then download a print-ready QR code and measure every scan in Google Analytics 4.

Live QR preview
PNG & SVG export
Custom colors
GA4 compatible

Step 1 — Destination URL

Step 2 — UTM parameters

Set how GA4 will attribute scans from this QR code

Where is this QR printed?
Marketing channel type
Spaces → underscores automatically
Optional
Optional — A/B test

Step 3 — QR code options

Higher = more robust, denser pattern

Step 4 — Your QR code

Complete the form above

URL + source + medium + campaign are required to generate your QR code.

What is a UTM QR code and why do you need one?

A regular QR code just takes someone to a website. A UTM QR code does the same — but also tells your analytics exactly where that visitor came from, which campaign drove them, and which channel it was.

Track offline campaigns in GA4

Every scan is recorded in Google Analytics 4 with full attribution — source, medium, and campaign name — just like a digital link click. No guesswork about which flyer or poster drove traffic.

Perfect for print materials

Business cards, flyers, posters, packaging, billboards, event badges, and direct mail. Anywhere a clickable link doesn't work, a UTM QR code fills the gap.

One scan = full attribution

The UTM parameters are baked directly into the QR code. No redirects, no link shorteners required. The user scans, lands on your page, and GA4 records the full campaign data.

Compare campaigns side by side

Use a different campaign name on each piece of print — 'spring_flyer', 'store_poster', 'event_badge'. GA4 shows you exactly which drove more traffic and conversions.

How to create a UTM QR code

Four steps from blank form to print-ready QR code in under a minute.

1

Enter your destination URL

Paste the page you want the QR code to point to — a landing page, product page, or homepage. The tool validates the format automatically.

2

Set your UTM parameters

Choose or type your UTM source (e.g. flyer), medium (e.g. print), and campaign name (e.g. spring_sale_2025). Term and content are optional for more granular tracking.

3

Customise and preview

Choose QR colors, size, and error correction level. The QR code updates live as you type — no need to click generate. Use the scan test button to verify it works.

4

Download and use

Download as PNG for digital use or SVG for print. SVG scales to any size without pixelation — ideal for large-format print like posters and banners.

UTM parameters explained

For print campaigns specifically, here is what to put in each field.

utm_sourceRequired
SourceGA4 → Session source

The physical material or placement — e.g. flyer, business_card, poster, packaging, event_badge, direct_mail

Examples:flyerstore_posterbusiness_card
utm_mediumRequired
MediumGA4 → Session medium

Always use 'print' or 'offline' for physical materials. This lets you filter all offline traffic in GA4 with one segment.

Examples:printofflineout_of_home
utm_campaignRequired
CampaignGA4 → Session campaign

The name of the campaign this material belongs to — use underscores, lowercase only. e.g. spring_sale_2025, grand_opening, product_launch

Examples:spring_sale_2025grand_opening
utm_term
TermGA4 → Session manual term

Optional for print. Use it to specify the location or edition — e.g. london_bridge, north_zone, issue_42

Examples:london_bridgenorth_zone
utm_content
ContentGA4 → Session content

Use to A/B test different creative versions — e.g. red_banner vs blue_banner, design_v1 vs design_v2

Examples:red_bannerdesign_v1top_of_page

Print QR code best practices

Follow these guidelines to make sure every QR code scans reliably in the real world.

Minimum size: 2cm × 2cm

Any smaller and most smartphone cameras struggle to scan reliably, especially at arm's length. For billboards or large-format print, scale up proportionally.

Keep a quiet zone

Leave at least 4 QR modules (roughly 4mm at minimum size) of white space around the code on all sides. Printing too close to other design elements causes scan failures.

Dark on light, always

QR codes must have high contrast. Dark modules on a light background — never reverse this. Avoid placing QR codes on photos, gradients, or busy patterns.

Use error correction H for logos

If you add a logo to the center of the QR, set error correction to H (High). This allows up to 30% of the code to be obscured while still scanning correctly.

Download SVG for print

SVG files scale to any size without pixelation — perfect for large-format print like posters, banners, and signage. Use PNG only for digital and small-format print.

Always test scan before printing

Use the scan test button to verify the QR code opens the correct URL with the right UTM parameters. Test on both iOS and Android before sending files to the printer.

Shorter URLs = simpler QR codes

The more data encoded, the denser the QR pattern. Shorter URLs produce simpler, more scannable codes. Remove unnecessary URL parameters before adding UTMs.

Add a call to action

Print a brief instruction near the QR code — 'Scan to get 20% off' or 'Scan for more info'. QR codes without context have significantly lower scan rates.

Frequently asked questions

What is a UTM QR code?

A UTM QR code is a standard QR code that encodes a URL with UTM tracking parameters appended to it. When scanned, the user is taken to your website and analytics platforms like Google Analytics 4 automatically record the campaign source, medium, and name — giving you full attribution data for your offline marketing materials.

Can I track QR code scans in Google Analytics 4?

Yes, completely. When someone scans a UTM QR code and their browser opens the URL, GA4 reads the UTM parameters just as it would for any digital link. The scan appears in your reports under Session source, Session medium, and Session campaign — with no additional setup, tags, or integrations required.

What should I put in utm_source for a QR code?

Use the physical material or placement as your source — for example 'flyer', 'poster', 'business_card', 'packaging', or 'event_badge'. This tells GA4 which specific print material drove the scan. Use lowercase and underscores instead of spaces to keep your data clean.

What should utm_medium be for print campaigns?

Use 'print' or 'offline' as your medium for all physical materials. This creates a consistent segment in GA4 that lets you filter and compare all offline-driven traffic in one view, regardless of which specific material the user scanned.

Should I use PNG or SVG for my QR code?

For digital use (email, websites, presentations), PNG is fine. For any print use — flyers, posters, business cards, packaging, or large-format signage — always download SVG. SVG is a vector format that scales to any size without pixelation. A PNG that looks sharp at small sizes will appear blurry or blocky when scaled up to poster or billboard size.

What does error correction level mean?

Error correction lets a QR code be scanned even if part of it is obscured, dirty, or damaged. Level L corrects up to 7% damage, M up to 15%, Q up to 25%, and H up to 30%. Use H if you want to place a logo in the center of the QR code. Use L or M for cleaner, simpler codes when no logo is needed.

Do I need to shorten the URL before generating a QR code?

No, URL shortening is not required. However, shorter URLs produce simpler, less dense QR codes that are easier to scan — especially at small sizes. If your URL is very long, consider shortening it first with a tool like Bitly or a custom short domain, and then adding your UTM parameters to the shortened URL.

Can I A/B test different print designs with QR codes?

Yes — this is one of the most powerful uses of UTM QR codes. Give each design variant a different utm_content value, such as 'design_v1' and 'design_v2', while keeping the source, medium, and campaign the same. GA4 will show you exactly which design drove more traffic and conversions.

Is this QR code generator free?

Yes, completely free. There is no registration, no login, no watermark on downloaded files, and no limit on the number of QR codes you can generate. All processing happens in your browser — no data is sent to any server.