Static and dynamic codes
A QR code can hold your address in two ways.
- Static (every code on this site): the address itself is encoded in the pattern. The phone reads it and opens it directly. Nothing can switch it off, and no one sees who scanned it.
- Dynamic (sold by many QR services): the pattern holds a short link on the service’s server, which forwards to your address. You can change the destination and see scan counts, but only while you pay or the trial lasts. When it ends, the short link stops forwarding or shows an ad page, and every flyer, menu and sign with the code breaks.
For anything printed that should outlive a subscription, a static code is the safer choice. The two things dynamic codes offer, changing the destination and counting scans, you can get without them.
Count scans with UTM tags
Campaign tags are extra parameters on your own link, which analytics tools such as Google Analytics read to tell where a visit came from (Google Analytics Help). This page opens with the three tags most tools use:
| Tag | Example | What to put there |
|---|---|---|
utm_source |
table-card |
Where the code is printed: a flyer, a poster, a table card |
utm_medium |
qr |
How people arrive: keep it qr for every code, so they group together |
utm_campaign |
autumn-menu |
What it promotes, so each campaign gets its own row |
Fill in the three fields under the web address and they are added to the link inside the code. Make one code per placement, with a different source, and your analytics shows which poster or table card gets scanned. Keep tags short and lowercase: every character makes the code denser.
Change the destination later
Point the code at a page you own rather than a third-party link, for example your site’s /menu address. To change what people see, update that page or set up a redirect on your own server. The printed code never has to change, and no one else controls it.