Skip to content

How to Track QR Code Campaigns with UTM Tags and GA4

By WE CREATE QR CODE · 4 min · Published · Updated

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:

ParameterAppointment cardFlyer
utm_sourceappointment_cardneighbourhood_flyer
utm_mediumqrqr
utm_campaignautumn_serviceautumn_service
utm_contentfront_deskdoorstep

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.

QuestionMeasureLimitation
Did a placement bring visitors?Recorded sessions for its tagged URLSome visits are not collected
Did visitors use the page?Relevant interaction eventsEvents need correct implementation
Did the campaign produce enquiries?Confirmed submission eventsAn enquiry is not a completed sale

Keep a campaign register before printing

Do not mistake a redirect for a measured page visit

A server redirect alone does not automatically create a GA4 page view. If the visitor is immediately sent elsewhere, your analytics tag may never load. To measure arrivals in your own GA4 property, use a useful destination page you control with working analytics and applicable consent, or design a separate, deliberate measurement implementation.

This matters for social profile codes: adding UTM tags to an Instagram URL does not give your GA4 property access to Instagram visits or follows. An instrumented page on your domain can record eligible arrivals and an outbound click when that event is implemented, but the click is not proof of a new follower. See the Instagram print checklist for a workflow that keeps those outcomes separate.

Record the approved artwork and destination

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.

Blog