First Steps
It's essential to meet the requirements and follow the first steps strictly, to ensure that the tracking works as expected and sends data to the chosen platform/s.
Requirements
Before installing the module, ensure your system meets the minimum requirements
- PHP 7.1 or higher
- PrestaShop 1.6.1 or higher
- Consent Manager Provider (CMP)*
Tip
The Consent Manager Provider (CMP) is a module that allows you to manage the consent of your customers to the use of cookies on your website. It is essential to comply with the GDPR and ePrivacy regulations. Be sure that your CMP solution is compliant with the GA4 web consent API or has a professional solution for GTM.
Uninstall Other Tracking Modules
Warning
You must uninstall any other Google tracking modules or theme snippets that deploy Google tracking. Otherwise, GTM will initialize before the module loads. This timing conflict will cause your dataLayer variables to be undefined, preventing events such as product_view, checkout or purchase from triggering correctly.
Template Customization
Customize your theme files to track product listings and enable detailed dynamic remarketing. Editing templates is straightforward with basic HTML skills. If you lack HTML experience, contact us through Addons support for a customized solution.
Info
Edit these files using text editors like Sublime Text or Notepad++.
PrestaShop 1.7+ includes the necessary tags for standard tracking. However, if your products handle variants (colors, sizes, etc.), you must edit a template file to achieve perfect attribute tracking.
File to edit:
your-shop.com/themes/your-theme/templates/catalog/_partials/variant-links.tpl
Locate the element <a href="{$variant.url}"
<a href="{$variant.url}" other-properties.... >
Add the attribute data-id-product-attribute="{$variant.id_product_attribute}" to this element:
<a href="{$variant.url}" other-properties....
data-id-product-attribute="{$variant.id_product_attribute}"
>
In all product listings, the module detects the main element defined with the class ajax_block_product. It then looks for the data-id-product and data-id-product-attribute properties to identify the interacted product.
Since default or third-party PS 1.6 themes do not define these properties, you must add them manually.
Core files to edit:
themes/your_theme/product-list.tplthemes/your_theme/product-list-colors.tplthemes/your_theme/product.tplthemes/your_theme/products-comparison.tpl
The following examples are summarized. Extrapolate these patterns to your specific theme files, ensuring you include the correct ID values.
This file displays most listings (Home, Categories, Manufacturers). Look for the element containing the class ajax_block_product (usually an <li> or <div>).
<element class="ajax_block_product other_classes...">
Add the properties data-id-product="{$product.id_product}" and data-id-product-attribute="{$product.id_product_attribute}" at the end of the opening tag:
<element class="ajax_block_product other_classes..."
data-id-product="{$product.id_product}"
data-id-product-attribute="{$product.id_product_attribute}"
>
Note
The module also tracks listings generated by other modules like homefeatured or blockbestsellers. Locate the template file containing the ajax_block_product class and apply the same logic.
This file manages direct color links in listings. If your theme uses this feature, locate the unique <a> element.
<a href="{{$link->getProductLink($color.id_product....}">
Add the following properties:
<a href="{{$link->getProductLink($color.id_product....}"
data-id-product-attribute="{$color.id_product_attribute}"
>
If your product page includes a list of related accessories, look for the element with the class ajax_block_product.
<element class="ajax_block_product other_classes">
In this context, use the $accessory variable:
<element class="ajax_block_product other_classes"
data-id-product="{$accessory.id_product}"
data-id-product-attribute="{$accessory.id_product_attribute}"
>
Note
If the class ajax_block_product does not exist in your product.tpl, your theme does not use the standard accessory list, and no edit is required for this file.
For product comparison lists, locate the ajax_block_product element.
<element class="ajax_block_product other_classes">
Use the following property format:
<element class="ajax_block_product other_classes..."
data-id-product="{$product->id}"
data-id-product-attribute="{$product->id_product_attribute}"
>
If you use the Elementum module, configure the listing templates manually to enable tracking:
- Navigate to PrestaShop Backoffice > Creative Elements > Theme Builder.
- Select Product Miniature as the template type in the list.
- Click Edit with Creative Elements and select your language.
- Once the editor loads, click the Settings icon (bottom-left corner).
- Go to the Advanced tab.
- In the Article Classes input, add the class:
js-product-miniature.
Note
Repeat these steps for all listing templates and all active languages.
Configure Tag Manager
Configuring Tag Manager could be pretty difficult without a deep knowledge of the GTM platform and advanced development skills. For this reason, the guide provides a solution to cover a professional deployment accessible to everyone.
There are 2 ways to configure Tag Manager:
- Implementation: Easier to implement, suitable for most users
- Performance: Scripts are loaded on the client-side, which can impact page load times
- Security: Less secure as scripts are exposed to the client-side
- Data Accuracy: Data is collected as third-party, which can be less accurate due to ad blockers and browser restrictions
- Implementation: More complex to implement, requires server-side setup
- Performance: Improves website performance by reducing the load on the client-side
- Security: More secure as scripts are executed on the server-side, reducing exposure
- Data Accuracy: Data is collected as first-party, which improves accuracy and reduces the impact of ad blockers and browser restrictions
Data Processing Amendment
Accept the Google Ads Data Processing Terms to ensure GDPR compliance and enable data transfer to Google Ads. This is mandatory for all Google Ads and Google Tag Manager users.
Warning
Failing to accept these terms will prevent the module from sending data to Google Ads.
Configuration Steps
- In your GTM account, navigate to Admin.
- Select Account Settings.
-
Locate the Data Processing Amendment section.

-
Click View the Data Processing Amendment and read the terms.
- Click Accept to agree to the Data Processing Terms.
-
Click Save to apply the changes.

Configure Cron Job
The Cron Job is a server-side task that recovers and sends transactions that failed to trigger from the customer's device.
This task collects orders placed between 10 minutes and 48 hours ago. To be eligible for recovery, orders must meet the following conditions:
- The Order ID is missing from the module's control table or is marked as a "missing transaction."
- The current order status does not match any invalid or refund statuses defined in the Checkout Configuration tab.
Warning
The recovery process only sends transactions to API platforms properly configured with a tracking ID.
Supported API Platforms: Google Analytics 4, Google Ads, and Facebook.
Coming Soon: Bing Ads, TikTok, Pinterest, Twitter, and Criteo.
Configure The Job
Trigger the job every 10 minutes to ensure all missing transactions are recovered with minimal impact on reporting times.
Note
Locate your specific Cron URL in the Recover Transactions tab of the module configuration.
Multishop: If Multishop is enabled, you must create a separate cron job for each shop. Ensure you select the correct shop context in the Back Office to retrieve the unique URL for each store.
*/10 * * * * /usr/bin/curl "https://my-shop-domain.com/index.php?fc=module&module=rcpgtagmanager&controller=crontask&token=VALID_TOKEN" >/dev/null 2>&1
Tip
Most hosting providers use cPanel or Plesk. Refer to their official documentation to set up a cron job:
If you use a different control panel, contact your hosting provider for assistance.