
Traffic Acquisition Reports in GA4
Learn to use the Traffic Acquisition report in GA4 to track sessions, revenue, and key events accurately.
You’ve spent time and money creating a beautiful brochure, a compelling exhibition stand, or slick in-store signage.
You’ve cleverly added a QR code to bridge the gap between your physical and digital worlds. People are scanning it, visiting your site, and… disappearing into the black hole of ‘(direct)’ traffic in Google Analytics 4.
Sound familiar? It’s a common frustration.
When you don’t explicitly tell GA4 where that user has come from, it just shrugs and files them under ‘(direct)’, mixing your high-intent QR code scanners with people who simply typed your URL into their browser.
Your offline marketing efforts become invisible, and you can’t prove their value.
But here’s the thing: tracking qr code traffic is much simpler than you think.
With a little bit of setup, you can track every single visit from a QR code with precision.
When a user scans a standard QR code linked to your homepage (e.g., yourwebsite.co.uk), the journey looks like this to Google Analytics:
User opens their camera app.
They are redirected to the browser.
The browser opens yourwebsite.co.uk.
From GA4’s perspective, this is indistinguishable from someone typing the URL directly. There’s no referring source data, so it gets categorised as Direct traffic.
“If you don’t follow this process… all of that QR code tracking will go into direct.”
This makes it impossible to know if your new brochure is driving traffic, which product in your store is getting the most scans, or how many leads your event stand generated.
Yes, you can track qr codes with Google Analytics, but it needs a bit of work beforehand. The solution is to decorate the URLS that the QR code links to with UTMs.
To track this properly, we need to “decorate” the link before we turn it into a QR code.
We do this using UTM parameters—short snippets of text added to a URL that tell GA4 exactly where the user came from.
First, grab the URL of the page you want to send traffic to. For this example, we’ll use a blog post: https://yourwebsite.co.uk/blog/awesome-post.
Now, head over to Google’s free Campaign URL Builder. This is where the magic happens. You need to fill in three key fields:
utm_source: This identifies the specific source of your traffic. Think of it as the ‘where’. For a physical item, this could be brochure, exhibition_stand, or in_store_poster.
utm_medium: This is the marketing channel. For consistency, we recommend always using QR for this.
utm_campaign: Give your campaign a name so you can group activity. For example, spring_sale_brochure or london_expo_2025.
Let’s look at an example:
Website URL: https://yourwebsite.co.uk/blog/awesome-post
utm_source: sales_brochure
utm_medium: QR
utm_campaign: q3_sales_drive
The tool will then generate a new, decorated URL for you.
The new URL will be quite long. While most modern phones can handle complex QR codes, a shorter link creates a simpler, less dense code that is quicker and more reliable for all users to scan.
Copy your generated URL and pop it into a free URL shortener like Bitly.
Take your final URL (either the full UTM link or the shortened one) and use any free online QR code generator to create your image.
This is the QR code you’ll add to your brochure, stand, or other offline materials.
And that’s it. You’re now set up for accurate tracking.
So, you’ve done the setup, your campaign is live, and people are scanning. Where do you see the results?
To make sure everything is working, you can test it yourself within the realtime report. Scan the code and then navigate to Reports > Real-time in your GA4 property. Within a minute or two, you should see your visit pop up.
You can click into the ‘User source’ or ‘Session source’ cards to see the source, medium and campaign parameters you just set. If you see sales_brochure and QR, you know it’s working as expected.
After allowing 24-48 hours for data to be fully processed, you can analyse performance.
Go to Reports > Acquisition > Traffic acquisition.
The default view is Session primary channel group. Click the dropdown arrow next to it and change the primary dimension to Session medium.
You will now see a row for QR. This shows you all the traffic generated from any QR code you have tagged. Of course, the expectation here is that you look for the session medium you used, so that might be different for you.
From here, you can analyse all the associated metrics you care about: how many users you acquired, how engaged they were, and, crucially, whether they completed any key events (conversions) or generated revenue.
If you plan on using QR codes regularly, here’s a pro tip: create a dedicated channel group. This is the same approach as when you create an AI channel in GA4.
This tidies up your reports and lets you see all your offline efforts in one place at a glance.
Navigate to Admin > Data display > Channel groups.
You will likely see a Primary Channel Group. Click on it to edit.
Click ‘Add new channel’.
Give it a name. We suggest ‘Offline’ or ‘QR Channel’.
Set the condition: Medium matches exactly QR.
Click ‘Apply’ and then ‘Save’.
When it comes to tracking qr codes in Google Analytics, taking these few extra minutes to add UTM parameters to your links before creating a QR code is a non-negotiable step for any serious marketer.
It turns an untrackable marketing activity into a rich source of data, allowing you to finally prove the ROI of your offline campaigns and make better decisions for the future.
Q: Do I need to create a new UTM-tagged link for every single QR code? A: Yes, if you want to track them separately. For example, if you have a QR code on a poster and one in a brochure for the same campaign, you could use utm_source=poster for one and utm_source=brochure for the other. This lets you see which physical asset is performing better.
Q: Can I see conversions and revenue from my QR codes? A: Absolutely! As long as you have conversion tracking and/or e-commerce tracking set up in GA4, the Traffic acquisition report will show you exactly how many key events and how much revenue can be attributed to your QR medium.
Q: What’s the difference between utm_source and utm_campaign again? A: Think of it like this: utm_campaign is the why (e.g., ‘summer_sale’), and utm_source is the where (e.g., ‘flyer’). You might run the ‘summer_sale’ campaign across flyers, posters, and in-store displays. Each would have a different source but the same campaign name.

Learn to use the Traffic Acquisition report in GA4 to track sessions, revenue, and key events accurately.

Learn how to use GTM Base Containers to standardise tracking, improve efficiency, and delight your clients.

Ever noticed different numbers in GA4 Reports vs Explorations? Learn the 6 technical reasons why discrepancies happen

Learn how GA4 User Stickiness measures habit formation and retention
Author
Hello, I'm Kyle Rushton McGregor!
I’m an experienced GA4 Specialist with a demonstrated history of working with Google Tag Manager and Looker Studio. I’m an international speaker who has trained 1000s of people on all things analytics.