How to Track QR Code Scans Without Google Analytics
You don't need a Google Analytics property, a tag manager, or a JavaScript snippet on your landing page. A dynamic QR code with a server-side redirect logs every scan before the visitor ever sees the destination.
Use a dynamic QR code that points to a redirect URL such as app.qrcodefordonation.com/q/your-slug. Each scan is logged on the server with IP, device, city, country, timestamp and referer, then the visitor is forwarded to your real page. No Google Analytics, no JavaScript, no cookies on the destination.
Why Google Analytics is the wrong tool for QR scans
Google Analytics measures behavior on a web page. A QR code scan happens off the page, in a phone camera. By the time the browser opens, the scan event is already over. So you end up bolting UTM parameters onto a URL and hoping the user actually waits for the page to load and the GA script to fire.
That's a fragile loop. If a user scans a code on a poster, glances at the page for half a second, and closes it, GA may never record the visit. If their network is slow or their browser blocks third-party scripts, you lose the data. If the destination is a PayPal page, a Stripe checkout, or any URL you don't control, you can't even install GA on it.
You also pick up a setup tax: a GA property, a tag, a consent banner, a cookie policy, and the work of stitching campaign IDs to physical placements. None of that is necessary if all you want to know is "did this poster, this table tent, or this flyer get scanned, where, when, and on what kind of device."
A redirect is a far simpler primitive. The server gets the request, writes one row to a database, and sends a 302 to the real destination. The user notices nothing. You get a clean log of every scan even if the destination is a third-party page you'll never touch.
How a redirect-based QR tracker actually works
The trick is that the QR code does not encode your final URL. It encodes a short link on a server you control. Every dynamic QR code on this platform points to app.qrcodefordonation.com/q/{slug}. The phone scans that, opens the URL, and the request hits our app first.
When the request arrives, the app does four things in order. It looks up the slug in the database. It writes a scan record with the request metadata. It reads the current destination URL for that slug. Then it issues an HTTP redirect to that destination. The visitor sees only the destination page.
Because the destination is stored in a database, you can change it any time without touching the printed code. Print one poster, point it at a donation page today, point it at a thank-you page next month. The QR pattern on the wall never changes. This is the same idea behind any URL shortener, described well in the Wikipedia article on URL redirection.
The QR code itself is just a 2D barcode encoding that short URL. There's nothing magic about it. The format is documented in the Wikipedia entry on QR code. All the intelligence lives on the server, not in the printed pattern.
What native scan data you get
Every scan writes a single row with the fields you actually care about for a printed campaign:
- IP address. The originating IP from the request. This is the basis for geolocation.
- Device and browser. Parsed from the User-Agent header. iPhone vs Android vs desktop, plus the browser family.
- City and country. Resolved from the IP at scan time so you can see which physical placement is firing.
- Timestamp. Exact server time of the scan, useful for spotting peaks during an event or a service.
- Referer. Present if the QR code was scanned from a screen rather than a printed surface, and the source page sent a referer header.
That's enough to answer the questions you actually have about a printed QR campaign. Which placement is working. Which city is engaging. Which day is hot. Which hour. Which device platform you should design the landing page for. You can dig deeper on the dynamic QR code with tracking page or the QR code location tracking page.
Native tracking vs Google Analytics, side by side
Here's how the two approaches compare for a typical printed QR campaign.
| Concern | Native /q/{slug} | Google Analytics |
|---|---|---|
| Setup | Generate a dynamic code | GA property + tag + UTMs + consent |
| Script on landing page | None | Required |
| Works on third-party pages | Yes | Only if you can install the tag |
| Survives bounces under one second | Yes, scan is logged before redirect | Often no, page may close before tag fires |
| Cookies on destination | None added by the redirect | Yes |
| Editable destination | Yes, change any time | No |
This isn't an argument against Google Analytics in general. GA is great for measuring on-site behavior. It's just the wrong tool for the question "did this physical sticker get scanned." For that, a redirect log is more reliable, simpler to set up, and easier to keep clean. Google's own help center on measurement events assumes the user is already on a page with the tag installed, which is exactly the assumption that breaks for printed QR codes.
Setting it up in a few minutes
Three steps. First, open the dynamic QR code generator, paste your destination URL, and pick a short slug between 3 and 25 characters. Second, download the QR as PNG or SVG and print it on whatever you're putting in the world: a poster, a flyer, a table tent, a name badge. Third, open the dashboard whenever you want and check the scan log.
If you want to redirect a single printed code at different destinations over time, that's just an edit in the dashboard. The same poster can point at a fundraiser this month and a thank-you page next month. There's nothing to reprint.
For donation campaigns specifically, see the dynamic QR code for donations page. For a worked example tied to a printed table tent, see our restaurant donation jar guide. For event displays, see the fundraising thermometer post.
Frequently Asked Questions
Q.01 Can I track QR code scans without Google Analytics?
Q.02 What data does native QR scan tracking capture?
Q.03 Do I need to add JavaScript to my landing page?
Q.04 Does native QR tracking use cookies?
Q.05 Can I still use Google Analytics on top of this?
Track scans without the tag manager
Generate a dynamic QR code with native scan logging in under a minute.
Generate QR Code Free