Why GA4 doesn’t count QR code scans

Updated by the UTM Builder team at Limner.

Because the scan doesn’t happen on your site. The camera reads the code, shows the link, and only then does the browser open the page. GA4 only exists from that moment on, and only if the page loads with the tag.

The path from scan to visit

  1. The camera decodes the QR code. In a static QR code, the link is encoded in the pattern itself, so nothing goes over the internet at that point.
  2. The person taps the link, or gives up.
  3. The browser opens the URL. If a redirect strips the query string, the parameters are lost.
  4. The page loads and the tag fires. Google’s help says the session_start event carries the information that determines attribution, such as UTM parameters and the referrer.

Only step 4 shows up in GA4. That’s why there’s no scan metric in the report. There are sessions.

What about scan counters?

Scan counts come from dynamic QR codes. A dynamic code points to an address owned by the vendor, which logs the hit and redirects to your site. The count belongs to the vendor, not to GA4, and the code only works as long as that service stays online. A static QR code has no middleman: it never expires, but nobody counts the scans either.

Why GA4 shows fewer

How to measure QR codes with what you have

Official sources