Analytics

QR Code Tracking for Dynamic QR Codes

See which printed QR codes are actually being scanned — by code, over time, by device, and by available location. VastQR keeps automated scans visible too, so the number on the dashboard is one you can reason about instead of one you have to trust.

$19/month · up to 500 active dynamic QR codes · scan analytics included

Sample data
The VastQR analytics view: a range selector set to the last 30 days with a previous-period comparison, cards for total scans, active QR codes scanned and best day, a data-coverage panel listing how many scans carried a known device, city and mappable position, and a note that 31 scans came from crawlers and link previews.
The number of scans, and — right next to it — how much is actually known about them. Device, city and position each carry their own count, and recognised automated traffic is named rather than deducted.

How QR code tracking works

A QR code has no counter inside it. A static code sends the scanner straight to whatever URL is encoded in the pattern, so unless the destination is doing its own measuring, nothing records that a scan happened.

A dynamic code works differently. The printed pattern points at a short redirect. When that link is opened, the redirect service records the request before forwarding the visitor to the current destination. That single indirection is what makes a printed code measurable — and, separately, what makes it editable after printing.

Create trackable dynamic QR codes →

What you can actually see

Scan totals and trend

How many scan requests your codes received over the last 7, 30 or 90 days, compared against the previous period of the same length. Enough to answer whether a print run got used, which day peaked, whether activity rose after a placement went live, and whether an asset is still pulling traffic months later.

Sample data
A VastQR scan-trend bar chart covering thirty days, with a dashed line showing the previous thirty days for comparison.
Daily scans with the previous period drawn behind them. Any single day can be opened to see which codes produced it.
It is a count of scan events
Not people, not unique visitors. One person scanning three times produces three events, and there is no verified unique-person metric behind this number — so nothing on this page will call it one.

Why that distinction changes how you read every QR report →

Performance by QR code

Once there is more than one printed placement, the useful question stops being how many scans did we get and becomes which code produced them. Every code carries its own lifetime total, its total for the period, its change against the previous period and its share of the batch — so a table tent, a window decal, a package insert and a flyer can be judged separately.

Sample data
A VastQR QR-performance table listing individual codes with their status, lifetime scans, scans in the period, change against the previous period, a sparkline and each code's share of the total.
Per-code attribution. The period total is the sum of these rows — every scan in VastQR carries the id of the code that produced it, so this is an equality, not an estimate.

Device and location context, with their own denominators

Where a request carried enough information, VastQR summarises the device type and OS family behind it, and the city it appeared to come from. Crucially, each panel reports how many scans it can speak for.

If device information exists for 89% of scans, the honest reading is not “89% of scanners used this device” — it is “device information exists for 89% of recorded scans, and here is what those look like.” The three coverage figures are independent: one scan can carry a device and no city, or a city and no plottable position. Sharing a single denominator across all three panels would make at least two of them wrong.

Sample data
Two VastQR analytics panels side by side: a device donut chart noting how many scans had no readable device, and a world map with a city ranking noting how many scans could not be placed.
Each panel states what it could not account for — 38 scans with no readable device, 148 that could not be placed on the map — instead of quietly dropping them out of the percentages.

Automated traffic stays in the total

Not every request to a redirect is a person with a phone. Link previews, crawlers, security scanners, uptime checks and your own testing all produce requests.

VastQR does not subtract those and then imply the remainder is a verified human audience. Recognised automated activity is counted in every figure and named on the coverage card, so a spike that is really one crawler sweeping your links looks like what it is.

What this is not
A classification signal, not proof of personhood. Some automated agents identify themselves and some do not, so “recognised” is doing real work in that sentence. VastQR does not market perfect bot filtering or verified human scans, because neither is a claim the evidence supports.

A scan count is not a person count

This is the single most misread number in QR analytics, so it is worth being explicit about what each question can and cannot be answered with.

QuestionWhat VastQR can tell you
How much activity did this code receive?Scan-event totals and the trend across the period
Which codes generated it?Per-code attribution, summing exactly to the period total
What context arrived with those scans?Device type and OS family, city and mappable position, each with its own coverage figure
How much was automated?The count and share of recognised crawlers and link previews, counted in the total
Who scanned it?Nothing. A scan event is not an identity, and VastQR does not present it as one.

Turning printed placements into something measurable

The value of QR tracking is not the chart. It is being able to compare physical placements that are otherwise almost impossible to measure.

Take a 200-piece campaign: 50 table tents, 40 counter cards, 30 window decals, 50 flyers and 30 package inserts. Point them all at the same URL with the same untracked code and the traffic is a single undifferentiated number. Give each placement its own dynamic code — still pointing at the same destination — and you can see which placements earn their print cost, then keep, move, reprint, pause or repoint accordingly.

That is where bulk creation, editable destinations and per-code analytics stop being three features and become one workflow.

Want to know which printed code gets scanned?

Paste or upload your destinations, validate the rows, and preview the whole batch before you pay for anything.

Static and dynamic tracking are not the same measurement

CapabilityStatic QRDynamic QR in VastQR
Destination editable after printingUsually noYes
Redirect-level scan recordingNoYes
Scan count for one specific printed codeNoYes
Trend against a previous periodNoYes, over 7, 30 or 90 days
Device type and OS family, where availableNoYes
City and map position, where availableNoYes
Automated-traffic labellingNoYes
Measurable with website analytics on the destinationYesYes

The last row matters, and most comparisons get it wrong. A static code pointing at a page you control can be measured — by that page’s own analytics, using a tagged URL. What it cannot do is attribute a visit to one specific printed asset at the redirect, which is the thing per-code tracking exists for.

Compare static and dynamic codes for print →

QR analytics and website analytics answer different questions

A QR dashboard measures the handoff. GA4 measures the visit. Used together they cover the offline-to-online journey; used interchangeably they produce arguments about which number is “right.”

Use it forVastQR scan analyticsWebsite analytics such as GA4
Scan volume on a printed assetYesNo
Attribution to one specific codeYesOnly via tagged destination URLs
On-site engagement and page pathsNoYes
Conversions and revenueNoYes
Requests where the page never loadedYesNo

VastQR has no native GA4 integration. The way the two systems connect is a campaign-tagged destination URL, which GA4 reads when the page loads.

How to set up QR tracking in GA4 →

What VastQR records, and what it will not claim

Implemented today

  • scan-event totals and daily trend
  • comparison against the previous period
  • per-code attribution, summing to the total
  • device type and OS family where available
  • city and mappable position where available
  • independent coverage figures for each panel
  • recognised automated traffic, counted and labelled
  • 7, 30 and 90-day ranges
  • filtering the whole view to one batch

Not claimed

  • unique people or verified humans
  • precise GPS or personal identity
  • demographics
  • purchase or conversion attribution
  • perfect bot filtering
  • browser-level analytics
  • a native GA4 integration
  • guaranteed complete location coverage
  • guaranteed real-time delivery
Methodology
QR analytics can only use what arrived with the redirect request. Some requests do not carry every dimension, so VastQR reports coverage rather than filling the gaps with guesses. Automated traffic is classified when the analytics are read rather than when the scan is written, which means a corrected rule reclassifies the whole history instead of freezing one day’s assumptions into every stored row.

Scan analytics for up to 500 active dynamic QR codes

VastQR Bulk — $19/month includes up to 500 active dynamic QR codes, bulk CSV creation, destinations you can edit after printing, scan analytics, batch management, the supported design controls, and PNG, SVG and PDF downloads. Billing is month to month.

There is no per-scan charge on the current $19 plan.

Know which printed QR codes are actually being used

Prepare a batch, validate the destinations, preview the design, and activate trackable dynamic codes when you are ready to deploy them. Preview the batch before you pay — $19/month for up to 500 active codes.

QR code tracking FAQ

Can you track how many times a QR code is scanned?
Yes, when the QR points at a trackable redirect. A VastQR dynamic code resolves through a managed redirect, so the request can be recorded before the visitor is forwarded to the current destination.
Can a static QR code be tracked?
Not by itself — a static pattern reports nothing. If it points at a page you control, website analytics and campaign-tagged URLs can still measure the resulting visit. That is destination analytics, which is a different measurement than redirect-level tracking tied to a specific code.
Can you see who scanned a QR code?
No, and no honest QR product should claim it. VastQR reports scan activity and the context that arrived with each request — device type, OS family and approximate city where available. A scan event is not an identified person.
Can I track the location of QR code scans?
City and mappable position are available for some scans and not others, depending on what the request carried. The dashboard shows how many scans actually had location data, so a map is never presented as if it covered the whole period.
Does VastQR count bots and link previews?
Yes — and it says so. Recognised automated traffic is counted in every figure and labelled on the coverage card rather than quietly removed. Filtering silently would make a headline look reasonable and be wrong.
What is the difference between QR tracking and GA4?
QR tracking measures the redirect request. GA4 measures what happens on your website after the page loads. Neither replaces the other, and the two numbers legitimately differ.
Can I track hundreds of QR codes at once?
Yes. VastQR is built around batches, with per-code attribution inside them, up to 500 active dynamic codes on the current plan.