Quick QR Maker
Back to Blog

QR Code Marketing Guide: Tracking, Sizing and Campaign Setup

What a static QR code can and cannot measure, how to track scans with UTM parameters, one code per placement, sizing per medium, and a checklist before you print.

Industry guide · 6 min read

MarketingUTM trackingCampaigns

A QR code on a flyer is a link that people reach with a camera instead of a keyboard. The campaign lives in the URL you encode, the page it opens and the words beside the code. By the end of this guide you will know how to make a static code show up in the analytics you already have, how to compare placements, and when a static code stops being enough.

What a static code can and cannot measure

A static code contains the URL itself. Nothing sits between the phone and your website, so nothing counts the scan; no free generator can tell you how many people scanned.

What you can measure is what happens on your site after the scan, provided the URL says where the visitor came from. That is what UTM parameters do: plain text added to the end of a URL, which every analytics tool reads and files under the source you named.

QuestionStatic code with UTMDynamic code (paid)
How many visits came from this flyer?Yes, in your analyticsYes, in the vendor dashboard
How many scans happened?Only visits that loaded the pageYes, including bounces
Can I change the destination after printing?NoYes
Does the code stop working if I stop paying?No, it never expiresYes

For most print campaigns the first row is the number you need.

A worked UTM example

Suppose the campaign is a spring sale and the code goes on a poster in the shop window. Take the landing page and append four parameters:

https://example.com/spring-sale
  ?utm_source=poster
  &utm_medium=qr
  &utm_campaign=spring-sale
  &utm_content=shop-window

Joined into one line, that is the URL you paste into the URL QR generator. utm_source is what carried the code, utm_medium=qr separates scans from a printed short URL, utm_campaign groups every placement in the campaign, and utm_content names this one placement.

Use lower case, hyphens rather than spaces, and the same spelling on every code; analytics tools treat Poster and poster as two sources. Log the values in a spreadsheet with the print date and where the sign went.

A tracked URL is longer, which makes the code denser. Keep the landing path short (/spring-sale, not /campaigns/2026/spring/landing) so the whole URL stays under about 80 characters. Avoid third-party link shorteners: if the shortener changes its terms, every printed code breaks at once. If you must shorten, use a redirect on your own domain.

One code per placement

Print a different code, with a different utm_content value, for each place the campaign appears. A menu insert, a window poster and a receipt footer should be three codes, not one. That is the only way to learn, two weeks later, that the receipt drove three times the visits of the poster and the window did nothing. The bulk generator turns a CSV of tracked URLs into a zip of named PNGs in one upload.

Pick a destination that works on a phone

Every scan happens on a phone, often outdoors. Before you print, open the destination on your own phone over mobile data and check:

  1. It loads in under three seconds; compress the images.
  2. No cookie wall, app-install banner or newsletter popup covers the content.
  3. The thing promised on the sign is the first thing on screen, not four scrolls down.
  4. Any form asks for as little as possible.

Do not send a scan to your homepage; land the visitor on the offer the sign promised.

Write a call to action next to the code

A bare code gets ignored. Print three things around it:

  • What they get: "Scan for the full menu", "Scan to book a table", "Scan for 10% off today".
  • How: "Point your camera at the code".
  • Where it goes: the domain in small type, so a cautious person can see it is your site.

Keep the code itself plain. Black on white scans best; if you add brand colors or a logo in the design studio, keep contrast at 4.5:1 or better, the logo under about 20% of the code area, and error correction at Q or H.

Size per medium

The code should be at least one tenth of the distance it will be scanned from, with a blank quiet zone of at least four modules on every side. Applied to common placements:

MediumScanning distanceMinimum code sizeExport
Flyer or business card20 to 30 cm2 to 3 cmPNG at 300 DPI
Poster (A3 or larger)1 to 2 m10 to 20 cmSVG or PDF
Vehicle, parked, from the sidewalk3 to 5 m30 to 50 cmSVG
Packaging15 to 20 cm2 cm on a flat face, never across a foldPNG at 300 DPI
Screen (TV, kiosk, slide)2 to 4 m20 to 40 cm, shown for at least 15 secondsPNG, unscaled

The size calculator gives the exact size for any distance, and the print guide covers bleed, color and resolution.

When to pay for a dynamic code instead

Pay for a dynamic code when you need to change the destination after printing, when you need scan counts rather than page visits, or when a print run is too large to replace if a link breaks. A dynamic code is a redirect on the vendor's domain, so it stops working if the subscription lapses. Otherwise a static code with UTM parameters does the job. Do QR codes expire? walks through the trade-off.

Campaign checklist

  1. One landing page per campaign, tested on a phone over mobile data.
  2. One tracked URL per placement, logged with the placement and print date.
  3. Whole URL under about 80 characters; no third-party shortener.
  4. Code sized for the scanning distance, quiet zone intact, dark on light.
  5. Call to action, instruction and domain printed beside the code.
  6. A proof printed at final size, scanned with an iPhone and an Android phone from the intended distance, and checked in the QR code tester.
  7. Analytics checked a week after launch, filtered by utm_campaign, and the weakest placement replaced.

The restaurant QR guide covers menus and table tents; for guest WiFi signs, see the WiFi QR tutorial.

Build the tracked URL, then make the code in the URL QR generator.

Make your QR code

Free, no sign-up, no watermark. The code is static, so it never expires.

Create a Free QR Code

Related Articles

Industry guide

Event QR Code Generator: Tickets, Check-in and What Static Codes Can Do

What a free static QR code can and cannot do at an event. Ticket validation needs a ticketing platform; registration links, agendas, venue WiFi, speaker vCards and feedback forms do not. Print sizes for banners, posters and badges included.

14 min read

Read Article

Industry guide

Medical QR Code Generator: What Is Safe to Encode Under HIPAA

A QR code is not encrypted, so it must never carry patient information. Which clinic uses are safe (portal login, booking, pre-visit PDFs, WiFi, a clinic vCard, leaflets, wayfinding), which are not, how to do an emergency medical ID honestly, and how to print codes that survive a clinic.

13 min read

Read Article