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
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.
| Question | Static code with UTM | Dynamic code (paid) |
|---|---|---|
| How many visits came from this flyer? | Yes, in your analytics | Yes, in the vendor dashboard |
| How many scans happened? | Only visits that loaded the page | Yes, including bounces |
| Can I change the destination after printing? | No | Yes |
| Does the code stop working if I stop paying? | No, it never expires | Yes |
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:
- It loads in under three seconds; compress the images.
- No cookie wall, app-install banner or newsletter popup covers the content.
- The thing promised on the sign is the first thing on screen, not four scrolls down.
- 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:
| Medium | Scanning distance | Minimum code size | Export |
|---|---|---|---|
| Flyer or business card | 20 to 30 cm | 2 to 3 cm | PNG at 300 DPI |
| Poster (A3 or larger) | 1 to 2 m | 10 to 20 cm | SVG or PDF |
| Vehicle, parked, from the sidewalk | 3 to 5 m | 30 to 50 cm | SVG |
| Packaging | 15 to 20 cm | 2 cm on a flat face, never across a fold | PNG at 300 DPI |
| Screen (TV, kiosk, slide) | 2 to 4 m | 20 to 40 cm, shown for at least 15 seconds | PNG, 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
- One landing page per campaign, tested on a phone over mobile data.
- One tracked URL per placement, logged with the placement and print date.
- Whole URL under about 80 characters; no third-party shortener.
- Code sized for the scanning distance, quiet zone intact, dark on light.
- Call to action, instruction and domain printed beside the code.
- 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.
- 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 CodeRelated 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 ArticleIndustry 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