You can measure visits from a printed QR code without buying scan tracking from a QR provider. Encode a website URL with campaign parameters, then read those visits in the destination website's analytics. You need control of that website and a working analytics installation.
This measures recorded website visits, not every camera scan. A person might preview a link without opening it, decline analytics consent or lose their connection. WE CREATE QR CODE generates static codes and does not supply a scan dashboard.
Give each placement its own campaign URL
Imagine a home-services business distributing appointment cards and flyers for the same autumn promotion. If both materials use the identical link, analytics cannot distinguish their placements. Prepare separate URLs before generating the images.
Google's campaign URL documentation describes using source, medium and campaign parameters to identify referred traffic. Here is an illustrative naming plan for your own domain:
| Parameter | Appointment card | Flyer |
|---|---|---|
| utm_source | appointment_card | neighbourhood_flyer |
| utm_medium | qr | qr |
| utm_campaign | autumn_service | autumn_service |
| utm_content | front_desk | doorstep |
The first address might be:
https://example.com/book?utm_source=appointment_card&utm_medium=qr&utm_campaign=autumn_service&utm_content=front_desk
Replace the example domain with a real destination. Keep spelling and case consistent across placements. If your URL already contains a question mark, append additional parameters with an ampersand instead of adding another question mark. Do not put customer names, email addresses or other personal details into campaign parameters.
Create and test the complete journey
Paste the full tagged URL into the website QR generator. Download the image, scan it and open the destination. Check that the browser address still contains the parameters after redirects.
On your own website, verify that GA4 records the visit. Realtime or DebugView can help check collection; processed acquisition reports may take longer. Record the exact test time and placement so you can distinguish your checks from genuine visitors.
If a booking provider removes the tags, your measurement may stop at your landing page. Cross-domain booking attribution needs a separate setup supported by both sites. Do not claim completed appointments based only on arrival at a booking button.
Read the right report and choose an outcome
In GA4, inspect session source/medium and session campaign in acquisition reporting. A custom medium such as qr may appear outside a default channel group; inspect the source and medium directly instead of assuming all QR traffic belongs in a standard channel.
Pick a useful outcome as well as visits: a submitted enquiry, a completed reservation or a brochure download. The event must represent an action that actually happened. A click on "Book" and a confirmed booking are different measurements.
| Question | Measure | Limitation |
|---|---|---|
| Did a placement bring visitors? | Recorded sessions for its tagged URL | Some visits are not collected |
| Did visitors use the page? | Relevant interaction events | Events need correct implementation |
| Did the campaign produce enquiries? | Confirmed submission events | An enquiry is not a completed sale |
Keep a campaign register before printing
Save the artwork filename, encoded URL, placement, publication date and person responsible for the destination in one sheet. Keep the original URL active for as long as the material circulates. With a static QR code, changing the image file in your folder does not change cards already printed.
For a destination you need to update frequently, use a stable page on your own domain. The restaurant menu workflow shows this principle in practice. Test both the printed code and the analytics journey before judging campaign results.