GTM for QR Pages: Track QR Landing Pages With Tag Manager

31 October 2026GTM for QR Pages: Track QR Landing Pages With Tag Manager

GTM for QR Pages: Track QR Landing Pages With Tag Manager

Decorative sketch framing a QR tracking title

Google Tag Manager (GTM) can measure what happens on the page a QR code opens, but it cannot see the scan itself. A scan happens on a phone camera, before any page loads. To track a QR campaign properly you need two layers: a tagged destination URL that tells GA4 where the visit came from, and a GTM container on the landing page that records what the visitor does next.

This guide walks through both layers, step by step, for marketers who run QR codes on print, packaging, signage and events.

Qrlytics
Track QR Campaigns Beyond the Page
Qrlytics combines QR code management with real-time analytics, helping you measure scans alongside the landing-page activity GTM records.
Explore QRlytics

TL;DR

  • GTM tracks activity on a page that carries your container. It does not detect the camera scan, so the visit only appears in GA4 once the page loads.
  • Add UTM parameters (utm_source, utm_medium, utm_campaign, and utm_content for creatives) to every QR destination URL so GA4 can attribute the visit.
  • Install a Google tag through GTM, trigger it on initialization, and verify with Tag Assistant and GA4 DebugView before you print anything.
  • If you cannot edit the destination page, put a dynamic QR code in front of it so you can still count scans and change the target later.
  • In the US, confirm your consent approach with a privacy attorney, especially if your QR page collects sensitive information.

Table of Contents

  • What GTM can and cannot see on a QR page
  • Step 1: Tag every QR destination URL with UTMs
  • Step 2: Set up GA4 and the Google tag in GTM
  • Step 3: Decide what to measure on the page
  • Step 4: Test before anything goes to print
  • Why GTM alone undercounts QR campaigns
  • What if you can’t edit the destination page?
  • Privacy and consent when you track QR visitors in the US
  • Our perspective: measure the scan and the session separately
  • Put scan analytics in front of your GTM setup
  • FAQ
  • Sources

What GTM can and cannot see on a QR page

Google describes Tag Manager as a system for managing tags on your site, while the Google tag is what sends data to Google Analytics 4 (Google Tag Manager vs. gtag.js). That wording matters for QR work. GTM lives inside a web page. If the page does not load, GTM sees nothing.

So think of a QR journey as three moments:

  1. The scan. A phone camera reads the code and opens a URL. GTM is not involved.
  2. The redirect. If the code is dynamic, a short link forwards the visitor to your page. Still no GTM.
  3. The page view and what follows. Your container loads and the Google tag fires. Now GTM can measure.

That gap explains most of the confusion behind “GTM for QR pages”. People expect GTM to report scans, then find that their GA4 numbers are lower than their print run suggests, or that visits show up as “direct”. The fix is not a cleverer trigger. It is a clean destination URL and, ideally, a scan-level record kept by the QR platform itself.

What GTM does well once the page loads: Google says the Google tag can automatically measure page views, clicks, scrolls and more in Google Analytics (Google Tag Manager vs. gtag.js). For a QR landing page, that covers most of what you need to start: who arrived, from which campaign, how far they scrolled, and whether they tapped your call to action.

Step 1: Tag every QR destination URL with UTMs

Before you touch GTM, fix the URL inside the code. Without campaign parameters, a visit from a poster can land in GA4 as direct traffic, and you cannot tell the poster from the flyer.

Google’s guidance is to tag destination URLs with utm_source, utm_medium and utm_campaign, and to use utm_content to tell creatives apart. You then read session source/medium and session campaign under Acquisition > Traffic acquisition (URL builders: Collect campaign data with custom URLs).

A workable naming pattern for print:

Parameter Example value What it answers
utm_source qr Which channel family
utm_medium print or packaging or signage Which physical format
utm_campaign spring_menu_launch Which initiative
utm_content table_tent_a or window_poster Which creative or placement

Keep values lowercase, use underscores, and write them down in a shared sheet. GA4 treats Poster and poster as different values, and a messy naming scheme is the quickest way to ruin a report. Our walkthrough on UTM tagging for QR codes in four moves covers the naming conventions in more detail, and the QR analytics metrics guide includes a campaign sheet you can copy.

One practical rule: put the UTMs on the destination, not on a short link that you then print as a static code. If the destination changes later, you want to update it without reprinting.

Step 2: Set up GA4 and the Google tag in GTM

If you already run GTM and GA4 on your main site, your landing page may only need the container snippet. If not, here is the sequence Google documents.

Google’s setup path is to create a GA4 property and web data stream, set up Tag Manager, then create a Google tag using your Tag ID and trigger it on Initialization, either on all initialization events or on some of them (Set up Google Analytics in Tag Manager).

In practice:

  1. Create the GA4 property and a web data stream for the domain that hosts your QR landing pages. Copy the Tag ID, which starts with G-.
  2. Create a GTM web container and install its two snippets on the landing page template: one high in the <head>, one right after the opening <body>.
  3. Add a Google tag in the container, paste the Tag ID, and choose the Initialization trigger.
  4. Publish the container.

Google states that this tag loads Analytics on the page, sets Analytics cookies, and sends automatically collected and enhanced-measurement events (Set up Google Analytics in Tag Manager). In other words, page views and basic engagement start flowing without extra work.

Give QR traffic its own landing pages

A dedicated landing page per campaign makes reporting far simpler than sending every code to your home page. You can filter by page path, attach page-specific events, and change the layout for a phone screen without touching your main site. The examples of branded QR landing pages show how teams structure these, and if you want ideas for improving the page itself, this overview of landing page optimization strategies is a good companion.

Step 3: Decide what to measure on the page

The page view tells you someone arrived. What they do next tells you whether the code earned its place on the poster. Choose three to five actions and no more. Typical picks for a QR landing page:

  • Primary call-to-action click: “Book a table”, “Get the coupon”, “Download the app”.
  • Form submission: a sign-up or lead form.
  • Scroll depth: useful for long pages such as manuals or product stories.
  • Outbound click: to a store listing, maps link or phone number.
  • Purchase or booking confirmation: the one that counts for revenue.

Prefer confirmation events over click triggers

Click triggers are tempting because they take ten minutes to build. They are also fragile: a changed button class or a redesigned page and the trigger silently stops firing. One industry guide on QR conversion events in GA4 notes that thank-you page views or dataLayer pushes are generally more dependable than click-based triggers for conversion tracking (QR code conversion events in GA4). That matches our experience: if the visitor reaches a confirmation page, fire the event there. If there is no confirmation page, ask your developer to push an event to the dataLayer when the form succeeds, and trigger a GA4 event tag from that.

For booking and ticketing flows specifically, this write-up on GA4 events for reliable booking tracking shows how event design affects the data you keep.

Mark the key events

Once an event such as generate_lead or purchase is arriving in GA4, mark it as a key event in the GA4 admin so it shows in conversion reporting. Then compare it by campaign and by utm_content. That is the report that tells you which poster actually produced leads, not just which one got scanned.

Step 4: Test before anything goes to print

A printed code cannot be patched. A broken tag can. So test the whole path, from the URL the code contains to the event in GA4.

Google’s documented method: in GTM Preview, launch Tag Assistant, enter your website URL and click Connect to verify the implementation (Set up Google Analytics in Tag Manager). For events, Google adds that you can use Preview to connect to your site, and that GA4 Realtime and DebugView show events as users trigger them (Set up Google Analytics events in Tag Manager).

A checklist you can run in about fifteen minutes:

  1. Scan the actual proof of the printed code with a real phone, not just paste the URL into a desktop browser.
  2. Confirm the page loads quickly on mobile data, not only on office Wi-Fi.
  3. Open GTM Preview and check that the Google tag fires on Initialization.
  4. In GA4 Realtime, confirm the session shows your campaign name and medium.
  5. Trigger each key action and confirm it appears in DebugView with the right parameters.
  6. Check that the UTMs survive the redirect. Some redirect chains drop query strings.

That last point deserves attention. The same industry guide warns that every live QR placement needs testing, because redirects that break attribution or consent handling can leave significant data gaps (QR code conversion events in GA4). Each extra hop in a redirect chain is another place where parameters or consent signals can be lost, so keep the chain short. We explain how in reducing QR redirect hops to one, and the QR redirection stability guide covers what to monitor over time.

Why GTM alone undercounts QR campaigns

Even a perfect GTM setup misses people. Think about who never reaches your tag:

  • Visitors who scan, then close the tab before the page loads.
  • Visitors who decline analytics cookies, depending on how your consent banner is configured.
  • Visitors whose browsers or content blockers stop the tag from firing.

GA4 therefore reports page-load sessions, not scans. The two numbers will differ, and that is normal. Scan-level counts, taken at the redirect before the page loads, give you the top of the funnel. GA4 gives you the middle and bottom. Reading them side by side shows where people drop away: scanned but never loaded, loaded but never acted.

The same logic explains why scan totals and GA4 users rarely match. Repeat scans, shared links and re-opened tabs all change the picture, which we cover in unique vs repeat scans. For the broader process of joining scan data to conversions, see our digital engagement tracking workflow.

What if you can’t edit the destination page?

This happens constantly: the QR code points to a partner’s page, a marketplace listing, a PDF, a booking widget on someone else’s domain, or a corporate site where changes take weeks. You cannot install GTM there, and GTM on your own pages will never see those visits.

You still have options:

  1. Track the scan, not the page. Use a dynamic QR code, so the scan is recorded at the redirect and the visitor then continues to the page you do not control. You get scan counts, time, device and location without touching the destination.
  2. Add UTMs to the destination URL anyway. If the page owner runs GA4 and shares reports, your campaign parameters will show up on their side. Ask for a monthly export for your campaign.
  3. Ask for a tag, or for a light-touch alternative. If you have a relationship with the page owner, request that your container, or at least a GA4 event, be added. Failing that, ask whether they can send you conversion counts by campaign.
  4. Insert a page you do control. A simple branded landing page on your domain, with GTM installed, can sit between the code and the third-party destination. The visitor taps once to continue. You lose a little conversion to the extra step, so use this only when the data matters more.
  5. Plan for the change. A dynamic code lets you swap the destination later, for instance once the third party gives you access, without reprinting.

The common thread: never print a static code that points straight to a page you cannot edit and do not own. If that page moves, the print run is wasted.

Privacy and consent when you track QR visitors in the US

The US has no single federal law that mirrors the EU’s cookie rules, so what applies to you depends on your sector, your state and what your page collects. Treat the following as a starting point for a conversation with a privacy attorney, not as legal advice.

One official reference point: the Federal Trade Commission’s Notice of Penalty Offenses states that using tracking technologies on information collected in a confidential context, for purposes beyond what was explicitly requested, requires affirmative express consent. The FTC also says terms buried in a privacy policy or terms of service do not count as clear and conspicuous disclosure (FTC Notice of Penalty Offenses on misuse of information collected in confidential contexts, September 2023).

What that means in practice for a QR page:

  • If your page collects health, financial or other sensitive details (for example a clinic check-in or a loan enquiry form), do not pass that data to analytics tools without clear, specific consent. Talk to a privacy attorney before launch.
  • Keep your tag configuration simple. Fewer tags means fewer places where data goes where you did not intend.
  • Make your disclosure visible on the landing page itself, not only in the footer policy.
  • If you also reach visitors in the EU or UK, the rules are stricter there and a consent banner that gates your tags is the norm.

Scan analytics can also be collected without cookies. Our guide to cookieless QR analytics explains what you can count at the redirect without placing anything on the visitor’s device.

Our perspective: measure the scan and the session separately

We build QR tooling, and the question we hear most is how to get GTM to “see” scans. Our answer is always to stop asking GTM to do a job it was not built for.

GTM is excellent at the page. A QR platform is excellent at the redirect. Used together, they give you a complete funnel: scans from the platform, sessions and conversions from GA4, joined by the same campaign name in your UTMs. If one of them is missing, you are guessing about half the journey.

QR scans connected to sessions and conversions

The second thing we insist on is permanence. Analytics only matter if the code keeps working. Many free generators switch codes off when a subscription lapses or a payment fails, which turns a printed run into a dead end and wipes out the data trail with it. At QRlytics, codes created during an active subscription keep working, regardless of billing status. That lets you plan a campaign with a long tail, such as packaging or signage, and keep reading the results for as long as people scan.

Finally, keep the setup boring. One container, one naming scheme, a handful of events, a tested redirect. The teams with the cleanest reports are rarely the ones with the most tags.

— The

Put scan analytics in front of your GTM setup

If you want scan-level data to sit alongside your GA4 sessions, a dynamic QR code gives you an editable destination and a scan record before the page loads. You can start on the Free plan, which needs no credit card, and see the QR codes with analytics options before deciding. Pro plan details are on the pricing page.

Qrlytics

For a first test, make one code, tag its destination with UTMs, scan it from a phone and watch both reports update. If you want a more general starting point, our lead generation with QR codes guide shows where those conversions typically come from.

FAQ

Can Google Tag Manager track QR code scans?

Not directly. GTM only runs on pages that carry your container, so it records the visit after the destination page loads, not the camera scan. To count scans, use a dynamic QR code that logs each scan at the redirect, then use GTM and GA4 for what visitors do next.

Do I need a separate GTM container for QR landing pages?

No. You can use your existing container on the same domain and separate QR traffic by campaign parameters and page path. A separate container only makes sense when QR pages live on a different domain run by a different team.

Why does my QR traffic show as direct in GA4?

Usually the destination URL has no campaign parameters, or a redirect has stripped them. Add utm_source, utm_medium and utm_campaign to the URL inside the code, then scan a test code and check the session source/medium in GA4 Realtime.

How do I test GTM on a QR page before printing?

Scan the proof with a phone, then use GTM Preview with Tag Assistant to confirm the Google tag fires. Check GA4 Realtime and DebugView to see the campaign values and each event arrive. Repeat for every placement you plan to print.

Is a consent banner required on a QR landing page in the US?

It depends on your state, your sector and what you collect, so ask a privacy attorney. If the page gathers sensitive information, such as health or financial details, clear and specific consent is the safer route, and a privacy policy link alone is not enough.

Sources

  • Google Tag Manager vs. gtag.js, Tag Manager Help
  • Set up Google Analytics in Tag Manager, Tag Manager Help
  • Set up Google Analytics events in Tag Manager, Tag Manager Help
  • URL builders: Collect campaign data with custom URLs, Analytics Help
  • FTC Notice of Penalty Offenses Concerning Misuse of Information Collected in Confidential Contexts
  • How to Create QR Code Conversion Events in GA4

Recommended

  • Examples of branded code landing pages for marketers
  • Unique QR Landing Pages: How to Build One per Campaign
  • Cut QR Scan Drop Off: Landing Page Speed (LCP Under 2s) for Marketers
  • Track Scan to Conversion: QR Analytics & Campaign Sheet for Marketers