How to track app downloads from a QR code or offline campaign

Offline material has no cookies and no ad pixels. What you can measure is the scan, and with the right links, the installs it led to. Here is a setup that tells you which poster, table tent or flyer worked — and where its limits are.

What can be measured

Step 1: one link per placement

A single link on every poster tells you how many people scanned in total, not where. Give each placement its own link and its own code: cafe-table, cafe-receipt, cafe-window. All of them point to the same stores; only the address and the numbers differ.

  1. Create the first link with your store addresses and fallback.
  2. Duplicate it for each placement and give each copy an address you will recognise in a report — the store reports list campaigns by it.
  3. Download each QR code and put it on its own material. Keep a list of which code went where.

Name links after what you will compare, not after the date you made them. Six months later, spring-poster-metro is still readable; link-14 is not.

Step 2: read scans by platform, day and country

A code from the dashboard carries a small marker, so a scan is told apart from a tap on the same link in a bio. The link’s statistics show all visits as clicks, and the scans among them as a figure of their own. From there:

Step 3: see installs per link in the stores

With store campaign attribution turned on, SetLinks adds the link’s address — cafe-table in setlinks.io/cafe-table — to the store address as it redirects. Google Play receives it as utm_campaign inside the referrer parameter; the App Store receives it as a campaign token ct, together with your provider token pt.

Store attribution is on plans that include it, listed on the pricing page. If an address you paste already carries its own referrer or ct, SetLinks leaves it alone.

An example: one café, three placements

A café chain puts its app on table tents, on receipts and in the window, each with its own link. After four weeks (the figures are made up to show the reading, not taken from anyone’s account):

The table tent is clearly the placement that works, and the lunchtime peak says when staff should mention the app. The receipt is weak but cheap, so it stays. The window brings few scans, yet they come from people who are not customers yet — worth keeping if the store reports show those scans turning into installs. Without separate links, all three would be one number of 545 that says none of this.

Step 4: turn it into a number you can act on

Scans divided by the number of people who saw the material is the scan rate; installs divided by scans is how well the store page converts that traffic. A poster with many scans and few installs has a store page problem, not a poster problem. Export the clicks to CSV, put the store numbers next to them, and compare placements over the same weeks.

What this will not tell you

Questions

Can I track app downloads from a QR code?

You can count the scans precisely, and see installs per campaign in App Store Connect and Google Play Console when the link passes the campaign on. Per-person install tracking needs an SDK.

Are QR scans counted separately from clicks?

Both. A scan is a click, so it is in the total, and it is also shown on its own so you can see how much of the traffic came through the code.

Make your app link

One link and a QR code for every store. Free to start, no card required.

Create a link