Google Tag Manager | GA4 tracking and server side tagging without template edits
In-App Purchases
Subscriptions
Description
Highlights
About the Extension
You want to know which products your shop actually sells. So you create a container in Google Tag Manager. Then comes the awkward part: who is going to put the tracking into the templates? That is usually where the agency takes over, and an afternoon task turns into a project with a quote, a review round and a waiting list.
The problem
A container measures nothing on its own. It needs data from your shop: which product was viewed, what sits in the basket, what was actually bought, each with name, item number, price, brand and category. Shopware holds all of that, just not in the shape Google Analytics 4 expects.
Write it into the templates by hand and you maintain it with every Shopware update from then on. Data protection sits on top of that: without the shopper's consent, analytics and advertising tags must not store anything. That is where most home-grown setups fall over, because consent gets bolted on afterwards.
The solution
This plugin brings both parts. It loads Google Tag Manager in your storefront and fills the dataLayer with GA4 e-commerce data, from the category page through to the order confirmation. You enter your container ID and save. Every important shop page ships preconfigured, your templates stay untouched.
What's in it for you
You are live after two entries. Enter the container ID, check that the channel is active, hit save. No template override, no line of code, no deployment.
Every sales channel measures on its own. Container ID and the active switch apply per sales channel. Your trade shop can stay silent while the retail shop measures, and your UK shop gets its own container so the numbers never mix.
Consent sits where it belongs. By default, Google treats analytics and advertising storage as denied until the shopper agrees in the cookie banner. Later changes reach Google too.
You see the whole journey, not just the sale. Product lists and search results, product view, basket, checkout, shipping and payment selection, purchase, cancellation and refund all come preconfigured. Clicks on products in lists and on the wishlist can be added on request.
Purchases the browser misses still reach GA4. The paid add-on "Server-side purchase" reports orders from the shop server that were never reported in the browser. Typical cases are customers who pay with PayPal or Klarna and never come back to the shop, and ad blockers. The shop reserves each order before sending, to keep a purchase from arriving twice.
You can keep going without a developer. Which shop page sends which values is visible in the administration and editable there. New values are added as Twig expressions, and you can download the whole setup as a file and load it into another shop.
How the plugin works
When a shop page is requested, the plugin checks whether a mapping exists for that page. If one matches, it builds the matching dataLayer entry from the page data and writes it to the output before Google Tag Manager starts. When a shopper filters or sorts a product list without a full page reload, the plugin reports the new list again.
If a delivery of data grows too large, the plugin splits it into smaller parts so Google processes all of it. You set that threshold in kilobytes, the default is 7.
The add-on works in the background and follows the channel's active switch. A strictly necessary cookie passes consent to the server for every consent option. Without analytics consent nothing is stored on the order or reported; with it, the plugin stores the shopper's GA4 identifier on the order. After a configurable waiting time, 30 minutes by default, the shop checks whether the browser reported the purchase. If not, it sends it to Google itself, with order number, value, tax, shipping costs and every line item. You book the add-on as a monthly subscription right in the plugin configuration, billed through your Shopware account.
Typical use cases
One shop, one report. You finally see which categories bring revenue and where shoppers drop out of the checkout. Effort inside Shopware: one setting.
Several countries or brands. Your GBP shop, your EUR shop and your outlet run on separate containers. Each channel gets its own ID and the numbers stay apart.
An agency rebuilds a measurement plan. Agree the values on the staging shop, download them as a file, load them into the live shop. Nobody types the same setup twice.
Server-side tagging. If your tagging runs through your own server, enter that address. The script then loads from there instead of the standard one. The browser is still the one sending the data. Purchases it never reports only come back with the add-on.
Technical facts for your IT team
Shopware 6.7, PHP 8.2 or newer. The plugin creates two tables of its own and adds the read-only custom fields "Google Analytics 4 (technical)" to orders. It changes no Shopware table. Without the add-on it calls no external services on the server side. With the add-on the shop server sends recovered purchases to google-analytics.com via the GA4 Measurement Protocol, built from the same dataLayer setup as in the browser, but without the email address. The Google Tag Manager script loads in the shopper's browser from Google, or from the address you configure if you run server-side tagging.
On data protection: by default the plugin sets Google's consent defaults to denied for every consent tool, then reports the shopper's decision and later changes to Google unless your tool does that. For logged-in customers it also sends contact details in hashed form (SHA-256) so Google can attribute purchases more reliably. Check that this matches your privacy policy before you go live.
Errors go into a dedicated log channel instead of the storefront. The plugin ships its own administration privileges. On uninstall, Shopware's own switch decides whether your setup survives or is removed with the plugin. The interface and storefront texts are available in German, English and Dutch.
To be honest
This plugin is not an analytics tool. It hands your shop data to Google Tag Manager, and that is the job. Which tags fire, whether Google Analytics 4, Google Ads or something else, is set up in your container. Without a Google Tag Manager account and a published container you will see no numbers at all, no matter how clean the dataLayer is. No dashboards, no reports, no revenue forecasts here.
The add-on does not bring back every order either. If the shopper did not give consent, their purchase stays unmeasured. Double reports are avoided, not ruled out: a customer returning after the waiting time can trigger a second report. Orders created in the administration or via an API are deliberately not reported, because without a visitor behind them they would distort your channel reports.
If you already have a container and only need the data out of Shopware, this is the short route: set it up once, then it just runs. Try it on a test channel before you switch the live shop.
Legal notice
We accept no liability for legal requirements. Please check the use of this plugin with a qualified legal advisor.
Details
- Available: English, German
- Latest update: 7 October 2026
- Publication date: 23 June 2023
- Version: 6.7.17
- Category: Tracking
Resources
Reviews (12)
Einfach zu installieren, einfach zu pflegen, einfach zu erweitern
Gutes Plugin, aber der Support ist verbesserungswürdig
Trotzdem ein gutes Plugin.
Super Tag Manager Plugin
Tut was soll
Gutes Plug-in mit top Performance und bestem Support
Tut zuverlässig was es soll.
Macht was es soll, Support antwortet zügig.
Bestes Google Tag Manager Plugin im Store
Plugin funktioniert Super.
Das beste Plugin für Google Tag Manager, Google Analytics (GA4) und einen editierbaren DataLayer im Store
About the Extension Partner
BuI Hinsche GmbH
Partner Status
-
Shopware
Bronze Partner -
Shopware
Premium Extension Partner
Details
- Ø-Rating: 4.3
- Partner since: 2014
- Extensions: 99
- Certifications: 2
Support
- Based in: Germany
- Speaks: German, English
- Response time: Very quickly