How Do I See Which City My QR Code Scans Come From?
See QR code scans by city in a dynamic code's location report or GA4's City dimension. Both estimate the city from the IP address, so it's approximate.
You see which city your QR code scans come from by using a dynamic QR code and opening its location report, which lists scans by country and city. If the code points to your own website with UTM tags, Google Analytics 4 shows the same thing in its City dimension. Either way, the city is estimated from the phone’s IP address, so QR code scans by city are a good guide but not an exact map.
Why only a dynamic code can show scan cities
A QR code can only report a city if a server sees the scan, and only dynamic codes pass through one. A static code holds the final link in its pattern, so the phone goes straight to the destination and nothing logs the visit.
A dynamic code holds a short link that hits a redirect server first. That server sees the phone’s IP address, looks up its approximate location, logs the scan and sends the person on. Not sure which type you printed? Here’s how to tell if a QR code is static or dynamic.
How to see QR code scans by city in your dashboard
Most QR tools that track scans show a location section with a map and a table of countries and cities. You open the code, go to the location or geography view, and sort cities by scan count.
- Open the analytics page for one QR code.
- Find the location or map section.
- Switch from country to city view.
- Pick a date range of a few weeks so one-off spikes don’t skew it.
- Compare the top cities with the places you actually put the code.
In QRAnalytica, each code has maps of scans by country and city, plus device details. City, scan time and device come with the Starter plan, and scan data is collected without cookies or storing personally identifiable information. For when those scans happen, see how to see what time of day people scan your QR code.
How to see scan cities in Google Analytics 4
Google Analytics 4 shows scan cities through its City dimension, which Google defines as “the city from which user activity originated.” This works when the QR link sends people to your own site with UTM tags.
- Tag the QR link, for example with
utm_source=posterandutm_medium=qr. - In GA4, open Explore and start a free-form exploration.
- Add the dimensions City and Session source / medium.
- Filter to the medium
qrand put City in the rows.
Google’s predefined user dimensions page says “geography dimensions (e.g., City, Region) are approximated based on the IP address of the traffic.” The tagging itself is covered in how to track QR code scans in Google Analytics 4.
How accurate is QR code scan location?
QR scan locations are usually right at the country level and much shakier at the city level. MaxMind, one of the main IP location providers, publishes typical accuracy ranges on its IP geolocation accuracy page:
| Level | Typical accuracy, per MaxMind |
|---|---|
| Country | ”exceeding 99%, especially when excluding VPN usage” |
| State or province | ”typically ranging from 55% to 80%“ |
| City | ”typical accuracy rates of 20% to 75%” |
A city hit rate as low as 20% is why your list can look odd. In MaxMind’s words, IP geolocation “provides an approximate location, not a precise one.”
Google’s older Universal Analytics geographical data article notes that location values “are automatically derived from the IP address of the hit” and that “IP-based locations are approximate.”
Why scans show up in cities you never targeted
Scans land in the wrong city when the phone’s IP address belongs to a network somewhere else. Usually that’s one of three things.
- Mobile data. MaxMind says mobile geolocation “typically resolves to a broad region, sometimes spanning multiple subdivisions, rather than a specific city or postal code.” A mobile IP address can even move between users who are hundreds of kilometers apart within a few minutes.
- VPNs and proxies. When someone uses a VPN, the IP address belongs to the VPN server, which MaxMind notes “could be in a completely different city or country.”
- iCloud Private Relay. Apple’s Private Relay guidance says relay addresses “map to the region a user is in,” and by default connections are “associated with the city closest to the client.” Apple adds that one relay address may be shared by more than one user in the same area.
Private Relay does the least damage, since it still points near the real place. A VPN does the most. It can move a scan to another country.
A worked example: flyers in one town, scans in three cities
Picture a café that posts flyers with one QR code around a single small town. After two weeks, the city report shows most scans in that town, a cluster in the nearest big city and a few scans from another country.
- Home town: the real audience, matching where the flyers are.
- Nearby big city: often mobile data. Carriers place phones in a broad region, so someone standing next to the flyer can show up under the regional hub.
- Abroad: almost always a VPN. One or two scans there aren’t worth chasing.
So don’t use the city list for placement decisions. To learn which flyer spot works, give each one its own code, as explained in how to track QR code scans by flyer location. The code tells you the place, and the city report just confirms it.
How to tell a real city from a routing artifact
You can tell a real scan city from a network artifact by checking whether it matches where the code physically is. Run these quick checks before you report a city to anyone:
- No placement there? If you never put the code in that city, assume routing first.
- Nearest large city. A regional hub next to your real town usually means mobile data.
- A handful of scans abroad is VPN traffic unless you have a reason to expect visitors.
- One-off cities that appear once and vanish over a few weeks are noise.
You can also scan your own code on mobile data, then on Wi-Fi, and see which city each lands in. That shows how your local carrier gets placed.
My take on city data for QR codes
Use city data to confirm a campaign is reaching the right region, and nothing finer. To choose between two streets or two shops, separate codes beat any location report.
The limitation is built into the method: IP location can’t find a person. MaxMind states that “IP geolocation accuracy is not about pinpointing an individual’s residence.” For what you can learn about who scanned, read can you see who scanned your QR code.
FAQ
Does a QR code scan show the exact location of the person?
No. Most QR analytics estimate the location from the phone’s IP address, which gives an approximate city at best. MaxMind, a major IP location provider, says IP geolocation is not about pinpointing an individual’s residence.
Why do my QR code scans show a city where I never put the code?
The scan was probably routed through a mobile carrier, a VPN or iCloud Private Relay, so the IP address points to a different place from the phone. Mobile IP addresses often resolve to a broad region rather than a specific city.
Can I see the city for a static QR code?
No. A static code sends the phone straight to the link without passing through a server, so nothing records the scan or its location.
Can I see scan cities in Google Analytics 4?
Yes, if the QR link points to your site with UTM tags. GA4’s City dimension is approximated from the IP address of the traffic, the same way QR dashboards do it.