Blog

QR Code Direct Mail: How to Actually Track a Postcard

QR code direct mail is the cheapest measurement you can bolt onto a postcard. It costs nothing to print a code, and it turns a channel most owners describe with a shrug into a channel with a number next to it. The catch is that a QR code only counts scans, and scans are not calls. Most codes on mail fail for boring physical reasons: too small, too little contrast, pointed at a homepage, or printed without anyone testing the thing on an actual phone. Here is how to do it properly, and what the numbers will and will not tell you.

The short version: Use a dynamic code so you can count scans and fix a bad link after printing. Print it at least one inch square with a clear margin, dark on light, on the same panel as the offer. Send it to a page built for that one offer with a tap-to-call button, tag the URL so your analytics can separate it, and use a different code or URL per route so you learn which streets respond. Pair it with a tracking phone number, because most people will still call.

What QR code direct mail can and cannot tell you

A QR code answers one question well: how many people took their phone out because of this card. That is a real signal, and it arrives without anyone at your shop remembering to ask "how did you hear about us."

What it will not tell you is total response. Plenty of homeowners read the card, put it on the counter, and call the number three weeks later when the pipe leaks. That call is a mail response with no scan attached to it. So treat scans as a floor, not a total. If you get 12 scans and 9 calls on the tracking number, your drop produced at least 21 responses, and you should not average those two numbers into one.

Set expectations before you print. Scan counts on consumer mail usually land in the low single digits as a percentage of the pieces delivered, and often below one percent. That is not a failure. A 2,500-piece drop at a one percent scan rate is 25 people who pulled out a phone with your offer in front of them, which is a warmer audience than 25 clicks from a cold ad. Log your own number on drop one and compare drop two against it. Your own baseline is worth more than any benchmark you read.

Build the code so it works

There are two kinds of QR code, and the difference matters.

Keep the encoded URL short either way. Fewer characters means fewer modules, a chunkier pattern, and a faster read in a dim entryway. A short branded link like your-domain.com/fall beats a URL with 60 characters of tracking string hanging off it. Put the long tracking string on the destination page instead, using the redirect.

Size, contrast, placement

Then test it as a printed object, not on a screen. Print the proof at full size, scan it with an iPhone camera and an Android camera, from about 18 inches, in a dim room, and after the piece has been in a bag and creased once. Also confirm the destination loads on a phone in under three seconds. A code that resolves to a slow page is a code that produced nothing.

Point it somewhere built for the job

The most common mistake is sending a scan to your homepage. Someone standing in their kitchen with a specific offer in hand now has to hunt for it, and most will not. Build one page per campaign, with four things on it: the same offer in the same words as the card, a tap-to-call button above the fold, three lines of proof, and a short form. Nothing else.

Tag the destination so your analytics can separate it. A simple scheme works forever: source is the mailer, medium is postcard, campaign is the drop, and content is the route. Something like utm_source=eddm and utm_medium=postcard and utm_campaign=fall-2026 and utm_content=route-c012. Keep the tags on the redirect target, not in the printed code.

That last piece is the one owners skip and later wish they had. Give each carrier route its own code or its own short link. When drop one comes back, you can see that the Nabnasset routes scanned at three times the rate of the routes across town, and route selection on drop two stops being a guess. If you need a refresher on how routes are chosen in the first place, our guide to how the shared mailer works covers the per-household math behind them.

Read it monthly, then act

Put four numbers on one sheet after every drop: pieces delivered, scans, calls to the mail tracking number, and jobs booked from either. Divide jobs booked into the cost of the drop and you have a cost per job for that channel, which is the only number worth arguing about. Compare it to your cost per job from paid search and from referrals. Then move budget toward whichever one wins, and re-check next season, because these numbers drift.

One more leak to close. A scan at 8pm often becomes a phone call, and a call that hits voicemail is a job you paid postage to lose. If the phone is not covered outside business hours, that is where your next fix belongs, ahead of any change to the card. The AI Blueprint lays out where an answering agent or a follow-up automation actually earns its keep, and where it just adds cost.

A QR code will not make a weak card work. What it will do is end the argument about whether the mail did anything, and tell you which streets to mail again. Print it big, point it at a real page, tag it by route, and read the sheet.

Want the tracking set up before your next drop?

Book a quick intro call and we will map the code, the landing page, and the tracking number so drop one comes back with numbers you can use. Every card on our shared mailer includes QR tracking and a free professional design. You can also see how EDDM works first.

Book the intro call →