Qrop logoQrop

Reading your campaign analytics: what the device and country breakdowns actually tell you

By Qrop Team ·

A tracked Qrop code logs every scan it can: when it happened, roughly where, and on what kind of phone. A campaign report adds all of that up and breaks it down. The numbers are simple to read as a total, and just as simple to misread as something more, so this guide goes through each part of the report and says what it can and can't tell you.

It applies to the campaign report in your dashboard and to the same breakdowns from the API. Tracked codes and campaigns are for accounts with purchased credits or a plan.

Total scans and unique scanners are different numbers

Total scans counts every logged scan: repeat scans by the same person, scans from a colleague checking the code, and your own test scan before printing. Unique scanners counts distinct scanners per day. Qrop builds a one-way hash from a daily key, the scanner's network address and their browser, and stores only the hash, never the address. The key changes every day, so someone who scans on Monday and again on Friday counts twice, and nobody can be followed from one day to the next.

Read unique scanners as unique scanner-days. It is a good gauge of reach on a given day and a poor count of individual customers. A wide gap between the two numbers means a lot of repeat scanning, which is common on a table code that a group scans in turn. A narrow gap suggests each scan is a different person, which is what you would hope for from a one-off flyer.

When people scan: the timeline, hour of day and day of week

The scan volume chart shows one point for each day that had at least one scan, so a gap means a day with none. Look at its shape before any single number. A spike in the days after you distribute, then a slow fade, is a normal flyer. A flat line with a few bumps is typical of a permanent sign. A spike with no obvious cause is worth asking about: did someone share the link, or did a team member test it repeatedly?

The hour and weekday charts are in South African time (UTC+2), whatever time zone the scanner is in. For a local audience that is the clock on their wall. For an audience elsewhere, shift the hours in your head. A restaurant code tends to peak at mealtimes and a poster on a commuter route in the morning and evening, so a pattern that matches where the code lives is a good sign it is being scanned by people. Scans at hours nobody is awake can be software rather than a person, such as a link previewer or a security scanner, so treat a lone overnight bar as a curiosity and not a finding.

What device, operating system and browser tell you

The device split is mostly a check that things are working: a QR code is meant to be scanned by a phone, so most scans should be mobile. A noticeable desktop share usually means someone opened the redirect link on a computer, for instance from an email or a message, rather than scanning the square. That isn't a problem, but it does mean some of your traffic never saw the printed code.

The operating system and browser breakdowns are practical. If most scans are iPhones, test your destination page on an iPhone first. If the code points at an app store, choose the link that suits the split or use a page that offers both. Neither is about the person, only the phone, so avoid conclusions about who your customers are.

Language and location are useful but approximate

Language comes from the first language the scanner's phone asks for, which reflects phone settings, not nationality. A visible share of Afrikaans phones is a reason to offer an Afrikaans version of your page. A tourist area showing mostly English says little beyond that.

Country, region and city come from the network location of the scan, provided by the hosting platform, not from GPS. Country is dependable, region usually is, and city is a hint. Mobile data can show the carrier's regional hub rather than the person's town, and a VPN shows wherever it exits. Regions use standard subdivision codes, such as WC for the Western Cape. If a city far from your print location turns up, that is a reason to look, not a conclusion. The report ranks places in a list and does not draw a map.

Labels are the cheapest way to compare placements

A campaign total tells you the campaign worked. It doesn't tell you which placement worked. Labels do. When you create a tracked code you can add up to five name and value pairs, such as location=Store 4 and flyer=A, and the report then adds a breakdown for each name: scans by location, scans by flyer. Give every placement its own code, because scans from one shared code can't be pulled apart afterwards.

Compare placements per item distributed, not as raw totals. A code on 500 flyers with 15 scans is performing very differently from a code on 20 table tents with 150, even though the second has fewer printed pieces. Keep label values consistent too: Store 4 and store4 count as different rows. Labels are for your own reporting and are never shown to the person scanning.

What a campaign report can't tell you

A scan is where Qrop's view ends. It can't say who scanned, and it can't say whether they bought, booked or signed up. To follow people after the scan, add campaign tags (UTM parameters) to the destination link and read them in your website analytics. Editing a tracked code's destination is free while the code is active, so you can add them after printing.

Small numbers deserve caution as well. Twelve scans can't show that iPhones beat Android phones, and one busy afternoon can reshape a young campaign. Wait until each slice you care about has a few dozen scans before you change anything. Two limits are worth knowing. Scan logging stops once you pass your plan's monthly scan allowance, although the redirect keeps working and the dashboard shows a note. And analytics are kept for a year from the day the code was created, even if you renew it.

A reading routine that avoids false conclusions

  1. Scan your own code once before it is printed, so you know it logs, and remember that scan is in the total.
  2. Add labels for every placement when you create the codes, with consistent spelling.
  3. Give a new campaign about a week before you read the device and location breakdowns. Early numbers swing.
  4. Read the timeline first, then hour and weekday, then labels. Leave device, language and place until last.
  5. Change one thing at a time, such as the position, the wording or the call to action, and compare the same label before and after.

Frequently asked questions

Does Qrop show who scanned my code?

No. Qrop doesn't store the scanner's IP address or any name. Unique scanners come from a one-way hash that changes every day, so it can count distinct scanners in a day but can't identify or follow a person.

Why is unique scanners lower than total scans?

Total scans counts every scan. Unique scanners counts each distinct scanner once per day, so repeat scans by the same person on the same day add to the total but not to the unique count.

Why does a scan show the wrong city?

Location comes from the network the phone used, not from GPS. Mobile data can show the carrier's regional hub and a VPN shows its exit point. Country is dependable and region usually is, but treat city as a hint.

What time zone are the hour and weekday charts in?

South African time (UTC+2) for every scan, whatever time zone the scanner was in. If your audience is elsewhere, shift the hours to match.

Do my own test scans count?

Yes. Every scan the code logs counts, including yours, until you pass your plan's monthly scan allowance. Scan once before printing to confirm it works, and allow for that scan in the total.

Can I get the same breakdowns through the API?

Yes. The per-code analytics endpoint, GET /api/v1/tracked/{id}/analytics, returns the same kinds of breakdowns, including country, device, hour and weekday. The scan events endpoint lets you page through individual scans.

How long does Qrop keep my analytics?

For one year from the date the code was created, whether or not you renew it. If you need a longer record, export the data before then.

Related guides

Ready to create your QR code?

Generate a free QR code in seconds: custom colours, logos, and PNG, SVG or PDF output.

Open the generator

We use strictly necessary cookies to run Qrop, and (only with your consent) advertising cookies. See our privacy policy for details.