ADD-ONS
Advanced extensions for optimizing server-side tracking — anonymization, bot detection, Click ID restoration, GEO enrichment, and more.
Ad Blocker Info — Ad-blocker detection
Adds a header indicating whether a visitor uses an ad-blocker. Useful for reporting and A/B testing.
Anonymizer — Granular GDPR anonymization
30+ settings for GDPR-compliant anonymization: IP, Client ID, User ID, Session ID, Referrer, User Agent, campaign parameters, and more.
Bot Detection — Detecting and blocking bots
Raise data quality by 15-20% by filtering bot traffic. Detection based on User Agent, IP reputation, and behavioral patterns.
Click ID Restorer — Server-side Click ID restoration
Preserve campaign attribution even through iOS tracking prevention. Automatic restoration of Click IDs (gclid, fbclid, ttclid) server-side.
Cookie Keeper — Cookie backup to localStorage
Eliminate tracking data loss due to ITP/ETP in Safari and Firefox. Automatic cookie backup to localStorage with restore.
Custom Loader — Anti-adblock GTM loader
Load the gtm.js script from your own domain, raise the cookie match rate by 30%+, and eliminate ad-blocker blocking.
File Proxy — Proxy external files through your domain
Serve external files (fonts, scripts) through your first-party domain to bypass blocking.
GEO Headers — MaxMind IP enrichment
Automatically enrich requests with geographic data: Country, Region, City from the MaxMind GeoIP2 database.
Multi Domains — Sharing an sGTM container across domains
Use one sGTM container for multiple domains. Ideal for multibrand stores and holding structures.
Open Container for Bots — Let crawlers index GTM
Allow search bots (Googlebot, Bingbot) access to gtm.js for indexing the GTM container.
POAS Data Feed — Profit-on-Ad-Spend bidding
Send profit instead of revenue to Meta CAPI, Google Ads, TikTok, and Sklik. Bidding on profit, lookup from a CSV / Heureka feed / …
Preview Header — GTM Server-side Preview mode
Adds an X-Gtm-Server-Preview header for debugging the server-side GTM container in Preview mode.
UA Info — User Agent parsing
Adds headers with parsed User Agent data: Browser, OS, Device Type, Brand for easier segmentation.
User ID — Cross-device user identification
Adds a User ID header for cross-device tracking and linking web/app users.
ADVANCED SETUP
DNS, anti-adblock, consent mode, migration, and other advanced topics.
API keys and programmatic access
Setting up API keys for automation and integration with your systems.
Anti-adblock and the custom loader
How to bypass ad-blockers with a custom loader and a first-party endpoint for maximum data collection.
BigQuery export via a DataNostro webhook (~30 lines of Cloud Function)
Stream-insert every sGTM event into BigQuery — realtime, roughly $5/month, flexible schema. A tutorial for a GA4-style BigQuery dataset with no dependency on the …
Connecting your Google Tag Manager account
How to connect your GTM account with DataNostro for automatic server-side container setup.
Consent Mode V2
How to implement Google Consent Mode V2 with server-side GTM for GDPR compliance.
Cookie Keeper — extending cookie lifetime
How Cookie Keeper helps keep measurement accurate in Safari, Firefox, and other browsers.
DNS and CNAME setup
How to correctly set up the DNS records for your own sGTM container subdomain.
Migrating from client-side to server-side
Step by step: how to move from purely client-side tracking to server-side without losing data.
Monitoring and alerts
How DataNostro monitors your infrastructure and how to set up notifications.
DATANOSTRO ACADEMY
Tutorials — server-side tracking, sGTM, Consent Mode v2, GDPR. From the basics to advanced scenarios for CZ/SK stores and marketers.
Agency: how to manage 10+ clients in DataNostro
A multi-tenant workflow for agencies — one account, multiple clients, billing, white-label, sub-users. What saves you hours a month.
Attribution: first-touch vs last-touch — what you see in DataNostro
Why GA4 shows you different numbers than Meta, how DataNostro models attribution, and what to do when reports diverge.
Consent Mode v2 — in practice, without the legalese
What the EU actually wants from you, how to set it up in sGTM, and what happens when a user clicks "Reject all".
GDPR tracking checklist (reviewed by a lawyer)
What you must have written in your privacy policy, how to set up a DPA with DataNostro, where to have a CMP, and what …
How to find your GA4 Measurement ID and API secret
Server-side measurement into GA4 needs two values: the Measurement ID and an API secret. Where to find and create them in GA4 — step …
Meta CAPI without duplicate conversions — event_id and deduplication
When you send a purchase event from both the Pixel and CAPI, Meta has to match them. How to do it with event_id and …
Migrating from Stape to DataNostro step by step
What needs reconnecting, how to verify nothing's missing, and how to do the cutover without lost conversions. A realistic 3-5 day plan.
Server-side tracking 101 — what it is and why you need it
An explanation of the difference between client-side and server-side tracking. Why ITP, ad-blockers, and iCloud Private Relay eat 25-40% of your conversions — and …
What are UTM parameters and how to use them correctly
UTM parameters are tags in a URL that let analytics know where a visit came from. What each one means and how to use …
What are fbp and fbc: the cookies Meta attribution rests on
fbp and fbc are two cookies Meta uses to match conversions to users and ads. What each means, where they come from and why …
What are modeled conversions
A modeled conversion is a statistical estimate of conversions that can't be measured directly — typically because consent was declined. How it arises, where …
What is GCLID and click IDs (and why they matter)
GCLID, fbclid and other click IDs are ad-click identifiers. They tie a conversion to a specific ad and enable offline conversions. How they work …
What is a Conversions API and which platforms have one
A Conversions API is the general idea of sending conversions to an ad platform directly from the server. How it differs from the pixel, …
What is a first-party domain for server-side GTM (and why it matters)
The server-side GTM container runs on your own (sub)domain, not a third party's. What that means, why it makes cookies last longer, and how …
What is an attribution window
An attribution window is the time within which a conversion still gets credited to an ad click or view. Why it matters and why …
What is client_id and user_id in GA4
client_id and user_id are two identifiers GA4 uses to know whom events belong to. How they differ, why they're crucial for server-side and when …
What is conversion rate and how to calculate it correctly
Conversion rate is the share of visitors who took a desired action. It sounds simple but is easily miscalculated — and patchy measurement skews …
What is data retention in GA4
GA4 keeps detailed data only for a limited time (2 or 14 months). What that means for your analyses, what it applies to and …
What is hashing and why personal data is hashed before sending
Before an email or phone goes to an ad platform, it's hashed. What hashing is, why it enables matching without revealing data, and what …
What is the Measurement Protocol (GA4)
The Measurement Protocol is the interface server-side GTM uses to send events to Google Analytics 4 directly from the server. How it works, what …
iOS ITP + iCloud Private Relay — what you actually lose and how to get it back
iOS 17 + Private Relay anonymizes 30-40% of your traffic. When it can be recovered with server-side tracking and when it can't.
sGTM vs. GTM — when client-side is enough and when it isn't
Google Tag Manager in the browser (web GTM) versus server-side Google Tag Manager (sGTM). When GTM is enough, when you need sGTM, and what …
GETTING STARTED
Everything you need to know about server-side tracking. From the basics to your first setup.
Billing and payments
Everything about invoices, payment methods, due dates, and automatic reminders.
Server-side GTM basics
What sGTM is, how it works, why you need it, and its advantages over client-side tracking.
Team management and access
Learn how to invite colleagues, set roles, and manage access to your account.
INSTALL BY CMS
Step-by-step guides for WordPress, Shopify, and PrestaShop — from the dataLayer to the DNS cutover.
PrestaShop — installing server-side tracking
Server-side tracking for PrestaShop 1.7+ and 8.x. A GTM module (free + paid), or a direct theme edit for full control over the dataLayer.
Shopify — installing server-side tracking (Custom Pixel + GTM)
Server-side tracking for Shopify and Shopify Plus via a Customer Events Custom Pixel + GTM Server. No custom Shopify app, full control over consent …
WordPress / WooCommerce — installing server-side tracking
A step-by-step guide for WordPress 6.x and WooCommerce: the GTM4WP plugin, an sGTM container in DataNostro, DNS, Consent Mode v2.
PLATFORM CONNECTORS
Configuration guides for every platform connector — where to get the credentials, what to fill in where, and how to test it.
Awin Server-to-Server setup
Server-to-server conversion tracking for the Awin affiliate network.
DV360 / Campaign Manager 360 setup
Floodlight Conversion Upload for DV360 + CM360.
GA4 — Measurement Protocol setup
Connecting GA4 via the Measurement Protocol — Measurement ID + API secret.
Google Ads — Conversion Tracking setup
Server-side conversion upload to Google Ads via Customer ID + conversion action.
HubSpot CRM setup
Upsert contacts in HubSpot on a conversion event.
Klaviyo — Events API setup
Forwarding e-commerce events to Klaviyo profiles via the Events API.
LinkedIn Conversions API setup
Server-side push to the LinkedIn Insight Tag via CAPI.
Meta CAPI (Facebook Conversions API) setup
Server-side push to Meta Pixel + CAPI with deduplication via event_id.
Microsoft Ads (Bing) UET setup
Server-side UET tag for Bing Ads.
Pinterest Conversions API setup
Server-side push to Pinterest Ads via CAPI.
Pipedrive setup
Creating a Lead in Pipedrive on a conversion.
Reddit Conversions API setup
Server-side push of conversions to Reddit Ads.
Salesforce Conversion Tracking setup
Creates a Lead or Opportunity in Salesforce on a conversion event.
Sklik / Seznam SEM setup
Conversions to Sklik via the Seznam SEM ID — no API token, just an ID.
Snapchat Conversions API setup
Server-side push to Snapchat Ads.
TikTok Events API setup
Server-side propagation of events to TikTok via the Events API.
Zoho CRM setup
Creates a Lead in Zoho CRM. A region-specific endpoint.
PLATFORM SETUP
Guides for connecting sGTM with analytics and advertising platforms.
GA4 server-side setup
A complete guide to setting up Google Analytics 4 with server-side measurement.
Seznam Sklik — server-side tracking
Server-side tracking for Seznam Sklik and Zboží.cz — specifically for the Czech market.
TikTok Events API
Server-side connection of the TikTok Events API via sGTM for better attribution and campaign optimization.
TROUBLESHOOTING
FAQ, debugging, and troubleshooting.
Ads show fewer conversions than your store: where the data goes
Google Ads or Meta report significantly fewer conversions than you have orders. Some data is lost along the way. Where it happens and how …
Consent Mode blocking all measurement: telling it apart from a bug
After deploying consent, conversions stopped coming. Sometimes that's correct (the user declined), sometimes it's a setup bug. How to tell the difference and what …
Conversion value is in the wrong currency
Ad revenue matches in count but not in value — because currency is missing or wrong. A common problem for multilingual, multi-currency stores. How …
Conversion value is zero or missing: where the problem is
Conversions are measured, but with no value — or zero. Ads then can't optimize for revenue. The cause is almost always in the data …
Conversions arriving delayed: is it a bug?
Conversions show up in ads or GA4 hours later. Usually it's not a measurement bug but data processing and the attribution window. When the …
Conversions counted twice in Google Ads
Google Ads shows more conversions than actually happened. The cause is usually double measurement (gtag + server-side without deduplication) or the conversion-counting setting. How …
Cookies expire too soon: returning customers counted as new
Returning customers are counted as new and attribution falls apart after a few days. The cause is Safari ITP capping client-side cookies. How to …
Data split across multiple GA4 properties
Measurement is scattered across multiple GA4 properties and none has the full picture. Why it happens, why it hurts and how to unify data …
Debugging and troubleshooting
How to diagnose and fix server-side tracking problems — Preview Mode, logs, common errors.
Duplicate conversions: causes and fix
GA4, Meta or Google Ads show roughly twice as many conversions as orders in your store. The cause is usually missing deduplication between the …
Duplicate transaction_id: one purchase counted multiple times
The same order shows up in measurement more than once because the purchase event fires repeatedly with the same transaction_id. Why it happens and …
Enhanced Conversions not received: where the problem is
Google Ads reports it isn't receiving Enhanced Conversions or has a low match. The cause is usually missing or badly hashed data. What to …
Frequently asked questions (FAQ)
Answers to the most common questions about server-side tracking, pricing, setup, and support.
GA4 Realtime shows fewer server-side than client-side events
Eight reasons why server-side shows less data than client-side — from a missing "Send to server container" on the primary GA4 Configuration tag (a …
GA4 not showing server-side conversions: where to look
You deployed server-side measurement but conversions don't appear in GA4. How to isolate the fault — from GTM preview mode through DebugView to the …
GA4 report data doesn't match DebugView or realtime
You see an event in DebugView and realtime, but it's missing from standard reports or shows different numbers. Usually it's not a measurement bug …
GA4 reports your own domain as the source (self-referral)
GA4 shows your own domain or payment gateway as the visit source. That breaks the session and skews attribution. The cause is usually unconfigured …
GA4 shows (not set) or (direct) instead of the source
Visits show in GA4 as (not set) or (direct)/(none) even though they came from a campaign. The cause is usually missing UTMs, a lost …
GTM preview mode won't connect
Google Tag Manager's preview mode won't connect or doesn't see your site. The cause is usually third-party cookies, an ad-blocker or consent. What to …
Low Event Match Quality in Meta: how to raise it
Meta reports a low Event Match Quality and you suspect you're losing accuracy. The cause is missing identifiers in user_data. What to send to …
Meta Pixel not firing: where to look
The Meta Pixel isn't firing on your site, or Events Manager doesn't see it. The cause is usually consent, an ad-blocker or deployment. How …
Sklik conversions not tracking: where to look
Sklik conversions arrive wrong or not at all. Because Sklik has no classic CAPI, conversions go via a server-to-server endpoint — and errors tend …
Web GTM not sending data to the server-side container
The server-side container is running but receives no data from the site. The link between web GTM and the server container is configured via …
MIGRATION
Step-by-step guides for switching to DataNostro from another sGTM host.
Migrate from Google Cloud / GTM Server to DataNostro
Self-hosting sGTM on GCP App Engine or Cloud Run? Switch to managed DataNostro and cut ~60 % off your monthly bill.
Migrate from Stape.io to DataNostro
Step-by-step migration guide: move your sGTM from Stape.io to DataNostro in an afternoon. No downtime, no data loss, native Sklik & Heureka connectors.
How to check your current Google Cloud billing for sGTM (90 seconds)
Step-by-step guide to finding your monthly sGTM hosting cost in GCP Console — vCPU, RAM, egress, Cloud Logging and static IP broken down by …
REST API documentation
Complete API reference for automation — container management, domains, monitoring and more.
Open API docsFAQ
Frequently asked questions about server-side tracking, billing, migration.
Open the FAQDidn't find an answer?
Write to us. Sales, support, agency partnerships — a response within 4 hours.
Contact