Skip to main content Skip to search Skip to main navigation
Shopware Payments ramp-up pricing for 12 months. Limited time only. Learn more
Diese Seite ist auch auf Deutsch verfügbar.
BuI Hinsche GmbH

Google Tag Manager + GA4 E-Commerce Tracking

Rating: 4.9

Average rating of 4.88 out of 5 stars

(12 reviews)
Downloads: 2,329

In-App Purchases

Subscriptions

Server-side purchase Server-side purchase
€2.90 * /month
Reports orders that the browser misses — in the event of payment failures (PayPal/Klarna), ad blockers or API/admin orders.

Description

Highlights

  • Enter the container ID, save, done. No template changes needed
  • Own container and own on/off switch per sales channel
  • Consent Mode stays on denied until the shopper agrees in your cookie banner
  • Preconfigured from product list all the way to cancellation
  • Edit the dataLayer in the administration, no coding required

Features

  • Loads Google Tag Manager in the storefront without any template change
  • GA4 e-commerce data with name, item number, price, brand, category and variant
  • Preconfigured: home, category, search, product view, basket and off-canvas basket
  • Preconfigured: checkout, shipping and payment step, order confirmation, cancellation, refund
  • Reports product lists again after filtering, sorting and paging without a page reload
  • Optional: track clicks on products inside listings and on "Add to wishlist"
  • Container ID and active switch configurable per sales channel
  • Reads consent from Shopware, Cookiebot, Cookie Script, consentmanager.net, Usercentrics or own rule
  • Report shipping and payment choice on change, when the order overview loads or on order submit
  • Reports the consent decision and every later change to Google
  • Prices in the dataLayer per sales channel: as displayed in the shop (customer group) or always net
  • Edit the dataLayer per shop page in the administration, values as Twig expressions
  • Export the whole dataLayer setup as a file and import it into another shop
  • Expert fields for custom tag manager URL, extra parameters and script attributes
  • Paid add-on: reports purchases to GA4 from the server when the browser did not

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 puts the tracking into the templates? Usually 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. 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 category page to 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.

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 listed products and the wishlist can be added.

Purchases the browser misses still reach GA4. The paid add-on "Server-side purchase" reports orders from the shop server that the browser never reported. Typical cases: customers who pay via PayPal or Klarna and never return, and ad blockers. The shop reserves each order first so no purchase arrives twice.

You can keep going without a developer. You see and edit which shop page sends which values in the administration. Add new values as Twig expressions, 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 looks up the matching mapping, builds the dataLayer entry from it and writes it into the page before Google Tag Manager starts. Lists that are filtered or sorted without a page reload are reported again.

Oversized data deliveries are split automatically so Google processes all of it. You set the threshold in kilobytes, the default is 7.

The add-on 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 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 in the plugin configuration, billed through your Shopware account.

Numbers that fit your reporting

You decide net or gross per sales channel. By default, prices go out as the customer group sees them in the shop. With "Always net", price, value and shipping leave without tax for every customer group, as Google recommends for the purchase value, in the basket and the add-on too. Fields you rewrote yourself keep your formula.

You decide when shipping and payment choice are reported. Only on a change, as soon as the order overview loads, or once on submit. That way shoppers who keep the preselection count too. On submit, GA4 still gets the event, other tags in your container may lose it.

The details add up too. The basket value is right whether the item ID holds the product number, the product ID or your own value. Products with options from the product configurator report a unit price that, times quantity, gives the line total. Gmail addresses are normalised before hashing like Google does, so these buyers match in enhanced conversions.

Typical use cases

Several countries or brands. Your GBP shop, your EUR shop and your outlet run on separate containers. Each channel gets its own ID, the numbers stay apart.

Server-side tagging. If your tagging runs through your own server, enter that address and the script loads from there. The browser still sends 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 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, minus the email address. The Google Tag Manager script loads in the browser from Google, or from your own address with server-side tagging.

On data protection: by default the plugin sets Google's consent to denied for every consent tool and reports the shopper's decision and later changes, unless your tool does that. For logged-in customers, and for guest orders on the order confirmation page, it also sends contact details in hashed form (SHA-256) so Google can attribute purchases more reliably. Check this against your privacy policy before going live.

Errors go into a dedicated log file instead of the storefront. The plugin ships its own administration privileges. On uninstall, Shopware's own switch decides whether your setup stays or goes. Interface and storefront texts come in German, English and Dutch.

To be honest

This plugin is not an analytics tool. It hands your shop data to Google Tag Manager, nothing more. 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 see no numbers, however clean the dataLayer is. No dashboards, no reports, no revenue forecasts here.

The add-on does not bring back every order either. Without the shopper's consent, the purchase stays unmeasured. Double reports are avoided, not ruled out: a customer returning after the waiting time can trigger a second report. Orders from the administration or an API are deliberately not reported: without a visitor behind them they would distort your channel reports.

Already have a container and only need the data out of Shopware? Then this is the short route: set it up once and it runs. Try it on a test channel first.

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: 15 October 2026
  • Publication date: 23 June 2023
  • Version: 6.7.18
  • Category: Tracking

Resources

Reviews (12)

Average rating
4.9

Average rating of 4.88 out of 5 stars

Based on 12 reviews
5.0 Functionality
4.9 Usability
4.8 Documentation
4.8 Support

92 %
8 %
0 %
0 %
0 %

Write a review

If you downloaded this extension you can write a review in the Shopware Account.

Write a review
Macht was es soll und toller Support
5.0

Average rating of 5 out of 5 stars

by Max Oswald
2 February 2024 12:39
Support war sehr hilfsbereit, die Einrichtung war easy. Weiter so!
5.0 Functionality
5.0 Usability
5.0 Documentation
5.0 Support
Unserer Meinung nach bestes GTM-Plugin
5.0

Average rating of 5 out of 5 stars

by Daniel
31 October 2023 10:12
Macht was es soll - darüber hinaus ist es einfach anpassbar.

Bei der Migration von der alten Version auf die neuen gab es einen Fehler - dieser wurde vom Support analysiert und gelöst: einfach das Plugin nochmal neu installieren. Nun geht alles.

Danke!
5.0 Functionality
5.0 Usability
5.0 Documentation
5.0 Support

About the Extension Partner

BuI Hinsche GmbH

BuI Hinsche GmbH

Partner Status

  • Shopware Bronze Partner Shopware
    Bronze Partner
  • Shopware Premium Extension Partner Shopware
    Premium Extension Partner

Details

  • Ø-Rating: 4.3

    Average rating of 4.3 out of 5 stars

  • Partner since: 2014
  • Extensions: 100
  • Certifications: 2

Support

  • Based in: Germany
  • Speaks: German, English
  • Response time: Very quickly
Shopware 6 certified This Extension Partner has been certified by our Academy for Shopware 6.