How to set up GA4, GTM and Search Console on PrestaShop

The module connects GA4, GTM, Google Ads and Search Console to your shop without editing the theme. Here is how to configure it, count the right events and verify tracking.

Comment configurer GA4, GTM et Search Console sur PrestaShop

Your PrestaShop store may already send visits to Google Analytics 4, yet purchases, contact requests or amounts do not match what you see in your orders. The Google Tracking module connects GA4, Google Tag Manager, Google Ads and Search Console from the back office, without editing the theme. Here is how to configure it, which e-commerce events it sends, how to verify tracking, and what happens when the licence reaches its end date.

Who is this module for, and when do you need more?

It is for merchants who want reliable GA4, Tag Manager or Google Ads tracking without touching theme code, with the same product data from the product page to the purchase.

The module suits a shop on a standard theme, a multistore catalogue that needs different identifiers per shop, and a team that tests customer journeys without polluting its reports. It sends 15 events, keeps the same product, brand and category from one event to the next, and lets you send the product identifier your Merchant Center feed uses.

It does not replace your consent banner, your privacy policy or the GA4 reports. It does not send refunds or server-side fallback purchases, does not run server-side Tag Manager and does not add a GA4 user ID. For consent, it passes on the Consent Mode v2 signals recorded by your banner; it does not decide your legal basis.

How do you set up GA4, GTM and Search Console in PrestaShop?

You configure it in the back office by pasting a Google identifier, without editing a theme file.

  1. Open Modules > Module Manager, click Upload a module and choose the archive.
  2. Open the configuration and activate the licence with the License Key and License Secret from your customer account. Without a valid licence, the module stays disabled.
  3. Choose the integration mode: Google Analytics 4 direct, Google Tag Manager or Google Ads only.
  4. Paste the identifier for that mode: a measurement ID G-XXXXXXXXXX (GA4 > Admin > Data streams) or a container GTM-XXXXXXX, or your Google Ads ID AW-XXXXXXXXX.
  5. For Search Console, paste the HTML verification tag or only its content value; the module extracts the code.
  6. Save. The status panel shows Active and the selected mode.

No Google tag or event is added while the identifier for the selected mode is empty; the Search Console verification tag is independent. In GA4 direct and Google Ads only modes, cross-domain tracking keeps the session across your domains. In multistore, each shop can have its own identifiers. The module documentation describes each tab, and the module page lists the supported modes.

Why is the view_item event or a purchase missing in GA4?

An event is usually missing because it is disabled in the Events tab, because the visitor's consent excludes it, or because another module already sends GA4.

The module sends view_item when a product page opens, with the selected variation. Check that the event is enabled, that the page really shows the product page, and that the theme keeps the standard positions. The Diagnostics tab lists the theme hooks that are missing and the other Google tracking modules that are active. Two modules that send GA4 can count the same visit or purchase twice.

The purchase is sent when the order confirmation page is displayed, once per order and only within 24 hours of the order. If the customer reloads the page, the module does not send the purchase again. A missing purchase can therefore come from refused consent, a disabled event or Google's processing delay. The module cannot force Google to show an event that the visitor refused.

How do you count contact requests as conversions?

The module counts a request when the form's success message is actually visible, and it can send it to Google Ads as a conversion.

PrestaShop's native contact form is detected on the server. For a form submitted without a reload, enter its CSS selectors in Other contact forms (CSS selectors) and the message selectors in Success message (CSS selectors), separated by commas. Since version 2.1.0, a message revealed by a class or style change is counted; a message present but hidden is not. One request is counted per page.

For Google Ads, enter the AW-… ID, the Contact conversion label and, if you want, an estimated value. The conversion is sent with the request, without double counting with the native form.

The Exclusions and verification tab (French interface): the contact form and success message selectors, and the option that skips robots.
The Exclusions and verification tab (French interface): the contact form and success message selectors, and the option that skips robots.

How do you exclude robots and verify tracking without sending data?

Turn on verification mode to see every calculated event in your shop, then the robots exclusion option if your reports mix real visits with tool traffic.

In the Exclusions and verification tab, verification mode shows a panel in the shop, for your browser only, with each event and its data. Nothing is sent to Google for 24 hours. The Remove the mark from this browser link turns it off. If you test with an automated browser, the panel says that browser is treated as a robot and still shows what would be sent.

The Exclude robots and automated browsers option is off by default. It skips headless browsers, performance tests (Lighthouse, PageSpeed Insights, GTmetrix, WebPageTest), monitoring services (Pingdom, UptimeRobot, StatusCake…) and search engine robots that run JavaScript. The decision is made in the visitor's browser: pages served from a cache stay the same for everyone and the Search Console verification tag stays on every page. An ad blocker or privacy extension that prevents Google's script from loading keeps the visit out of GA4; verification mode lists the events the module computed, not what Google received.

The back-office browser is already excluded, and you can add IP addresses or ranges. The Diagnostics tab completes these checks with identifiers, consent, duplicates and the latest orders sent. The cache module works with this option, because the cached page does not depend on the visitor.

The same page in English: robots exclusion is decided in the browser, without changing the page served from cache, and the Search Console tag is kept.
The same page in English: robots exclusion is decided in the browser, without changing the page served from cache, and the Search Console tag is kept.

How do you keep amounts correct with a free-shipping voucher?

Since version 2.1.0, the value sent for products is no longer reduced by the free shipping, and the shipping fees sent match what the customer actually paid.

PrestaShop counts free shipping in the discount total and keeps the carrier price in the order. The previous version subtracted that price from the product value and reported shipping the customer never paid. The wrong amount went to GA4, the DataLayer and the Google Ads conversion. Version 2.1.0 calculates the part actually offered, subtracts it from the shipping fees and leaves the product value intact. A voucher that combines a discount and free shipping keeps its discount.

A concrete case: a customer adds a product, applies a voucher that combines a discount and free shipping, then orders. The GA4 report shows the discount on products and no shipping fees, and the Google Ads conversion receives the same amount. A promotions module that creates these vouchers needs no change.

In the Events tab, choose the product identifier (Product ID, Product ID and combination ID or Reference), whether prices include tax, and the purchase value (total paid, or products excluding tax after discounts). Use the identifier from your Merchant Center feed if you run dynamic remarketing.

What happens when the licence expires or the server does not answer?

Without a valid licence, the module disables itself on the shop and keeps your settings and tracked orders; the configuration page re-enables it.

An expired, suspended, revoked or domain-mismatched licence, or no licence at all, cuts the Google tag and the Tag Manager container, stops events, consent updates and conversions, and removes the Search Console tag. Your settings, the tracked orders list and the cookie secret stay in place. The configuration page shows the licence type, domain, end date and days remaining, with a Deactivate button that releases the domain after confirmation.

After the stored end date, a renewed subscription is checked with the licence server: the module waits seven days without a request, then contacts the server at most once an hour. A valid answer records the new date. An explicit refusal disables the module. A transient answer — server error, rate limit, clock skew, unreachable server — never disables a paid licence: the seven-day tolerance starts at the first failure. If your 2.0.1 module disabled itself while your subscription was valid, open its configuration page once.

Visits and orders received during a deactivation are not recovered: tracking resumes when the module is re-enabled. Consent Mode passes on the visitor's choice; it does not replace your banner, your privacy policy or your review of the legal basis. For more detail, the documentation describes the licence, and the structured data module page shows how to enrich the product pages Search Console reads.

The Google Analytics 4, GTM and Search Console module installs on PrestaShop 1.7.8, 8.0+ and 9.0+ with PHP 7.4 or later. Test a journey in verification mode before reading your reports.

Frequently asked questions

Do I need a valid licence to use the module?
Yes. Without a valid licence, the module disables itself on the shop: no Google tag, no Tag Manager container, no event or conversion, and no Search Console verification tag. Your settings and tracked orders are kept, and the configuration page enables it again once the licence is valid.
Can I use Google Analytics and Google Tag Manager on PrestaShop without a paid licence?
Yes. Google Analytics 4 and Tag Manager are free, and you can paste their tags into your theme or a free module. This module is paid and needs a valid licence; it adds the 15 events, Consent Mode, Google Ads conversions and the no-code setup without theme edits.
What ecommerce events should I track in GA4 for my PrestaShop store?
Start with the purchase path: product lists viewed, product page viewed, added to cart, checkout started and purchase. The module sends 15 events, including product clicked, internal search, cart viewed, delivery and payment steps, login, account created and contact request; each one can be disabled in the Events tab.
How do I set up Google Ads conversion tracking alongside GA4 in PrestaShop?
Keep Google Analytics 4 direct, then enter your AW-… ID and the purchase and contact conversion labels: the module sends every event to GA4 and the conversions to Google Ads. Choose Google Ads only to run Ads without Analytics; in Tag Manager mode, configure the conversions in the container. Enhanced conversions and dynamic remarketing are switches in the module settings.
How often does my module check my licence status and what happens if the server is unreachable?
The stored end date gives seven days of grace with no request; after that, the module checks the licence server at most once an hour, with short timeouts. A transient answer (server error, rate limit, clock skew, unreachable server) never disables a paid licence: suspension needs seven days of failures counted from the first one, and a valid answer clears them and stores the new end date.

Products in this article

Find the module your store needs

Browse the modules