It is easily the most horrible documentation I have ever seen on any service. It is a mix of old outdated tutorials combined with faculty and “left out” information. Every attempt Stape gives in a tutorial ends up in a dead end either because GTM looks different or Stape changed/updated functions and didn’t bother to go back and change/update the tutorial.
Pro-tip. Instruction videos contain a lot of mistakes. Look in the comment section for clues to figure out how to understand the faulty explainer.
Thanks for your feedback!
Stape is a hosting provider for sGTM containers, essentially the same as the hosting provider for your website, but for an sGTM container
The documentation for the service can be found at: https://help.stape.io/hc/en-us
The posts in the blog section on Stape (which I believe you refer to) don’t provide any documentation on the service, they are support articles that can help you set up tracking on different platforms, solve some typical tracking problems and provide a high-level overview of an approach to take. In fact, those articles exist because platforms in question don’t provide any practical advise/guides, but rather raw specs/docs.
GTM is developing quite rapidly (luckily for all of us), new features are added and the platforms themselves are evolving too - so we can’t always keep up and provide quality content on the matter, although we definetely strive to.
If you have any particular question regarding tracking setup on WP - I’m happy to answer those.
OK, then why use them if they are old and impossible to follow?
Let’s take your “support article” regarding setup for WordPress. It dies already with implementing the plugins and the custom loader. If you follow the article you will add a tracker from the gtm4wp plugin as well as the custom loader. You will have to turn OFF the Google Tag Manager container in the gtm4wp plugin settings and add the custom loader tracker manually. That’s not a problem other than the gtm4wp plugin doesn’t behave well with that.
When that is set up you will experience that GA4 e-commerce events are NOT returned to GA but can be seen in the logs of the tagging server. You apparently have to implement the use of Data Tag/Data Client which again looks nothing like the template in the support article.
I’m not sure which WP article you’re referring to, there are several of them of varying age, but they both recommend using the ‘GTM Server Side’ plugin to insert the GTM snippet with the subdomain and custom loader.
If you use gtm4wp - the plugin recommended in the article has a separate ‘Update existing GTM’ function - it patches the other plugin’s inserted GTM snippet, i.e. adds custom domain and loader.
Also, please keep in mind that gtm4wp is a 3d party plugin, not affiliated with Stape.
Also a bit confused by what ‘use’ means is this context, like I said we have a blog with articles, those articles have a publish date. And yes, they are not always 100% relevant. As I said originally we try keep things updated, but it’s a blog, not service documentation.
Lastly, you don’t need Data Tag / Data Client pair to implement GA4 s2s tracking. If your ecomm events do not reach GA - their is a fault in your configuration. I suggest you look through the following:
Again, happy to help if you have particular questions on the setup.
Those are the support articles I’m referring to and I’m well aware that gtm4wp is 3party. But the setup doesn’t work. The tracking script in the frontend is NOT updated with the GTM Server Side URL or the Stape container identifier which is an essential part of the setup.
Please share the link to the site in question, also a screenshot of the gtm4wp settings (in the GTM insertion section) and a screenshot of the GTM Server plugin settings would be helpful.
If for some reason you are not able to do this, you can use the option not to insert GTM snippet in gtm4wp and in GTM Server plugin use the option not to update existing snippet, but insert a new one.
I haven’t had the time yet but by the looks of it your Post regarding the WP setup was written half a year before an update to the gtm4wp.
It needs to be set up in a different way. But so does everything else.
I do understand that GA4 and server-side tagging are moving fast and changing rapidly but the post and the videos you link to on your site are a dead-end. And judging from the comments on each site and the videos many are struggling like I am. And I think this is mainly due to outdated “support article”
Everything looks correct. Most often this situation is due to the Wordpress cache, which prevents new plugin settings from being applied. You can clean WP cache with applications: https://wpengine.com/resources/clear-cache/#:~:text=However%2C%20if%20you%20experience%20problems,It's%20that%20simple!
All cache is cleared. Both server and browser
From the site of gtm4wp.
Support for server-side containers with custom domains
Server-side containers in Google Tag Manager is a great new way to collect data on your website maintaining data quality as well as user consent. One important opportunity is to load your web container using your own custom domain/subdomain. If you would like to use this feature, you can now enter your custom domain name under the Advanced tab of GTM4WP.
You will need to add the server-side URL with the Container identifier under the gtm4wp->advanced tab. Problem is that it does not atm accept the slash between the two.
So we are back to where I started. The only setup for this at the moment is removing the tracking function and only use the datalayer from the gtm4wp plugin. And that doesn’t play nicely.
In that case yes, if for some reason your GTM snippet replacement doesn’t work - it should be inserted via the GTM Server plugin and its addition via gtm4wp should be disabled.
There can sometimes be problems with the plugin, but rarely, this is most likely due to the way your site is implemented on WP, it has nothing to do with the gtm4wp plugin update. They’ve previously added the ability to change the container load link, but it’s replacing gtm.js with a custom name that creates the main protection against Adblockers. We’ve spoken to the gtm4wp developer and this feature has also been added to the code, but their plugin hasn’t been updated yet, I think this will happen soon enough. When it does, only one plugin can be used.
Also, if you have problems inserting GTM through plugins - you can always insert it directly into the site code manually.
Yes, but I need the data layer that comes with the gtm4wp plugin. And since I want to track e-commerce events I have to use the gtm4wp plugin.
Currently, you can’t use the plugin’s “Container domain name” feature bc the input field escapes the “/”. I have opened a support ticket for this.
So we are back to where I started. The only setup for this at the moment is removing the tracking function and only using the data layer from the gtm4wp plugin. And that doesn’t play nicely.
Nothing prevents you from using the data layer created by the gtm4wp plugin (or any other similar plug-in), and the GTM snippet can be inserted in any other way
But then you will have the GTM snippet from gtm4wp and the custom-loaded GTM snippet on all pages. gtm4wp won’t let you remove the GTM snippet atm without blasting a console.warning on all pages.
I have modified the filter_var in the gtm4wp plugin to allow the slash. The GTM snippet is served correctly now.
You should remove the support article for wp setup. It doesn’t work.
To disable GTM4WP snippet insertion you can use dummy placeholder like GTM-00000, if feature is disabled, it will not insert snippet itself, but data layer will work in fully without any limitations.
In your case plugin updat snippet didn’t work, but it works in parallel without problems on hundreds of other sites. This can happen, but as I wrote earlier - rather rarely and mostly on heavily custom WP sites.
Using a dummy placeholder like GTM-00000 will give an error in the console.
I ended up selecting “Add Google Tag Manager web container on all pages. If you have other GTM plugins, please disable them.”
and then modified the gtn4wp plugin and set the container to off. So I only use the data layer.