Logo of TAGGRS, written in blue and with a small favicon
HomeServer-side TrackingMeta CAPI Gateway
SERVER-SIDE TRACKING
Get started
Get started with TAGGRSSet up Google Tag ManagerConfigure the subdomainAdd the GTM Data LayerConfigure GTM transformationsTest the setupDebuggingAnalytics dashboard
Migrate from Google CloudMigrate from hosting
Shortcuts
GTM Copy PasteReady-made templates
GA4 Server-side Tracking
Setup in GTMCreate GA4 Event TagsGA4 tag setup in server containerE-commerce events in GTM
Google Ads Server-side Tracking
Install Conversion LinkerSet up Conversion TrackingConfigure Enhanced ConversionsDeploy Remarketing TagsInstall Offline Conversions
Facebook Server-side Tracking
Set Meta PixelImprove your EMQ ScoreInstall Meta CAPIMeta Events Deduplication
LinkedIn Server-side Tracking
Install LinkedIn Insight TagSet up LinkedIn CAPILinkedIn Events Deduplication
TikTok Server-side Tracking
Set up TikTok PixelInstall TikTok Events APITikTok Events Deduplication
Pinterest Server-side Tracking
Set up Pinterest TagConfigure Pinterest Conversions APIPinterest Events Deduplication
Snapchat Server-side Tracking
Set up Snap PixelSnapchat Conversions APISnapchat Events Deduplication
TAGGRS Tracking Tags and Tools
Tracking TagsGoogle Service Account integrationProfit TrackingData Enricher ToolWebhooks TesterEnhanced Tracking ScriptMulti Domain ToolClick ID RecoveryConsent Approval Graph
Configurations
Billy Grace Server-side TrackingLeadPages Server-side TrackingPiwik PRO Server-side TrackingCDN Server-side TrackingShopify Server-side TrackingActiveCampaign Server-side TrackingKlaviyo Server-side TrackingSpectacle Server-side TrackingEulerian Server-side Tracking
Server-side Tracking for e-commerce
Shopify Data LayerShopware Data LayerMagento Data LayerWooCommerce Data LayerPrestashop Data LayerLightspeed Data Layer
Consent Management server-side
Activate Consent ModeConfigure AxeptioConfigure Cookie Confirm
META CAPI GATEWAY
ACCOUNT SETTINGS
User roles and accessSSO

Test your Server-side Tracking configuration

This guide explains how to test your server-side tracking setup. It covers how to use Google Tag Manager’s preview mode, interpret the data sent by your tags, and confirm that all required tags trigger at the correct times. You’ll also learn how to monitor incoming and outgoing requests and verify data in your TAGGRS dashboard. By following these steps, you can ensure your server-side tracking implementation is forwarding and processing data accurately and reliably. The guide includes a link to our checklist for a step-by-step reference.

Key components

GTM Preview Mode
Allows you to inspect event payloads, debug tag execution, and verify data flow between client and server environments. Learn to activate and use this mode for both web and server containers to validate your server-side tracking (SST) configuration in real time.
Web vs. Server containers
Server containers handle server-side-specific elements like client configurations, server-to-server forwarding, and transformations, which are absent in web containers.
Validation of incoming and outgoing data
Confirm that the GA4 client (or other clients) in your server container receives, processes, and forwards event data accurately to external platforms. Validate payload structure, parameter completeness, and compliance with privacy rules.
Tag activation and data flow
Ensure all required tags fire correctly and transmit necessary data. Verify that events are routed through the server container as intended, with no gaps or misconfigurations in the data pipeline.

Server-side setup testing in Google Tag Manager: 5-step process

Prerequisites

We focus on debugging our TAGGRS Demoshop, a basic E-commerce web shop. For testing, we set up different components to create a tracking environment:

  • Google Tag (Web Container)
  • E-commerce events (Web Container)
  • TAGGRS Tracking Tag (Web and Server Container)
  • Google Analytics Events (Server Container)
TAGGRS webshop is used in this guide to test the Google Tag Manager setup

Open preview mode in Google Tag Manager

The debugging process in the server container differs from that in the web container in that you must enable preview mode for both web and server containers.

  • Open server preview (normal if you don't see anything coming in)
  • Open preview web container and add website url
  • In both preview modes, see if the data is coming in.

Watch the video below to follow the process step-by-step.

Preview Mode view

When opening the preview mode in GTM, differences between the Web and server containers become apparent. The server container introduces new tabs specific to its functionality.

Situation, preview of the web container and preview of the server container of the TAGGRS webshop used in this guide to test the GTM setup

In the web container on the left, we see under summary:

Window Loaded
This moment indicates when the entire browser window, including all dependent resources such as images and stylesheets, is fully loaded.
DOM Ready
This point marks when the page's Document Object Model (DOM) is fully built, allowing scripts that depend on the DOM to begin executing.
Container Loaded
Indicates when the Google Tag Manager container is fully loaded and initialized on the page, ready to start processing tags.
Initialization
This is when Google Tag Manager begins initializing the setup before tags are evaluated and executed.
Consent Initialization
This refers to when consent settings are initialized and processed within the container, essential for compliance with privacy regulations.
Message
This refers to a general notification or message that may appear during the debug process, often used to report specific actions or errors within tag implementations.
Message
This refers to a general notification or message that may appear during the debug process, often used to report specific actions or errors within tag implementations.
Preview mode in Google Tag Manager

In the Server Container, we see:

Summary
Here we see a summary of all incoming requests that the server container has intercepted.
Requests
Displays the HTTP requests coming in and going out from the server and which client processed them.
Tags
Shows which tags have been fired in the server container.
Variables
Contains information about all accessible variables sent through the request.
Event Data
Here you see the event data object constructed by the client.
Console
Displays helpful log messages.
Preview mode in Google Tag Manager to test your tracking setup

Under Summary in the server container, specific events are represented by the parameter collect?=v, which indicates the type of event being processed, for example, a GA4 event. Under collect is the event, which in this case is page_view.

js?id=G-XXXXXXXX = Request from Google Tag JavaScript library
collect?v=2 = GA4 requests

Does data enter the server container?

To check if data is coming in correctly to the server container, we first check if the server container has received data from the web container. We do this through the 'request' section within GTM. Here you can see which client has processed the incoming requests, which requests are coming in and which are going out.

1.
Assign a priority to the transformation if multiple transformations could apply to the same data. Higher values are evaluated first.
Request incoming in the Google Tag Manager server container
2.
If not set, the default evaluation order is: Allow Parameters → Event Enrichment → Exclude Parameters.

Are all required tags fired?

Now that the data is successfully passed from the web container to the server container and then to Google Analytics, it's time to test whether our set tags are working correctly. We focus on testing a view item event in our TAGGRS Demo Webshop.

View item event in Debug Mode in the server container

In the web container, we observe that two tags are activated: our GA4 event and the TAGGRS server tag. This is the time to verify that all the necessary tags are triggered as intended. When this happens, it confirms that the triggers are set correctly and the data is adequately forwarded to the server.

What data does the tag send along?

After the necessary tags are correctly activated, it is important to check what specific data these tags send with them. This can be viewed in the event data section within the server container. Here you will find all the data that has been passed from the web container to the server container. For a 'view item' event in our demo shop, for example, we want information such as the product's price, name, and possibly an ID to be forwarded. This segment allows you to verify that the variables created are passed correctly.

Situation and serve preview in the Google Manager Tag container

You don't literally work in the Server Container with data layer structure but with names of parameters you pass.

Check if the data has come through correctly

After activating the appropriate tags, the next step is to verify that the data has been processed correctly in the corresponding platform. You can assess this through the debug modes of the platforms themselves, or using various Debug Chrome extensions.

Within TAGGRS Server-side Analytics Dashboard, you can verify the following:

  • Incoming Requests: Check for incoming requests in the dashboard
  • Web Container and Server Container Line: Here you can observe if data is coming in from both web and server and what is the percentage difference between the two
  • Data per Event: Analyze how much extra data is being processed per event. For example, if you notice that an event is being measured 50% less, but more is being measured overall, it is advisable to check the configuration of that event for any errors.
A graph showing the difference of data measured with TAGGRS server-side tracking
Favicon of TAGGRS Server-side Tracking
Expert tip
Check out our TAGGRS Debug Series to see the most common situations and solutions in our software.

Other tabs in Debug Mode

Console / Errors (Web / Server Container)

The web container may show errors similar to what you would see in the console, while the server container has a special console tab added.

This debug tab can provide useful additional information for debugging. This is a debug tab that can provide additional information that may be useful for debugging (not important).

Tag Manager Server Container console

Consent (Web container)

If you have configured permission (consent) settings, for example with Consent Mode V2, this tab shows which consent statuses have been set and fired, which is particularly useful for debugging consent mode v2 and also for checking default settings.

Consent Mode for Google Tag Manager in preview mode

Data Layer (web container)

In web container preview mode, the Data Layer tab provides essential information about the structure and data sent by the web site for tracking purposes. This is an important source of information for all tags that depend on the data layer to function.

Google Tag Manager preview web data layer

Variable (web container)

The Variables tab lists all available variables within the container that can be used for setting triggers or defining tag configurations. This tab is important for understanding what data is available for use in tags and triggers.

Google preview webshop

Test in Debug Mode

1.
Open debug mode in both your web and server containers.
2.
Trigger relevant events on your site or via tools like Postman.
3.
Use the GTM debug interface to verify that transformations are applied as expected.

Publish

Once verified, publish the updated server container to make the transformation live.

Troubleshooting

1 Not all tags are fired in Google Tag Manager preview mode

Here are the common issues preventing the tags from firing, hands-on solutions, and two specific situations that require a more targeted approach to troubleshooting.

The general reasons why a tag doesn't fire are:

Incorrect Trigger
A tag not firing often comes down to an issue with the trigger. Ensure all conditions of your trigger are correctly set because even a single misconfigured condition can prevent a tag from firing.
Blocking trigger is added
Blocking triggers prevent a tag from firing under specific conditions. If a blocking trigger is active, it will override other triggers, stopping the tag from firing.
Misunderstood functionality of blocking triggers
Blocking triggers only work against firing triggers that use the same events. If the event types don't match, the blocking trigger won't prevent the tag from firing.
Tag sequencing
Sometimes, tags are set to fire in sequence. If a tag is part of a sequence, it might not fire due to its position in the sequence, not because its trigger conditions were met.
Tag firing options
A tag set to fire Once per page will not fire multiple times, even if its trigger conditions are met repeatedly on the same page.
Tag firing options
Tags can be scheduled to only fire within a specific timeframe. If the schedule doesn't align with your testing time, the tag won't fire.
Fire a tag only in published containers
Some tags are configured to only fire in live, published containers. These won't fire in preview and debug modes or in unpublished containers.
gtm.blocklist and gtm.allowlist
Developers can restrict certain types of tags from firing. If your tag falls into a blocked category, it won't fire.

The general reasons why a tag doesn't fire are:

1.1 Google Analytics 4 configuration tag not firing

Check in preview mode if the GA4 tag is firing. If it fires in the web container but not in the server container, check if the Measurement ID (Web Container) and the Tag ID (Server Container) in the GA4 Configuration tags match.

Understanding the nuances of why a tag might not be firing is crucial for diagnosing and fixing the issue.

Follow the steps outlined above to troubleshoot and resolve common tag firing issues in Google Tag Manager. Remember, detailed testing and verification are key to ensuring that your tracking setup works as intended.

GTM request summary empty because tags are not firing

1.2 Google Tag Manager debug: page views detected but no (e-commerce) events

In situations where Google Tag Manager's debug mode shows page views but fails to register e-commerce events, the issue often lies in the alignment between the Google Tag's Measurement ID and the e-commerce configuration. It's crucial to ensure that the Measurement ID used in your Google Tag setup matches exactly with the one configured for e-commerce tracking. Discrepancies between these IDs can lead to page views being tracked correctly while e-commerce events are missed. Double-check these configurations to ensure consistency and correct tracking of all desired actions on your site.

ensure that the Measurement ID used in your Google Tag setup matches exactly with the one configured for e-commerce tracking

Also make sure you don't have any duplicate Tracking Script in Code. In some cases, we see that the Google Tag Manager script is loaded in multiple ways in the code, often through manual placement + via a plugin. This can disrupt tracking in some cases.

So, always check if there is a tracking code (per container) in the code.In the screenshot below, you can see that tracking is sent to multiple sources. Ideally, you want only server side domains to be listed here where you send the data. Otherwise, events can be hijacked by the others.

GTM request summary empty because tags are not firing

2 Errors in the browser console

After implementing Server-side Tracking via TAGGRS, you get errors when opening the console in the browser. Often these errors are harmless or easily fixed. Here are listed all situations and solutions for console errors after implementing our software.

2.1 ERR_BLOCKED_BY_ORB 200

When you get the ERR_BLOCKED_BY_ORB 200 Error in the console it means that our TAGGRS Tracking Tags pixel is blocked by tracking prevention (see for example Safari 26's updates) due to browser prevention and regulations. When TAGGRS Graphs about extra data due to Server-side Tracking, a pixel is used via the web container. When you see ERR_BLOCKED_BY_ORB 200 it means it is being (partly) blocked. This has no impact on your tracking, this is purely the extra data graph!

2.2 Error by adding the GTM code from TAGGRS

Should you come across any of the errors listed below while integrating the GTM code, rest assured: the code will remain functional.

GTM codes after adding TAGGRS tracking code

2.3 400 error in the console when adding the Enhanced Tracking Script

Seeing a 400 error in the console typically indicates a missed step in establishing client creation within the server container, an essential phase in configuring the Enhanced Tracking Script.

2.4 Duplicate Google Tag Manager code in the console, affecting data accuracy

When using the Enhanced Tracking Script, there is no need to maintain a huide Google Tag Manager code. This is because then two different tag managers (the old one and the Enhanced Tracking Script) are loaded at the same time. To solve this problem, the original GTM code should be removed after activating the Enhanced Tracking Script. Only the GTM code of the Enhanced Tracking Script remains.

2.5 Adding the Enhanced Tracking Script Results in complete tracking halt

Reaching the request limit (TAGGRS Dashboard) can cause Tag Manager to pause and tracking to halt. It is vital to understand that after implementing the Enhanced Tracking Script, exceeding the request limit will interrupt tracking functionality. Monitoring and managing the request limit is therefore crucial to ensure continuous tracking.

2.6 No request in server container on Magento 2

Encountering no requests in your Magento 2 server container for Server Side Tracking? This often results from Magento's CORS rules, designed to block outgoing requests as a security measure. To fix, adjust your .htaccess with Header add Access-Control-Allow-Origin "https://*.yourdomain.com", replacing "https://*.yourdomain.com" with your subdomain, thus ensuring your requests are allowed. Check our Magento 2 No Request article.

Transformation types

Allow Parameters
Whitelist specific parameters to include in the event data object. Only these parameters will be processed and sent downstream.
Exclude Parameters
Blacklist specific parameters to remove from the event data object. Use this to strip out sensitive or irrelevant data.
Event Enrichment
Add or modify event data parameters. Useful for injecting additional context, correcting data, or appending values from external sources.

Practical applications

Data Enrichment
Add user segmentation, geolocation, or custom attributes to events.
Validation and Correction
Check and correct event data in real time.
E-commerce Data Augmentation
Enhance purchase events with additional product or transaction details.
Parameter Filtering
Remove redundant or non-compliant fields from event payloads.

Useful resources

icon of a white thunder used by TAGGRS to visually introduce Server-side Tracking
Start for free with Server-side Tracking
icon of a white upward arrow
White silhouette of a person used as icon for the support call to action
Get expert support
icon of a white upward arrow
Previous
Transformation in GTM
Next
Debugging
DOCUMENTATION V1.5
Copyright © 2026 TAGGRS. All right reserved.
TABLE OF CONTENTS
Key componentsServer-side setup testing in Google Tag ManagerOther tabs in Debug ModeTest in Debug ModePublishTroubleshootingTransformation typesPractical applicationsUseful resources