Implementing GA4 through GTM
I realise that I haven’t done much GTM stuff on this blog over time – partly because the things that I have done on GTM have been more recent when life has caught up with this blog and made updates occur less often. So with a client’s tech team currently implementing a data layer on their site so that we can set up GA4 properly, I thought now would be a good time to talk about how to set up GA4 with the ‘basics’ and then we can do a bit more customisation in a future post.
Of course, those of you paying attention will have noted that the old Google Analytics was turned off at the end of June (although mine are all still working at the moment) and we are now in July, so we’re running a bit late for this one.
Set up GA4 first
The set up process is relatively simple, but there are a few things that you need to do and watch out for.
Step 1 – create a new property in the admin part of Google, within your existing account (this is not a new view of an existing property, but a brand new stand alone property – views don’t exist in GA4 world!):
Step 2 fill in the details of the property name and time zone and currency (these are for reporting purposes).
So far I am giving my properties similar names to their existing GA properties, but with GA4 appended on the end – this hopefully should avoid any confusion in the future. But it should be noted that (currently) you can edit these at a later date if you so wish
Step 3 is one where if you were doing form optimisation you’d recommend them to take out because it doesn’t seem to give any actual value.
Step 4 in the process seems like another one that you wouldn’t need, but actually this is important because it is deciding what reports are going to appear as default after the account is created (again, fear not, because you can change these at a later date):
My recommendation if you don’t want to think about it too much is to tick as many boxes as you can and then deal with it at a later date (much easier to remove useless reports than deal with people trying to fudge around a subset).
Step 5 is the bit where it starts to get interesting – setting up a data stream:
I’ve expanded the advanced settings here so that you can see them, but the defaults are everything that is turned on. Note that a checkbox has been put into place that automatically loads page views when there is a browser history change – if any of your site is a single page app and you are intending to manually tag this, then you should turn that off as it will create duplicate events. I also quite often turn off form engagements, partially because it relies on your forms being recognisable.
In my case, the site does have a lot of single page app history changes and when the data layer implementation exists I will create page view for that in GTM, but as it currently doesn’t, then it is easier to have it ticked here rather than try and fudge it in GTM.
You may also be specifying in your data layer document form downloads and exit links because you want to capture them in a consistent manner with a useful naming convention – again if you are doing that then disable here.
Step 6 – ignore the set up advice.
They give you this big scary screen about implementing GA4, but all you really need to know is that if you ignore all their advice there is just one thing about the stream that you need to know and that is on the screen that is hidden behind this one and it is the measurement ID:
All this information is available on the admin interface as well, so you can go ahead and ignore most of it for now (or play about if you feel like it).
Step 7 – let’s head on into GTM now and I’m going to do a massive step of glossing over creating GTM and implementing the container because hopefully you are already there (but if not then that bit of the process is relatively easy). What we want to do now is go to the tags section and do a ‘new tag’:
There are two types of tags that you can add in here and they serve different purposes:
For this tag you need to remember to add in a trigger that is appropriate and also make sure that this fits in with the consent mode that you have set up for the site. For me, for this site and the way I was setting it up (basic configuration) I implemented an ‘all pages’ trigger safe in the knowledge that GTM was supressed until the user had opted in to cookies.
- The other type of tag that you can implement is an event tag. Do not let its name confuse you though (remember that GA4 is event driven reporting), this allows you to implement any type of event including a page view tag (if you didn’t in your previous tag set up) or if you have a single page app (for example). For these tags you will need to give it a name and then any particular custom parameters that you are interested in (more on that in a future post).
Note that if you are going to send through page_view event then you can think about the following dimensions which will have default values:
page_title (this is the title of the page, unless you set a different value)
page_location (this will default to the url of the page – location.href – unless you set a different value) – note that you need the hostname in this as well
page_path (this will default to the bit of the page_location after the hostname)
Step 8 – Test and publish!