QR Tools

QR Campaign Tracker

Track QR code campaigns across print, digital, and event placements. Log scan targets, placement locations, short URLs, and UTM parameters. Includes a weekly scan-count log and top-performer summary for up to 20 campaigns.

Excel • QR Tools

A printed QR campaign fails in one of four places: the wrong code type, a destination you cannot change, a symbol that will not decode off the actual printed stock, or no way to tell which placement earned the money. This workflow closes all four. Then it puts a number on the result.

The worked example is Bridge Lane Coffee, a single café pushing catering enquiries. Thirty printed assets go out: 24 laminated table tents, 4 partner counter cards, 2 market stall boards. Every figure below carries forward to the last step.

1. Pick the code type before you design anything

A QR code is just an encoded string. The prefix decides what the phone does with it after decoding. A URL opens the browser, tel: opens the dialler, WIFI: offers to join a network. Encode a phone number as plain text instead of a tel: string and you have printed the classic wasted run: the customer sees digits and copies them out by hand.

The jobToolWhat gets encoded
Menu, price list, spec sheet, brochureQR Code for PDFA link to a hosted PDF. The file itself is never inside the code
"Call us" or "Text QUOTE to…"QR Code for Phone Number (+ SMS)tel:, or an SMS with the message body pre-written
Trade shows, badges, business cardsLinkedIn QR Code GeneratorYour profile URL, so the contact survives the lost card
Taking payment at a stall or counterVenmo / CashApp QR GeneratorPayment handle, optionally with the amount fixed
Guest networkWiFi QR Code GeneratorSSID, encryption type and password as one joinable string

Bridge Lane prints three types: the catering PDF on the front of each tent, the guest WiFi on the back, and a Venmo code for the market stall. Only the PDF code is the campaign. The other two are conveniences and nobody measures them.

2. Fix the destination: the print is permanent

A printed code cannot be edited. If the destination dies, the only fix is a reprint. So never encode a link you do not control: a file-share URL, a page slug you might rename, a landing page you plan to retire after the season. Encode a short path on your own domain and redirect it. Then a dead link is a two-minute redirect change, not 30 new laminated tents.

Attribution comes from the URL, not from the code. Give every physical asset its own path so the scans separate by placement. Share one URL across all 30 and you will learn that the campaign worked. You will not learn which four placements produced everything and which twelve produced nothing, so next round you have no idea what to cut.

What each Bridge Lane tent encodes https://bridgelane.co/m/t14 Where the redirect sends it https://bridgelane.co/catering?utm_source=qr&utm_medium=table-tent&loc=t14
The encoded string is 27 characters. The tagged version is 78. Keep the tags on the redirect target rather than inside the code and the symbol stays coarse enough to scan. See step 4.

3. Generate the batch from a spreadsheet column

Thirty codes made one at a time is thirty chances to paste the wrong URL. Put asset IDs in one column and their URLs in the next, run the sheet through QR Code Generator from Excel List, and you get back one image per row, named by asset.

Transposition is the failure that hides longest. If table 14's tent encodes table 41's URL the print looks perfect, and you find out weeks later when one table appears to do double the business of the room and another does none. A batch generated from a single source column cannot transpose.

Bridge Lane's sheet: t01t24 for tents, p01p04 for partner counters, s01s02 for stall boards. Keep that sheet. When scan data comes back as bare loc values, it is your lookup table.

4. Set error correction to match the surface

Error correction decides how much of the symbol can be destroyed and still decode. The four levels recover roughly 7% (L), 15% (M), 25% (Q) and 30% (H) of the data.

LevelUse it for
L / MScreens, PDFs, email, indoor signage behind glass: anything that stays clean
QHandled print: table tents, product labels, packaging, anything that gets wiped down
HOutdoor decals, vehicle panels, and any code with a logo covering the centre

Higher correction is not free

The recovery data lives inside the symbol. Raise M to H on the same string and you add codewords, which adds modules, which means that at a fixed printed width every module gets smaller. But a camera struggles more with modules below roughly 0.4mm than it does with one large scuff. Past a point you have bought fragility. Shorten the URL first, raise correction second. That is why the tents encode a 27-character path.

Quiet zone and size

Leave four modules of blank space on all four sides, in the same colour as the light modules. A background photo, a keyline border or a bleed running into that margin will stop the decode while looking completely fine to a human eye. Rule of thumb for size: printed width is about scan distance ÷ 10. A tent read at 300mm wants roughly a 30mm code. A window decal read from 2m wants around 200mm.

5. Build the print file

Feed the batch into QR Code Generator for Labels so the codes drop straight into sheet cells. Hand-placing 30 images in a document is where quiet zones get cropped. Where a code sits on a coloured panel, use the Transparent QR Code Generator. But keep dark modules on a light background and never invert; plenty of scanners refuse inverted codes outright. Over a photograph or a mid-tone brand colour, transparency kills the contrast and is not worth the look.

Bridge Lane print costs
24 laminated tents at $3.60 = $86.40
6 weatherproof decals at $9.00 = $54.00
Artwork, 3 hours at $45 = $135.00
Placement and swap-out, 2 hours at $45 = $90.00
If you are doing the design and placement yourself, cost the hours at your real rate rather than at zero. This billable-hours calculator setup ($56,000 target income, $8,800 business costs, 6 hours a day, 5 days a week, 4 weeks off) produces the $45/hour used above.

6. Test every code on the printed material

A screen proof proves nothing.

Lamination glare under downlights, ink spread filling the light gaps on uncoated stock, a decal over textured glass, a tent parked behind the napkin dispenser: all of it passes on a monitor and fails on the table.

Run the artwork through Scan QR Code from Screenshot or Scan QR Code Without Camera before it goes to the printer. Desk job, no phone needed. Once the print comes back, check each physical piece with Safe QR Code Scanner, which shows you the destination URL before opening it. It is how you catch t14 pointing at t41, and it is the tool to reach for with any code you did not print yourself. QR Code Scanner handles fast repeat decodes. Confirm the guest network code with Scan WiFi QR Code: the common error is the wrong SSID, or WPA declared as WEP, which joins nothing.

Scan each asset once, at the real distance, under the real lighting, holding the phone at the angle a seated customer holds it. Thirty codes takes about ten minutes. A reprint takes a week.

7. Work out how many jobs pay for the print run

Know the break-even before you judge the campaign. Bridge Lane's total cost is $365.40. A catering booking averages $310 with $117.80 of food, packaging and staff time against it, which leaves $192.20 of contribution per booking.

Break-Even Point Calculator

$365.40 ÷ $192.20 = 1.9 bookings, so two catering jobs clear the campaign. Two bookings across eight weeks is a run you can green-light on instinct. Forty would need an argument. If you sell time rather than units, the Service Business Break-Even Calculator takes the same four inputs.

8. Measure against margin, not revenue

Eight weeks in, the loc data shows 9 catering bookings attributed to the QR path. At an average of $310 that is $2,790 of revenue, on a 62% gross margin. Split the cost the way the calculator expects: $275.40 of direct campaign spend (print $140.40 plus artwork $135) and $90 of other costs (placement time).

Marketing ROI Calculator

$2,790 × 62% = $1,729.80 of gross profit. Less $365.40 of cost leaves $1,364.40, an ROI of 373%, or about $3.73 back for every dollar spent. Feed raw revenue in instead of margin-adjusted profit and the same campaign reports 663%. That version credits the print run with money that went to the supplier. Run the same margin through the PPC ROI Calculator if you want an honest comparison between the print run and paid ads.

9. Decide what to reprint

Sort the loc values by attributed bookings rather than by scans. A stall board collects scans from people who will never order. Reprint the placements that converted, at a larger size, drop the zero-booking positions, and reuse those slots for a second position in the rooms that worked. And because the codes point at redirects you control, you can change what the surviving ones open without reprinting a single tent.

Related: all QR code tools

After the campaign ends

Nine steps get you to the reprint decision, but the printed pieces themselves don't disappear when the campaign does. Table tents come down easily and their codes stop mattering the day they're removed. Longer-lived placements don't: a partner counter card or a business card handed out in step one can keep circulating for months or years after Bridge Lane has moved on to a different promotion.

Since every code points at a redirect you control, closing out a campaign is a redirect change, not a reprint. Point the surviving short paths at whatever comes next, a seasonal menu, a new offer, rather than leaving them live against a page that's been taken down. A redirect aimed at nothing just fails quietly for anyone who scans an old card, and a customer holding a dead link reflects worse on the business than one holding an outdated but working page. Decide the retirement plan for each asset type before the print run goes out, not after the first complaint.