
Learn how to track QR code scans for a PDF using UTM-tagged short links, separate QR analytics, and viewer-level engagement metrics. Includes troubleshooting.
A restaurant owner has just printed a new menu, or a sales team has handed out brochures at an event. The QR code has been scanned, but that doesn't tell you whether anyone opened the PDF, read it, or reached the information that matters. To track QR code scans for a PDF use a short, trackable link, tag the campaign, and compare scan activity with PDF viewer and page engagement.
The quickest useful setup is to upload the PDF, create its browser link, generate a QR code for that link, and test the full journey before printing. A scan records activity at the QR destination; it doesn't prove the reader opened the PDF.

LinkShip provides separate QR scan and link-click counts, so the dashboard can distinguish activity from a QR code from visits through a typed, shared, or otherwise clicked link. Its PDF viewer also provides per-page dwell metrics. Those measurements help answer two different questions: did someone scan the code, and did the PDF receive attention?
A restaurant preparing table cards can use the same workflow as an event organizer distributing a program. For practical placement and guest-flow ideas, see this QR guide for restaurant managers. Before approving a full print run, check the code on the final artwork, at its actual size and viewing distance.
A QR code is a pointer, not a container for the PDF. Encoding a short tracking URL gives you room to keep the printed code stable while changing where it leads. If the document is revised, you can update the file behind the existing public URL rather than distributing a new code.
That routing layer is also what makes measurement possible. A code pointing straight at the file gives you one event at best. A code passing through a LinkShip link produces two separate counts, the QR scan and the downstream click or viewer load, which is the difference between "someone scanned it" and "someone read it."

The QR format was developed in Japan in 1994 by DENSO WAVE for automotive manufacturing. Conventional one-dimensional barcodes held too little information, so workers had to scan multiple barcodes on a box. The two-dimensional format could encode substantially more data and was designed for faster, omnidirectional reading. QR Code became an AIM International standard in 1997, a Japanese Industrial Standard in 1999, and part of ISO/IEC 18004 in 2000, milestones that established the technical foundation for using a code as a durable pointer rather than embedding a document. DENSO WAVE's QR Code history
Every character in the destination adds data the symbol must carry, so a long file address produces a denser code and a denser code is harder to scan at small print sizes. ISO/IEC 18004 defines four error-correction levels: L recovers approximately 7% of codewords, M 15%, Q 25%, and H 30%. Higher correction tolerates damage or obstruction but increases density further, which trades one problem for another. ISO/IEC 18004
A short LinkShip URL keeps the symbol less dense, holds one consistent campaign route, and leaves the PDF replaceable behind it. Do not count on a logo or a higher correction setting to rescue a code that is too small, blurred, or poorly printed.
Campaign tags make it easier to tell which printed placement brought people to the PDF. A poster, table card, event handout, and mailer may all promote the same document, but they shouldn't have to disappear into one undifferentiated traffic bucket.

Build the tags around where the code appears and what campaign it supports. For example, a spring menu poster could use utm_source=poster, utm_medium=qr, and utm_campaign=spring_menu. Give each placement a distinct QR identifier too, such as menu-poster and menu-table-card, so you can compare locations without confusing the campaign name with the placement.
Use qr as the medium when you want the channel to be clear in reports. The source can identify the specific placement, while the campaign value identifies the marketing effort. Keep the values readable and consistent; a teammate should be able to recognize them after the campaign is underway.
Scan the code with a phone and inspect the final URL after it opens. Confirm that the campaign tags remain present through the redirect and that the PDF loads as intended. If the tags disappear, the campaign may be harder to identify in downstream analytics. Also scan a regular LinkShip link separately, so you can see how ordinary clicks differ from QR activity.
If your campaign uses multiple printed placements, this guide to tracking QR codes with EventUploader offers another perspective on campaign identification. For a consistent naming approach across other shared links, see LinkShip's guide to customizing links.
A scan, a click, a viewer load, and page dwell describe different points in the document journey. Treating them as interchangeable makes a report look simpler, but it can hide where recipients stop.
A QR scan is activity attributed to the QR route. A click is a visit through a regular link, such as one shared in an email or message. A viewer load indicates that the PDF viewer opened, while per-page dwell provides a signal of attention to the document's pages. A scan alone doesn't establish that the PDF opened or that the recipient read it.
| Event | What it counts | What it implies |
|---|---|---|
| QR scan | A visit attributed to the QR code | Someone reached the QR destination |
| Link click | A visit through an ordinary link | Someone followed a shared or clicked link |
| Viewer load | The PDF viewer loading | The document opened in the browser |
| Per-page dwell | Time spent on individual PDF pages | A stronger, though not definitive, signal of engagement |
A high scan count with few viewer loads suggests a problem after the QR route is reached. Check whether the destination loads correctly, whether the viewer opens on the devices people use, and whether any access rule blocks recipients. If viewer loads are healthy but page dwell is limited, the PDF may be opening without holding attention. That's a different issue from an unscannable code.
Scan totals are exposure metrics, not a count of people who finished reading. Repeated scans, preview bots, shared devices, and failed offline attempts can affect totals. As a practical reporting habit, keep scans, unique visitors, PDF opens, and engagement indicators separate rather than presenting one total as proof of readership. This overview of document tracking software is useful context for evaluating what document activity measurements can and can't tell you.
Practical rule: Use scans to judge whether the QR route is being used, viewer loads to confirm access, and page-level activity to assess engagement.
Dimensions add context to the event counts, but they aren't exact descriptions of a person or the circumstances of a scan. Use city, device, and referrer data to spot patterns, not to make claims the data can't support.

City-level location is approximate. IP-derived location can help show which regions are generating activity, but it isn't a street address or reliable evidence of where a person was standing. Don't use it for precise targeting or to identify individual recipients.
Device type helps with troubleshooting. A concentration of mobile visits is unsurprising for a printed QR campaign, but a device breakdown is most useful when compared with viewer loads. If scans appear but the document doesn't open on a particular device category, test the PDF journey on a relevant phone or browser.
Referrer data can be missing or ambiguous. QR scans commonly arrive without a meaningful HTTP referrer. A missing referrer doesn't mean the visit was direct in the everyday sense, and an untagged scan can be classified as direct traffic. Rely on a dedicated QR identifier and campaign tags rather than expecting the referrer field to reveal whether someone scanned a poster or table card.
LinkShip analytics include city-level geolocation, device and referrer information, and UTM carry-through. CSV and API export are available on paid plans, which can help teams combine campaign activity with their reporting workflow. Keep exported data focused on what you need, especially when comparing placements. For another practical angle on measuring offline campaigns, see LinkShip's guide to offline marketing analytics.
A poster run logs a healthy scan count in week one, yet viewer loads sit near zero. That gap between the QR counter and the PDF counter is your first diagnostic clue: the printed code did its job, and the failure lives somewhere after the scan. Treat the physical symbol and the link journey as separate problems, because a camera can decode a code perfectly and still hit a broken redirect, a blocked network, or a PDF that never opens.
| Symptom | Likely cause | What to check |
|---|---|---|
| The code scans inconsistently in print | Missing quiet zone, weak contrast, small modules, blur, glare, or perspective | Keep a clear four-module quiet zone on every side; check contrast after CMYK conversion or lamination |
| A branded code fails to scan | Logo coverage or other obstruction exceeds what the symbol can tolerate | Reduce the logo coverage or use a less obstructed design; a higher correction level does not guarantee success |
| Scans occur but the PDF doesn't open | Stale redirect, blocked network, lost query parameters, or access rule | Follow the full route on a phone and confirm the destination and tags survive |
| Counts rise during internal checks | Team testing or repeat visits | Record test activity separately and deduplicate repeat visitors thoughtfully |
| Printed codes scan but some visits never appear | Offline or failed network requests | Check the connection during testing; a phone without a successful server request can't produce a recorded visit |
For print problems, apply the four-module quiet zone specified in ISO/IEC 18004 (cited above) on every side of the printed code. Because higher error correction consumes symbol capacity, a code set to level H may need a larger physical size to keep the same scanning distance.
Test the finished artwork rather than the file on your screen. Scan the printed piece at its real size, distance, and lighting with two different phones, then follow the full redirect into the viewer. A clean decode paired with a failed load points to the URL or an access rule; a failed decode points back to the print shop. LinkShip keeps QR scans and PDF engagement as separate counters, so you can see which stage of the funnel dropped before you touch anything. Keep raw event records where available, and tag your own test devices so team checks never inflate a placement's totals.
A small business is preparing a brochure PDF for visitors to take home. The owner adds a QR code to the printed piece and uses a dedicated campaign route. After the brochures are in circulation, the dashboard shows QR scans separately from ordinary link clicks; the PDF viewer and per-page dwell data show what happened after recipients arrived.
The owner doesn't treat the scan count as a readership tally. If QR activity is present but viewer loads are scarce, the next action is to test the redirect and PDF opening experience. If the PDF opens but readers spend little time on its key pages, the owner can review the brochure's content and layout before ordering more prints. The decision comes from the gap between exposure and engagement, not from a scan total in isolation.
Before committing to a full distribution, work through the delivery steps:
This sequence catches broken redirects, lost campaign tags, and print problems while they're still easy to fix. It also gives the owner a useful baseline for deciding whether to change the code, the PDF, or the campaign placement. The same approach works for a restaurant menu, event program, sales sheet, or educational handout.
LinkShip's PDF to Link workflow creates a browser-based PDF link with viewer engagement metrics, and its QR tools generate codes for sharing that link. Visit LinkShip to set up a trackable PDF route and measure what happens after a scan.
Join the community
Subscribe to our newsletter for the latest news and updates