#GTMTips: Container Notifications in Google Tag Manager

A recent update to Google Tag Manager introduced container notifications. By subscribing to container notifications, your Google Tag Manager login email address can be configured to receive an email for some of the key workflows in Google Tag Manager: containers getting published, and containers being submitted for approval (Tag Manager 360 only), for example. Be sure to check out the official help center article about container notifications. In this article, I’ll walk you through the feature and share a couple of tips on how to make it even more useful! Read More…

#GTMTips: Utilize App Engine Headers in Server-Side Tagging

When you create a Server container in Google Tag Manager, GTM creates an App Engine deployment in the Google Cloud Platform for you. App Engine is a managed serverless platform, which basically means it’s a (set of) virtual machine(s) running in the cloud, with some extra bells and whistles added to make managing it easier. A potentially useful thing that App Engine does is decorate all incoming HTTP requests with some HTTP headers that can be used in the app. Read More…

#GTMTips: Get True IP Anonymization With Server-Side Tagging

Since the release of Server-side tagging in Google Tag Manager, I’ve jumped at every opportunity to celebrate the tools it provides for improving end-user privacy and data security. One of the biggest benefits is obfuscation-by-default. Since all hits are passed through the server-side proxy, the default view for any third-party tool (such as Google Analytics) is that of the server in the Google Cloud rather than the browser and device with which the user was browsing the site. Read More…

#GTMTips: Build a Custom Universal Analytics Client for Server-Side Tagging

You can utilize Server-side tagging in Google Tag Manager to build your own custom Universal Analytics proxy. This proxy comes in the shape of a new Client custom template, which takes the incoming /collect requests and sends them to Google Analytics. While doing so, it also returns the _ga cookie in a Set-Cookie header, thus preventing Safari’s Intelligent Tracking Prevention from capping its expiration to just 7 days. You might also be interested in reading what Google’s own solution is for migrating from JavaScript cookies to those set in HTTP headers. Read More…

#GTMTips: Send Google Analytics Requests to Custom Endpoint

When you use Google Analytics on the web, you are most likely implementing one of analytics.js, the global site tag (gtag.js), or Universal Analytics tags via Google Tag Manager. These libraries all end up doing the same thing: compiling a payload-rich HTTP request to an endpoint at https://www.google-analytics.com. What if you want to have the JavaScript libraries do their job, but instead of sending the data to Google’s servers, you send them to a new, custom endpoint? Read More…

#GTMTips: Fix Container Preview in Google Chrome's Incognito Mode

Since updating to Google Chrome 83, you might have noticed that Google Tag Manager’s Preview mode no longer works when browsing Chrome in Incognito mode. This is because starting with Chrome 83, third-party cookies are blocked by default in Incognito windows. Google Tag Manager uses third-party cookies to serve browsers in Preview mode with the container draft rather than the live container. There’s a simple workaround to make sure Preview mode continues working for any site you want to browse in Preview mode. Read More…

#GTMTips: Use an All Events Trigger for More Control

One of the most versatile triggers in Google Tag Manager is the Custom Event trigger. As its name indicates, you can use it to fire your tags when an event is pushed into dataLayer. This process is at the heart of GTM’s dataLayer system. And it’s not just custom events. Every single trigger type in Google Tag Manager uses the event key in a dataLayer.push(), which is why you’ll see events like gtm. Read More…

#GTMTips: Use Gtag.js Parameters in Google Tag Manager

With the proliferation of gtag.js implementations, we can see that there’s a small-ish paradigm shift in how to implement Google’s stack of marketing tools. As adding gtag.js snippets to the site code becomes more and more common (to cater to things like early Optimize loading), you might be at a point where you have lots of interesting information stored in the gtag.js queue but no way to access it in your Google Tag Manager tags and variables. Read More…

#GTMTips: Why Does the Google Analytics Tag Show 'Failed'

I’ve covered the more pervasive issue with tags not firing in Google Tag Manager in my article on the “Still Running” status. However, there’s an additional problem you might face with Google Analytics: tags that show status Failed, and which refuse to send any data to Google Analytics. There are a couple of possible reasons for this, and we’ll explore them in this article. Note that any tag type in Google Tag Manager can signal Failed. Read More…

#GTMTips: Keep IOS and Android Firebase Containers in Sync

With iOS and Android containers available for Google Tag Manager, it’s tempting to add GTM as an integration into an existing Firebase setup for your apps. It’s also a fine way to get acquainted with Firebase in the first place, as it has a plethora of features to make application development easier. Furthermore, with the advent of App + Web, there’s even more incentive to integrate your app with Firebase. Read More…