Why Is My GA4 Acquisition Report Showing Too Much Direct Traffic ?
Is your GA4 question why is all my traffic direct? Or why is it not showing data after 3 days, it could be your consent management software (cookie banner).
Why is my GA4 Acquisition report showing Direct as the main channel?
If you have started your GA4 journey, added your configuration tag, then looked at your reports and thought to yourself “why is all my acquisition traffic showing up as direct traffic”, or perhaps you have no data at all. A possible solution could be found in looking at your cookie settings.
I had a chat with Michael Patten who is the Data Strategist from Launch Online on this very topic.
Michael shared his thoughts with me on a problem that we have both seen quite frequently with GA4 setups. That problem has been an acquisition report that is largely Direct traffic, whilst we can look at Universal Analytics vs GA4 it can be easy to see the variation, but even when UA goes away, when you know you are doing email marketing,PPC, social, SEO, and ALL your traffic is landing in Direct, you know something is off. There has also been a few issues with migrations I have worked on where no data has shown up. If you have found this post because you have that same problem, one suggestion to investigate is your cookie settings from your consent management platform.
Now, this is not legal advice (we always have to say that right), however, a problem shared and all that. So, sit back and watch this chat where we talk about our shared experience in troubleshooting this issue. Michael also does a helpful walkthrough for a test site and shares his process.
Here are the transcript notes from the video:
Hello, my measurement-loving friends, I am trying something different and hopefully, this is going to work from speaking to lots of clients and students and everybody’s trying to learn all about Google Analytics 4 and some problems that you’ve got. We thought why don’t we do a video version of it to make it a bit easier for people to digest the content?’
And my first ever way of doing this is with the wonderful Michael Patten from Launch Online. I have worked with Launch Online for nearly two years. We did some training on GA4 and I’ve spoken at your events, and they are such a wonderful, wonderful bunch of people. Super smart, super engaging, we do really good work. Michael is an absolute wizard when it comes to problem-solving. I send my clients his way because he’s a trusted pair of hands. He’s done all of my cookie consent work and that’s what we’re going to be talking about today.
Sounds boring, and obviously, we all have to say this isn’t legal advice, this is just general marketing advice, do what you will with it. But from my work from GA4 migrations, I have seen two particular problems people have spent far too long looking in the wrong places because you don’t know what you don’t know.
And that is problem when it comes to their traffic not being attributed correctly, going into the Default Channel Grouping of Direct, or GA4 it not firing at all.
Well, we’ll start off with one of the first problems that we’ve seen and I know that this is something that I’ve seen with clients in particular Shopify users. Having worked with a number of e-commerce brands that have used the Shopify cookie banner which started this idea for this video.
This is a GA4 implementation and we are in the acquisition reports otherwise known as how do people find your website. And when we look at the default channel grouping here, you will notice at the number one slot is direct, and it is a whopping part of their revenue.
And then we fall into things like paid search and organic and email and things like that. Now you could look at this on the first pass and go, okay Jill, this doesn’t look very difficult, very different.
Whilst we can have a look at the same date range in Universal Analytics, which of course we won’t be able to do after the 1st of July 2023, when we do have a look at Universal Analytics, we see a completely different acquisition report where organic is actually getting all of the love and glory for that attribution. And then we go on to the other areas. Now the client at the time was like, “Oh my god, what’s happened?”
Because the whole point of analytics is you are trying to invest in your setup and the users are building those reports so that you can build some sort of measurement dashboard that shows what are you doing, how’s your strategy working, and how’s your marketing working for you. And this was not attributed correctly when everything was getting bundled into direct. So the first thing that people do, and it’s a quite logical thing to do, is to go, “Right, let’s go and have a look at the development and go into Google Tag Manager and have a look at the tags and the triggers and everything and whatever.”
This use case example was a Shopify website and they were using the Shopify cookie banner. I had a look at other clients that had the exact same setup and the same problem was happening. Why is this only happening in Shopify?
And it turns out that when somebody went on these Shopify websites and they clicked the consent banner because obviously, we want to honor people’s consent choice. Universal Analytics was firing a page view and that’s why Universal Analytics was doing what it should be doing. But, GA4 did not fire until the second page and because of that there was nothing to link the source and medium to, so everything got bundled into direct/none, which is the bucket for direct.
I had another use case where my client had an implementation where their GA4 data stream was not showing any data, despite their GA4 configuration tag correctly firing on the site.
There’s a caveat that it can take up to 72 hours for data to show in GA4. So we were like, maybe it’s that because we could see some of the data in the dev tools it was firing but three days later there’s still no data and we’re like huh, what’s going on?
And it turns out that their cookie banner, was working for Universal Analytics but it was not firing any data layer events for GA4. But, it was sending ghost events into the data stream, which is great for the modeling but not great when you’re not looking at the data.
If you are looking at your GA4 implementation and one of your questions is, why is all my traffic direct? Or another problem is, where is my data? Why is it not showing? One area that I would like you to start to investigate is the cookie banner because having a cookie banner on your website, one doesn’t make you compliant. You can have a cookie banner, it doesn’t actually do what it’s meant to be doing.
So if you are finding yourself in this situation, this is where we’re going to borrow the brain trust from Michael, all of the information in Michael’s head, if I am a website user, I’m a GA user and I’m having this problem, how do you find out what’s going on with your cookie banner?
If you’re seeing a discrepancy between Universal Analytics and GA4, first you have to figure out by which method those platforms are tracking (eg GTM) and what consent management platform is being used (eg Shopify banner/ One Trust).
Use Shopify as an example, and it’s a good example because there are lots of pitfalls and lots of things that can go wrong with a Shopify site when you introduce a complex mechanism such as a cookie management platform. But Shopify makes it very easy for us to track via user Universal Analytics just by going into shop settings, putting in your UA property number, and then it would handle everything for you. It would automatically populate all these eCommerce events for you and things like that. However, by doing it by this method you are actually serving Universal Analytics server side.
So not in the traditional way. It’s being handled almost offsite if you like. When it comes to GA4 Shopify does not have the same solution, or at least they don’t yet. There is no option for you to put in your GA4 measurement ID just into the settings and handle it all for you. If you want GA4 on a Shopify site, you have to do it in a more traditional way, which is client side. So everything is very much working within the user’s browser on the site. So you’ve got already there, you’ve got a difference in how things are being served.
Another thing with sites like Shopify is when it comes to tying in consent controls, not just with a cookie management platform but with Shopify itself, there are lots of moving parts there as well. So commonly what you find if you’ve got a big discrepancy between GA4 and UA is that the cookie banner is blocking GA4 for people who don’t want cookies to be served to them. But UA has no way of knowing what they’ve chosen and that’s going to function normally regardless. And of course, not only is that not compliant, but it’s going to cause a headache when it comes to the detangling of your data.
I think nobody wants to touch this stuff because they’re scared because it sounds a bit ‘legal’ and it does go into the legal side of your data management. But I also think it feels really complicated and I’m not disregarding the complexity of doing the job, but it feels like there’s a barrier to learning. So is there a way that people can check as soon as they’ve watched this video, what’s going on with their cookies to see if something is firing in the right or the wrong way?
Yeah, absolutely. If you’re using Google Tag Manager for your tracking, you’re already at an advantage because Tag Manager has a built-in debug window, the tag assistant and you can see what exactly is firing at each moment in the page load sequence. And if it doesn’t fire, it should give you an indication as to why. If you are using gtag, Universal Analytics is a little bit more difficult. But there is a really nice plugin actually for Google Chrome called Adswerve dataLayer Inspector+. And that will give you similar insights to what Google Tag Manager would give you even if your tracking’s not being served by Google Tag manager.
When it comes to the kind of process of looking at this, is this something that anybody can do, or is it you have to give it to a developer or do you have to give it to an agency to look at in terms of diagnosing the problem?
Yeah, I mean, there are advantages to using an agency. They’ve got lots and lots of clients and we do this day in, day out. But in theory, so long as you go into it with an investigative mind, be your own little detective if you like, it’s fairly straightforward.
Can you walk us through what is best practice then, in terms of the perfect solution?
In fact, I’ve got a little, here’s one I made earlier. I’m going to give you a little look into my test website, would you believe? And this is a test Shopify website. So it has all of the problems that we described just moments ago if you like.
It’s very, very out of the box, not much content going on Shopify website. It’s my T-shirt store, would you believe? Prior to this video call, I made sure to clear all the cookies and I did that first because if you do clear the cookies on this, it does log you out of Shopify, so keep yourself logged for the time being. But this is what you might see typically if you use Shopify’s own cookie banner or potentially a third-party platform, is that you’ve got this tiny little banner down here not really getting in the way of anything. As a user, I can go about business without expressing whether I want cookies or not.
What at least the current rules state and have done for some time is that you shouldn’t set any cookies upon landing on your website until a user has explicitly expressed their consent. So for someone that’s following those rules, nothing would’ve been set here.
GA4 shouldn’t have fired a page view, say. So if I go about, and I’m afraid these T-shirts aren’t for sale, these are T-shirts made, so I don’t infringe any copyright law. I made them on my phone using emojis, so they don’t really make sense. Let’s have a look at this T-shirt, say. Lovely T-shirt, maybe let’s have a look at the full catalog. Maybe I’ll see if they’re based in the UK. Oh, it doesn’t say, that’s a shame. Let’s go back to the catalog. I better accept cookies actually. If I accept cookies now because GA4 hasn’t been firing that whole time.
If I accept cookies now, it’s going to think that I’ve landed on this page. It’ll think this is the first page in my journey. But not only that, but any traffic source information such as source medium, and by extension, default channel grouping is going to be lost. That’s all contained on the first page view, not the page views that follow. So right now, it thinks I’ve landed on this page and I’ve come directly, whereas actually, I could have clicked paid ad that took me to the homepage. So that is the classic reason for that being a discrepancy or a discrepancy point between platforms or potentially reflected in both platforms.
And that’s what we saw with those screen grabs that I shared at the beginning. That example where all that traffic was going into direct is because of the way the cookie banner was set on for GA4, that so much traffic was getting bundled into direct because the consent banner wasn’t firing the way it should have been firing for it to record that information.
Absolutely. At the very least, again, we’re not legal experts, but from what we know about the regulations, is that you can put an overlay over that banner. So when a new user first lands on the website, they have to say whether they want cookies or not, and that is compliant under the current regulations. So if you want to ensure certainly data accuracy and even the volume of data that you can capture is to make sure that that’s the first thing they do. There’s one school of thought which thinks it’s a bit annoying every new site you go to, you have to interact with this cookie banner, sort of jars the experience a bit. But there’s another school of thought where actually it is important that the user can say whether they are happy to be served cookies or not straight away and then their experience is tailored right from the first step there.
Because you’re trying to find the balance, aren’t you? Obviously, as marketers, we need some data to understand what should we be doing with the website in terms of our marketing strategy, our content strategy, our product strategy, your services. That’s why you’re using analytics, and you need to balance that with the permission of the user that’s landed on that website. Using your example, nothing’s firing in the background is it for GA4?
There’s no page view firing, nothing is loaded and you can end up having like you showed there, a user that can go on the website, play around, buy it, whatever, and then you don’t get any of that data because they just ignored the banner. And I do that sometimes. It’s so annoying I’m like, oh I’m just going to get on with my day because it’s not intrusive enough to kind of go, no, no you need to make a choice here. Yes or no, just pick, because you have a choice. It will work in terms of you’ll get the data and you’ve honored the preference of that user as well.
Absolutely, yes. And I guess it’s important to point out as well, having an overlay is fine but saying, “Accept our cookies or we’re not going to let you buy anything” is against the regulations. So don’t do that now.
Don’t be that person. Be nice. So when you’ve got this then, how do you fix it so that you don’t have that problem?
Sure. In fact, yeah let’s get into the diagnosis of it, and let’s assume that we are not using Tag Manager for this one. In fact, in this method of work where we’re using Tag Manager or gtag. So if I pop open my developer console here, I’ve got the plugin running for the dataLayer Inspector+, which is available on the Chrome store, that’s an unpaid recommendation there. I’m not affiliated with them at all. I just benefit from their tools on a daily basis. As we can see here, it’s got, in fact, I say see here, I need zoom in, so you can probably see that. We’ve got all of the things, all of the events that are reaching the data layer when we land on that website. As we said before, on the GA page, you see Universal Analytics is firing that page view when it shouldn’t be.
And that’s because it’s firing from server side and this cookie banner here is not set up to control things server side. So there’s problem number one, UA is working as normal, and we are breaking our compliance rules if you’d like.
If I then do what I did and go for a few pages like this, we can see that there are lots of things going on in the data layer but we aren’t seeing any activity from GA4 at all, which again is the problem we’d see if we had no overlay and had not explicitly expressed our consent preferences at the beginning of the journey.
Now if I hit accept all cookies, in theory, everything that’s set to fire when it’s allowed to should fire, but it doesn’t. We don’t see any activity here from GA4 until we go to our next page view. So that’s going to load in and now we can see or should be able to see, whether it’s functioning.
We’ve got our GA4 events coming in and first up is our page view. But because it’s only come in on the page view after we’ve accepted the cookies, we’re going to have the same problem. And the reason that that is happening is because we haven’t got any logic involved that says when a user has accepted those cookies, the tags that were meant to fire upon page load can now fire. For this example, this test website I’m using a very popular cookie management platform called OneTrust. A lot of them are quite similar in behavior for this very event. When you express your consent using the banner, it will output an event basically saying that the consent has been updated and you can use this data layer event as a trigger to fire the things that should fire upon landing. And that’s how you get around that problem. GA4 should spring into action upon accepting and for the pages that follow to have it function in a normal way,
You make it sound so easy. With consent banners talk me through the logic because we’re not talking about the logic of consent just for your Google Analytics platform. It’s also the logic for things like Google Ads or Optimize or Hotjar or HubSpot or things like that. That cookie logic needs to apply to all of it, doesn’t it?
Yes, yes, absolutely, and quite right. In the eyes of the Information Commissioner’s Office, anything that is non-essential to the website experience, especially things that track users, are deemed non-essential cookies and therefore they need to be turned on or turned off depending on what the user wants out of their website experience.
So it’ll be not only analytics cookies but things that are used for marketing targeting purposes. Even non-essential functions, say if you have an iframe in Google Maps embed if that’s going to set non-essential cookies tracking users’ activity, in theory, if you have to block out that map embed, then you should be, because it’s not stopping them from buying anything or logging into their account or speaking to an agent via chat.
And another problem that might come about as well, I’m guessing, is if you don’t have your consent banner firing on those logics, it’s possible then, if somebody doesn’t opt in that if no GA4 data is sent, you are going to have a discrepancy with the event counts that you get in GA4 to another source of truth. For example, if you are using HubSpot, and you are tracking form completions. If those logics (consent mode) and those events (GA4) aren’t firing, you might have GA4 saying you have 50 people complete a form and HubSpot says 90, and there’s always the age-old, “Why doesn’t it all make… Why doesn’t it all match up?”
I’ve always said that Google Analytics isn’t a CRM tool and it isn’t your eCommerce platform, like your source of truth with that will always be Shopify for your eCommerce and HubSpot, as an example, as the source of truth for your total lead gen.
Analytics is meant to be a marketing performance tool. Having said that though, there’s normally a variation isn’t there? I normally see anywhere between 2-5% difference in that variation between what the source of truth says and what analytics says. However, this is a problem, I think, that is happening a lot more now because of GA4 because of consent. We didn’t have this 10, or 20 years ago. You just put the code on your site and got on with your day.
Absolutely, yeah. And you’re quite right back when I started in the industry, very carefree days, you wanted Google Analytics, you just stuck it on your site, and away you went. Not only do you have the educational piece of the differences in how Universal Analytics and GA4 track by design, but when you throw consent into the mix as well then it’s quite a headache.
Talk to me about Consent Mode with Google Analytics. I’ve definitely seen this has been a friction point with clients in that they think that having a cookie banner also means that consent mode has happened. This has been a problem, hasn’t it, for people using Google Ads, in particular, that they were told, “No, no, no, you need to make sure you get all your consent mode for your remarketing,” and things like that. Consent mode, in your opinion, what is it, and how does that link in with your consent banner platform?
Yeah, and you’re quite right, it has been massively confusing the communications between the cookie management platform (CMP) providers and Google themselves. I think consent mode’s been available for use out of beta for over a year. Still, now, people are still getting the grips of it. So hopefully, I can boil it down to its essentials for you.
Where you have cookie management platforms and, traditionally if a user says, “No, I don’t want to be tracked by analytics or marketing cookies,” that previously would be data that was just lost, that’s gone. That’s untrackable, that’s in a black hole.
And the best you can do is figure out if you do have a good cookie management platform, it will tell you the proportion of users that didn’t accept cookies. So you can say looking at the proportion that did, we can model the activity of those that didn’t. What consent mode will do to take some of the manual labor out of that is if it’s set up correctly, indeed, it will still fire basic information about a user that hasn’t accepted cookies via cookieless methods, a method they call pings. So send basic things like traffic source information, have they viewed pages, have they converted? And you’ll still get that either come back into your accounts at a later date or use that information for modeling automatically using machine learning methods to automatically add that to your reports instead.
And that’s what GA4 offers, isn’t it? One of the benefits we’ve seen about GA4 as you pointed out that previously in universal you just didn’t get that information. Whereas if you have consent mode alongside your cookie management platform, then GA4 is going to help you understand what your users were doing, how they got to your website, and what they were buying, but without actually having that information about them. So it’s almost taking the weight of their clicks without telling you who clicked on it I guess, which is going to be useful.
Yeah, absolutely. And consent mode works for GA4 and Google Ads. You can integrate Universal Analytics but it doesn’t work. I think it was something they were doing then they realized they were going to move to GA4 anyway and just kind of-
Put it in the bin, set it on fire. Yeah, so I know I do a lot with analytics obviously. Just for those that have Google Ads as well, what was the kicker with consent mode and Google Ads as well? We talked about this at a Launch Event “Oh, my clients have been getting these alerts to say you do this thing or we’re going to suspend your account.” That was related to consent mode as well, wasn’t it?
Right. That was related to consent full stop and this is… Well, it’s an ongoing conversation, shall we say, with Google. It’s been escalated a few times. What Google is getting very good at detecting is whether you are not compliant and you are serving those Google Ads cookies in a non-compliant way, which of course leaves you at risk for fine and legal action yourself. But I imagine that Google would be under fire if they’re allowing their cookies to be set in this way. So I believe it’s through the remarketing tag, it can do this detection, if you like, and that is speculation. Don’t take that as pure fact.
You know, it’s what I’ve observed in the code. But yeah, they detect you’re non-compliant, they say, “Right, we’ve detected this and we need you to be compliant by this hard deadline, or your account risks suspension.” So we’ve had a few of those emails come through, and we’ve then assisted our clients in becoming compliant by that deadline. But even after that, we’re seeing their remarketing, and their conversion tags are being blocked and they’re not tracking. Even though we’ve essentially done what they’ve said. And that is an ongoing issue. This has been going on all year so far. So what we are saying to clients now is don’t leave it that late until you get served this notice, because it can be really disruptive. Make sure you get your data and your consent levers, if you like, sorted out right now.
It’s saying something, isn’t it? When you say Google is suspending them, “We won’t serve your ads,” and that’s Google saying we’re not going to take your money. And it’s like whoa, when would Google ever say they’re not going to take your money? That’s how seriously they’re taking it.
And I was doing a debrief this week actually with a migration plan, and the client said, “Oh, we have one of these letters from Google.” We’re now compliant, but they still have problems with their analytics showing Direct. Just because you got a tick box to say that one area might be compliant, doesn’t mean another area isn’t firing properly.
I think wrapping up then, going through your top tips of, you open up your browser, even if it’s, “Did you have a process,” like writing down who’s the content management platform, the name of that tool that you used for people to find to see what’s firing and what’s going on. Having a look at your Universal Analytics, what’s your kind of best practice if you’re investigating and fixing this, what are the bullet points of your report, so to speak?
Sure. So I guess if we take it from the very first day, if you like, “Oh dear, we’re not on top of this, we need to do it.” First things first would be to make sure that your tracking is already singing off the same hymn sheet. If you’ve got discrepancies in how it’s firing already, that’s only going to compound problems later down the line.
Step one, make sure, if you are using Google Ads remarketing tag is meant to fire on all pages, make sure it’s firing on the same triggers or in the same place or in the same bit of code space if you like. If you’re not using Tag Manager, put both analytics and ads across all the platforms that you use.
Then (step two) when it comes to integrating a cookie management platform, there’s lots on the market, all different prices, all different functions. I would certainly recommend one of the ones that’s recommended by Google. It’s not a surefire way of getting a good one, but it will certainly point you in the right direction.
The third point from there then would be to consider who’s doing that implementation. Something we found, and this isn’t knocking developers as a whole, because there’s lots of different developers with lots of different backgrounds that we work with. But what we tend to find in the past is some developers, and it’s a very development way of looking at things, is developers get given codes, snippets, they pop them on the website and then they go, “There you go, off you go, test it.” But of course, if you don’t know what you’re testing, that can lead to some problems again later down the line. So I think you need to either educate yourself or partner with someone who knows what they’re doing in terms of the consent process.
Even though there are consent management platforms that have auto-blocking technology. So they say, “Take all the legwork out, and we’ll do it automatically.” Those tend to be quite over-enthusiastic in what they block and you find that it blocks useful things as well. So I think you really need to be aware that you need to tailor your setup to work correctly because it can go either way, non-compliant, or blocks far too much for its own good. And then from there… Well, assuming that using those steps you’ve got a nice, compliant setup and all your tracking is firing accordingly, then it is the education piece.
Don’t just look at your analytics platforms, also look at the dashboards within your consent management platform, especially if they offer you insights into the proportions of people opting in and opting out. Because when you go to your client or your internal stakeholder and they go, “Why is all that traffic fallen off a cliff?” You’d say, “Actually, it’s not a bad thing because we have all this intel about that missing data.” Why is that missing? Was that useful data? It might not be, actually useful stuff has been retained very well and this is what we can see through the whole picture if you like.
Any other gotchas that you’ve seen that you’ve found with the whole migration process of GA4? Putting a tiny pin in the consent mode stuff, is there anything that you’ve seen, I guess with maybe your eCommerce sites or your lead gen sites? Have you found any annoying gotchas and solutions around that?
Oh, there’s got to be quite a few. The first one off the top of my head is where Google says, “Ah, we’ve gone to our consent management platform partners and we’ve made sure that their platforms are all updated, so they do consent mode automatically.”
And then when you look at it, they’re doing some functions of consent mode, but not others and it still relies on them… They recommend putting gtag on the page to handle the initial consent functions, which is great unless of course, you’re using Google Tag Manager where you want to be avoiding g-tagging hard coding to keep things nice and flexible where you add to them and amend them later down the line. So I guess the first thing is if the consent management platform says it does consent mode, make sure that it actually does all of the consent mode functions, otherwise you might still want to do it in a custom way.
Michael can be found on LinkedIn. please go and follow him for all of the wonderful things that pop out of your head. Speaking of wonderful things that pop out of your head, I know something you’ve been working on at the moment. What have you been working on, Michael, just as a little teaser of why people should follow you on LinkedIn for your wonderful brain, what have you been fixing? What things have you been working on? I know the answer, so I’m just getting you to say it.
So after being, I guess, quite frustrated with some of the tracking methods available for Shopify, particularly for GA4 where it’s all a bit… Certainly, there’s no integration available. Third-party tools sort of help but not quite hit the nail on the head. I came up with my own solution, which I called Lolly.Liquid, which is a loving tribute to our Launch’s mascot, Lolly Frog. And that will unlock a lot of the GA4 events that you’d need. So view item, view item list, stack the cart, you can checkout, purchase. All of the main eCommerce ones are in the native format, not only for GA4 but Google ads, Facebook Ads, and even Universal Analytics, and done so with the least amount of moving parts.
So in theory, there should be less to break. So that’s something we’re now offering to clients. Something that’s thrown a really tiny, if you like, a slightly significant spanner in the works is that Shopify, for Shopify Plus users, are updating their checkout. So I’m now having to make an adaptation there, but it will still work for Shopify Plus clients. It’s just the add-to-payment and then add shipping info events need a little update. But there’s something that you could come to us for, a relatively easy process, and I’d be happy to help you through that if, like myself, you have been frustrated with a lack of data or potentially incorrect data coming through into your analytics platforms from your Shopify site.
Clever person. Right. Well, that’s been really, really useful. I hope that’s been useful for other people. And thank you, Michael, for your time this morning. It’s been lovely to have a little chat. Love having our little chats but we’ve just basically recorded it, basically.
Thanks for having me as always.
Alrighty, well thank you ever so much, Michael. We’ll do another one of these hopefully soon.