Installation

Preparation for the Shoplytics installation

Time Required: Approx. 15 Minutes
Once you’ve completed these steps, we can begin setting up your advanced tracking. If you have any questions or encounter any issues, please contact us at onboarding@shoplytics.co.uk

 

1. DNS Entry

This step is not strictly required, but it affects the quality of tracking. With first-party tracking, Shoplytics is no longer blocked by ad blockers and tracking blockers.

To enable first-party tracking, please log in to your domain provider and create a new DNS entry for the desired domain with the following settings...

Type: CNAME

Name: stream

Value: 1p.shoplytics.de

What does this entry do?

This defines a new subdomain "stream." for your domain. 
All data sent to this subdomain is automatically forwarded to 
the Shoplytics tracking server. This way, no third-party domain 
appears in the browser console when someone visits the website.

If you have trouble creating the entry, you can simply send 
the login credentials for your domain provider to 
data@shoplytics.io and we will set up the entry for you.
IMPORTANT: If you use Cloudflare and set up the CNAME entry there, be sure to enable the "DNS only" option so that the Cloudflare "Proxy" is not used. Otherwise, this would cause tracking errors.


2. Google Search Console

Please verify your website in the Google Search Console and grant us access...

  1. Go to https://search.google.com/search-console and log in with your Google account
  2. In the right box (URL prefix), enter the link to your website (with HTTPS)
  3. Google will now show you a list of methods to verify the site. The "HTML tag" method is the easiest. Then click Confirm.
  4. If a green message appears, or if the Search Console was already verified previously, you can go to the settings on the left and, under "Users and permissions", add the address data@shoplytics.io (permission: full)


3. Google Tag Manager

So that, after successful setup, we can integrate all your tracking pixels into Shoplytics, please grant us access to your Google Tag Manager. If you don't use Google Tag Manager, you can skip this step.

  1. Open https://tagmanager.google.com and log in
  2. On the active account, click the 3 dots in the top right and open "User management"
  3. Add data@shoplytics.io (admin permission)


4. Google Ads

Please go to https://ads.google.com, log in, and open the correct ad account.

In the top right you'll find your 10-digit ad account ID. Please copy it. You will need it in step 7.


5. Meta Ads

Shoplytics has both a browser-side and a server-side integration for the Meta Pixel. To enable both, we need your Pixel ID and the Pixel's API token.

In this guide we explain how to create a Pixel and find the required data.



6. Additional integrations

Shoplytics can be connected with many other services.

On this page you can find out which services are supported and what information we need for the connection.

Simply include the relevant information in the email in the next step so that we can activate everything right away.


7. Send email

Now send an email with the subject "Shoplytics access" to setup@shoplytics.io and replace the bold sections with your details, where applicable:


Hello,

I have granted the access.

Domain: your-domain.com

Shop system: none / Shopify / …

Google: your login address on google.com

Google Ads: 10-digit ad account ID

Meta Ads: Pixel ID & API token

Additional services: enter IDs, if available

Integrate Shoplytics into your shop system

Integrate Shoplytics into your shop system

Shopify

Step 1

  1. Open the Shopify administration area

  2. In the left navigation, click on "Online Store" --> "Themes"

    image.png



  3. then in the top right (on your active theme) click on "Actions" and then on "Edit Code"

    image.png


  4. then under "Layout" > click on "theme.liquid"

  5. On the right side of the source code, find the line with: <head>

    image.png



  6. Now insert the Shoplytics script you received by email directly BELOW the <head> line


Step 2

  1. In Shopify, go to Settings at the bottom left and then to Customer Events

  2. Click on "Custom Pixels" and "Add Custom Pixel" and enter "Shoplytics"

  3. At the very top, 2 privacy settings must now be configured. Due to the structure of the Shoplytics API, you can select the two "most lenient" options here

    image.png



  4. At the very bottom, insert a code. Please click on the following link to see the code and copy the code 1:1: http://shoplytics.de/shopify-pixel (After inserting, Shopify will display a warning... You can ignore it. The code is correct.)

  5. Now "save" and then click on "connect"

Congratulations! Done. Now please let our team know that you have set everything up.


If your Shopify statistics suddenly no longer count all visitors because the consent banner does not communicate with Shopify...

Problem:

However, if you implement the consent banner differently, Shopify "loses" this direct connection and integration with the consent banner. As a result, Shopify assumes that NO consent has been given — and is therefore only allowed to record its own statistics in a reduced manner. This is why you see a sudden loss of sales data in your Shopify statistics.

Solution:

In order to give Shopify a clear indication that the statistics in your Shopify dashboard may continue to be displayed, you need to add the following code under "Custom Scripts" in the Shoplytics admin area.

window.Shopify.customerPrivacy.setTrackingConsent( { analytics: true, marketing: true, preferences: true, sale_of_data: true }, function() { console.log( Shopify 'injecting consent.'); } );

However, make sure that this command is only actually executed when your visitors' consent is given: To do this, activate the option: "Comply with GDPR and only trigger when consent exists"

With the following command you can (e.g. enter in the browser console) find out whether the consent has been changed accordingly:

window.Shopify.customerPrivacy.currentVisitorConsent();
Integrate Shoplytics into your shop system

Shopware

Step 1 (of 1:)

Integrate the Shoplytics script (which you received from us via email) into the <head> section of the shop.

Preferably at the very top of the head section for best results. Please do not use "defer" or "async", as we manage the loading time of the tracking script proactively directly via Shoplytics. If you're not sure how to place the script in the head section (or don't have a developer who can do it), simply download the Shoplytics plugin for Shopware 5 or 6, which will then place the script in the perfect spot for you - without you having to click around in the source code.

If you cannot place the script directly in the source code (which is the preferred recommendation), you can install the Shoplytics plugin for your Shopware version... (only necessary if you cannot/do not want to manually insert the script into the head section of your shop)

Proceed as follows.

 
Shopware 5 Shopware 6
To the plugin To the plugin
  1. The plugin must be added to Shopware via "Upload".
  2. Enter your tracking URL in the plugin settings (you received this via email.)
  3. Remember: "Clear Shopware cache" (only then will the changes be displayed to your visitors and data be collected), see screenshot below

image.png


If needed, you can now also activate Dynamic Retargeting in Shopware...

In dynamic retargeting, the user's actions are passed on to Google Ads.

This way, following the shop visit, the user sees the appropriate advertisements for exactly the product they were interested in in the shop.

The Google Ads algorithm distinguishes between product page views, opened shopping carts, and purchases.

To achieve this, the IDs of the products communicated to Google via the Google Shopping feed must exactly match the product IDs used in the tracking.

Unfortunately, this is not always the case. Especially when the Shopping feed "pulls" the product ID from a different field in the Shopware database than the tracking system in the browser.



To check whether the IDs in the Google Shopping feed exactly match the IDs in the browser, we have prepared a small tool for you.

You can find it here: https://lookerstudio.google.com/reporting/e4016efc-6684-46ff-8216-7853639163d1

If the IDs in the Shopping feed (left table) do not exactly match those in the right table (browser/tracking) (Attention: case sensitivity also counts), then you must adjust the Shopping feed export as follows:



Step 1: Check which DataLayer version is active in your shop.

To do so, please open a PRODUCT DETAIL page in your shop and add the parameter ?datalayer=1 to the URL.

→ A large yellow window will open. It shows the version of your Datalayer.



Step 2: Depending on the version of your Datalayer, you must adjust the Shopping feed so that the product ID (article ID) is pulled from the following field.

 
  Shopware 5 Shopware 6
Datalayer "Universal" articleID productID
Datalayer "GA4" Ordernumber Number

Integrate Shoplytics into your shop system

Woocommerce

  1. Install GTM (Google Tagmanager) plugin in WordPress: https://de.wordpress.org/plugins/duracelltomi-google-tag-manager/

  2. Open the plugin settings, enter the Google Tag Manager ID GTM-KK8SCVP and set Container Mode to ON below.

  3. Then configure everything as follows

    image.png

    image.png




  4. Embed the Shoplytics script

    You will find the Shoplytics script in the last email you received from us. This must be embedded in the head section of the page.
    For this we recommend the free WordPress plugin "Tracking Code Manager"

    a. After you have installed the Tracking Code Manager, go to Settings → Tracking Code Manager in WordPress.

    b. There, create a new tracking code, enter "Shoplytics" in the title and paste the Shoplytics script into the grey box. (Please paste it exactly as it appears in the email. Please do not click on the link contained in the script and insert the content. That would destroy your website. Please simply copy the script 1:1 from the email and insert it exactly as is.) c. Below the script, configure the settings as follows:

    image.png



  5. Only if you use the "WP-Rocket" plugin
    In order for the tracking code to load without errors in this case, you need to extend the Shoplytics script you received from us with the following code snippet. Insert the bold part at the same position in your script. Example code (only copy the bold part and add it to your script): <script src="https://app.shoplytics.de/0000000.js" data-cfasync="false"></script> If you have any problems with this, you can simply write to us stating that you use WP-Rocket, and we will adjust the script for you.

  6. Only if you use the "Nitropack" plugin
    Please click on the following link and make the adjustments so that tracking can work: https://docs.google.com/document/d/1JR5MYsiKijrR3z0Hzhk_ZZ_pbAmIKEmpVZ6HxqlEkvQ/

  7. Only if you use the "Borlabs Cookie" consent manager
    In the Borlabs settings, an exception for https://tagmanager.google.com/ must be added in the "Script Blocker" tab, otherwise Shoplytics tracking will be blocked directly, even when cookies have been accepted. (If this is unclear, just send an email to Marco: technik@shoplytics.de) Through the exception in the script blocker, Shoplytics can be loaded immediately, and Shoplytics then checks whether tracking may be active or not. If the entire script blocker is disabled on your site, then no exception needs to be added.



Load time optimization


Shoplytics helps you optimize the load time of your shop.

Ideally, Shoplytics serves the "GTM" (Google Tagmanager code) itself instead of having GTM4WP deliver it.

→ If in the page-speed test: https://pagespeed.web.dev, the "GTM-KK8SCVP" is shown as render-blocking, proceed as follows:

Change two settings in the GTM4WP plugin...

    1. Instead of the GTM ID, enter the following in the "Google Tag Manager ID" field: GTM-EMPTY
    2. Under "Container code ON/OFF" select the setting "OFF"

      image.png


    3. Change the setting in app.shoplytics.de/einstellungen In order for Shoplytics to deliver the Google Tagmanager in a load-time-optimized way, you must set the "Shop system" in Shoplytics to "Self-programmed". This way, Shoplytics knows that the GTM is not provided by the plugin, but that Shoplytics has to provide it.
Integrate Shoplytics into your shop system

Plentymarkets

You have received a tracking code from us via email. Please insert it into the head section of the shop.

Once the code is in the shop, please send a short email to data@shoplytics.io. We will then ensure that all ecommerce events can be tracked.

Integrate Shoplytics into your shop system

Oxid

You have received a tracking code from us via email. Please insert it into the head section of the shop.

Once the code is in the shop, please send a short email to data@shoplytics.io. We will then make sure that all ecommerce events can be captured.

Integrate Shoplytics into your shop system

Magento

Step 1

Insert the Shoplytics script in the head section of the website. You have received this from us by email.

Step 2 differs depending on your Magento version:

Magento (Commerce Version)

Follow Magento's instructions for activating the Tag Manager at the following link: To the official guide

You don't need to do anything other than follow the steps shown under Step 3. Enter "GTM-KK8SCVP" as the "GTM ID". (This is the official Shoplytics container. Nobody other than the Shoplytics developers gets access to it, in order to protect all Shoplytics customers.)

Magento (Open Source Version)

  1. Install GTM plugin: To the plugin
  2. Configure the settings as shown in the following images (You can find the "Google Tag Manager Javascript Code" here)
If you do not want to purchase the GTM plugin, the datalayer can also be provided directly by Shoplytics. However, this requires custom programming for your shop (which is then loaded directly through the Shoplytics script.). The Shoplytics datalayer service is somewhat cheaper than the GTM plugin and can be booked at https://www.checkout-ds24.com/product/592227/.

image.png

image.png

image.png

image.png

image.png

Integrate Shoplytics into your shop system

JTL

  1. Install GTM Plugin: Go to Plugin
  2. Configure settings as follows: (You will find the tracking key in your email)

image.png

Integrate Shoplytics into your shop system

Wix

  1. Log in to Wix and go to the settings via the menu.

  2. Scroll all the way down and click on "Marketing Integrations".

  3. Connect the "Google Tag". You received the required GA4 ID from us via email.

  4. In the next step, the "Google Tag Manager" must also be connected under "Marketing Integrations". Here you enter the ID GTM-KK8SVP. (This is the official Shoplytics container. To protect you and all other Shoplytics customers, no one from the Shoplytics developers has access to this container.)

  5. Now go back to the settings and click on "Custom Code" (This is exactly 2 items above "Marketing Integrations")

  6. Now click on "Edit Custom Code" and insert the Shoplytics code at the very top, which you received from us via email.

  7. For the name, you can simply enter Shoplytics. The remaining settings as shown in the image:

    image.png


Integrate Shoplytics into your shop system

PrestaShop

  1. Install GTM plugin: Go to plugin
  2. In the plugin, enter the Google Tag Manager ID GTM-KK8SCVP
  3. Configure all settings as shown in the images:
If you do not wish to purchase the GTM plugin, the datalayer can also be provided directly by Shoplytics. However, this requires custom programming for your shop (which will then be loaded directly via the Shoplytics script). The Shoplytics datalayer service is slightly cheaper than the GTM plugin and can be booked at https://www.checkout-ds24.com/product/592227/.

image.png

image.png

image.png

Integrate Shoplytics into your shop system

Jimdo

  1. Open your Jimdo admin interface

  2. Click on "Settings"

    SGRiHdXzLXXKvRXm-image.png


  3. Click on "Edit Head"

    image.png



  4. If something is already present in this "Head area" text field, then as a precaution, first make a backup copy of what is already there 🙂. Copy everything that is already in the code area here into a separate text document (on your computer). If you make a typo, or the internet suddenly disappears, you will always have a backup copy.

  5. Click with the mouse before the existing text in the head area on the first line (see screenshot below)

  6. Then simply paste the "Shoplytics Code" that you received via email into the first line of the HEAD area.

    image.png


  7. Finally, click on "Save" at the bottom right

    image.png



Check that everything is working:

If you want to make sure that everything is working, you can proceed as follows.

  1. Call up your shop URL with the following suffix at the end: ?check=1 Example: If your shop URL is: my-shop.com, then call up the following URL in the browser: my-shop.com?check=1

  2. You should then see a large yellow sign in the browser that says: "The Shoplytics script has been correctly embedded in the source code"

  3. If you do not see this sign, then please contact our technical team directly and we will help you further.

Bonus task:

Remove duplicate tracking scripts.

To avoid unnecessarily loading duplicate tracking scripts, proceed as follows:

Remove duplicate "Google Analytics" tracking


  1. Open the "SEO" section in your shop.

    image.png




  2. Then click on "Google Analytics"

    image.png




  3. If there is an account ID in there, then please send us an email with this ID, and we will also include it in the ProfitFinder. This saves loading time and additional code in your shop 

    image.png

Integrate Shoplytics into your shop system

X-Cart

  1. Install the following plugin. This provides the "Ecommerce Datalayer according to Google Standard". The Ecommerce Datalayer delivers the necessary signals for tracking ecommerce events and product details. https://market.x-cart.com/addons/google-tag-manager-classic.html?backURL=https%3A%2F%2Fmarket.x-cart.com%2Fsearch%2F%3Fsubstring%3Ddatalayer%23productid-5199
  2. Place the Shoplytics code globally in the <head> section of the shop. You received the Shoplytics code from us by email. You can also find it at any time at https://app.shoplytics.de/einstellungen/?tab=skript
Integrate Shoplytics into your shop system

BigCommerce

  1. Install the following plugin. This provides the "Ecommerce Data Layer according to Google Standard". The Ecommerce Data Layer delivers the necessary signals for tracking ecommerce events and product details. https://www.bigcommerce.com/apps/tag-manager-suite/
  2. Place the Shoplytics code globally in the <head> section of the shop. You received the Shoplytics code from us by email. You can also find it at any time at https://app.shoplytics.de/einstellungen/?tab=skript
Integrate Shoplytics into your shop system

Custom development / unsupported shop system

Custom Development / Unsupported Shop System

For Shoplytics to capture relevant e-commerce events in your shop (e.g. view_item, add_to_cart, purchase), it needs a clean e-commerce data layer.

This data layer provides structured information, including:

In short: Everything that turns visitors into measurable purchasing decisions.

The standard Shoplytics relies on

Shoplytics follows the common Google Analytics data layer standard (GTM version).

For many shop systems, ready-made plugins are already available. That's why our first, pragmatic tip is:

Search your shop's admin area for plugins with terms like

Many of these plugins provide the required e-commerce data layer right out of the box. If you're unsure whether a plugin is the right fit for you, feel free to send us the link at support@shoplytics.de and we'll quickly check it for you.

Couldn't find a plugin for your shop? No problem.

(PS: You shouldn't have to pay more than 10 euros per month for this ... there are plugins out there that charge ten times as much. That's way too much.)

Especially with more customized setups, it's completely normal for no plugins to be available. That's not a problem either.

In this case, you have two clean options:

Option 1: Data layer implementation by your developer or agency

Your developer implements the e-commerce data layer directly in your shop's source code.

This is the standard approach for:

You'll find the instructions for your developer at the bottom of this page.

Option 2: We'll take care of it for you. Book the Shoplytics Data Layer Service

What you get:

Important: This data layer belongs to you. You can continue to use it independently of Shoplytics, since other plugins and tracking systems also align with this exact standard.

--> Book the Data Layer Service now

So: Whether from us, a plugin from your shop, or your shop agency – make sure you get a clean data layer based on this standard.

You're not investing in a tool, but in a clean data foundation for your shop.

In the next step, you'll find the original Google documentation on this topic.

 


Instructions for your developer on how to easily program the data layer

  1. Programming the "DataLayer" and populating it with "Enhanced E-Commerce Data" according to Google's own documentation (You can find the link to the full Google documentation and all possible events at the end of this document.):
    1. You can limit yourself here to the following four events/page views: (Steps 1 through 4 are "mandatory" to start ecommerce tracking)
      1. Viewing a product page (Documentation: "view_item")
      2. Adding/removing a product from the shopping cart (Documentation: add_to_cart, or: remove_from_cart)
      3. Entering the checkout: begin_checkout
      4. Transmission of successfully completed purchases (on the "Thank You page" after the purchase) (See purchase in the Google docs)
  2. Please observe the "required" parameters in each of the data layer pushes in the original Google documentation (links below):
    1. the respective event name (e.g. "view_item" or "purchase")
    2. items > item_name & item_id
    3. currency
    4. value

If you have any questions about the programming, feel free to contact us anytime at:

support@shoplytics.de

Google's documentation on the individual events:

Please have your developer team implement it exactly this way.

(Also see the mandatory parameters in the ecommerce and items objects.)

At minimum, the events: view_item, add_to_cart and purchase are necessary.

It would be better to have all of the following events...


add_payment_info:

https://developers.google.com/analytics/devguides/collection/ga4/reference/events?hl=de&client_type=gtm#add_payment_info

add_shipping_info:

https://developers.google.com/analytics/devguides/collection/ga4/reference/events?hl=de&client_type=gtm#add_shipping_info

add_to_cart:

https://developers.google.com/analytics/devguides/collection/ga4/reference/events?hl=de&client_type=gtm#add_to_cart

begin_checkout:

https://developers.google.com/analytics/devguides/collection/ga4/reference/events?hl=de&client_type=gtm#begin_checkout

view_item:

https://developers.google.com/analytics/devguides/collection/ga4/reference/events?hl=de&client_type=gtm#view_item

view_item_list:

https://developers.google.com/analytics/devguides/collection/ga4/reference/events?hl=de&client_type=gtm#view_item_list

purchase:

https://developers.google.com/analytics/devguides/collection/ga4/reference/events?hl=de&client_type=gtm#purchase

remove_from_cart:

https://developers.google.com/analytics/devguides/collection/ga4/reference/events?hl=de&client_type=gtm#remove_from_cart

What happens after the installation?

A Shoplytics technician will perform a comprehensive tracking check within 48 hours...

Tip: It's best to send a short email to data@shoplytics.io as soon as you've integrated Shoplytics into your shop system. That way, the tracking check can take place as early as possible.

If any irregularities occur during the tracking check, we will resolve them as quickly as possible and then contact you via email with the next steps.

If the tracking check was successful...

Then we will send you an email to inform you about it and explain the next steps.


When does the onboarding call take place?

After a successful tracking check, we place your Shoplytics account into a 1-week monitoring routine to make sure everything is running as expected.

After this week, we will send you another email with an invitation to the onboarding call. You can then choose a suitable appointment from the calendar.

How do I access my Shoplytics account

After you have booked Shoplytics, a Shoplytics account will automatically be created for the email address you entered during the booking. Therefore, when booking multiple Shoplytics instances, make sure to use a different email address for each order.

For your first login, you can simply click "Forgot password" to set a new password for the account.


In the admin area, you have the option to enter tracking IDs and API keys from additional services, view the Shoplytics courses, and open the dashboard, which will only work after the installation has been completed.

First-Party Tracking

What is first-party tracking?

First-party tracking means that Shoplytics is not loaded as a third-party resource, but rather as if Shoplytics were a core feature of your website.

"app.shoplytics.de" will then no longer appear in the browser console, but only "stream.my-domain.de". The result is that many tracking blockers no longer detect Shoplytics, allowing more users to be captured server-side.


Activate first-party tracking:

To do this, you need to log in to your domain provider and create a new DNS entry for your domain...

Type: CNAME

Name: stream

Value: 1p.shoplytics.de

Check whether it works by visiting the "stream." subdomain of your domain a few minutes after creating it. If the entry works, you will see either the error "ERR_CERT_COMMON_NAME_INVALID" or a Cloudflare page. Now all that remains is for a Shoplytics technician to activate first-party tracking for this new subdomain.
Note: With some domain providers, you need to add a period (.) after the name and/or after the value for the entry to work.
If you use Cloudflare: Enable the "DNS only" option for the entry so that the Cloudflare proxy is not used. Otherwise, tracking will not work properly.


As soon as the entry is active, please send an email to data@shoplytics.io. Our technician will activate first-party tracking.

Connect Shoplytics with many other services

Connect Shoplytics with many other services

Microsoft Ads

To link your Bing advertising account with Shoplytics, please log in to Shoplytics and to Microsoft Ads.

Step 1: Enter Tracking ID in Shoplytics

  1. In the navigation of Microsoft Ads, click on "Conversions" → "UET Tag" → "Create"
  2. Give the pixel any name you like and enter "Shoplytics" in the description so you can identify it later.
  3. On the next page, select "Use Conversions API"
  4. Copy the displayed token and enter it on app.shoplytics.de under "Other Pixels" → "Microsoft Conversion API Token"
  5. Switch back to Microsoft Ads and look for the parameter "cid=" in the address bar. Copy the number that follows the "=" and enter it in Shoplytics under "Microsoft Ad Account ID" (Important: This is not the ad account ID you see in the interface, but the CID from the address bar)
  6. Switch back to Microsoft Ads and go to "Conversions → UET Tag → All Tags" and copy the Tag ID of the tag you just created from the table. Enter this ID in Shoplytics under "Microsoft UET Tag ID"

Step 2: Create a Conversion Goal for Purchases

  1. In the Microsoft Ads navigation, click on "Conversions" --> "Conversion goals"
  2. Click on "+ new conversion goal" in the upper right corner and choose "track online conversions"
  3. Enter you domain in the first step.
  4. Now click on "add a conversion goal"

    image.png


  5. Configure all settings as shown in the screenshot:

    image.png

  6. Click on "continue" for every following step. The configuration is complete und you can just skip all other step by clicking on "continue".

Step 3 (optional): Create Retargeting Audiences

Shoplytics already sends all the necessary data. Now you need to make sure in Bing Ads that the transmitted data can also be used for retargeting.


To do this, create "Audience" lists in Bing Ads.

In the following, I'll show you the setup using the example of "view_item" (product page view).

You then repeat the exact same procedure for all relevant Ecom events:

Instructions

  1. Click on "Tools" and then on "Audiences"
  2. Enter the name: e.g. "Shoplytics view_item (Product page viewed)" Select "Remarketing List" as the option:
  3. Select the "UET" tag from the dropdown menu (If you have several, it must be the one connected to Shoplytics.)
  4. And for "who do you want to add to the list", select "Custom Events"
  5. In the input form, apply these settings:

    image.png

  6. (You will adjust the "Action" for each individual event - according to the event you are currently setting up). "Category" and "Label" remain exactly the same.
  7. You can ignore the code shown below (you don't need to copy or email it -> Shoplytics has already taken care of everything for you).
  8. You can still change the "Duration", i.e. how long individual visitors remain in the list (after their action in the shop). With this you determine: a) how long you can contact visitors (after their action in the shop) via your retargeting campaigns. b) how "current" the action is for the visitor - and how relevant your ads will be to the visitor accordingly. Here you need to find a happy medium between: a) "I want to stay in contact with the visitor for as long as possible in the future" and b) "a visitor who saw a product 6 months ago surely has less interest in your ads than one who last saw a product in your shop 3 days ago"

So we can check the data-quality...

Please give us access to the ads-account.
You can do that on https://ads.microsoft.com/cc/Users by inviting "technik@shoplytics.de".

Connect Shoplytics with many other services

TikTok Ads

To connect Shoplytics with your TikTok advertising account, log in to TikTok Ads and go to Events Manager --> datasources

  1. Copy the displayed Pixel ID or create a new pixel and then copy the ID.
  2. Log in to Shoplytics and go to Other Pixels
  3. Here you will find the "TikTok ID" field where you can paste the copied ID. (Make sure that no space has been inserted!)

OPTIONAL: Connect TikTok Conversion API (server-side tracking)

Please create a TikTok API key and send it to data@shoplytics.io so that a technician can activate the API for you.

How do I create an API key?

  1. In the TikTok Events Manager, click on the pixel and then on "settings".
  2. Scroll to the "Access Token Generation" section and click the button to generate a key.
Connect Shoplytics with many other services

Pinterest Ads

To connect Shoplytics with your Pinterest ad account, log in at https://ads.pinterest.com/ and navigate through the menu to "Conversions" --> Pinterest tag --> Tag health.

  1. Copy the displayed tag number.
  2. Log in to Shoplytics and go to other pixels
  3. Enter the copied number under "Pinterest Pixel ID"

Connect Pinterest Conversion API (server-side tracking)

To do this, please generate an access token and send it to data@shoplytics.io so that a technician can activate the API. Please also include your ad account number in this email.


How do I generate an access token?

  1. In Pinterest, go to "Conversions" --> Conversion API --> Set up API
  2. Click on "Generate new token"
Connect Shoplytics with many other services

AWIN

To link Shoplytics with AWIN, you need your AWIN Merchant ID (merchant ID).

Simply send this merchant ID by email to support@shoplytics.de.

We will activate the AWIN integration within a few days.

Connect Shoplytics with many other services

Microsoft Clarity

By default, we create a new property in Microsoft Clarity during the setup of Shoplytics and invite you to this property.

Clarity tracking is therefore automatically active through Shoplytics.


However, if you have already used Clarity before and would like to continue using your old property with Shoplytics tracking, simply send us your property ID from Microsoft Clarity to data@shoplytics.io.

We will then connect this property with Shoplytics.

Connect Shoplytics with many other services

Meta Ads / Facebook Ads

Important note:

We strongly recommend creating a new pixel rather than connecting your old pixel to Shoplytics. Otherwise, duplicate events and issues with the campaign algorithm may occur.

If you are sure that you want to use your old pixel, you can simply skip the first steps of this guide. But you can't go wrong with a second pixel.


Instructions:

  1. Log in to your Business Manager at business.facebook.com. (If you don't have a business account yet, you can create one on this page. Your ad account and pixel are just "assets" that sit within your business account.)
  2. On the left, click "All Tools" --> "Events Manager" and then click "Data Sources"
  3. Click the green "+ Connect Data" at the top left to create a new data source.
  4. Select "Web" as the type
  5. Enter the domain followed by "Shoplytics" as the name.
  6. In the next step, Facebook will offer you implementation instructions. You can ignore and close this.
  7. Click on Settings at the top right
  8. Copy the "Dataset ID"
  9. Scroll down to "Set up direct integration" and generate an access token without "Dataset Quality API"

    image.png



  10. Send these two pieces of information to data@shoplytics.io so we can activate the integration.
  11. In the pixel settings, also click "Share with ad account" so that the audiences work.


Enabling error monitoring:

So that we can check whether the pixel is being supplied with data correctly, you should definitely also grant the Shoplytics team access to the pixel and the ad account.

To do this, simply go to Business Settings --> Datasets --> Assign Partners --> grant access to business ID 1800068976920756.

image.png

Connect Shoplytics with many other services

Google Merchant Center

  1. Log in to Google Merchant Center and make sure that the correct merchant profile is selected in the top right.
  2. Go to the bottom left to Settings --> Access and services
  3. Click the upper "Add person" button and add data@shoplytics.io.
  4. For the permissions, you can leave the default settings and submit.
Connect Shoplytics with many other services

ChatGPT / OpenAI Ads

Here's how to make your sales from ChatGPT ads measurable. This will take you around fifteen minutes and requires
access to the OpenAI Ads Manager at ads.openai.com.

Most of it is already done

Your shop is already prepared for ChatGPT Ads via Shoplytics. We activate tracking with a single click, with no changes
to your shop and no coding required on your end. We automatically deliver these events:

- Page view - someone lands in your shop from an ad
- Product view - an item is viewed
- Added to cart
- Checkout started
- Purchase - including order value and purchased items

We send each of these via two channels: from the browser through the pixel, and additionally from our server. OpenAI
recommends exactly this combination, because sales sent server-side still arrive even when an ad blocker is active
or cookies are missing. Both channels carry the same event ID, so nothing is counted twice. The bottom line
is you see more of your actual sales.


There are two things we can't handle for you, because they're only possible within the ad account itself:

The two steps at a glance

Step 1:
You retrieve two values from your ad account and send them to us. That's how we set up the data pipeline. You
do this part once, and we take care of the rest.
Step 2: You decide in the ad account which actions should count as conversions. Only the
account owner can do this, so this part stays with you.

Step 1: Find the Pixel ID and Conversions API Key

You'll find both values in the same place. Send us both, and we'll set them up in Shoplytics.

Value 1 of 2: The Pixel ID

The identifier of the data container where your sales are collected. Not a secret, so it may be shared openly.

1. Log in to your ad account at ads.openai.com.
2. Open the Tools menu and select Conversions.
3. Stay on the Data Source tab. This is where your created pixels are listed.
4. The ID appears directly below the pixel's name. Hover over the row and copy the Pixel ID.
5. If no pixel exists yet, create one first and name it after your shop.
The value looks roughly like this: a longer sequence of letters and digits, for example 2Fpr6SG4h87eMXrACYkfK9.

Value 2 of 2: The Conversions API Key

Allows our server to report orders directly to OpenAI. This key is like a password and should be treated accordingly.

1. Stay in the same area under Tools, then Conversions.
2. Click the key icon in the top right, which manages the Conversion API keys.
3. Create a new key there.
4. Give it a recognizable name, for example Shoplytics.
5. Copy the key immediately. It is shown only once and cannot be retrieved afterward.
The value looks roughly like this: it starts with sk-svcacct- and is considerably longer than the Pixel ID.

If you can't find the Conversions section

Then your ad account hasn't been enabled for it yet. Neither you nor we can activate this ourselves — please contact
your OpenAI representative. If you didn't copy the key in time, delete the old entry and create
a new one.


Step 2: Create conversion actions in ChatGPT

If you already run Meta ads, you're used to this: tracking sends a standard event, and it
automatically appears in reporting. That's not how it works with ChatGPT Ads. Here it's like Microsoft Ads (Bing): the event
we send is initially just the data pipeline. Which of these actions counts as a conversion is something you
define separately in the ad account.
So we reliably send the purchase, but it only gets counted once you tell ChatGPT that you want to
count it as a conversion. Only then does it appear in reports and become selectable as a campaign goal.

Here's where to find this section: on the left menu under Tools, the Conversions item, then the Conversion Events tab at the top, and within it the button to create one.

How to proceed

image.png

1. In the Ads Manager, open Tools on the left menu and select Conversions.
2. Switch to the Conversion Events tab at the top.
3. Click + Create Conversion Event. If one already exists, you'll find the button in the top right under + Create.
4. Fill in the four fields: Data Source (your pixel from Step 1), Base Event (see below), Conversion Name (free
text, max. 30 characters), and the click-through attribution window in days.
5. Click Create and repeat this for all five conversions.

Good to know

Attribution window: You set this here, not us in the tracking. 30 days is a good starting value for the purchase. For a plain
page view, fewer days are fine — otherwise it will still count as a conversion a month after the click.
Conversion Name: plain free text. It doesn't affect measurement, only the label in your reports.
Each action belongs to exactly one data source. If you run multiple shops in one ad account, create a separate
set for each shop.
Optimizing for conversions: When creating a campaign, you select exactly one of these actions as the goal. This choice
can't be changed later, and existing campaigns can't be switched afterward either. When in doubt, it's better to create a
new campaign.
If labels differ: OpenAI is currently changing the interface frequently. If an item is named differently than
described here, choose the one that matches in meaning and let us know.


The five conversions you'll create

We send five events along the purchase path. Create an action for each one, and you'll later be able to see exactly where
prospects drop off. Wherever XXXXX Your Pixel XXXXX appears in the screenshots, select your own data source from Step 1.

1. Page view - Base event: Page viewed

image.png

2. Product view - Base event: Content viewed

image.png

3. Added to cart - Base event: Item added

image.png

4. Checkout started - Base event: Checkout started

image.png

5. Purchase - Base event: Order created

image.png

 

 

Frequently Asked Questions

Purchase Event and Double Counting

Does Shoplytics send order_created exactly once per order?

Yes. The event is sent upon the first normalized paid order state. No second successful order_created is created for the same order, whether through a webhook retry, manual retry, re-capture, or any other processing on our end.

What happens if it is sent twice anyway?

Then deduplication takes effect at OpenAI. The matching key consists of the Pixel ID, Event Name, and Event ID. The first incoming event is used; subsequent duplicates with the same key are discarded. Double counting therefore only occurs if two transmissions carry different IDs.



Event IDs

Is events[].id a required field?

Yes. In the Conversions API, id is required for every event, regardless of event type and even for purely server-side tracking. An event without an id will be rejected, and since an invalid event causes the entire batch to fail, the rest will fail as well.

Must the same ID be used during a retry?

Yes, absolutely. Duplicate delivery with an identical ID is non-critical, as OpenAI discards the duplicate. A new ID during a retry, on the other hand, creates a second conversion. Our implementation therefore passes through the value once generated and does not re-derive it server-side.

Can we specify a custom ID format, for example shopify:<shop>:order:<order_gid>:order_created:v1?

No. We use our own internally generated Event IDs system-wide, which browser and server use synchronously. A custom format would break this synchronization.

Technically, this is also not necessary. OpenAI does not prescribe a specific format. The only requirement is that the Pixel event_id and Server id carry the same value. Whether this is an order number, a UUID, or an internal identifier does not matter for deduplication. The examples in the OpenAI documentation use order numbers like order_12345; this is a sample value, not a requirement.

How do we then match a reported conversion to a specific order?

Via our raw data. OpenAI does not have a field for an order number anyway. The contents data structure only has type, amount, currency, and contents[]; at the event level, there is neither a transaction_id nor an order_id. The only transaction reference in the payload is the Event ID. Therefore, mapping to the order and to the GA4 transaction_id happens on our side in every conceivable setup, not at OpenAI.



Data Minimization

Can the user object be omitted entirely?

Yes. All fields in events[].user are optional, as is the object itself. The event will still be accepted without it. Attribution will then rely solely on the click identifier.

Will this stay the same if Shoplytics introduces hashed user data later on?

Activation occurs only after explicit client approval. Without approval, the object remains excluded.

Can tracking be operated without a browser pixel, i.e., purely server-side?

Technically yes, but with limitations you need to be aware of.

The click identifier oppref arrives as a query parameter on the landing page. A server can generally read it from the URL and store it itself, so the pixel is not strictly required for this.

What is lost without a pixel:

OpenAI consistently describes the combined setup of Pixel and Conversions API in its documentation and explicitly recommends it. A server-only setup is not ruled out by this, but it is not the documented standard approach, and attribution will be weaker.

Can Automatic Advanced Matching be disabled?

Yes, it is an account-level setting and not a requirement for measurement.



Keys and Handover

How is the Conversions API key passed?

Via a secure input field in the account or an encrypted one-time link. Not via plain text email.

How is it stored and processed?

API keys are stored exclusively in encrypted form. At most, only the encrypted value may be visible in the browser. Plain text keys and decryption keys never reach the browser or client-side code. Decryption happens exclusively server-side, immediately before the server-to-server call. Plain text logs and freely accessible configurations are not created in the process.

Why must the key never enter the frontend?

Because the Conversions API is strictly server-only. A key in the page source code could be read immediately. In the browser, the Pixel runs and only requires the Pixel ID, which is not a secret.



integration_source

Is a stable integration_source value sent?

Yes, shoplytics, at the top level of every request and identical for every batch. OpenAI provides this field for anyone sending events on behalf of advertisers. It is not a required field and has no impact on authentication or authorization.



Consent, Retention, Revocation

Is the consent status represented technically?

Yes. The pixel only knows on or off; there is no Consent Mode in the Google sense at OpenAI, so no cookieless pings and no modeling. If consent is missing, nothing is sent, and blocked events are not made up for later. Server-side sending is not a workaround, but merely a different transport method and follows the same status.

Is there a defined retention period and deletion upon request?

Yes, with an immediate send stop becoming effective upon revocation or deactivation.



Testing and Acceptance

Is there a validation run without storage?

Yes. The Conversions API supports validate_only: true. This checks credentials and schema without writing data.

Do you provide formal readbacks per Event ID with HTTP status, response body, and retry count?

Not in this form. Our acceptance process is different and serves the same purpose:

That is the cross-check that matters: not whether an event was accepted, but whether it appears as a conversion in Ads Manager.

Why can an accepted event still result in zero conversions?

Because accepted only confirms transport. For it to become a counted conversion, a conversion action in the account must additionally point to the matching event type, the event must be attributable to a campaign, and it must fall within the attribution window. If the conversion action is missing, the count stays at zero, even though everything was technically sent correctly.

Is this process proven?

Yes, ChatGPT tracking currently runs stably on over twenty shops. If issues arise, we resolve them.



Parallel Operation

Can two CAPI senders run simultaneously?

No, and this should not be attempted. Two senders typically generate different Event IDs for the same conversion because they generate them independently. Deduplication will not work in that case, leading to double-counted conversions. When switching, you switch over rather than running in parallel.



Where is the technical basis documented?

The complete documentation based on which the tracking is implemented can be found at shoplytics.de/gpt-tracking-doku.

Official OpenAI sources:

Snippet for privacy-notice

Privacy-First Tracking with Shoplytics® 

Why Privacy-First?

In e-commerce tracking, there is simply no benefit to identifying an individual visitor. Shoplytics thinks in traffic streams, not people. What drives decisions is understanding which channels, campaigns, and sources are delivering results — and for that, you need an anonymous mass of visitors, not personal profiles. There is no need to capture private information. So we don't.

 

How Privacy-First?

1. Shoplytics is invisible in your visitors' browser. Every script runs under your shop's own domain — not ours. Shoplytics never appears as a third party in your visitors' browser. As far as your visitors are concerned, they are interacting with you and only you. This means the data controller is unambiguously you — the shop operator. Not Shoplytics.

2. Only anonymized data. Always. No names, no emails, no personal details. Just anonymous signals — a visit, a click, a conversion — with nothing attached that could identify the person behind it.

3. Shoplytics is merely a moving company for data. We move data — from the browser, directly to your endpoints: Google Analytics, Google Ads, Meta, or whatever platforms you have connected. We pick it up, we deliver it, we leave no copy behind.

4. Shoplytics never saves, stores, or retains your data. Shoplytics manages anonymous data streams directly in the browser. No data is saved on Shoplytics servers. No data is retained. Nothing is written, logged, or preserved anywhere outside of the visitor's own browser session.

 

Who is the Data Controller?

You are. Always. Exclusively.

Because Shoplytics never appears in your visitors' browser, and all scripts run under your own domain, your shop is the data controller at every point in the process. Shoplytics is the infrastructure that makes data delivery reliable — nothing more. We are not a data controller. We do not appear as a third-party processor in the browser. The legal and compliance relationship is between your shop and your visitors, exactly as it should be.

 

What About Sensitive Data?

The only moment any transaction-related data briefly enters the picture is on the order confirmation page — where, with the customer's consent, a completed purchase is attributed to the correct marketing channel. Even here, Shoplytics captures, cleans, and forwards the data directly to your configured endpoints in real time. It is never written to a Shoplytics database, never logged, and never accessible to Shoplytics in any persistent form.

For businesses in sensitive sectors — including healthcare — this means no unnecessary data exposure, no compliance overhead beyond what your own platforms already require, and no additional risk surface introduced by a third party holding your customers' data.

 

Privacy Policy Template

The following template has been found helpful by customers in the past when documenting Shoplytics in their own privacy policies. Use it as a starting point — but make sure to review it with your legal counsel before publishing.

Use of the Shoplytics® Data Management Solution on this Website

IMPORTANT: This is not legal advice. This text must be reviewed by a data protection officer or legal adviser before publication.

 

Purpose and Functionality

This website uses Shoplytics®, a data management solution. Shoplytics® serves as the technical control layer for coordinating and managing various web-based functions — and, following explicit user consent, for activating analytics and marketing technologies such as Google Analytics, Google Ads, and Meta Pixel.

Shoplytics® is designed to ensure data-efficient, performance-optimised, and structured execution of these technologies. It supports in particular the privacy-compliant control of tracking and analytics scripts, load time optimisation through intelligent script management, a clear separation between technically necessary functions and those requiring consent, and the secure implementation of consent requirements.

 

Technical Operation and Data Handling

Shoplytics® operates as a technical control layer and does not store personal data on its own servers. Data is forwarded directly to your configured endpoints — Google Analytics, Google Ads, Meta, or any other connected platform — without being retained or saved at any point in the process. Network connections initiated by Shoplytics® serve primarily to load technical control resources such as configuration files and script logic. Tracking and marketing technologies are activated through Shoplytics® only following valid user consent.

Prior to consent, no analytics or marketing services are activated, no personal data is transmitted to external tracking providers, and no user profiling or behavioural analysis takes place. In particular, no IP address is transmitted to external tracking or marketing providers prior to consent. The Google Tag Manager is not loaded directly from Google servers, but exclusively through a technically controlled first-party proxy — for example via a subdomain such as stream.your-domain.com — enabling privacy-friendly integration within your own infrastructure.

 

Storage of Technical Information in the Browser

Shoplytics® stores technical state information in the visitor's browser localStorage — for example under the key "shoplytics_dsgvo_no_track". This information is used exclusively for managing consent status, technical control of script activation, bot detection, and load time optimisation. No personal data is stored in this process.

 

The initial loading of Shoplytics® takes place solely to perform technically necessary functions, in particular consent management, system stability, and the control of privacy-relevant processes. This is based on § 25 Para. 2 No. 2 TTDSG (strictly necessary for the provision of a telemedia service) and Art. 6 Para. 1 lit. f GDPR (legitimate interest in privacy-compliant, secure, and performance-optimised website operation). Activation of tracking, analytics, or marketing technologies takes place only following explicit consent under § 25 Para. 1 TTDSG and Art. 6 Para. 1 lit. a GDPR.

 

Clear Separation: Technical Functions vs. Tracking

Shoplytics® handles both core technical functions and — following consent — the management of optional tracking services. Technically necessary functions requiring no consent include consent management and GDPR compliance, technical control of script activation, performance optimisation, and security and stability measures. Functions requiring consent — and technically blocked until consent is given — include Google Analytics 4, Google Ads Conversion Tracking, Meta Pixel and Meta CAPI, and any other configured marketing and analytics services.

 

Summary

The initial integration of Shoplytics® serves exclusively to implement technically necessary and privacy-relevant control functions and is therefore permissible without prior consent. Actual processing of personal data by analytics or marketing systems takes place only following explicit user consent via the consent banner. Users may withdraw consent at any time without any disadvantage in using the website. The use of Shoplytics® is fully compliant with the requirements of the GDPR and TTDSG.

 

Frequently Asked Questions

Is Google Analytics 4 used in Advanced Consent Mode? This is possible and recommended for improved data quality. The consent mode configuration depends on your individual setup.

Are Google Signals active? This depends on your Google Analytics configuration and should be reviewed with your analytics provider.

Is Google Analytics 4 used with cookies? This depends on your setup. Meaningful use without cookies is significantly limited.

Is server-side tracking in use? Yes, as part of a first-party setup via your own infrastructure — for example via stream.your-domain.com.

Are Enhanced Conversions used in Google Ads? This depends on your individual Google Ads configuration.

Is Meta CAPI used in server-side tracking? This depends on your individual setup and connected platforms.

POAS-Tracking

In order for POAS tracking to be activated in Shoplytics, you need to provide your shopping feed. Ideally, the feed should be provided as a static XML, CSV, or TSV file that can be retrieved directly via a public URL.

The link's load time must not exceed 10 seconds. If the feed is generated in real time only when the link is called, and this generation takes longer than 10 seconds, Shoplytics will not be able to read the feed. (This limit protects both your server and ours. The ideal setup is therefore an already generated file that is delivered without delay when called.)

Once the feed URL is ready, you can send it to support@shoplytics.de and ask us to activate POAS tracking. Please also mention in that email whether POAS tracking should be connected to Google Ads and/or Meta Ads.