GTM Server WP plugin only for server side

Hi there,

I’ve been trying to succeed with the SS setup for quite some time.
I have a woocommerce site and installed the GTM Server plugin.

I want to run on server side only with no web container at all.
I see this 3rd option in the plugin:

gtm server

Does this option measure enhanced ecommerce as well and how can I make it work with Facebook conversion api?

I can’t preview in the server container preview mode.

What confuses me is that this option is for server side only but most of the guides available is explaining how to use the server container with a web container. And different guides explains the same thing but in different ways, so I don’t know which guide is the newest or which one I should follow.

Please point me in the right direction. I want to:

  1. set up UA
  2. Set up GA4
  3. Set up FB conversion api
  4. Set up Google ads (importing from UA doesn’t work if I don’t add the converison label and don’t see this is possible in the server container)


Yes. All data in this mode sends as Measurement protocol v1 (Claimed by Universal Analytic client)

You can check at plugin code that it sends:
page_view, purchase, add_to_cart, view_item, checkout.

We don’t have a guide for this option because it is hard to implement for most people. And we are working on a more easy solution for server-to-server tracking.

  1. This should work from the start.
  2. You can add GA4 tag for UA client. Check How to set up GA4 inside Google Tag Manager Server Container using Universal Analytics requests?
  3. Follow this guide How to set up Facebook Conversion API over UA
  4. You can’t do this for now. There are several reasons/issues main of them are about 3rd party cookies. I think we need to wait and Google will release something for this. As an option you can track data over img pixels in this situation you don’t need gtag.js or any other js libraries on the site.

Yes. That’s true. For now, there is no option for this. We are working on our own PHP SDK that will be integrated into the WP plugin and allow us to send Preview Header and custom data. But this takes some time.

Thank you so much Denise for your explanation.

  1. UA is solved

  2. I hit a road block at step 5 in your guide. I don’t know what the event categories are that are sent from UA. (I do not use web container so server preview mode is not working)

  3. FB conversion api i think is solved, although this guide is a bit different from your other FB guides.

  4. With google ads I followed this guide:

So does this solution, importing from UA, not work anymore?


You can get “event names” from your UA account or from source code: gtm-server-side-wordpress-plugin/class-gtm-server-side-public.php at 5d99fda20747fba0f807342f9c224298f88732c7 · gtm-server/gtm-server-side-wordpress-plugin · GitHub

And I recommend starting with the “pageview” event.

It works for sure if you use UA Web tag with Transport URL and GTM SS.
We didn’t test it with using GTM SS only. And there is no info about this case in the Google documentation. So you can try it and please if you do leave a post here about results.

Thanks Denise for your reply.
regarding #4. It seems that it does work importing UA conversion events to Google Ads. When I check the ad performance I see the conversions in the reports and the source is UA.
Only issue with this approach is with the attribution. As far as I know UA only attribute by last click, so if you’re running ads with other attribution models ( position-based) this wont work.

Another question is about the Facebook Conversion Api Tag that inherits events from UA. I get pixel errors in my Facebook account about missing Content ID. Anything I can do about this?


When you export the goal from Google Analytics to Adwords, you can select the attribution window and attribution model, so it should work correctly. You can also use the Adwords Attribution report to check if attribution works correctly.
Screenshot 2021-05-24 at 20.57.13
Screenshot 2021-05-24 at 21.02.24

For now, our WP plugin does not support content ID.