Looking at the GTM documentation, specifically the Tag Dictionary, there appears to be references for Universal Analytics and even Classical Analytics - but it doesn't mention GA4 anywhere.
Is it therefore not currently possible to create GA4 tags, triggers, etc.
through the Tag Manager API?
If it's not possible, are there any alternative ways to automate the creation of GA4 tags?
I should have done a bit more digging before posting this question.
While it's not mentioned in the documentation, there are in fact tag types for GA4 - Configuration is gaawc and the Event tag is gaawe.
I find Google documentation around Google Tag Manager (GTM) terrible at helping me figure out which bits go where.
As I understand, GTM requires that you put a <script> snippet on your pages which is supposed to bring in other code snippets, as could be configured by a non-technical user.
I'm a technical user, though. Perhaps that's the problem! I also find it problematic that Google use the word "tag" to refer to either an HTML element tag, like <script>, or their own proprietary use of the word to mean calling a function ("triggering a tag") in another script, also unhelpfully referred to as a tag.
They also have "gtag" which is what - a helper? something that enables you to send general analytics events through the GTM API? The docs simply say:
The global site tag (gtag.js) is a JavaScript tagging framework and API that allows you to send event data to Google Analytics, Google Ads, and Google Marketing Platform.
... but we could already send analytics? What does this add?
For example, I wish to send an e-commerce Purchase event.
I've found that to do this I needed to add a new snippet of code with two <script> tags to the header on the site (thought GTM meant I didn't need to do this?) that sources gtag.js, then I'm able to call the following at the appropriate place in my javascript:
gtag('event', 'purchase', { value: 1.23, transaction_id: 'test' });
Or without it (although this does not seem to work):
ga('require', 'ec');
ga('ec:addProduct', {name: 'test product', price: 1.23})
ga('ec:setAction', 'purchase', { id: 'test_id_1', revenue: 1.23 })
So my question is: when would you use gtag() over ga(), and why can't GTM install gtag?
When would you use gtag() over ga()?
Use gtag if you want to send data to supported Google products other than Google Analytics. As you pointed out, "The global site tag (gtag.js) is a JavaScript tagging framework and API that allows you to send event data to Google Analytics, Google Ads, and Google Marketing Platform.", whereas ga only works for Google Analytics. But (see below), you might decide to never use gtag nor ga and always use GTM.
Why can't GTM install gtag?
It could (you could have a GTM tag inserting some gtag code) but it's beside the point as they are meant to be used as 2 different solutions:
gtag is a purely programmatic tracking tool for sending data and only works with 3 Google products (so far - Analytics, Ads, Marketing Platform - more maybe added in the future), it's made to provide basic out-of-the-box tracking with a simple copy/paste + small lines of code (if needed for customization).
GTM is a tag manager: it can work programmatically BUT requires a minimal configuration of the container via the GTM UI (a default container won't send data anywhere), and can send data to whatever products you want (just need to setup the corresponding tags in GTM), while having a bunch of other features
A few questions to help you choose:
Am I sending data to other tools than Google Analytics/Ads/Marketing platform?
Do I want to use some the extra features GTM offers (UI, version control, templates, debug, environments etc...)?
Is there some tracking that would be heavy to implement via pure custom JS (eg scroll tracking) which GTM can facilitate with its built-in listeners (eg scroll tracking)?
If YES to any of the above, then use GTM
I personally never use gtag, I always replace it with GTM because it's considerably more powerful than gtag.
What Google is doing is progressively replacing all their default snippets with gtag so they only have 1 unified API to maintain and it's an easy copy/paste for users (bear in mind most users aren't tech savy and just need to paste the snippets in into their CMS). Forcing people to use GTM would be too much of a friction as out-of-the-box GTM simply doesn't track anything and people would need to learn & configure GTM, too much work vs a simple copy/paste.
Note: The built-in events don't use category, label, and value. Take care to use the correct keys when sending these events.
I'm configuring my Google Analytics to work with gtag.js. This is a new account and I'm not dealing with any pre-existing analytics code or tags.
From: https://developers.google.com/analytics/devguides/collection/gtagjs
From my Google Analytics Console (Admin section)
QUESTION
I was expecting to get a GA- tag from my Google Analytics snippet. But instead I've got a UA- tag. What is the difference between these 2 types of tags?
Usually all the values of GA_MEASUREMENT_ID match the pattern of:
UA-<some numbers>-<some numeber>
so there's no problem with your value of tracking ID and it should work just fine
I've successfully implemented Google Enhanced Ecommerce on one of my websites, where I also have a Google Universal Analytics tracking code. Now we want to change to Google Tag Manager, thus replacing the UA tracking code with the Tag Manager Code (correct?)
Will this affect the Enhanced Ecommerce tracking in any way? Or can I just replace the tracking snippet and the ga('create')-parts with the Tag Manager-snippet?
You need a correctly set up dataLayer (which rather more complicated since you need info on product impressions etc). Documentation is here:
https://developers.google.com/tag-manager/enhanced-ecommerce#enable
Then you create a news Analytics Tag (just a pageview or event, there is no need for a separate transaction tag) and select "Enhanced Ecommerce" with the "Use datalayer" option in the advanced settings.
GTM will pick up the values from there datalayer and do the rest for you.
So yes, you can get this to work, but it requires a lot of preparation for the correct datalayer implementation. Simply replacing the GA code with the GTM code will do very little except breaking your tracking.
Does GTM code + GA/GDN Tag is enough to track my website analytics ? should I remove GA code if I'm using GTM ?
And aboud google adwords goals , should I remove Google adwords code too and use that one provided from GTM ?
Does GTM code + GA/GDN Tag is enough to track my website analytics ?
Yes, if you have configured the GA tracking tag in the tag manager you do not any other GA code on your site.
should I remove GA code if I'm using GTM
Yes. You do not need it anymore and if you do not remove it you might track your pages and event twice.
And aboud google adwords goals , should I remove Google adwords code
too and use that one provided from GTM
While it is still possible to use the Adwords code side by side with the tag manager it does not make any sense. As a matter of elegance and maintainability I'd say YES, you should remove page code and use GTM instead. Having all tags in one location is after all the point of GTM.