# How to set up GTM on Shopify (all options explained) Source: https://stape.io/blog/google-tag-manager-shopify-set-up Learn how to set up Google Tag Manager on Shopify for accurate ecommerce tracking, better data quality, and reliable analytics with this detailed guide. Key takeaways Google Tag Manager remains one of the most flexible ways to manage tracking on Shopify, allowing you to deploy and update analytics and marketing tags without repeatedly editing your store's code. There is no single "best" GTM implementation method. Manual installation with Checkout Extensibility offers the greatest control, GTM apps simplify deployment, server-side GTM provides the highest data quality, and Shopify's Google & YouTube app is a solid alternative for Google-only tracking. Checkout Extensibility has replaced legacy checkout customization methods. Modern Shopify stores should use Customer Events and Custom Web Pixels instead of checkout.liquid and additional scripts for checkout and purchase tracking. A well-structured data layer is the foundation of reliable ecommerce measurement. Consistent event names and parameters make it easier to send accurate data to Google Analytics 4, Google Ads, Meta, and other marketing platforms. Always validate your implementation before relying on the collected data. Use GTM Preview Mode, GA4 DebugView, and test purchases to identify duplicate events, missing parameters, or configuration issues before they affect your reporting. Google Tag Manager is the control center for every tracking tag on a Shopify store. Whether you need to manage Google Analytics, Google Ads, Meta Pixel, etc., GTM gives you a single interface to deploy, update, and monitor all of them without touching store code every time. For many merchants, a proper Shopify GA4/GTM setup is the foundation for accurate ecommerce reporting and campaign optimization. In 2026, with Shopify's Checkout Extensibility migration deadlines, tighter browser privacy restrictions, and the deprecation of older tracking methods, knowing how to install GTM on Shopify has never been more critical. Generally, it can be configured in several ways, and this guide covers the most effective of them. Benefits of using Google Tag Manager on Shopify Google Tag Manager is widely adopted across the Shopify ecosystem. It is particularly valuable for stores that need reliable measurement, consistent data collection, and greater control over how marketing technologies are deployed. Using GTM offers several significant benefits for a Shopify store. Faster tag deployment. GTM allows for faster implementation of tracking tags. Adding or updating marketing tags - whether for Google Ads, Meta, TikTok, or anything else - happens inside GTM's interface instead of requiring theme file edits for each change. Centralized control. GTM simplifies tag management across Shopify stores by providing a single location to manage all tracking scripts. It reduces errors by centralizing tag management, eliminating version drift and redundant code across pages. Moreover, it helps you to keep the overall logic unified, even though Shopify forces you to split your tracking between the storefront and the checkout sandbox via Shopify custom pixel GTM setup. Standardized data collection. GTM can pull out data from a unified data layer (created by solutions like [Stape’s app for Shopify](https://apps.shopify.com/server-gtm)) that provides a consistent source of data. This makes it easier to send accurate and structured information to analytics, while keeping cross-channel reporting more consistent. Easier campaign rollouts. New pixels or conversion tracking setups deploy uniformly across storefront, collection, product, checkout pages, and order status pages once configured properly. Performance gains. Consolidating tracking scripts into one GTM container reduces duplicate script loads. GTM improves page performance by loading tags asynchronously, helping Core Web Vitals scores on product and collection pages. Privacy and consent. Google Tag Manager works with consent banners and can respect Shopify's customer privacy API when configured correctly. In 2026, this matters for [GDPR](https://stape.io/blog/server-side-tracking-gdpr), CCPA, and similar regulations - tags fire only when user consent preferences allow it. Considering all these benefits, GTM is, if not a default requirement, then a highly desired tool for any Shopify merchant serious about reliable measurement, campaign optimization, and privacy-aware data collection. 4 Shopify GTM methods compared As of 2026, there are four reliable and effective ways to set up GTM on Shopify. Each has distinct advantages depending on your technical skill level, Shopify plan, and tracking requirements. Below is a comparison, followed by a detailed breakdown of each approach. Method | Coverage | Data quality | Typical use case Manual GTM + Checkout Extensibility | Full storefront + checkout events (with Customer Events) | High | Merchants who want full control over tags, custom events, and integrations with multiple marketing platforms. GTM App | Storefront, with checkout support depending on the app | Medium–High | Small to medium-sized stores looking for a quick, no-code GTM implementation without editing theme files. Server-side GTM (e.g., Stape Conversion Tracking app) | Full customer journey with client-side and [server-side event processing](https://stape.io/blog/what-is-server-side-tracking) | Very High | Growing or enterprise stores focused on advanced analytics, attribution, advertising performance, and first-party data strategies. Google & YouTube App (Alternative) | GA 4, Google Ads, Merchant Center, and standard ecommerce events | High | Merchants using only Google's ecosystem who want a simple, officially supported tracking solution without GTM. Manual GTM installation and Checkout Extensibility Many Shopify GTM tutorials used to instruct installing Google Tag Manager in both theme.liquid (storefront) and checkout.liquid (checkout) template files to track the complete customer journey. However, we have already mentioned the migration earlier, and here is the point: checkout.liquid is moved to legacy and is substituted with a more secure and standardized framework under the name of Checkout Extensibility. Thus, here are the guidelines on what you need to do now to GTM to the checkout/thank you page and configure everything properly. 1. Create a Google Tag Manager container and copy the GTM snippet you get (you will need it in step 3). 2. Proceed to the Shopify store → Themes. There, select the needed Theme, click ‘...’, and open the tab Edit Code. ![Shopify store](https://cdn.stape.io/i/6a5f6b55c164e314226605.png) 3. Open the theme.liquid template and add the GTM snippet in it ( To grab the ID, use the dataLayer variable "unique_event_id" as in the push to dataLayer. A simpler and straightforward way is to use a feature integrated into the [Meta Pixel tag by Stape](https://stape.io/blog/add-facebook-pixel-gtm) - push event to dataLayer with event_id. 🚀 Note: At the moment, this feature is available in the Meta Pixel tag only, but we are working on adding it to other tags for popular platforms. Here are the detailed steps on how to fix the problem with the Meta Pixel tag by Stape: 1. To activate the feature, open your Meta Pixel tag by Stape in the web GTM container → expand the section "Server-side tracking" within a tag → check the box next to "Push event to dataLayer with this eventId" and specify the dataLayer event name - it can be anything that works for you, e.g., page_view_unique_id. The default dataLayer object name applies for most of the cases; change it only if you renamed the dataLayer object name. Save the changes. ![Configuration example](https://cdn.stape.io/i/6995a1e0a960a431483645.png) 2. Create a variable that will take the value of the eventId parameter from the push do dataLayer (page_view_unique_id). The variable configurations: Type: Data Layer Variable Data Layer Variable Name: eventId (the parameter from dataLayer that contains unique_event_id) ![Data Layer Variable configuration](https://cdn.stape.io/i/6995a22c32187537447254.png) 3. Replace the variable "Unique Event ID" (the same you have in the Meta tag) for GA4 tags with the variable you just created. In this way, instead of generating a new unique_event_id for GA4 tags, the variable will take the value from the dataLayer push. In the dataLayer, push will be the ID that Meta generates, so event_id in Meta and GA4 tags will be the same. ![event_id](https://cdn.stape.io/i/6995a3f247cee699505160.png) 4. Update the GA4 tag triggers so they fire only after the eventId is pushed to the dataLayer, allowing the tags to retrieve the ID. Create a new trigger with the following configurations: Trigger type: Custom trigger Event name: must be the one you specified in the Meta tag as DataLayer Event Name. In our case, it is page_view_unique_id. This trigger fires on: all custom events ![Trigger configuration](https://cdn.stape.io/i/6995a4ab549d1026418233.png) How to debug the configuration 1. Run the Preview mode in GTM and trigger the event you set as a trigger condition for the Meta tag (in our case, it was a page_view that triggered after the consent was given). 2. Navigate to the Meta tag fired and check the Event ID it has. ![Event ID in Meta page_view](https://cdn.stape.io/i/6995a51668af4583124549.png) 3. Then, go to the push that was sent to dataLayer (in our case, page_view_unique_id) and open the GA4 tags. The IDs must be the same as in the Meta tag. ![Event ID in GA4 page_view](https://cdn.stape.io/i/6995a54b95911803199455.png) Final words Tag sequencing can be helpful for specific GTM setup challenges, but at the same time, it may introduce event ID inconsistencies that make event deduplication impossible. Storing the event ID in the dataLayer and reusing it across tags ensures deduplication and more accurate reporting. It will be especially helpful for advertising platforms such as Meta. --- # 67.9% drop in Direct Traffic: how Danish eCommerce restored attribution | Stape Care Source: https://stape.io/blog/fixing-marketing-attribution-case-study See how our client improved Total Revenue by +37.5% and Average Purchase Revenue per user by +184 % using server-side tracking with Stape. Key takeaways A Danish eyewear retailer running a WordPress eCommerce site faced major attribution gaps due to ad blockers and Safari's Intelligent Tracking Prevention (ITP), with 34.63% of traffic misattributed as Direct in GA4. Stape Care team implemented server-side GTM, along with the Stape Conversion Tracking plugin for WordPress, Custom Loader, and Cookie Keeper power-ups to improve tracking resilience and cookie persistence. Server-side tracking implementation reduced Direct Tracking by 67.9%, while Paid Search grew by 56.8% and Organic Search increased by 36.1%, restoring accurate channel attribution. Post-implementation results included a 37.5% increase in total reported revenue, and a 184.1% increase in revenue per active user. In the summer of 2025, [Stape's Care team](https://stape.io/care) received a server-side tracking implementation request from a Danish client whose eCommerce business specializes in selling prescription and non-prescription glasses. The client's website was built on WordPress and used a client-side Google Tag Manager setup for Google Analytics 4. In this case study, we analyze the results before and after the implementation of server-side Google Tag Manager tracking for the customer. The full setup took our Care team one week to complete, including pre- and post-implementation consultations. Challenge: misattributed traffic and distorted campaign data With the customer's client-side setup, browser-based tracking limitations, such as ad blockers and Safari's ITP, created a significant attribution gap. Since Safari accounted for 31% of total traffic, a large portion of user journeys were incorrectly attributed as Direct in GA4 instead of revealing their true sources. This misattribution distorted campaign performance data, making effective budget allocation difficult and impeding business growth. Solution: implementing server-side tracking with Stape's solutions To improve marketing attribution, the Care team made the following changes to the customer's existing Google Tag Manager setup: Configured [server-side Google Tag Manager tracking for Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) to reduce the impact of ad blocking software and ITP restrictions. Implemented the [Stape Conversion Tracking plugin for WordPress](https://stape.io/solutions/server-side-tracking-for-wordpress) to establish a seamless connection between the site and the server-side tagging environment. Enabled the [Custom Loader](https://stape.io/solutions/custom-gtm-loader) power-up via the Stape Conversion Tracking plugin for WordPress to make tracking scripts less detectable by ad blockers and secure accurate marketing attribution. Activated the [Cookie Keeper](https://stape.io/solutions/cookie-keeper) power-up via the same plugin to maximize cookie lifetime and restore attribution data lost to Safari's ITP restrictions. Results: restored channel accuracy and visible revenue growth Although the percentage of customers using Safari increased by approximately 10%, improved marketing attribution through server-side tracking significantly impacted core metrics in Google Analytics 4: 67.9% relative reduction in Direct traffic (11.1% compared to 34.63% of total events before the implementation). 36.1% relative increase in Organic Search traffic (29.47% compared to 21.69% of total events before the implementation). 56.8% relative increase in Paid Search traffic (28.27% compared to 18.06% of total events before the implementation). 37.5% increase in Total Reported Revenue. 184.1% increase in Average Purchase Revenue per active user. These results were measured over the equivalent three-month periods before and after the day of implementation. Tracking the right [eCommerce KPIs](https://stape.io/blog/ecommerce-kpis) helps you measure improvements like these consistently over time. Why choose Stape By setting up server-side tracking with Stape, you can: Achieve more accurate event measurement within GA4. Improve your marketing effectiveness through precise attribution. Gain earlier awareness of emerging trends across your analytics platforms. --- # Understanding AI browser tracking: marketer and analyst guide Source: https://stape.io/blog/ai-browser-tracking AI browsers mimic Chrome, skewing your data. Check tracking challenges and why identifying AI-driven traffic often remains uncertain. Key takeaways: AI browsers are powered by Chrome; they use Chrome's user-agent string, making their traffic look like Chrome visits for analytics tools. Most AI browsers block scripts, cookies, and ads by default, making client-side tracking unreliable. AI browsers create spikes in "new users," break referrer headers, and cause not set or direct traffic in GA4. AI agents can perform searches, add items to carts, or even complete purchases, bypassing browser-based trackers (cookies, pixels). Identifying AI agents requires analyzing behavioral patterns, such as near-zero millisecond gaps between events and "out-of-order" execution sequences. The market share of AI browsers isn't as clear as it looks According to the [BrowserStack data](https://www.browserstack.com/guide/understanding-browser-market-share), AI browsers, like Atlas, Comet, Dia, or any others, are still below 3% of global usage. Their share remains very small compared to Chrome, Safari, and Edge. ![Browsers market share](https://cdn.stape.io/i/6985b33dc9b2f809402743.png) The tricky point is that AI browsers are powered by Chrome. Tests show that browsers like Atlas and Comet use the same user agent string as Chrome does. We have conducted research comparing the user strings for different browsers. As you can see from the table below, they often have identical strings, just the version can differ: ![User agent strings comparison](https://cdn.stape.io/i/6989a659780e0262648247.png) Due to the same user agent, traffic from an AI browser can be attributed to Chrome in analytics tools like Google Analytics 4. As a result, actual AI browser usage may be higher than in market share reports. AI browsers offer little to track At the moment, most AI browsers have no built-in signals to notify you that a visit came from an AI source. These tools often act as proxies and blend in with organic traffic. Just a few of them can be identified: Atlas - if a person visited your website from Atlas, in the analytics tool, you can check such traffic using the utm_source parameter, it will be chatgpt.com and page_referer - https://chatgpt.com. Comet - to identify traffic from this browser, look for the page_referer parameter with the value https://www.perplexity.ai. The impact of AI browsers on data tracking Issue 1: Default tracking restrictions and scripts blocking AI browsers usually have strict tracking restrictions, with script blocking enabled by default. In many cases, they also have limited or no cookie consent flows. It means that users may never see a consent banner, and behavioral data is not collected. For example, the Comet AI browser has a built-in ad blocker. It blocks the ads and neuters the gtm.js script, which prevents data tracking. In the Dia browser, the third-party trackers are blocked by default as well, and these also include cookie banners. Here is the comparison of popular AI browsers and the tracking restrictions they have: ![AI browsers comparison](https://cdn.stape.io/i/6989a6742a981608484153.png) This mirrors a broader regulatory trend toward "consent automation" to deal with banner fatigue. If you are interested in how this might become the legal standard across Europe, our breakdown of the [Digital Omnibus](https://stape.io/blog/digital-omnibus-explanation) explains how these changes (if adopted) might impact data collection. Issue 2: Spikes in new users and unattributed traffic The AI browsers have created a "masking effect" that analytics tools, such as GA4, are not yet ready to handle. As a result, you could notice a spike in new users and [unassisted traffic in GA4](https://stape.io/blog/unassigned-and-not-set-traffic-source-in-ga4). AI browsers often operate in isolated execution contexts. Unlike traditional browsers that maintain persistent cookies, AI browsers may open pages in temporary "task-oriented" sandboxes. Every time the AI agent "visits" your site to complete a task, it does so without the history of previous sessions. In this way, "new users" appear in your analytics. A second issue is broken attribution logic. AI browsers often act as intermediaries; they process information before the user even lands on the page. These browsers don't add the "referrer" header (the piece of code that tells your site where the visitor came from). Analytics systems like GA4 often categorize those sessions as Direct or (not set). Issue 3: Non-human events ![AI conversions](https://cdn.stape.io/i/6985c3d6d2675087624875.png) Besides the traffic, AI browsers can trigger events and conversions. You may have already seen how AI browsers (usually on paid plans) can perform actions for the users. For example, they can: search for specific products or services on selected websites; select items/services based on the provided buying criteria; add selected items to a shopping cart; provide a checkout link for the user to review and finalize the order themselves. Such activity caused by AI agents creates conversions that are difficult to understand what source they come from. In some niches, this type of automated flow is already popular and can cause direct harm to companies. One of the recent and well-known cases is Tailwind's "death by popularity." This case is not the main focus of this article. However, if you’re unfamiliar with it and would like more context, please expand the section below for a detailed explanation: ➡️ What is "Death by popularity" in the example of Tailwind In a nutshell, in January 2026, Tailwind CSS became a case of so-called "death by popularity." It is a paradox where a tool becomes so successful that its own growth destroys the business model that sustains it. About Tailwind and its business model: they provide a free CSS framework. Tailwind monetizes through premium pre-built components and educational books/courses. Their revenue depends on developers visiting their site for documentation and buying these "pro" shortcuts. What happened: in early 2026, the founder announced that despite reaching a record number of downloads (30M+ per week), the company had to lay off 75% of its engineering team. Tailwind became so popular due to AI agents - almost every LLM (ChatGPT, Claude) has been trained on its documentation. Why it happened: AI agents suggested a free Tailwind CSS framework and wrote code for developers. Due to it, developers didn't have to visit the Tailwind website anymore. As far as their documentation was their primary "sales funnel" for paid products, their revenue collapsed. Approaches to consider for identifying AI traffic AI traffic & non-human events When a human user visits your website from an AI browser Tracking and filtering such traffic is usually easier than just AI agent interactions. The tests show that "human" traffic from AI browsers is usually marked as referral traffic. At this point, the best thing you can do is monitor spikes in new user traffic to report any changes and be able to explain them to stakeholders. Another practical tip is to filter them (there is a list of sources that point to AI) and create a separate Channel Group, which we explain below in this article. ![New users report in GA4](https://cdn.stape.io/i/6985cf021ee49168784993.png) When an AI agent accesses or interacts with your website Identifying AI agents' interactions is more complex. For this purpose, BigQuery will work the best (it has easy scaling and advanced analytical functions to filter the data). You need to search for the specific patterns in the behavior of your users and filter such traffic. The following behavioral patterns often point to the AI agent traffic: heavy event load with close-to-zero gaps in between; odd user agent strings; high frequency from a single IP or geo in small timeframes. The list of patterns can be extended to include other behavioral patterns; these are our observations. Another way to detect AI browser events is a bit tricky, but can also point at AI agents events - client-side signals from browser API, albeit far from ideal - navigator.userActive and event.isTrusted. The navigator.userActivation signal provides two states to check how the user is currently interacting with your page: navigator.userActivation.isActive - it indicates whether the user is currently interacting with the page, or has done so within a very small time window (usually around 1 second). The property becomes true almost immediately (initial click/scroll) and can point out AI browser traffic if it stays false. The reason behind - AI browsers often use document methods instead of real inputs. navigator.userActivation.hasBeenActive - it indicates whether the user has ever interacted with the page after it was loaded. This property also often stays false if it is AI traffic. The problem is that the .userActivation API is a state-based mechanism, not an identity-based one. AI agents can simulate user-gesture-like sequences, causing userActivation to be true. ![userActivation](https://cdn.stape.io/i/6985d3abafc06579938225.png) The event.isTrusted is a security feature that allows your code to distinguish between a real human interaction and a simulated action (DOM events like clicks, keydown, submit, etc.) triggered by script. ‎event.isTrusted = true - indicates that the event was triggered by a real user action, such as a mouse click, key press, or touch interaction. ‎event.isTrusted = false - indicates that the event was created and dispatched programmatically by JavaScript. The event.isTrusted can't also be used as a 100% proof for identifying AI traffic since: 1️⃣ Automation can still produce trusted events. A lot of tools (WebDriver, Playwright, accessibility automation, and OS‑level scripting) can create real mouse and keyboard events. Since these tools simulate hardware-level inputs (mouse clicks, keystrokes), the browser can treat them as user interactions. 2️⃣ AI in a "real" browser looks human to the Document Object (DO). When an AI agent controls a normal Chromium-based browser, it interacts with the page through the browser’s native automation protocols rather than the website's internal JavaScript logic. As a result, the events it generates are marked as trusted by the DO. 3️⃣ Scripted flows on your own site will show ‎false. If you simulate events in your own code (programmatically or by dispatching custom events), those events will be ‎isTrusted=false even though the underlying flow is "legitimate" and user-driven. ![event.isTrusted](https://cdn.stape.io/i/6985d89123ea9208493761.png) Why bot detectors may not work for identifying this traffic AI browser traffic is similar to the bot traffic, but bot detectors like [Stape's Bot Detection power-up](https://stape.io/blog/filtering-spam-in-ga4-with-stape-bot-detection-power-up) won't be able to identify this traffic. Since anything that looks like a normal browser session from Google’s point of view will pass straight through in most of the cases. So a lot of agents, automations, and scrapers will bypass such bot detectors. Separate Channel Group to track AI traffic Dana DiTomaso has provided a solution to track and filter AI traffic (note: it refers to the cases when a person visits your website by clicking a link in an AI browser) - creating a separate Channel Group for AI traffic. To do it, you need to go to Admin in GA4 → navigate to Channel groups → click Create New Channel Group → click Create new channel. ![Add new channel](https://cdn.stape.io/i/6985db591a47b833375293.png) Add the name of the channel (e.g., AI traffic) → click + Add Condition Group → select Source → as a condition select matches regex and add the sources of AI traffic which are popular for your business, usually these are the most frequently met: ^(?:chatgpt\.com|chat-gpt\.org|claude\.ai|quillbot\.com|openai\.com|blackbox\.ai|perplexity(?:\.ai)?|copy\.ai|jasper\.ai|copilot\.microsoft\.com|gemini\.google\.com|(?:\w+\.)?mistral\.ai|deepseek\.com|edgepilot)$ 💡You can also refer to Dana DiTomaso's post to see the detailed instructions and [complete list of AI traffic sources](https://kpplaybook.com/resources/how-to-report-on-traffic-from-ai-tools-in-ga4/). Once done, click Save channel. ![New channel configuration example](https://cdn.stape.io/i/6985dd56b5ef9974239043.png) Path forward The rise of AI browsers marks the end of the "easy" attribution. A part of the journey will remain in the shadows. The potential next step for marketers and analysts is the implementation of a custom AI Channel Group in GA4 to segment the known AI referrers. However, tracking the non-human conversions is still difficult. Marketers and analysts may need to identify behavioral patterns and filter this traffic themselves, as there’s currently no reliable solution to fully track it. --- # 100% orders tracked, +55% conversions, +56% revenue with server-side tracking | MCB Source: https://stape.io/blog/retail-data-transformation-server-side-case-study 3 brands restored conversion data in Google Ads and Meta with server-side tracking on Stape. Results: 100% orders tracked, +55% conversions, +56% revenue Key takeaways 100% data recovery: Helm achieved 100% order tracking across all platforms since browser restrictions were bypassed, cookie lifetime was extended, and first-party data was used. Data-based optimization: Special-Butikken used 100% order tracking routed through a server-side setup from Stape, implemented by [MCB](https://stape.io/partner/mcb), to optimize Google Ads, improve targeting, and increase conversions by 55%. Scaling revenue: Bolighuset used the accurate server-side data to optimize their Google Shopping and remarketing campaigns. This improved their ROAS from 10 to 12 and drove a 56% increase in revenue. Helm, Special-Butikken, and Bolighuset are established Danish retailers operating in highly competitive markets. Like many businesses, they faced limited visibility into marketing data because of browser restrictions and ad blockers. Together with MCB, a server-side tracking infrastructure by Stape was implemented to restore data accuracy, which made campaign optimization and revenue growth easier to manage. Background All three businesses operate large web- and physical stores with thousands of products and high sales volumes. Helm: a leading retailer of bags and accessories that needed to track purchases across multiple devices. Special-Butikken: a B2B and B2C hardware store with over 100,000 products. Bolighuset: a furniture retailer competing in a high-value market. Challenge: inaccurate data and wasted ad budget Despite their different industries, those three companies faced a shared "blind spot": client-side tracking was failing to capture complete data due to ITP (Intelligent Tracking Prevention) and ad blockers. Incomplete reports: Helm could not make valid business decisions because their analytics numbers did not match their actual sales. Google Shopping issues: Special-Butikken had problems showing made-to-order items. Google Shopping did not recognize products with longer delivery times as available for purchase. Limited data for algorithms: Bolighuset lacked the detailed data needed to see exactly which ads and products converted. This made it hard to bid efficiently and run remarketing. Solution: fixing data quality with server-side tracking The brands implemented a [server-side tracking setup](https://stape.io/blog/how-to-start-with-server-side-tracking) via Stape which allowed each company to solve their specific data challenges using a similar technical foundation but different strategies. Helm: 100% data captured Helm focused on recovering lost data. Server-side tracking was set up, so browser [events first pass through a server layer](https://stape.io/gtm-server-hosting) before [reaching GA4](https://stape.io/blog/set-up-ga4-server-side-tracking). A direct order fetch from Helm's CMS Cloud captured orders even when the browser flow missed them. Orders from the CMS Cloud were enriched with cookie data when needed, then sent to ad and analytics platforms. Special-Butikken: increased Google Ads effectiveness With more complete data, Special-Butikken changed their strategy. The company implemented [server-side tracking](http://stape.io) to improve data collection and more reliable measurement across devices and platforms. A [Google Ads campaign structure](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) was built using Performance Max, Search, and dynamic remarketing to reach customers at different stages of the journey. Landing pages were adjusted to show a clear 3 to 5 day delivery time for made-to-order items, so Google Shopping could register the products as available. Bolighuset: scaling revenue Bolighuset used the reliability of Server-Side GTM Hosting by Stape to create a feedback loop between ads and sales. Bolighuset implemented server-side tracking to get full insight into customer behavior and collect data across platforms. A Google Ads setup was built with Search, dynamic remarketing, and Google Shopping. A custom Excel sheet was used to track costs and returns across 70,000 product variants. Changes were then made at product and variant level. Results: 100% accuracy and double-digit growth With the new setup, the businesses saw immediate improvements in their numbers. Conversion rate, ROAS, and revenue are the [eCommerce KPI](https://stape.io/blog/ecommerce-kpis) that improved most visibly across all three brands. Helm: Achieved 100% order tracking. The data in Google Ads now matches their actual bank revenue perfectly, even if the user has an ad blocker. Special-Butikken: After improving tracking and their Google Ads setup, the brand achieved a 55% increase in conversions. Bolighuset: The reliable data allowed them to scale their budget effectively, driving a 56% increase in revenue. Client testimonial "Now, many people see us online, helping us stand out from our competitors.Many of our customers appreciate our website, and more people come into the store saying they've found something online that they now want to buy." [Sanne Hundahl](https://www.linkedin.com/in/sanne-hundahl-5074b5272?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=ios_app), Special-Butikken Management Why it matters: fewer missed orders and better marketing decisions These three brands show what better data looks like in real work. MCB clients did not only improve tracking, also changed how they run Google Ads and how products show in Google Shopping. So decisions are now based on real user actions. Helm stopped relying only on browser events. They also pulled orders from their CMS and used that to fill gaps when tracking missed a purchase. Special-Butikken combined server-side tracking with a Google Ads setup built around Performance Max, dynamic remarketing, and Search. They also improved shopping visibility for made-to-order items: landing pages showed a clear 3 to 5 day delivery time, so more products appeared as available. Bolighuset introduced server-side tracking, then managed Google Ads with search plus dynamic remarketing and Shopping changes for profitable items. It also tracked costs and returns across about 70,000 product variants in a custom sheet, so it could act at a variant level. Takeaway: the foundation for eCommerce success Browser-only tracking does not always capture every purchase or every marketing signal. Cookies expire fast, and some requests never reach ad and analytics platforms. That is how reporting gaps start. A server layer fixes part of this. Events still come from the browser, but pass through a server Google Tag Manager container hosted on Stape before being sent to ad and analytics platforms. With more complete conversion data, it becomes easier to manage Google Ads and Shopping based on what actually happened, not on partial reporting. Why choose Stape More data captured compared to client-side tracking: Stape ensures you track the orders, regardless of browser restrictions. Better ad performance: accurate server-side data feeds Google and Meta algorithms, lowering costs and increasing conversions. Data privacy and control: Stape's proxy solution keeps data secure and supports GDPR compliance while maintaining measurement accuracy. --- # 98% revenue tracked after recovering lost order data | MCB Source: https://stape.io/blog/tracking-accuracy-increased-for-jespers-planteskole-case-study Jespers Planteskole reached 97–98% of revenue tracked with order data sent to GA4 and Meta through a server Google Tag Manager container. Key takeaways Jespers Planteskole’s tracking accuracy dropped below 80%, so marketing reports missed part of the purchase journey and campaign decisions were based on incomplete data. In a collaboration with MCB a server Google Tag Manager container was set up between their website and ad platforms, so more events could still reach those platforms when browser limits reduced tracking. Employee traffic was filtered at the server level, and key scripts were self-hosted so data was not sent before consent, which supported GDPR requirements. Revenue tracked reached 97–98%, and Google and Meta received conversion data again, which brought back a clearer feedback loop for campaign optimization. Jespers Planteskole helps private and business customers find everything related to plants and gardening supplies. The business ran both a physical store and a webshop, so many customers moved between online and offline before buying. That kind of journey was hard to track without missing conversions. When the brand decided to change the situation, tracking accuracy was 80%, and reports missed part of the purchase data. Together with [MCB](https://stape.io/partner/mcb), a server-side solution was implemented, and order data was sent to GA4 and Meta through a server Google Tag Manager container. Challenge: track orders online and in-store without losing data Jespers Planteskole’s tech stack involved a Magento platform and various analytics tools. As users moved between these tools, important tracking data was frequently affected by browser restrictions. Browser-side tracking also couldn’t maintain data persistence because of ad blockers and ITP (Intelligent Tracking Prevention). Reported data accuracy was below 80%, and without accurate conversion data feeding back into Google and Meta, their ad algorithms lacked the necessary data to optimize campaigns. Solution: routing events through a cloud server so more conversions reach GA4 and Meta To solve this, Jespers Planteskole implemented a robust server-side tracking setup. The goal was to take full control of the data flow and ensure persistence regardless of browser restrictions. Key components included: [Server-side setup](https://stape.io/gtm-server-hosting): added a cloud server between the website and ad platforms, so more events can still reach the platforms when browser limits and ad blockers reduce tracking. [Filtering of internal traffic](https://stape.io/solutions/block-request-by-ip): a custom function filters out employee traffic at the server level, so reports reflect real customers. [Self-hosted scripts](https://stape.io/solutions/file-proxy): critical scripts from services like Google and Cloudflare are self-hosted to prevent unintended data transfers without consent and support GDPR compliance. Results: lead tracking increased from 80% to 98% Before the change, data accuracy was below 80%. After moving to the new setup, the brand reported tracking 97-98% of revenue, which gave them much clearer insight for campaign management. Lead tracking improved from about 80% to 98%. Revenue data is now accurately preserved from first click through to the final order. Google and Meta could receive conversion data again, so their algorithms finally had the feedback needed to optimize campaigns. "Our server-side setup has given us a significant advantage by ensuring more accurate data and improved collection, which forms the foundation for evaluating and optimizing our online marketing performance." [Anders Juul](https://www.linkedin.com/in/anders-juul-nielsen-553a1666?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=ios_app), Managing Director at Jespers Planteskole Why it matters: fewer missing events when browser limits reduce tracking Before adopting a server-side setup, the marketing team operated without a clear view of which campaigns produced results. Tracking accuracy was improved with a server-side solution, and marketing spend was connected to actual business revenue. This allowed budget allocation to be based on reported revenue and supported business development. Takeaway: reliable data and GDPR compliance Client-side tracking was failing due to browser restrictions, ITP, and third-party tool limitations. A server-side setup was implemented to reduce missing order events and keep reporting reliable for marketing decisions. Because data went through a server before it reached analytics and ad platforms, consent requirements were applied when events were forwarded, which supported GDPR rules. Why choose Stape Data persistence: server-side tracking ensures cookies and scripts work reliably despite ad blockers and ITP. Data privacy and control: the setup gives you full control over your clients data. Better ad performance: the server-side integrations for Meta and Google give the ad algorithms high-quality data so you receive improved campaign results and reduced costs. --- # Ad tags & Click tags: everything you need to know about ad tracking Source: https://stape.io/blog/ad-tag-and-click-tag Ad tags & Click tags are components in digital advertising, used to track user interactions with ads and enable the delivery of targeted content. Marketers who try to figure out why their CPAs are through the roof, should deeply understand the technical plumbing of ad tagging. If your tags aren't firing or your URLs are stripped of their data, you’re basically flying blind as a marketing specialist. In our article, we’re going to nerd out on everything from basic advertising tags to the dreaded "broken clicktag" error. We’ll look at how these snippets communicate with servers and how you can use server-side tracking to make them bulletproof in 2026. If you are new to this architecture, we recommend checking our guide on [how to start with server-side tracking](https://stape.io/blog/how-to-start-with-server-side-tracking) to build a reliable foundation for your tags. What is an ad tag? At its core, an ad tag (or Creative tag) is a small snippet of code - usually HTML or JavaScript - placed on a publisher’s website. Its job is to tell the browser: "Hey, there should be an ad here. Go find the right one and show it." Think of ad tags as the placeholders. Instead of hard-coding a specific image into a website, the publisher puts an ad tag there. It allows the advertiser to swap creatives, target different audiences, and track results without ever touching the publisher's site code again. In the world of tag advertising, these snippets are the bridge between the inventory and the demand. You found the answer to your question “what are ad tags” - let’s see how ad tags work, what their types are, and how to set up them. How does an ad tag work? The ad tagging works in milliseconds, but there’s a high-speed race of data behind it. Here is the step-by-step technical flow: Trigger. A user visits a webpage where the publisher has placed an ad tag. Request. The browser executes the ad tag code and sends a request to the publisher’s ad server, like Google Ad Manager. Handshake. The publisher's ad server identifies the ad slot’s specs - size, location - and calls out to the advertiser's ad server or a Demand-Side Platform (DSP). Selection. The DSP runs an auction or selects the best creative based on targeting data. Delivery. The advertiser’s ad server sends back a URL containing the creative. Impression. The publisher’s ad server delivers that creative to the user's browser, and the advertising tags record a successful "impression." Types of ad tags Not all ad tags are the same. Depending on your goals and site performance needs, you may use these main types of ad tags: Synchronous ad tags. They load at the same time as the rest of your page. But if the ad server is slow, these ad tags can "freeze" your page load, leading to a bad user experience. Asynchronous ad tags. The modern asynchronous ad tags have become a modern standard. They load independently of the rest of the content. If the ad fails to load, the user can still read your article or buy your product. How to generate and set up an ad tag? Generating Ad tags happens within your Ad Server or DSP interface. 1. In Google Ad Manager or your DSP, create an Ad Unit or Placement. ![create an Ad Unit or Placement.](https://cdn.stape.io/i/697781a5d6814079079185.png) 2. Choose the size (e.g., 300x250) and format (e.g., Display, Video). 3. Click the "Generate Tags" button → you’ll get a piece of JavaScript code. 4. Copy and paste this JavaScript code into the or the specific where you want the ad to appear. 5. Deploy advertising tags via GTM and use Stape as a hosting platform for your server-side GTM container to manage your tracking requests. To ensure your infrastructure handles these requests with maximum reliability, you can set up professional [GTM server hosting](https://stape.io/gtm-server-hosting) to manage your server-side container. Advertising tags debugging Browser developer tools The first step is verifying if the browser is attempting to send data. Open your console with F12 → go to the Network tab → filter by your server-side endpoint or common ad server strings (e.g., “googleadservices”, “doubleclick”, or your custom GTM subdomain) → If the status code isn’t 200 OK (like a 403 or 404), or if you don’t see an outgoing hit at all, your Ad tag is likely blocked. GTM preview mode If you use Enhanced Conversions in Google Tag Manager, [the Preview Mode](https://stape.io/blog/gtm-preview-mode-and-debugging) is your best friend. It acts as a real-time monitor for your container logic. You can see which tags moved to the "Fired" section and which stayed in "Not Fired." → click a "Not Fired" tag to know which part of your trigger failed (indicated by an X). Do a step to identify if a JavaScript error prevented the advertising tags from executing → check the Errors tab within the Preview Mode interface. ![The Preview mode](https://cdn.stape.io/i/697750bae26ea901174698.png) There are a lot of challenges in the GTM preview interface, that's why the Stape team made a simple [Chrome extension](https://stape.io/blog/stape-chrome-extension) to improve the GTM preview. Check it out for free! What is a click tag? A click tag is a variable used in HTML5 ad creatives to define the destination URL. Instead of hardcoding the destination URL, it is easier and faster to use a click tag. Click tags allow the ad server to provide the landing page URL and wrap it in a tracking link. Without a click tag, you might get a click, but you won't know which campaign, ad group, or creative it came from. So, in marketing and ad tagging, the click tags make ROI measurable. How does click tag work? The banner creator defines a variable (e.g., “var clickTag = "https://www.stape.io";”) in the ad's HTML5 file. When the ad is uploaded to the ad server, the server detects this variable. When the ad is served, the ad server replaces the generic URL with a unique tracking URL. Then, when a user clicks, they are sent to the ad server first, which records the click, and then they are immediately redirected to the final landing page. How to generate a click tag? You don't "generate" a click tag in a dashboard - better to say that you write it into your creative. Here is a simple example for a standard HTML5 banner: // In the of your HTML: // In the on your clickable element:
By following this structure, you make sure that any ad server (like Google Ads) can find your click tags and swap the URL for a tracking one. What to do if my click tag is broken? There is nothing more frustrating than seeing "0 clicks" on a high-traffic campaign. If your clicktag is broken, it’s usually because of the following common tech slip-ups. 1. Spelling & case sensitivity Why does it happen? Many ad servers, like Google Ad Manager, are really picky. In their logic, “clickTAG”, “clickTag”, and “clicktag” are completely different variables. How to fix it. Double-check your platform’s documentation. If they expect clickTag and you wrote clicktag, the ad server won't recognize the variable, and the tracking "hook" will never fire. 2. Hard-coded URLs Why does it happen? If you hard-coded the link (e.g., “href="https://mysite.com") directly into the HTML5 banner, you’ve bypassed the ad server entirely. How to fix it. Use the click tag variable instead. The ad server needs to "intercept" the click to record it before redirecting the user. You may use “window.open(clickTag)” in your button's onclick attribute so the server can wrap your link in its tracking macro. This option is not recommended by many marketing experts, but possible. 3. Overlapping elements Why does it happen? Sometimes a transparent “div” or a UI overlay - like a close button or a progress bar - sits on top of your clickable area. The user thinks they are clicking the ad, but they are actually clicking an unlinked element. How to fix it. Use browser developer tools with F12 to inspect the banner. Make sure the clickable layer is at the top of the stack - check the “z-index” in your CSS. 4. Missing/broken macros Why does it happen? Ad tagging relies on "macros" - placeholders like “%%CLICK_URL_UNESC%%” - that the ad server fills with a real link at the moment of the impression. If the macro is formatted incorrectly, the user might click the ad and end up on a "404 Not Found" page. How to fix it. Perform a "Click Audit" in your DSP. If the landing page URL contains the word "undefined" or stays as a placeholder code, your macro setup is the culprit. Pro-tip: how to verify the fix Append “?clickTag=https://stape.io” to your banner's preview URL. If clicking the banner successfully redirects you to Stape, your internal code is perfect, and the issue lies with how the ad server is passing the data. FAQs What is the difference between a click tag and an impression tag? The impression tag is another name for the ad tag, so it fires the moment the ad is displayed on the screen. The click tag only fires when a user actively engages with the ad. So the impression tag (the ad tag) measures visibility while the click tag measures interest and intent. Can I use an ad tag and a click tag at the same time? Absolutely – and you even should use them both. You need the ad tag to deliver the ad and track the impression, and the click tag to handle the landing page redirect and track the click. They work in tandem to give you a full funnel view. Will my ad tag work for visitors from other search platforms? Yes. Ad tags are platform-agnostic at the browser level. Whether your visitor comes from Google, Bing, or directly, the advertising tags will execute as long as the code is on the page. However, if you are using platform-specific features (like Google's Protected Audience API), some features might only work within the Google ecosystem. --- # 10% to 85% leads tracked with server-side tracking and Meta Conversions API | MCB Source: https://stape.io/blog/leads-increase-for-finobo-case-study Finobo increased tracked leads from 10% to 85% after switching to server-side tracking and sending lead events through Meta Conversions API. Key takeaways Finobo could track only 10% of leads, which meant ad platforms received not enough information to optimize campaigns well, so the company decided to work with Stape’s partner MCB set up a server Google Tag Manager, operating behind a Cloudflare proxy. They also helped with DNS settings so the tracking domain is connected correctly and the data connection stays reliable. Next, Finobo started sending lead events via Meta Conversions API. Leads tracked reached 85%, and UTMs and click IDs stayed with the lead longer across the journey, which helped reporting and optimization use more complete data. [Finobo](https://finobo.dk/) helps private clients optimize their finances, free up capital, and secure better loan terms. However, like many businesses with complex sales funnels, the brand faced lack of visibility regarding their marketing data. By partnering with [MCB](https://stape.io/partner/mcb) and using Stape’s server-side tracking infrastructure, Finobo transformed their data visibility, recovering lost leads and enabling precise ad optimization. Background Finobo operates in the competitive financial services sector. Their customer journey is complex, involving multiple touchpoints where a user might click an ad, visit a landing page, use a calculator tool, and eventually book a meeting. Accurately tracking a user from that very first ad click all the way to a signed contract in Salesforce is essential for calculating ROI and scaling their marketing efforts. Challenge: broken data journeys across third-party tools Finobo’s tech stack involved several third-party tools, including Greminders, Leaddoubler, and Elementor. As users moved between these tools, critical tracking identifiers (like UTMs and gclid) were frequently lost. Broken journeys: the browser-side tracking couldn't maintain data persistence across different domains and iframes. Data loss: the brand was only successfully tracking 10% to 15% of their leads. Ineffective optimization: without accurate conversion data feeding back into Google and Meta, their ad algorithms lacked the necessary data to optimize campaigns. Solution: ensuring data reliability with server-side tracking To solve this, MCB implemented a server-side tracking setup hosted on Stape. The goal was to take full control of the data flow and ensure persistence regardless of browser restrictions or third-party tool limitations. Key components included: [Server-side container](https://stape.io/gtm-server-hosting): a dedicated server Google Tag Manager container was hosted on Stape for event processing and forwarding. [Meta Conversions API](https://stape.io/solutions/facebook-capi-tag): lead events were sent server-to-server to Meta which improved event delivery compared to browser-only sending. Results: lead tracking increased from 10–15% to 80–85% Before the change, only a small share of leads could be tracked end to end. After moving to the new setup, the brand reported tracking 80–85% of leads, which gave them much clearer insight for campaign management. Lead tracking improved from about 10–15% to 80–85%. UTM parameters and click IDs like gclid were preserved from first click through to Salesforce, even when users pass through third-party tools. If you use Salesforce to track leads, the [Salesforce data connector](https://stape.io/blog/salesforce-connector) by Stape can complete the picture further by sending lead status updates back to your ad platforms as conversion events. Google and Meta could receive conversion data again, so their algorithms finally had the feedback needed to optimize campaigns. "Previously, we were only able to track about 10-15% of our leads, which made it difficult to attribute value to our marketing efforts. With the new server-side tracking solution, we can now track 80-85% of our leads, significantly enhancing our insights and campaign management." [Rasmus Rosengreen](https://www.linkedin.com/in/rasmus-rosengreen), Digital Manager at Finobo Why it matters: closing the loop on high-value leads Before the change, Finobo’s marketing team was able to track only part of the lead journey, so campaign results were incomplete. A server-side solution by Stape was set up to connect marketing spend to real business revenue. Budget decisions were based on more complete lead data, and growth planning was based on clearer reporting. Curious about how to bring more leads into the funnel in the first place? Our [lead acquisition marketing](https://stape.io/blog/lead-acquisition) guide covers the key strategies. Takeaway: reliable data and GDPR compliance The setup routed browser events through a server Google Tag Manager container on a first-party domain (for example, anything.yoursite.com) and sent lead events to Facebook via Meta Conversions API. Leads tracked increased from 10% to 85%, and UTMs and click IDs were kept with the lead longer, so reporting relied on more complete lead data. As events passed through the server container, consent rules were applied before data was forwarded to ad platforms, which supported GDPR requirements. Why choose Stape No complex coding: Stape provides a pre-built system that handles the difficult technical connections for their clients. Data privacy and control: the proxy setup gives you full control over the data and you can remove private customer details (PII) before sending them to ad platforms. Better ad performance: the server-side integrations for Meta and Google Ads give the ad algorithms high-quality data. This improves campaign results and reduces costs. --- # sGTM vs Gateways: what to choose and why Source: https://stape.io/blog/sgtm-vs-gateways sGTM gives full control across platforms, while Gateways offer a platform-focused setup for Google, Meta, TikTok, Snapchat. Key takeaways: [Server Google Tag Manager](https://stape.io/gtm-server-hosting) is the server-side version of Google Tag Manager. It uses a container that runs on a cloud server. Your web container sends HTTP requests to the server container endpoint (for example, anything.yoursite.com). The server container then forwards event data to platforms you configured, such as GA4, Google Ads, Meta, and others. A gateway is a dedicated proxy between your site and one platform's tracking endpoint. Your site routes pixel hits to a first-party subdomain and then forwards those hits to the platform's servers. [Stape](http://stape.io) offers hosting for both solutions. You can host a server Google Tag Manager container or use dedicated gateways like [Stape Gateway for GA4 and Google Ads](https://stape.io/stape-gateway), plus gateways for [Meta](https://stape.io/fb-capi-gateway), [TikTok](https://stape.io/tiktok-events-api-gateway), and [Snapchat](https://stape.io/snapchat-capi-gateway). You can think of sGTM and gateways as two different levels of control. sGTM gives you a flexible server container where you can route, filter, and change event data before it goes to ad platforms. Gateways are usually focused on one ecosystem or one platform and aim to make setup faster. In this article we'll define sGTM, explain what gateways are, then compare sGTM with gateway options and learn what Stape provides in each category. Watch our webinar on: Conversion API Gateway vs. server GTM If you don't know what's best for your tracking setup, you are welcome to watch Stape's webinar on [Conversion API Gateway vs. server GTM: what to use, why and when](https://stape.io/news/conversion-api-gateway-versus-server-gtm-webinar). What is sGTM (server-side Google Tag Manager) [sGTM is an advanced tag management solution](https://stape.io/blog/google-tag-manager-server-side-tracking-explained) from Google that processes tracking on a server container. Events still start in the browser, but then the browser sends the request to your server, and the server forwards it to your ad and analytics platforms. Managing a cloud infrastructure can be a challenge, so Stape provides sGTM an environment that is ready to deploy, scale, and keep it running without handling servers yourself. This setup gives you benefits that make your [data and marketing better](https://stape.io/blog/benefits-server-side-tagging), such as more control over tracking before it reaches your ad and analytics tools: you can filter events, remove extra parameters, and apply consent rules in one place. Platforms will also receive more complete data for attribution and reporting because the tracking flow does not rely only on browser-to-platform requests and so there is no data loss from browser limits and blockers. With server-side setup you can also enrich events with details like order IDs or customer IDs, so attribution and reporting are more consistent. How it works: Events still start in the user's browser. Scripts or GTM tags running inside your browser send one request per event to your server container endpoint, often on a custom subdomain like anything.yoursite.com. Your server container then creates and sends platform-specific requests to Google Analytics, Google Ads, Meta, and others, based on your setup. ![How it works](https://cdn.stape.io/i/696f70c23e4e7606311953.png) What is a gateway? A gateway is a server layer between your website and the ad or analytics platform. Instead of the browser sending tracking requests straight to the platform, it sends them to an endpoint on your own domain first (for example, anything.yoursite.com). The gateway then forwards those same requests to the platform, usually by calling the platform's API. This approach changes the path of the data, not the event itself. The click, page view, or purchase still happens on the website. The browser still triggers the event. The gateway just becomes the route the data uses to reach a platform. A gateway is focused on one platform or one ecosystem. This setup is often faster than building a full server Google Tag Manager configuration for every destination. It is also a good choice when you want to improve how data reaches one platform, while keeping your overall setup simple. If you later need one place to manage many destinations and more complex logic, a full sGTM setup can give you that. Stape offers hosted gateways, so you get the gateway layer without deploying and maintaining your own server. You can use [Stape Gateway for GA4 and Google Ads](https://stape.io/stape-gateway), and gateway hosting for [Meta Conversions API](https://stape.io/fb-capi-gateway), [TikTok Events API](https://stape.io/tiktok-events-api-gateway), and [Snapchat Conversions API](https://stape.io/snapchat-capi-gateway). ![How it works](https://cdn.stape.io/i/696f78384612e245066646.png) Types of gateways People use "gateway" to mean different things in tracking, depending on the platform or tool. In practice, you will see three common types. Google tag gateway style This gateway is a Google-owned solution that [loads the Google tag from your own domain](https://stape.io/blog/what-is-google-tag-gateway) and routes GA4 and Google Ads measurement requests through your domain first. That means your site loads the tag from your domain and sends measurement events to your domain, and your infrastructure forwards them to Google. If you want the gateway approach and also have hosting and support included, use [Stape Gateway](https://stape.io/stape-gateway). It routes tracking requests through your domain and [supports setups beyond Google](https://stape.io/blog/google-tag-gateway-gtg-with-stape) when your stack includes other ad platforms. Conversions API Gateway style This type of a gateway sends web events from your site to an ad platform through the platform's Conversions API. The setup is done inside the platform interface. You manage the gateway configuration and you are responsible for how tracking works. Dedicated gateways by Stape These are gateway products hosted by [Stape](https://stape.io/). They offer seamless integration with major ad platforms, ensuring smooth data flow and easy setup. Also, improve data accuracy by bypassing common issues like ad blockers and browser privacy features. With scalable solutions and expert support, Stape provides a secure, customizable, and reliable tracking setup. sGTM vs Stape Gateway (GA4 and Google Ads) [Stape Gateway](https://stape.io/stape-gateway) is a dedicated product for GA4 and Google Ads. It works only from the data already sent by web GA4 and/or Google Ads requests. So you keep your web tracking, and the gateway helps you route those Google measurement requests in a first-party way. A server Google Tag Manager container is broader. It receives incoming requests, processes them, and then you decide what tags fire and where the data goes. That makes it the better base when you need custom routing, filtering, or setups beyond GA4 and Google Ads. The difference is that Stape Gateway keeps the setup focused on GA4 and Google Ads, and a server Google Tag Manager container gives you one server container where you control how events flow to other platforms. sGTM vs Google Tag Gateway [Google Tag Gateway](https://stape.io/blog/google-tag-gateway-explained#what-is-google-tag-gateway) (GTG) gives advertisers a way to serve a Google tag or GTM web container from their own domain, helping improve data privacy and recover more measurement signals. This means GTG relabels GA4 and Google Ads requests so they appear to come from your own website instead of Google – but it only changes where the request comes from, and it does not give you the same level of control over the data itself.. It works purely for Google (GA4, Google Ads), so anything else you track – Meta, TikTok, LinkedIn – stays untouched and still runs as third-party. Server-side GTM works differently: instead of just relabeling requests, it actually processes the data through your own server before sending it anywhere. This means you can adjust, clean up, or route the data to any platform you want – not just Google – giving you far more control than GTG offers. In short, GTG is a simpler option if your main goal is to improve Google tracking, while server-side GTM is the better choice if you want real control over your data or need to track platforms beyond Google. Interestingly, Google's own most advanced GTG setup actually requires adding a server container anyway – so if you're aiming for full control, setting up server-side tracking directly is usually the more efficient path. sGTM vs Meta Conversions API Gateway [Meta Conversions API Gateway hosting by Stape](https://stape.io/fb-capi-gateway) gives you a ready gateway environment without a need to deploy and maintain a cloud server. You can set up the gateway in your Stape account and connect it to your Meta dataset. The gateway uses your existing Meta Pixel web events as the input and forwards them to Meta through Conversions API over a server connection. The difference with a sGTM is that Meta Conversions API Gateway is built for Meta only and a server Google Tag Manager container is built for routing to multiple platforms from one server container, with custom logic before data is forwarded. sGTM vs Tiktok Events API Gateway [TikTok Events API Gateway hosting by Stape](https://stape.io/tiktok-events-api-gateway) gives you a hosted gateway, so you do not deploy or maintain a cloud server. It takes the web events your TikTok Pixel sends from the browser and forwards them to TikTok through the Events API over a server connection. This setup is built for TikTok only. And a server Google Tag Manager container is a more complex setup. It lets you route events to TikTok and other platforms from one server container, and apply custom logic before data is forwarded. sGTM vs Snapchat CAPI Gateway [Snapchat Conversions API Gateway hosting by Stape](https://stape.io/snapchat-capi-gateway) is a hosted endpoint for your Snap Pixel events. Your site sends events from the browser to a first-party subdomain (for example, on anything.yoursite.com), and the Gateway relays them to Snapchat through Conversions API. This setup is built for Snapchat only. It keeps your web tracking on the site, and uses the gateway to send those same events through Conversions API. A server Google Tag Manager container is the option for multi-platform tracking. It receives one inbound event and routes it to all the destinations based on rules you set. sGTM vs Meta Signals Gateway Meta's Signals Gateway works like a control panel for first-party data. It brings together events from sources like Pixels, SDKs, offline uploads, or CRM integrations, then routes that data collected on your cloud server to the destinations you choose, such as Meta and other supported platforms like BigQuery. [Signals Gateway by Stape](https://stape.io/meta-signals-gateway) is Stape's hosted setup for this workflow. Stape provides the ready cloud environment and the interface to connect sources, configure routing, and manage destinations, so you do not have to deploy and maintain the server layer yourself. Signals Gateway still relies on your existing web events, so Meta web tracking needs to be set up and working on the site first. While Meta's Signals Gateway is built as a central routing layer for your data sources and destinations, sGTM is built around a server Google Tag Manager container. With sGTM, you set up your own clients and tags in a server container, and then connect each destination from there. With Signals Gateway, you connect sources like Pixel, SDKs, webhooks, or file uploads in one place, then choose where to send that data. Also, Signals Gateway keeps a lot of the setup inside one product, with built-in steps for common sources and a pipeline layer for filtering and routing. sGTM usually takes more manual setup, but it gives you one place to manage logic for many platforms from the same server container. Quick comparison: server container tag vs gateway You can connect each platform in two ways: set up a server Google Tag Manager container and use server-side tags, or use a hosted gateway that forwards your existing web Pixel events to the platform's API. Meta | Meta CAPI Gateway | Facebook CAPI tag Free trial period | 7-days ✅ | Freemium plan ✅ Prices start at | $8/month | $17/month Step-by-step guide | [How to set up Meta Conversions API Gateway](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway) | [How to set up Facebook Conversions API tag](https://stape.io/blog/how-to-set-up-facebook-conversion-api#steps-to-set-up-facebook-conversions-api) Google | Stape Gateway | GA4 + Google Ads tags Free trial period | 7-day ✅ | Freemium plan ✅ Prices start at | $8/month | $17/month Step-by-step guide | [How to set up Stape Gateway](https://stape.io/blog/what-is-stape-gateway#how-to-set-up-stape-gateway) | • [How to set up GA4 server-side tracking](https://stape.io/blog/set-up-ga4-server-side-tracking)• [Google Ads server-side tracking guide](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) TikTok | TikTok Events API Gateway | TikTok Events API tag Free trial period | 7-day ✅ | Freemium plan ✅ Prices start at | $8/month | $17/month Step-by-step guide | [How to set up TikTok Events API Gateway](https://stape.io/blog/how-to-set-up-tiktok-events-api#how-to-set-up-tik-tok-events-api-gateway) | [How to set up TikTok Events API](https://stape.io/blog/how-to-set-up-tiktok-events-api#how-to-set-up-tik-tok-events-api-via-server-gtm) Snapchat | Snapchat CAPI Gateway | Snapchat Conversions API tag Free trial period | 7-day ✅ | Freemium plan ✅ Prices start at | $8/month | $17/month Step-by-step guide | [How to set up Snapchat CAPI Gateway](https://stape.io/blog/snapchat-capi#snapchat-capi-gateway-the-fastest-way-to-set-up-snapchat-capi) | [How to set up Snapchat Conversions API](https://stape.io/blog/snapchat-capi#how-to-set-up-snapchat-conversions-api-using-server-google-tag-manager) What should I choose? After the gateway examples, the choice usually comes down to scope, cost, and how much control you need. Here are the main characteristics of the Google Tag Manager: Scope: several platforms managed from one server container. Control: done in one place before data is sent out (filtering, routing, event shaping). Logic: different event flows per destination (some events only to GA4, others only to Meta). Complexity: more technical to set up and maintain, but easier to extend over time. Cost: hosting starts from [$17/month](https://stape.io/price) (free plan available), and the tier can change when you need more capacity. Here are the main characteristics of a gateway: Scope: one platform or one ecosystem. Speed: usually faster to launch than a full server container. Input: builds on existing web tracking requests. Complexity: lower maintenance and fewer moving parts. Cost: dedicated gateways start from [$8/month](https://stape.io/price) (7-day free trial available). Stape Gateway for GA4 and Google Ads is [$10/month per domain](https://stape.io/stape-gateway). ![How it works](https://cdn.stape.io/i/696f8182f2dcd368918573.png) A simple way to decide: If it is "one platform first," start with that platform's gateway. If it is "multiple platforms from one place," choose sGTM. Best sGTM tools ⦿ [A server container setup](https://stape.io/helpdesk/documentation/create-server-container-in-google-tag-manager) and a stable tagging server URL on your own domain. This is the endpoint your web setup sends events to, before the server container forwards them to platforms. Stape's Global Server GTM Hosting includes an easy tagging server URL setup and hosts your server Google Tag Manager container for you. ⦿ Debugging and monitoring: ⦾ Start on the site: use Google Tag Manager's preview and debug mode to confirm the right tag fires and the right event is created in the web container. • Use [sGTM Preview Header](https://stape.io/solutions/sgtm-preview-header) if you send requests to the server container from outside web GTM and want to see those requests in the server container preview mode. ⦾ Then check the server step: open the server container preview and confirm the request arrived. ⦾ Make the server preview easier to read with [Stape GTM Helper](https://stape.io/solutions/stape-gtm-helper) extension for your browser: it formats the request payload, shows platform logos, and highlights tag status so it's faster to spot what worked and what failed. ⦾ Review what the server container receives and sends with [Stape Logs](https://stape.io/solutions/logs): filter by client name, event name, status, and date to find where the flow breaks. ⦾ For one specific event, you can capture the full payload with [Logger tag](https://github.com/stape-io/logger-tag). ⦾ Get alerts when something changes with [Monitoring by Stape](https://stape.io/solutions/monitoring), like error spikes or drops in event counts. ⦿ [Setup Assistant by Stape](https://stape.io/blog/setup-assistant-by-stape) generates ready GTM templates for web and server containers based on the platforms you select, so you can launch faster with fewer manual steps. ⦿ [Multi Domains](https://stape.io/solutions/multi-domains) lets you map several domains (for example, country or language sites) to one server Google Tag Manager container, even though GTM itself allows only one Tagging Server URL per container. ⦿ [Custom Loader](https://stape.io/solutions/custom-gtm-loader) changes gtm.js and gtag.js loading paths, which can help keep tag loading more reliable under browser limits and blockers. Conclusion No matter if you choose a gateway to focus on one platform and reduce setup work, or a server Google Tag Manager container to have more control and use several platforms, you can change the setup later. You can start with a gateway, keep your web tracking as-is, and switch to a server container when the setup expands. A very important thing is ownership. Make roles clear in the team: who maintains tags and events on the site, who owns the server container or gateway settings, who checks event quality and deduplication, and who validates changes after each release. --- # 3x lower sGTM costs: Stape vs. Google Cloud Run for Shopify | Analyzify Source: https://stape.io/blog/stape-vs-google-cloud-run-for-shopify-case-study Stape vs Google Cloud Run for Shopify sGTM: Analyzify’s October 2025 comparison shows ~3x lower cost per 10k GA4 page_view requests with Stape. Key takeaways: Analyzify analyzed how much money was spent on tracking in Shopify through Google Cloud Run (GCR) and Stape to find the best solution. The core challenge was variable billing, where costs change with traffic spikes and configuration. Stape delivered a €0.083 cost per 10k page_view requests – effectively 3x cheaper than an optimized GCR setup (€0.25). Managed infrastructure removed the need for manual scaling and technical maintenance. When setting up server-side GA4 or Meta tracking, the biggest hurdle often isn’t the setup itself – it’s keeping hosting costs predictable as traffic grows. Many Shopify merchants start with Google Cloud Run (GCR). In this case, variable billing and scaling configuration can quickly turn hosting into an ongoing task. Our Shopify-focused tracking and analytics partner, [Analyzify](https://analyzify.com/), reviewed real request and cost data from two active stores. Their goal was to make the trade-offs clearer. Analyzify compared Google Cloud Run before and after optimization, then benchmarked those results against Stape’s fixed-plan hosting. Challenge: unpredictable bills and "technical taxes" For a fast-growing Shopify store, traffic never stays flat. Marketing campaigns and seasonal sales cause massive surges in event data. Merchants using Google Cloud Run faced 3 main "villains": Volatile billing. GCR charges based on request count and precise processing time. Every traffic spike or heavier script results in a different, often higher, bill. Complex optimization. To keep costs down, you need a DevOps expert to manually tune scaling parameters, CPU limits, and idle instances. Without this "technical fine-tuning," costs can reach €0.46 per 10k page_views requests. Scaling stress. Every time the site traffic grows, the hosting expense grows with it, making it difficult to forecast a stable marketing budget. Solution: switching to Stape’s predictable model Rather than relying on assumptions, Analyzify validated the cost side with real data. In October 2025, they analyzed two Shopify setups: Google Cloud Run running with default settings and then after optimization (scaling and resource tuning), and a Stape setup on a fixed request-based plan. This made it possible to compare how each option behaves as event volume increases – both in cost and in ongoing maintenance. Based on the comparison, Stape stood out as the more predictable option for teams that want stable hosting costs without ongoing infrastructure tuning Stape setup provided: Fixed pricing. Stape uses fixed monthly pricing (for example, €167/month for 20 million requests), giving you predictable costs even when traffic increases. This turns hosting from a variable cost into a predictable overhead. Hands-free scaling. No manual configuration is required. Stape handles auto-scaling and server maintenance automatically. Stape products used for the case study: Server-side GTM hosting. High-performance, managed server environment. Stape Enterprise plan. 20 million monthly requests for a fixed annual or monthly fee. Results: ~3x lower cost per GA4 page_view The October 2025 comparison showed that Stape was both easier to manage and cheaper on a per-event basis than optimized Cloud Run. 3x lower cost per request. Even after heavy optimization, GCR costs €0.25 per 10,000 page_view requests. Stape’s effective rate for the same volume was only €0.083. Total cost stability. During the test period (7.3M requests), the store on Stape paid a stable, pre-defined fee. On GCR, the same volume would have required daily monitoring to prevent cost spikes. Less overwork. Cloud Run requires ongoing configuration and monitoring; Stape is hands-off with auto-scaling and maintenance. ![Hosting cost comparison](https://cdn.stape.io/i/696e3ac25fa74400446269.png) Google Cloud Run (before optimization, 1–7 Oct) Total requests: 574,000 Total cost: €26.71 GA4 requests: 280,000 page_view requests: 80,000 Cost per 10,000 page view requests: €0.46 ![Before optimization](https://cdn.stape.io/i/696e3b29c0674415581797.jpg) Google Cloud Run (after optimization, 9–11 Oct) Total requests: 256,000 Total cost: €6.55 GA4 requests: 117,000 page_view requests: 38,000 Cost per 10,000 page_view requests: €0.25 ![After optimization](https://cdn.stape.io/i/696e3bee65607461313935.jpg) Stape (managed, 3–12 Oct) Total requests: 7,300,000 GA4 requests: 3,100,000 Cost per 10k page_views: €0.083 Client testimonial "Choose Stape if you value stability, predictable billing, and hands-free maintenance. It’s more practical for most Shopify stores that simply want accurate GA4 tracking without worrying about infrastructure." — [Analyzify Team](https://www.linkedin.com/company/analyzify/) Why choose Stape Fixed billing means no surprises, even during Black Friday spikes. Automated scaling removes the need for expensive in-house developers. Significant cost-per-request efficiency that improves as your volume grows, outperforming the variable 'compute-time' billing of general cloud providers. Proven recovery and ROI of your server-side setup in real-time. --- # Advanced bot traffic guide: filtering, prevention, and blocking Source: https://stape.io/blog/bot-filtering-blocking Read about the main types of bot traffic, the most effective ways to prevent it, and how Stape can help you to minimize its effect. Key takeaways There is good and bad bot activity. While the first one is actually beneficial for your product’s promotion, the latter can compromise privacy and affect your business’s success. Bot traffic twists your analytics results, and must be adequately addressed if you do not want to base your decision-making on unrealistic information. Follow the best practices and combine several bot detection and prevention tools to minimize the effect of malicious bots on your product. Bot attacks directly influence the decision-making and performance of a website. Malicious traffic is a direct threat to analytics, which can lead to inflated conversion numbers and drastically increase the key metrics to twist your perception. Despite that, [only 2.8% of websites](https://datadome.co/resources/bot-security-report/) are reported to be fully protected from bot threats. This guide covers the key points you should know about the bot activity and how to decrease its influence on your business. What is bot traffic? Bot traffic describes visits to your resource generated by automated software, also known as bots, rather than by legitimate users. These can be search engine crawlers, responsible for web scraping, or malicious bots that generate fake clicks and imitate network traffic. Understanding this and being able to identify bots with harmful intentions and automated attacks is crucial for getting accurate performance data and maintaining a safe and secure website environment. Why should you care about bot traffic? Possible bots impact There are several ways in which bot malicious activity and automated threats can impact your website performance and the quality of analytics data you get as a result. Distorted reporting and analytics. Bot attacks generate false data, which leads to misleading insights if it reaches analytics. For example, bots can imitate real users, artificially inflating traffic numbers, or interact with forms and buttons on your website, boosting your ROI metrics and falsifying the effectiveness of your marketing campaign. Slow response time. Increased load on the server can lead to bad website performance and slow site speed. It harms both customer experience on your resource and its SEO rankings. Increased advertising budgets. Fake clicks on your ads imitate user behaviour and lead to an increased ad spend, which inflates your advertising budget. This also negatively impacts the ad campaigns you launch on Google, Facebook, or any other platform, where you, as an advertiser, have to pay for every user click or impression. IP theft. Bots are frequently used for data scraping, where they collect product descriptions, blog posts, and service information. This not only results in the loss of a competitive edge but can also lead to potential SEO penalties due to the duplication of content. Security issues. Malicious bots are often used to commit cyber attacks, provoking data breaches (brute force attacks) or server overload (DDoS attacks). All these factors overall negatively impact customer experience on your website and may lead to low ratings, bad traffic, not working features, or even complete lockage of the resource. You must be able to identify bot activity and stop bot attacks to preserve brand reputation and keep providing quality services to your customers. Types of bot traffic (good and bad bots differentiation) ![image](https://cdn.stape.io/i/6968e18a99027438523991.png) To be able to oppose the bot threats and choose the best way to counter them, it is desired to know how to categorize malicious bot activity. There are 5 main types of so-called bad bots that can impact your company's performance. Spam bots overflow websites and forums with fake comments, reviews, and messages. This content does not necessarily need to be human-like. Many bots prioritize quantity over quality, cluttering the platforms and damaging their credibility. This makes real-time detection extremely challenging. One of the emerging threats is scraper bots. They do not hit the website speed or brand reputation directly. Instead, they extract batches of content from a resource without consent and may reuse it anywhere. Credential stuffing bots operate with stolen credentials to test the login and password combinations on multiple websites simultaneously, attempting to get unauthorized access. In addition to that, their activity overloads login pages, extending the sign-in time or even denying it altogether. DDoS attack bots may overwhelm internet resources with excessive, meaningless traffic, taking websites down for unspecified periods of time. Marketing and eCommerce companies often suffer from Ad fraud bots launched by their competitors. They falsely increase financial and conversion metrics, causing budget waste and inadequate strategic planning. Not all bots, however, flood websites with fake traffic or commit account takeovers. Certain types of bots are designed to assist users with different tasks, improve their experience, and help with online promotion. Search engine bots crawl web pages to gather information needed for providing adequate SERP results. Virtual assistants and chatbots assist users with answering their questions, providing L1 customer support services, and generating textual or visual content. Many news platforms use content aggregators to automate the process of news gathering and deliver the latest updates to their readers and viewers faster. Performance bots are used to monitor and analyze a website's or web application's performance and uptime. While good bot activity often remains unnoticed in the background, content scraping, spamming, and credentials theft are extremely dangerous. It is crucial to be able to detect and block bad bots quickly and effectively to minimize their influence on the product. How to detect bot traffic? To be able to identify bot traffic on your website, you need to analyze user behavior and utilize the advanced technologies of bot detection. Unusual duration of the session | Bots often visit websites for a millisecond to achieve a specific goal or have extremely long sessions, trying to imitate real user behavior. Anomalously high bounce rate | If a bot is aimed at boosting the bounce rate for your website, it can simply access the page and leave it immediately, without any interaction. Spikes in the request numbers | A sudden rise in pageview numbers or a spiking number of requests from a single IP address may be indicators of a DDoS attack. Fake conversions | Numerous forms filled with senseless or fake data may indicate online fraud aimed at inflating conversion rates. Unexpected traffic origins | Traffic from new/unexpected GEOs as well as from IPs that belong to known data centers often indicates spam and bot attacks. Artificial click and scroll behavior | More expensive and sophisticated bots can already mimic human behaviour, which is one of the biggest evolving threats in this domain. Other bots, however, are detectable by straight and repetitive mouse movements and unnatural scrolling patterns. It is highly desirable to constantly check and analyze website traffic and user behavior, especially if some unnatural patterns are noticed. In addition to that, certain proactive measures can be taken to identify bot attacks. Honeypots | Hidden fields are added to websites to detect bot activity. They are invisible to human visitors, but bots often fill them automatically. IP Blacklisting | Check the IPs of incoming requests against the existing databases of malicious IPs. Analyzing bot traffic user-agents | Bots often use spoofed user-agent strings with information referring to a specific user's device that does not match the actual data. To boost your bot management and identification capabilities, you can integrate behavioral analysis with machine learning. This way, you can create a template of acceptable human-like behaviour and flag all deviations as bot attacks. How to stop bot traffic on a website - best practices ![How to stop bot traffic](https://cdn.stape.io/i/6968e3839fce7566367943.png) Identifying malicious traffic is not enough. Knowing how to stop bot traffic and bot mitigation practices is crucial for ensuring that your project does not suffer from spam attacks, web scraping, or other bots. Here are the 10 best practices to stop bots from attacking your resources. CAPTCHA and reCAPTCHA. If you have ever wondered what this weird word means, it is a Completely Automated Public Turing test to tell Computers and Humans Apart. It is one of the most common tools to distinguish automated algorithms from people. Bots cannot match the pictures or enter the required symbols in the same way real people do, and thus, CAPTCHA prevents bots from accessing your resources. Specialized tools to detect bots. Software like Cloudflare Bot Management uses machine learning algorithms to identify traffic that behaves in unnatural ways. Suspicious requests are blocked early, before they reach their target destination. IP rate limiting. Set a specific number of requests a particular IP can make to your resource in the set time period. This decreases the chances of a DDoS attack or traffic spam. JavaScript challenges. Ask users who want to reach your website to execute a simple script prior to that. Most bad bots do not operate with JavaScript or cannot do that properly, so this filters them out. Requests with generic headers. Bot requests often use incorrect or generic source information in the headers. Filter requests with suspicious headers, and you will protect your website from some types of bots. Challenge-response test. Your server requires each incoming request to have a special authenticator to be allowed further. All requests that fail to pass authentication are automatically blocked. Web application firewalls. These applications work similarly to computer antivirus software. They identify common bot attacks at very early stages and block them before they reach the target device. Device fingerprinting. Collect the information about the request sender's device. Bots often change IPs, but this device data remains the same. It is a good idea to block unknown requests with identical device fingerprints. Server-side request validation. Server-side tracking services often have bot filter solutions to prevent such traffic from reaching the analytics and twisting its results. If you still use client-side tracking only, it is a good time to start thinking about switching. GEO filtering. If you get excessive traffic from regions where you do not expect to have real users, block it or use challenge requests to validate it. Of course, it is hard to follow all the best practices at the same time. Thus, we recommend that you identify the ones that are more relevant to your product (for instance, there is not much sense to use GEO filtering for international products that might have clients worldwide), and use them with the maximum uptime possible. Best bot mitigation solutions Knowing the best practices to stop bot traffic is essential, but what about specific bot management solutions that can help you with malicious traffic? Here are some top titles you can try. Cloudflare Bot Management This is an ML-based tool that uses different AI models to create a human-like behavioral pattern and then assigns points (from 1 to 99) to every request depending on its similarity with this pattern. Consequently, the lower this number is, the higher the likelihood that the reviewed request belongs to a bot. Depending on this score, you can block the requests, challenge them, or require a CAPTCHA check. [Cloudflare Bot Management](https://www.cloudflare.com/application-services/products/bot-management/) also considers other factors, such as IP or ASN, which makes it even more reliable and precise. In addition to that, the company highlights that its service only checks potentially malicious requests and does not block bots from Google or assistant chatbots, so your search engine rankings should not be influenced. CBM's downsides mainly come to price and configuration complexity. Costs for the service scale up proportionally to the traffic; for the best quality of protection, you may need to switch to the higher-tier payment plans and activate addons. Misconfiguration may lead to blocking bots from systems like Google. What Stape offers in terms of bot detection Stape is not a bot mitigation platform. It is a server-side tracking services provider, and it has several power-ups aimed at protecting your analytics from spam traffic and fake conversions. [Stape's Bot Detection solution](https://stape.io/solutions/bot-detection) adds two headers to every incoming request. One returns "true" or "false", and the other returns a number from 1 to 100. Unlike CBM, 100 in this case means that the request is very possibly generated by a bot. The same goes for the header's "true value". If bot traffic is detected, this power-up stops the server GTM container tags from firing, helping you to keep your analytical data clean. [Block Request by IP power-up](https://stape.io/solutions/block-request-by-ip) allows you to block up to 30 addresses and exclude all their traffic from your analytics and GTM events. IP blocking can be extremely helpful if you know the sources of potential bot threats and want to prevent bot traffic. A little off-topic, but still useful - [Open Container for Bot Index](https://stape.io/solutions/open-container-for-bot-index). While it does not detect bad bot traffic nor can it block them somehow, this power-up optimizes your website for search engines and their crawlers, enhancing your data collection activity. ModSecurity [ModSecurity](https://modsecurity.org/) is an open source online firewall engine. It is entirely free to use and can be added as a module to a server or as a connector to a web application. It has a default set of rules and allows for the creation of custom ones. ModSecurity bot blocker checks every incoming request for correspondence with the existing rules and fires the selected action if any inconsistencies are detected. Possible reactions to potentially bot requests are blocking, redirecting, or modifying the request. The service supports two modes: bot prevention, already described above, and detection. In detection mode, the service only saves logs for all the suspicious incoming requests, but does not commit any actions. Which niches suffer the most due to the bot attacks ![Niches that suffer most due to bot attacks](https://cdn.stape.io/i/6968e85cb15b9407394027.png) Although it may seem that the financial sector is at most risk of bot attacks due to the potential for payment fraud, [statistics demonstrate](https://www.imperva.com/resources/infographics/bot-hotspots-bad-bots-by-industry.pdf) that it is not even in the top 3, with only 8% of all attacks targeting financial services. The most endangered industries in 2025 are travel (27%), retail (15%), and education (11%). The travel industry often suffers from bot attacks because it provides one of the easiest ways to gain unauthorized access to personal data. Booking and rental websites, air companies, and travel agencies often do not have the same level of data protection as banks and financial institutions. Bots can scrape such resources for personal and sensitive information about their clients. Another popular destination is leaving fake reviews, artificially inflating the demand, or damaging the reputation of legitimate businesses. Retail and eCommerce industries suffer due to high competition rates and the relative simplicity of getting what is needed compared to the potential benefits. Competitors often use scraping bots to gather price and availability data and adjust their resources accordingly. Other bots are used for inventory hoarding and creating artificial scarcity by automatically purchasing products until they are out of stock. Some bots may even try accessing customer profiles and use their credentials and financial data for fraudulent purchases. Malicious bots in the educational industry hunt for students' and workers' personal data, fill fake applications to make it more difficult for admissions commissions to process the real ones, and assist with IP theft. The latter is the most dangerous aspect. Scientific papers illegally republished elsewhere can lead to plagiarism issues, research ideas and projects can be stolen and relaunched without mentioning authorship. What to expect from filtered bot traffic? When you establish a strong and effective bot blocking system, the first and foremost thing is that the information stored on your resources will be safe. You may not worry about your customer data being stolen or your analytics being overwhelmed with fake conversion events. Of course, this launches the loop of quality data → better analytics → more profound understanding of your customers → more effective strategies →optimized ad spend → profits. Another positive aspect here is that block detection improves the performance of your website. When not overloaded by fake requests, it runs faster and has better load time metrics, improving overall customer experience. Generally, it is safe to say that businesses that filter bot traffic will always have an advantage over those that do not. FAQ Is there a difference between website, app, and server bots? Yes, there is. There are differences in terms of their destination. Website bots target websites, app bots - applications, and server bots - servers. The final goal is the same, though: steal data, gain unauthorized access, damage functionality. How to block TikTok bot traffic? There is no one perfect solution for bot attack prevention. Use TikTok's bot filtering tool in combination with IP blocking, rate limiting, geo-fencing, and web firewalls. You can expect even better results, though, if you switch to server-side tracking and implement additional layers of bot protection, such as the bot detector powerup from Stape. How to identify if the bot is bad? To identify if a bot is good, you need to do all the same things as to identify if a bot is bad. Check the user-agent string. A good bot will always have it clear and well-defined. Check IPs and geo location, pay attention to how often bots send requests to your resources, and if you want to get deeper, monitor the bot behaviour of a bot on your website. Search engines and analytics bots never try to imitate human behaviour and leave the page as soon as they finish their task. --- # Track CLTV conversions for lead generation with Google Sheets Reader Source: https://stape.io/blog/cltv-conversions-tracking-for-lead-generation CLTV Conversions Tracking for Lead Generation measures the long-term value of leads, helping optimize marketing efforts and refine conversion strategies. Tracking Profit/expected Customer Lifetime Value (CLTV) conversions is essential for the Lead Generation industry to understand the long-term value of acquired leads, optimize ad spend, and improve conversion strategies. The need for such implementation using [Google Sheets Reader variable](https://stape.io/solutions/spreadsheet-reader-variable) often arises when you want to achieve real-time data enrichment for value-based lead tracking. If you’ve opted to include value-based parameters in your conversion tracking, this approach centralizes your lead-scoring data for easier maintenance. Our focus here is the technical logic of passing "expected value" via web and server GTM containers using the Stape Google Sheets Reader variable. In case you have cost adjustments or changing lead-scoring logic, you can just implement changes in Google Sheets, the tracking in GTM remains untouched. Learn how to: [Write data from server GTM to Google Sheets](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets) [Read data from Google Sheets to server GTM](https://stape.io/blog/read-data-from-google-sheet-to-server-google-tag-manager) [How to track Profit on Ad Spend](https://stape.io/blog/profit-on-ad-spend) Benefits of using sGTM to pass CLTV Confidentiality of business logic. sGTM keeps your lead values private by preventing exposure to third parties in the browser and through the data layer or outgoing requests. Server-side data handling. Calculations and data processing happen on the server side, meaning sensitive information never reaches the user's browser. Protection from competitors and clients. This method keeps your internal lead evaluation strategies hidden from competitors and clients. Supplementing existing payloads. Serves as a solution for adding important data from Google Sheets when your backend infrastructure can't send fully enriched webhook payloads. Alternative for data stitching. Provides an effective approach to combine necessary data when backend limitations prevent direct enrichment of payloads. For tips on improving the quality of leads entering your funnel, see our [lead acquisition marketing](https://stape.io/blog/lead-acquisition) guide. Prerequisites To start, you should use your existing internal lead scoring model; the CSV example provided below is just a template, as the actual calculations, predictions, and LTV logic are highly individual to your business and remain the responsibility of your marketing team. Once your scoring is ready, the best way to bridge it with sGTM is via a clean dataLayer push for the generate_lead event. Providing specific lead attributes (like industry or plan type) directly in the dataLayer is much more reliable than using custom variables to scrape the website, as it ensures the Google Sheets Reader variable always finds the exact match for your calculated values. How to set up Google Sheets Reader variable for Lead Profit/eCLTV 1. Key generation logic in Google Tag Manager. In the web container, we need to create a unique identifier (key) via Custom JavaScript variable that we will use to search for values in the table. We use a flexible approach: if a parameter is missing, it is simply excluded from the key. ![Variable configuration](https://cdn.stape.io/i/6960e599767af827213132.png) Also, we pass this parameter to server GTM via adding it to the GA4 tag. 2. Google Sheets Authorization. For this article I use Stape hosting, so the [Google Sheet authorization](https://stape.io/solutions/google-sheets-connection) is done via Stape. In your Stape account go to Connections and authorize via Google account where the Spreadsheet with calculations is located. ![Google Sheets connections](https://cdn.stape.io/i/6960e63644bdb850024914.png) If you don’t use Stape as a hosting, you would need to set up [manual access to your Google Sheets using your own credentials](https://stape.io/blog/read-data-from-google-sheet-to-server-google-tag-manager#for-non-stape-users). 3. Configuring the Google Sheet Reader variable. In the server container, download [Google Sheet Reader variable template](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/spreadsheet-variable), create a Google Sheets Reader variable and insert all necessary data: sheet name, range (in my case from B2 to C34 cells) and spreadsheet URL. ![Variable configuration](https://cdn.stape.io/i/6960e68f9f0a3460218582.png) Then extract specific values from this Google Sheet range using the Object Property Extractor variable. Its template can also be found in the GTM Template Gallery. The logic here is in finding the same key as you have sent from the web, match them and get the desired result - final lead expected lifetime value. ![Variable configuration](https://cdn.stape.io/i/6960e6f7c3dee724054722.png) 4. Reporting Lead expected lifetime value. In the server GTM, add Object Property Extractor variable in the Conversion value field. ![Add Object Property Extractor variable](https://cdn.stape.io/i/6960e79f00565456596702.png) How to debug? 1. Run web and server GTM containers preview. Complete lead_generate event in web preview and check Google Sheet Reader and Object Property Extractor in server one. ![Run web and server GTM containers preview](https://cdn.stape.io/i/6960e83f00846364585389.png) 2. Compare key with keys in CSV and check expected cltv. ![Check expected cltv](https://cdn.stape.io/i/6960e89f45348105373701.png) ![Check expected cltv](https://cdn.stape.io/i/6960e91080143924254657.png) If everything’s fine with variables ensuring Google Ads value return Status Code 200, it’s a mark that requests got to the Google Ads successfully. ![Google Ads](https://cdn.stape.io/i/6960e974e343b327721667.png) To sum up As advertising strategies become more complex, so do the challenges of accurately tracking and valuing conversions. In this guide, we demonstrated how the Google Sheets Reader and sGTM in general allow you to bridge the gap between offline-based business and online ad optimization. Our example enables you to pass high-value, sensitive lead data directly to your marketing platforms without a heavy technical background or exposing your internal margins to the browser. This setup proves that with sGTM, you aren't limited by technology anymore; you’re able to sync any business data with your ad platforms and realize new ideas in life. --- # Piano Analytics server-side tracking configuration guide Source: https://stape.io/blog/piano-analytics-server-side-tracking-guide Recover lost data and improve site performance by moving Piano Analytics to server-side GTM. Learn how to configure the Stape Piano Analytics Client and Tag. Key Takeaways The Stape team has developed Piano Analytics Client and Piano Analytics Tag to configure server-side tracking for Piano Analytics. By moving to a first-party server-side setup, you can bypass ad-blockers and browser restrictions to recover up to 12% of data that could be lost. Server-side tracking reduces the browser’s workload; instead of sending data to multiple platforms individually, the browser sends one request to the server. With server-side tracking, you have an extra layer of protection where you can remove or mask PII before the data reaches the vendor. The Piano Analytics Client and Tag support multiple event sources and schemas, including Piano SDKs, GTM, GA4, and Common Event Data. Server-side configuration can be checked through a combination of GTM's preview mode, the Piano Tag Inspector (Chrome extension), and the Piano Stream Inspector for real-time syntax checking. Server-side tracking solutions for Piano Analytics Piano Analytics stands out as an enterprise-grade solution that balances data science with user accessibility and privacy standards. Its users appreciate the platform for easy connection with monetization and revenue optimization tools, as well as high privacy (it was the first analytics platform to receive the Europrivacy certification for GDPR). For a long time, there were no solutions to configure server-side tracking for Piano analytics with Google Tag Manager. Stape has solved this problem by creating a Client and a Tag for the server container. Both solutions allow their users to configure end-to-end server-side tracking, making the data collected more precise. Piano Analytics Client - handles Piano Analytics event requests sent to a designated path, converts incoming event data into the Common Event Data format for your container, manages visitor identification through client- or server-side cookies, and can serve the JavaScript SDK (piano-analytics.js) from your domain for the first-party context and improved pagespeed if you are using CDN. Piano Analytics tag for server-side GTM - allows direct event transmission from your server container to Piano Analytics. It supports both Piano Analytics and GA4 schemas, automatically mapping event names and formatting parameters as needed. In the article below, we will focus on the detailed configuration process of both solutions. Benefits of switching to the GTM server-side if you are using Piano Analytics Piano Analytics is already highly privacy-centric, and moving it to the server-side provides numerous advantages in data accuracy and website performance. Improved data accuracy Client-side tracking relies on JavaScript files and network requests that can be easily identified and blocked by [ad blockers](https://stape.io/blog/bypass-adblock-detection). By using server GTM, tracking requests become "first-party" ones for the browser. As a result, you can [recover up to 12% of data](https://stape.io/blog/sgtm-seoplus-marketing-measurement) that could be lost due to ad-blockers and browser restrictions. In this way, your Piano Analytics reports will reflect your true traffic volume. ![Key results](https://cdn.stape.io/i/695e37ee5fe80335291587.png) Better site performance Piano’s standard JS library is lightweight, but every script added to a browser still consumes CPU and memory. You can move the scripts to the server. Instead of the browser sending data to different platforms (such as Piano Analytics, [Meta](https://stape.io/blog/meta-conversions-api-gateway-versus-conversion-api), [Google](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords), etc.), it sends one request to your sGTM container. The server then transforms that data for each destination. High data protection and security Privacy is one of Piano’s "killer features." Along with sGTM, you get an extra layer of data protection. In a client-side setup, the vendor's script can see the user's IP address and other browser fingerprints. With sGTM, the data hits your server first. You can remove [Personally Identifiable Information (PII)](https://stape.io/blog/personally-identifiable-information) before sending the data to Piano's servers. ![PII data examples](https://cdn.stape.io/i/695e38ddbdc45574047900.png) You get full control over shared data. So, you can adjust the data collection process to comply with data regulations such as [GDPR](https://stape.io/blog/server-side-tracking-gdpr). Data enrichment Since the data is processed on a server you control, you can enrich it before it reaches Piano Analytics. You can call an internal database or API during the tracking. Here is an example of a use case: you are able to add a product's Profit Margin to a purchase event without exposing sensitive data. Pre-requirements Before starting to configure server-side tracking for Piano Analytics, be sure to: - Have events flow from the web environment to the server. There are the following options: Piano SDKs (iOS and Android). Piano Analytics web events implemented without using Google Tag Manager (i.e., using the JavaScript SDK directly). Piano Analytics web events are implemented using Google Tag Manager. GA4 web/app events. Events that adhere to the [Common Event Data](https://developers.google.com/tag-platform/tag-manager/server-side/common-event-data) schema. If you don't have it configured, please follow the[Piano Analytics guide on implementing S](https://developers.piano.io/analytics/data-collection/general/implementation-methods/)[DKs on the web](https://developers.atinternet-solutions.com/piano-analytics/data-collection/general/implementation-methods). - Configure web and[server GTM containers](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). - [Configure custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). How to configure server-side tracking for Piano Analytics using GTM Step 1: Set up data sending from the web to the server GTM To send data from the web to the server container, you will need to update the existing collectDomain to the one that points to your GTM server-side container. It must be a change of the collectDomain field in the Piano Analytics SDK code. For more information, please refer to: [Piano Analytics JavaScript SDK,](https://developers.atinternet-solutions.com/piano-analytics/data-collection/sdks/javascript#basic-configuration) [Piano Analytics Android SDK](https://developers.atinternet-solutions.com/piano-analytics/data-collection/sdks/android-kotlin#instantiate-tracker), [Piano Analytics iOS SDK](https://developers.atinternet-solutions.com/piano-analytics/data-collection/sdks/ios-swift#configuration). ![Piano Analytics SDK code](https://cdn.stape.io/i/695e3cd0ea793165709999.png) Step 2: Configure data receiving on the server GTM container with Client 2.1 Download the [Piano Analytics Client](https://github.com/stape-io/piano-client) from GitHub and unzip the file. ![Download Piano Client template from GitHub](https://cdn.stape.io/i/695e3d0bb38e1599005578.png) 2.2 Go to the server GTM container → Templates section → click "New" next to Client Templates → Import → select the file you downloaded from GitHub → Save. ![Import Client template](https://cdn.stape.io/i/695e3db7cc32e943523853.png) 2.3 Go to Clients section → New → select "Piano Analytics Client" as Client type. ![Choose Client type in server GTM](https://cdn.stape.io/i/695e3df18a29e917645489.png) 2.4 Configure the Client. - Set the Event Request Path - the default path is /event. All incoming Piano event requests should be directed to this path. - (Optional) Enable JS SDK Hosting if you want your server to host the Piano SDK file: Set Serve piano-analytics.js JS SDK to true Specify the JS SDK Request Path (default: /piano-analytics.js) Configure allowed origins to restrict which domains can load the file - (Optional) Configure Cookie Behavior: Enable client-side cookie rewriting to improve reliability across different tracking contexts Enable server-side cookies for the Visitor ID, especially when using privacy modes such as opt-in or exempt (these settings can be adjusted as needed) ![Client configuration](https://cdn.stape.io/i/695e3f736c171282584803.png) Step 3: Send data to Piano Analytics with a tag 3.1 Add the Piano Analytics tag template to your server-side GTM container. Go to Templates section → Tag Templates → search for Piano Analytics by Stape → click Add to workspace. ![Add Piano Analytics tag template](https://cdn.stape.io/i/695e3ffe10d41650911364.png) 3.2 Create a new tag in the Tags section → select "Piano Analytics by Stape" as tag configuration. ![Piano tag as tag configuration](https://cdn.stape.io/i/695e4028bcce0286933447.png) 3.3 Configure the tag. Select Event Name Setup Method: Custom (recommended) - although more advanced to set up, this option allows you to specify events manually and gives you full control over the event payload. Inherit from client - with this option, the tag automatically maps your GA4/Data event payload to Piano Analytics standard events. If no matching standard Piano event is found, the event is sent as a custom event. Refer to the [supported event name mapping](https://github.com/stape-io/piano-tag?tab=readme-ov-file#supported-event-name-mapping) for details. ![Event Name Setup Method](https://cdn.stape.io/i/695e4110bf44f107769690.png) Collection Domain - specify your collection domain. You can find this in the [Piano Analytics Dashboard](https://analytics.piano.io/) under Tagging → Collection Domains. Refer to the [official Piano Analytics documentation](https://developers.piano.io/analytics/data-collection/general/collection-methods/#piano-collection-endpoint) for more details. Site ID (optional) - in the [Piano Analytics Dashboard](https://analytics.piano.io/), use the value from the ID column for the relevant website. If left empty, it will be inherited from the Event Data parameter x-pa-site-id (only when Piano Analytics events are used as the incoming server events). Visitor ID (optional) - provide a unique visitor identifier (either a 16-character string or a UUID). If not specified, it will be inherited from the Event Data parameters client_id or x-pa-idclient. Redact Visitor IP Address (optional) - removes the visitor’s IP address from the event data. Use this option carefully, as it may reduce reporting accuracy and overall data quality. Use Optimistic Scenario (optional) - the tag will trigger gtmOnSuccess() without waiting for an API response. This improves sGTM response time, but the tag will always report a successful fire, even if the request ultimately fails. ![Tag Configuration](https://cdn.stape.io/i/695e41f680fb1141841793.png) Event parameters - you can add, edit, or exclude event parameters. By default, the tag does not populate the cart_id property (it is required for most [Piano Analytics ecommerce events](https://developers.piano.io/analytics/data-collection/how-to-send-events/sales-insights/)). Be sure to configure a dedicated mapping for this property. If not set explicitly, the tag will fallback to transaction_id, though this is not recommended. ![Event parameters](https://cdn.stape.io/i/695e4257c955e623716729.png) Event parameters Log Settings - select whether events should be logged to the browser console only during preview/debug mode or at all times. BigQuery Log Settings - choose whether to store event payloads, request details, and responses in a designated BigQuery table. Advanced Settings (Additional Tag Metadata) - define extra tag metadata that will be appended to the event data when the tag fires. ![Piano Analytics tag](https://cdn.stape.io/i/695e42a9ef008568017773.png) 3.4 Add a trigger for a tag. Specify the condition that must be met to fire the tag. Step 4: Test your configuration and publish the changes Google Tag Manager Test the configurations using Google Tag Manager. Click on Preview in both web and server containers. Trigger the event you’ve configured. ![Preview in GTM](https://cdn.stape.io/i/695e4356a0166836751673.png) You should see Piano Analytics Client claiming the incoming request from the web, breaking down all the available information into the Event Data, and Piano Analytics tag reporting a properly structured request to Piano Analytics. Find out more about [debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) in our guide. 💡Pro tip: For convenient GTM debugging, try [Stape GTM Helper](https://chromewebstore.google.com/detail/stape-gtm-helper/ipjcocdbbjgkailaejllpnmeliblbimn) (Chrome extension), which is created to improve the debugging experience within GTM. It offers color-coding GTM tags and server-side requests, identifying failed GTM tags. Find more about [Stape GTM Helper features](https://stape.io/blog/stape-chrome-extension) in our post. Piano Tag Inspector For verifying and debugging the implementation of Piano Analytics on a website, you can use PA's Chrome extension - [Piano Tag Inspector](https://chromewebstore.google.com/detail/stape-gtm-helper/ipjcocdbbjgkailaejllpnmeliblbimn). It will allow you to see what information is sent from a website to Piano’s servers in real-time. ![Tag Inspector](https://cdn.stape.io/i/695e43fb09694314741049.png) Piano Analytics data quality tool [Piano Analytics Stream Inspector](https://analytics-docs.piano.io/en/analytics/v1/stream-inspector) is a vendor-specific tool for quality assurance. It helps verify specific Piano events and properties and flag Piano-specific syntax or logic errors. To find the tool, go to your Piano Analytics account → Settings → Data Collection Portal → Tools → Stream Inspector. For the [constant and automated website tracking monitoring](https://stape.io/blog/monitor-website-tracking), use Stape’s Monitoring feature. After configuring the rules, you’ll receive alerts when the tracking setup breaks, so you can fix the problems before they significantly impact your data. Final thoughts The shift toward server-side tracking isn't just a technical trend; it’s a fundamental change in how website owners respect user privacy without sacrificing the insights needed for a business to grow. In a digital landscape where data gaps are widening and privacy requirements are getting stricter, a server-side setup allows business owners' balance between data collection and regulatory compliance. --- # How to set up Eulerian with server GTM Source: https://stape.io/blog/how-to-set-up-eulerian-with-server-gtm Install the Eulerian template in GTM, configure the tag, add GA4 triggers, and send events through your Stape-hosted server container. Key takeaways: A server setup processes your events on a cloud server, which helps keep tracking more stable and accurate across different browsers and devices. Eulerian reads these server-side events through your first-party collection domain. All configuration happens in GTM: install the template, set up the tag, add triggers, and publish. Stape hosts the server container that forwards events reliably to Eulerian. Attribution helps you understand which touchpoints guide a user toward a conversion. It shows how people move through your channels and what influences their decisions. When some events don't arrive, that path breaks. Reports look inconsistent, and it becomes harder to make marketing budget choices. Seeing the full customer journey depends on having every important event recorded. Client-side tracking can miss some of these events because browsers close, cookies expire, or privacy rules block requests before they reach your tools. When this happens, parts of the path disappear. A [server-side setup](https://stape.io/) reduces these gaps because events pass through a stable cloud environment, where they are processed and forwarded reliably. More events reach your analytics and marketing tools, so your attribution models work with a more complete picture. If you are looking at a Unified Marketing Platform and are considering [Eulerian](https://www.eulerian.com/en), or have already made your choice, the good news is that there is a simple way to connect your Stape account and start sending data there. The tag is already created. In this article, we'll show how to send your web events to Eulerian through a server GTM container hosted on Stape. This setup helps you collect more complete data and send it to your Eulerian collection domain. The configuration includes the following steps, which we'll explain in detail: Installing the Eulerian template in your server GTM container. Creating and configuring the Eulerian server-side tag. Setting up triggers for GA4 events. Testing and publishing your setup in GTM. ![image](https://cdn.stape.io/i/695b8473dd713462827490.png) Client-side vs server-side Eulerian data collection With a classic client-side setup, tags for analytics and attribution run in the browser and call third-party domains. Browsers and ad blockers often block these calls or cut cookie lifetime, so a lot of visits and conversions never reach your tools. Eulerian focuses on first-party and server-side collection. Data is collected under a domain that belongs to the advertiser and goes through a server environment instead of relying only on the browser. This makes the setup more resistant to tracking limits in Safari, Firefox, and Chrome, and keeps ownership of the data with the brand. When you connect Eulerian to a server GTM container hosted on Stape, the browser still collects events, but they are processed on a cloud server before being sent to Eulerian. This helps recover events that would be lost in a pure client-side setup and gives a more complete view of visits and conversions. Benefits of using Eulerian with server-side tracking Server-side tracking with Eulerian brings several practical benefits for marketing teams: More complete first-party data. Eulerian combines first-party collection with server-side tracking to keep more events despite browser limits and ad blockers. According to Eulerian, classic third-party setups may capture only a fraction of the data that is available, while first-party collection helps recover a much larger share. Reliable measurement for all channels. Eulerian Marketing Platform aggregates KPIs from acquisition, conversions, retention, and lifetime value into one view. Online and offline touchpoints can be measured in a deterministic way, so reports reflect the real customer journey across channels. Strong privacy framework. Eulerian is built for compliance with European rules and highlights CNIL exemption, GDPR alignment, and a first-party approach that keeps data under the brand's control. This helps teams respect consent choices while still measuring performance. Adaptable setup. Eulerian is "server-side ready" and offers many connectors to send data into BI tools, ad platforms, and activation tools from the same dataset. This helps keep measurement stable as browsers change. How server-side tracking with Eulerian and Stape works In a typical setup with Stape and Eulerian, the flow looks like this: A user visits your website. Web GTM fires tags such as GA4 tags in the browser and sends events to the server GTM endpoint on a subdomain like anything.yoursite.com, which runs on a cloud server hosted by Stape. Inside the server container, the GA4 client receives the event. The Eulerian server-side tag template reads the event data (for example, page_view, add_to_cart, purchase) and any extra parameters you pass, such as order value or user identifiers. The server container sends a request from the cloud server to your Eulerian data collection domain (for example, sdf475.eulerian.io). Because collection is first-party and server-side, it is less affected by browser limits and ad blockers. Eulerian Marketing Platform stores and unifies these events. You can then use its reports for attribution, analytics, and activation, using the same dataset to understand which channels drive revenue and where to adjust spend. ![image](https://cdn.stape.io/i/695b9776bd7f0404263069.png) Prerequisites and setup steps for using Eulerian with the Stape-hosted server GTM Prerequisites Before you start the setup, make sure you have everything ready for the server container and the Eulerian integration: ⦿ A Google Tag Manager account with a server container. ⦿ [A Stape account with a hosted container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). ⦿ Access to both GTM and Stape. ⦿ Your Eulerian data collection domain (e.g., sdf475.eulerian.io) was provided when your Eulerian account was created, you can create a free account: European Platform : [https://routing.api.eulerian.com/?partner=stape](https://routing.api.eulerian.com/?partner=stape) Canadian Platform : [https://routing.api.eulerian.ca/?partner=stape](https://routing.api.eulerian.com/?partner=stape) ![Running container on Stape](https://cdn.stape.io/i/695b994e7d9ec392890715.png) Step 1. Open your server container in GTM 1. Go to [tagmanager.google.com](https://tagmanager.google.com/). 2. Select your server container hosted on Stape. 3. You should see Server indicated near the container name. ![Server container on tagmanager.google.com](https://cdn.stape.io/i/695ba21410104552110021.jpg) Step 2. Install the Eulerian template 1. In your GTM workspace, open Templates → Tag Templates. 2. Click Search Gallery. 3. Type [Eulerian Marketing Platform](https://tagmanager.google.com/gallery/#/owners/EulerianTechnologies/templates/gtm-ss-eulerian-analytics) in the search bar. 4. Click Add to Workspace to install the template. ![Templates on tagmanager.google.com](https://cdn.stape.io/i/695bafded1618163012090.png) ![Eulerian template on tagmanager.google.com](https://cdn.stape.io/i/695bb11f83a79428988932.png) Step 3. Configure the tag 1. Go to Tags → New. ![image](https://cdn.stape.io/i/695bb27785302622457784.png) ![Tags on tagmanager.google.com](https://cdn.stape.io/i/695bb293ced18950350553.png) 2. Select the Eulerian Marketing Platform template. ![Use the Eulerian template to configure your tags](https://cdn.stape.io/i/695bb30ca4139334677671.png) 3. Go to your custom provided interface to get your data collection domain. ![Eulerian dashboard](https://cdn.stape.io/i/695bb346a078d219369284.png) 4. Enter the data collection domain in the Name of the target domain on [https://tagmanager.google.com](https://tagmanager.google.com). ![Add the target domain from your Eulerian dashboard](https://cdn.stape.io/i/695bb4c18d5cb552871222.png) 5. Save the tag. Step 4. Set up triggers To ensure data is sent correctly to Eulerian, configure triggers in the server GTM: Global trigger: Use the All Pages trigger so all GA4 events go to Eulerian. Client should be GA4. Specific triggers (optional): For example, purchase, add_to_cart, or generate_lead events. ![image](https://cdn.stape.io/i/695bb74606dbb466200895.png) ![Choose a trigger](https://cdn.stape.io/i/695bb76e6d762369064441.png) ![Save your trigger](https://cdn.stape.io/i/695bb78dbc5c9525515188.png) Step 5. Preview, test, and publish 1. Use the Preview mode in your server container to verify that data is sent to Eulerian. ![Click on the Preview mode](https://cdn.stape.io/i/695bb7ea2d5b5606161162.png) 2. In your Eulerian account, check real-time reports to confirm events appear. 3. Once verified, click Submit / Publish in GTM. Best practices for server-side tracking Keeping your server setup consistent helps the integration work smoothly over time. Before wrapping up, here are a few simple practices that make the setup more stable and easier to maintain. Keep your server container and Stape hosting up to date. Ensure your GTM server container is correctly linked to your custom domain. Stape helps [configure the domain](https://stape.io/blog/dns-configuration-for-custom-domain) and SSL so events can reach the server reliably. Regularly test your setup using GTM's preview mode before making changes. --- # Server-side tracking for iGaming industry Source: https://stape.io/blog/server-side-tracking-for-igaming Server-side tracking for iGaming is a powerful iGaming tracking solution that boosts data accuracy, bypasses ad blockers, and provides insights. Accurate digital marketing attribution is the key to effective online advertising in many industries, and iGaming is not an exception. ![image](https://cdn.stape.io/i/694ba9582ee40701390630.png) Even though user journeys in this industry are entirely different, the challenges are still the same: how to ensure that the most important conversions are correctly attributed to marketing campaigns; how to track "big wins" and first deposits if the source of signal for such events can be on a third-party platform; how to deliver accurate signals to advertising and analytics platforms to make informed decisions on time. The iGaming tracking solution lies in the correct stitching of signals from different sources, and that’s where Stape can help you. With server-side tracking and a scalable NoSQL database called [Stape Store](https://stape.io/solutions/stape-store), you can preserve click IDs necessary for attribution and properly deliver them to any advertising and/or analytics platform. Also considering the nature of the iGaming industry, where users might be using ad blockers more often compared to other verticals, Stape's [Custom Loader](https://stape.io/solutions/custom-gtm-loader) is the perfect solution to achieve close to 100% accuracy of event tracking and is less likely to lose valuable conversions. Key user journey events and tracking solutions for iGaming conversion attribution Let's review the typical user journey in the iGaming industry and its key conversions - they include but are not limited to sign up, first time deposit (FTD), 'big wins', etc. Not all of these events occur on the operator's website. Some can only be triggered by third-party services, so we need to build specific logic to track these events and report them to the destinations with the proper payload. A fair warning: you should have some level of control over either your CRM or the third-party services that manage users' deposits or payment providers. We need a system that can send us a signal when something happens, such as an increase in deposits, a win, a sign-up, etc. Let's dig deeper into possible scenarios and potential solutions you can introduce to improve ad attribution from the different channels, particularly what events and payload you should report. Sign up / Login The user must have an account to proceed with playing games. As an operator, you should keep track of your users, so sign-up (login) is the very first touchpoint where you can start tracking your users who are already de-anonymized. The easiest and most reliable way is to create a dataLayer push that will trigger the necessary tags in your web GTM container. Besides the event name, this dataLayer push should contain all the relevant information from your CRM about this user - first name, last name, email address, your internal persistent user ID, and any other information that you consider important to report to the advertising network and/or analytics (game level, deposit, etc.). * Along with the sign-up or login event, you might consider storing necessary advertising info like click IDs and/or UTM tags in Stape's database - [Stape Store](https://stape.io/solutions/stape-store). For example, use a persistent user ID and store under such a user ID all the cookies from the possible destinations - that can be FB click ID, Google Ads click ID, or any affiliate network click ID. We will be able to use it later on in lower funnel events. You can read detailed articles on Stape Store in our blog:1. [Building a custom CDP and enriching event data using server-side GTM](https://stape.io/blog/building-a-custom-cdp-and-enriching-event-data-using-server-side-gtm)2. [Stape Store use cases: how it supports your tracking needs](https://stape.io/blog/stape-store-use-cases) First time deposit (FTD) It is a common practice to give new users a deposit they can spend to get acquainted with your games. Once they spend it and want to continue, it is time to top up the deposit. There are numerous ways and approaches this particular action may happen; here, we'll review one of the most straightforward ones, so you can get the idea and adjust it according to your needs or situation. If the user shows the intention to top up their balance, they'll be redirected to the payment service provider to select the preferred payment method and complete the purchase. Once the transaction is successful, you should receive some sort of signal from the payment service provider. Depending on the trigger you can set up, further methods may vary. Here we'll consider that the payment services provider updates the balance of the user in your CRM. Now you need to set up a webhook or automation that will send the FTD event, the user data, and any other important information, like the deposit value, to the server GTM container. You are welcome to read our detailed article: [What are webhooks, webhook servers, and how to use](https://stape.io/blog/webhook-server). Now that we know that the FTD event has happened, it is time to report to the destination with previously stored click identifiers for proper campaign attribution. Use the user ID received from the webhook, and look it up in Stape Store. In response, the [Stape Store Lookup variable](https://stape.io/solutions/stape-store-lookup-variable) returns, you'll find all previously stored information like click ID values. Now you can report the FTD event to the necessary destination. For example, the majority of affiliate networks require only several parameters, like value, currency, and click ID. This click ID is the essential parameter to attribute this conversion back to the advertising campaign, which, in the end, is our goal. Thus, you'll have accurate information on which campaign performs well and which does not, so you can make informed data-driven decisions on how to allocate your marketing budget. At the same time, you should write to Stape Store a new parameter for this particular user - something like ftd: true, so the next time when the balance is topped up, you know that it's something else, that the FTD has already happened, and apply a different logic when firing your events for building audiences. You may keep track of the second, third, and all the further balance changes if you need to, if that somehow affects your marketing decisions. Feel free to store any additional data that, in the future, might help you decide which campaigns will suit a user who performed specific actions. "Big win" This event can be called differently for each operator, but the idea is the same - the user has won the game, and you can assign them to a specific audience to start running different kinds of campaigns. The deposit amount that defines a significant win is up to an individual operator, but the idea is the same - whenever the balance is increased, another webhook/automation is triggered that reports this event to sGTM. You apply the same logic, looking up for click IDs in Stape Store and reporting this conversion to all required destinations. But in this case, you need to differentiate whether the balance was topped up via the payment service provider or via the game itself (the "win"). You should apply different logic while building the webhook or automation, while the logic on sGTM remains the same. You can also keep track of the number of wins in Stape Store and report different conversions depending on the information stored. This is what you control and define, and what allows you to be highly flexible when reporting different kinds of conversions, to improve your marketing efforts and have accurate data in your advertising/analytics platforms for the best possible data-driven decisions. Summing up Server-side for the iGaming industry has lots of potential to unlock previously missed conversions due to missing attribution data. [Stape's Custom GTM Loader](https://stape.io/solutions/custom-gtm-loader) will help to track more users who want a cleaner game experience and use ad blockers to deter annoying ads, so you'll never miss another valuable conversion. Moving to conversion tracking off your [CRM](https://stape.io/blog/send-data-stape-conversion-tracking-crm-apps-guide) is the most reliable and accurate way to keep track of the user's progress across your games, and at the same time, you'll never miss an important click ID that is required for proper ad attribution. Your campaigns will receive near-real-time, complete conversion data so that you can take necessary actions always on time. Since your CRM has all the user information always up to date, you can report it to the [advertising platforms](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking) that support user data and increase [event match quality](https://stape.io/blog/how-to-improve-event-match-quality-facebook) to optimize the platform's algorithms better and deliver your ads to people who will most likely convert. Please feel free to reach out to us, and we'll be happy to find the most effective way server-side can benefit in your particular case. --- # Website tracking and analytics audit made easy Source: https://stape.io/blog/website-audit Get a free website audit with Stape using Website Tracking Checker to find tracking issues and improve site performance. Key takeaways Website analytics and tracking audits focus on data collection: events, tags, cookies, and page speed. They help you see if tools like GA4 and Meta receive complete and reliable data so that you can make better budget decisions. [Website Tracking Checker by Stape](https://stape.io/website-tracking-checker) gives you a free tracking audit, plus step-by-step tips on how to improve tracking configuration. You can use the Website Tracking Checker as a repeatable checklist: scan, fix issues, rescan, and share reports with your team or clients. What is a website audit? A website audit is a structured review of how your site performs and how it is built. It usually checks: Technical health: page speed, mobile use, status codes, internal links. Content: if pages are clear, complete, and easy to read. SEO: how search engines can crawl, index, and rank your pages. UX: how simple it is for visitors to move, read, and convert. Different teams run different types of audits. An SEO consultant looks at content and indexation. A performance engineer focuses on load times. A tracking specialist checks analytics and tags. In this article, we focus on tracking and analytics: how your website sends data to tools like GA4, Google Ads, and Meta through pixels, tags, and server-side tracking. What is a tracking and analytics website audit? A tracking and analytics website audit is a review of how your website collects and sends data to analytics and ad platforms. It answers questions like: Is GA4 installed correctly on all key pages? Are events like purchases, signups, and form submits tracked once, with correct values? Do Meta and Google Ads receive the events they need to optimize campaigns? Are cookies and consent banners set up in a compliant way? Do tracking scripts slow the site? This type of audit looks at the full measurement flow: from the browser, through tools like Google Tag Manager, to analytics and ad platforms. For server-side tracking, it also checks how events go from the browser to a [server Google Tag Manager container on a cloud server](https://stape.io/gtm-server-hosting) and then to platforms via APIs. The goal is simple: see if your current tracking setup can support reliable reporting and better media decisions. ![Find missing events and fix tracking issues](https://cdn.stape.io/i/69494a343ccc1233673041.png) Benefits of website analytics and tracking audit A tracking and analytics audit helps you understand how your website actually collects and sends information. It gives you a clear view of which events are recorded, which ones are missing, and how this affects reporting and ads. These are the main benefits you get from running this type of audit: More reliable reporting Tracking audits help you see gaps and double-counts in your data. Without this, specialists may trust numbers that are wrong, which may cost organizations a lot of money, and is a major problem for marketing data. After an audit, you know which numbers are safe to use and which need fixing. Less wasted ad budget When events are missing or wrong, ad platforms cannot optimize well. A study by Forrester and Investis Digital found that marketing and advertising technologies not working well together lead to about 12% of ad budgets being wasted worldwide. A tracking audit shows, for example, that: Purchases are not sent to Meta from some devices. Google Ads receives duplicate conversions. High-value events miss important parameters like currency or value. You fix these issues, and platforms can use better signals to find customers, which helps your return on ad spend. Clear view for decisions Gartner found that marketing teams use analytics in only about [53% of their decisions](https://www.gartner.com/en/newsroom/press-releases/2022-09-15-gartner-survey-reveals-marketing-analytics-are-only-influencing-53-percent-of-decisions), mostly because the data is hard to manage or incomplete. With an audit in place, your team can answer: Which channel brings real conversions and not only clicks. Which campaigns drive revenue after returns, not just first orders. Which countries, devices, or creatives convert better. This makes budget discussions more fact-based. Better page speed and user experience Tracking audits also look at how scripts affect performance. Some tags can be moved to server-side setups, which reduces the number of scripts running in the browser and can improve load times. Faster pages usually mean better UX and can support conversion rate. Easier cooperation between marketing and tech A good audit report is easy to share with developers, agencies, and business owners. It describes: What is broken or missing. Why it matters for data and campaigns. What steps to take to fix it. This removes many misunderstandings between teams. ![Get clean and reliable reports after fixing your setup](https://cdn.stape.io/i/69494e8c9f2e0794463905.png) Best website tracking audit tool and its benefits You can run tracking audits manually with browser consoles, network tabs, and long spreadsheets. But this takes time and requires technical skills. [Website Tracking Checker by Stape](https://stape.io/website-tracking-checker) gives you a faster and simpler way. It helps you analyze the tracking health of your website and provides insights on how to improve tracking quality for both web and server-side tracking. What the Checker reviews Analytics: checks how tools like GA4 are set up on your site and how they send events from key pages. Advertising: reviews how your setup sends events to Meta, Google Ads, and other ad platforms. Cookies: audits cookie lifetime, consent mode configuration, and basic compliance with privacy rules. SEO-impacting scripts: detects tracking scripts that slow your site and show which ones can move to server-side to reduce load on the browser. Main benefits for your team Free, fast audit: you only enter a URL, and the scan usually takes up to two minutes. Clear tracking score: you get one overall score plus separate scores by area, so you can see where to start. ![Tracking score](https://cdn.stape.io/i/69494f60e5f41239659113.jpg) Practical recommendations: the report gives concrete steps on how to make your tracking better. ![Recommendations](https://cdn.stape.io/i/69494fdddbfbb238640532.png) Works for agencies and in-house teams: you can scan any publicly accessible URL, use the report as a checklist, and share it as a deliverable or pre-audit. Competitive benchmarking: the tool analyzes the performance of your competitors and provides a benchmark. ![Tracking checker competitors comparison table](https://cdn.stape.io/i/69930f3007c3d935312009.png) Measurable gains: after applying fixes from Stape's Website Tracking Checker, many setups can reach up to 40% more tracked conversions, 35% better data quality, and 20% faster page speed. How to perform a website tracking audit with Stape You can use this process on your own site or on a client site. 1. Define what you want to check Write down your goal for this audit: for example, confirm that purchase and lead events fire on the right pages. List the pages you want to test: homepage, main landing pages, product pages, checkout, and confirmation page. Plan to check them page by page, since the scan runs on a single URL at a time. Make a short list of tools you use: GA4, Google Ads, Meta, TikTok, CRM, consent platform, etc. This helps you read the report with context. 2. Open Stape's Website Tracking Checker Go to [https://stape.io/website-tracking-checker](https://stape.io/website-tracking-checker). Paste the URL you want to scan and start the audit. You can scan as many publicly accessible URLs for free as you want. 3. Wait for the scan to complete The audit usually takes up to two minutes. During this time, the Checker analyses: Which analytics and ad scripts load. How cookies behave. Which scripts can affect SEO and speed. When the report is ready, you will see an overall score and detailed sections. 4. Obtain the overall score The overall score shows the general health of your tracking setup. High score (80–100): your setup follows many best practices, but there can still be areas to refine. Medium score (50–79): some important parts of your tracking work, but you likely miss events or send incomplete data. Low score (0–49): tracking needs attention, and you should plan fixes soon, especially before high-season campaigns. 5. Go through each section Use the detailed sections to plan your actions. Analytics: check if GA4 and other analytics tools are set up on the right pages and if your tags send the events you want to measure, like purchases, leads, and signups, with the right value and currency. Fix missing events or duplicated tags in your web container or server container. Advertising: verify that purchase and lead events reach platforms like Meta and Google Ads with value and currency. If the report suggests server-side tracking, plan how to Cookies: review lifetime, consent settings, and how cookies relate to analytics and ads. Align this with your consent banner rules. SEO-impacting scripts: check scripts that slow the website. Decide which ones to move to server-side or delay so that the main content loads first. 6. Fix issues with GTM and your platforms After reading the report: Follow the steps in the Recommended actions section of the report to improve your setup. Use Google Tag Manager's preview and debug mode to test tags that need changes. Update web and server containers, remove duplicates, and correct triggers. Adjust platform settings in GA4, Google Ads, and Meta so that event names and parameters match best practices. Fix issues with GTM and your platforms For complex changes or for clients with many sites, you can also consider [Stape Care](https://stape.io/care) if you need expert help with implementation. 7. Rescan and compare When changes are live: Run Stape's Website Tracking Checker again for the same URL. Compare the new score and recommendations with the old ones. Save both reports so that you can show progress to your team or client. You can keep using the Website Tracking Checker as a regular monitoring tool, for example, after big site releases or campaign launches. ![Monitor tracking regularly](https://cdn.stape.io/i/694952825c506864663513.png) Web analytics and tracking audit checklist These points are meant to go together with your Stape Website Tracking Checker report. Read the report first, then walk through the checklist and compare it with your current setup. It can help you see what already works, what needs a quick review, and what should be updated next. Analytics GA4 tracking added on all important pages (not only the homepage). [Main events tracked](https://stape.io/blog/what-is-event-tracking-in-ga4-a-guide-to-boosting-your-data-insights): page_view, add_to_cart, begin_checkout, purchase, lead, signup, or similar. Event parameters set: value, currency, items, transaction ID, where needed. No double-counting: purchase and lead events fire once per real action. Time zone, currency, and domains configured correctly in GA4. Advertising and server-side tracking Meta, Google Ads, and other ad platforms receive core events from real user actions, sent from the site to your server Google Tag Manager container, and then to the platforms. Events in ad platforms match GA4 numbers within normal limits for each channel. Conversion events use clear names and are linked to campaigns. Server-side tracking used for the main platforms or planned. Events from the browser and server are not sent as separate duplicates without deduplication logic. Cookies and consent Consent banner appears where needed and is easy to understand. Cookies linked to analytics and ads respect the user consent status. No high-risk third-party scripts run before consent on sensitive pages. SEO and performance Tracking scripts do not block the main content from loading. Heavy scripts are moved to the server-side where possible, or loaded later. Core Web Vitals are tested regularly after significant tracking changes. Monitoring and maintenance Regular scans with Website Tracking Checker by Stape, for example, once per month or before big campaigns. Clear owner for tracking: one person or team is responsible for reviews. Change log kept for major tracking changes so that you can link data shifts to edits and keep [debugging and monitoring of your server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) organized. Note: another tool that provides [automated website tracking monitoring](https://stape.io/blog/monitor-website-tracking) is Stape’s Monitoring feature. After configuring the rules, you’ll receive alerts when the tracking setup breaks, so you can fix the problems early. Analytics and tracking audit vs SEO website audit Analytics and tracking audits and SEO audits often happen at the same time, but answer different questions. Analytics and tracking audit: "Is our data collection correct and complete enough to support decisions and ad optimization?" SEO website audit: "Can search engines crawl, index, and rank our pages, and is our content optimized for the right queries?" Where they overlap: Some tracking scripts can slow pages, and both audits will notice this. Poor tracking can hide the impact of SEO work on conversions. Moving heavy scripts to server-side can help both performance and SEO. SEO work brings traffic. Tracking and analytics reports show what this traffic does and how it converts. FAQs Can I run a free audit with Stape's Tracking Checker a few times? Yes. The Website Tracking Checker by Stape is a free tool. You can scan any publicly accessible URL, including your own site and client sites. Many users run several scans while they fix issues: first to see problems, then again after updates to confirm that the score and recommendations improved. How long does it take to run the audit? The Website Tracking Checker usually takes up to two minutes to finish the scan and show your report. Time can change a bit based on page size, scripts on the site, and network conditions, but in most cases, the report appears quickly. Do I need technical knowledge to audit a website with Stape's Website Tracking Checker? You do not need technical knowledge to start an audit with Website Tracking Checker by Stape. You only enter the website URL, start the scan, and read the report with scores and recommendations. The tips are written in simple language, so marketers and business owners can understand what needs to be changed. For more complex fixes in GTM or server-side setups, you can work together with your developer or with Stape Care. --- # Digital Omnibus: What you need to know & steps before rollout Source: https://stape.io/blog/digital-omnibus-explanation End of cookie consent fatigue? The Digital Omnibus unifies EU data laws and introduces automated consent via browsers. Check why you need server-side tracking. Key takeaways: The Digital Omnibus is an EU proposal aimed at amending and consolidating major data regulations to simplify compliance. The first public discussions are expected in 2026. A key proposal is modernizing cookie rules by introducing automated consent choices via web browser or app settings. The goal: deal with "consent fatigue." For digital marketers, benefits include the potential elimination of required cookie banners and accelerated AI development for personalized campaigns. Marketers face risks of collecting less data because users could pre-define rejections across all sites. The compliance with data minimization for AI datasets can be challenging. Server-side tracking would become essential to ensure compliance with principles like data minimization and secure data flows. What is the Digital Omnibus Regulation Proposal? ![Digital Omnibus](https://cdn.stape.io/i/69451e774a800619624897.png) Digital Omnibus Digital Omnibus is a list of proposals aimed at amending data regulations. The European Commission published the [Digital Omnibus Regulation Proposal](https://digital-strategy.ec.europa.eu/en/library/digital-omnibus-regulation-proposal) in November 2025. It introduces amendments across the EU's data protection, data sharing, and cybersecurity regulations to eliminate overlapping requirements and provide clearer guidance on how these rules interrelate. Please note: The proposal is at the start of the legislative procedure. The first public discussions and progress in the legislative process are expected in early 2026. Key changes proposed by Digital Omnibus Proposal | Description Modernizing cookie and tracking rules | The aim is to reduce “consent fatigue”. The proposal introduces a “single-click” reject option - a mechanism for automated and machine-readable consent choices (e.g., via web browser or app settings). The exception: Media service providers (e.g., national newspapers' websites, TV channels' video platforms) could maintain direct interaction with users on consent choices. Lawful basis for AI | Amendments to clarify the definitions of "personal data" and "scientific research" to simplify the legal basis for processing data to build and run AI systems. "Report Once, Share Many" principle | The creation of a single-entry point for security incident reporting managed by ENISA. The ENISA would route the data to relevant national authorities. Consolidation of the EU data regulations | The proposal repeals three acts: the Free Flow of Non-Personal Data Regulation (FFDR), the Data Governance Act (DGA), and the Open Data Directive. Certain rules from these acts can be merged into the amended Data Act. Cookie regulations, which are now governed by the e-Privacy Directive, could move into the GDPR. Simplified compliance obligations for Small Mid-Cap companies (SMCs) | Companies with up to 499 employees (or €100 million in turnover) would get simplified technical documentation requirements, limits on fines, and priority entry into regulatory sandboxes. What does it mean for digital marketers and business owners? 👉 Quick note: AI browsers are taking consent automation a step further. Some can already block tracking scripts by default. Read more about [how AI browsers are impacting data accuracy](https://stape.io/blog/ai-browser-tracking). For digital marketing specialists and business owners, the Digital Omnibus could provide numerous benefits and simplify data collection/management/processing. On the other hand, if it comes into force, they could face challenges connected with data collection and its security. Potential benefits Eliminate the need for cookie banners. If a mechanism for automated consent choices via web browser/app settings were implemented, there would be no need for adding [cookie banners](https://stape.io/blog/cookie-banner-all-in-one-guide) for every website. The reason for such a move: cookie banners are annoying for website users (according to [research published on ResearchGate](https://www.researchgate.net/publication/360866641_Cookies_), most find banners annoying, but prefer having choices - 88% expect at least one opt-out option). If the banner is poorly designed, behavioral metrics (such as time on page, bounce rate) can drop. Creating automated user choices can remove such a problem for website owners. Accelerate the development of artificial intelligence systems. Providing the legal basis for data processing by AI could accelerate and simplify systems development for marketing purposes (audience segmentation and/or running personalized marketing campaigns). Unified security incident reporting. For businesses dealing with security or data breaches, it should be easier to report cybersecurity incidents. If a Single Entry Point (SEP) is adopted, the companies would submit one report to a central EU portal. No need to submit separate, overlapping notifications under different regulations, which reduces administrative work. Easier to conduct business operations. The digital wallets, as part of the EU Digital Omnibus, would accelerate cross-border business operations, simplify paperwork, and save money for European companies by reducing administrative burdens. The simpler EU digital rules. Instead of managing compliance across four regulations, businesses could primarily focus on two regulations: the [GDPR](https://stape.io/blog/server-side-tracking-gdpr) (for personal data) and the amended Data Act (for non-personal and organizational data). This reduces the complexity of legal mapping and internal compliance checks. Potential risks Lower impact on user consent and potentially reduced volume of data collected. With cookie banners, website owners could test different options to increase the consent rate; they had direct influence on the cookies that visitors can accept. If the users pre-define (via web browser or app settings) the cookies they reject, these selections will be applied to all websites they visit, and the companies can end up collecting less data. Protection of sensitive personal data. Developing general-purpose AI models can become simplified, but at the same time, data collection, storage, and usage requirements could be more challenging to comply with. The requirements for European companies or those aiming at the EU market include respecting data minimization during the source selection, training, and testing of the AI system; implementing protections against the non-disclosure of retained data in the system; and providing transparency to data subjects. Technical compliance with automated user choices. Although the Digital Omnibus proposal doesn't provide the standardized requirements on how automated user choice should technically be implemented on the website's side, there are assumptions that it could work similarly to the Global Privacy Control (GPC). Currently, not all Consent Management Platforms (CMPs) support GPC, so business owners may face difficulties implementing them to receive a signal on user consents. ![Digital Omnibus risks and benefits](https://cdn.stape.io/i/6945211d2bbef600175251.png) Digital Omnibus risks and benefits Why server-side tracking would become essential Before starting, it is important to note that the EU Digital Omnibus regulation doesn’t mandate a switch to server-side tracking; this section is aimed at highlighting the challenges the marketers may face and how server-side tracking can help overcome them. If the digital package is passed in the form that is currently publicly available, the[server-side tracking](https://stape.io/) can help stay in compliance with the regulations while collecting data. [First-party data](https://stape.io/blog/first-party-data) collection is the key shift that can be noticed over the past years; it has become a [trend in digital marketing](https://stape.io/blog/digital-marketing-data-trends). The EU's proposed changes, along with trends, push marketers toward switching to server-side tracking. The Digital Omnibus focuses on general data protection regulation mechanisms that client-side tracking struggles to meet without data loss/security vulnerability: Data minimization Secure data flows Both principles are required to follow while collecting data, particularly for training AI systems. Data minimization. The regulations could demand that marketers only collect the minimum data necessary. Client-side tracking isn't a flexible approach to data gathering. Third-party data-collecting scripts can gather all available data (IP address, browser type, device identifiers, etc.) right away. Such an approach violates the principle of data minimization. Secure data flows. Client-side tracking is vulnerable to browser exploits and man-in-the-middle attacks, as the data is sent directly from the user's browser to third-party services. With server-side tracking, the data is collected and processed in your server environment before it is forwarded to any third-party platform. This reduces the attack surface available to external threats. We don't know what exact approach will be selected to ensure automated user choice. Still, the thing is clear - business owners can have less impact on the users' consent preferences and the volume of data they collect. In this case, server-side tracking can help keep the balance between data collection and regulation compliance. A server-side tracking solution provides complete control to comply with signals on consent (by blocking sharing), and at the same time, it can help you achieve higher data accuracy due to bypassing ad blockers and browser restrictions. ![Impact of server-side tracking](https://cdn.stape.io/i/6945222f9ba44480169960.png) Impact of server-side tracking Steps to take before the EU Digital Omnibus rollout Audit your Consent Management Platform Since the implementation mechanism of automated user choice hasn't been published yet, it is just guesswork based on the currently available technologies. The [research](https://arxiv.org/pdf/2512.08856) states that Global Privacy Control (GPC) can be mapped to the various legal bases for processing under the GDPR and can become a prototype for automated user choice adoption in the EU. Currently, GPC has an explicit legal requirement under laws in the USA ([CCPA/CPRA](https://stape.io/blog/how-global-data-privacy-laws-affect-user-tracking-strategies)) only. ![How Global Privacy Control works](https://cdn.stape.io/i/694522c80d420589510150.png) How Global Privacy Control works For now, you can check whether your CMP supports GPC, and you may test how it works for your case. The CMS platforms can have a separate option to activate GPC signal receiving. Another option is a separate toggle to activate compliance with the USA data privacy regulations, for example, as in [iubenda](https://stape.io/blog/set-up-consent-management-gtm-iubenda): ![US State Laws toggle in iubenda](https://cdn.stape.io/i/69452336731d8905734965.png) US State Laws toggle in iubenda For the test, you will also need to activate the GPC within your web browser or install a browser extension that sends the GPC signal. A few browsers currently support GPC: Brave, DuckDuckGo Browser, and Mozilla Firefox. For other browsers, you can use extensions such as Privacy Badger, OptMeowt, and Dedicated GPC Enabler. Consider implementing server-side tracking [Configuring server-side tracking](https://stape.io/blog/how-to-start-with-server-side-tracking) is a good strategy to follow before the EU Digital Omnibus rollout. Although it may have additional adjustments, the commitment to safeguarding the fundamental rights of website users will be preserved. Collecting and processing data in a secure server environment is the most effective way to implement the mandatory data minimization and protection rules required for AI datasets. Server-side tracking helps filter, pseudonymise, and protect sensitive data from leaking. In addition, with its help, you can track more data while staying compliant (server-side tracking allows you to minimize the impact of [ad blockers](https://stape.io/blog/bypass-adblock-detection) and browser restrictions). With server-side tracking, a cloud server acts as a proxy between your website and any third-party tools. Your site sends data to the cloud server first, and the server then forwards that data to third-party vendors and tracking platforms. ![How server-side tracking with a cloud server works](https://cdn.stape.io/i/6945239157adc169325177.png) How server-side tracking with a cloud server works Stape provides [hosting for server GTM containers](https://stape.io/gtm-server-hosting) as well as numerous [solutions to smoothly implement server-side tracking](https://stape.io/solutions). Check our guides to get deeper into the topic of server-side tracking and decide if it works for you: [What is server-side tracking?](https://stape.io/blog/what-is-server-side-tracking) [Server-side tagging vs client-side tagging](https://stape.io/blog/server-side-tagging-versus-client-side-tagging) [Server-side tracking benefits: what it is and why it matters](https://stape.io/blog/benefits-server-side-tagging) [Benefits of Stape hosting for the server Google Tag Manager](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server) What’s next? The Digital Omnibus is still at the proposal stage, but political and economic factors suggest that reforms in EU data collection and processing rules are on the horizon. The European Commission views the Omnibus as a necessary step to reduce the “compliance thicket” created by existing regulations. It is seen as limiting European businesses and preventing competitiveness with the US and Asia in fields like AI. The exact amendments and their timing are unknown, but some of the currently published proposals will likely come into force. Businesses and marketers should be ready to meet the changes, understanding both the opportunities they may offer and the challenges they can bring. --- # How to configure the MCP Server for Google Analytics 4 Source: https://stape.io/blog/mcp-server-for-google-analytics Simplify the GA4 management and data reporting with Stape’s solution. Find out how to implement the GA4 MCP Server in a few minutes. Key takeaways: The GA4 MCP server lets your AI app send requests directly to GA4 - returning reports, running commands, or querying dimensions and metrics. You only need Node.js (v18+) and an MCP-compatible AI client to configure it. Setup is done by adding the GA4 MCP server entry in the client's config file. You can also connect GTM and/or Stape MCP servers along with the GA4 MCP server; we show how to do it. After restarting the AI app, you authenticate with your Google account to grant access. A Running status confirms successful setup. How the GA4 MCP server works After you set up the MCP Server (MCP Server for Google Analytics 4), you can enter any request directly into your AI app (such as the Claude app). That request is then passed to the MCP Server through the MCP Protocol, the standard communication protocol for AI tools. Once the server receives the requests, it processes them, executing actions, running commands, or returning the requested data. Once the server receives the requests, it processes them, executing actions, running commands, or returning the requested data. Available tools include querying dimensions and metrics, allowing users to analyze user behavior and traffic sources. ![How MCP Server works](https://cdn.stape.io/i/694273439bd70127428635.png) How MCP Server works 🐶 Do you use Claude for the MCP server configuration? If you're new to this topic, our [guide to Claude MCP](https://stape.io/blog/claude-mcp-guide) explains how AI assistants connect to external tools like GA4, GTM, and APIs, along with best practices for using MCP with Claude. Use cases of Google Analytics MCP Server The requests can cover nearly all GA4 reporting and administrative operations, including (but not limited to): Run GA4 reports. Retrieve historical and segmented data (dimensions, metrics, filtering, ordering), including analysis of conversion rates, average session duration, and traffic source performance. Get real-time reports. View current, up-to-date user activity on your site or app and analyze events in real time to identify trends or issues quickly. Generate GA4 account summary. Receive a complete list and overview of all properties you have access to. List Google Ads accounts connected to GA4. Returns a list of the Google Ads accounts linked to a specified GA4 property. Fetch property annotations. Retrieves the annotations (notes for specific dates/periods) created on a specified GA4 property. Pre-requires To configure the GA4 MCP server, you will need an AI app or agent (in our case, it is the[Claude app](https://claude.com/download)). How to configure Google Analytics 4 MCP Server? 1. Open Claude Desktop and go to Settings → Developer → Edit Config. ![Edit Config in Claude](https://cdn.stape.io/i/6a2fbc671662b690464016.png) 2. Open the configuration file that controls what MCP servers Claude can access and add the following configuration: { "mcpServers": { "ga4-mcp-server": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp-google-analytics.stape.io/mcp" ] } } } Save the changes (Command + S). ![claude_desktop_config file](https://cdn.stape.io/i/6a2fbcec10121205519807.png) Please note: if you are already using or would like to install MCP servers for other platforms, such as Google Tag Manager and/or Stape, you will need to update the configuration code by adding other MCP's code. Here is the example if you need to add [GTM MCP](https://stape.io/blog/mcp-server-for-google-tag-manager), [Stape MCP](https://stape.io/blog/stape-mcp-server-configuration), and GA4 MCP servers: Configuration code to add GTM, Stape, and GA4 MCP servers { "mcpServers": { "google-tag-manager-mcp-server": { "command": "npx", "args": [ "-y", "mcp-remote", "https://gtm-mcp.stape.ai/mcp" ] }, "stape-mcp-server": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.stape.ai/mcp", "--header", "Authorization: ${your_stape_api_key}" ] }, "ga4-mcp-server": { "command": "npx", "args": [ "-y", "mcp-remote@0.1.30", "https://mcp-google-analytics.stape.io/mcp" ] } } } Make sure you updated your_stape_api_key with your Stape API Key. To find it, go to your [Stape account](https://stape.io/login) → click on your account name and select Account settings → open the API Keys menu → enter a descriptive API key name and click Create API key. For security reasons, you can view the generated API key once (upon generation). For future use, be sure to write it down or save it on your device. ![Stape API key](https://cdn.stape.io/i/6942ae1f817d8358866599.png) 3. Restart Claude Desktop. 4. Once restarted, a browser window will be open. Select the Google account that has access to the Google Analytics property you want to modify with the MCP server. Complete the authentication flow to grant Claude access to your MCP server. ![Grant the access to Google Account](https://cdn.stape.io/i/6a2fbdcd56a3c213277114.png) Once access is granted, the tool will be available for your use. ![Successful authorization](https://cdn.stape.io/i/6a2fbe5a50631340812429.png) In Settings → Developer, you will see the status Running next to ga4-mcp-server. In case of problems with the setup, refer to the troubleshooting section below in this guide. ![GA4 MCP server running status](https://cdn.stape.io/i/6a2fbea0ab1a3358223464.png) Troubleshooting GA4 MCP server configuration MCP Server name length limit Some MCP clients (such as Cursor AI) have a 60-character limit on the combined length of the MCP server name and the tool name. If your configuration uses a long server name (for example, ga4-mcp-server-your-additional-long-name), some tools can be hidden or filtered out. To prevent this: use shorter MCP server names in your configuration (e.g., ga4-mcp-server). The MCP cache mcp-remote stores credential data in ~/.mcp-auth (or in the directory defined by your MCP_REMOTE_CONFIG_DIR). If you encounter persistent issues, try clearing the cached state and tokens. To clear the cache, run the following command: rm -rf ~/.mcp-auth Afterward, restart your MCP client. --- # 39% lower Google Ads CPA and 9+ Meta Match Quality with server-side tracking | Transparent Digital Services Source: https://stape.io/blog/transparent-digital-services-server-side-tracking-case-study A skincare brand fixed missing events, reached match quality 9, and recorded 4,512 GA4 purchases after moving to server-side tracking by Stape. Key takeaways: Transparent Digital Services used Stape to fix tracking gaps for a fast-growing skincare brand. The brand moved from client-side tracking to server-side due to missing events, low match quality, and unreliable reporting. The setup used a server Google Tag Manager container, Meta Conversions API and Google Ads API. GA4 recorded 1,724 purchases before deployment and 4,512 after deployment. Meta event match quality rose from 0-5 to above 9. The Google Ads cost per purchase dropped by 39.39% in April after the rollout. A fast-growing skincare eCommerce brand worked with our partner [Transparent Digital Services](https://stape.io/partner/transparent-digital-services) to fix tracking gaps that were blocking clear reporting across Meta, Google Ads, and GA4. Client-side tracking gave inconsistent numbers, low event match quality, and missed conversions. Server-side tracking on Stape helped solve this. Challenge: fix broken tracking and reporting across channels Before server-side, the brand had: Incomplete and inconsistent data from client-side setups only. Lost visibility on key events like purchases, add to cart, and product views. Inaccurate session tracking and double-counting from Google and Meta pixels added through Shopify apps, as both apps sent the same event twice. Poor match quality, with almost no match data in ad platforms. Problems tracking UTM parameters and real campaign impact. Extra issues from privacy and consent changes. These gaps made it hard to scale paid campaigns and trust platform numbers. ![Before choosing Stape](https://cdn.stape.io/i/6941595dda3a7064953042.png) Solution: switching to server-side tracking The brand needed one framework where all events were processed clearly and sent to platforms without browser loss. [Server-side tracking](https://stape.io/) through Stape gave: Higher control over what data is sent. One clean source of truth. Better match between site activity and ad platforms. No event duplication. More stable consent handling. The team chose Stape for the easy integration with Shopify and Google Tag Manager, fast setup, and stable long-term maintenance. If you're looking to prevent data loss on your own store, configuring a reliable [Shopify Google Ads conversion tracking](https://stape.io/blog/google-ads-conversion-tracking-for-shopify) setup ensures your campaigns receive accurate signals without relying on fragile browser-side tags. ![Why choose Stape](https://cdn.stape.io/i/69415af465ccd077573939.png) The setup used a server [Google Tag Manager container hosted on Stape](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). All browser events were sent to a cloud server, processed there, and then forwarded to platforms. The integration included: [Meta Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api). Google Ads API. UTM parameter tracking improvements. Early in the rollout, small differences between Google and Meta were fixed by adjusting GTM settings. After that, the setup ran smoothly and delivered stable, accurate reporting. Results: recovered conversions, increased Meta Ads performance, and more Only a few days after launch, the brand saw clear improvements: Higher data accuracy. A spike in paid-search sessions linked to cleaner event capture. Meta event match quality rose from 0–5 to consistently above 9. This showed a much stronger link between on-site actions and platform identifiers. Impact on Google Analytics GA4 recorded a strong uplift in purchases after moving to server-side: 1,724 purchases before deployment 4,512 purchases after deployment This confirmed that browser tracking was under-reporting real conversions and losing events due to consent and browser limits. Learn which metrics matter most in our [eCommerce KPI](https://stape.io/blog/ecommerce-kpis) guide. Data from server-side tracking was higher and more stable, giving the brand better reporting for analysis and budget planning. Better conversion efficiency Google Ads data showed a lower cost per purchase after the rollout: £18.15 in January £19.42 in February £11.97 in April The drop showed that better tracking sent stronger signals into Google's systems and cut cost per purchase by 39.39%. Conversion rate gains With stable tracking, the brand's conversion rate increased by 10%. This came from better attribution, higher match quality, and more accurate retargeting. Stronger Meta Ads performance Before server-side (1 Dec – 11 Mar): 1724 purchases £27,721 total spend £41.44 cost per purchase CTR 0.94% After server-side (12 Mar – 1 Jun): 3,807 purchases About £14 cost per purchase (about 40% lower) + 3.01 ROAS + 1.47% CTR Cleaner events helped Meta match more users, target better, and learn faster. ![Meta Ads Performance](https://cdn.stape.io/i/69416c701f30c410651309.png) Why choose Stape Server-side tracking on Stape recovers lost events and sends more complete data to Meta, Google Ads, and GA4. Custom Loader and Cookie Keeper help tags keep working across browsers and privacy rules. Built-in Analytics lets specialists see how better tracking can affect purchases, cost per purchase, and ROAS. Quick and easy setup. --- # 20 tools every marketing agency should know Source: https://stape.io/blog/tools-for-marketing-agency Explore the top 20 digital marketing agency tools for 2026 to optimize campaigns, improve efficiency, and deliver stronger results for clients' growth. Agencies don’t struggle because they lack tools; they struggle because they’re drowning in options. New platforms launch every month, promising faster setups, better attribution, or smarter creative workflows. So instead of adding to the noise, we created a clear overview of the tool categories that matter most in 2026, along with the solutions teams actually trust. We’ll cover four core categories: Audit & diagnostics Tracking, analytics & reporting Brand & creative production AI & automation (Plus a bonus category: web building, brainstorming & 3D design) Whether you’re growing your team, trying to make attribution clearer, or improving your creative work, these tools for digital marketing agency teams will help you scale, deliver efficiency, and produce higher-quality work. So, let’s start with the first category. Audit & diagnostics ![Audit & diagnostics](https://cdn.stape.io/i/693964e6773d0189093930.png) 1. Website Tracking Checker: site tracking health scanner Overview The [Website Tracking Checker](https://stape.io/website-tracking-checker) is a simple but powerful digital agency tool that helps you analyze the tracking health of your website and provides insights on how to improve tracking quality for both web and server-side tracking. Why this tool is valuable Without accurate tracking, you risk making decisions based on faulty data. A tracking checker helps you analyze the tracking health of your website and provides insights on how to improve tracking quality for both web and server-side tracking. That means fewer surprises when reports come in, and greater confidence in your analytics. Key features Analytics: verifies adherence to tracking best practices for platforms like Google Analytics 4. Advertising: evaluates how server-side tracking can improve ad attribution and ROAS. Cookies: checks cookie lifetime and validates consent settings using the cookie scanner. SEO: identifies tracking scripts on your site and measures their impact on page load speed. Highlights scripts that can be removed when using server-side tracking, with support from a free SEO checker. See what users say [Stape on Trustpilot](https://www.trustpilot.com/review/stape.io). [See what people say about Stape on Reddit](https://www.reddit.com/r/GoogleTagManager/comments/1jkroe6/curious_is_server_side_tracking_using_stapeio/). 2. SEO Spider Tool: technical SEO crawl diagnostics Overview [SEO Spider Tool](https://www.screamingfrog.co.uk/seo-spider/) from Screaming Frog is a staple marketing tool for agencies when it comes to crawling a website for SEO signals, broken links, duplicate content, and all the technical stuff that hides under the hood. Why this tool is valuable This is not just surface-level SEO; it digs deep. Agencies use it to run complete audits, generating insights that developers and strategists can act on. It makes site health visible, helping teams fix issues before they become bigger problems. Key features Broken Link Finder: detects 404s and server errors instantly. Redirect Checker: identifies temporary or permanent redirects and catches redirect chains. Meta Data Auditor: flags missing, duplicated, or poorly optimized titles and descriptions. Duplicate Content Spotter: finds exact and partial content duplicates across your site. JavaScript Crawler: renders and scans dynamic, JS-heavy pages with complete accuracy. See what users say [Screaming Frog on Trustpilot](https://www.trustpilot.com/review/screamingfrog.co.uk). [On Reddit, users discuss Screaming Frog as well](https://www.reddit.com/r/SEO/comments/1is35bs/is_screamingfrog_still_the_recommended_tool/). 3. Ahrefs: backlinks, keywords, content gaps analysis Overview [Ahrefs](https://ahrefs.com/) is one of the most popular digital marketing agency tools for SEO research, backlink tracking, and content strategy. It gives you everything you need to understand your SEO in one place. Why this tool is valuable Agencies rely on Ahrefs to understand how clients stack up against competitors: which keywords they could rank for, where their backlinks are coming from, and what content they’re missing. This helps build winning SEO and content strategies. Key features Backlink analysis and domain authority tracking Keyword explorer with volume, difficulty, and ideas Content gap analysis to find topics your competitors rank for but you don’t Rank tracking over time for specific keywords Comprehensive site audit for SEO issues See what users say [Ahrefs on Trustpilot](https://www.trustpilot.com/review/ahrefs.com). [On Reddit, users discuss Ahrefs as well](https://www.reddit.com/r/bigseo/comments/1mh9n4w/hi_bigseo_im_tim_soulo_from_ahrefs_its_been_10/). 4. Similarweb: competitor & market analysis Overview [Similarweb](https://www.similarweb.com/) is a powerful online marketing agency tool that gives an overview of traffic volumes, sources, and behavior for any website, including your clients’ competitors. Why this tool is valuableUnderstanding the competitive landscape is crucial. With Similarweb, you can benchmark clients’ traffic, spot leading acquisition channels in their industry, and discover new market opportunities. Key features Traffic source breakdown (organic, paid, referral, social, etc.) Competitor benchmarking and market share analysis Trend analysis across geographical locations and industries Engagement metrics: pages per session, bounce rate, session duration Audience demographic data See what users say [Similarweb on Trustpilot](https://www.trustpilot.com/review/similarweb.com). [On Reddit, users discuss Similarweb as well](https://www.reddit.com/r/AskMarketing/comments/1loy9ee/do_you_use_similarweb_regularly_and_if_so_how_are/). 5. Wappalyzer: stack identification Overview [Wappalyzer](https://www.wappalyzer.com/) is a digital agency tool that reveals the underlying technology stack of any website: CMS, frameworks, analytics tools, advertising tech, and more. Why this tool is valuable Knowing what tech a client or competitor uses helps your agency better plan integrations, make more realistic pitches, or even decide what to sell next. Key features Detection of CMS, JavaScript frameworks, analytics, and eCommerce platforms Real-time browser extension for quick site scanning Historical usage data to see how a stack evolved Exportable reports to support lead generation or competitive research Integration with lead-enrichment workflows See what users say [Wappalyzer on Trustpilot](https://www.trustpilot.com/review/wappalyzer.com). Tracking, Analytics & Reporting ![Tracking, Analytics & Reporting](https://cdn.stape.io/i/69396fd37a080767050572.png) Execution, attribution, and technical setup are at the core of [modern marketing tools for agencies](https://stape.io/blog/martech-tools). Without reliable tracking and transparent reporting, client ROI and campaign effectiveness suffer. 1. Stape Setup Assistant: free templates for GTM container Overview [Setup Assistant](https://stape.io/gtm-set-up-assistant) is a tool made by Stape that makes it easier to set up data tracking with Google Tag Manager (GTM). It creates ready-made templates for GTM based on the platforms you choose. After that, you can import these templates into your web and server GTM containers. Why this tool is valuable Stape Assistant is valuable because it allows you to launch your GTM setup quickly, skipping hours of manual work so you can focus on growth instead of configuration. It offers flexible tracking, letting you select the platforms and destinations you need and automatically generating GTM templates tailored to your configuration. The setup is expert-built, applying proven best practices from Stape experts. It is user-friendly, designed for marketers and business owners with no technical skills required to get started, and all these benefits are available free of charge. Key features Fully customized and pre-configured GTM setup tailored to your needs. Uses best practices for effective Google Tag Manager implementation. Launch your GTM container in minutes instead of hours. Step-by-step guidance allows setup even without technical skills. 2. GTM tools: sGTM configurations Overview [GTM Tools](https://gtmtools.com/) is a versatile solution for managing Google Tag Manager, designed for business owners, freelancers, and digital marketing or analytics specialists. It offers functions like container editing, downloading, cloning, and visualization, helping users organize and optimize their GTM containers efficiently. Why this tool is valuable The tool is made for anyone needing an easy tag management solution. It lets you organize, edit, clone, and view GTM container assets, saving time and effort. Key features Easy GTM container management with tools like Inspect (list view) and Visualize (map view) to see dependencies and edit settings. Multiple functions including Inspect, Visualize, Clone, and Workspace for structuring, duplicating, and updating containers. Container audit for web and server GTM setups, helping identify unused Tags/Triggers/Variables to optimize site performance. 3. Eyk: smarter attribution, clearer profits Overview [Eyk](https://www.eykdata.com/) helps agencies map how different marketing channels and touchpoints contribute to conversions. Why this tool is valuable Agencies can see what truly drives profit, track conversions accurately, and make smarter marketing decisions. Key features: Advanced attribution modelling for smarter, data-driven decisions Centralised profit insights that reveal proper revenue drivers First-party tracking & Conversion APIs to strengthen ad platform algorithms Unique data architecture powered by Google Tag Manager and BigQuery AI- and privacy-ready foundation to future-proof your business. 4. Supermetrics: unify your marketing data, power your decisions Overview [Supermetrics](https://supermetrics.com/) connects to all your data sources, like ad platforms, analytics, CRM, and pulls that data into Google Sheets, Excel, or Looker Studio so that you can build unified dashboards. Why this tool is valuable This tool cuts out the headache of manual reporting. Agencies can automate data pipelines, so reports update themselves, and teams can spend more time analyzing, not assembling. Key features: Connects 150+ data sources (Ads, Analytics, CRM, etc.) Automated report refresh and data syncing White-label dashboards to share with clients Budget pacing alerts if the spend is off track Secure, compliant data handling (GDPR, etc.) See what users say [Supermetrics on Trustpilot](https://www.trustpilot.com/review/supermetrics.com). 5. Looker Studio: reporting dashboards Overview [Looker Studio](https://lookerstudio.google.com/navigation/reporting) (formerly Google Data Studio) is the go-to online marketing agency tool for building dynamic, visual dashboards that clients can actually understand. Why this tool is valuable It offers clarity. Clients see real-time data in an intuitive format, and agencies can tailor dashboards to show precisely what matters: KPIs, goals, and performance. Key features: Drag-and-drop dashboard creation Multiple data connectors (via Supermetrics, directly, etc.) Scheduled report refresh and email delivery Brandable, white-label reports Real-time collaboration between agency and client See what users say [On Reddit, users discuss Looker Studio](https://www.reddit.com/r/GoogleDataStudio/comments/1lyjax6/is_looker_studio_still_in_demand_in_2025_real_use/). Brand Assets ![Brand Assets](https://cdn.stape.io/i/693972b4f2165547040888.png) These tools are designed for digital agencies to make work easier and faster. They help teams create eye-catching visuals, smooth and user-friendly experiences, and professional-looking brand materials. Everything you need is in one place to make your marketing more effective and impressive. 1. Adobe Illustrator / Adobe Photoshop / Affinity Designer: branding and illustrating Overview [Adobe](https://www.adobe.com/) has core creative tools for professional designers: Illustrator for vector work (logos, icons), Photoshop for image manipulation, and Affinity Designer as a powerful, often more affordable alternative. Why these tools are valuable These tools let agencies create polished, professional visuals that truly represent a client’s brand. From logos and icons to images for web or print, they help designers make high-quality, scalable assets quickly and efficiently. Key features: Vector design (Illustrator) for logos, icons, and scalable graphics Raster image editing (Photoshop) for more detailed composition and photo work Powerful layer and mask management Typography control and effects Affinity Designer offers professional-grade features at a lower cost Export in multiple formats (SVG, PNG, PDF, etc.) See what users say [Adobe on Trustpilot](https://www.trustpilot.com/review/www.adobe.com). 2. Figma Create: custom UX/UI and web design Overview [Figma](https://www.figma.com/) is a cloud-based design and prototyping tool for UX/UI. It’s built for collaboration: designers, clients, and developers can all work together. Why this tool is valuable It speeds up feedback loops, simplifies handoffs, and makes design changes transparent, which is perfect for agile or client-centric workflows. Key features: Real-time collaboration on designs Interactive prototypes with transitions Shared component libraries and design systems Developer handoff with code snippets and inspect mode Versioning and branching for safe experimentation See what users say [Figma on Trustpilot](https://www.trustpilot.com/review/figma.com). [On Reddit, users discuss Figma as well](https://www.reddit.com/r/UXDesign/comments/1eb7s5n/colleague_said_figma_is_a_waste_of_time/). 3. Canva: template-based design tool for non-designers Overview [Canva](https://www.canva.com/) makes design simple for individuals and teams. It allows businesses to create professional visuals, social media content, presentations, and print materials quickly, keeping brand identity consistent. With intuitive tools and AI features, teams can save time, collaborate efficiently, and maintain high-quality outputs across all projects. Why this tool is valuable It empowers content teams and account managers to produce on-brand visuals quickly, without waiting on a designer for every social post or presentation. Key features: Templates for presentations, social media, posters, and more AI-powered image, text, and video generation Real-time collaboration with comments and task assignments Brand management with logos, colors, and custom templates Print and digital outputs with direct ordering Access to a rich library of photos, videos, graphics, and fonts Flexible plans for individuals, teams, and businesses See what users say [Canva on Trustpilot](https://www.trustpilot.com/review/canva.com). [On Reddit, users discuss Canva as well](https://www.reddit.com/r/graphic_design/comments/1nwtors/do_professional_designers_actually_use_canva_if/). 4. Visme: a versatile content design service Overview https://www.cinema4d.pl/[Visme](https://www.visme.co/) is an all-in-one professional content design service. Created by professional designers to help people with no design experience meet their content design goals. Visme offers a wide-range of design services. Create infographics, charts, presentations, and everything in-between. Plus, there are plenty of AI features that impress with their quality. Why this tool is valuable With Visme, the content team and managers can forget about using the help of designers. This product allows creating different forms and types of visuals hustle free. Key features: Extract fonts, colors, and logos from your company’s website to build a custom brand kit Access thousands of professional templates across more than 50 content types Turn raw numbers into stunning, fully customizable charts and data widgets Generate ready-to-use presentations, documents, and graphics from a simple text prompt Apply built-in AI image generators and AI writing assistants for copywriting and content generation Tool integration with popular apps to boost your content creation Visme AI supports real-time collaboration, allowing teams to work from start to finish See what users say [Visme on Trustpilot.](https://www.trustpilot.com/review/visme.co) 5. Framer: web builder with stylish templates inside Overview [Framer](https://www.framer.com/) is a modern website builder trusted by startups and Fortune 500 companies alike. It enables teams to design, build, and launch responsive websites visually, with integrated CMS, SEO tools, analytics, and real-time collaboration, all without touching code. Why this tool is valuable Framer streamlines web production for agencies, letting them deliver polished, interactive sites faster. Its AI-powered layout generation, visual design tools, and integrated content management reduce development bottlenecks, improve client handoff, and scale projects efficiently. Agencies can maintain high-quality, dynamic sites while managing multiple clients seamlessly. Key features: AI-powered page layouts and advanced component generation Responsive design with smooth animations, interactions, and 3D elements Built-in CMS for effortless content updates Real-time collaboration and handoff-free editing Analytics, A/B testing, and performance tracking SEO optimization and fast, reliable hosting Access to community resources and Framer Marketplace components See what users say [Framer on Trustpilot](https://www.trustpilot.com/review/www.framer.com). [On Reddit, users discuss Framer as well](https://www.reddit.com/r/framer/comments/1n4z8ik/is_it_worth_learning_framer_in_2025/). Snov.io: an automation platform for marketers [Snov.io](https://snov.io/linkedin-automation-tools) is a sales automation platform primarily intended for B2B marketing and sales departments. It is utilized for finding prospective clients for the agencies, as well as conducting outbound email marketing campaigns from a single platform. Essentially, the software is utilized for the following tasks: cold emails, lead nurturing, and sales pipeline management. It is ideal for those marketing or sales firms that handle lead generation or outbound marketing services for their clients. Why this tool is valuable Snov.io cuts down on the workload associated with the use of multiple applications for prospecting, verification, and outreach. This platform plays an important part in the creation of a lead list to have a better-performing campaign and improved deliverability. Sequenced automated outreach saves a lot of time and still enables the personalization of messages at scale. Key features Email and lead discovery via domain, company, job title, or LinkedIn Email verification to lower bounce rate and enhance sending reputation Cold email automation for follow-ups and performance tracking Integrated CRM system for lead, deal, and pipeline management Chrome extension to capture leads during browsing integrations API for connection with other sales and marketing tools AI Tools ![AI Tools](https://cdn.stape.io/i/69397bb3ee0a0692491097.png) These advertising agency tools help agencies scale content production, automate creative workflows, and experiment rapidly. 1. Jasper AI: AI writing Overview [Jasper AI](https://www.jasper.ai/tools) is an AI-powered content platform that helps teams and agencies generate high-quality copy across multiple formats. From blog posts and social media content to marketing copy, emails, and scripts, Jasper streamlines the content creation process with a library of templates and AI-assisted tools. Why this tool is valuable Jasper AI accelerates content production, allowing agencies to create engaging, on-brand messaging at scale. Its AI tools reduce manual writing, maintain consistency across channels, and support multiple content types, from marketing campaigns to social media and SEO, helping agencies save time while boosting creativity and output. Key features: AI text generation for blogs, ads, emails, and social media posts Paraphrasing, rewriting, and text summarization tools Ebook, script, slogan, and professional bio generators Content optimization tools, including SEO and meta description generators Customizable brand voice and style guides Integration with platforms like Jasper Chat, AI Studio, and content pipelines AI-assisted creative tools for visual content and multi-format copy See what users say [Jasper AI on Trustpilot](https://www.trustpilot.com/review/www.jasper.ai). 2. Surfer AI: AI-assisted content audits Overview [Surfer AI](https://surferseo.com/ai/) is a tool that helps you create content that ranks on Google. It combines AI writing with SEO insights so you can write articles fast and make sure they reach the right audience. Why this tool is valuable Agencies can create high-quality content quickly without hiring extra writers. It helps teams plan, write, and optimize articles all in one place. This saves time, cuts costs, and improves clients’ search visibility. Key features: Generate articles in minutes SEO suggestions based on top-ranking pages Create outlines with headings and FAQs Write in multiple languages Check for plagiarism and optimize content automatically Use custom brand voice and templates Track how your content performs in search See what users say [Surfer AI on Trustpilot](https://www.trustpilot.com/review/surferseo.com). [On Reddit, users discuss the tool as well](https://www.reddit.com/r/LovedByCreators/comments/1m50sy5/surfer_seo_review_30_days_optimizing_content_for/). 3. Lumen5: AI social video Overview [Lumen5](https://lumen5.com/) is an AI video maker that turns text into videos in minutes. You can use blogs, articles, scripts, or just bullet points and quickly make videos for marketing, education, or communications. Why this tool is valuable Agencies can create videos fast without needing special skills or extra staff. It helps teams stay on-brand, save time, and produce more content without losing quality. Key features: Turn blogs, PDFs, and ideas into videos Drag-and-drop interface, no learning curve AI script writing and voiceover Brand templates and controls Create videos for marketing, education, or internal communication Fast, scalable video production See what users say [Lumen5 on Trustpilot](https://www.trustpilot.com/review/lumen5.com). 4. Synthesia: AI avatar video Overview [Synthesia](https://www.synthesia.io/) is an AI video platform that turns text into studio-quality videos in minutes. You can use AI avatars and voiceovers in over 140 languages. No cameras, mics, or actors are needed. Why this tool is valuable Agencies can make professional videos fast, at lower cost, and scale video production without extra equipment or staff. It keeps videos on-brand and makes localization easy. Key features: Create videos from text, scripts, or documents AI avatars and voiceovers in 140+ languages Collaborate in real-time with your team 1-click translation for videos Screen recording with instant editing On-brand videos with custom logos and colors Export to SCORM for LMS integration Analytics to track video performance See what users say [Synthesia on Trustpilot](https://www.trustpilot.com/review/synthesia.io). [On Reddit, users discuss Synthesia as well](https://www.reddit.com/r/instructionaldesign/comments/1k0bhoz/what_are_your_experiences_using_synthesia/). 5. Lovable: AI landing pages & prototypes Overview [Lovable](https://lovable.dev/) helps you create websites, apps, and prototypes by chatting with AI. You can quickly turn ideas into landing pages, blogs, or interactive prototypes without coding. Why this tool is valuable Agencies can speed up design and prototyping, test ideas faster, and deliver client-ready websites or apps quickly. It reduces manual work and keeps the creative process flexible. Key features: Create websites, apps, and internal tools using AI Generate landing pages and blog content Prototype designs fast Customizable themes and visual edits Attach files and content for AI to use Community templates and remixes to jumpstart projects Real-time AI assistance while building See what users say [Lovable on Trustpilot](https://www.trustpilot.com/review/lovable.dev). [On Reddit, users discuss Lovable as well](https://www.reddit.com/r/lovable/comments/1ooc9jl/is_anyone_here_actually_making_money_with_a/). Final thoughts Picking the right tools for your marketing agency isn’t just about finding the newest app. It’s about having a set of tools that work together and support everything your agency does. The best agencies in 2026 will: Use audit and check-up tools to spot problems early Use tracking and reporting tools to make decisions based on data Use creative tools to make high-quality, on-brand work Use AI and automation to work faster and improve constantly It’s not about having more tools; it’s about working smarter, not harder. Tools work best when they are connected to a clear service offer. Agencies can use [extra services](https://stape.io/blog/services-marketing-agency-should-offer) to turn tracking, analytics, AI, email automation, and website support into paid packages. --- # TikTok Ads conversion tracking: cost and conversion rate insights Source: https://stape.io/blog/tiktok-conversion-tracking Learn what you need to know about TikTok conversion tracking: cost, metrics, types of ads, how to configure and optimize, and how to track offline conversions. Key takeaways TikTok conversions can be tracked using Pixel, TikTok Events API hosted via server GTM, or via Gateway. The last two options offer more reliable tracking results and better compliance. TikTok and Instagram have different audiences and types of ads available. TikTok is more aimed at a young audience with good buying opportunities. You should always measure post-view conversions on TikTok as this platform specializes in post-view impact, and customers may not click on your ads directly, but visit the website later. TikTok is one of the biggest social media platforms, with [16.000 videos being uploaded every minute](https://www.statista.com/topics/6077/tiktok/?srsltid=AfmBOop58TQm9M3wVg5KxxiP_6_D2hPr08tlpDtYvECEn03uEp8KvRwl) and almost ⅓ of the world's population registered users. Thus, it is not surprising that TikTok advertising is so popular, and TikTok ad campaigns may cost a small fortune (up to $200,000 per week for a premium segment). Considering that, measuring the conversion rate for the commercials running on the platform becomes of vital importance. In this article, we will cover different methods for gathering data to measure campaign performance, answer the most popular questions on TikTok Ads, and give recommendations on how to improve your results. What is TikTok advertising? Advertising on TikTok is a complex process that consists of choosing one or several of the different ad formats, developing the strategy, communicating with influencers, launching campaigns, measuring their effectiveness and conversion rate, gathering the available data about customers, and adapting your approach based on the gathered information. TikTok has become a powerful ad platform for eCommerce and digital marketing businesses where they can promote their products and services, reaching massive amounts of viewers daily. It offers various ad formats that suit companies of different sizes, budgets, and goals. What is TikTok ads conversion tracking? TikTok ads conversion tracking is crucial for getting performance data and measuring the effectiveness of your TikTok ads. It is a complicated process that consists of several stages: gathering the conversion data about the customer actions after they interact with the ads; sending the gathered data to TikTok for further analytics; adjusting the ad budget and content based on the analytics results received. A good conversion rate for TikTok ads typically ranges [from 1% to 3%](https://dashthis.com/kpi-examples/tiktok-ads-conversion-rate). A common approach is to preserve and look for minor adjustments if the number you have is in that range. You should review your TikTok ads and start thinking about changing something if the number goes below 1%, and thoroughly review your bidding strategy, targeting approach, and ad quality if it drops to 0.5% or below. Why does conversion tracking for TikTok ad campaigns matter? Numerous reasons exist why the conversion rate of your TikTok should matter. It allows you to measure the ROI of your commercials and understand whether they lead to the desired financial and customer-number outcomes or not. You can optimize your campaigns cognitively when you know exactly how each of them performs and what results they demonstrate. [Conversion tracking](https://stape.io/blog/conversion-tracking-faq) helps you to identify your target audience better and focus on launching commercial campaigns to reach their specific needs. It gives you better insight into user behavior and their path to conversion, which can become a firm base for marketing funnel modification. You get clear and practical feedback on what creatives make effective TikTok ads and which ones perform poorly and need to be changed. To sum up, TikTok conversion tracking shows you which ad campaigns are effective and what makes them such (e.g., intuitive funnel, quality creatives, etc.). Based on its results, you can make decisions based on the "field" data rather than your intuition, improve ROI, and even optimize your company's ad spend. What is the TikTok Events API? The TikTok Events API is a server-side solution for sending the TikTok ads conversion data from the server GTM container or Gateway to TikTok Ads Manager. This method is more reliable and precise than simply using the tracking Pixel on the client's side to communicate with analytics. The whole procedure looks as follows: when a user performs an action on your website, it is recorded by the Pixel and sent to the server; on the server, all the personal data is encrypted, and data gaps are filled if possible; Events API sends the data package to the analytical platform. This method is more resistant to ad blockers and more compliant with privacy policies, which makes it a better choice for user data tracking, compared to the conventional usage of the Tracking Pixel on the client's side. How to set up TikTok ads conversion tracking? ![How to set up TikTok ads conversion tracking?](https://cdn.stape.io/i/6936a4ee884a6209078350.png) There are 3 basic methods for setting up TikTok conversion tracking, some of which guarantee a more consistent performance than others. TikTok Pixel The TikTok Tracking Pixel is a piece of JavaScript code to be added to your website's header section either manually or using a Google Tag Manager container. Log into your TikTok Ads Manager account, switch to the Events section, and create a new TikTok Pixel. Copy your new Pixel's code and paste it either in the header of the website or in any tag manager, for instance, Google Tag Manager container. Configure the event you want to track by adding the event codes where necessary. Launch TikTok Pixel Helper (an extension for Chrome) to test whether the newly installed Pixel fires correctly. To streamline the setup and get the most out of TikTok Pixel, you may also consider using the [TikTok Pixel tag developed by Stape](https://stape.io/solutions/tiktok-pixel-by-stape-tag). It simplifies the installation of Pixel, supports standard and custom TikTok events, can perform automatic Data Layer mapping for GA4 and eCommerce events, and much more. The Pixel is good for TikTok ads tracking as it is easy to configure, cheap, does not require any additional settings or resources, and tracks all the website actions directly. Talking about its disadvantages, it relies on the client-side tracking technology and thus, can be vulnerable to ad blockers and browser restrictions. Moreover, it does not provide control over the tracked data before it is sent to analytics. This means there is a risk of compliance issues. TikTok Events API through server GTM The TikTok Events API is a solution for server-side tracking; it acts as a bridge between the server and the analytical platform. Talking about server-side, it is a more reliable approach to data tracking. It supposes that the Pixel sends all the tracked data to the cloud server, where it can be checked for compliance, enriched with the missing data, and then sent to TikTok Ads Manager. The last step is when you need the TikTok Events API. [Create a server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) via the official service from Google and host it with Stape. Set up the Data Tag and use it as a transfer mechanism to send the tracked data from the web to your server container. Use EventID to configure deduplication, as Pixel simultaneously sends web events. In the server GTM container, add the [TikTok Events API tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/tiktok-tag) from the Template Gallery, set it up, and add the events you want to track (check a more detailed guide on how to configure the TikTok Event API). Test your setup by reviewing whether you get the required data in your TikTok Ads Manager. The Events API provides you with complete control over the tracked data and has rich customization capabilities in terms of the events that can be sent to analytics. However, you need to pay for that with a more profound server-side tracking expertise and the requirement to set up almost everything manually. TikTok Events API Gateway The [TikTok Events API Gateway](https://stape.io/tiktok-events-api-gateway) is another server-side tracking solution for tracking conversion events on TikTok, [minimizing the effect of ad blockers](https://stape.io/blog/bypass-adblock-detection), browser restrictions, and allowing you to stay compliant with the required policies. To start using it, you need to register for the Events API access first. Then, however, you won't add it to the server GTM but rather deploy it via the Gateway. Create the TikTok Events API Gateway with us by logging into your Stape account and proceeding to the "Gateway" tab in the TikTok section. When done, log in to your TikTok Events API Gateway account and connect the needed Pixels there via the Connect Data Source tab. Test your setup to ensure that everything launches and transfers the data as it should by checking the data displayed in your TikTok Ads Manager. Hosting an API via a Gateway is a cheaper and easier-to-configure approach, which provides you with fewer customization possibilities, though. We have a detailed guide on [TikTok server-side tracking](https://stape.io/blog/tiktok-server-side-tracking) via GTM and Gateway. Do not hesitate to check it if you need more details on the steps and nuances. What is better, TikTok Pixel or TikTok Events API? The TikTok Events API is better because it transfers the package of tracked data from the server, when it is compliant and with all possible gaps filled. This allows for getting the analytical reports of higher quality. The Tracking Pixel, on the other hand, operates in real-time and runs between the client's browser and analytics. This means there is no chance for encrypting or removing all the privacy data, and everything blocked by the ad blockers or browser restrictions is completely ignored and never reaches its destination. Thus, if you are not sure what to choose, TikTok Pixel or Events API, it is a good idea to stick to the latter. Examples of TikTok Ads ![Examples of TikTok Ads](https://cdn.stape.io/i/6936bd6e7761a644935803.png) Different types of ads are available to businesses that decide to launch commercials on TikTok. Depending on whether you are aiming at lead generation, user interaction, or increasing brand awareness, choose the ad group that best meets your needs. In-Feed ads. These are short videos that can pop up in the user's feed at a random moment. A common practice for this type of ad is to make these videos short and skippable. Brands often stick to it to boost visibility and raise user interest in their product or service. TopView ads. It is another type of video ad format that launches when a user opens the TikTok app. It is 5 seconds long, non-skippable, and generally follows the same goal as the In-Feed Ads. It is more effective, though, for brand exposure, due to being the first thing people see when they open TikTok. Branded hashtag challenges. This is one of the most effective methods of user engagement. Brands create specific hashtags and encourage people to share content related to them. This increases the amount of user-generated content and can boost sales drastically if one of these TikTok videos goes viral. Branded effects. TikTok users can add AR filters and effects to their videos, allowing brands to communicate with their audience in a trendy and artistic way. Collection ads. This type of TikTok lets users scroll through the presented products and choose what they need without leaving the app. It is also known as carousel ads. Dynamic Showcase ads. High-performing ads aimed directly at each particular user and based on the dynamic creative optimization technology. The cost for different types of TikTok ads may vary, so always decide which to use based on your campaign objectives and business goals. What are the benefits of launching a TikTok campaign? TikTok is an extremely popular platform among teenagers and young adults. People under 34 are the most numerous user group - [almost 70%](https://www.dreamgrow.com/tiktok-statistics/). Basically, this means that the majority of potential customers are people familiar with the internet, with jobs, money, and familiar with modern trends. Consequently, it makes sense to expect more sales on TikTok than on any other resource with a less solvent audience. One more important point is the variety of ad content available on the platform. From simple short-form videos to hashtag challenges, from AR effects to well-known carousels, TikTok ads work because they are creative, original, and novel. What is the TikTok conversion rate by industry? ![What is the TikTok conversion rate by industry?](https://cdn.stape.io/i/6936c2f122da8537460487.png) Below, you can find the average TikTok conversion rate for different industries. However, if you get a similar number, it does not mean that there is nothing else to be done. You can and should always work on increasing CVR and adjusting your ads depending on your campaign goals. Industry | Average CVR Retail & eCommerce | 0.46% Beauty & skincare | 0.6% Food & beverage | 0.7% Technology & gadgets | 0.5% Financial services | 0.3% It is worth mentioning that the financial services industry is the hardest to convert, as there are more trust barriers due to its specifics. You can consider increasing your minimum daily budget to get better results, but this will also influence your CPR, so you need to be careful when making such decisions and always consider all pros, cons, and key metrics you are aiming at when setting expectations for TikTok ads conversion rate. TikTok ad content vs. Instagram: main differences Although both platforms may seem similar at first glance, the TikTok community is very different from Instagram's. Both services may also have different formats available and ad placement rules. Check the table below to get a general idea of the main differences. | TikTok | Instagram Ad Formats | Video commercials (spark ads, in-feed videos, top view, etc.), carousels, AR effects. | Video commercials, carousels, stories, reels, image ads. Style | Raw, creator-style, native looking, natural. | More polished, edited, professional-looking. Algorithms | Interest-first, good for engaging with new audiences. | Works better for communities, followers, and retargeting. Conversion behavior | Fast engagement, but it is more demanding to landing pages for users to convert. | Has a stronger purchase intent due to an integrated shopping service. Cost | CPM and CPC are usually lower. | More competitive and expensive. Best for | Promoting new brands, fast growth, viral attention. | Interest targeting and retargeting, conversions, long-term brand building. These differences, however, do not mean that you should never try to launch a new brand advertisement on Instagram or try to launch successful campaigns based on interests on TikTok. Social media algorithms can often work in an unexpected and unexplainable way. Thus, in this sphere, everything is worth trying. Additionally, while TikTok offers a low entry barrier for video creators, it is also worth evaluating [Spotify advertising cost](https://stape.io/blog/spotify-ads-pros-and-cons-cost) for a well-rounded strategy, as it allows you to reach the same young audience during screenless moments. How much does it cost to run ads on TikTok? ![How much does it cost to run ads on TikTok?](https://cdn.stape.io/i/69383ec40a0f8788634950.png) TikTok advertising costs may vary significantly. The average CPM for TikTok ads [ranges from $3.20 to $10](https://lebesgue.io/tiktok-ads/tiktok-ads-benchmarks-for-ctr-cr-and-cpm). Acceptable CPC is [on the level of $0.2 - $0.5](https://databox.com/metric-library/metrics/tiktok-ads/cpc). This number depends on various factors: ad format: in-feed ads are cheaper than TopView ads or branded effects; audience targeting options: the narrower the targeting, the more competitive the audience, the higher the cost; location: costs vary depending on the region where you want to launch your campaign. creativity: TikTok algorithms reward natural and creative content with lower effective costs; campaign objective: if you want your TikTok campaign to convert, it usually costs more than the one aimed at increasing brand awareness (impressions). Thus, if you want to launch ads for TikTok, you should consider all these factors so as not to be surprised later when your first bill arrives. How do TikTok Ads work: best practices to know Here are some TikTok best practices on what you should pay attention to and what approaches to use if you are planning to run ads on TikTok. Prioritize natural and personal content. Creator-style content is usually rewarded by TikTok, as its algorithms give preference to the videos made like regular TikToks. Always include a hook in the first 2-3 seconds of your video. Same as on the other platforms, you need to make the viewer interested before they scroll through. Be brief and make short videos without lengthy introductions and slow transitions. Focus on one single thing you want to show/advertise. Test different creatives. Even if your ads feel natural, the whole story or plot may not be hitting the point, so always be ready to try several approaches. Do not run one video for too long. Change creatives regularly and keep viewers engaged with your content. Remember that users convert only if the video hooks them, and then they are interested in the product, not vice versa. Boring, artificial, and not creative TikTok ads are a sure way to failure. How to optimize TikTok ads tracking? TikTok ads tracking can be optimized in different ways and with different tools. Here are some recommendations on what can be done. If you still don't, use a [server GTM container](https://stape.io/gtm-server-hosting) or Gateway. This will decrease the data loss from ad blockers, provide you with more control over the tracked data, and give you more flexibility in configuring the tracked events (in the case of GTM). Sharing full user data (such as IP, name, and e-mail) significantly improves match rate and conversion attribution. Do not forget, though, that it should be hashed to stay compliant. Focus on measuring post-view conversions. TikTok is a platform that specializes in view-through impact, so the key conversion-related metric for this platform is the number of purchases/subscriptions that happen after a person views an ad and then visits the product website directly. Track correct events. The minimum-required set is ViewContent, AddToCart, InitiateCheckout, and Purchase. For lead generation, you can also add SubmitForm and Load. If you work with a custom audience, though, this list can be expanded. A good practice is also to use both Pixel and API to send events to the analytical platform. This will guarantee the most precise results, but you need to use deduplication to prevent the double-counting of events. How to track TikTok offline conversions? Tracking TikTok offline conversions requires you to send the data about all the purchases that happened outside your website to the platform. This can be easily done following this procedure. Gather hashed personal data about the client. When a person clicks on your ad, capture their ClickID (this approach is also used to configure [cross-device tracking](https://stape.io/blog/cross-device-tracking)). Use this information to link an online conversion with a particular user and action offline. Send this conversion information to the analytics via Events API or a special feature in TikTok Ads Manager. This will help TikTok to [match an offline purchase with an online interaction](https://stape.io/blog/ways-of-offline-conversion-tracking), making your conversion tracking more precise. FAQ Are TikTok Ads worth it? TikTok Ads have [gained +42% in revenue in 2025](https://www.businessofapps.com/data/tik-tok-statistics/), compared to the previous year. The overall number is supposed to be more than $30 billion. This means that TikTok Ads are definitely worth using. They offer many ad formats and cover the young audience, which has more buying opportunities. Long ago were the times when it was a platform for funny videos; nowadays, it is a powerful platform for brands to advertise and promote their products. So, if you do not have a business account on TikTok yet, do not put things on hold. How to track ad performance on TikTok? The simple way is to install Pixel on your landing page or website, which will send TikTok tracking data directly to analytics. This method, however, suffers a lot from ad blockers and browser restrictions and may cause compliance issues. A much more precise and safe approach is to track all the data server-side. Configure the Pixel and send information to the server, where it will be combined with other pieces to fill the potential gaps, and personal data will be hashed. Then, host the TikTok Event API using a server GTM container or Gateway, depending on your needs and budget. It will send more detailed reports to analytics, and you will get better insights into your ad performance on TikTok. What can I do with TikTok tracking tools? TikTok tracking tools have many tasks they help manage: track online conversions; optimize your TikTok campaign; make audience targeting better; measure ad performance and optimize your ad spend; record and analyze user interactions; customize conversion tracking. Of course, it does not mean that you need to configure and use all the aspects; clearly identify your goals and focus only on those functions that you need for your TikTok account. --- # What are conversion lift studies? CLS and MMM explained Source: https://stape.io/blog/conversion-lift-studies-and-mmm Conversion lift studies use test and control groups to measure real incremental lift from ads. Learn how CLS works with MMM and server-side tracking to guide budgets. Key takeaways A conversion lift study (CLS) checks how the test group behaves compared to the control group, so you see how many extra sales come from the ads. CLS and [marketing mix modeling](https://stape.io/blog/marketing-mix-modeling-mmm) (MMM) both try to answer the same question, but in different ways, and together they give a stronger view on returns. [Server-side tracking](http://stape.io) reduces data loss in CLS, keeps test and control groups measured in the same way, and gives more complete inputs for MMM calibration. CLS results can act as a ground truth for MMM, so budget recommendations are based on real lift instead of pure correlations in historical data. Marketing measurement is one of the most important topics for marketers in 2025-2026. Privacy rules, tracking limits, and noisy attribution make it hard to trust standard dashboards. To fix this, more brands use two approaches together: conversion lift studies and marketing mix modeling. CLS gives you experimental proof for specific campaigns, MMM turns long-term data into always-on budget advice, and server-side tracking resides under both, providing a way to make sure the numbers you use are as complete and consistent as possible. What are conversion lift studies? Conversion lift studies are randomized controlled experiments that measure how many extra conversions your ads create. CLS splits your audience into two groups and compares them: Test group: people who can see your ads. Control group: people who are deliberately held out and do not see your ads. The main question CLS helps you answer is: "Did this campaign cause conversions that would not have happened anyway?" The idea of CLS comes from traditional scientific tests. In medicine, for example, part of a carefully chosen group receives the real drug, and part of an equivalent group receives a placebo. After some time, scientists compare health results between the two groups to see the real effect of the drug. In digital advertising, the "treatment" is ad exposure, and the "health result" is your business outcome, such as a sale, lead, or sign-up. Platforms like Meta, Google, and TikTok help create these groups, then report if the test group converts more than the control group. The difference between them is the incremental lift from your ads. Why CLS matters for modern marketers CLS has become popular because it helps marketers and business owners to get close to "ground truth" for specific campaigns. Instead of asking "how many conversions are attributed in the platform," it asks "how many extra conversions did this campaign actually create?" ![CLS capabilities](https://cdn.stape.io/i/69304bd6d9286296937269.png) The result is fewer guesses and less time spent arguing about attribution windows. What is marketing mix modeling (MMM)? Marketing mix modeling, or MMM, is a statistical method that uses aggregated data to show how different channels and factors affect sales or revenue. Instead of tracking each user, MMM works with daily or weekly time series, such as: Media spend and impressions by channel or campaign type. Business outcomes like revenue, orders, or sign-ups. Non-media factors like price changes, promotions, holidays, or macro trends. The MMM model separates the baseline (sales that happen anyway) from the part that comes from marketing activities. It then estimates ROI and marginal ROI per channel and helps answer questions such as: What happens if we increase or cut spend on a channel? How much does each channel contribute to our goals? Where to reallocate the budget to grow results or protect efficiency? Modern MMM tools also use results from experiments like CLS as inputs. This makes their estimates closer to reality and increases confidence when optimizing your media mix. How CLS and MMM work together CLS and MMM both try to solve the same core problem: measure the incremental impact of your marketing. They just do it in different ways: CLS uses experiments on a limited scope, such as one channel or campaign during a specific period. MMM uses historical data across all channels and longer windows to guide medium and long-term paid media planning. Used together, they form a loop. 1. Validation with CLS. Let's say you run lift tests on channels such as Meta, Google Search, or TikTok. You learn, for example, that Meta brings +15% incremental lift, Google Search +8%, and TikTok +22%, under the conditions of the test. 2. Calibration of MMM. Then you feed these CLS results into MMM as priors or constraints. For example, when you use tools like [Robyn](https://facebookexperimental.github.io/Robyn/) by Meta, [Meridian](https://developers.google.com/meridian) by Google, or [PyMC-Marketing](https://www.pymc-marketing.io/en/0.15.1/guide/mmm/mmm_intro.html), you can ask the model to respect the lift ranges you observed in experiments. 3. Strategic optimization. You then use the calibrated MMM to run scenarios, move budgets, and plan the following months. CLS tells you “this campaign worked at this moment,” and MMM tells you “here is how to use that same channel inside your full mix over time.” In short, CLS gives you local truths, MMM gives you global structure, and together they help both performance and planning. Why server-side tracking matters for conversion lift studies Client-side tracking relies on browser events and so depends on many things, such as: ITP and other browser privacy rules; Short cookie lifetimes; Network and script errors; Ad blockers and tracking protection tools. Industry estimates often state that browser-based setups can miss 10–30% of conversions in some cases. For CLS, this is a real problem because any bias in how you measure the test group vs the control group changes the lift estimate. That is why many professionals now use server-side tracking to support the browser data. In a server-side setup, data still starts in the browser when the user visits your site or app. From there, [key events are sent to a cloud server](https://stape.io/blog/what-is-server-side-tracking). The server then forwards the data to platforms through APIs such as Meta Conversions API or Google Ads API. ![CLS advantages](https://cdn.stape.io/i/69304c0e08d98873471452.png) Data accuracy for CLS and MMM calibration Both CLS and MMM are estimation tools. And every estimate comes with some uncertainty. If uncertainty is too high, the numbers will not help you make better decisions. You may still change budgets, but you will not be sure if those changes really improve revenue or reduce risk. Effective tracking lowers this uncertainty. For CLS, more complete data means: Fewer missing conversions during the test period. More accurate split between test and control outcomes. More stable lift percentages across groups and time. For MMM, more complete data means: Less noise when the model tries to separate baseline vs media-driven sales. More reliable ROI and marginal ROI ranges per channel. More robust recommendations when you use budget scenario tools. Server-side tracking plays a central role in both. It reduces missed conversions from browser limits and sends more complete data into both CLS and MMM. How CLS with server-side tracking influences MMM decisions When CLS and MMM are both in place, you get a strong feedback loop for decision-making. Here is a simple view of the cycle: Plan and run experiments. Pick questions that matter, for example, "Is this Meta prospecting campaign incremental?" or "Does this new TikTok format bring extra sales?" Run CLS with server-side tracking active, so test and control groups are tracked in the same way. Update calibration. Take the new lift results and check how they compare with the current MMM outputs. Use them to adjust MMM priors or constraints, so the model respects what the corresponding experiments just proved. Move budget to campaigns that sell. Use the calibrated MMM to run scenarios and move budgets across channels, campaigns, or regions. You now know that the model's view of each channel is in line with real-world lift test results, not just correlations. Repeat. Every few months, repeat CLS on key areas, especially when you test new channels, creative strategies, or geos. Feed new results into MMM again. Over time, this loop makes your measurement system stronger: CLS brings fresh experimental truth and MMM translates that truth into weekly or monthly budget decisions at scale. How to set up server-side tracking to improve CLS data You do not need to change all your tracking to improve CLS. The goal is to add a server layer under your current web tracking and use it for the events that appear in your lift studies. Here is a simple path with Stape: Create and host a server Google Tag Manager container on Stape. This gives you a cloud server that runs your GTM server container for you. Add a custom domain, for example, anything.yoursite.com, so tracking calls use your own domain and create first-party cookies with a longer lifetime. Send key CLS events from the web container to the server container, such as page views, add to cart, purchases, or lead forms. Stape templates help you move this data flow without custom backend work. Connect ad and analytics platforms in the server container, for example, GA4, Google Ads, Meta Conversions API, TikTok Events API, or Snapchat CAPI, using ready templates. Test and monitor the setup before you run a new CLS. After these steps, the events you use in CLS are logged in both browser and server flows, and test and control groups are measured in the same way. This reduces missed conversions, improves matching, and gives more complete data for both CLS and MMM. If you want a full tutorial, you can follow the step-by-step guide on [how to set up server-side tracking with Stape](https://stape.io/blog/how-to-start-with-server-side-tracking), which explains every technical step in detail. FAQs from marketers Can server-side tracking be used to improve offline marketing measurement in CLS? Yes. This is one of the most useful areas for server-side tracking. Offline conversions often appear later and in other systems, such as in-store purchases, call center sales, or B2B deals logged in a CRM. Without a stable identifier, it is hard to connect these back to ad exposures and CLS groups. Server-side infrastructure helps by: Capturing a stable identifier when the user first interacts with an ad and your site, such as a hashed email or customer ID. Storing their CLS assignment (test or control) together with that identifier. Syncing conversions from offline systems like CRM or point-of-sale into the same server-side environment. When you then run the CLS analysis, you can include both online and offline conversions. This is especially important for industries where much revenue happens offline, such as automotive, real estate, B2B SaaS, or retail with strong in-store sales. How do CLS results with server-side tracking influence ad spend decisions in MMM? CLS gives you experimental lift values for specific channels or tactics. MMM uses those values to adjust how it sees the contribution of each channel over time. For example, you run CLS and learn that a Meta campaign has a 15% lift, Google Search 8%, and TikTok 22%, under certain budgets and creatives. You use these numbers as calibration targets in MMM tools like Robyn, Meridian, or PyMC-Marketing. The MMM model is then asked to find solutions that stay in line with these lift ranges. Later, when MMM suggests cutting or growing spend on a channel, those suggestions are anchored in experimental truth. If an uncalibrated MMM wanted to cut a channel that CLS proved as strong, the calibrated version would show a more realistic picture. This reduces the risk of cutting tactics that actually create incremental value. What is the cost of implementing server-side tracking for CLS and MMM calibration? The total cost has several parts. Server-side tracking setup. With a provider like Stape, you can start server-side tracking from 20 USD per month, depending on traffic, event volume, and custom domain needs. Ongoing maintenance. Plan some time each month to check events, fix errors you see in reports, and update tags when your site or campaigns change. Experimental media spend. CLS uses real campaign budgets to learn. You need to reserve part of your spend to run tests on key channels and keep them statistically powered. MMM setup. If you want to use CLS results as calibration points, you also need an MMM model. You can use open-source tools like Robyn or work with a vendor like [Cassandra](https://cassandra.app/), where fees usually range from 1,500€ to 6,000€ per month, depending on budget size and support level. For many brands, the combined cost is justified by better budget allocation: more accurate measurement means fewer wasted campaigns and fewer wrong budget cuts. This article was written in collaboration with [Gabriele Franco](https://www.linkedin.com/in/gabriele-francoo/), CEO at [Cassandra](http://www.cassandra.app/). --- # Meta's profit-based campaign optimization: use cases and setup Source: https://stape.io/blog/meta-profit-based-campaign-optimization Profit optimization in Meta Ads helps scale campaigns more accurately by accounting for hidden costs like taxes and returns. Learn to set it up with server-side GTM. Meta has added a new way to optimize ad campaign performance, which shares profit data with the platform using the Meta Conversions API. At the moment, the feature is in closed beta. In this article, we will explain in detail how it works and why Profit on Ad Spend (POAS) is a more precise way to estimate ad performance. Also, we will show how to configure profit-based optimization using Stape's Facebook Conversions API tag for server GTM. Trends in advertising The primary trend of the past years is using first-party data from CRMs and implementing AI into advertising workflows for ad optimization. For example, Google introduced the Data Manager API, which allows advertisers to create [a Customer Match List](https://stape.io/blog/customer-list-google-ads) in Google Ads (first-party data from CMS or CRM used for Smart Bidding and optimized targeting). This data serves to fuel AI and optimize campaign performance. [Meta Ads optimization](https://stape.io/blog/facebook-ad-optimization) also tests the new features that require first-party data and use AI for campaign optimization. Meta Ads introduces profit-based optimization ![Profit-based optimization](https://cdn.stape.io/i/692ec74e7de45731176732.png) Meta is currently testing campaign optimization based on profit margins - a feature that allows advertisers to share profit data from sales using the [Meta Conversions API](https://stape.io/helpdesk/documentation/overview-of-meta-conversions-api). This lets the Meta platform optimize for POAS using actual profit rather than just purchase value. This first-party data is combined with Meta's AI-powered ads system to maximize campaign profitability. Previously, campaigns could be optimized either for the total number of conversions or for the value of events. However, these approaches are not one-size-fits-all solutions. For example, conversion value does not account for post-purchase factors such as product returns. Meta Ads algorithm prioritizes sales that bring more money; it doesn't take into account the product's profitability. It can prioritize a $100 sale over two $30 sales, even if the $30 products have a higher profit margin. Profit margin optimizes for Profit on Ad Spend (POAS). Unlike Return on Ad Spend (ROAS), which is used for a value optimization method, POAS provides a more accurate [tracking of advertising](https://stape.io/blog/ad-tracking) performance, as it reflects actual profit by taking into account additional costs (e.g., returns, taxes). Accurate Meta campaign performance tracking is crucial for effective optimization. Check our [guide on Facebook tracking](https://stape.io/blog/facebook-tracking) for available tracking options, privacy compliance tips, and advanced practices. The benefits of the profit margins approach Using a profit margin-based approach for Meta Ads has the following benefits: More accurate measurement of campaign success. Profit margin takes into account additional expenses such as taxes, delivery costs, or product returns. It gives a clearer picture of both campaign performance and overall business profitability. Campaign optimization for profitability, not just revenue. By sending profit data to Meta, the platform's AI can learn which products and customers are the most profitable, then it can adjust bids and targeting to bring high-value conversions. More effective budget allocation. Profit margins optimization contributes to a more strategic allocation of your ad budget. Instead of pushing for the highest number of sales or those with the highest value, Meta's algorithm will prioritize campaigns that generate the most profit. ![Value of Events vs Profit Margin Optimization](https://cdn.stape.io/i/692ed8ed4e065219988247.png) Use cases Profit-based is a good approach to campaign performance estimation for any kind of enterprise, and it is especially helpful for the following business models: Businesses with different profit margins. If a business sells products where the profit margin differs significantly, optimizing for gross revenue can lead to a less profitable outcome. Tracking the right [eCommerce KPIs](https://stape.io/blog/ecommerce-kpis) alongside profit margins gives you a complete picture of campaign performance. With value-optimization, Meta Ads will target more expensive items because they contribute more to the overall revenue. But a more expensive item may bring lower gross revenue due to higher manufacturing costs. Subscription-based websites. Profit margin optimization is beneficial for the long-term profitability of a new customer, or their Customer Lifetime Value (CLV). For these types of websites, customers who initially paid $10/month but subscribed for 5 years are more valuable than those who spent $100/month but subscribed just for 2 months. High-operating-cost business. For businesses with significant shipping or payment processing fees, a high ROAS might not mean high profitability. Optimizing for profit margin ensures that these costs are included in the advertising strategy. You can set up accurate profit-based analytics in Google Ads and GA4 as well. For a detailed guide on the configuration process, please check our blog post on [configuring Profit on Ad Spend](https://stape.io/blog/profit-on-ad-spend). Before starting the configuration To configure this setup, you will need the following: Beta access obtained via your Meta representative. [Configured server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). Configured data stream from the web to the server container (using [Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/blog/sending-data-from-google-tag-manager-web-container-to-the-server-container)). Configured Meta Pixel (it can be done using [Stape's Facebook Pixel tag for web GTM](https://stape.io/blog/add-facebook-pixel-gtm)). [Custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) (optional). How to configure profit optimization for Meta Ads Please note: The profit-based optimization is currently being tested. It is in beta and only available through your Meta representative. Step 1. Create a sales campaign in Meta Ads Manager 1.1 Log in to [Facebook Ads Manager](https://adsmanager.facebook.com/). In the campaigns section, click Create. As a campaign objective, select Sales. ![Create Sales campaign](https://cdn.stape.io/i/69302d235e3df311195264.png) 1.2 As campaign setup, select Advantage + shopping campaign. This campaign setup type is simplified and uses AI to reach the audience; it is a common configuration type that fits most of the campaigns. ![Select "Advantage + shopping campaign"](https://cdn.stape.io/i/69302ca25d0f1056942402.png) 1.3 Configure the sales campaign according to your needs. The key points that you should pay attention to are: As a performance goal, select Maximize the value of your conversions. As a conversion goal, select Purchase. As a conversion value, select Profit margin. Once the campaign is configured, click Publish campaign. ![Sales campaign configuration](https://cdn.stape.io/i/6930483009700079622008.png) Step 2. Configure the Facebook Conversions API tag for the server GTM Stape's Facebook Conversions API tag has been updated with the functionality that allows for supplementing the original event that happened in Meta with data on profitability. If you need to [set up the Meta CAPI tag](https://stape.io/helpdesk/documentation/how-to-set-up-meta-conversions-api) from scratch, please refer to our configuration guide. 2.1 As the event name setup method, select Override and from the list of standard events select AppendValue. ![Facebook CAPI tag configuration](https://cdn.stape.io/i/692ee46e7d0d6748534303.png) 2.2 Configure the section Original Event Data Override. Use the parameters from the droplist to locate the Original Event that occurred on Meta's side. You can find out more about the parameters you can override in [Meta's documentation on original event data parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/original-event). Next, apply the AppendValue event along with the other sections to add more details to the Original Event. ![Original Event section configuration in Facebook CAPI tag](https://cdn.stape.io/i/693035eae6045384159725.png) Final note: accurate attribution is critical for profit-based optimization. If your data in Meta doesn't align with your backend or GA4, review our guide on [Meta attribution discrepancy troubleshooting and fixing](https://stape.io/blog/meta-attribution-troubleshooting) to ensure your optimization decisions rely on correct data. Summary Meta's testing of profit margin optimization takes into account Profit on Ad Spend (POAS) as a more precise alternative to ROAS. Businesses with varying profit margins, subscription-based models, or high operating costs will benefit the most. The feature is still in beta. Its configuration can be done using [Stape's Facebook Conversions API tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) for the server GTM container. --- # How to fix GTM tags not firing with the All Pages trigger Source: https://stape.io/blog/first-touch-issue-tags-not-firing If your tags don't fire at first touch, you risk losing UTM parameters and click IDs. Learn what may cause this issue and how to detect and fix it. Key takeaways: Tags set to fire on All Pages may not trigger on the first page load if consent is still unknown, causing loss of UTMs, click IDs, and proper attribution. Stape's Website Tracking Checker can detect this misconfiguration and show which tags are affected. To fix it, use consent banner events (like cookie_consent_update) as triggers instead of All Pages. Testing the fix requires clearing cookies and cache, then ensuring tags fire immediately after consent is given. There is a common yet often overlooked issue in [server-side tracking](https://stape.io/): tags that fail to fire during the first page load. This usually happens because consent is still unknown when the page loads. As a result, you will [lose UTM parameters](https://stape.io/blog/avoid-utm-parameter-removal) and click IDs from the initial visit, when the most valuable tracking data is captured. Example: tags like Meta's Page View are set to trigger on All Pages. At that moment, the consent banner hasn't yet been accepted, so the browser blocks the tag from firing. In this case, the tag will process only after the user provides their consent and visits a new page - but at that point, the session is no longer associated with any UTMs or click IDs, so the source will most often be registered as Direct. Here is how such a problematic configuration may look, where [consent is required](https://stape.io/blog/consent-mode-server-google-tag-manager) and the trigger is All Pages: ![Consent setting with All pages trigger](https://cdn.stape.io/i/692d99761e786550966859.png) And here is the result - consent is provided, but the tag doesn't fire at first touch: ![The tag doesn't fire at first touch although consent is provided](https://cdn.stape.io/i/692d99bf4e8c4417411796.png) How to detect the first touch issue The easiest way to do it is using the [Website Tracking Checker](https://stape.io/website-tracking-checker). It will alert you when it detects this misconfiguration and let you know which of your tags are having this problem. Enter your website URL, click Scan your site, and wait a couple of minutes. If your site has the first touch issue, you will see the respective message in the scan report. ![First touch issue message in the scan report](https://cdn.stape.io/i/692d99f2caf88874695834.png) How to fix the first touch issue We recommend using data layer events from the consent banner, such as cookie_consent_update, as the trigger instead of All Pages. This ensures the tag fires right after consent is given, once tracking is allowed and all parameters are available. It also helps your tracking work consistently across different browsers and privacy settings. 1. Find your consent banner event using the [GTM Preview mode](https://stape.io/blog/gtm-preview-mode-and-debugging). They are unique depending on your consent banner provider - in our case, it's gtm_consent_update. If you can't find your consent-related events, you'll often find an option to enable the data layer event in your consent banner's configurations. If you still don't see the event, consult with your consent banner's support. ![Consent banner event in the GTM Preview mode](https://cdn.stape.io/i/692d9a2231e31538753116.png) 2. Use this event as a trigger for any tags that are supposed to fire at first touch, such as Page View tags. ![gtm_consent_update as the trigger for tags that are supposed to fire at first touch](https://cdn.stape.io/i/692d9a5b56c3e629994461.png) 3. Test the setup by clearing cookies and cache, then checking if the tag fires correctly once consent status is known. ![Tag fired correctly](https://cdn.stape.io/i/692d9aae6faaa385250508.png) FAQ Do all tags require this method to avoid the first touch issue? All tags except for GA4 tags. GA4 tags refer to the Google Consent Mode regardless of the configured trigger. They automatically check if the proper consent has been granted, and will fire correctly. Will fixing this issue affect my existing Google Ads or Meta Ads campaigns? Yes, in a positive way. When UTMs and click IDs are captured correctly at first touch, ad platforms receive more accurate attribution signals. This can improve campaign performance, ROAS/POAS reporting, and help platforms optimize toward higher-quality traffic and conversions. --- # Track Google Ads Conversions using Data Manager API Source: https://stape.io/blog/google-ads-conversions-tracking-with-data-manager-api Google Data Manager API is a tool for the management and integration of first-party data within Google Ads. It simplifies data sending by using a direct API call. Data Manager API is a unified API for tracking conversions. Customer actions are first sent to the sGTM container, where data is processed, secured, and attributed. Stape ensures the sGTM container then sends the conversion data directly to Google's servers via an API connection. Such a flow allows for minimizing the impact of browser limitations like ad blockers and cookie restrictions, which leads to more reliable, accurate conversion reporting. What is the Data Manager API? Google Data Manager API is a unified API created to help advertisers connect and manage their [first-party data](https://stape.io/blog/first-party-data) (e.g., data from CRM, behavioral data from the website/app) across Google advertising products. Using the Google Data Manager API, the data can be sent to the required destination (like Google Ads and Display & Video 360) with a single API call. From October 2025, the Google Data Manager API became available for all users. Use cases Offline/Enhanced Conversions for Leads tracking If you have a flow where the user firstly interacts with the ad online and then buys the goods or services offline, sending data on conversions back to the advertising platform is essential for ad campaign performance estimation. With the Data Manager API, you can automatically send offline/enhanced conversion data (e.g., sales that happened in a physical store or over the phone) from your Customer Relationship Management (CRM) or Point of Sale (POS) System and match the data against the Google ad click a user eventually has made. Enhanced Conversions for Leads is an upgraded method of Offline Conversion Tracking for lead generation businesses. Below, we highlight the difference between both: | Offline Conversion Tracking | Enhanced Conversions for Leads Purpose | Supply Google Ads with data on users' offline behavior after interaction with the ad online. | Supply Google Ads with data on users' offline behavior after interaction with the ad online. User identifier(s) | Google Click ID (GCLID) - a unique ID of each ad click. | In addition to GCLID, it uses hashed first-party customer data (such as email address or phone number). How it matches offline conversions with online interactions | Matches the GCLID the platform received from CRM/POS with the GCLID of the original ad click. | Uses the hashed customer data to match the conversion to a logged-in Google user or the data from CRM/POS. Matching accuracy | Less reliable due to browser restrictions and cookie expiration. | More accurate as it uses first-party data, helping to track conversions even when GCLIDs are lost or users switch devices. Implementation solution 💡[Google Data Manager API Conversion Events tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-conversion-events-tag) - using the tag, you can configure offline conversion tracking by adding GCLID and/or specifying the first-party customer data (email, phone, address, mobile device ID, third-party user ID). In this article below, we'll show how to implement the solution. Creating and keeping up-to-date Customer Match lists in Google Ads/Display & Video 360 The [Customer Match list in Google Ads/Display & Video 360](https://stape.io/blog/customer-list-google-ads) is an audience targeting feature that allows advertisers to segment users and target the audience with high conversion intent or exclude a specific segment from advertising. There are two ways to create and fill Customer Match lists - manual and automatic. The manual method is downloading the first-party data from your CRM in CSV format and uploading it to Google Ads/Display & Video 360. That's an inconvenient way, as you will need to update the data frequently. With the Data Manager API, you can configure automatic Customer Match lists creation and updating. Implementation solution 💡[Google Data Manager API Customer Match tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-customer-match-tag) or Stape Conversion Tracking CRM/CMS apps - both solutions can transfer data from your CRM and send data to Google Ads/Display & Video 360, creating Customer Match lists and updating the data in them without any manual actions. Below in this article, we'll consider the methods in detail. ![Customer Match lists in Google Ads](https://cdn.stape.io/i/692831cede314854425999.png) Customer Match lists in Google Ads Server-side online events tracking The Google Data Manager API allows you to send both online and offline conversion events directly to Google Ads. This API is part of a broader shift toward server-side data tracking. It is often used along with the server Google Tag Manager (GTM). It allows advertisers to gain more control over data, bypass browser restrictions, and improve data quality. Implementation solution 💡[Google Data Manager API Conversion Events tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-conversion-events-tag) - it allows you to send server-side online conversions to Google Ads via the Data Manager API. Sending event data as an additional data source Google has released a feature that allows you to enrich the web tag with data from CRM or databases. In this way, you receive a more complete picture of ad campaign performance. We have considered [Google's feature, its use cases, and benefits](https://stape.io/blog/google-tag-based-measurement) in our other blog post. Implementation solution 💡[Google Data Manager API Conversion Events tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-conversion-events-tag) - send data from CRM/databases directly to the Google Ads tag environment. Advantages of using the Data Manager API Improve ad audience targeting. After supplying Google Ads/Display & Video 360 with first-party data, the platform analyzes it, takes the identifiers, and matches them against the identifiers of logged-in Google users. Then the lists are created in Google Ads/Display & Video 360, and later, they can be used while creating ad campaigns to target a highly intended audience. More accurate conversion tracking. By sending offline conversion data, the advertisers get a more complete view of ad performance. It is important for more effective campaign optimization. Create audience segments. Implementing the Data Manager API allows the use of first-party customer data to create detailed audience segments. Then these segments can be included or excluded in ad targeting. High privacy. The system supports secure methods to transfer data from CRM/POS to Google Ads/Display & Video 360 (like hashing personally identifiable information). ![Data Manager API for Google Ads/Display & Video 360](https://cdn.stape.io/i/6926ef6131311859733054.png) Data Manager API for Google Ads/Display & Video 360 Pre-requisites Regardless of the solution you choose to send data to Google Ads/Display & Video 360, you will need the following to get started: Configured the [server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). Configured data transfer from the web to the server GTM container. You can set it up using [server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). Select and set up an authentication method. Regardless of the tag you are going to configure (Customer Match or the Conversion tag), you need to set up one of the authentication methods: Use Stape's connection (recommended) - the easiest way to handle the authentication. You just need to activate the Data Manager API Connection in the Stape admin account. Use own Google Credentials - if you don't use Stape's services or have a free plan on Stape, opt for this authentication method. Click on the authentication below that fits you the best and follow the instructions: Data Manager API connection Sign in to the Data Manager API Connection via the Stape admin. To sign in, [log in to your Stape account](https://stape.io/login) → open the required container → Connections tab → next to Data Manager API, click Sign in. Use a Google account that has access to the Google Ads account for which you want to configure data sending. ![Stape's "Connections" tab](https://cdn.stape.io/i/6926f4a0e0966994598269.png) For EU users, please review the [Stape DPA](https://stape.io/dpa), as activating the connection may result in data being transferred outside the EU through Stape Inc. ![Data transfer notice](https://cdn.stape.io/i/6926f4ff4030e248228788.png) Own Google Credentials Using [Service Account impersonation](https://developers.google.com/data-manager/api/devguides/quickstart/set-up-access?credential_type=service_account) is the easiest way to authenticate when using the Own Google Credentials method. To configure it, follow the instructions below: 1. Go to the [API Console in Google Cloud Platform](https://console.developers.google.com/). Select a project → on the left side menu, click Library → search for Data Manager API → click Enable. ![Enable Data Manager API](https://cdn.stape.io/i/6926f6c79d367157876671.png) 2. Create a Service Account in this GCP Project. Go to [Create Service Account](https://console.cloud.google.com/projectselector/iam-admin/serviceaccounts/create?walkthrough_id=iam--create-service-account#step_index=1) → add a service account name (the service account ID is generated based on this name) → (optional) add permissions and/or principals with access → click Done. ![Create Service account](https://cdn.stape.io/i/6926f79e5a621590966594.png) 3. Add the Service Account Token Creator IAM role (roles/iam.serviceAccountTokenCreator) to the Service Account. In the Service Accounts section, click on the three dots next to the service account you've created in the previous step → select Manage Permissions → Manage Access → Add role → select Service Account Token Creator and click Save. ![Assign a role in GCP](https://cdn.stape.io/i/6926f83e880a6534674364.png) 4. Generate a JSON Key from this Service Account ([how-to](https://docs.cloud.google.com/iam/docs/keys-create-delete#creating)) and download it. In the Service Accounts section, click on the three dots next to the service account you've created in step 2 → select Manage Keys → Add key → Create new key → select JSON and click Create. The key should be automatically downloaded on your computer. ![Create a private key](https://cdn.stape.io/i/6926fa004295e090754639.png) 5. Connect the Service Account to the container using the JSON Key file: If hosting on Stape, [use the Service Account power-up](https://stape.io/blog/how-to-connect-google-service-account-to-stape). If not hosting on Stape, follow [Google's instructions](https://developers.google.com/tag-platform/tag-manager/server-side/manual-setup-guide#optional_include_google_cloud_credentials). 6. Grant the Service Account access to the product you're interacting with (Google Ads, DV360, etc.). Please refer to the documentation on the product you connect to. Configure Data Manager API for Google Ads/Display & Video 360 using Stape's solutions Click on the solution that meets your tracking needs, find out more about it, and follow the configuration instructions 👇 Track offline/online conversions with Google Data Manager API Conversion Events tag 1. Add the Googlehttps://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-conversion-events-tagData Manager API Conversion Events tag to your workspace in the server GTM container. 1. Open server GTM container → Templates → next to Tag Templates click Search gallery → find Google Data Manager API Conversion Events → click Add to workspace. ![Google Data Manager API Conversion Events](https://cdn.stape.io/i/6a4e43933068a298417836.png) 2. Create a new tag. 3. Go to Tags section → click New → select Google Data Manager API Conversion Events as a tag type. ![select Google Data Manager API Conversion Events as a tag type](https://cdn.stape.io/i/6a4e43937d6ea571199691.png) 3. Configure the tag. 3.1 Product - the default product is Google Ads. 3.2 Operating Customer ID - this is the ID of the Google Ads account that will receive the conversions. Set this to the customer account ID. To find it, [log in to your Google Ads account](https://ads.google.com/home/), click on your profile picture in the top right corner, and copy the displayed ID. Ensure you use the same account that was used to sign in to the Data Manager API Connection. Before using the ID as the Operating Customer ID, remove any hyphens. ![Operating customer ID in Google Ads](https://cdn.stape.io/i/692707ebc94ff112105209.png) 3.3 Customer ID - this is the ID of the account you're using for authorization. Depending on your account type, use one of the following: If you're using a customer account directly, enter the customer account ID. If you access the customer account via a manager account, enter the manager account ID. Ensure you're using the same account that was used to sign in to the Data Manager API Connection. Before using the Customer ID, remove any hyphens. ![Customer and Manager account ID](https://cdn.stape.io/i/6927089e9c23b054288843.png) 3.4 Conversion Event ID - the ID used to track conversions (online or offline). Firstly, you need to create a conversion event. Once it's created, you can find it by going to Goals → Conversions → Summary → Access the desired Conversion Event. After you click on the Conversion Event, the ID is on the ctId URL query parameter in your browser. ![Conversion Event ID](https://cdn.stape.io/i/692709664aab3379694522.png) 3.5 Validate Only - when set to true, the request will go through validation but won't be executed. Only error messages will be returned, not the actual results. 3.6 Use Optimistic Scenario – when enabled, the tag triggers gtmOnSuccess() immediately without waiting for an API response. This improves sGTM response time but causes the tag to always report as successfully fired, even if it ultimately fails. ![Tag configuration example](https://cdn.stape.io/i/6a4e43f4761f9555144111.png) 3.7 Request-level consent - specify consent status for Ad User Data and Ad Personalization. User-level consent takes precedence over request-level consent and can be assigned to each conversion event when sending data to Multiple Conversion Events in the Conversion Events section. ![Request-level consent](https://cdn.stape.io/i/69270a1797b2a564641122.png) 3.8 Conversion events section. User Data Encoding - choose the encoding format for user identifiers: HEX or BASE64. This setting is required when uploading UserData (such as User Email Address, User Phone Number, or User Given/Family Name), so if you opt for Enhanced Conversions for Leads and need to identify users by other identifiers than click_id (GCLID), you will need to configure this field. For other data types (like User Address Region or User Address Postal Code), this setting is ignored. Default: HEX - use this when submitting non-hashed values for UserData fields (User Email Address, User Phone Number, or User Given/Family Name) or when using default values from GA4 Event Data. User Data Encryption - specifies whether the UserData (User Email Address, User Phone Number, and User Given/Family Name) is encrypted during upload. If this field is not configured, it is assumed that the uploaded identifying information is hashed but not encrypted. For other data types (such as User Address Region or User Address Postal Code), this setting is ignored. Conversion Event Mode - select sending data for either a single conversion event or multiple conversion events. ![Conversion Events settings](https://cdn.stape.io/i/69270e09c48e6863934462.png) 3.9 User Data Identifiers - define up to 10 user data identifiers. Note: you must provide at least one of the following: User Email Address(es), User Phone Number(s), or User Address. Auto-map Conversion Information - when enabled, the tag will try to automatically map parameters from the Event Data. Any value you manually enter in the fields below will take precedence over the auto-mapped values. ![User data section](https://cdn.stape.io/i/69270ebb20626849800060.png) 4. Add a trigger for the tag. Set the rules when the tag should fire. 5. Test the tag. Click Preview in both the web and server GTM containers and test the configuration. For more details on the debugging process, please refer to our [guide to debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration). ![Preview in GTM](https://cdn.stape.io/i/69270f53d93f8376958781.png) Create or remove audiences with Google Data Manager API Customer Match tag or CMS/CRM apps Stape provides a few solutions to create and fill (or remove) a Customer Match list in Google Ads: [Google Data Manager API Customer Match tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-customer-match-tag) The tag lets you send audience data to Google Ads/Display & Video 360 via the Data Manager API, making it easy to manage your Customer Match lists. The tag eliminates the need for uploading CSV files with data on your users' behavior. Stape Conversion Tracking CMS/CRM apps Stape offers a range of CMS/CRM applications that can transmit data from your CMS/CRM directly to Google Ads/Display & Video 360, creating a Customer Match list. We currently support the following platforms: [WooCommerce](https://wordpress.org/plugins/gtm-server-side/) [Shopify](https://apps.shopify.com/server-gtm) [HighLevel](https://marketplace.gohighlevel.com/integration/6698b5f4887d5c2f8125ddb1) [HubSpot](https://ecosystem.hubspot.com/marketplace/apps/meta-leads-api-by-stape) 👉 For the detailed configuration guidelines, please check our articles on [setting up automatic Google Customer Match Lists](https://stape.io/blog/customer-list-google-ads). Common configuration mistakes and their fixes Terms not accepted To populate the Customer Match list, you need to accept a few terms of use: Customer Match terms. It's a legal agreement within Google Ads where you confirm that any data you upload has been collected in compliance with Google's policies (first-party only, clear opt-in). You can read more about the [Customer Match policy on Google's end](https://support.google.com/adspolicy/answer/6299717?hl=en). How to fix: the Customer Match terms usually pop up when you create the Customer Match list for the first time. Later, it must reappear; be sure to confirm that you comply with the policy. Enhanced conversion terms. Enhanced Conversions sends hashed first-party data (emails, phone numbers) from your website to Google to "fill in the gaps" when cookies are blocked. That's a list of terms that allows Google to use this hashed data to match conversions to signed-in Google accounts. How to fix: go to the Goals section → Settings → Enhanced Conversions. Check the box next to Turn on enhanced conversions. A window with terms must pop up; be sure to accept the terms. Note: if your conversions are managed via the Manager Account (MCC), the customer data terms must be accepted from the manager's account. ![Enhanced conversions](https://cdn.stape.io/i/69b92e22af100369583254.png) Enhanced conversions for leads aren't turned on Enhanced Conversions for Leads (ECfL) is the specific feature that allows Google to attribute conversions using first-party data (like hashed emails) rather than just Google Click ID (GCLID). ECfL provides the framework to match CRM data using hashed first-party identifiers (like emails) instead of cookies or click IDs. How to fix: go to the Goals section → Settings → Enhanced conversions for leads. Check the box next to Turn on enhanced conversions for leads. A window with terms must pop up; be sure to accept the terms. ![Enhanced conversions for leads](https://cdn.stape.io/i/69b92f4c3831b587695322.png) Not an appropriate access level for the connection account To link a third-party tool (like Stape) to your Google Ads account via the API, the user account needs specific permissions. Lower access levels (like Read-only or Billing) cannot grant the necessary scopes for the Data Manager API to "write" or "upload" data to the account. How to fix: Obtain Standard or Admin access to authorize the OAuth flow. The transaction_id isn't sent with the event transaction_id for Google's new feature that allows unifying and recovering lost conversions within Google Ads. The feature is required to match your external source's events with those already tracked by your website tag. For more information on [Google's additional sources measurement feature](https://stape.io/blog/google-tag-based-measurement), check our article. If you encounter the error says REQUIRED_FIELD_MISSINGThe reason is often that you selected a conversion type that requires a Transaction ID, but didn't provide one in the tag. The requirement is determined by the Conversion Action Type: Website (any online conversions) - a transaction_id is mandatory. Offline (import from clicks) or enhanced conversions for leads - a transaction_id is optional. For more info on when transaction_id is required, refer to [Google's documentation](https://developers.google.com/data-manager/api/devguides/events/send-events?persona=datapartner#convert_to_events). If you are reporting an online "Website" conversion, you must provide a transaction_id regardless of whether the event is a purchase, a lead, or any other type. How to fix: You need to provide the transaction_id. Be sure to have a variable that will grab transaction_id in your Google Data Manager API Conversion Events tag. ![Transaction ID](https://cdn.stape.io/i/69b93123e6923299387836.png) The variable configurations: Variable Type - Event Data Key Path - transaction_id ![Variable - transaction ID](https://cdn.stape.io/i/69b932350f285531819899.png) Consent is not specified or has the wrong format The error INVALID_ARGUMENT for ad_personalization or ad_user_data points to consent. It means that the consent signal was either missing or sent in a format the API didn't recognize. Google can process only three values: CONSENT_GRANTED CONSENT_DENIED CONSENT_STATUS_UNSPECIFIED As provided in the tags: !["Request-level Consent" section](https://cdn.stape.io/i/69b9336a7db17399996869.png) How to fix: check whether you specified the consent status in the Request-level Consent section of the tag. If you are dynamically viewing the consent status and using a variable in the Request-level Consent section, you need to transform the values into the appropriate ones that will be understandable for Google. For this purpose, use the LookUp variable. Conclusion With the Google Data Manager API, you transfer first-party data from CRM/POS systems or server-side online events directly into Google Ads/Display & Video 360. Whether you are tracking offline conversions/Enhanced Conversions for Leads, or managing Customer Match lists automatically, the Data Manager API provides an efficient and scalable solution. --- # Beyond the basics: unexpected server-side tracking wins from real projects Source: https://stape.io/blog/interesting-server-side-tracking-use-cases Explore how server-side tracking can boost performance: faster sites, cleaner data, higher ROI, and more thoughtful insights from every customer interaction. Most server-side tracking setups follow a familiar pattern: data accuracy improves, cookies behave as expected, and the implementation quietly works in the background. But agencies know that not every project fits neatly into that pattern. There are always those cases that stand out, the ones that force you to think harder and design a solution that goes well beyond the standard approach. At Stape, we see these challenges frequently. They push us to experiment with new methods, automate complex workflows, uncover hidden insights, and ultimately deliver measurable results for clients. These situations are often where the real potential of server-side tracking reveals itself. In this article, we explore some of our favorite out-of-the-box server-side tracking cases and the lessons we learned from them. From tracking marathon runners to managing dynamic coupon flows to identifying bots with greater precision, these examples highlight what is possible when conventional setups are not enough. ![Server-side tracking precision illustration](https://cdn.stape.io/i/69202faf8b770941700348.png) Case 1: Cleaning up underreporting and bot traffic to make real growth visible One eCommerce client approached us with a familiar challenge: their ad platforms were underreporting conversions due to browser restrictions, consent limitations, ad blockers, and, as we later discovered, a large chunk of bot traffic coming from a single country. On paper, their performance looked acceptable, but nearly 20% of real conversions were missing while invalid sessions polluted the attribution. To fix both problems, we implemented a manual server-side CAPI setup using Stape and Google Tag Manager, with additional help from our own power-ups: A server-side container on Stape for privacy-compliant data processing. A [Custom Loader](https://stape.io/solutions/custom-gtm-loader) delivering scripts via the client's domain to bypass blockers. The Stape [Conversion Tracking CRM apps](https://stape.io/blog/send-data-stape-conversion-tracking-crm-apps-guide) to enrich the data layer and streamline deployment. Our internal power-ups to automate validation, traffic scoring, and payload enhancement. Once the foundation was in place, we focused on diagnosing the underreported traffic. With [User ID](https://stape.io/solutions/user-id), [Geo Headers](https://stape.io/solutions/geo-headers), and [User Agent Info](https://stape.io/solutions/user-agent-info) applied, we were able to evaluate every incoming server-side request. This allowed us to detect a clear pattern: a large volume of bot traffic originating from one specific country and using identical browser signatures. We configured server-side variables to classify those requests and block them directly on the server before they could distort analytics, trigger unnecessary events, or consume budget. The result was a cleaner dataset and far more reliable attribution. Outcome: higher signal quality, elimination of bot traffic, and the confidence to scale spend with verified, high-quality conversions. Used: [User ID](https://stape.io/solutions/user-id), [Geo Headers](https://stape.io/solutions/geo-headers), and [User Agent Info](https://stape.io/solutions/user-agent-info). Lesson learned: fixing underreporting isn't only about accurate numbers; it reveals hidden growth opportunities and protects your data from invalid traffic. More examples: another eCommerce example is the [Transparent Digital Services case with Stape](https://stape.io/blog/transparent-digital-services-server-side-tracking-case-study), where server-side tracking helped a skincare brand get more complete data in GA4 and ad accounts, raised match quality above 9, and increased recorded purchases from 1,724 to 4,512 after the deployment. Case 2: Improving speed and tracking at the same time A client came to us with a tracking challenge: while online leads from their website were tracked correctly, offline leads, such as those generated after phone calls or manual CRM updates, weren't showing up as conversions in marketing platforms. These leads reached the CRM with only contact details, missing all marketing attribution data. To solve this, we implemented a custom workflow powered by the [Stape Store](https://stape.io/solutions/stape-store): When a user filled out a form on the website, we tracked it as a standard online lead and simultaneously stored the user's cookies, IP address, and User Agent in the Stape Store. Once the lead entered the client's CRM, the client could requalify it: for example, marking it as a Qualified Lead or WON. The CRM then sent a webhook containing the lead's email to Stape. We used that email to look up the stored data in Stape Store, and when a match was found, we merged the previously saved marketing data with the webhook payload. The combined dataset was then sent to the appropriate marketing or analytics platform, making sure the conversion was correctly attributed. Outcome: this process allowed us to connect offline actions back to the user's original online session, giving the client a complete picture of their customer journey, from first interaction to final conversion. Used: Stape Store. Lesson learned: server-side tracking can help connect offline and online actions of users. Case 3: Automating data quality checks A client needed a way to accurately track and distinguish between coupons applied to an entire order and those applied to specific products. The goal was to send complete and structured coupon data to analytics platforms, both at the order and item level. When a purchase occurred on the client's website, we used a [Data Tag](https://stape.io/solutions/data-tag-client) to send transaction details to the server. On the server, we applied our [JSON Response tag](https://stape.io/solutions/json-response-tag)combined with an [HTTP Lookup Variable](https://stape.io/solutions/http-lookup-variable) to make a request to the Shopify Admin API using the transaction ID. This allowed us to retrieve detailed information about all coupons used in the order, including whether they were applied to specific products or to the entire purchase. Once the API returned the data, it was passed back to the Data Tag in the web container, which then triggered a dataLayer push containing the coupon details. We used this push in a trigger group together with the standard purchase trigger, ensuring the purchase tag only fired once all coupon data was available. The combined data from the dataLayer was processed with JavaScript, enriching the "items" array with the corresponding coupon codes and defining the general "coupon" value for the order. To extend this setup, we also used Stape Store and our [Transaction Checker](https://stape.io/solutions/duplicate-transaction-checker-variable) (a variable built on top of Stape Store). This component stores both the purchase ID and coupon ID, ensuring consistent data across systems. When a coupon is saved in Stape Store and later used in a purchase, the transaction data is automatically matched and sent with the correct coupon information. Outcome: consistent data across systems. Used: Stape Store, Transaction Checker, JSON Response tag and HTTP Lookup variable. Lesson learned: automating coupon tracking at both the order and item level ensures more accurate attribution, cleaner reporting, and deeper insight into which discounts truly drive conversions. Case 4: Tracking marathon participants and building custom analytics A sports event client needed a comprehensive way to track marathon participants, including their performance, event locations, background in previous races, and results from new runs, and to visualize all this data in one place. All participant information was already available in the dataLayer, including details such as t-shirt size, event location, race timing, and the finish time of each runner. Using the [Data Tag](https://stape.io/solutions/data-tag-client), we collected all these parameters directly from the data layer and transferred them to [BigQuery](https://stape.io/blog/write-data-to-bigquery-from-google-analytics-4). There, we created a custom data schema with all the fields the client needed, fully tailored to their event tracking requirements. The schema could be as detailed or as minimal as needed, depending on the reporting goals. Once the data was structured in BigQuery, the client could easily generate custom reports and performance dashboards, analyzing results by location, category, or any participant attribute. Outcome: using Stape products, we centralized all the clients' data in BigQuery, enabling them to independently create custom reports and build a performance dashboard in whatever format they needed. Used: Stape Data Tag, BigQuery. Lesson learned: with flexible server-side data collection and custom schemas, even complex offline events like marathons can have real-time, data-driven analytics at scale. ![Stape out-of-the-box solutions illustration](https://cdn.stape.io/i/69204739c430f921240119.png) Ready to test these results with your clients? For agencies, reliable tracking, even in the most unusual or complex cases, leads to stronger results and happier clients. This is exactly why Stape built tools tailored for teams managing multiple projects. Our goal is to give agencies everything they need in one place, including the flexibility required for non-standard or advanced setups. With the Agency account, you can keep all client setups in one dashboard, manage access, and handle billing separately for each. The [Partner Program](https://stape.io/partner) lets you earn a lifetime commission from every hosted client, so the projects you build today keep bringing value in the future. You'll also get practical tools to make every setup smoother: [Website Tracking Checker](https://stape.io/website-tracking-checker) to review tracking setup quality and find missed events. The [Setup Assistant](https://stape.io/blog/setup-assistant-by-stape) will generate ready-to-use GTM templates. Power-ups like Cookie Keeper and Custom Loader for better tracking performance. Apart from these ones, [Stape has a lot of awesome power-ups](https://stape.io/solutions/category/power-ups) that can help you make your tracking better and easier. Transparent pricing and simple onboarding so that you can focus on results, not logistics. Want to see how it all works? Create your [free Agency account](https://stape.io/sign-up/agency) and start testing advanced server-side setups with your next client. And if you have handled your own unusual or out-of-the-box tracking cases, we would love to hear about them. Share your experience in the comments; it might inspire the next creative solution. --- # How to improve Klaviyo event tracking: a guide to better data collection Source: https://stape.io/blog/improve-data-collection-for-klaviyo Learn about Klaviyo tracking with Anonymous ID, and improve data accuracy. Receive up to 40% more added-to-cart events. Accurate data collection is essential for building effective marketing strategies. Klaviyo can unify customer identifiers, stitch fragmented events together, and build a complete customer profile. When implemented correctly, [Klaviyo's server-side tracking](https://stape.io/solutions/server-side-klaviyo-tag) allows brands to collect cleaner data, match users across devices and sessions, and improve the accuracy of automations. In this guide, we will explore how to get precise data from Klaviyo, enabling you to harness the full capabilities of Klaviyo by effectively 'backfilling' would-be anonymous events. Learn more [how to set up Klaviyo for Shopify via server Google Tag Manager](https://stape.io/blog/how-to-set-up-klaviyo-for-shopify-via-server-google-tag-manager). Before we dive into how to, let’s briefly see what we’re working with. What is Klaviyo identity resolution? [Identity resolution](https://help.klaviyo.com/hc/en-us/articles/12902308138011) refers to the process of maintaining a unified customer record, regardless of the various identifiers (e.g. email, phone number, etc.) used across different touchpoints or devices. As customers interact with your brand across different channels, Klaviyo checks for opportunities to merge these engagements under a single customer profile. This is based on a process called identifier precedence, where Klaviyo uses existing data to determine if these omni-channel engagements can be consolidated under a single, stronger identifier. Klaviyo ranks these identifiers as: Profile ID - the primary identifier Klaviyo assigns to each profile. It's almost never used explicitly. External ID – usually, this is an actual logged-in customer ID, persistent on your backend. External ID can be used as a primary identifier of the profile, typically in place of the email address. Email - the email address associated with a profile. This is your most common identifier. Phone number - the phone number associated with a profile. Anonymous ID - if Klaviyo cannot associate a user with an email address, an anonymous ID will represent it. Guide on using Anonymous ID in your Klaviyo server-side GTM setup Today we are looking at Anonymous ID, for two main reasons: Effectively, we will be tracking anonymous events. So using Anonymous ID fits perfectly for the purpose. It's the lowest one in the identifiers hierarchy, therefore our efforts will not interfere with identity resolution based on other, more prevalent IDs and common scenarios. As explained above, Klaviyo requires at least one identifier to create a profile entity for tracking events. Our goal is to add an anonymous ID to our tracking tags. This includes tags where an email is always expected (e.g., Purchase) as well as those where an email is only occasionally expected (e.g., Active on Site, View Item). We need something persistent that lasts at least for a single session, ideally even longer. You can use cookies that your tracking stack already generates, like FPID from GA4, _fbp from Facebook, or another persistent cookie, storage, or variable. For the purposes of this guide we will use [Stape User ID](https://stape.io/solutions/user-id) as our anonymous identifier. We will also assume you have a basic Klaviyo setup, as described in our [setup guide](https://stape.io/blog/how-to-set-up-klaviyo-for-shopify-via-server-google-tag-manager#guide-on-setting-up-klaviyo-for-your-shopify-store-with-gtm-server). How to use Anonymous ID 1. Make sure the User ID power-up is turned on (alternatively, you can replace it with any other persistent id you have access to and skip this step in such case). ![Stape User ID power-up](https://cdn.stape.io/i/691f3ccb527f7026563816.png) 2. Create a Request Header variable in your server GTM to pick up User ID value. ![Request Header variable configuration](https://cdn.stape.io/i/691f0cfac19c5087064104.png) 3. Assign your variable as Anonymous ID in [Klaviyo tags](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/klaviyo-tag). ![Anonymous ID in "Added to Cart" event](https://cdn.stape.io/i/691f2681885c6899096065.png) ![Anonymous ID in "Placed Order" event](https://cdn.stape.io/i/691f2791c3386585071928.png) Both our anonymous events, and events carrying email will now share Anonymous ID, making it possible to resolve them to a single profile. 4. Test & publish! Now let's check this in action: Added to Cart event fires w/o email, i.e., anonymously, but the request actually gets delivered (see 202 status) because it carries one of the supported identifiers. !["Added to Cart" event details](https://cdn.stape.io/i/691f2b035a798933080035.png) As we passed an Anonymous ID, a blank profile with our Added to Cart gets created in Klaviyo. !["Added to Cart" event created in Klaviyo](https://cdn.stape.io/i/691f2b9962f7f531249746.png) We then identify ourselves on the site by making a Purchase (other cases like customer login, of course, apply as well). !["Placed Order" event details](https://cdn.stape.io/i/691f2d2d797e3370182187.png) Our profile is no longer anonymous because it now includes the user's email. Events that we triggered anonymously (e.g., Added to Cart) are still part of the history and can be used in your automations. ![Profile containing the user's email with anonymous events recorded in Klaviyo](https://cdn.stape.io/i/691f33edc339a261041862.png) ➡️ Note: had we identified ourselves with an email that already had a record in Klaviyo - a profile merge would occur automatically combining our historical data with the anonymous session, as can be seen below. ![Profile merge in Klaviyo](https://cdn.stape.io/i/691f32ef82f36296875605.png) Results: 37% increase in Added-to-Cart events By using the capabilities of Klaviyo API combined with tools from Stape, we can now collect anonymous events to our Klaviyo in a way that they will ultimately resolve to actual emails, once customers identify themselves. In our trial run with a partner shop over a week native Klaviyo tracking delivered: 421 Added to Cart events, while the method above delivered 577 cart additions, only counting the non-anonymous profiles (so, those that resolved to an email in the end) - that is a 37% increase w/o any significant effort. --- # What is marketing mix modeling? MMM decoded Source: https://stape.io/blog/marketing-mix-modeling-mmm Marketing mix modeling uses aggregated data to measure channel impact, plan budgets, and forecast sales in a privacy-safe way. Key takeaways Marketing mix modeling (MMM) is a statistical method that shows how marketing activities affect sales and revenue. It helps find which channels really drive results. MMM uses aggregated data instead of cookies or user-level tracking, so it works in a privacy-safe way. Reliable MMM needs at least two years of daily or weekly data to include seasonality and validate results. Open-source tools from Meta and Google make MMM easier to run, update, and use for budget planning. What is marketing mix modeling (MMM)? Marketing Mix Modeling, or MMM, is a method that measures how each marketing channel affects sales. It uses statistical models to separate what comes from marketing actions like ads or promotions from what comes from external factors such as seasonality or price shifts. With MMM, marketers can: See the incremental ROI of each paid channel more accurately than with attribution models. Break down ROI by campaign type, such as Meta's upper or bottom funnel ads. Forecast sales using the current media mix. Reallocate budget to improve ROI or sales goals. Estimate how seasonality influences performance. ![Marketing Mix Modeling](https://cdn.stape.io/i/691c3ca2bc20f168414093.png) How MMM works: simple breakdown MMM takes into account both media activities, like paid ads, and non-media factors, like promotions or seasonal peaks such as Black Friday. It usually uses 2–3 years of weekly or daily data and applies regression analysis to find links between actions and results. Regression helps identify how much each factor, like paid media, seasonality, or TV ads, contributes to business goals such as sales or new customers. MMM can also show: When ad spend starts to reach saturation levels. How long does it take for an ad’s effect to be fully visible. Model accuracy through KPI values like R², NRMSE, Decomp.RSSD, or MAPE. Each model's validity must be tested, often with "what-would-have-happened" scenarios, to check prediction quality. Main parts of marketing mix modeling Before building an MMM, define who joins the project and what goal it serves. Most companies use MMM to optimize their media mix, improving ROI without raising spend. Even if the build stage seems detailed, modern software makes it faster. The focus should stay on high-quality input data, since it defines how reliable your model will be. After that, run the statistical checks to confirm reliability. In the final stage, the model compares what's under your control (like ad spend) with what isn't (like seasonality). It then recommends how to allocate the budget in the smartest way to reach your chosen goal. ![MMM stages](https://cdn.stape.io/i/691b21378c61d896854030.png) Pros and cons of marketing mix modeling Marketing mix modeling is a reliable way to measure the real impact of marketing. It helps link investments to outcomes, even when cookies or user-level tracking are no longer available. Like any model, it has strengths and conditions for accurate results. Here’s what to know before running it. Strengths MMM respects privacy since they don't depend on personal tracking. MMM works across all channels and includes both marketing and non-marketing factors. MMM provides budget allocation insights for better long-term strategy. MMM can be improved with experimental data, such as [conversion lift studies](https://stape.io/blog/conversion-lift-studies-and-mmm), so predictions stay closer to real incremental lift. Conditions MMM depends on solid historical data from at least 2–3 years. Gaps or errors in the data can strongly bias the output. What people get wrong about MMM Many marketers still see MMM as complex or only for big brands. In reality, it has changed a lot. Modern MMM tools are faster, easier to use, and work well next to platform data. Here are some common myths that often confuse people, and what's actually true. MMM doesn't show results in real time. Thanks to automation, it can now update daily. Data from platforms like Google Ads, Meta, and CRMs can feed straight into MMM dashboards. MMM can't replace platform attribution. It shouldn't. MMM works best as a complement. Platform attribution has limits, like missing cross-platform data and fixed attribution models. Comparing both MMM and in-platform reports helps plan smarter budget shifts and get a clearer view of performance. MMM is too complex to understand. Not anymore. Open-source MMM projects have made the process clear and transparent. Ask your analytics partner to walk you through their model. MMM is only for companies with huge budgets. That's outdated. Modern MMM software is cheaper and scalable, fitting companies of all sizes. Best MMM solutions Marketing mix modeling isn't a new trend at all. It has been around since the golden age of TV, when commercials ruled screens in the 70s and 80s. The idea itself isn't new. What changed is the technology and the environment around it. Privacy laws like GDPR in the EU and Apple's App Tracking Transparency in iOS 14.5 made cross-site tracking difficult, pushing marketers to find safer ways to measure impact. Cheaper cloud storage and stronger computing now make MMM easier to run and far less expensive. In the past, big consultancies such as Deloitte or Bain built MMM with private code. Now, with open source tools like [Robyn by Meta (since 2021)](https://github.com/facebookexperimental/Robyn), [Meridian by Google (since 2023)](https://github.com/google/meridian), and [PyMC-Marketing (since 2023)](https://github.com/pymc-labs/pymc-marketing), brands can build their own models in-house. There are also SaaS platforms like Cassandra that offer ready-made, reliable MMM options at a lower cost. ![Reasons to choose MMM](https://cdn.stape.io/i/691b269acb1cd360714257.png) For cleaner signals to feed MMM and bid systems, see our guide on [improving Google Ads performance](https://stape.io/blog/improve-google-ads-performance). Who is the right partner to manage your marketing mix modeling MMM is now open to most marketing teams. Third-party SaaS tools like [Cassandra](https://cassandra.app/) now make setup simple and fast. What used to take months can be done in days thanks to cloud technology, which has made it affordable and light to manage. Cassandra suggests using MMM if your brand meets these points: Your monthly ad budget is above 30,000€. You run campaigns on at least three channels. You have two or more years of business data available. Marketing mix modeling examples Recent Cassandra case studies show ROI lift and cost reductions after MMM-guided changes and budget reallocations. Here are clear examples you can copy fast: Boscolo Viaggi, travel. [Result](https://cassandra.app/case-studies/boscolo-viaggi): +45% revenue, +10% ROI with only +27% ad spend. What they did: moved from GA last click to MMM, used seasonality and channel ROI to plan spend monthly. Gina Tricot, fashion retail. [Result](https://cassandra.app/case-studies/gina-tricot): +53% ROI MoM (month over month); total budget went down by 26%. What they did: cut generic search and some influencer spend, shifted to Meta direct response campaigns and Performance Max based on diminishing returns and confidence intervals. Treedom, subscriptions and eCommerce. [Result](https://cassandra.app/case-studies/marketing-mix-modeling-and-tree-planting): −19% Cost per Order, −15% total ad spend. What they did: stopped inefficient Performance Max and reinvested in better-performing media from the model. What made it work for them MMM gives a full-mix view, covers offline and online conversions, and is privacy-friendly. It replaces assumptions with ROI ranges and shows room to grow before you hit saturation. Then the clients can reallocate and measure again. Want to see how audio fits into a media mix? Discover how [Spotify advertising](https://stape.io/blog/spotify-ads-pros-and-cons-cost) works and what it costs. How to implement marketing mix modeling? Following in more detail the steps described above, we see the right steps as follows: Scoping. Agree with all parties on the data needed, the model approach, and actions for the next quarter. Data ingestion. Collect 2 to 3 years if possible, weekly or daily. Include outcome KPI, media spend, organic, other marketing, and context variables. Data validation. Check completeness and consistency. To reduce data gaps and non-reported conversions, set up [server-side tagging](https://stape.io/) on a cloud server. Client-side tracking alone often misses part of the data. Browser limits, blocked third-party cookies, and ad filters can stop events from being sent, so some conversions never reach analytics or ad platforms, making reports incomplete. With server-side tracking, the data first passes through a cloud server before going to those platforms. This adds control and helps you share only the needed data, and keeps tracking compliant with privacy laws. It also improves accuracy because fewer browser issues interfere, giving MMM more complete inputs and making budget advice more reliable. Setting up server-side tracking can be technical, but [with Stape, the process becomes easier](https://stape.io/blog/google-tag-manager-setup) thanks to ready solutions that handle part of the configuration for you. Model Build. Select or auto-select variables, adding holidays and seasonality, and setting the modeling window. You can also check multicollinearity and coverage alerts, then plug in geo experiment results when available. After validation and calibration, use R², NRMSE, RSSD, and MAPE to confirm accuracy. Budget scenario planner. Walk through outputs; move budget according to specific goals and forecasted values. Production. Set a weekly or monthly refresh. Define a clear decision process to keep meeting the commercial goal. This article was written in collaboration with [Gabriele Franco](https://www.linkedin.com/in/gabriele-francoo/), CEO at Cassandra. FAQs from marketers What is the difference between Marketing Mix Modeling and Attribution Modeling? Last-click data can be misleading. It shows where users were before they bought, not what actually made them buy. For example, someone sees a YouTube ad on Monday, clicks a paid search ad on Thursday, and buys on Friday. Last-click or in-platform attribution would give almost all credit to that search ad. But it ignores that the person may have already been planning to buy. Marketing mix modeling (MMM) looks deeper. It estimates: How many sales would happen even without paid ads, based on seasonality or returning customers. This is called the baseline. From the rest, how many sales are really driven by marketing activities. MMM also helps plan future scenarios more precisely. It is especially useful during busy times like Black Friday or Q4. With MMM, budget planning can be based on realistic scenarios that already consider seasonality months ahead. What data sources are needed for effective MMM? To make MMM work, you need the right data. The model can only be as good as the information it receives. Here are the main types of data every business should collect before starting. Sales or outcome data from its CRM or similar system, daily or weekly, for at least the past two years. Media activity data, such as impressions and spend, by channel or activity, daily or weekly, for two years. This should include both online and offline media. Organic marketing data like email, SMS, or SEO. Contextual data, such as promotions, holidays, large events, or macro factors with exact dates from the same period. What are the limitations of using MMM in modern marketing? There are three main ones marketers often overlook: Data gaps and reporting delays. Even Google Analytics cannot see all impressions or clicks from every channel. It misses part of the media mix, especially from non-Google platforms or offline sales. Ad platforms also use last-click attribution, which tends to over- or under-credit campaigns, especially those in the upper funnel. Short histories and fast changes. Ad platforms evolve constantly. Five years ago, Reels ads didn't exist. Two years ago, AI-based systems like Google's Performance Max or Meta's Advantage+ Shopping Campaigns were not active. These fast shifts can change returns sharply in a short time. Correlation between channels. When budgets move together across channels, it becomes hard to separate each one's real impact. For example, if all digital channels get +30% spend for Black Friday, returns may look unstable unless adjusted or grouped. What are the most common challenges when implementing MMM in a business? The biggest challenge is usually low adoption inside the company. Teams might not fully understand what marketing mix models are, how they are built, or how to use their results. This lack of clarity slows down adoption. Companies that have long relied on old attribution methods or platform reports may find it hard to change their decision process. Switching to a new, data-based way of measuring results takes time and internal alignment. How to evaluate Marketing Mix Modeling platforms? Start with data requirements. Check whether the platform works with the volume and history your business has, ideally two or more years of weekly or daily inputs. Look at model transparency and whether the platform lets you validate results through scenario testing. Check the refresh rate, since some platforms update weekly while others require months to rebuild. Compare pricing early, as costs vary between open-source tools like Robyn or Meridian and SaaS options like Cassandra. Finally, check whether the outputs translate into budget recommendations your finance or strategy team can act on, not just statistical results that are hard to interpret without a technical background. --- # Web tracking explained: infographics Source: https://stape.io/blog/web-tracking-hierarchy The full web tracking process explained: from user actions and tracking layers to Conversions API, data flow, compliance, and main marketing KPIs. Tracking data is the way for marketers and business owners to learn and adapt their strategies. But when events go missing or numbers do not match across platforms, optimization slows and budgets get wasted on campaigns that maybe don't bring results. That happens because tracking works across several layers that often get disconnected. Users act on your site, tags capture those actions, and platforms turn them into conversions. If one step breaks, the signal is lost before it reaches your reports. A clear structure connects those layers again and keeps the data flow consistent. The following tracking hierarchy shows how every interaction moves from the user to the final conversion. It gives you visibility into what happens at each step, so you can understand how data travels, where it changes, and what might need fixing. 🔶 To check whether your setup is missing events, you can run it through our [Tracking checker](https://stape.io/website-tracking-checker). ![Web tracking fully explained - infographics](https://cdn.stape.io/i/6915fbb665fff818558048.png) The first layer is the user interaction layer. Every click, scroll, or form fill starts here and becomes a signal for your analytics tools. The next layer is the tracking layer. This is where actions become measurable. Tag managers and APIs record the signals, check consent, and send them to analytics and ad platforms. Client-side tracking works in the browser, while server-side tracking adds a cloud layer that keeps events complete even when browser rules limit visibility. Together, they form a stable system where data moves smoothly and stays accurate. The final layer is conversion types. This part shows what all your tracked actions actually lead to. Each event connects to something real, like a new lead, a sale, or a visit recorded in your CRM. When you see how these layers connect, optimization becomes easier and faster. You can trace any issue through the flow and correct it without disrupting everything else. And because consent is built into this same structure, privacy is a part of how tracking works. Each step follows clear rules for what data is collected and where it goes. Only the information that matters leaves your site, and every request respects user choice. This approach keeps tracking compliant with GDPR and CCPA while keeping the view complete. It lets you work with data that is both accurate and responsible. --- # Send data from Salesforce to platform you need with Stape's app Source: https://stape.io/blog/salesforce-connector Stape's Conversion Tracking app sends lead updates and online/offline conversions from Salesforce to your chosen platform, helping improve audience targeting. The Stape Conversion Tracking Salesforce CRM app is a tool that allows users to connect Salesforce CRM with the required platforms (which support server-side tracking). It sends Lead status updates to the platforms through a secure server-side integration. Additionally, the app supports sending offline conversion data. How does the Stape's app work? The app serves as a Salesforce data connector. Once the app is configured, it automatically begins monitoring the status of your Leads in Salesforce. Any status changes are sent as conversion events to Meta CAPI Gateway, Signals Gateway, or a server GTM container where they are processed. After it, the data is transfered to your destination. By receiving detailed data on how Leads that interacted with an ad progressed afterward, the platforms can more effectively analyze user behavior and identify audiences that are most likely to convert into customers. ![How Stape Conversion Tracking app works](https://cdn.stape.io/i/691205bdbc8e2082608444.png) Stape Salesforce app provides a 1-day free trial. After the trial expires, you'll need an active license to continue using the integration. Who can benefit from the Stape Conversion Tracking App for Salesforce? The Stape Conversion Tracking app for Salesforce is useful for businesses that: Run Facebook Lead Ads campaigns This app will be helpful for companies focused on generating leads through [Facebook Lead Ads](https://stape.io/blog/facebook-lead-ads). When someone submits a Facebook form, their details are automatically sent to Salesforce. The app also sends updates on Lead statuses back to Meta, helping the platform optimize your campaigns. Handle a large number of offline conversions For businesses that close sales through phone calls, consultations, or in-store transactions after running ads online, this app is highly beneficial. When a purchase is recorded in Salesforce, the app automatically forwards that conversion data to the platform you need, acting as a connector between Salesforce and the platform you need. In this way, you can be sure that offline sales contribute to campaign optimization and give you a complete view of ad performance. ![Offline conversions](https://cdn.stape.io/i/691205f17010f065509926.png) Use server-side GTM and need to send data from SalesForce to other platforms If you configure the app using server-side GTM, you can transfer Salesforce data to any[platform that supports server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). Benefits of using Stape's app for Salesforce Benefit | What's in it for you? Automated data flow | The app automatically sends conversion data from Salesforce to platforms that support server-side tracking. No need to manually upload CSV files. Data enrichment | Using server-side GTM as the configuration method, you can share data with any platform that supports this tracking method. Track offline conversions | Easily transfer offline conversion data (in-store sales or phone call conversions) from Salesforce to the platform you need. Flexible integration methods | The app offers several integration options to suit your setup: Meta Conversions API Gateway, Signals Gateway, or server-side Google Tag Manager. How to set up Stape Conversion Tracking Salesforce app App installation 1. Install the [Stape Conversion Tracking Salesforce app](https://appexchange.salesforce.com/appxListingDetail?listingId=20bda0b1-fdc1-4ba4-ac41-2156880a3ffe) from Salesforce. 2. Give the app the scopes it requires. Once you click Allow and Install, the app configuration page is displayed. Integration methods: CAPI Gateway, Signals Gateway, or server GTM ![Configuration methods](https://cdn.stape.io/i/690e1167b13bb879599750.png) Integration method depends on your tracking setup and goals, and/or on your current experience with Stape. Click on the section below that corresponds to the tracking method you use: Meta CAPI Gateway Before you start Make sure you have an active Stape account with Meta Conversions API Gateway If you don't have an account on Stape, please [create one](https://stape.io/fb-capi-gateway/create) or [log in](https://stape.io/login) if you already have. In the main menu click More Gateways → Meta CAPIG → Create CAPIG on the top right. ![Create Gateway button](https://cdn.stape.io/i/67c0881d319b4836132217.png) Add name, email, and server location for new CAPIG. Then, choose the subscription plan and add billing details. After creating Meta Conversions API Gateway in your Stape account, connect your Meta Dataset (Pixel) - just click Add data source → authorize in Meta → select the Business Manager and Dataset (Pixel) you want to connect. ![Authorize in Meta](https://cdn.stape.io/i/67c0881d1deda745570959.png) To increase the events match quality, please enable Automatic advanced matching. ![Enable Automatic advanced matching](https://cdn.stape.io/i/67c0881d6d8cb188068266.png) For more detailed instructions, check [Stape's article on how to set up Meta Conversions API Gateway](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway). App setup The setting process can be divided into two parts: - Meta and Stape accounts data- Salesforce CRM fields Meta and Stape accounts data You will need to fill in the following fields: ![Meta fields](https://cdn.stape.io/i/690e12b997eb8291895685.png) - Meta Dataset (Pixel) ID - a unique identifier that is used to configure integrations and view events in Events Manager. You can find it in your Meta account in Data Sources' Settings tab. See the detailed instruction on [how to find Meta Dataset (Pixel) ID](https://stape.io/helpdesk/knowledgebase/how-to-find-meta-dataset-pixel-id). - CAPIG API Key - an alphanumeric string value that is needed for app identification. Find CAPIG API Key in the CAPIG settings section of your Stape account. See the detailed instructions on [where to find CAPIG API Key](https://stape.io/helpdesk/knowledgebase/how-to-find-capig-api-key). ![Meta fields](https://cdn.stape.io/i/67c0881c9cf91386034172.png) Salesforce CRM fields Next you need to map your CRM fields to conversion event parameters. - (Optional) Pick a field where Meta Lead ID is stored. Note dropdown will only reflect custom fields. - Configure additional User data you'd like to send to Meta, by choosing a parameter in the left dropdown and selecting an appropriate field in the right-side one. ![Fields configuration](https://cdn.stape.io/i/690e13be43a9d531594231.png) Application sends conversion Events based on stages of your Leads, whenever an opportunity reaches a stage you define, a corresponding event will be sent towards your Meta Dataset (Pixel). In the left-side dropdown select a Lead stage to trigger an event, in a box to the right type the event name you’d like to send to Meta. ![Fields configuration](https://cdn.stape.io/i/690e14130516d017004123.png) Once done, click Save and Connect. Once you see a success message your installation is complete and the application will send conversion events in the background based on your settings. ![Events configuration](https://cdn.stape.io/i/690e14831bda7365948036.png) Signals Gateway Before you start Make sure you have an active Stape account with Signals Gateway If you don't have an account on Stape, please [create one](https://stape.io/meta-signals-gateway/create) or [log in](https://stape.io/login) if you already have. In the main menu click Signals Gateway → Create Signals Gateway on the top right. ![Create Signals Gateway on Stape](https://cdn.stape.io/i/67c0881c9dee2687371291.png) Add name, email, and server location for new Signals Gateway. Then, choose the subscription plan. ![Status "Running" in the Signals Gateway](https://cdn.stape.io/i/67c0881cbdb5b791291606.png) For more detailed instructions, check [Stape's article on how to configure Signals Gateway](https://stape.io/blog/what-is-signals-gateway). App setup The setting process can be divided into two parts: - Signals and Stape accounts data- Salesforce CRM fields Signals and Stape accounts data You will need to fill in the following fields: ![Signals Gateway fields](https://cdn.stape.io/i/690e154d5a489898009726.png) - Signals Gateway Pixel - a unique identifier that is used to configure integrations and view events in Signals Gateway. You can find it in your Signals Gateway account in the Data Sources tab. See the detailed instruction on [how to find Signals Gateway Pixel ID](https://stape.io/helpdesk/documentation/how-to-configure-signals-gateway). - Signals Gateway API Key - an alphanumeric string value that is needed for app identification. Find Signals Gateway API Key in the Gateway settings section of your Stape account. See the detailed instructions on [where to find Signals Gateway API Key](https://stape.io/helpdesk/documentation/how-to-configure-signals-gateway). ![Show Signals Gateway API Key](https://cdn.stape.io/i/67c0881cbfa13304002299.png) Salesforce CRM fields Next you need to map your CRM fields to conversion event parameters. - (Optional) Pick a field where Meta Lead ID is stored. Note dropdown will only reflect custom fields. - Configure additional User data you'd like to send to Signals Gateway, by choosing a parameter in the left dropdown and selecting an appropriate field in the right-side one. ![Fields configuration in Signals Gateway](https://cdn.stape.io/i/690e15e4a3483676919280.png) Application sends conversion Events based on stages of your Leads, whenever an opportunity reaches a stage you define, a corresponding event will be sent towards your Meta Dataset (Pixel). In the left-side dropdown select a Lead stage to trigger an event, in a box to the right type the event name you’d like to send to Meta. ![Events configuration](https://cdn.stape.io/i/690e163f33983858605767.png) Once done, click Save and Connect. Once you see a success message your installation is complete and the application will send conversion events in the background based on your settings. ![Events configuration](https://cdn.stape.io/i/690e16971de68704717787.png) Server GTM Before you start Make sure you have an active Stape account with a server GTM container hosted on Stape. If you don't have an account on Stape, please [create one](https://stape.io/sign-up) or [log in](https://stape.io/login) if you already have. In the main menu click sGTM → Create container on the top right. ![Create an sGTM container](https://cdn.stape.io/i/67c0881d2e045355809681.png) Add your container name, Container Configuration that you copied from your Google Tag Manager Server Container, and select server location. Click Create Container. For more detailed instructions, check [Stape's article on how to set up a Google Tag Manager server container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). App setup The setting process can be divided into two parts: - Stape accounts data- Salesforce CRM fields Stape account data You will need to fill in the following field: ![Container API Key in the Container settings section](https://cdn.stape.io/i/690e17b238a93026738143.png) - Container API Key - an alphanumeric string value that is needed for app identification. Find Container API Key in the Container settings section of your Stape account. See the detailed instructions on [where to find Container API Key](https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key). ![Container API Key in the Container settings section](https://cdn.stape.io/i/67c0881d2149d446654619.png) Salesforce CRM fields Next you need to map your CRM fields to conversion event parameters. - (Optional) Pick a field where Meta Lead ID is stored. Note dropdown will only reflect custom fields. - Configure additional User data you'd like to send to server GTM, by choosing a parameter in the left dropdown and selecting an appropriate field in the right-side one. ![Fields configuration in server GTM](https://cdn.stape.io/i/690e185c52e8c535766444.png) Application sends conversion Events based on stages of your Leads, whenever an opportunity reaches a stage you define, a corresponding event will be sent towards your Meta Dataset (Pixel). In the left-side dropdown select a Lead stage to trigger an event, in a box to the right type the event name you’d like to send to Meta. ![Events configuration](https://cdn.stape.io/i/67c0881ce02b0065284205.png) Select the Send all stages checkbox if you want to send all Contacts stages as events to server GTM. Events are then named automatically and consist of a Contact status name. You can also select stages to ignore in this case. ![Events configuration](https://cdn.stape.io/i/690e18d62fcce506553544.png) Once done, click Save and Connect. Once you see a success message your installation is complete and the application will send conversion events in the background based on your settings. ![Configuration with server GTM](https://cdn.stape.io/i/690e190f32082551588742.png) Configure sending data to the required platforms With the current setup, the app will send events to your server GTM container, but to distribute them to platforms like Meta, TikTok, Google Ads, or any other, you need to configure the CAPI tags inside GTM to fire accordingly. 1. Configure the [Data Client](https://stape.io/solutions/data-tag-client) to claim the JSON requests sent from the CRM app. Go to the Templates → click “New” → upload the [Data Client template](https://github.com/stape-io/data-client) you’ve previously downloaded from the Github. 2. Go to the Clients section of your sGTM container → click “New” → select Data Client. That’s basically it, your configuration will look like in the screenshot below. Click “Save”. ![Data Client config](https://cdn.stape.io/i/699847b459f87991590366.png) 2. Select the platforms you need to send data to from sGTM. While setting up server-side tracking with sGTM, you might have already configured the CAPI tags for the required platforms, for example: - [Facebook CAPI tag](https://stape.io/solutions/facebook-capi-tag) - [Google Data Manager API Conversion Events tag](https://stape.io/solutions/google-data-manager-api-conversion-events-tag) https://stape.io/solutions/google-data-manager-api-conversion-events-tag- [TikTok Events API tag](https://stape.io/solutions/tiktok-events-api) - [LinkedIn Conversions API tag](https://stape.io/solutions/linkedin-conversion-api-tag) - [Amazon Conversions API tag](https://stape.io/solutions/amazon-conversions-api-tag) Or any other tags for [platforms that support server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). You will need to use them to configure sending data from your CRM to the required platforms. To give you an understanding of how to configure the tags this way, we will take the Facebook platform as an example. You should map the events according to the requirements of the platforms you use. 4. Create a new Facebook CAPI tag. Go to the Tags section in sGTM → add “Facebook Conversion API” as tag type. 5. Configure the tag. Event Name Setup Method: Override Event Type: Custom. Select a built-in variable “Event name”. Action Source: System Generated. Add Pixel ID and generate API Access Token: for the detailed instructions on how to find these values, please refer to our guide on [where to find Meta Pixel ID and API Token](https://stape.io/helpdesk/documentation/find-meta-pixel-id-capi-token). Here is an example of how your configuration will look at this point: ![Facebook CAPI tag basic config](https://cdn.stape.io/i/6998489887280539488584.png) User data section: select properties from the drop-down list - Lead ID, Browser ID, Click ID. These three are basic. For each property, add a variable that will take the appropriate value from the request sent from the CRM app. Create a following variable for Lead ID: - Variable Type: Event Data - Key Path: lead_id ![Lead_id variable](https://cdn.stape.io/i/69984903308e0494746715.png) Create two different variables for Browser ID and Click ID: - Variable Type: Event Data (for both), as the IDs will be retrieved from the event sent from CRM, not from the cookie. - Cookie Name: fbp (for Browser ID variable) and fbc (for Click ID variable) ![Fbc variable](https://cdn.stape.io/i/6998494923927817677523.png) ![FBP variable](https://cdn.stape.io/i/6998495d01bd5712838428.png) Here is an example of the user data section configuration: ![Example of the user data section configuration](https://cdn.stape.io/i/6998497997edc888648997.png) Custom data section: add a few custom fields to identify the source of the event. Event_source property name with crm value. lead_event_source - as property value, add a variable with the following configurations: - Variable Type: Event Data - Key Path: lead_event_source ![Lead_event_source variable](https://cdn.stape.io/i/69984a33c5b6f615344715.png) Here is how this configuration will look like in the tag: ![Custom Data section configuration](https://cdn.stape.io/i/69984a504276c000903559.png) 6. Add a trigger for a tag. Use the following configurations: - Trigger type: Custom - This trigger fires on: Some events Besides, add the following conditions for a tag to trigger: - Client Name equals Data Client - Action Source equals system_generated The variable for action source must have configurations as on the screenshot below: ![Action source variable](https://cdn.stape.io/i/69984ab31ad15642009836.png) - Event Source equals crm Configure the variable for the event source as shown in the screenshot: ![Event source variable](https://cdn.stape.io/i/69984ae6e8b20421649595.png) As a result, your trigger will look similar to the example from the screenshot below: ![Trigger configuration example](https://cdn.stape.io/i/69984b06d5884621651664.png) 7. Test the setup. Since it is, in fact, a webhook that is sent from CRM to the server GTM, you can refer to the article on [debugging incoming webhooks in server GTM](https://stape.io/blog/debug-webhooks-google-tag-manager-server) for the detailed instructions. Settings editing If you have some changes in the funnel or you want to change the events sent to Meta, you can always edit your app configuration. To do this, navigate to your Salesforce Home page and either use the App Launcher search or click on the Stape Conversion Tracking tab in the navigation menu: ![Create an sGTM container](https://cdn.stape.io/i/68e7ad7f09962280907765.png) Conclusion Using the Stape Conversion Tracking Salesforce app provides a simple and convenient way to send lead status data from Salesforce to the platforms you need. To get started, you'll need a Stape account and set up one of the supported server-side tracking methods: server-side GTM, Meta Conversions API Gateway, or Signals Gateway. --- # 360K+ recovered events and 76% fewer blocked requests with server-side tracking | mare interno Source: https://stape.io/blog/ga4-data-discrepancies-fixed-case-study mare interno fixed tracking issues between EC-CUBE and GA4 with Stape, getting clear, reliable data without extra tech work. Key takeaways: mare interno helped their client, a cosmetic manufacturer, to implement server-side tracking through Stape. The problem was with data discrepancies that limit marketing insights. Used tools: server-side tracking hosting, Custom Loader, and Cookie Keeper. 360K+ recovered events and near-perfect data stability. Cleaner, more complete data led to better marketing insights and decisions. EC-CUBE integrations can run smoothly through Stape setup. Cookie Keeper maintains session consistency and data reliability. Stape Analytics visualizes recovery and validates improvements in real time. [mare interno](https://stape.io/partner/mare-interno), a Japanese data-tracking agency and Stape’s official partner in Japan, was approached by a client facing a challenge. A cosmetics manufacturer, running their e-commerce site on EC-CUBE — a popular local CMS — noticed that the purchase data in EC-CUBE didn’t match what appeared in GA4. The marketing team needed a solution for more accurate tracking. That's where mare interno stepped in, using Stape’s solutions to help the client optimize their tracking setup and ensure data accuracy. ![mare interno and Stape partnership](https://cdn.stape.io/i/6911fdce53fde291943612.png) mare interno and Stape partnership Challenge: rebuild accurate tracking Data discrepancies between EC-CUBE and GA4 limited accurate marketing insights. The company lacked an in-house system manager, so every fix required external help. They needed a simple, reliable way to make tracking accurate again. Solution: switching to Stape server-side tracking mare interno provided a solution that included: Server-side tracking to collect cleaner data (learn [how to set up server-side tracking](https://stape.io/blog/how-to-start-with-server-side-tracking) in our article). [Custom Loader](https://stape.io/solutions/custom-gtm-loader) to run tags on their own domain. [Cookie Keeper](https://stape.io/solutions/cookie-keeper) to keep sessions consistent. The setup only took one day. Verification took longer since the site used EC-CUBE and an external CDN, but with Stape’s support, they got it working smoothly. Results: recovered 76% of all previously blocked browser requests After implementation, the team checked their [Stape Analytics](https://stape.io/solutions/stape-analytics) dashboard, and the difference was clear. “In the first 30 days, Stape recovered over 360,000 events that were previously blocked by browsers. That’s about 76% of all requests. Since most of our client’s users browse on Safari, this made a huge difference in how complete and accurate our data became.Cookie Keeper also reached a 99.99% success rate, which gave us a stable base for all tracking.” — [Kenichi Uchiumi](https://www.linkedin.com/in/kenichi-uchiumi-9a046ab9/), CEO at mare interno Now, their client’s GA4 data accurately reflects what happens in their EC-CUBE store. Why it matters: the ready-to-use model for local EC-CUBE integration mare interno is the first official Stape partner in Japan. They also created localized setup know-how for EC-CUBE, helping other Japanese brands improve tracking accuracy without hiring technical specialists. After seeing strong results, mare interno plans to expand Stape’s server-side tracking to other platforms, including Shopify Japan. Takeaway: reliable data and no maintenance through server-side tracking The client’s client-side setup was losing conversions and valuable event data because of browser restrictions and ad blockers. By implementing a managed server-side GTM via Stape, mare interno ensured that all tags and identifiers ran reliably on their client’s EC-CUBE store. Using Stape Analytics, they validated full data recovery and performance stability. Why choose Stape: Quick, guided setup: no developers required. Custom Loader and Cookie Keeper ensure accurate tag execution. Stape Analytics provides transparency and proof of recovery. Stable data across all browsers improves attribution, optimization, and ROI. --- # Make your A/B tests smarter with server-side tracking Source: https://stape.io/blog/server-side-ab-testing Improve your marketing with server-side A/B testing. Collect accurate data and achieve better results by implementing server-side tracking for your experiments. ![A/B testing illustration](https://cdn.stape.io/i/690c735436284064679597.png) A/B testing only works if your data is accurate. If your results are off, you risk making decisions that cost time and money. Server-side A/B testing helps you run experiments in a way that reflects real user behavior, allowing you to test bigger changes and get more reliable insights. In this post, we'll explain how server-side testing can improve your A/B experiments and help you make better marketing decisions. What is A/B testing? A/B testing, sometimes called split testing, is a method of comparing two different versions of a website, email, app, landing page, or other digital asset. It's used to determine which version performs better. A/B testing works by randomly showing users two options and using statistical analysis to see which one drives the best results. ![How A/B testing works](https://cdn.stape.io/i/690c758c10bb2074394790.png) In a nutshell, here's how A/B testing works: You create two versions of the element you want to test. You randomly split your traffic between these two versions. You measure user engagement or conversions for each version. You analyze the results to determine which version performs better. A/B testing can be applied for many purposes, from minor website adjustments like changing a button or headline to major redesigns of a product or service. By systematically comparing versions with A/B testing, you can: 1. Improve user experience and engagement Optimize design elements such as layout, colors, and CTAs. Increase conversion and engagement rates. 2. Make data-driven decisions Remove guesswork from important decisions. Validate assumptions before implementing changes. 3. Improve marketing and business outcomes Refine marketing strategies. Achieve better business results and higher revenue. Identify high-performing campaigns and content. 4. Additional benefits to consider Reduce the risk of negative changes. Prioritize product or feature improvements based on real user data. Foster a culture of experimentation and continuous improvement. It all comes down to this: in 2025, A/B testing remains a core strategy, with 77% of companies testing on their websites and 71% running multiple tests per month. ![Digital success core strategy](https://cdn.stape.io/i/690c8660ab36c459569847.png) And now the question is: how do you run A/B tests the right way to get the most value? There are two main approaches: client-side A/B testing and server-side A/B testing. Let's take a closer look at each. What is server-side A/B testing? Server-side A/B testing is a method where the variations of a test are generated on the server before being sent to the user's browser. This differs from client-side A/B testing, where variations are applied on the client side using JavaScript after the page has loaded. Key differences between server-side and client-side A/B testing Both server-side and client-side A/B testing have advantages depending on the scenario. Choosing the right approach depends on the type of results you want to achieve. Let's compare the two approaches step by step. Client-side vs. server-side A/B testing | Client-side A/B testing | Server-side A/B testing Operation principle | Experiments and personalization are handled in the user's browser. JavaScript determines which variation to display and updates the content dynamically. Great for testing front-end elements like UI components, layout changes, and text without server changes. | Experiments and personalization are handled on the server. When a user requests a page, the server generates the variation and delivers it fully rendered to the browser. Ideal for testing backend logic, APIs, and database-driven content. Ease of implementation | Faster deployment; only needs test script insertion or variation configuration. | Slower deployment; backend changes must be implemented and tested before release. Deployment time | Deployment is generally faster because you only need to insert a test script or configure variations in the testing tool. | Deployment takes longer since changes must be implemented and tested in the backend before being released. Performance / Page load impact | May cause flickering or slower page load because variations are rendered after page load. | No flickering; content is fully rendered before reaching the user, providing smoother performance. Controls and flexibility | Limited to front-end elements; harder to test backend features or complex logic. | Complete control over front-end and back-end; can test any feature or workflow. Data accuracy | May have tracking issues due to ad blockers, JavaScript errors, or slow-loading scripts. | More [reliable customer data collection](https://stape.io/blog/customer-data-collection) because variations are determined and logged on the server. Experiment complexity | Best for simple experiments; limited when testing interactions between front-end and backend logic. | Suitable for complex experiments involving business logic, data processing, or multi-step user flows. Cost | Lower; can often be implemented by marketers or product managers. | Higher; requires developer time and QA resources. Use cases | Headlines, subheadings, button text/colors, layout tweaks, images/videos, minor personalization, simple UI animations, promotional banners. | Core functionality changes (checkout, sign-up), algorithms (recommendations, personalization), pricing logic, API integrations, multi-step flows, feature flags, performance optimizations, security/authentication flows, complex personalization based on server-side data. The takeaway is that neither approach is inherently better or worse; they are simply different. Both server-side testing and client-side testing have their advantages and limitations. The right choice depends on your goals, resources, and the complexity of the experiments you want to run. If your A/B testing needs are more complex, server-side testing offers greater control over backend logic and multi-step user flows. This extra control helps prevent errors and flickering while ensuring more reliable and accurate experiment results. Next, let's explore how server-side A/B testing can maximize the effectiveness of your experiments. Why and how server-side A/B testing improves results The main advantage of server-side A/B testing is its ability to capture data accurately and reliably. By handling experiment logic directly on the backend, server-side testing eliminates many of the inconsistencies that can occur in client-side setups. With server-side A/B testing, you get a clearer picture of what truly drives user behavior, allowing you to make more informed decisions and optimize your experiments effectively. And coupled with the [conversion rate optimisation guide](https://stape.io/blog/conversion-rate-optimisation-hack), it can further help you turn these insights into measurable performance improvements across your funnel. Why server-side A/B testing delivers better results More accurate and reliable data. When all experiment logic happens on the backend, server-side A/B testing ensures that every event, whether a click, signup, or purchase, is captured consistently. This includes reliable conversion measurement, so you can precisely see how changes impact key actions. Case study: 24% more Google Ads conversions from a 4.5-month A/B test: server-side GTM vs client-side | seoplus+ Challenge: significant data loss and skewed attribution due to strict browser restrictions and ad blockers in a client-side tracking setup. Solution: running an A/B test comparing client-side vs. server-side tracking using Stape's Custom Loader and Cookie Keeper to bypass browser limitations and restore lost signals, plus Stape Analytics to validate the results. Results: a 24% increase in Google Ads conversions and 12% recovery of data interactions that were previously blocked. Read more here: [https://stape.io/blog/sgtm-seoplus-marketing-measurement](https://stape.io/blog/sgtm-seoplus-marketing-measurement) Consistent experience across devices. In client-side testing, a user might see one version on mobile and another on desktop. With server-side testing, each user is assigned to a variation before the page loads, ensuring a consistent experience across sessions and platforms. This consistency leads to more accurate results. Ability to test deeper functionality. Server-side testing allows you to go beyond layout or copy changes. You can test backend functionality, pricing models, API performance, recommendation engines, and more. It also enables conversion testing to see how backend changes affect sign-ups, purchases, or other key actions. Better data integration and privacy control. Server-side A/B testing works directly with your analytics tools and CRM, making it easier to connect test results with key business metrics such as sales, customer retention, and engagement. Because all data stays within your backend systems, it's more secure and [compliant with privacy regulations](https://stape.io/blog/personally-identifiable-information). In short, server-side A/B testing provides more reliable results, smoother performance, and the ability to test larger, more meaningful changes. While it requires more setup, it pays off with clearer insights and smarter, data-driven decisions. Best tools for server-side A/B testing Selecting the right platform can have a significant impact on your server-side A/B testing performance, ensuring that experiments run smoothly and results are accurate. Once you decide to move your experiments to the backend, the right tool can make all the difference. Some platforms are designed for developers who need complete control, while others focus on making testing easier and less technical. Below are five tools that stand out in 2025 for their reliability, flexibility, and performance in server-side A/B testing. Optimizely Full Stack. Ideal for large teams and complex applications. It allows you to run experiments on both the backend and frontend, providing flexibility and scalability. VWO FullStack. Enables server-side testing with easy SDK integration. It's suitable for teams looking to implement experiments across various channels without impacting performance. LaunchDarkly. Focuses on feature flagging and experimentation, allowing you to test features on the server side. It's beneficial for teams aiming to control feature rollouts and measure their impact. GrowthBook. An open-source platform that supports server-side A/B testing. It integrates with your existing data systems, making it customizable and developer-friendly. Flagsmith. Offers server-side feature flagging and A/B testing capabilities. It's open-source and integrates well with analytics tools like Amplitude or Mixpanel. How to move from client-side to server-side A/B testing Who should consider moving to server-side testing: Teams running complex experiments that involve backend logic, APIs, or databases. Those concerned about data accuracy, especially if client-side experiments are affected by ad blockers or slow browsers. Teams aiming for consistent user experiences across devices and sessions. Organizations needing better privacy compliance, since all data is processed on the server. Checklist for transitioning to server-side A/B testing: Define experiment goals. Identify the features or backend logic to test and set clear success metrics. Select a platform. Choose a reliable tool for server-side A/B testing. Integrate experiments with backend logic. Ensure events and variations are handled on the server and connected to your analytics systems. Use feature flags (optional but recommended). Start, stop, or adjust experiments from the backend without changing your code. Test and validate. Verify that users see the correct variations and that results are being captured accurately. Launch the experiment. Start small, monitor performance, and gradually expand to your full audience. Analyze and iterate. Review results from server-side data and make data-driven improvements. This checklist provides a clear overview of the steps involved in moving from client-side to server-side A/B testing and highlights the additional control and accuracy you gain. Conclusion Server-side A/B testing isn't just a technical upgrade; it's a way to make your experiments smarter, more reliable, and more insightful. By moving the experiment logic to the backend, you gain cleaner data, smoother performance, and the ability to test larger, more meaningful changes that truly impact your business. To ensure you capture all events accurately and don't lose data due to ad blockers or browser limitations, it's also recommended to [implement server-side tracking](https://stape.io/blog/how-to-start-with-server-side-tracking) alongside your experiments. This way, you can measure conversions and user actions more reliably and get a full picture of your A/B test results. While it requires more setup than client-side testing, the payoff is clear: more accurate results, consistent user experiences across devices, and better integration with your analytics and CRM systems. In short, if you want your A/B tests to reflect real user behavior and support smarter marketing decisions, server-side A/B testing is the way to go. --- # Breadcrumb tracking for cross-session and cross-device user identification | Leopose Digital Source: https://stape.io/blog/track-users-across-multiple-sessions-breadcrumb-method Find out Leonardo Pose’s Breadcrumb data tracking method, and what role Stape's power-ups play in shaping this methodology. Leonardo Pose, the founder of [Leopose Digital](https://leopose.digital/) and Stape's partner, has developed a tracking method called the “Breadcrumb tracking method.” This approach enables the logging of user activities across multiple sessions and devices. In this article, we will look in-depth at how this method works and its benefits. Problem: tracking across sessions and devices affected by browser restrictions Leonardo Pose needed to track user behavior across multiple sessions and devices and attribute the events to a specific website visitor. However, he faced challenges due to browser restrictions - particularly [Safari's Intelligent Tracking Prevention](https://stape.io/blog/safari-itp) (ITP) - which limited cookie lifespans and disrupted tracking capabilities. Solution: setting up first-party cookies Note: The solution below applies only to requests for which the user has consented. Utilizing server-side tracking does not eliminate the need to obtain consent for data processing. To address the problem with the lifespan of cookies, Leonardo has decided to create a [custom domain using the same origin](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container#using-the-same-origin), which allows first-party cookies to be set up. Also, he opted for Stape’s [Cookie Keeper](https://stape.io/solutions/cookie-keeper). The power-up allowed prolonging cookies' lifetime and guaranteeing that marketing cookies continue to work even if the original cookies were erased. As the key identifier to track users’ behaviour, Leonardo has chosen User ID. He used Stape’s [User ID power-up](https://stape.io/solutions/user-id), which allowed this parameter to be added to the server GTM event data. In the case of Leopose Digital, after the person has provided the data (name, email, and phone number) by purchasing the course on the “Breadcrumb tracking method”, this data was saved and recorded in a BigQuery table. The unique user ID was assigned to each user who consented to data processing and/or bought a course. It is then integrated into their corresponding record within the BigQuery table. Besides email, phone, name, and assigned User ID, Leonardo also records the browser and device type, city, country, and region of the website visitor. He uses another power-up to track this data list: [GEO Headers](https://stape.io/solutions/geo-headers). Here is how it looked on the side of the server GTM - configured Request Header variables. You can find the detailed instructions on this [Request Header variable configuration](https://stape.io/blog/how-to-easily-add-user-agent-and-geo-data-to-server-gtm) in our article. ![Variables configuration](https://cdn.stape.io/i/6909d1d3c49dd402064445.png) The data on the user (including the User ID) is saved in cookies. If the person visits the website later, Leonardo could easily identify the user and create a log of users’ actions before a significant event happened (e.g., purchasing a course on “Breadcrumb tracking method”). All the user data that website visitors gave consent to process, as well as event data, is stored in a BigQuery table. Leonardo uses the “[Write to BigQuery](https://tagmanager.google.com/gallery/#/owners/trakken/templates/gtm-server-tag-template-write-to-bigquery)” tag to send data to BigQuery. From BigQuery, the data can be sent to various tools, for example, Google Analytics 4 or Looker Studio for visualization and easier segmentation. In the screenshot below, you can see the example in Looker Studio kindly provided by Leonardo. ![Logs in Looker Studio](https://cdn.stape.io/i/6909d1fbb3733596547280.png) Results Before users entered their email address, events under the same user_id couldn’t be identified. Leonardo Pose’s solution changed that; after users gave their email via consent mode, all past events from that user_id became identifiable. ![Results](https://cdn.stape.io/i/6909d21732dc6566732216.png) Later, Leonardo decided to share the method with others. He developed the “Breadcrumb method” and teaches how to implement it. Summary Leonardo Pose’s "Breadcrumb tracking method" has proven to be an effective solution for cross-session user attribution. By creating a persistent User ID and using Stape’s power-ups like Cookie Keeper, User ID, and GEO Headers, the method reduced the impact of browser restrictions and unified the customer journey. As a result, all past events under a single user ID became identifiable after a user gave consent. --- # Stape Store use cases: how it supports your tracking needs Source: https://stape.io/blog/stape-store-use-cases Stape Store is a built-in database for sGTM users that helps with duplicate checks, cross-domain tracking, POAS, CDP setup, and data storage. [Stape Store](https://stape.io/solutions/stape-store) is a built-in NoSQL database for server-side Google Tag Manager users. It's fast, reliable, and easy to use - you can store and retrieve any type of JSON data without setting up an external database. While it was originally built to simplify data management inside server containers, companies apply Stape Store in many creative ways. To learn everything about this feature, its capabilities, and how to use it to the fullest, check out our [detailed guide on Stape Store](https://stape.io/helpdesk/documentation/stape-store-feature). But in this piece, let's take a look at some of the most common and interesting ways to utilize Stape Store, and how you, too, can benefit from it. !["Store" tab in Stape account](https://cdn.stape.io/i/69086f3792715853320532.png) 1. Using Stape Store instead of Firestore Many users choose Stape Store as an alternative to Firestore. They use it to store everything from customer data to purchase history (for example, saving all products their clients have bought). There can be different reasons to do so - for instance, Stape Store is built directly into the Stape platform, so there's no need for any external setup. You can start saving and reading data immediately inside your sGTM container, without leaving your Stape account. Some users even purchase Stape's subscription and don't use power-ups, [sGTM hosting](https://stape.io/gtm-server-hosting), or any services other than Store. For them, the Store feature alone is valuable enough to justify the cost! 2. Duplicate transaction checker Another popular use case is detecting duplicate transactions. Duplicate conversions can inflate your analytics and cause wrong attribution in platforms like Google Ads or Google Analytics. By storing transaction IDs in Stape Store, you can easily check if a conversion has already been processed. This setup is handy for server-side tracking with conversions uploaded via APIs. Why it's useful: Accurate metrics: each transaction is counted only once. Better attribution: prevents wrong credit being assigned to multiple channels. Smarter budgeting: helps allocate ad budgets based on clean, trustworthy data. 3. Enriching webhooks with stored data Webhooks automate data transfer between web apps in real time. Some of our clients use Stape Store to add extra data to webhooks. This approach ensures your tracking events always include the full context. It works like this: When a user performs an online action (e.g., a form submission), you save their cookies or identifiers in the Store under a key such as their email. Later, when a webhook event comes in, you look up the same key in the Store, retrieve the user data, and send a complete dataset, including cookies and identifiers, to platforms like Google Ads or Meta Conversions API. ![How webhooks work (compared to APIs)](https://cdn.stape.io/i/690875c85e66d098166298.png) 4. Cross-domain tracking Cross-domain tracking often breaks because cookies can't be shared between domains. With Stape Store, you can save cookies or identifiers under a shared key (for example, a user ID) and then restore them when the same user lands on another domain. This way, your user data stays consistent, and your analytics can accurately attribute conversions even across different websites. How it works in practice: When a user visits your first domain, you store key tracking data (cookies, session IDs, user identifiers) in Stape Store. When the same user continues their journey on another domain, the system retrieves the stored data from Stape Store using the shared identifier. This restored data helps preserve the connection between visits and conversions, ensuring your analytics and advertising platforms recognize that it’s the same user. 5. Profit Over Ad Spend (POAS) tracking Most advertisers measure performance using ROAS (Return on Ad Spend), but ROAS doesn't include product costs. [Profit Over Ad Spend (POAS)](https://stape.io/blog/profit-on-ad-spend) is a more precise metric. It focuses on actual profit, not just revenue. With Stape Store, you can securely store and retrieve profit data and use it instead of revenue when reporting conversions to Google Ads or Analytics. This way, you can: Run profit-based bidding while keeping sensitive financial data private. Upload conversions in real time without exposing internal numbers. Get a more realistic picture of which ads truly drive profit, not just sales. 6. Building a Simple Customer Data Platform (CDP) A CDP combines user data from multiple touchpoints into one unified view (websites, apps, CRMs, offline systems). Instead of paying for expensive CDP tools, you can [build a simple version using server-side GTM + Stape Store](https://stape.io/blog/building-a-custom-cdp-and-enriching-event-data-using-server-side-gtm). Your sGTM container receives all events (online or offline). Each event is written to Stape Store, grouped by a unique user identifier (like user ID or email). If new data arrives, it merges with existing records to build a complete customer profile. You can then use that profile for advanced targeting, personalization, or analytics. This setup gives you full control over your customer data, without third-party dependencies. ![Flow illustration](https://cdn.stape.io/i/6908819bc326f495591095.png) 7. General Data Storage Finally, Stape Store is useful in almost any case where you need to store data temporarily or long-term and then use it later. It's more reliable and scalable than cookies or local storage. All you need is a key to write and retrieve the data, such as a user email, ID, or session token. Create documents and collections to hold multiple files. Search and filter using conditions. Set TTL (time-to-live) for documents to automatically expire when no longer needed. Retrieve and use data stored in the store to enrich your server-side GTM event flows (e.g., for user attributes, custom parameters, tokens). Use API to programmatically access the store via endpoints. Wrapping up Stape Store has grown from a simple feature into a powerful tool that supports a wide range of tracking and data use cases. With it, you can set up cross-domain tracking, fix duplicate transactions, build a lightweight CDP, or just store data for later use. Since it's built directly into the Stape platform, there's no need to set up or maintain an external database. You can start saving and retrieving data right inside your server GTM container. Stape Store can replace tools like Firestore while keeping everything under one roof. --- # Stape's Conversion Tracking CRM Apps: use cases and benefits Source: https://stape.io/blog/send-data-stape-conversion-tracking-crm-apps-guide Stape's CRM apps for CRMs automatically send lead statuses updates from CRM to platforms such as Meta and Google Ads, improving campaign performance and audience targeting. Stape has developed several apps for CRMs. They allow users to create integration between CRM and the Meta/Google Ads or any platform. The app monitors and automatically sends status updates from CRM to the required destination via a secure, server-side connection. List of CRMs supported: [Zoho CRM](https://marketplace.zoho.com/app/crm/stape-meta-leads-for-zoho-crm) [HighLevel CRM](https://marketplace.gohighlevel.com/integration/6698b5f4887d5c2f8125ddb1/versions/6698b5f4887d5c2f8125ddb1) [PipeDrive CRM](https://oauth.pipedrive.com/oauth/authorize?client_id=cc435d5629297210&redirect_uri=https%3A%2F%2Fpipedrive.stapecdn.com%2Fpipedrive%2Fcallback) [HubSpot CRM](https://ecosystem.hubspot.com/marketplace/apps/meta-leads-api-by-stape) [Salesforce CRM](https://appexchange.salesforce.com/appxListingDetail?listingId=20bda0b1-fdc1-4ba4-ac41-2156880a3ffe) [Odoo CRM](https://apps.odoo.com/apps/modules/19.0/stape_crm) [Klaviyo CRM](https://marketplace.klaviyo.com/en-us/apps/01jvvwp56xj2439aaw4zhsa1q4/)https://ecosystem.hubspot.com/marketplace/apps/meta-leads-api-by-stape How do Stape's apps for CRM work? After configuring the app, it automatically begins tracking the status of your leads in CRM. Status changes are sent back to the server GTM, Meta CAPIG, Signals Gateway or Google Ads (based on the configuration method you've chosen). Then the data is transmitted as conversion events to your Meta Dataset, to Google Ads, creating a [Customer Match list](https://stape.io/blog/customer-list-google-ads), or other destination (you configure in your server GTM container). With server-side tracking, you can be sure that data on every conversion is transferred accurately and securely. By providing your platform (e.g., Meta/Google Ads) with info on how leads engage after interacting with an ad, the platforms can better analyze user behavior and optimize ad targeting to reach audiences more likely to convert into purchases. ![How Stape Conversion Tracking CRM apps work](https://cdn.stape.io/i/68f8d1344510a091347603.png) Use cases The Stape apps provide an effective solution for the following use cases: 1. Improve [Facebook Lead Ads performance](https://stape.io/blog/facebook-lead-ads) Facebook Lead Ads are designed to acquire leads directly on the Meta platform. When a user submits a lead form, the data is automatically sent to your CRM. Stape's app then updates the Meta Dataset with changes in lead statuses. Meta uses the data to optimize campaigns and better target audiences. ![Facebook Lead ads](https://cdn.stape.io/i/69009c6dd1cfb398499622.png) 2. Optimize Google Ads campaigns For Google Ads users, the Stape apps for HighLevel and HubSpot CRMs automatically share lead status updates with the platform after they interact with ads. It also creates a Customer Match list in Google Ads. The data from the list is used for Smart Bidding and optimized targeting. This allows advertisers to reach high-value audience segments or exclude some when setting up campaigns. 3. Sending data from CRM to any platform The option is available if you configure the app with server GTM. As the data is primarily forwarded from CRM to the server GTM, you can configure it to transfer it to any platform you need that you have server-side tracking configured for. 4. [Track offline conversions](https://stape.io/blog/interesting-server-side-tracking-use-cases) Many businesses generate conversions offline, for example, through phone calls, meetings, or in-store purchases, after initial engagement with online ads. When a purchase is recorded in the CRM, Stape's app automatically sends the data to the platform you need. Without the app, you would need to upload CSV files manually or use the [webhooks](https://stape.io/blog/webhook-server). Both these methods are less convenient and take more time than using the app. ![Offline conversions](https://cdn.stape.io/i/69048986d2639160280111.png) 5. Set up a secure and precise data transfer pipeline The Stape Conversion Tracking apps use a [server-side connection](https://stape.io/blog/what-is-server-side-tracking) to securely transfer data from your CRM to Meta or Google Ads. This tracking method is less prone to ad blockers and browser restrictions. Stape CRM apps features and benefits Feature/benefit | What do I get? Fully automated data flow | Stape's apps transfer conversion data from your CRM to Meta or Google Ads. There is no need to create webhooks, manual CSV file uploads, or Customer Match list creation. Improved Meta and Google Ads performance | With conversion data from your CRM, Meta, and Google Ads, get data on post-ad interactions. The data is used for audience targeting and higher conversion potential. Offline conversion tracking made easy | Send offline conversion events (like in-store purchases or phone call leads) from your CRM to Meta/Google Ads to further improve ad targeting. Flexible integration options | Choose from multiple integration methods that best fit your setup: Meta Conversions API Gateway, Signals Gateway, or server-side Google Tag Manager. Single-screen setup with an intuitive interface | Get started in minutes, no complex configuration required. How to start using Stape Conversion Tracking apps for CRM? Create a Stape account and select the server-side tracking method To start using the Stape Conversion Tracking app, you need to [log in](https://stape.io/login) or [create an account](https://stape.io/sign-up) on Stape. Also, you will need to configure one of the server-side tracking solutions: Meta Conversions API Gateway, Signals Gateway, or server GTM container. In the sections below, we describe the server-side tracking methods that can be used to configure the apps, so you can select the one that best suits your business and tracking needs. Meta Conversions API Gateway The Facebook Conversions API Gateway (CAPIG) is a server-side solution for Facebook tracking that offers more control and accuracy compared to using the Facebook Pixel alone. It allows precise data tracking that is not affected by ad blockers. Since all data is processed on your own server, it provides higher data security and easier compliance with privacy regulations. Best works for: businesses that run ad campaigns only on Meta Ads. Check [how to configure the Meta Conversions API Gateway](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway) in our guide.* *There is a 7-day free trial, after which the price starts from $10 per Pixel. Signals Gateway Signals Gateway is an all-in-one solution for managing first-party data. It aggregates events from various sources, such as the Pixel, SDKs, offline files, or Stape CRM apps. Then it sends them to destinations like Meta, Google BigQuery, or, with some coding, to any custom endpoint (including TikTok, Snapchat, or your own API). Best works for: businesses that need to send data to various destinations, e.g., Meta, BigQuery, custom endpoints, such as Snapchat, TikTok, your own DB, etc. Find out more about [Signals Gateway and how to configure it](https://stape.io/blog/what-is-signals-gateway) in our article.* *There is a free plan for 10,000 events. The price for paid plans starts from $20 per month. Server GTM container Server GTM container is the most flexible solution compared to the rest listed above. With its help, you can configure server-side tracking for numerous platforms. Check out the list of [platforms that support server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking); the number of platforms is constantly expanding. Best works for: businesses that require setting server-side tracking for numerous platforms and look for a solution that allows for high setup customization. See the detailed guide on [how to configure the server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container).* *There is a free plan for 10,000 requests. The price for paid plans starts from $20 per month. Server-side tracking with Stape Explore the benefits you get with server-side tracking from Stape: ✔️ Multiple options to configure server-side tracking ([server GTM hosting](https://stape.io/gtm-server-hosting) at the lowest prices, Conversions API Gateways for dedicated platforms). ✔️ [Free plans](https://stape.io/price) for server GTM hosting and Gateways. ✔️ Easy server-side configuration with detailed guides and 24/7 support. ✔️ Hassle-free maintenance - all the updates for the Conversions API Gateway/Signals Gateway are installed automatically, and any necessary server GTM resources are added without manual actions. ✔️ [Variety of products and features](https://stape.io/blog/understanding-stape-power-ups-key-features-uses) that meet your tracking needs. ✔️ [Stape Academy](https://stape.io/news/stape-academy-free-online-course-on-server-side-tagging) - free online training platform on server-side tagging. Configure the Stape Conversion Tracking app Below are the useful links for each app - a marketplace link to install and detailed instructions on configuring the apps. CRM | Link to the app | Configuration guide Zoho CRM | [Stape Conversion Tracking Zoho CRM app on the marketplace](https://marketplace.zoho.com/app/crm/stape-meta-leads-for-zoho-crm) | [How to set up Stape Conversion Tracking Zoho CRM app](https://stape.io/blog/meta-zoho-crm-conversion-tracking-app) HighLevel CRM | [Stape Conversion Tracking HighLevel app on the marketplace](https://marketplace.gohighlevel.com/integration/6698b5f4887d5c2f8125ddb1/versions/6698b5f4887d5c2f8125ddb1) | [How to set up Stape Conversion Tracking HighLevel app](https://stape.io/blog/integrate-meta-highlevel-crm-conversion-tracking-app) PipeDrive | [Stape Conversion Tracking PipeDrive app on the marketplace](https://oauth.pipedrive.com/oauth/authorize?client_id=cc435d5629297210&redirect_uri=https%3A%2F%2Fpipedrive.stapecdn.com%2Fpipedrive%2Fcallback) | [How to set up the Stape Conversion Tracking PipeDrive app](https://stape.io/blog/pipedrive-crm-conversion-tracking-app) HubSpot | [Stape Conversion Tracking HubSpot app on the marketplace](https://ecosystem.hubspot.com/marketplace/apps/meta-leads-api-by-stape) | [How to set up the Stape Conversion Tracking HubSpot app](https://stape.io/blog/hubspot-crm-conversion-tracking-app) Salesforce | [Stape Сonversion Tracking Salesforce app on the marketplace](https://appexchange.salesforce.com/appxListingDetail?listingId=20bda0b1-fdc1-4ba4-ac41-2156880a3ffe) | [How to set up the Stape Conversion Tracking Salesforce app](https://stape.io/blog/salesforce-connector) Odoo | [Stape Сonversion Tracking Odoo CRM app on the marketplace](https://apps.odoo.com/apps/modules/19.0/stape_crm) | [How to set up the Stape Conversion Tracking Odoo CRM app](https://stape.io/blog/odoo-facebook-integration) Klaviyo | [Stape Conversion Tracking Klaviyo app on the marketplace](https://marketplace.klaviyo.com/en-us/apps/01jvvwp56xj2439aaw4zhsa1q4/) | [How to set up the Stape Conversion tracking Klaviyo app](https://stape.io/helpdesk/documentation/klaviyo-stape-conversion-tracking-app) Conclusion Stape's Conversion Tracking CRM apps provide an efficient way to bridge the gap between your CRM and advertising platforms like Meta and Google Ads. The apps automatically send lead status updates to the platform. This helps advertising platforms better understand post-click behavior, leading to effective audience targeting and better campaign performance. Whether you're looking to optimize Facebook Lead Ads, improve Google Ads Smart Bidding, and/or track offline conversion, Stape’s CRM apps offer a reliable and easy-to-use solution. --- # Send data to required platform from Zoho CRM with Stape's app Source: https://stape.io/blog/meta-zoho-crm-conversion-tracking-app Stape Conversion Tracking app sends lead status updates and online/offline conversions from Zoho CRM to the platform you need for better audience targeting. The Stape Conversions Tracking for Zoho CRM app allows you to send Lead status updates from Zoho CRM to advertising platforms such as Meta, Google Ads, and other services that support server-side tracking. It also sends offline conversion data, which can be used to improve campaign optimization and help target audiences that are more likely to convert. Who can benefit from using Stape's app Stape Conversion Tracking Zoho CRM app is an excellent solution for those businesses that are: Running [Facebook Lead Ads](https://stape.io/blog/facebook-lead-ads) campaigns ![Facebook Lead ads](https://cdn.stape.io/i/69009c6dd1cfb398499622.png) This type of ad campaign is targeted at lead generation using a lead ad. The process starts when a new lead is generated from a Facebook form submission. Users fill out a form, and the data is automatically sent to Zoho CRM. Then you can continue working with the lead interested in the product or service. [Lead acquisition marketing](https://stape.io/blog/lead-acquisition) strategies can help you get more out of every form submission. Stape's app reports the data on the statuses of your leads to the Meta Dataset. Based on this data, Meta can optimize the campaigns to reach audiences that are more likely to convert. Using the server GTM container, and need to send data to other platforms This option is available when the app is configured with server GTM. Since the data is primarily sent from the CRM to the server GTM, you can set it up to forward the data to [any platform that supports server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). Having a lot of offline conversions Businesses that build their marketing funnel starting with online promotions on the Meta platform and have a lot of purchases from phone calls, online meetings, or from physical stores. Once you add the record about the purchase in CRM, Stape's app will automatically send it to Meta. Having or planning to set up and automatically update [Meta Custom Audiences](https://stape.io/blog/facebook-custom-audiences) Stape’s app allows you to manage Meta Custom Audiences directly from the server. Through integration with the Meta Marketing API, it can automatically add or remove users from specific audiences in real time. This ensures your audience data stays accurate and up to date without requiring any manual maintenance. Need to create and automatically maintain [Customer Lists in Google Ads](https://stape.io/blog/customer-list-google-ads) The app automatically creates and updates Google Ads Customer Match lists based on your CRM data. You can then use these lists to target or exclude specific audience segments when building and optimizing your advertising campaigns. Already using or wanting to implement server-side tracking The app uses a server-side approach via Stape's platform. You can select the app integration method - Meta CAPI Gateway, Signals Gateway, or server GTM. So, if you have already implemented server-side tracking or are just going to do it and use Facebook for advertising, our app is a perfect solution to collect data precisely and optimize the campaign's performance. Key app features Feature | Description Automatic reporting of lead statuses from Zoho CRM | You don't need to upload manually CVS files with status updates; the app will automatically send them to Meta. Sending offline conversions to Meta | Feed Meta algorithms with offline conversion data to improve audience targeting. Multiple integration options | Select the integration method that fits your needs best: Meta CAPI Gateway, Signals Gateway, or server GTM. Single-screen configuration with a user-friendly interface | The app is easy to configure and doesn't take a lot of time to complete. How to configure Stape Conversion Tracking Zoho CRM app App installation Conclusion The Stape Conversion Tracking Zoho CRM app bridges the gap between your CRM and Meta platform. The app automatically sends data from your Zoho CRM app to Meta on Leads' updates. With this data, Meta will optimize the campaign performance and improve audience targeting. --- # Report HighLevel Opportunity statuses to required platform with Stape Source: https://stape.io/blog/integrate-meta-highlevel-crm-conversion-tracking-app Automatically send HighLevel CRM statuses to required platforms with Stape's app. Improve campaigns, target high-intent audiences, and track offline conversions. Stape Conversions Tracking HighLevel CRM app is the tool that allows you to send Opportunities' statuses from HighLevel CRM to platforms such as Meta, Google Ads, or others that support server-side tracking. Also, it sends data on offline conversions to the platform. This data is later used for campaign optimization and targeting the audience that is likely to convert. App use cases The Stape's app will be a useful solution for the following needs: Improve [Facebook Lead Ads](https://stape.io/blog/facebook-lead-ads) campaign performance. The purpose of Facebook Lead Ads is [lead acquisition](https://stape.io/blog/lead-acquisition) through a lead ad on the Meta platform. A user submits a form, and then the form data is automatically transferred to Highlevel CRM, allowing you to follow up with prospects interested in your product or service. Stape's app then sends updates on Opportunities' statuses to the Meta Dataset. Meta uses this data to optimize campaigns and target audiences that can convert into purchases. [Lead acquisition marketing](https://stape.io/blog/lead-acquisition) strategies can help you get more out of every form submission. Optimize Google Ads campaigns. If you run campaigns on Google Ads, Stape's app can supply the platform with data on Opportunities' statuses after they interact with the ad. Our solution will automatically create a [Customer Match list in Google Ads](https://stape.io/blog/customer-list-google-ads). Send HighLevel data to specific platforms. If you use a server GTM container and configure the app with it, you can transfer data from HighLevel to [any platform that supports server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). Track offline conversions. Some businesses have a lot of conversions that are made offline. Their marketing funnel starts with online promotions on the ad platform and generates many purchases through phone calls, online meetings, or physical store visits. Once the purchase record is added to the CRM, Stape’s app automatically sends the data to Meta/Google Ads Customer Match list. Update [Meta Custom Audience](https://stape.io/blog/facebook-custom-audiences) automatically. With Stape’s app, you can manage Meta audiences directly from the server. The app communicates with the Meta Marketing API to add or remove users from specific Custom Audiences in real-time. In this way, your user data will always be up to date without any manual actions from your side. Benefits of Stape's app for HighLevel CRM Benefit | What do I get? No need for manual CVS files upload | The app will automatically send conversion data from HighLevel CRM to Meta or Google Ads; there is no need for any manual actions from your side. Meta and Google Ads campaign performance improvement | When the platforms receive data from a CRM account, they can analyze how different audience segments behave after interaction with the ad and target the users who are more likely to convert. Offline conversions tracking | You can send data from HighLevel CRM on conversions that happened in physical stores, during phone calls, directly to Meta to improve audience targeting. Multiple app integration methods | The app provides different integration methods that best suit your needs: Meta Conversions API Gateway, Signals Gateway, or server GTM. How to configure Stape Conversions Tracking HighLevel CRM app To sum up With the [Stape Conversion Tracking HighLevel CRM app](https://marketplace.gohighlevel.com/integration/6698b5f4887d5c2f8125ddb1), you can easily monitor the progress of your Opportunities and report them as conversion events to your destination. The setup process is quick and simple with a single-screen interface. You can begin reporting Opportunities' progress to your destination by mapping CRM fields to conversion event parameters in a few easy steps. --- # New ways to improve conversion rate Source: https://stape.io/blog/conversion-rate-optimisation-hack The main way to improve CRO is to fix how you track. Clean, reliable data helps ads learn faster and show to people ready to buy. In 2024, only about 13.8% of iOS users allowed app tracking, and 67% of U.S. adults said they block cookies or limit tracking altogether. These changes leave marketers with incomplete data, confusing reports, and ad algorithms that learn from only part of the customer journey. This article explains how to fix this issue through smarter tracking and cleaner data. You'll learn what conversion rate optimisation (CRO) means in practice, how it works for Facebook and Google Ads, and why server-side tracking has quietly become the most effective way to improve CRO in 2025. What is conversion rate optimization? CRO means getting more people who visit your site or see your ad to actually take action, buy, sign up, or leave their details. It's about understanding what makes users act and focusing more on the moments that bring real value. A strong CRO setup helps you to see which pages or ads move people closer to conversion and which ones only waste budget. It also connects your analytics, ad data, and customer insights in one flow so that you can make decisions based on evidence. Common ways of ads CRO Good ad CRO starts with clarity. Each part of your campaign, from the image to the landing page, should lead users naturally to act. Start with the creative, because that's where people feel your message before they understand it. The image shall catch attention, the headline holds it, and the CTA moves people just enough to take action. Let your ads sound like a real invitation, not a command: "Sign up today," "See how it works." When the message, tone, and design work together, the ad feels effortless, and that's when people respond. Then choose who sees your ads. Every platform lets you target based on age, interests, and behavior. On Facebook, you can build lookalike audiences from people who already bought from you. On Google, use keywords that show real intent, like "buy" or "compare." The goal is to reach people ready to act, not just anyone scrolling. When someone clicks, keep the same feeling they had when they saw your ad. The landing page should welcome them and give the necessary information. Make sure it loads fast, says the same thing the ad promised, and shows one clear action to take. Thanks to testing, you learn what really works and don't have to be guided by hypotheses. Change one small thing at a time, maybe the image or the tone of a line, and see how people react. If someone doesn't act right away, let them come back on their own time. Retargeting helps you stay visible and return users' attention. It reminds people of what they liked before and makes it easy to continue where they left off. Also, make sure to keep your data clean. When tracking is set up right, you see what actually happens after someone clicks. Server-side tracking by Stape helps record those actions even when browsers block cookies or pixels fail to load. It gives you real numbers to work with, so every decision is based on what users truly do. Facebook Ads CRO Facebook and Instagram ads can turn people who are simply curious into real customers when set up right. Here's what you can do to increase your conversion rates without needing a bigger marketing budget: Choose the right campaign objective. Use Conversions or Lead Generation. This helps the Facebook system understand your goal and show your ads to people most likely to act. For example, if you want people to buy something, choose the Conversion objective and link it to the Purchase event in your Pixel. This tells Facebook to show your ad to users who usually complete a purchase. Focus on creatives and message. Good Facebook ads [start with visuals](https://stape.io/blog/facebook-ad-optimization). Use clear, high-quality images or videos that stand out in the feed. Keep your text short, show the value fast, and make the next step obvious with a clear call to action. Also, test formats such as Carousel or Collection ads to display several products or benefits and increase clicks. Target precisely. Group people who have already interacted with you, like site visitors or past buyers, and create similar audiences to reach new users with similar profiles. Add interest or behavior filters to make your targeting tighter. The more relevant the audience, the better the conversions. [Use Facebook Lead Ads](https://stape.io/blog/facebook-lead-ads). They let people send their contact info directly in the app without leaving Facebook or Instagram. Forms are pre-filled and mobile-friendly, which reduces bounce rate and increases sign-ups. Lead Ads work especially well for quick lead generation campaigns. [Lead acquisition marketing](https://stape.io/blog/lead-acquisition) strategies can help you get more out of every form submission. Test ad variations. Run several versions at the same time with different visuals, headlines, or calls to action. Compare results and see which one brings more conversions. Even small changes, like switching image type or CTA text, can shift performance. Choose your bidding strategy based on what you want Facebook to focus on. If you're new, start with spend-based bidding. It helps you use your full budget and get the most results possible. You can pick Highest Volume to reach as many people as possible, or Highest Value to focus on users who are likely to make higher-value purchases. As you collect data, move to goal-based bidding. Here, you set a target for cost or return. Choose Cost per Result Goal if you want to keep each purchase or lead within a certain cost range. Or go with ROAS Goal (Return on Ad Spend) to keep your campaign's revenue consistent with your desired return percentage. If you want full control, use manual bidding. With Bid Cap, you decide the maximum amount you're ready to bid in auctions. It's best for advertisers who already understand their conversion rates and want to manage spending tightly. Note: make sure both Pixel and [Conversions API](https://stape.io/fb-capi-gateway) are active. Browser tracking alone can lose data due to privacy rules, so add Meta Conversions API through server-side tracking by Stape. It sends conversions directly from a cloud server to Facebook, helping the system learn from complete data and reach users who are more likely to convert. Google Ads CRO Google Ads helps you reach people when they search, watch videos, or read online content. It works best when you understand what users want and guide them toward action. Here's how to set up your Google Ads for higher conversions: Track conversions clearly. Good tracking helps Google Ads learn what works. Set what you count as a conversion, for example, a purchase or a sign-up, and add the Google Ads tag on your confirmation page. You can also link it with Google Analytics 4 (GA4) to import conversions. This helps Google see which ad clicks lead to real actions and improves bidding accuracy. To make tracking even more reliable and complete, use server-side setups with tools like Stape. With server-to-server tracking, you send data through a cloud server before it reaches Google or Analytics, [reducing loss from ad blockers](https://stape.io/blog/bypass-adblock-detection) or browser limits. Use Smart Bidding wisely. Google has several automatic bidding options. Target CPA keeps the cost for each action close to your goal. Target ROAS focuses on the return from your ad spend. Maximize Conversions helps to get as many results as possible within your budget. When your data is complete, these options help Google focus on people who are more likely to convert. Match intent with the right keywords and message. Choose high-intent search terms like "buy," "get," or "book" instead of vague ones. Keep your ad copy closely aligned with what users type. If the keyword is "buy running shoes online," the ad should promise exactly that, and the landing page should open to the product with a visible "Add to cart" button. This improves both your Quality Score and your conversion rate. Add extensions to build trust. Use callouts, sitelinks, or lead forms to give people more ways to act. A lead form lets them contact you right from the ad without leaving Google. Show reviews or seller ratings to build trust fast. When users see real feedback, they feel safer to click and buy. Retarget and refine your audiences. Use lists from GA4 or the Google Ads tag to reach visitors who didn't convert. Show simple reminders like "Enjoy 10% off your first order." You can also use Customer Match to reach past buyers or exclude them from new offers. In-Market audiences help you find people who are already comparing products like yours. Keep landing pages fast and relevant. Your landing page should load quickly, match the ad promise, and guide users to the next step. Check PageSpeed Insights to see how fast your page loads, especially on mobile. If bounce rates are high, either the ad message or the page content needs adjustment. Conversion rate optimization hack - server-side tracking Many marketers improve conversion rates by changing how their tracking works. Browser tracking through Google Analytics or Facebook Pixel often loses events because of privacy limits and blocked scripts. [Server-side tracking](https://stape.io/) fixes this by adding an extra layer between your website and ad platforms. When someone takes an action, the data first goes to your cloud server instead of being sent from the browser. This is how [Facebook Conversions API setup](https://stape.io/blog/how-to-set-up-facebook-conversion-api) ensures no events get lost. This extra step keeps tracking stable and ensures conversions are recorded even when browsers block cookies or scripts. It also gives you more control over what data is shared and how long cookies stay active. As a result, you get cleaner, more consistent reports and algorithms learned from complete data. Server-side tracking also keeps cookies active for longer periods. Safari may cut cookie life to seven days, but a server setup can extend it to several months, giving more time to credit late conversions. This means you see the real customer journey and measure performance more precisely. Marketers using Stape often find that their data accuracy improves once server-side tracking is in place. Reports reflect real user actions more consistently, and ad systems can adjust bidding and targeting based on complete information. This leads to more stable performance insights and fewer gaps between platforms. ![How server-side tracking works](https://cdn.stape.io/i/68fa0409bb562441143300.png) Key advantages of server-side tracking for CRO Server-side tracking helps marketers get more complete data and use it to improve conversions. Here's how it impacts CRO in practice: ![Server-side tracking advantages](https://cdn.stape.io/i/68fa044994c12219755385.png) More reliable data Browser tracking often misses part of your conversions because scripts get blocked or cookies expire too soon. With server-side tracking, events go through a cloud server, so fewer conversions disappear along the way. This means your reports reflect what truly happens on your site. Ad systems like Google Ads and Meta then receive more complete data, allowing them to learn faster and optimize campaigns more accurately. Longer attribution windows Client-side cookies often expire after just a few days, especially on Safari, which can cause late conversions to disappear from reports. Server setups use first-party cookies that stay active for much longer, sometimes up to several months. For example, [Cookie Keeper](https://stape.io/solutions/cookie-keeper) can extend cookie life to six months, so even conversions that happen weeks later are still tracked. This is especially useful for products with longer decision cycles, keeping your attribution realible and your performance data complete. Cross-channel and offline conversions Server-side tracking lets you connect data from all your sources, not just your website. You can include in-store purchases, phone orders, and send them to [Google](https://stape.io/stape-gateway) or [Meta](https://stape.io/fb-capi-gateway) through an API. Everything gets unified in one report, giving you a complete view of how each channel contributes to results. This helps avoid turning off campaigns that perform well offline but wouldn’t show up in browser-only tracking. Better attribution accuracy When conversions are tracked server-side, you can add details like user IDs or transaction IDs. This helps analytics tools match each conversion to the right channel. With clearer attribution, you can adjust budgets and focus on what brings results. More control and compliance Server-side tracking gives you one place to manage how data is collected and shared. You can apply consent settings, remove sensitive information, and stay aligned with privacy rules like GDPR or CCPA. This central control keeps your tracking stable over time and helps maintain user trust. When people feel their data is handled properly, they’re also more likely to complete a purchase. Note: those benefits can easily [help agencies and marketing specialists](https://stape.io/blog/how-to-pitch-server-side-tracking) show how server-side tracking improves both data quality and campaign results, making it easier to explain advanced setups and secure long-term adoption. How server-side tracking can impact conversion rates ​​Server-side tracking helps businesses turn more visitors into customers. It sends complete and clean data to ad platforms, so they can learn faster and target people who are ready to buy. It also makes websites work smoother, which helps more users finish their actions. Here are the main ways it can raise your conversion rates, based on real results from Stape users. Recapturing lost conversions When server-side tracking is added, the first thing you notice is more conversions in your reports. It catches events that browsers used to block or lose, so the numbers show what really happens on your site. Stape users who connected the Meta Conversions API Gateway saw around [30% more conversions on average](https://stape.io/blog/thirty-percent-conversions-growth-with-stape-partner-optimize-with-data). These conversions were always there, but now they are finally counted. Once ad platforms see this complete data, they can optimize better, which brings even more real conversions over time. Lower cost per conversion Better data helps ads work smarter. Stape reports an average [13% improvement in cost per action](https://stape.io/blog/why-does-your-agency-need-to-start-implementing-server-side-tagging-for-clients) after using the Meta Conversions API Gateway. This means advertisers get more conversions for the same spend. Better ad campaign performance Server-side tracking gives ad platforms the complete data they need to learn faster. When every conversion is counted, algorithms can target people who are more likely to act, and budgets are used more efficiently. Improved conversion rate through personalization and timing You can expect marketing tools to work smarter when they receive the full data. They start showing ads to people who are most likely to act: those who viewed a product, added it to the cart, or interacted with your site recently. Platforms can also time messages better, for example, by showing reminders within a few hours after a visit instead of days later. With a complete event history, algorithms learn who converts and when, so your ads appear to users who are still interested and ready to decide. Higher trust and completion rates Server-side tracking also improves how users perceive your website. With fewer tracking scripts in the browser, pages load faster. This helps people finish checkout or sign-up without delays or errors. It also gives you full data about the user journey. You can see where people stop and fix weak spots in the funnel. Implementing server-side tracking to boost CRO To improve conversion data, you need a clear setup that connects every platform through one reliable path. Server-side tracking makes this possible by linking user actions, tags, and platforms in one consistent flow. Here's how to do it in practice: 1. Plan what to track List your main conversions: purchases, sign-ups, or leads. Note the platforms where you'll send these events: Meta, Google Ads, TikTok, or others. 2. Choose your setup Server-side tracking runs inside a server container that processes events before sending them to ad and analytics platforms. This container needs hosting that can handle steady data flow and stay online 24/7. Stape provides that hosting for GTM server containers, taking care of the technical part from server maintenance to scaling, so your tracking stays stable without extra effort. 3. Configure and test Send test events to confirm that conversions appear correctly in Meta or Google, and use GTM Preview and [Stape Logs](https://stape.io/solutions/logs) to verify that the data flows properly and each event is counted once. 4. Monitor results Watch conversion metrics during the first weeks. A small rise is normal; you're now recording actions that browsers used to block. If you see inconsistent numbers, check for internal traffic or [duplicate event IDs](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager). 5. Keep your team informed Tell your team or client that the rise in conversions reflects more complete data, not artificial growth, and adjust your benchmarks so comparisons stay fair. From there, make server-side tracking part of your CRO routine. It improves every test, ad, and report with cleaner data, giving you a solid base for marketing decisions. Case studies from Stape The examples below document how companies improved tracking accuracy after moving to server setups on Stape. Each case includes verified metrics and short notes on the setup used, so you can see what changed and under which conditions. Herzlack, an eCommerce brand managed by ZweiDigital, replaced its default Shopify–Meta integration with a server setup on Stape. After the switch, Meta reported [20% more tracked purchases](https://stape.io/blog/herzlack-meta-tracking-optimization), a 37% increase in ROAS, and a 20% drop in CPA. For Atasun Optik, the agency Forward Media rebuilt Meta tracking using Stape hosting. The result was [93% more conversions](https://stape.io/blog/increase-meta-conversions-case-study) compared to the previous pixel-only setup. Using server hosting by Stape for WoodUpp, the agency ASENTO implemented tracking across several ad platforms and measured [62% more revenue](https://stape.io/blog/asento-measuring-62-per-cent-more-revenue-for-woodupp-with-server-side-tracking) and 56% more conversions after rollout. These results show that once tracking runs through a server setup, conversions match sales, ad costs become easier to evaluate, and campaign changes rely on verified data. FAQs What are conversion rate optimization tools? Conversion rate optimization tools are the tools that help measure and improve how visitors turn into customers. Analytics tools like GA4 show where users drop off, while Hotjar or Crazy Egg visualize clicks and scrolls. Optimizely or VWO test page variants to see which performs better. Unbounce and Typeform focus on landing pages and forms, and Qualaroo gathers user feedback. Server-side tracking tools by Stape support all of them by keeping tracking accurate, so test results reflect real behavior. How do you calculate conversion rate optimization? CRO focuses on improving your conversion rate, not creating a new metric, so first, you need to know your conversion rate: Conversion rate = (Number of conversions ÷ Total visitors) × 100 If 100 people visit a page and 7 convert, your rate is 7%. After optimization, compare the new rate to the old one to measure improvement. For example, moving from 5% to 6% means a 20% relative increase. What is a KPI conversion rate? Conversion rate is often used as a Key Performance Indicator (KPI): a main metric that shows how well your site or campaign turns visitors into customers or leads. For an online store, for example, it's the share of visitors who make a purchase. Conversion rate usually goes together with other KPIs like CPA (cost per acquisition) and ROAS (return on ad spend), since efficiency matters as much as growth. In short, the KPI conversion rate shows how effectively traffic becomes real results. What is a good conversion rate? There's no single benchmark, since conversion rates depend on industry, offer type, and traffic quality. Across websites, the average rate is around 2–3%. In eCommerce, 3–5% is common; for B2B or high-value services, 1–3% is typical because decisions take longer. Short-form actions such as signups or free trials can reach double digits. The most practical definition of "good" is one that improves on your own baseline while staying profitable. If your rate rises from 2 to 3 percent, that's a 50 percent improvement. --- # Send Pipedrive Deal statuses to required platform with Stape's app Source: https://stape.io/blog/pipedrive-crm-conversion-tracking-app Transfer data on Deals from Pipedrive to any platform using the Stape Conversion Tracking app. Fuel Meta algorithms, improve campaigns, and track offline conversions. The Stape Conversion Tracking Pipedrive CRM app is the solution that provides integration between Pipedrive CRM and the platform you need. It can send Deals' status updates to the platform through a secure, server-side connection. Additionally, the app supports sending data on offline conversions. How does the Stape's app work? After configuring the app, the system automatically starts tracking the status of your Deals in Pipedrive. Any status updates are transmitted as conversion events to your Meta Dataset. The use of server-side tracking guarantees accurate, reliable, and efficient monitoring of every conversion. By receiving data on how Deals that initially interacted with an ad behaved afterward, Meta can better analyze user behavior and identify audiences most likely to make purchases. ![How Stape Conversion Tracking CRM apps work](https://cdn.stape.io/i/68f8d1344510a091347603.png) Who can benefit from using the Stape Conversion Tracking Pipedrive app The Stape Conversion Tracking for Pipedrive CRM app will be helpful for businesses that: Run [Facebook Lead Ads campaigns](https://stape.io/blog/facebook-lead-ads). This app is ideal for companies focused on generating leads through Facebook Lead Ads. When a user submits a Facebook form, their information is automatically transferred to Pipedrive, allowing your team to follow up with leads. For tips on turning those deals into long-term customers, see our [lead acquisition](https://stape.io/blog/lead-acquisition) guide. Stape's app reports the status updates of your Deals back to Meta, providing data for the platform to optimize your campaigns. Use server GTM and need to supply platforms with data from Pipedrive CRM. If you choose server GTM as your app configuration method, you can send data from Pipedrive to any [platform that supports server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). Manage a high volume of offline conversions. If your business drives sales through phone calls, online consultations, or in-store purchases after running Meta ads, this app will also be helpful. When a purchase is recorded in Pipedrive, Stape's app automatically sends that conversion data to Meta. In this way, your offline sales data contributes to campaign optimization, and you get a complete picture of campaign performance. Look for precise and secure data transfer from Pipedrive to Meta. The app uses server-side tracking, [hosted on Stape](https://stape.io/gtm-server-hosting). You can choose between integration methods like Meta CAPI Gateway, Signals Gateway, or server GTM. Whether you've already implemented server-side tracking or are just getting started, thanks to server-side tracking, this app provides precise data collection for your Facebook advertising. App's features Feature | Description Automated Lead Status Reporting from Pipedrive | No need for CSV file uploads - the app automatically syncs Deal status updates with Meta. Meta campaign performance optimization | When the Meta receives data from a CRM account, it can analyze the behavior of various audience segments after engaging with the ad and focus on targeting users who are most likely to convert. Offline conversion tracking to Meta | Send offline conversion data directly to Meta to improve audience targeting. Flexible integration options | Choose the integration method that best suits your setup: Meta CAPI Gateway, Signals Gateway, or server GTM How to configure Meta Conversions API for Pipedrive CRM App installation Install the [Stape Conversion Tracking Pipedrive app](https://oauth.pipedrive.com/oauth/authorize?client_id=cc435d5629297210&redirect_uri=https%3A%2F%2Fpipedrive.stapecdn.com%2Fpipedrive%2Fcallback). Give the app the scopes it requires: ![Give permissions and install the app](https://cdn.stape.io/i/68f2139a43041610575557.png) Integration methods: CAPI Gateway, Signals Gateway or server GTM ![Integration methods](https://cdn.stape.io/i/68f213f50b8c2190591677.png) Integration method depends on your tracking setup and goals, and/or on your current experience with Stape. Click on the section below that corresponds to the tracking method you use: CAPI Gateway Before you start Make sure you have an active Stape account with Meta Conversions API Gateway If you don't have an account on Stape, please [create one](https://stape.io/fb-capi-gateway/create) or [log in](https://stape.io/login) if you already have. In the main menu click More Gateways → Meta CAPIG → Create CAPIG on the top right. ![Create Gateway button](https://cdn.stape.io/i/67c0892deb6c9355453163.png) Add name, email, and server location for new CAPIG. Then, choose the subscription plan and add billing details. After creating Meta Conversions API Gateway in your Stape account, connect your Meta Dataset (Pixel) - just click Add data source → authorize in Meta → select the Business Manager and Dataset (Pixel) you want to connect. ![Authorize in Meta](https://cdn.stape.io/i/67c0892da5429882333184.png) To increase the events match quality, please enable Automatic advanced matching. ![Enable Automatic advanced matching](https://cdn.stape.io/i/67c0892e62705364050349.png) For more detailed instructions, check [Stape's article on how to set up Meta Conversions API Gateway](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway). App configuration The setting process can be divided into two parts: Meta and Stape accounts data PipeDrive CRM fields ![Fill out required fields](https://cdn.stape.io/i/68f2143d719d7767614659.png) Meta and Stape accounts data You will need to fill in the following fields: - Meta Dataset (Pixel) ID - a unique identifier that is used to configure integrations and view events in Events Manager. You can find it in your Meta account in Data Sources' Settings tab. See the detailed instruction on [how to find Meta Dataset (Pixel) ID](https://stape.io/helpdesk/knowledgebase/how-to-find-meta-dataset-pixel-id). - CAPIG API Key - an alphanumeric string value that is needed for app identification. Find CAPIG API Key in the CAPIG settings section of your Stape account. See the detailed instructions on [where to find CAPIG API Key](https://stape.io/helpdesk/knowledgebase/how-to-find-capig-api-key). If you haven't set up Meta Conversions API Gateway yet, see the section above. ![Show CAPIG API Key](https://cdn.stape.io/i/67c0892d7b0c0525744317.png) Pipedrive CRM fields Next you need to map your CRM fields to conversion event parameters. - (Optional) Pick a field where Meta Lead ID is stored. Note dropdown will only reflect custom fields. - Configure additional User data you'd like to send to Meta, by choosing a parameter in the left dropdown and selecting an appropriate field in the right-side one. ![Configure additional User data](https://cdn.stape.io/i/67c0892e05d01878767241.png) - Application sends conversion Events based on stages of your Deals, whenever a deal reaches a stage you define, a corresponding event will be sent towards your Meta Dataset (Pixel). So we need to configure it by choosing one of two approaches: In the left-side dropdown, select a Deal stage to trigger an event. In a box to the right, type the event name you'd like to send to Meta. ![Select a Deal stage to trigger an event](https://cdn.stape.io/i/67c0892d9ed5c025170961.png) Select the Send all statuses checkbox if you want to send all Deal stages as events to Meta. Events are then named automatically and consist of Pipeline + Deals stage name. You can also select statuses to ignore in this case. !["Send all statuses" selected](https://cdn.stape.io/i/67c0892d9aa9d117970163.png) Once done, click Save and Connect. Once you see a success message your installation is complete and the application will send conversion events in the background based on your settings. ![Success message popup](https://cdn.stape.io/i/68f2146fd68db802612711.png) Signals Gateway Before you start Make sure you have an active Stape account with Signals Gateway If you don't have an account on Stape, please [create one](https://stape.io/meta-signals-gateway/create) or [log in](https://stape.io/login) if you already have. In the main menu click Signals Gateway → Create Signals Gateway on the top right. ![Create Signals Gateway on Stape](https://cdn.stape.io/i/67c0892d5fad5914029277.png) Add name, email, and server location for new Signals Gateway. Then, choose the subscription plan. ![Create Signals Gateway on Stape](https://cdn.stape.io/i/67c0892d98706626331739.png) For more detailed instructions, check [Stape's article on how to configure Signals Gateway](https://stape.io/blog/what-is-signals-gateway). Set up the app The setting process can be divided into two parts: - Signals and Stape accounts data- PipeDrive CRM fields ![Fill out the required fields](https://cdn.stape.io/i/68f214ca2cb32653331213.png) Signals and Stape accounts data You will need to fill in the following fields: - Signals Gateway Pixel - a unique identifier that is used to configure integrations and view events in Signals Gateway. You can find it in your Signals Gateway account in the Data Sources tab. See the detailed instruction on [how to find Signals Gateway Pixel ID](https://stape.io/helpdesk/documentation/how-to-configure-signals-gateway). - Signals Gateway API Key - an alphanumeric string value that is needed for app identification. Find Signals Gateway API Key in the Gateway settings section of your Stape account. See the detailed instructions on [where to find Signals Gateway API Key](https://stape.io/helpdesk/documentation/how-to-configure-signals-gateway). ![Show Signals Gateway API Key](https://cdn.stape.io/i/67c0892e2c6b3626106017.png) PipeDrive CRM fields Next you need to map your CRM fields to conversion event parameters. - (Optional) Pick a field where Meta Lead ID is stored. - Configure additional User data you'd like to send to Meta, by choosing a parameter in the left dropdown and selecting an appropriate field in the right-side one. ![Configure additional User data](https://cdn.stape.io/i/67c0892dcdb07432434531.png) - Application sends conversion Events based on stages of your Deals, whenever a deal reaches a stage you define, a corresponding event will be sent towards your Signals Gateway Pixel. So we need to configure it by choosing one of two approaches: In the left-side dropdown, select a Deal stage to trigger an event; in a box to the right, type the event name you’d like to send to Signals Gateway pipeline. ![Select a Deal stage to trigger an event](https://cdn.stape.io/i/67c0892dafc84112699265.png) Select the Send all statuses checkbox if you want to send all Deals stages as events to the Signals Gateway pipeline. Events are then named automatically and consist of a Deal stage name. You can also select statuses to ignore in this case. !["Send all statuses" selected](https://cdn.stape.io/i/67c0892d76a8c763424072.png) Once done, click Save and Connect. Once you see a success message your installation is complete and the application will send conversion events in the background based on your settings. ![Success message popup](https://cdn.stape.io/i/68f21505b526e649099801.png) Server GTM Before you start Make sure you have an active Stape account with a server GTM container hosted on Stape. If you don't have an account on Stape, please [create one](https://stape.io/sign-up) or [log in](https://stape.io/login) if you already have. In the main menu click sGTM → Create container on the top right. ![Create an sGTM container](https://cdn.stape.io/i/67c0892e16a08330915901.png) Add your container name, Container Configuration that you copied from your Google Tag Manager Server Container, and select server location. Click Create Container. For more detailed instructions, check [Stape's article on how to set up a Google Tag Manager server container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). App setup The setting process can be divided into two parts: - Stape account data- PipeDrive CRM fields ![Fill out the required fields](https://cdn.stape.io/i/68f215617266e553628351.png) Stape account data You will need to fill in the following field: - Container API Key - an alphanumeric string value that is needed for app identification. Find Container API Key in the Container settings section of your Stape account. See the detailed instructions on [where to find Container API Key](https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key). ![Container API Key in the sGTM settings](https://cdn.stape.io/i/67c0892e8eb4a371417064.png) PipeDrive CRM fields Next you need to map your CRM fields to conversion event parameters. - (Optional) Pick a field where Meta Lead ID is stored. - Configure additional User data you'd like to send to server GTM, by choosing a parameter in the left dropdown and selecting an appropriate field in the right-side one. ![Configure additional User data](https://cdn.stape.io/i/67c0892de9aff363581105.png) - Application sends conversion Events based on stages of your Deals, whenever a deal reaches a stage you define, a corresponding event will be sent towards your server GTM container. So we need to configure it by choosing one of two approaches: In the left-side dropdown, select a Deal stage to trigger an event; in a box to the right, type the event name you’d like to send to server GTM. ![Select a Deal stage to trigger an event](https://cdn.stape.io/i/67c0892d79c25410824518.png) Select the Send all statuses checkbox if you want to send all Deals stages as events to server GTM. Events are then named automatically and consist of a Deal stage name. You can also select stages to ignore in this case. !["Send all statuses" selected](https://cdn.stape.io/i/67c0892d7b81e050787584.png) Once done, click Save and Connect. Once you see a success message your installation is complete and the application will send conversion events in the background based on your settings. ![Success message popup](https://cdn.stape.io/i/68f215842e680960505919.png) Configure sending data to the required platforms With the current setup, the app will send events to your server GTM container, but to distribute them to platforms like Meta, TikTok, Google Ads, or any other, you need to configure the CAPI tags inside GTM to fire accordingly. 1. Configure the [Data Client](https://stape.io/solutions/data-tag-client) to claim the JSON requests sent from the CRM app. Go to the Templates → click “New” → upload the [Data Client template](https://github.com/stape-io/data-client) you’ve previously downloaded from the Github. 2. Go to the Clients section of your sGTM container → click “New” → select Data Client. That’s basically it, your configuration will look like in the screenshot below. Click “Save”. ![Data Client config](https://cdn.stape.io/i/699847b459f87991590366.png) 2. Select the platforms you need to send data to from sGTM. While setting up server-side tracking with sGTM, you might have already configured the CAPI tags for the required platforms, for example: - [Facebook CAPI tag](https://stape.io/solutions/facebook-capi-tag) - [Google Data Manager API Conversion Events tag](https://stape.io/solutions/google-data-manager-api-conversion-events-tag) https://stape.io/solutions/google-data-manager-api-conversion-events-tag- [TikTok Events API tag](https://stape.io/solutions/tiktok-events-api) - [LinkedIn Conversions API tag](https://stape.io/solutions/linkedin-conversion-api-tag) - [Amazon Conversions API tag](https://stape.io/solutions/amazon-conversions-api-tag) Or any other tags for [platforms that support server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). You will need to use them to configure sending data from your CRM to the required platforms. To give you an understanding of how to configure the tags this way, we will take the Facebook platform as an example. You should map the events according to the requirements of the platforms you use. 4. Create a new Facebook CAPI tag. Go to the Tags section in sGTM → add “Facebook Conversion API” as tag type. 5. Configure the tag. Event Name Setup Method: Override Event Type: Custom. Select a built-in variable “Event name”. Action Source: System Generated. Add Pixel ID and generate API Access Token: for the detailed instructions on how to find these values, please refer to our guide on [where to find Meta Pixel ID and API Token](https://stape.io/helpdesk/documentation/find-meta-pixel-id-capi-token). Here is an example of how your configuration will look at this point: ![Facebook CAPI tag basic config](https://cdn.stape.io/i/6998489887280539488584.png) User data section: select properties from the drop-down list - Lead ID, Browser ID, Click ID. These three are basic. For each property, add a variable that will take the appropriate value from the request sent from the CRM app. Create a following variable for Lead ID: - Variable Type: Event Data - Key Path: lead_id ![Lead_id variable](https://cdn.stape.io/i/69984903308e0494746715.png) Create two different variables for Browser ID and Click ID: - Variable Type: Event Data (for both), as the IDs will be retrieved from the event sent from CRM, not from the cookie. - Cookie Name: fbp (for Browser ID variable) and fbc (for Click ID variable) ![Fbc variable](https://cdn.stape.io/i/6998494923927817677523.png) ![FBP variable](https://cdn.stape.io/i/6998495d01bd5712838428.png) Here is an example of the user data section configuration: ![Example of the user data section configuration](https://cdn.stape.io/i/6998497997edc888648997.png) Custom data section: add a few custom fields to identify the source of the event. Event_source property name with crm value. lead_event_source - as property value, add a variable with the following configurations: - Variable Type: Event Data - Key Path: lead_event_source ![Lead_event_source variable](https://cdn.stape.io/i/69984a33c5b6f615344715.png) Here is how this configuration will look like in the tag: ![Custom Data section configuration](https://cdn.stape.io/i/69984a504276c000903559.png) 6. Add a trigger for a tag. Use the following configurations: - Trigger type: Custom - This trigger fires on: Some events Besides, add the following conditions for a tag to trigger: - Client Name equals Data Client - Action Source equals system_generated The variable for action source must have configurations as on the screenshot below: ![Action source variable](https://cdn.stape.io/i/69984ab31ad15642009836.png) - Event Source equals crm Configure the variable for the event source as shown in the screenshot: ![Event source variable](https://cdn.stape.io/i/69984ae6e8b20421649595.png) As a result, your trigger will look similar to the example from the screenshot below: ![Trigger configuration example](https://cdn.stape.io/i/69984b06d5884621651664.png) 7. Test the setup. Since it is, in fact, a webhook that is sent from CRM to the server GTM, you can refer to the article on [debugging incoming webhooks in server GTM](https://stape.io/blog/debug-webhooks-google-tag-manager-server) for the detailed instructions. Settings editing If you have some changes in the funnel or you want to change the events sent to your CAPI Gateway, server GTM container, or Signals Gateway, you can always edit your app configuration. To do this, click on the menu button, then select Tools and apps. Navigate to Installed apps, select Stape Conversion Tracking and click on the Settings tab. ![Settings editing screen](https://cdn.stape.io/i/68f215c61f2d4200671827.png) To sum up The [Meta Stape Conversion Tracking Pipedrive CRM app](https://oauth.pipedrive.com/oauth/authorize?client_id=cc435d5629297210&redirect_uri=https%3A%2F%2Fpipedrive.stapecdn.com%2Fpipedrive%2Fcallback) offers a simple and convenient way to send Deals' status data from Pipedrive to the platform you need. With just a few steps, you can update Deals' statuses, send offline conversions, and enrich the platform with CRM data. --- # How Google Tag Manager's preview mode helps you check and debug tags Source: https://stape.io/blog/gtm-preview-mode-and-debugging Google Tag Manager preview and debug mode lets you test tags before they go live, showing fired tags, sent data, and errors for quick fixes. Google Tag Manager (GTM) can make tracking easy when everything works as expected. But sometimes tags do not fire, or data disappears for no clear reason. That is when Google Tag Manager's preview and debug mode help. It shows exactly what happens inside your GTM setup, so you can find and fix issues before they affect your reports. Here is how it works and how to use it to keep your tracking accurate. Get [Stape GTM Helper](https://stape.io/solutions/stape-gtm-helper?cta=blog_article) to bring order to client containers packed with tags and debug faster. Simplify preview mode into a clear, structured view of tags, requests, and consent data. What is a Google Tag Manager preview and debug mode? Google Tag Manager's preview and debug mode is a testing option that helps you check tags before they go live. When you turn it on, GTM opens your website with a debug panel showing what happens in real time. You can see which tags fired, which did not, what data was sent, and if any errors appeared. All of this happens without changing what real visitors see. Preview Mode gives you a full look at how your tracking works, step by step. It helps you find issues before they reach your reports, like wrong triggers or missing variables. Always test in Preview Mode before publishing. This way, you can confirm that every tag, trigger, and variable works as planned. With Preview Mode, you can see: Which tags fire after specific user actions. Which tags do not fire, and why. What data do your variables hold at each step. How the data layer updates after every event. How to enable Google Tag Manager preview mode To enable Google Tag Manager's preview and debug mode, follow these steps: 1. Go to [tagmanager.google.com](https://tagmanager.google.com/) and log into your Google Account. 2. Open the container you want to test. 3. In the Workspace view, click Preview in the top-right corner to launch Google Tag Assistant. ![Preview button in the Workspace view](https://cdn.stape.io/i/68f771df3c805338498705.png) 4. Type your website URL in the field and click Connect. 5. If your site doesn't load correctly, uncheck the box Include debug signal in the URL before connecting. 6. Your website will open in a new tab or window with the preview badge at the bottom right. 7. Click Continue to access the full debug panel. Tip: installing the Tag Assistant Companion Chrome extension helps the preview open smoothly and reduces connection issues. You can also start a session from the [Tag Assistant activation page](https://tagassistant.google.com/). Basics of GTM preview mode When you open Google Tag Manager's preview and debug mode, you will see the Tag Assistant panel with different sections that help you check how your tracking works. Each part shows what happens when someone visits your site, so you can watch how your tags, triggers, and variables behave in real time and fix problems easily. 1. Event timeline. Shows all events in the order they happen, such as Consent Initialization, Container Loaded, DOM Ready, or custom events like form submission or purchase. Click an event to see what data was sent to the data layer at that time. 2. Tags tab. Shows which tags fired and which did not for the selected event. Tags that fired appear under Tags Fired, and those that did not appear under Tags Not Fired with reasons. Click a tag to see its triggers and learn why it fired or failed. 3. Variables tab. Lists the variable values for each event. Check that your variables collect the right data, like the Click URL or Form ID. If a variable is undefined, it may be set up wrong or missing data. 4. Data layer tab. Displays the data layer object for each event. It helps you check if custom events or eCommerce data were pushed correctly. If you find useful data that is not yet tracked, write it down so you can create a variable later. 5. Consent tab. If you use Google Consent Mode, this tab shows the consent state for each type, such as ad_storage or analytics_storage. Use it to see if a tag did not fire because consent was not given. 6. Errors tab. Shows any JavaScript errors or tag problems. Use it to find issues like syntax errors in custom HTML or failed templates. 7. Header section. Shows your container ID, website domain, and connection status. If your container ID does not appear, GTM is not installed correctly. You can also switch between container versions or environments if needed. How to use Google Tag Manager preview mode When Google Tag Manager's preview and debug mode is open, you can test your setup by acting like a real user and checking how your tags respond. Here is how to use it step by step. 1. Simulate real user actions. Move around your site as a visitor would. Click buttons, submit forms, add products to the cart, make a test purchase, or play a video. Each action creates an event in the debug panel, such as click, form submit, or purchase. 2. Check trigger conditions. After each action, open the Tags tab for that event. Check if the right tag fired, and make sure it did not fire more than it should. If it did not fire, look under Tags Not Fired to see why. For example, a trigger might use a URL that contains “thank-you,” but your test page URL may not match. 3. Confirm variable values. Go to the Variables tab to see what values your variables captured. For example, check if Click Text or Click URL collected the right data. If a variable shows undefined or a wrong value, fix its setup in GTM or check that the data appears in the data layer at the right time. 4. Test different cases. Try more than one path. Submit a form with success and another with an error, or test purchases of different product types. The panel updates live, so you can keep clicking and see all events appear in the event list. 5. Refresh after changes. If you adjust something in GTM, you must refresh the preview session to load the new draft. Click Preview again to reconnect, then repeat your test to confirm that the issue is fixed. 6. Watch for errors. Keep an eye on the Errors tab in the debug panel. If a tag fails, you might see messages about broken JavaScript or missing elements. Fix these one by one and retest until all tags work correctly. Debugging isn't just about triggers; it's about understanding the code being fired. If GTM shows a tag as 'Fired' but no data reaches your platform, you might be dealing with a crashed ad tag. We’ve mapped out the most common [advertising tags](https://stape.io/blog/ad-tag-and-click-tag) errors to help you troubleshoot these technical slip-ups in real-time. Stape's GTM extension for a better GTM debug mode experience Google Tag Manager's preview and debug mode is efficient, but if your container has many tags, it can still feel hard to read. [Stape GTM Helper](https://stape.io/blog/stape-chrome-extension) is a free Chrome extension that makes debugging clearer and faster, especially when using [server Google Tag Manager.](https://stape.io/gtm-server-hosting) It adds extra tools to make the panel easier to read and use. Main benefits of using Stape GTM Helper: 1. Focused tag testing. You can filter the tags you want to test and hide the rest. This helps a lot when working with containers full of tags. It keeps your view clean and lets you focus on what you are debugging. 2. Clear tag status visibility. The extension uses colors to show which tags fired and which failed. Tags that work appear in green, and those that failed appear in red. You do not need to scroll through text to find issues, as you see them right away. 3. Readable request details. If you send complex data, like GA4 event payloads or JSON requests, the extension formats it into a clear and readable layout. You can easily check event parameters or requests from your server container without confusion. 4. Visible consent status. In a server container preview, checking consent usually means digging into request details. The Stape GTM Helper makes it easier by reading the gcs parameter from GA4 requests and showing consent types like ad_storage and analytics_storage directly in the panel. You can instantly see if a tag didn't fire because consent was denied. ![Server container preview](https://cdn.stape.io/i/68f77bd2730fa868816235.png) To use Stape GTM Helper, [install it from the Chrome Web Store](https://chromewebstore.google.com/detail/stape-gtm-helper/ipjcocdbbjgkailaejllpnmeliblbimn). Then open Google Tag Manager's preview and debug mode as usual, and you will see the new interface with its added options. More consistent event tracking and data accuracy can significantly increase reported conversions, as it happened for Atasun Optik, which achieved [93% more conversions](https://stape.io/blog/increase-meta-conversions-case-study) after moving tracking to the server GTM on Stape with [Custom Loader](https://stape.io/solutions/custom-gtm-loader) and [Cookie Keeper](https://stape.io/solutions/cookie-keeper) enabled. For complex setups, explore [solutions](https://stape.io/solutions) that help make your GTM setup for both web and server containers more profound, including power-ups, and templates. Best practices for debugging in GTM GTM preview and debug mode is not only helpful for fixing broken tags, but also for building a good habit of testing and verifying your setup regularly. These simple habits help make sure your tags fire correctly and your data reaches the right tools. Use clear names. Give your tags, triggers, and variables simple and descriptive names. For example, GA4 event – form submit is much easier to understand than Event tag 1. Appropriate naming helps you see what each tag is supposed to do and notice right away when something goes wrong. Check the Errors tab. When tags don't fire as expected, open the Errors tab in the preview panel. It often shows JavaScript issues or missing templates that can be hard to see elsewhere. Test in Incognito mode. Browser extensions or cache can block tags. Use an Incognito window without extensions to test in a clean environment. Just remember to log into GTM again before starting the preview. Keep notes and versions. Write down what you changed and what you tested. When publishing, use clear version names and notes inside GTM. If something breaks later, you can quickly trace back the cause. For even smoother debugging, explore [useful GTM extensions and power-ups](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape) that can help you monitor container versions, validate tags faster, and maintain accuracy across projects. Refresh/share/exit preview mode GTM preview and debug mode works best when you use it actively and not just once. It shows what happens when people click or scroll and helps you fix problems right away. Refreshing preview mode. After adding a tag or changing a trigger, your current preview will not show those updates until you refresh it. Go back to your container in GTM and click Preview again. It will reconnect to your site and load the latest draft. Then, repeat your test actions to confirm the fix. Always refresh after every change, or you will still see old results. Sharing preview mode. If you want someone else to see the same debug view, open the Tag Assistant tab, click the three dots in the top-right corner, and choose Share. You will get a link to send to your colleague. They can open it and see your events, tags, and data layer without needing direct access to your GTM account. Just make sure they can reach your site if it requires a login or has a firewall. The shared link stops working once you publish a new version or end the session. Exiting preview mode. When you finish testing, click Finish on the preview badge shown on your website. This closes the connection and removes the badge. You can also close the Tag Assistant tab and confirm to end the session. If the badge stays visible, go to [tagassistant.google.com](https://tagassistant.google.com/) and end the session manually, or clear your browser cookies. Leaving preview mode active affects only your browser, not other visitors. Still, it is good practice to close it after testing to avoid confusion. Once done, your site returns to normal, and you can publish your container knowing it was tested properly. What to do if the GTM preview mode is not working? Sometimes you click Preview and nothing happens. The debug panel does not connect, or your site never loads with the badge. To fix that, start by reviewing [why GTM preview mode might not connect](https://stape.io/blog/why-is-google-tag-manager-preview-mode-not-working) to see common causes. Then go through the fixes below in order. 1. Check your GTM installation. Make sure the Google Tag Manager container code is installed correctly on your website. It should have one part right after the opening tag and another right after the opening tag, both using the correct container ID (for example, GTM-XXXXXX). To confirm it works, open your browser's Developer Tools, go to the Network tab, and check for a request to gtm.js when the page loads. If you don't see it or it shows an error, GTM is not loading properly, and the preview will not connect. 2. Allow third-party cookies. The preview uses cookies to connect your website and Tag Assistant. If your browser blocks third-party cookies, the connection will fail. In Chrome, add an exception for tagassistant.google.com and your site domain. In Safari, turn off Prevent cross-site tracking while testing. Then try previewing again. 3. Turn off pop-up blockers. GTM opens new tabs when you start preview. If pop-ups are blocked, the window will not open. Allow pop-ups for Google Tag Manager or click Allow in your browser when asked. 4. Disable ad blockers and privacy extensions. Tools like AdBlock, Ghostery, or Privacy Badger can block the Tag Assistant script. Disable them or open an Incognito window with extensions off, then retry the preview. 5. Use the same browser window. Stay in the same browser and profile where you started the preview. If you open your site in a different browser or Chrome profile, the preview cannot connect because the debug cookie is missing. 6. Check for other issues. Preview might not work on HTTP pages or sites with a strict Content Security Policy that blocks Tag Assistant scripts. Also, some browsers, like Brave, block GTM by default. For testing, use Chrome or Firefox and turn off any settings that block scripts. If none of these fixes help, you can always get help from experts from [Stape Care](https://stape.io/care). They can review your setup, find what blocks the preview connection, and guide you through the right fix. How to validate GTM tracking after debugging After fixing issues in GTM preview and debug mode, you need to confirm that your tags are not only firing but also sending data to the right platforms. Use [Tracking Checker by Stape](https://stape.io/website-tracking-checker) to analyze the tracking health of your website and see if your setup sends complete and consistent signals. Then follow the checks below to confirm everything step by step. Check Google Analytics Real-time or DebugView. Do your test actions again and open GA4 DebugView or Real-time reports. Make sure page views, events, or conversions appear with the correct values. For example, if you test a purchase event, confirm it shows up in GA4 with the right amount and item details. Verify with Tag Assistant. Turn off Preview Mode, open the [Tag Assistant Chrome extension](https://stape.io/blog/what-is-google-tag-assistant-and-how-to-use-it), and go through the same actions on your site. The tool records which Google tags fired and shows if any failed or duplicated. It is useful for double-checking Google Ads and Analytics tags. Look at network requests. If you want to double-check, open Developer Tools → Network tab in your browser. Perform your test again and search for requests like collect (for Google Analytics) or gtm.js. If they appear with a 200 OK status, your tag sent the data successfully. Use platform testing tools. Each platform has its own way to confirm tracking. Use Meta Events Manager's Test Events, Google Ads conversion diagnostics, or LinkedIn Insight Tag tester to check that events are received. If your tag fired in GTM but nothing appears in the platform, check IDs or event parameters. Do a live test. Once your setup looks correct, do a test on your live site after publishing changes. Try submitting a form or making a small test purchase, then check the data in your reports the next day. Watch for missing conversions or unexpected spikes in event counts. 5 Most common issues and solutions in GTM preview mode Even if you know GTM well, its preview and debug mode can still act in unexpected ways. Here are the five problems marketers face most often, and how to fix each one. 1. Preview mode does not connect. You click Preview, but the panel stays on Connecting. This usually happens when third-party cookies are blocked, pop-ups are stopped, or the GTM code is not installed correctly. Fix: allow cookies for tagassistant.google.com, enable pop-ups, and check that your site loads gtm.js in the browser's Network tab. If you use an ad blocker, disable it or test in Incognito mode. Then try again. 2. A tag is not firing. You expect a tag to fire, but it does not appear under Tags Fired. Fix: click the matching event in the left timeline, then look under Tags Not Fired to see why. You will see which trigger conditions failed (for example, "Page Path contains /thank-you = false"). Adjust the trigger, refresh the preview, and test again. Another possible problem may be that the [tag is not firing at first touch](https://stape.io/blog/first-touch-issue-tags-not-firing) due to a conflict with your consent banner configuration. 3. A tag fires more than once. Sometimes a tag appears multiple times for a single action, like two page views or duplicate events. Fix: check the event timeline to see if your site pushed more than one event or if the tag has multiple triggers. Use trigger filters or blocking triggers to control when it fires. After changes, refresh the preview and confirm it fires only once per action. 4. Variables show as undefined. You expect to see a value in a variable, but it shows as undefined. Fix: open the Variables tab and check that the variable's name matches the key in the Data Layer (it is case-sensitive). If the value appears later than your trigger, delay the tag by using a DOM Ready or other later event. If the data is missing completely, ask a developer to push it into the data layer. 5. No events or tags appear. The preview connects, but the panel is empty and shows no activity. Fix: confirm that the container ID on your site matches the one you are previewing. If your site uses GTM environments, open Admin → Environments → Share Preview for the correct one. Make sure your container is published and installed properly. If it's still blank, revisit the connection or cookie settings. FAQs: Why is my tag firing multiple times in GTM preview mode? If a tag fires more than once, it usually means more than one trigger or event is linked to it. For example, the tag might fire on both a page view and a history change, or your site might send duplicate events. Open the event timeline in preview and check which events made the tag fire. Then, keep only one trigger that matches your goal or add a blocking trigger to stop duplicates. After adjusting, refresh the preview: the tag should fire only once per action now. How to troubleshoot Google Tag Manager? Start by opening the GTM preview and debug mode on the page where the issue happens. Recreate the action and check if the right tag fired. If it didn't, look under Tags Not Fired to see which trigger failed, then open the Variables tab to confirm that all values are filled in. Check the Errors tab for script issues. Next, make sure the GTM container is correctly installed and uses the right container ID. If the tag fired but data didn't reach the platform, check settings like your GA4 Measurement ID or ad account ID. When testing, focus on one change at a time and disable other tags if needed. This helps you see what really causes the issue. How do I troubleshoot missing tags in GTM? If a tag you created doesn't show up in Preview Mode, it usually means it never tried to fire. First, check that you saved it and are testing the right container. Then, open the tag and confirm that it's not paused and that its trigger is linked to the correct event. Try setting the trigger to something broad, like All Pages, to see if the tag fires. If it does, the trigger conditions are too narrow. If it doesn't fire at all, check Tags Not Fired in Preview Mode to see which rule failed. If the tag isn't listed there, open the Data Layer tab to see what events appear. Your trigger's event name might not match the event pushed to the data layer. Once the tag, trigger, and event name match, refresh the preview and test again. --- # HubSpot app by Stape: report data from CRM to the platforms you need Source: https://stape.io/blog/hubspot-crm-conversion-tracking-app Send Contact status updates to platforms such as Meta & Google Ads and track offline conversions. Set up the Stape Conversions Tracking app for HubSpot. The Stape Conversions Tracking HubSpot CRM app is the solution that transfers Contacts' status updates from HubSpot CRM to Meta/Google Ads or any other platform that supports server-side tracking. This information can then be used to enrich platforms with data and/or optimize campaigns and target high-intent audiences. Who can get the most value from using Stape's app? The Stape's app will be a useful solution for the businesses that: Run [Facebook Lead Ads](https://stape.io/blog/facebook-lead-ads) or Google Ads campaigns. The app monitors the statuses of your Contacts and fuels Meta algorithms with data on how users behaved after submitting a lead form, and uses this data to target the audience that is more likely to convert. For Google Ads, it will automatically create [Customer Match list](https://stape.io/blog/customer-list-google-ads); later, you can use this data while creating campaigns (target or exclude specific audience segment). Have or plan to configure [Meta Custom Audiences](https://stape.io/blog/facebook-custom-audiences) and update them automatically. Using Stape’s app, you can manage Meta audiences directly from the server. The app communicates with the Meta Marketing API to add or remove users from specific Custom Audiences in real-time. In this way, your user data will always be up to date without any manual actions from your side. Use server GTM and/or multiple server-side tracking solutions, and need to supply specific platforms with data from HubSpot. If you select the server GTM as the app configuration method, you can transfer data from HubSpot to any [platform that supports server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). Also, if you use multiple solutions (e.g., Meta CAPIG + want to create a Customer Match list in Google Ads; Signals Gateway + server GTM, etc.), you can configure multiple integration options and send HubSpot data to all of them. Have a lot of offline conversions. Many businesses generate conversions offline, such as via phone calls, online meetings, or in-store visits, even if their marketing starts online. Once a purchase is recorded in the CRM, Stape automatically sends the data to Meta, ensuring that offline conversions are accurately tracked and attributed. Are concerned about data privacy, ad blockers, and browser restrictions. The app for HubSpot uses a server-side connection to transfer data from CRM to Meta or Google Ads. Since server-side tracking is more resilient to ad blockers, browser restrictions, and is a more secure way to send data, it helps preserve tracking reliability. Benefits of using Stape's app for HubSpot CRM Benefit | What's in it for you? Automated flow without any manual actions | The app automatically transfers conversion data from HubSpot CRM to Meta and Google Ads. You don't need to manually upload CVS files from CRM or create Customer Match lists. Improved Meta and Google Ads performance | By receiving conversion data directly from your CRM, Meta and Google Ads can better understand audience behavior after ad interactions and target audience segments that can convert. Enriching platforms with data | With server GTM as an app configuration method, you can send data to any platform that supports server-side tracking. Offline conversion tracking | Easily send offline conversion data (such as in-store purchases or phone call conversions) from HubSpot CRM to Meta, helping improve your audience targeting. Different integration options | The app supports multiple integration methods to fit your setup: Meta Conversions API Gateway, Signals Gateway, or server-side GTM. Multiple integrations can work simultaneously | If you have multiple server-side tracking solutions and/or need to create and fill Customer Match lists in Google Ads, the app supports multiple integrations simultaneously. How to set up Stape Conversion Tracking HubSpot app The Stape Conversions Tracking HubSpot CRM app transfers Contact status updates from HubSpot CRM to Meta, Google Ads, or any other platform you choose. This data can then be used to optimize ad campaigns and target audiences with higher conversion intent. Conclusion Using the [Stape Conversion Tracking HubSpot CRM app](https://ecosystem.hubspot.com/marketplace/apps/meta-leads-api-by-stape) is a convenient and easy way to configure sending data on Contacts' statuses from HubSpot to Meta, Google Ads or other platform. To start using the app, you need to have the Stape account and configure one of the server-side tracking methods - server GTM, Meta Conversios API Gateway, or Signals Gateway. --- # 24% more Google Ads conversions from a 4.5-month A/B test: server-side GTM vs client-side | seoplus+ Source: https://stape.io/blog/sgtm-seoplus-marketing-measurement Using Stape Analytics, seoplus+ compared client vs server GTM, recovering + 24% conversions, improving tracking accuracy and marketing performance. [seoplus+](https://stape.io/partner/seoplus) is a digital marketing agency specializing in performance-driven marketing, analytics, and optimization. With a strong focus on data accuracy and privacy-compliant tracking, the team constantly tests new methods to improve marketing measurement and attribution. In this experiment, seoplus+ tested advanced tracking solutions on their own website to directly understand the impact of server-side Google Tag Manager (sGTM) in a real-world environment. Challenge Traditional client-side tracking has become increasingly unreliable. Browsers like Safari and Firefox limit tracking via Intelligent Tracking Prevention (ITP) and Enhanced Tracking Protection (ETP), while growing ad blocker usage and consumer privacy awareness further disrupt data collection. For data-driven businesses, these gaps in tracking can: Skew attribution models Misguide budget allocation Impair automated ad optimization In practice, even minor losses in measurement accuracy meant missed conversions, incomplete funnel visibility, and under-optimized campaigns. Until now, seoplus+ had relied entirely on web tracking, but these challenges prompted them to explore server-side GTM for the first time to overcome these limitations. Solution To address the limitations of fragmented client-side tracking, seoplus+ implemented [server-side tracking](https://stape.io/) via Stape, moving tag execution from the user’s browser to a secure server environment. Unlike client-side GTM, which runs scripts in the browser and is often blocked by ad blockers or browser restrictions, sGTM executes tags on a server, improving data accuracy, extending cookie lifespan, and ensuring more reliable tracking. A four-and-a-half-month A/B experiment was conducted on the seoplus+ website, using two GA4 containers: Container A with traditional client-side GTM as the control. Container B with server-side GTM hosted via Stape as the test. Both containers tracked the same real user traffic, capturing pageviews, clicks, form submissions, and conversions. To further reduce signal loss and improve measurement, Stape’s [Custom Loader](https://stape.io/solutions/custom-gtm-loader) was activated to serve tags from the seoplus+ domain, bypassing blockers, and [Cookie Keeper](https://stape.io/solutions/cookie-keeper) maintained persistent user identifiers for session continuity and accurate remarketing. On top of this setup, [Stape Analytics](https://stape.io/solutions/stape-analytics) was used to validate the results. Available inside every Stape account, this feature visualizes how many requests are blocked or stripped client-side and how many are recovered server-side. By reviewing Stape Analytics throughout the test, seoplus+ could clearly see where browser restrictions interfered with data and how much information was being restored with server-side GTM. Over the course of the experiment, 200,000+ real user requests were analyzed, allowing for a direct comparison of tracking accuracy, event capture, and conversion measurement between client-side and server-side setups. Results The server-side GTM implementation on the seoplus+ website delivered clear improvements across all major metrics: Metric | Client-side GTM | Server-side GTM | Improvement Google Ads conversions | 1,000 | 1,242 | +24.18% New users | 10,000 | 10,402 | +4.02% Total users | 43,500 | 44,500 | +2.29% Event Count | 250,000 | 257,300 | +2.92% Key Events (form submissions, transactions, demo requests) | — | — | +1.13% Server-side GTM recovered 12% of interactions lost to ad blockers and browser tracking prevention, including clicks, pageviews, and form submissions. Even browsers with stricter privacy rules, such as Safari and Firefox, saw significant recovery. Critical events and scripts – like pageviews, form submissions, marketing automation, and A/B testing tools – were captured reliably, ensuring accurate analytics, attribution, and automation. At scale, these improvements translate into thousands of recovered events and conversions, directly enhancing marketing measurement, optimization, and decision-making. Stape Analytics validation Stape Analytics doesn’t just report totals – it categorizes data by client (e.g., GA4, Data Client) and by event type, so marketers can see exactly where browser restrictions or ad blockers interfered, and how many signals were successfully restored server-side. This makes it possible to prove improvements in data quality, justify ad spend, and optimize campaigns with confidence. Using Stape Analytics, seoplus+ measured over 90 days that their server-side container processed 200,000+ requests: 12% recovered from browser-level disruptions 3.37% blocked by ad blockers 8.62% impacted by ITP/ETP Over 24,000 interactions – form completions, clicks, and pageviews – would have been lost with client-side tracking. The list above shows that sGTM consistently restores this business-critical data every day. Browser-specific recovery: Chrome recovered ~4% of requests from ad blockers, while stricter browsers like Safari saw higher gains – showing sGTM strengthens tracking across all browsers. ![Recovery results](https://cdn.stape.io/i/68ecbd61cd7d4851087051.png) Event-level interference: GA4 data showed heavy interference: ScriptLoad events faced 17.55% disruption and PageViews over 14%. Without sGTM, these gaps would weaken reporting, conversions, and bid optimization. ![GA4 requests](https://cdn.stape.io/i/68ecbdd0b2d49175569582.png) Technical resilience: other requests beyond GA4 Stape Analytics groups non-GA4 scripts and tag executions under “Other Requests” – critical but often-overlooked tracking activities. These include marketing automation (HubSpot, Pardot), CRO/heatmapping tools (VWO, Hotjar), affiliate pixels, Cookie Keeper, consent managers, utility JS tags, and internal server-side triggers. On client-side setups, 8%+ of these requests were blocked, meaning 1 in 12 essential scripts failed, breaking form tracking, CRO tests, or compliance tools. With server-side GTM, these scripts run reliably in a protected environment, unaffected by browser privacy controls or ad blockers. As more businesses look to maximize their marketing ROI, understanding how [server-side testing improve conversion rate optimization outcomes](https://stape.io/blog/conversion-rate-optimisation-hack) becomes a crucial step in maintaining accurate attribution and reducing lost events. ![Technical resilience](https://cdn.stape.io/i/68ecbe2640a0b251377568.png) Scaling impact examples: Monthly Sessions | Missed Events (Client-side) | Missed Conversions 10,000 | 250 | 240+ 100,000 | 2,500 | 2,400+ 500,000 | 12,500 | 12,000+ Even small losses scale into thousands of missed conversions and events, directly affecting ROI, automation, and attribution. “Implementing server-side GTM has fundamentally changed how we think about marketing data. The ability to recover lost signals and attribute conversions more accurately has been a game changer for both our team and our clients. It’s not just about better tracking – it’s about making smarter, more confident decisions." [Brock Murray](https://ca.linkedin.com/in/brockmurray), Co-Founder & COO, seoplus+ Conclusion: a foundational upgrade Client-side tracking was losing conversions and critical event data due to browser restrictions and ad blockers. By implementing server-side GTM via Stape, seoplus+ ensured tags and identifiers ran reliably, with Stape Analytics validating recovery and improvements. The result: 24% more Google Ads conversions, 12% of previously lost interactions recovered, and consistent tracking across all browsers, providing cleaner data for better attribution, ROI, and marketing decisions. Key takeaways Server-side GTM recovers lost conversions and events blocked by browsers or ad blockers. Critical scripts, marketing automation, and analytics tools run reliably. Stape Analytics clearly visualizes recovery and performance improvements. At scale, recovered interactions translate to thousands of events and conversions. Why choose Stape Quick, practical setup without heavy development. Custom Loader and Cookie Keeper ensure reliable tag execution. Built-in Analytics offers transparency on tracking recovery. Protects data across browsers, improving attribution, campaign optimization, and ROI. --- # How GTM & gtag use Service Workers for analytics Source: https://stape.io/blog/gtm-and-gtag-service-workers Discover the two types of Service Workers used in GTM setups: server-side GTM and googletagmanager.com, and how they handle GA4 and Ads data requests. ⚠️ This post is based on extensive debugging and experimentation with Google Tag Manager (GTM) and the Google tag (gtag). While every detail here is accurate as of publication, note that Google's implementations may evolve, and may make some of what's detailed here out of date. In [September 2024](https://support.google.com/tagmanager/answer/4620708?hl=en#:~:text=deployed%20through%20Cloudflare-,September%2019%2C%202024,-Google%20Tag%20Manager), Google introduced the use of Service Workers in Google Tag Manager (GTM) to improve performance and measurement reliability: "Google Tag Manager may use a service worker to improve performance and measurement reliability. To ensure that the service worker loads correctly, consult the Content Security Policy guidelines." Then, in [March 2025](https://support.google.com/tagmanager/answer/4620708?hl=en#:~:text=in%2Dpage%20code.-,March%204%2C%202025,-Google%20tag%20now), Google announced an expansion of this feature: "Google tag now uses service workers, when available, to send data to server-side Tag Manager, improving performance and measurement reliability." This article breaks down how [GTM](https://support.google.com/tagmanager/answer/6102821?hl=en) and [gtag](https://support.google.com/google-ads/answer/11994839?hl=en) handle Service Workers, what a Service Worker is, how communication between them happens, and why your analytics requests might not appear in the DevTools Network tab. What are Service Workers? Service Workers are background scripts that run separately from a website's main thread. They allow operations like caching, offline support, and background network requests, without blocking the user interface. In the context of GTM and gtag, Service Workers are used to offload the task of sending measurement data from the web page (for example, GA4 or Ads hits), making tracking faster and more reliable, even during page unload events or on slow networks. Note that, in this context, it doesn't store the events to be sent later. How GTM and gtag use Service Workers Two types of Service Workers can be registered, depending on your setup: 1. Service Worker from your server-side GTM (sGTM) first-party domain Used for GA4 requests sent to server-side containers. 2. Service Worker from the googletagmanager.com domain Used mainly by Ads products (Google Ads and Floodlight) for form-data and user-data requests. Both versions follow a similar communication model involving several browser entities. Communication flow When gtag or GTM runs, it creates an invisible iframe (src=”about:blank”), which in turn loads another iframe, sw_iframe.html. This second iframe is responsible for installing the Service Worker script (sw.js). These elements communicate through the browser’s [postMessage() API](https://developer.mozilla.org/en-US/docs/Web/API/Client/postMessage) (to send the information) and the [message listener](https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent) to receive it, forming this flow: gtag/GTM ↔ iframe (about:blank) ↔ iframe (sw_iframe.html) ↔ sw.js (Service Worker) This bridge allows gtag or GTM running on the main page to pass event data to the Service Worker, which then decides how and when to send it. If you inspect the website page using the DevTools Elements tab, you'll be able to see the iframes. ![iframes in the DevTools Elements tab](https://cdn.stape.io/i/68e7b55e344d0653718815.png) Real-world demonstration of the messages exchanged between the iframe and the Service Worker: Service Worker from server-side GTM (sGTM) first-party domain https://youtu.be/cO1YGpX_FoI Service Worker from the googletagmanager.com domain https://youtu.be/J0oKAS9Dh38 1. Service Worker loaded from sGTM first-party domain This Service Worker is used for GA4 requests that are sent to a server-side GTM container. The GA4 gtag (G-{Measurement ID} etc.) script is responsible for forwarding the events to the Service Worker. It checks whether an event should be sent through the Service Worker based on several conditions: The event is not being sent directly to analytics.google.com/g/collect or www.google-analytics.com/g/collect (e.g., with the server_container_url parameter configured). The page is not unloading (beforeunload event). During unload, requests like user_engagement event skip the Service Worker. The browser isn't a restricted environment (such as WebView, Google App on iOS, or Facebook & Messenger In-App Browsers). - More specifically, it checks if the Browser User Agent DOES NOT contain any of the following strings: "; wv" OR "FBAN" OR "FBAV" OR (("GSA" OR "GoogleApp") AND ("iPhone" OR "iPad")) The Service Worker is alive and ready (state 2). - This check is done by the .delegate() method, which can be seen [here](https://stape.io/blog/gtm-and-gtag-service-workers#the-delegate-method). If all conditions are met, the event is sent through the Service Worker. Otherwise, it is sent directly using fetch, XHR, sendBeacon, or Image (in this order) from the main page. And, if the first 2 conditions are met, the richsstsse parameter is added to the event URL ([learn more about it](https://stape.io/blog/set-cookie-requests-in-gtm#solution-sending-instructions-in-the-response-body)). This parameter enables the browser to process the response, such as sending requests instructed by the sGTM for 3rd party cookies synchronization. 2. Service Worker loaded from googletagmanager.com domain This Service Worker seems to handle events for Google Ads and Floodlight products. Some requests pass through it, such as: Google Ads User-Provided Event (requests to https://www.google.com/ccm/form-data/{Conversion ID}/... and https://www.google.com/pagead/form-data/{Conversion ID}/...) Auto-captured User-data Event (requests to https://www.google.com/ccm/form-data/{Conversion ID}/... only). The Ads product gtag script loaded in the page (AW-{Conversion ID}, DC-{Floodlight Config ID}, etc.) is responsible for forwarding the events to the Service Worker. The conditions for using this Service Worker are similar: The tag is configured to send user data and the send_user_data_hit internal parameter is one of the following: - user_data_web: used by the Auto-captured User-data Event - user_data_lead: used by the Google Ads User-Provided Event The page is not unloading (beforeunload event). The Service Worker is alive and ready (state 2). - This check is done by the .delegate() method, which can be seen [here](https://stape.io/blog/gtm-and-gtag-service-workers#the-delegate-method). If any of these conditions are not met, the hit is sent from the main page as usual. The .delegate method Both gtag and GTM include a method called .delegate, which performs the final check before deciding whether to send the event through a Service Worker or the main page. The logic is straightforward: k.delegate = function (a, b, c) { this.getState() !== 2 ? (this.H.C( // Path 1: Not Ready - Sends event from main page. this.C, { state: this.getState(), hg: this.initTime, ng: Math.round(Ab()) - this.initTime }, void 0, a.commandType ), c({ // Call the failure callback failureType: this.C })) : this.N.wo(a, b, c); // Path 2: Ready - Sends events from Service Worker. }; Whenever the state is 2, the request is sent through the Service Worker. And through the main page, otherwise. The Service Worker and the main page exchange heartbeat messages every X amount of time (currently, 5 seconds) to keep this state updated. The state variable represents the Service Worker’s readiness: State | Meaning 0 | initial state on page initialization 1 | attempting to establish communication between the main page and the Service Worker 2 | Service Worker is ready, and the handshake with the main page was successful 3 | retrying after error 4 | fatal error / failed / communication channel is closed How to Check If Service Workers Are Being Used You can verify Service Worker usage in several ways. 1. DevTools Network Tab Filter for requests to sw.js or sw_iframe.html. Note: sw.js only appears during the initial registration. It won't appear the next time you reload the page (unless you deregister the Service Worker manually. Service Worker loaded from sGTM first-party domain. ![Service Worker from sGTM first-party domain in DevTools Network tab](https://cdn.stape.io/i/68e7cbb337101190569731.png) ![Service Worker from sGTM first-party domain in DevTools Network tab](https://cdn.stape.io/i/68e7cbe61e39b213954876.png) Service Worker loaded from googletagmanager.com domain. ![Service Worker from googletagmanager.com domain in DevTools Network tab](https://cdn.stape.io/i/68e7cc9bcf650817963225.png) 2. DevTools Application Tab Open DevTools → go to Application tab → Service Workers → Click See all registrations and search for your domain. If using GA4 to send data to sGTM: you'll see the Service Worker being served from your sGTM first-party domain. ![Service Worker being served from the sGTM first-party domain](https://cdn.stape.io/i/68e7ceb8c5e8a829306523.png) If using any Ads products from Google: you'll see the Service Worker being served from googletagmanager.com. ![Service Worker being served from googletagmanager.com](https://cdn.stape.io/i/68e7cf317bd16142599898.png) 3. DevTools Network Tab Requests handled by a Service Worker show a gear icon next to the URL. These represent hits sent from the background process rather than the main page. ![Gear icons in DevTools Network tab](https://cdn.stape.io/i/68e7d034559fe083711814.png) Why you don’t see some events in the Network Tab If your GA4 or Ads events aren't appearing in the main page Network tab, they are likely being sent by the Service Worker instead. They will, however, still show up in the GTM Preview Mode window, and you can inspect them there. Follow the steps outlined [here](https://stape.io/blog/gtm-and-gtag-service-workers#2-dev-tools-application-tab). After finding the desired Service Worker, click Inspect to open its own DevTools window. Go to its Network tab, where your missing GA4 or Ads requests will appear. You may see up to two Service Workers: one for your sGTM domain and another for Google's domain. Each handles different types of events, as described above. Conclusion Google's gradual integration of Service Workers into GTM and gtag marks a shift towards a more robust form of delivering and handling the events. By offloading event delivery to background scripts, Google improves performance, reliability, and data capture accuracy, especially in edge cases like quick bounces or flaky connections, but it also means some requests will not appear in the traditional Network tab. For digital analytics specialists, this means: Don't assume missing hits in the Network tab indicate tracking issues. Check Service Worker activity before troubleshooting. As this feature continues to evolve, staying aware of how gtag and GTM leverage Service Workers will be crucial for accurate debugging and data reliability. --- # Configure Amazon server-side tracking with Conversions API Source: https://stape.io/blog/amazon-server-side-tracking-conversions-api Amazon Conversions API is a useful solution to track data more accurately. Find out how to configure Amazon server-side tracking using Stape's tag. The Amazon Conversions API allows advertisers to track data more accurately, ensuring it isn't affected by ad blockers and browser restrictions. In this article, we list the benefits of Amazon Conversions API implementation, compare it with the client-side solution - Amazon Ad Tag, and show how to configure Amazon Conversions API using a GTM tag developed by the Stape team. Amazon Conversions API overview The Amazon Conversions API (CAPI) allows you to send conversion events directly from your server to Amazon's servers. Amazon CAPI supports the same events and event parameters as Amazon Ad Tag (client-side solution for data tracking). It can be conveniently implemented through partner integrations, such as using server Google Tag Manager, for example, by using a Stape's tag. The Amazon Ads tag developed by Stape supports a variety of event types, advanced user identity enrichment, regional consent frameworks, and provides detailed logging to both the Console and BigQuery. In this article below, we show how you can configure the tag. The Amazon platform adds new features and updates existing ones. For example, Sponsored Products became smarter, optimizing where and how your ads appear based on shopper behavior. Find out [Amazon’s updates and best practices](https://stape.io/blog/amazon-advertising) in our other post. Benefits of Amazon Conversions API implementation Conversions API implementation has the following benefits: More precise conversion tracking. As server-side tracking minimizes data loss due to ad blockers and browser restrictions, you can collect data more accurately. Reduced cost per action by improving both conversion tracking and targeting. Conversions API allows advertisers to collect more data on users' interactions, making Amazon advertising algorithms more effective. High privacy. Unlike client-side tracking, server-side tracking gives you complete control over the data shared with each network, ensuring they only receive the information explicitly defined in your server requests. Amazon Conversions API vs Amazon Ad Tag The Amazon Conversions API and the Amazon Ad Tag are both solutions used for tracking conversion events that happen outside of the Amazon platform (e.g., on the advertiser's website or app). The key differences lie in their implementation method, reliability, and the degree of control advertisers have over collected data: | Amazon Conversions API | Amazon Ad Tag Tracking method | Server-side (can be configured using GTM tag) | Client-side (a JavaScript code snippet added to the website) Data flow | Data is sent directly from the advertiser's server to Amazon's server. | Data is collected and sent from the user's browser to Amazon. Data accuracy | More reliable solution. Less prone to data loss due to ad blockers, browser, and cookie restrictions. | Less reliable than the API. Some data can be blocked and lost by ad blockers or impacted by browser and cookie limitations. Implementation | More complex. It requires configuring server-side tracking and the Amazon Conversions API tag. | Easier to implement. You need to add a JavaScript code snippet to the website. Data control | Provides more control over shared data, which is especially useful while complying with data regulations. | Offers less control as it operates within the user's browser environment. Before starting To configure the Amazon Conversions API, you will need the following: [Configured server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). A configured data stream from the web to the server container ([Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) and [Data Tag/Data Client](https://stape.io/solutions/data-tag-client) are popular ways to do it). [Configured Amazon Ad Tag](https://advertising.amazon.com/help/GLZ54GXQW773A6MG?ref_=a20m_us_lbr_nws_pai_aat). How to set up Amazon Ads server-side tracking 1. Add the [Amazon CAPI](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/amazon-tag) tag to your workspace. To do it, go to your server GTM container → Templates section → Search Gallery → type "Amazon CAPI" → click "Add to workspace". ![Add Amazon CAPI tag to workspace](https://cdn.stape.io/i/68e7baf413c30843105300.png) 2. Create a new tag. Go to the Tags section → click "New" → as tag type select "Amazon CAPI". ![Amazon CAPI as tag type](https://cdn.stape.io/i/68e7bbd6c4bbc285984072.png) 3. Configure the tag. 3.1 Select Event Name Setup Method: Standard - select from predefined Amazon event names from the list. Inherit from client - with this option, the tag maps incoming Google Analytics 4 (GA4) events to Amazon's equivalents. Custom - track your own custom events. 3.2 Add Tag ID - to find the value, go to Campaign Manager → select the Advertiser → click on the section Events Manager → copy Tag ID. ![Tag ID](https://cdn.stape.io/i/68e7bc70e40c2900566964.png) 3.3 Specify Region - geographic region of your Amazon Advertising account (EU or North & South America, Japan, Australia). 3.4 Override cookie settings - this option lets you choose the domain where the cookie should be written to, and also if the cookie should be set with the HTTP Only flag that prevents it from being accessed via JavaScript in the browser. ![Override cookie settings](https://cdn.stape.io/i/68e7bca4c4054346914254.png) 3.5 Do not set the Measurement Token cookie (amznAref) - select true or false. If a Measurement Token cookie already exists, it will be included in the request but will not be stored again as a cookie. This applies only to North America, South America, Japan, and Australia. In Europe, the Measurement Token is never transmitted. 3.6 Use Optimistic Scenario - if true, the tag will invoke gtmOnSuccess() immediately, without waiting for a response from the API. This improves sGTM’s response time; however, the tag will always report a successful firing status, even if it fails. 3.7 (Optional) User Data Attributes section. Match ID - a privacy-safe, advertiser-generated identifier that connects user interactions across sessions, devices, and channels, without revealing any personally identifiable information (PII). A persistent Match ID is assigned during the user’s first interaction. This ID is linked to the user in Amazon’s systems (using hashed PII or third-party cookies when available). When a conversion occurs (e.g., a purchase), the same Match ID is included with the event. Amazon connects the conversion back to the initial interaction, enabling full-funnel attribution. The option is recommended for organizations with strict privacy, those that have multi-step customer journeys, and/or advertisers measuring offline or login-wall conversions. The field should receive a variable that contains a User ID. Enable Advanced Matching - if enabled, captures a user’s email address and/or phone number as an alternative to traditional browser cookies for ad identification. A first-party cookie, aatToken, is stored in the user’s browser and automatically included with all subsequent events. ![User Data Attributes section](https://cdn.stape.io/i/68e7bd8982950770699671.png) 3.8 (Optional) TCFv2 Information section. TCF v2, or the Transparency and Consent Framework v2.0, is a set of policies and technical specifications created by IAB Europe to help digital businesses comply with European data protection regulations like the General Data Protection Regulation (GDPR) and the ePrivacy Directive. If you target EU countries, you should enable "Include TCFv2 Information". 3.9 (Optional) Event Attributes and Event Custom Attributes sections. You can add extra attributes to all events or add them specifically to “Off-Amazon Purchases” events. Also, you can set the attributes that will be sent along with events. The attributes are used to include sufficiently detailed information that can be used for monitoring and analysis. Here is an example of Amazon CAPI tag configuration: ![Example of Amazon CAPI tag configuration](https://cdn.stape.io/i/68e7bdfc9d335727987869.png) 4. Add a trigger for the tag. 5. Test the setup using Preview mode in both web and server GTM containers. Refer to our guide on[debugging and monitoring server-side configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration). Summary The Amazon Conversions API (CAPI) provides advertisers with a server-side solution for tracking conversion events. It offers more accuracy and control over the data collection process compared to the Amazon Ad Tag (client-side method to track data). Implementing CAPI through server-side Google Tag Manager makes it possible to capture visitors’ interactions on the website, enrich user data, and comply with regional privacy regulations. --- # What are the /set_cookie requests in server-side Google Tag Manager (GTM)? Source: https://stape.io/blog/set-cookie-requests-in-gtm /set_cookie requests in GTM manage first- and third-party cookies. Learn how they work and why they’re essential for server-side tagging. If you've ever noticed mysterious /set_cookie requests appearing in your server-side Google Tag Manager (sGTM) logs, you may be wondering what they are, why they exist, and whether they indicate a problem. These requests often raise concerns about billing, data collection, and tag behavior. The short answer is: this is expected behavior (and not documented by Google), not an error. These requests are part of a clever solution to a complex timing problem inherent in server-side tagging. In this article, we'll break down what /set_cookie requests are and what role they play in ensuring reliable tracking and cookie collection in sGTM. What triggers the /set_cookie request? A /set_cookie request occurs when three conditions are met: A tag calls the sendPixelFromBrowser API in sGTM. Another tag attempts to set a cookie using the setCookie API after sendPixelFromBrowser API has already been called. The incoming request to your sGTM container includes the richsstsse parameter in the end of its URL and without having any value (e.g. [...]&richsstsse). Tags like Google Ads Conversion/Remarketing, Floodlights, and GA4 (when Google Signals is enabled) rely on firing pixels from the browser to sync third-party cookies. To do this effectively, the sendPixelFromBrowser API is often called very early in the tag's execution process to give the browser maximum time to collect these cookies from the vendor's domains (like doubleclick.net). When this API is called, sGTM immediately sends the response back to the browser to initiate the third-party pixel syncing request. Here's the catch: once the response has been sent, the server can no longer add new Set-Cookie headers to the response. Only the tags that set cookies using the setCookie API before sendPixelFromBrowser API was called will have their cookies set through Set-Cookie headers. This creates a problem. What if other tags are still running and need to set a first-party cookie? They've missed their chance because the headers are already gone. Solution: sending instructions in the Response Body This is where the richsstsse parameter and the /set_cookie come in. The richsstsse parameter acts as a flag, signaling that the entity that sent the event in the browser (usually a Google tag / gtag or Stape Data tag) supports a special "command protocol." This protocol allows the server to send instructions back to the browser in the response, such as setting cookies or firing third-party pixels, even after the initial response has already been sent. And /set_cookie is a request back to the sGTM from the browser to pick up the cookies that should have been set previously, but didn't get a chance to. In short: to ensure third-party cookies can be collected, sGTM sends its response early. To ensure first-party cookies can still be set after that, it uses a special protocol to send instructions in the response body. This protocol is what generates the /set_cookie requests. ![image](https://cdn.stape.io/i/68e3cc9f710e6297959305.png) How it works: a look under the hood When the richsstsse parameter is present in the incoming request to your sGTM container, sGTM sends the response body in a series of chunks. You can observe this in the sGTM Preview Mode page under the "Outgoing HTTP Requests from Browser" section. The response body isn't delivered all at once, but in parts, with each new chunk appearing as tags execute the setCookie or sendPixelFromBrowser commands. For example, the gtag (GA4 tags) library uses a ReadableStream to handle this. Each chunk contains a message with instructions, such as: send_pixel: tells the browser to fire a pixel to a specific URL, which can be for third-party cookie syncing or other purposes. response: the final message in the stream, which contains the "real" HTTP status code and body that the client was expecting. Here is an example of what these data chunks look like in the response body: // Instruction to send a pixel to set a cookie via the sGTM endpoint event: message data: {"send_pixel":["${transport_url}/_/set_cookie?val=[...]&path=${encoded_path}"]} // Instruction to send a pixel to a Google domain for third-party cookie syncing event: message data: {"send_pixel":["https://googleads.g.doubleclick.net/pagead/viewthroughconversion/[...]","fallback_url_method":"fetch"}} // Instruction to send a pixel to a Google domain for third-party cookie syncing event: message data: {"send_pixel":["https://www.google.com.br/ads/ga-audiences?v=1&t=sr&slf_rd=1&_r=4&dma=0&[...]"],"options":{}} // Instruction to send a pixel to a Google domain for third-party cookie syncing event: message data: {"send_pixel":["https://ad.doubleclick.net/activity;register_conversion=1;[...]"],"options":{"attribution_reporting":true}} // The final response message event: message data: {"response":{"status_code":200,"body":""}} Real-life demonstration GA4 Tag event without richsstsse flag https://youtu.be/Z7cJZk_fymA GA4 Tag event with richsstsse flag https://youtu.be/00YzSaKw2s8 And also, please take a look here: https://youtu.be/R8Y7Wc9hO_E You can see in this last video that the response body is not received once, but in parts. The chunks list keeps increasing as soon as the tags execute the setCookie and sendPixelFromBrowser instructions. Stape Data Tag event without richsstsse flag https://youtu.be/1sdafy1eJ-E Stape Data Tag event with richsstsse flag https://youtu.be/DnyyXPWT3kU Important technical details For those who want a deeper understanding, here are a few key technical points derived from tests and observations. Incoming request contains the richsstsse flag It's not limited to a set of tags: any tag or client using sendPixelFromBrowser may generate /set_cookie requests. The initial HTTP request will always have a 200 status code, regardless of what your client defines. The actual status code is delivered in the final response message chunk. If sendPixelFromBrowser is not called, sGTM waits until all tags finish (or timeout at the default timeout of 20 seconds) before responding. Fallback URLs: Some send_pixel commands include a fallback URL (seen in the fallback_url parameter) in case the primary request is blocked. Whenever possible, setCookie or sendPixelFromBrowser APIs must be called before running data.gtmOnSuccess() or data.gtmOnFailure() in the tag's code. This ensures your commands are queued before the tag signals its completion. Incoming request contains the richsstsse flag, but sendPixelFromBrowser is not called; or Incoming request doesn't contain the richsstsse flag sGTM will wait for all tags to finish executing (or time out after 20 seconds) before sending a response. All cookies will be set using traditional Set-Cookie response headers. Any calls to the sendPixelFromBrowser API will be gracefully ignored. Google Ads Conversion tags will trigger a console warning "The requestor does not support sending pixels from browser. Third party cookies will not be collected as a result.", while Google Ads Remarketing tags may simply show as Failed. No response body will be sent (for GA4 Client); and the response body defined by the Client itself will be returned for other Clients. Other miscellaneous finding The "Fired in the background" tag execution status means the tag started its execution but has not yet called its success/failure handler. Which tags trigger this behavior? You'll most commonly see /set_cookie requests when using tags that rely on third-party cookie syncing for remarketing and conversion tracking. This includes: Google Ads Conversion & Remarketing tags Floodlight tags Google Analytics 4 tags (specifically when Google Signals is activated) Custom tags from vendors like Stape that utilize the sendPixelFromBrowser API, such as the [Microsoft UET CAPI tag](https://stape.io/blog/guide-microsoft-conversion-api-integration) and [Amazon tag](https://github.com/stape-io/amazon-tag). Is this a problem? Impact and management Each /set_cookie request is a new incoming request that your tagging server infrastructure (like Google Cloud Platform or Stape) has to process. If you have a high volume of events that trigger this behavior, it can lead to an increase in your server costs. They are normal and expected behavior in sGTM. They are not an error or a problem.: However, you can manage it with good tagging hygiene: Limit ad-related tags: be strategic about where and when your tags that rely on sendPixelFromBrowser fire. Do they need to fire on every single page view, or can you limit them to specific conversion events? Isolate tags: for tags that don’t need third-party cookie syncing, consider moving them to Stape [Data Tag + Data Client](https://stape.io/solutions/data-tag-client) without enabling the Support rich command protocol option. Conclusion The /set_cookie requests you see from your GTM are not a cause for alarm. Instead, they are a core part of the sophisticated mechanism that allows server-side tagging to effectively handle both first-party and third-party cookie requirements. By sending an early response to facilitate third-party GTM cookie syncing and then using a chunked response body to send follow-up instructions, sGTM navigates the technical limitations of the HTTP protocol. As an option to ease your mind: Be mindful of where and when you fire Google Ads or similar tags. Use Stape Data Tag and Client when third-party cookie syncing isn’t required. --- # 2.2% more GCLIDs recovered on Safari iOS 26 with Query Replacer | Lars Friis Source: https://stape.io/blog/recover-gclids-safari-ios-26 Lars Friis helped his client recover 2.2% more Google Click IDs lost to Safari iOS 26 by using Stape’s solution Query Replacer. [Lars Friis](https://larsfriis.io/), a long-time [Stape partner](https://stape.io/partner/lars-friis) and Danish tracking expert with 10+ years in e-commerce and marketing, helped a client solve one of today’s biggest tracking challenges: Safari removing click identifiers like the Google Click ID (GCLID). ![Lars Friis + Stape collaboration](https://cdn.stape.io/i/68dbe7e0044be846950047.png) Challenge Starting with iOS 17, and now with iOS 26, Safari's Intelligent Tracking Prevention (ITP) removes GCLID click ID parameters from URLs in Private Browsing. This creates several issues: Broken attribution – clicks can’t be tied to conversions if the GCLID disappears. Unreliable ROAS – Google Ads shows incomplete data. Poor bidding signals – Smart Bidding algorithms receive less accurate feedback. For the client, this meant conversions from private Safari browsers were unattributed, lowering confidence in campaign performance. Platforms involved + solution To resolve the issue, Lars Friis brought together three key platforms, each playing a specific role in the tracking setup: [Google Ads](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) – this is where click IDs (GCLIDs) originate. In Google Ads, the standard GCLID is removed by the browser, so it can be replaced with a custom parameter to preserve tracking until conversion. [GA4 / Google Analytics](https://stape.io/blog/set-up-ga4-server-side-tracking) – used to measure conversions and user behavior. GA4 relies on identifiers like the GCLID to tie actions back to campaigns, so its accuracy depends on those IDs being intact. Stape’s [Query Replacer](https://stape.io/solutions/query-replacer-variable) – a key tool in this setup. It runs in the server-side GTM container to preserve and replace URL parameters, ensuring that important tracking identifiers like GCLIDs remain intact even if browsers or ad blockers try to remove them. With guidance from Lars Friis, the client company configured Stape Query Replacer to: Recreate missing GCLIDs automatically, ensuring fewer clicks went unattributed. Maintain accurate server-side tracking, storing the GCLID in a durable first-party cookie under their control. Bypass common browser restrictions, like ITP and ad-blockers, without building a complex custom solution. The full process is documented in our [step-by-step guide](https://stape.io/blog/safari-removes-click-identifiers-solution), showing exactly how to implement the setup to recover lost GCLIDs. What stood out was how quick and practical the process was. The entire setup took about 30 minutes – no heavy coding, no large development resources – yet it delivered measurable improvements in attribution accuracy almost immediately. Results in numbers +2.20% more GCLIDs captured 1,097 click IDs recovered out of 50,000 Setup time: ~30 minutes Even a small percentage of recovered GCLIDs had a measurable impact on attribution accuracy, ROAS reporting, and Smart Bidding effectiveness. ![+2.20% Google Click IDs](https://cdn.stape.io/i/68dbed3c9504a516744107.gif) Conclusion Safari iOS 17 Private Browsing removed GCLIDs, breaking attribution and impacting campaign accuracy. The client’s company, guided by Lars Friis, implemented Stape’s Query Replacer in a server-side GTM container to preserve and recreate missing identifiers, achieving measurable improvements with minimal setup. Key Takeaways The problem: Safari iOS 17 stripped GCLIDs, causing unattributed conversions and weaker Smart Bidding signals. The solution: server-side setup using Stape’s Query Replacer to store and recreate GCLIDs. The result: +2.2% more GCLIDs recovered (1,097 out of 50,000) in ~30 minutes. Results vary depending on Safari usage and the share of sessions in Private Browsing – higher usage means a larger portion of click IDs can be recovered. Important note: please remember to respect users who decline cookies. Always ensure that their preferences are honored, and no tracking occurs if they’ve opted out. Why choose Stape Purpose-built server-side tools like Query Replacer. Quick setup with no heavy coding. Reliable tracking unaffected by ITP or ad blockers. Expert support with proven real-world case studies. Special thanks to Lars Friis for sharing his expertise and contributing to this case study. --- # Set up Google Ads conversion tracking for Shopify Source: https://stape.io/blog/google-ads-conversion-tracking-for-shopify Configure Google Ads conversion tracking for a Shopify store using the standard client-based approach or more modern server-side tracking technology. If you run a store on Shopify, you will not succeed without a clear idea of how your campaigns perform. Conversion tracking is a key to success, and if you do not set it up properly, you will miss valuable data and might move in the wrong direction in the future. Setting up Google Ads conversion tracking for Shopify comes down to a few essential steps: Create a GTM account and add the container code to your Shopify theme. Install the Google & YouTube App from the Shopify App Store and link it to your Google Ads account. Define the key conversion events you want to track (sign-ups, add to cart, purchases, etc.). Set your most important conversion as Primary in Google Ads. Enable Enhanced Conversions for better tracking accuracy. Add UTM parameters to your ad URLs. Test your setup using GTM Preview and GA4 real-time reports. The full detailed guide with step-by-step instructions for each method is available further in this article. What is Shopify conversion tracking? Conversion tracking on Shopify is the process of collecting information about specific customer actions that take place on your Shopify store after people click on an ad. Actions can be of various types, and which exactly you track depends on the settings of your tracking setup: purchases: the most important and basic conversion for any online store, it is almost always tracked by default; adding an item to a cart: a vital action, as it shows that a customer is interested in your goods, and if it often does not lead to a purchase, it is a serious sign to review the funnel; viewing a specific product page: an action that allows you to understand which products are more popular than others and which are just a “dead weight” on your website; signing up for a newsletter: an action that helps you to build your marketing list and know what types of newsletters are more effective than others. Obviously, the list of actions you can track is much longer, and which ones to configure depends only on your business's needs and personal decisions. When you use Google Ads conversion tracking on a Shopify website, you link the results from the former with the campaigns at the latter. In such a way, you can measure your ad performance, calculate ROI, improve customer experience in your shop, and optimize your campaigns. If you think now that Shopify can do all the analytics itself, you are partially right. It can provide you with some insights into how your business is doing. Google Ads, however, provides a more detailed view of your performance and significantly more opportunities for Google Ads conversion tracking on Shopify. Benefits of AdWords conversion tracking on Shopify If you want to develop a data-driven marketing strategy for your business, setting up Google Ads tracking on Shopify (formerly known as AdWords) is the foundation for all your further steps. There are several significant advantages of such a setup: it will show you specific keywords, advertising creatives, and categories of customers that drive conversions; precise conversion data will allow you to use automated bidding strategies offered by Google Ads to their maximum; overall profitability is very likely to increase thanks to better targeting. All this is achieved in two simple steps: defining the needed events and placing the Google Ads Pixel for Shopify on your website. The pixel fires, the data is transferred to Google Ads, and you get your profit. Best Google Ads conversion tracking practices for a Shopify store If you need an accurate and precise way for Google Ads Shopify conversions tracking, you must be aware of several tricks and approaches that can simplify your life and work significantly. Use the Google and YouTube App, which can be downloaded from the official Shopify store. It automatically syncs all the basic events (for instance, add to cart or purchase). This greatly simplifies the setup and maintenance process. Always choose the most important conversion for your business and set it up as Primary in your Google Ads account. Use Google Tag Manager to have all your tags in one place. This will make it easier to review, modify, and maintain your tracking setup. Add UTM parameters to your links; this will make all the data you sent to analytics more specific and focused. Enable Enhanced Conversions for Google Ads; this will increase your conversion tracking accuracy. Do not hesitate to integrate Google Analytics with your Shopify store and enable Enhanced eCommerce tracking for a better understanding of your clients’ behaviour. Conversion tracking with Google Tag Manager on Shopify is something we would recommend everyone try, as it gives you more control over your store’s conversion tracking without any need to dive into the code and change something there. If you want relative autonomy from the developers (who doesn’t?), this is a must-have. How to set up Google Ads conversion tracking in Shopify ![Google Ads conversion tracking in Shopify](https://cdn.stape.io/i/68d3cbcc6d5b9913033406.png) Google Ads conversion tracking in Shopify There are several primary methods on how to set up Google Ads conversions tracking on Shopify: on the client’s side (using the GTM container or Google & YouTube app) and on the server (using the server GTM container). How to set up GTM on Shopify? First of all, let’s cover the creation of the Google Tag Manager container in the context of Shopify Google Ads integration. We have already mentioned that its container is a warehouse for all your tags, even those that are not connected to Google. If you want to add conversion tracking to a Shopify store, having a GTM container is not a requirement, but it is a must if you want to get reliable and complete information. That is why we are discussing this topic before giving you a guide on how to set up Google Ads conversion tracking on Shopify. So, here is what you need to do to prepare for getting reliable and trustworthy information on conversions. 1. Create the container via the official Google service. Register a GTM account, [create a container there](https://stape.io/blog/how-to-start-with-server-side-tracking#set-up-server-side-tracking-with-google-tag-manager-container) (select Web or Server as the target platform), and save the two pieces of code you get after that for later. ![Create a container](https://cdn.stape.io/i/68d3ccc4a061a657755123.png) Create a container 2. Add your GTM container to your Shopify store. Proceed to the Online Store section, and access the Themes menu there. Select the theme you want to use, and enter the code editing mode. There, you need to paste the first piece of code from the previous step to the head section, and the second one to the body. 3. Check that everything is working correctly. Get to your GTM dashboard and click Preview. When you are asked for a link, paste your Shopify store’s URL and proceed. After that, you must see on the GTM preview tab that your container is connected. When you finish with this procedure, you can start adding tags for Shopify Google Ads conversion tracking to your container. The standard client-based approach If you feel the power in yourself and you know how to add Google Ads conversion tracking to Shopify, you can [set up the GTM container for your store](https://stape.io/blog/google-tag-manager-shopify-set-up) manually, as we described above. A more standard approach, however, is using the Google & YouTube app we have already mentioned above. It works independently of the GTM container and does not require you to edit the code manually. Install the Google & YouTube App. Find it in the Shopify store and follow the instructions you get after you click the AddApp button. Connect your Google Account. When setup is finished, you will be redirected to the setup page. There, you must go through the Shopify Google Ads setup procedure - link your store with your Google account that has access to Google Ads. Follow the instructions, provide all the required permissions, and you are done. Configure the GA property. Select the property from the drop-down list and complete the setup. All the needed code will be added to your website automatically. Test your configuration. Check the real-time report on your GA dashboard. Open your store in another tab and perform some actions there, pretending you are a customer. All the events should be displayed on the dashboard. Despite its ease of use, we must mention some Google Ads tracking issues on a Shopify website you may face if you stick to this method. First of all, as all the tracking happens on the client’s side, it is vulnerable to ad blockers and browser security protocols. They often tend to block tracking scripts, which results in wrong data about conversions. Moreover, the question of compliance with privacy policies also remains open, as there are lots of nuances about sharing data with third-party platforms nowadays. Server-side tracking for Shopify - advanced approach Server-side Shopify Google Ads integration solves most of the problems its client-side colleague has. As you establish a cloud server for this approach, all the tracked data is gathered there first. On the server, the gaps in the tracked information are filled as much as possible, and private data that should not be shared with analytics is hashed or removed. In addition to that, you can extend the cookie lifetime, which boosts the quality of Google Ads conversion tracking even more. We've also got a full step-by-step guide on [server-side Google Ads conversion tracking for Shopify](https://stape.io/blog/server-side-google-ads-conversion-tracking-in-shopify) that covers everything from container setup to advanced configuration. Here is how you can set up Google Ads conversion tracking on Shopify using Stape’s infrastructure. 1. Create a server GTM container on the official Google Tag Manager website and copy its config. ![Create a server GTM container](https://cdn.stape.io/i/68d3cde4c9cdf578947783.png) Create a server GTM container 2. Create an account with Stape and host the newly-created container there, using the earlier copied config. ![Create an account with Stape and host](https://cdn.stape.io/i/68d3ce43f3696960010307.png) Create an account with Stape and host 3. Find the [Stape Conversion Tracking app](https://apps.shopify.com/server-gtm) in Shopify’s store and add it to your store. There are several steps you need to take: get to the Sales channels and activate the app → proceed to Online Store → find your active theme → click Customize → switch to App embeds tab → activate Stape Conversion Tracking app. Do not forget to click Save when you finish. ![Find the Stape Conversion Tracking app in Shopify's store ](https://cdn.stape.io/i/68fa2b7f14f18776518454.png) Find the Stape Conversion Tracking app in Shopify's store 4. If you already have GA4 events configured in your web container - great, you only need to switch them to the server one. If not, you need to set up the events in the web container manually. 5. In your server container, configure the Conversion Linker tag to trigger on all events you want to be sent to GA4. Regularly review that all the tags fire correctly, keep an eye on GA4 updates, and you will be all good, getting the fullest possible information about your conversions. Optional step. Consider using [POAS Data Feed](https://stape.io/solutions/poas-data-feed) to optimize Google Ads around profit, not only order value, and pass margin-based data through your server-side setup. How to import your Shopify customer data to Google Ads ![How to import your Shopify customer data to Google Ads](https://cdn.stape.io/i/68d3cf3fd99eb050233404.png) How to import your Shopify customer data to Google Ads One of the best practices for Shopify Google Ads integration is to send customer data to the analytical platform. It is also known as “Customer Match”, and it is a powerful tool that allows you to use all the advantages of first-party data to improve your ad targeting. Considering that third-party data has been falling out of favor lately, such a switch is an excellent solution for any Shopify business. Here is how you can do that with our help. 1. Preparation step. Open the required container in your Stape account. Proceed to the Connections tab and sign in with your Google Ads account linked to the Google Ads to the Data Manager API. ![Connections feature](https://cdn.stape.io/i/694e6d4fb0104892640461.png) Connections feature 2. Install Stape Conversion Tracking. You can download it from Shopify’s App Store. Fill in all the fields on the Customer Match tab in the Shopify app. Get the API key in the Stape Admin panel, sGTM section. The key will be on the settings tab. Google Ads Operating customer ID is located in your Google Ads admin panel, top right corner. Just click on the picture to copy the value. Google Ads customer ID. It is the ID of your Google account. Depending on its type, you need a customer or manager ID. User Data. Select the data you want to be on the list here. Consent. Choose manually from the drop-down menu or inherit it from the customer’s choices. Backfill. Tick it if you want to upload the existing users, not only the new ones. ![Customer Match](https://cdn.stape.io/i/68d3d8c3bebc9675569602.png) Customer Match This method will update your customer lists automatically, improving your Google Shopping conversion tracking even more. Shopify Google Ads tracking issues solved Conversion tracking with Google Ads on Shopify has certain issues when done via the client’s browser. Many of them are solved by [server-side tracking for Shopify](https://stape.io/blog/server-side-tagging-for-shopify), but there are still some points to pay attention to and keep in mind. One of the most common problems you may encounter, even after switching to server-side tracking, is that the data sent from the web container may not reach the server. To fix this, you need to ensure that your web GTM container captures the Google Click ID (which is responsible for matching the click with the conversion) and passes it to the server container. Another thing that often bothers those who prefer to track conversions via a server is data duplication. It happens when the same event is tracked on the server and on the client’s side. The solution here is simply to review that for the needed destination, there is only one source of data. Overall, no matter what problems you may face using a server-side tracking setup, you still will get better and more reliable conversion data compared to client-side tracking, especially considering that the overall approach to [conversion tracking on Shopify is regularly updated](https://stape.io/news/shopify-checkout-extensibility-upgrade). If your tracking setup still isn't behaving as expected, don't rely on GTM preview alone – Shopify's sandboxed checkout means it won't reflect production reality. For a step-by-step process to diagnose issues across both web and server GTM, read: [Debugging Shopify tracking with web and server GTM: a complete guide](https://stape.io/blog/shopify-tracking-debugging-guide). FAQ How to check the conversion rate in Shopify? Shopify shares the conversion data in its built-in analytics, which can be accessed from the admin dashboard. If you use [GA4 for Shopify](https://stape.io/blog/server-side-google-analytics-for-shopify), log into your property, proceed to Reports, click on Engagements, and switch to Conversions. How to add a tracking UTM in Shopify? You need to use the UTM builder tool to add the needed parameters to your Shopify link. Using such a tool will prevent you from making syntax errors in the link. What is Google Shopping conversion tracking? It does not matter if you know how to set up Google Ads conversion tracking for Shopify, if you do not clearly understand what conversion tracking is, right? Well, talking about conversion tracking, we mean getting information about what happens after your client clicks on your ad; if they buy your product (a conversion), or not. --- # How to solve the error in Facebook CAPI: “API calls from the server require an appsecret_proof argument” Source: https://stape.io/blog/api-calls-from-the-server-require-appsecret-proof-argument Learn what App Secret Proof is, why it's important, and how to implement it in your GTM Server-Side setup to resolve errors. When setting up the [Facebook Conversions API tag](https://stape.io/blog/how-to-set-up-facebook-conversion-api) (Meta CAPI), you may encounter this error: API calls from the server require an appsecret_proof argument This happens when your Business Manager enforces that all CAPI requests must include an App Secret Proof. While not common, some businesses enable this extra layer of security to better protect their API calls. In this post, we’ll explain what the App Secret Proof is, why it matters, and how to fix or implement it in your GTM server‑side setup. What is App Secret Proof? App Secret Proof is an additional security mechanism in Meta’s Graph API. It verifies that API requests made with an Access Token are also signed with the app’s App Secret. Without it: requests can be sent using only the Access Token. With it: each request must include a SHA‑256 hash of the Access Token, signed with the App Secret. 👉 Please read more in Facebook documentation: [App Secret Proof](https://developers.facebook.com/docs/graph-api/guides/secure-requests#appsecret_proof) Important!: When used through Server‑Side GTM (sGTM), the security benefit is reduced because sGTM is still visible compared to backend-only implementations. That said, some Business Managers may enforce this setting. Why you might see this error If your Conversions API app is configured to require App Secret Proof, but your GTM server‑side tag does not send it, Facebook rejects the request and returns the error. Example error response: {   "error": {     "message": "API calls from the server require an appsecret_proof argument",     "type": "GraphMethodException",     "code": 100,     "fbtrace_id": "AYvBzLgkiUVGsr1NNTn7LSC"   } } ![Facebook CAPI tag response](https://cdn.stape.io/i/68c4176e560ba654094856.png) Fixing the error: two options Option 1: disable the requirement (if set by mistake) If your business does not intentionally require App Secret Proof, you can disable it in the App Settings: 1. Go to [Apps in Meta for Developers](https://developers.facebook.com/apps). 2. Find the Conversions API Application tied to your Business Manager. 3. Navigate to App Settings → Advanced. 4. Under Security, toggle off Require App Secret. ![Disable the requirement](https://cdn.stape.io/i/68c418afe30b6686509523.png) If you don’t see the Conversions API Application, you may not have the necessary permissions. Ask a Business Manager admin or follow the access steps in [How to Access Hidden Apps](https://stape.io/blog/api-calls-from-the-server-require-appsecret-proof-argument#how-to-access-hidden-apps). Option 2: enable and configure App Secret Proof If your business intentionally requires App Secret Proof, you need to generate and add it to your Facebook Conversions API tag. Steps: 1. Go to [Apps in Meta for Developers](https://developers.facebook.com/apps). 2. Locate the Conversions API Application for your Business Manager. 3. In App Settings → Basic, click Show to reveal the App Secret. ![Enable and configure App Secret Proof](https://cdn.stape.io/i/68c41a92cb293389479772.png) 4. Note the Access Token used in your Facebook CAPI tag. 5. Generate the App Secret Proof: Use any online/offline HMAC-SHA256 tool (tip: search for “HMAC SHA256 online” on Google). The App Secret Proof is a SHA256 hash of your Access Token, using your App Secret as the key/secret. Output format: Hex 6. Add the generated value to the App Secret Proof field in your Facebook CAPI tag in sGTM. ![Use App Secret Proof](https://cdn.stape.io/i/68c41c624904d747518564.png) ✅ Done. Your events now should be sent successfully. If you don’t see the Conversions API Application, you may not have the necessary permissions. Find them in a Business Manager admin or follow the access steps in how to access hidden apps further in this article. How to access hidden apps By default, the Conversions API Application is created automatically when we enable Conversions API integrations for the first time, and is often hidden in Business Manager. Even admins may not see it without some tweaks. Ways to gain access: Ask a person whose account has access to the Conversions API Application to share the App Secret. Assign yourself permissions using the Graph API. Manually assign permissions via Business Manager UI. This article will demonstrate how to access the hidden Conversions API Application using the third option. Manual UI workaround 1. Open [Business Manager settings](https://business.facebook.com/latest/settings/business_users). 2. Go to Users → System Users and select the Conversions API System User. 3. In Developer Tools on this tab (press the F12 key) and go to the Network tab. 4. Still on the System Users page, click on the Installed apps tab. 5. Back to the Developer Tools, open the global search panel (CTRL+F or CMD+F when in the Network tab), and search for Conversions API Application. ![Conversions API Application](https://cdn.stape.io/i/68c41dc19d497457603754.png) 6. Find the response that has this format: {   "data": {     "xfb_installed_apps_by_system_user_id": {       "nodes": [         {           "id": "",           "name": "Conversions API Application"         }       ]     }   } } 7. Extract the Application ID from the response. ![App ID](https://cdn.stape.io/i/68c41e70038bc650969990.png) 8. Now, using the Business Manager ID (you can extract it from the URL parameter business_id in Business Manager), and Application ID extracted in the previous step, build the following URL: https://business.facebook.com/latest/settings/apps?business_id=&selected_asset_id=&selected_asset_type=app&detail_view_tab=ASSET_ACCESS 9. Copy and paste it into the browser address bar. 10. On the page that opens, click Assign People and assign yourself the “Manage App” permissions. Now you’ll see the app in [Apps in Meta for Developers](https://developers.facebook.com/apps) and can configure it properly. Conclusion The [App Secret Proof](https://developers.facebook.com/docs/graph-api/guides/secure-requests#appsecret_proof) is rarely used but sometimes enforced in Meta’s Conversions API. If you see the error, you have two paths: Disable the requirement (simpler, if it was enabled by mistake). Generate and configure the proof (if your business enforces it). Stape’s Facebook CAPI Template supports the App Secret Proof parameter, making the setup easier. --- # Set up Google Tag Manager in 5 minutes Source: https://stape.io/blog/google-tag-manager-setup Learn about GTM setup step by step: configure server & web containers and create GTM tags in 5 minutes using a free Setup Assistant tool. Google Tag Manager is a powerful tool for managing all your tracking tags in one place — whether you're running a basic web setup or a more advanced server-side configuration. Getting started comes down to a few straightforward steps: Sign in to tagmanager.google.com and create a GTM account and container. Accept the data processing terms. Add the GTM code snippets to your website's head and body sections. Configure your tags, triggers, and variables inside the container. Test your setup using GTM Preview and submit the changes. The full detailed guide with step-by-step instructions for both web and server container setups is available further in this article. And if you're looking to speed things up, also check out the [Setup Assistant](https://stape.io/gtm-set-up-assistant), a free tool developed by Stape that automatically adds pre-built tracking templates to your GTM containers based on the platforms you select. What is Google Tag Manager? Google Tag Manager (GTM) is a tag management solution developed by Google that makes it easier to handle tracking codes on your website. It allows you to manage all your tags in one centralized interface. Using GTM eliminates the need for adding code manually to your website's HTML, making it simpler to manage the data tracking process. Key Google Tag Manager concepts Containers A container is a small piece of code that you add to your website. It's responsible for loading all the tags you configure in the Google Tag Manager interface. There are two types of containers in GTM - web and server. A web and a server GTM containers are both used for managing tracking tags, but they operate in different ways. The key difference lies in where the processing of data occurs: in the user's browser (client-side) or on a cloud server (server-side). Web GTM runs directly in a visitor's browser. When someone lands on your site, their browser loads tracking scripts such as Google Analytics, Meta Pixel, or TikTok tags. Each of these scripts then sends data straight to its respective platform. The benefit of this method is that it is fast to set up. The drawback is its limitations. They include blocking or restricting tracking codes by [ad blockers](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers) and browser restrictions (such as [ITPs](https://stape.io/blog/safari-itp)). This leads to data loss. Server GTM sends events to a cloud server where your GTM server container is hosted. From there, you can clean, filter, or enrich the data before forwarding it to each platform. This reduces data loss, bypasses browser restrictions, and limits direct exposure to third-party scripts. Server-side tracking doesn't fully replace browser tracking. The browser still collects most of the data; the difference is that it passes through your server first, ensuring higher data quality and secure delivery. ![Web vs Server GTM container](https://cdn.stape.io/i/68c158eb0e0dd578847306.png) Web vs Server GTM container Tags A tag is a piece of code that transmits data to other platforms (such as Google Analytics 4, Meta, Google Ads, TikTok, etc.). The purpose of tags is to capture an event data object, format it appropriately, and then send it to the designated platform's servers. ![Tags section in GTM](https://cdn.stape.io/i/68c159b077410413776653.png) Tags section in GTM Stape is the largest contributor to the tag library. Over 100 tags were approved and added to the web and server GTM library. Check Stape's tags in [the GTM template gallery](https://tagmanager.google.com/gallery/#/?filter=stape&page=1) or on [GitHub](https://github.com/stape-io). ![Tags developed by Stape](https://cdn.stape.io/i/68c15c081b600979965703.png) Tags developed by Stape Triggers Triggers control when and how tags are activated. They specify the conditions that must be met for a tag to run. By configuring triggers, you make sure the correct tags fire at the appropriate moments, allowing you to capture the intended user interactions. ![Triggers section in GTM](https://cdn.stape.io/i/68c15c6013d0b529252597.png) Triggers section in GTM Variables Variables extract specific information from incoming HTTP requests and make that data available to other components of the GTM container (tags, triggers, and clients). Variables can be used not only in tags and triggers but also within other variables. A variable can also contain some data or settings, for example, Meta Pixel ID or Google Analytics 4 Measurement ID. While configuring the tags, you can use the variables with required data to avoid adding it manually every time. ![Variables in GTM](https://cdn.stape.io/i/68c15de232c10375220757.png) Variables in GTM Clients The Clients section is present in the server GTM container only. Client is responsible for receiving incoming HTTP requests, transforming them into event data, and returning a response. After processing the request, the Client makes the data within it accessible for tags and triggers in the Google Tag Manager server container. ![Clients section in server GTM](https://cdn.stape.io/i/68c15e238ecd3197150820.png) Clients section in server GTM Transformations The Transformations section is also present in the server GTM container only. [Transformation](https://stape.io/blog/what-are-transformations-in-server-google-tag-manager) is an entity that serves as an intermediary between the client and the tag. Data is sent to the sGTM container via an incoming HTTP request. When a client processes this request, it converts the data into event information that tags, triggers, or variables can use within sGTM. Transformations allow you to add, remove, or modify event parameters after the Client has processed the incoming HTTP request but before the tag accesses the data. ![Transformations section in server GTM](https://cdn.stape.io/i/68c15ed5c2a7b617697127.png) Transformations section in server GTM How to set up Google Tag Manager? How to set up a web GTM container 1. Go to [Google Tag Manager](https://tagmanager.google.com/) and sign in to your Google account. 2. In the tab Accounts, click Create account. ![Create account in GTM](https://cdn.stape.io/i/68c1600d14b50786620344.png) Create account in GTM 3. Add a name for the account, choose the country location for it, name the container, and select the target platform (in this case, it is web). Click Create. ![Create web GTM container](https://cdn.stape.io/i/68c1604d25d77069174343.png) Create web GTM container 4. Accept data processing terms. ![Data Processing Terms](https://cdn.stape.io/i/68c160909604f561781643.png) Data Processing Terms 5. Install Google Tag Manager on your website according to the given instructions. ![Install GTM](https://cdn.stape.io/i/68c160bc27522083034504.png) Install GTM Please note: The GTM code snippet must be placed into every page of your website. It can be done manually, but it takes too much time if you have a lot of pages. For this purpose, you can use plugins on the marketplace of the CMS you use or one of Stape's apps. They are primarily aimed at configuring server-side tracking, but with their help, you can also add a GTM snippet automatically: [WordPress plugin](https://stape.io/helpdesk/documentation/gtm-server-side-plugin-for-wordpress-setup) [Shopify app](https://stape.io/helpdesk/documentation/how-to-set-up-server-side-tagging-on-shopify) [Magento 2 extension](https://stape.io/helpdesk/documentation/sgtm-magento-2-plugin-setup) [BigCommerce app](https://stape.io/helpdesk/documentation/how-to-set-up-bigcommerce-app-for-server-gtm) [Wix app](https://stape.io/helpdesk/documentation/how-to-set-up-wix-app-for-sgtm) [PrestaShop module](https://stape.io/helpdesk/documentation/how-to-set-up-prestashop-module-for-sgtm) [Salla app](https://stape.io/helpdesk/documentation/how-to-set-up-salla-app-for-sgtm) Here is an example of how to activate the automatic addition of the GTM snippet to every page of the website using a WordPress plugin Download [Stape's WordPress plugin](https://wordpress.org/plugins/gtm-server-side/). ![Download Wordpress plugin](https://cdn.stape.io/i/68c163c70a7f7836242420.png) Log in to your WordPress Admin and go to the plugins section. Then, click Add plugin, click Upload plugin, and select the file you downloaded. ![Upload plugin in Wordpress](https://cdn.stape.io/i/68c1642288a91177335799.png) Once uploaded, click Install now and then Activate plugin. ![Activate plugin](https://cdn.stape.io/i/68c1648081e18114395742.png) Click on Settings below the plugin name. Activate the option of adding the web GTM snippet code onto every page of your website and add the GTM container ID. ![WordPress plugin configuration](https://cdn.stape.io/i/68c164ba7fd4d001378438.png) You can find the web GTM ID in your container: ![Web GTM container ID](https://cdn.stape.io/i/68c164e3cfaa4862775600.png) How to configure the server GTM container To configure the server GTM container, you will need: Configured web GTM container as we showed above; [Hosting provider for the server GTM container](https://stape.io/gtm-server-hosting). One of the popular options is hosting directly on Google Cloud Platform (GCP), but it may end up being a more expensive and harder-to-use solution, especially for new users. So, Stape is a more affordable and user-friendly [alternative to GCP](https://stape.io/blog/stape-an-alternative-to-google-cloud-platform). Server GTM container configuration is a more complex process compared to the web container. It includes the following steps: Creating a server GTM container within Google Tag Manager. Hosting the container on Stape. Configuring a custom tagging server URL to set up first-party cookies. Creating a Google Tag inside the Web GTM container. Configuring the GA4 Client inside the server GTM container to send data from the web to the server GTM container. Activating Stape's power-ups, such as [Custom Loader](https://stape.io/solutions/custom-gtm-loader) and [Cookie Keeper](https://stape.io/solutions/cookie-keeper), to make tracking codes less affected by ad blockers and browser restrictions. We have a comprehensive [guide on server GTM container configuration](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). In this article, we will briefly describe the steps. For the detailed instructions, please refer to that guide. https://www.youtube.com/watch?v=SITX4lkvCy0 Manual vs. plugin GTM setup: a quick comparison | Manual setup | Plugin/app setup How it works | GTM snippets are added directly to the website's source code | A CMS plugin or app adds the GTM snippet automatically to every page Technical knowledge required | Requires access to and familiarity with the site's code | Minimal, managed through the CMS admin panel Time to implement | Longer, especially on large sites with many pages | Fast a few clicks after plugin installation Risk of errors | Higher, snippets can be misplaced or applied inconsistently | Lower, the plugin handles placement consistently across all pages Suitable for | Developers and technically experienced users | Beginners and non-technical users Compatibility | Any website | Requires a supported CMS (WordPress, Shopify, Magento 2, BigCommerce, Wix, PrestaShop, Salla) Maintenance | Manual updates if the snippet needs to change | Plugin handles updates automatically FAQs Where to add Google Tag Manager code? The We add this script as a custom HTML tag and trigger it only on iframe pages by checking the hostname in the trigger. ![Detect iframe](https://cdn.stape.io/i/6800eaff08cff575086035.png) In the preview, we verify that inside the iframe, the required event is now present in the data layer, along with the necessary data from the form when it’s filled out. ![Detect iframe](https://cdn.stape.io/i/6800eb3a9e0c2094160296.png) Your case may be different, and often in an iframe, you need to collect data with a custom script that will listen for actions with the desired elements. Once you have collected this, you can add it to the dataLayer.push() If the iframe is on the same domain as the parent window, you can configure tags based on this data layer and send events to the required platforms. However, if the iframe is on a third-party domain, you'll need to pass this data to the parent window. 3. Pass the event to the parent window You can transfer data using the standard method [window.postMessage()](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage). To do this, we make a small script that fires on our iframe ‘hubspot-form-success’ event (from the previous step), takes data from the data layer, and sends it to the parent window. ![Custom HTML tag script - data to send](https://cdn.stape.io/i/6800eb6104608935367470.png) In the parent window, we need a script to receive this data. Here is an example of such a script. This tag works only on the main site pages, not in iframe. The same script sends data to the data layer in the parent window. ![Custom HTML tag script - data to send](https://cdn.stape.io/i/6800ebb41a9b0530205298.png) We have a total of three scripts now: ![Custom HTML tag script - data to send](https://cdn.stape.io/i/6800ec8966393037426791.png) Tracking required actions in an iframe and the data layer in the iframe. Sending data from iframe to parent window. Receiving data in the parent window and sending it to the data layer. 4. Testing Run the preview, trigger the necessary events, and check if everything works correctly. If everything is correct, it should look something like this: ![Custom HTML tag script - data to send](https://cdn.stape.io/i/6800ecb63c196508709721.png) Once the data is passed to the parent window, you can easily configure tags to work with data layer events and send the necessary data from the iframe to Google Analytics or any other platform you need. Final thoughts Of course, this process can be optimized. For instance, you could eliminate the need to send data to the data layer within the iframe and instead send it directly to the parent window as soon as the event occurs. However, during the setup phase, using the data layer approach is much easier. It the lPs you pinpoint exactly where things may be going wrong (and believe me, that will happen during setup like this one 🙂). Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Attribution tracking guide Source: https://stape.io/blog/attribution-tracking Learn how attribution tracking works, why it matters, and how Stape improves analytics with server-side tracking for accurate multi-channel attribution. Attribution tracking is the process of following a customer's journey and giving credit to the key actions or touchpoints that lead to their decision to convert or take action. In this article, we’ll explore the importance of attribution tracking and making the most of it with Stape. What is attribution tracking? Attribution tracking is a method used to understand how customers interact with a brand across different touchpoints before making a decision, such as making a purchase or signing up for a service. These touchpoints can include website visits, social media interactions, email clicks, online ads, or even offline experiences. Marketers follow users across their journey by attributing value to specific touchpoints. A single user’s journey to conversion could be unique, but the picture gets clear when you combine large amounts of data from different user journeys. With proper attribution tracking, you can discover what channels work best, what marketing efforts bring better results, and what places could use some (or more) improvement. Without accurate attribution tracking, you're missing insights and wasting budget with no clear direction. While some of your efforts might eventually pay off, what about the missed opportunities from steering your resources in the wrong direction? Tracking attribution helps you focus on what truly works, ensuring that you’re investing wisely and not ignoring anything important. For a deeper look at how attribution connects to growth, read our guide on [lead acquisition marketing](https://stape.io/blog/lead-acquisition). Why do I need to track attribution? Instead of trying to figure out what made your campaign successful every time you analyze one, you can set up accurate attribution and get all the insights you need about each touchpoint. Attribution takes much of the guesswork out of the process, helping you get to the sense of it all faster. In other words, attribution guides what went well, what should be improved, and what should be left out in your marketing efforts. Types of marketing attribution tracking Attribution conversion tracking can be implemented in many ways. Before we discuss attribution models and how they assign credit for conversions, it’s important to understand how the mechanics of attribution tracking work. There are tools, methods, and technologies behind attribution tracking, so let’s examine them more closely. Tracking methods: pixel-based tracking or UTM parameters Pixel-based tracking relies on small pieces of code embedded on web pages to monitor user actions. Pixel-based tracking is implemented with the help of Meta Pixel, Google Ads tag, LinkedIn Insight Tag, etc. This method is great for tracking conversions, retargeting, and audience building. On the other hand, UTM parameters are URL tags that help track traffic sources and campaign performance. To use this method, you have to add structured parameters to your link. You can do it with the help of link generators in ad platforms. This method is great for tracking which marketing efforts (social posts, emails, ads) drive traffic or conversions. Online vs. offline attribution tracking Online tracking is pretty straightforward, since digital actions can be recorded quickly. Offline actions, like in-store purchases, calls, word-of-mouth referrals, and in-store interactions that did not lead to purchases, are more complex to track. To [match offline actions](https://stape.io/blog/facebook-offline-conversion-using-server-gtm) with online ones, marketers use CRM systems, call tracking software, and other tracking tools that can help them fill in the gaps in the customer story. Platform-specific tracking Different advertising platforms have tracking systems and rules to assign value to interactions. Based on the platform you use, you need to fully understand how it tracks user behavior and how the attribution models differ. This way, you will be able to get consistent and accurate reporting. For example, Google Ads might credit a conversion to the last ad clicked, while Meta Pixel might attribute it to the first point of contact. Attribution models explained Marketing attribution works based on models. [Attribution models](https://stape.io/blog/marketing-attribution-models) determine which touchpoints or channels deserve credit for a conversion. An attribution model is a set of rules for analyzing this. In Google Analytics, there are seven key attribution models: First interaction Last interaction Last non-direct click Linear Time-decay Position-based Custom Let’s take a closer look at each of them. ![Attribution models](https://cdn.stape.io/i/67f8f62ea1612866254028.png) First Interaction All credit goes to the first ad the user clicked. Example: a user clicks a banner ad, but doesn’t book. One week later, they click an Instagram ad and book. The banner ad gets all the credit. Last Interaction All credit goes to the last ad before the booking. Example: a user sees and clicks a banner ad but doesn’t book anything. A week later, they click an Instagram ad and make a booking. The Instagram ad receives all the credit for the conversion, even though the banner ad played a role in initially driving interest. Last Non-Direct Click Ignores direct visits (like typing the website) and credits the last ad. Example: a user clicks a Google ad and later visits the website to make a booking. The booking is credited to the Google ad due to the Last Non-Direct Click attribution model, which gives credit to the last non-direct interaction before the conversion and ignores the direct visit. Linear Credit is split equally between all touchpoints. Example: a user clicks on a banner ad, then an Instagram ad, followed by a YouTube ad before making a booking. Each ad receives one-third of the credit for the conversion. Time-Decay More credit goes to ads closer to the booking. Example: before booking, a user clicks on a banner ad, then an Instagram ad, followed by a YouTube ad. The YouTube ad gets the most credit, Instagram gets some, and the banner ad receives the least. Position-Based Most credit goes to the first and last ads, less to the middle ones. Example: before booking, a user clicks on a banner ad (first), an Instagram ad (middle), and finally a YouTube ad (last). The banner and YouTube ads receive the most credit, while the Instagram ad gets less. Custom You choose how to give credit based on what matters to you. Example: a business decides to give 70% of the credit to the Instagram ad that led directly to the booking, and 30% to the first banner ad that helped initiate the customer journey. How Stape enhances attribution analytics and tracking With accurate campaign attribution, marketers can understand the impact of their efforts across different channels and evaluate the effectiveness of their marketing campaigns. Server-side tracking offers a lot of advantages for tracking and attribution. Take a look at the infographics below. ![Server-side tracking benefits for attribution tracking](https://cdn.stape.io/i/67f8f6d748fec881897207.png) With Stape, you can avoid data loss by extending cookie time and bypassing tracking restrictions. Stape has tools for increasing cookie lifetime: [Same origin domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container#using-the-same-origin) [Own CDN](https://stape.io/solutions/own-cdn) [Cookie Keeper](https://stape.io/solutions/cookie-keeper) [Cookie extender tag](https://stape.io/solutions/cookie-extender) And tools for bypassing tracking restrictions: [Custom Loader](https://stape.io/solutions/custom-gtm-loader) Stape can also help you with paid campaign attribution. We created a [Facebook conversion API tag](https://stape.io/blog/how-to-set-up-facebook-conversion-api) for the Google Tag Manager server container. It works with Google Analytics 4 and Data Tag. It also extracts event data from any client, parses the server client, and automatically adds necessary parameters to the request. It sends user data to [increase the match quality score](https://stape.io/blog/how-to-improve-event-match-quality-facebook) and sets up event deduplication. [Server-side conversion tracking in Google Ads](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) is also easier with Stape. Server-side Google Tag Manager can help you move your Google Ads conversion tracking tags from the webpage to the server. How to set up attribution tracking? Here’s a short and simple explanation on how to set attribution tracking. Pick your goals. For instance, you can track sales or leads to track your marketing ROI. Choose an attribution model. Pick how you will give credit. Find top channels. See which of your channels brings the traffic and conversions. Use tracking tools. You can use UTM tags or Google Analytics tags, or other tools here. Add a tracking pixel to track visits and actions. Review and optimize. Watch your dashboard. Check the results you get and tweak your strategy accordingly. FAQs What is server-side attribution tracking? Server-side attribution tracking is a way of tracking user actions and conversions by sending data directly from your server to an analytics or ad platform rather than relying on the user’s browser. In simple terms, instead of tracking with browser cookies and pixels, your server sends all the data, like page visits, purchases, or form submissions, directly to the analytics platforms. Can I integrate Stape with Google Tag Manager? You can integrate Stape with Google Tag Manager —specifically, with [Google Tag Manager server-side](https://stape.io/gtm-server-hosting). This setup allows you to send data through a server container, which can improve tracking accuracy and privacy. Can Stape track multi-channel attribution? No, Stape doesn’t track multi-channel attribution directly, but it enables it by providing server-side tracking through Google Tag Manager Server . You set up tags in GTM to send clean data to platforms like GA4, Facebook, and TikTok. These platforms then handle attribution (e.g., first-click, last-click). Stape helps by: Tracking users more accurately Preserving attribution data (even with blocked cookies) Feeding clean data for better attribution modeling For multi-channel attribution, you still need platforms like GA4 or Meta CAPI. Want to start using server-side tags? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # 10 tips how to optimize Facebook Ads for better performance in 2026 Source: https://stape.io/blog/facebook-ad-optimization Discover the best Facebook advertising tips to boost your ROI! Learn how to optimize Facebook Ads with these 10 expert strategies for better performance in 2026. Facebook advertising remains one of the most effective tools for reaching your target audience. However, with constant algorithm changes and growing competition, it's crucial to know how to optimize your advertising campaigns for maximum results. This article looks at key Facebook ad performance metrics, Meta Ads optimization frequency, ways to improve ROI, and 10 actionable tips for boosting ad performance in 2026, including a brief overview of the 10 tips. What are the Main Facebook Ads Performance Metrics? ![What are the Main Facebook Ads Performance Metrics?](https://cdn.stape.io/i/67f3e2afc0d16655053455.png) Reach shows the number of unique users who have seen your ad at least once. This metric helps you assess the scale of your campaign's impact and its ability to reach new audiences. Impressions show the total number of times your ad has been shown on user screens, including repeat views. A high number of shows with low coverage may indicate an excessive frequency of showing to the same audience. Click-through Rate (CTR) is the percentage of users who click on an ad after viewing it. High CTR means advertising attracts attention and meets the target audience's interests. Cost per click (CPC) shows the average amount you pay for each click on your ad. Managing ad spend effectively can help lower PCP by optimizing your budget allocation and selecting appropriate bidding strategies. Conversions reflect the number of actions users have taken since interacting with the ad (such as buying, subscribing, or filling out a form). The high number of conversions indicates the effectiveness of advertising content and a properly configured sales funnel. Cost Per Acquisition (CPA) is the average cost you pay for each conversion. A high CPA may indicate ineffective advertising or an incorrectly configured audience. How often should I optimize my Facebook Ads? Optimizing Facebook advertising campaigns is an integral part of [digital marketing](https://stape.io/blog/increase-marketing-roi) strategy and takes time to achieve maximum effect. Once a campaign is launched, Facebook's algorithms need data collection and training to understand the audience targeted by the ad properly. This is called the learning phase, which usually lasts 3 to 7 days. During this phase, the system determines the best methods to attract users who will interact with your ads and adjusts the strategy based on initial feedback. Different configurations within an ad set can significantly affect the learning phase and overall campaign performance. To improve Facebook ad performance, it’s important to give the algorithm enough time to fine-tune its approach before making any drastic changes. After completing the training phase, conducting a detailed analysis of the campaign results is important. This will provide an opportunity to assess how effectively advertising works and decide whether to change the campaign settings. However, excessive parameter changes early on can prevent algorithms from adequately learning and optimizing the campaign. Therefore, changes should only be made after sufficient time for data collection, and adjustments should be made based on real results such as CTR, conversions, or cost per click. Such changes should be justified and based on a detailed analysis of the resulting metrics. So, the optimal frequency of advertising optimization on Facebook is every 7-14 days, depending on the performance indicators. At the same time, it is important to avoid frequent changes to not bring down the learning phase. How to increase ROI on Facebook ads? Identify key conversions for tracking. The first step is to determine which user actions have the greatest business value. This can be a purchase, registration on the site, filling out a contact form, etc. It is important to focus only on those conversions that directly affect the achievement of your goals, so as not to waste resources on tracking less important actions. Set up correct conversion tracking. Once you have identified the key conversions, you must set up the appropriate tags and integrations for accurate data collection. This includes correctly installing and checking all the necessary elements to track conversions correctly on the site or app. Optimize tracking settings. Use dynamic tracking and automatic rules to adjust rates and budgets based on your campaign results. This will allow you to automatically adapt campaigns to changing conditions and get the best results without any extra effort. Check tracking data regularly. Update and check your tracking settings for errors or inaccuracies. It is important that the collected data is correct, since the effectiveness of campaigns and the correctness of decisions made regarding the further budget or rates depend on it. For monitoring your server container, the GTM container Stape can offer a Monitoring feature that allows you to set up notifications according to your needs. Analyze campaign results. Regularly analyze the effectiveness of your campaigns to understand which creatives, placements, and audiences work best. This analysis will allow you to understand what brings the best results, and direct efforts to further optimize them. Adjust campaigns based on analysis results. Based on the collected campaign performance data, make adjustments to your ads, bids, and targeting. Raise the stakes for channels that produce good results and adjust those that fall short of expectations. Testing new strategies. Regularly conduct A/B testing for new ads, targeting, and strategies to determine which are most effective. This will allow you to get the best results without stopping the process of optimization and adaptation. Continuous improvement of campaigns. Constantly improve advertising campaigns, focusing on new strategies and changes in business. Consider seasonal fluctuations or changes in business objectives to maintain high campaign performance at all times. 10 Tips to Improve Facebook Ads Performance in 2026 Use [server-side tracking](https://stape.io/). Switching to a server-side method of [tracking data](https://stape.io/blog/facebook-tracking) allows you to bypass the restrictions of browsers and ad blockers, providing more accurate data on user interaction with your advertising. This contributes to more effective targeting and increased ROI. Create high-quality and relevant content. Use attractive images and videos that match the interests of your target audience. Optimize mobile ad versions. Most users browse Facebook from mobile devices, so it's important that your ads are tailored to mobile screens. Use retargeting. Set up campaigns to re-engage users who have already interacted with your site or previous ads. [Retargeting is a powerful tool](https://stape.io/blog/cookieless-retargeting-how-to-retarget-in-a-cookieless-world) to engage users who have already interacted with your brand. Choose the right bidding strategy. Experiment with different bidding strategies, such as "Lowest Cost" or "Target Cost," to find the best approach for your campaign. Test different ad formats. Experiment with carousels, videos, slideshows, and other formats to determine which are most effective for your audience. Use A/B testing. Compare different creatives, texts, CTA and audiences to find the most effective combinations. Regular testing will help identify the best options for scaling. Use Lookalike Audiences. Create audiences similar to your current customers to attract new users with similar interests and behaviors. Set up automatic budget management. Use the Advantage Campaign Budget feature to automatically allocate budget to ad groups based on their performance Analyze data and adjust strategy in real time. Review campaign analytics regularly to identify effective tactics and optimize strategy. The use of A/B testing, custom dashboards and integration with analytical platforms will help to quickly respond to changes and increase ROI. How to improve CTR in FB Ads? Click rate is one of the key indicators of the effectiveness of advertising campaigns on Facebook. It shows how many users who saw your ad clicked on it. The higher the CTR, the greater the chances that advertising will bring conversions at a lower cost. Here are some strategies to help boost the CTR of your Facebook Ads in 2026. 1. Optimize creatives and visual content. The visual component is the first thing that attracts the attention of users. To boost CTR, use: High-quality, vivid images and high-resolution videos. Visual elements that contrast with the Facebook background and stand out in the feed. Dynamic creatives (carousels, video ads, animated GIFs). Images with real, credible people. 2. Articulate a strong call to action (CTA) People are likelier to click on ads if they understand what to do next. Use specific CTAs: find out more; buy now; sign up today; take Advantage of the discount; test different formulations to find the most effective. 3. Segment your audience and use personalized ads The more precisely you set up targeting, the more interested users will see advertising. Use: custom audiences - lists of users who have already interacted with your brand; lookalike audiences - audiences similar to your best customers; dynamic retargeting for personalized offers; detailed targeting for determining your audience, including or excluding certain demographic characteristics, interests and behavioral factors. 4. Test different advertising formats Experiment with ad formats to find the one that gives the best results: Video ads often have a higher level of engagement. Carousels allow you to show several products or benefits at the same time. Stories-ads work better for mobile audiences. 5. Implement server tracking for more accurate analysis It is important to have accurate data to assess the effectiveness of advertising and increase CTR. Server-side tracking through the [Facebook Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api) allows you to bypass ad blockers and get more complete analytics. This helps reduce data loss, giving Facebook's algorithms more information to optimize ad delivery. As a result, advertising will be more accurately targeted to the interested audience, increasing the likelihood of conversions. 6. CTR monitoring and support CTR support is an important aspect of an effective advertising strategy. Over time, the CTR may decrease, often indicating audience fatigue from the announcement. One of the reasons for this is the excessively high ad frequency when the same advertising is shown to users too often, and they stop responding to it. Regular CTR analysis will help to notice these changes in time and make adjustments - change creatives, update audiences, or adjust the strategy of shows to maintain user engagement. 7. Test A/B and automatic optimization Facebook allows you to select the best ad options automatically. Conduct A/B tests to determine the most effective elements of advertising (image, CTA, text) and use Advantage + Placements for optimal advertising distribution. How to improve my Facebook Ads bidding strategy? Optimizing your Facebook Ads bidding strategy is critical to improving the effectiveness of advertising campaigns and maximizing ROI. Well-tuned rates help to control costs, increase coverage and ensure that ads are shown to the most relevant audience. To optimize fb ads effectively, it's essential to choose the right bid strategies, monitor performance regularly, and make necessary adjustments based on data-driven insights. 1. Define campaign goals Before setting up a bid strategy, clearly define the main purpose of the advertising campaign: increasing brand awareness, attracting traffic, conversions or leads. [Facebook Lead Ads](https://stape.io/blog/facebook-lead-ads) offers different bidding strategies depending on the chosen goal, so choosing the right one will ensure that the budget is used effectively. 2. Choose the right type of bid Facebook Ads provides several bidding strategies: Lowest Cost - Facebook independently optimizes rates for maximum results within your budget. This is the best option for novice advertisers. Bid Cap - you set the maximum amount you will pay for the result. This strategy suits those who want to control costs but need careful monitoring. Cost Cap - Facebook optimizes bids so that the average cost of the result does not exceed the set limit. Useful for controlling CPA (conversion prices). Target ROAS - suitable for eCommerce and companies seeking to provide a certain level of profitability of advertising costs. 3. Use automatic bidding strategies Machine learning-based Facebook Ads help advertisers get optimal results through automated strategies. If you have limited experience or do not want to adjust rates manually, try an automatic approach, for example, Lowest Cost or Advantage Campaign Budget, to distribute the budget evenly. 4. Test different bidding levels Don't settle for "good enough" bidding — find your true cost-efficiency sweet spot through rigorous A/B testing. Accounts can unlock 30% more conversions just by changing betting strategies. What works for competitors will not necessarily be effective otherwise, and yesterday's successful approach may not be effective enough today. Bidding decisions should be made based on real data, not assumptions. 5. Use a campaign-level budget (CBO) The Campaign Budget Optimization (CBO) feature automatically allocates the budget to ad groups, directing more funds to effective options. This helps improve results without having to adjust rates manually. 6. Analyze and adapt bids Regularly check ad performance metrics such as CPM, CPC, and CTR (ad clickability). Use Facebook Ads Manager analytics to determine when to change your bidding strategy. 7. Use Stape for more accurate data tracking One of the reasons for inefficient rates is inaccurate or lost user data due to tracking restrictions. Stape helps set up server-side tracking, which allows you to get more accurate data on conversions and adjust rates according to objective performance indicators. Most popular Mistakes to Avoid in Facebook Ads Even the most experienced advertisers can make mistakes in Facebook Ads, which reduce the effectiveness of campaigns and lead to unnecessary costs. Here are the main problems that should be avoided to ensure the maximum effectiveness of advertising. 1. Unclear definition of target audience One of the most common mistakes is running ads without setting up the audience in detail. Using segments that are too wide or, conversely, too narrow can lead to waste. The best option is to test different audiences using Lookalike, Custom Audiences, and detailed targeting by behavioral factors. 2. No A/B testing If you run advertising campaigns without testing various ad options, you risk spending your budget on ineffective creatives. Always check multiple options for images, texts, CTA buttons, and headlines to determine what works best for your audience. 3. Ignoring the quality of creatives Facebook prefers advertising with attractive visual materials. Using low-quality images or boring videos can significantly reduce the CTR (clickability) and campaign effectiveness. Invest in high-quality graphics, short dynamic videos, and thoughtful identity. 4. Wrong choice of bidding strategy Automatic bids can yield good results, but in some cases, you need to manually optimize bids for better cost control. It is important to analyze Cost Per Result, ROAS, and CPA to adapt the bidding strategy to real business goals. 5. No retargeting Many advertisers spend the budget only to attract new users, forgetting about retargeting. Ads aimed at people who have already interacted with your brand significantly increase the chances of conversion. Use Custom Audiences to redirect ads to site visitors, subscribers, or anyone who has left items in the cart. 6. Ignoring data analysis Running ads without regularly analyzing metrics is a strategy doomed to failure. Monitor CTR, CPC, CPM, and ROAS and adjust campaigns according to their effectiveness. 7. Inaccurate conversion tracking If your conversion data is incomplete or inaccurate, advertising optimization algorithms may be affected. Using server-side tracking through Stape will help to collect more complete data on user actions and correctly optimize campaigns. See how it could affect your costs with the [return on sales calculator](https://stape.io/roas-calculator). Conclusion The effectiveness of Facebook ads largely depends on the advertiser's ability to avoid common mistakes. Poor audience selection, ignoring A/B testing, poor-quality visuals, and errors in budget setup can lead to low number of clicks and conversions. In addition, insufficient attention to analytics and non-use of modern interaction [tracking tools](https://stape.io/blog/ad-tracking) (for example, server-side tracking) can lead to incorrect assessment of campaign effectiveness and irrational use of the advertising budget. To achieve maximum results, it is important to regularly analyze the data and adjust the strategy to changes in Facebook algorithms. Accurate targeting, optimizing rates, setting up retargeting, and testing various ad formats will significantly improve advertising efficiency. Combining a creative approach with technology solutions such as conversion API and automated bidding algorithms will help not only attract more customers but also increase the profitability of advertising campaigns. --- # How to achieve 100% accurate tracking on Shopify with sGTM and Stape Store Source: https://stape.io/blog/accurate-shopify-tracking-stape-sgtm Ensure 100% tracking accuracy on Shopify with sGTM and Stape. Don’t miss a conversion + improve attribution for better marketing insights. This article explores how to achieve 100% accurate Shopify tracking using Stape and sever GTM. Learn how to prevent data loss, improve attribution, and optimize your marketing performance with a reliable and effective tracking solution. Accurate Shopify analytics is crucial for achieving your business goals. You need reliable data to decide how to allocate budgets, see the performance of your campaigns, and return on invested money. Knowing which [eCommerce KPIs](https://stape.io/blog/ecommerce-kpis) to track helps you make sense of that data and act on it effectively. Losing track of conversions can lead to an incomplete picture and misguided decisions. Luckily, Stape has you covered, and in this article we will explain how it is possible to track 100% of your purchases on Shopify no matter what and deliver all necessary data to the analytics and/or marketing platforms so that you could get better insights, accurate attribution reports and train your pixels more effectively. Although Shopify released a web pixel API that allows us to subscribe to different events and track them more precisely, you may have noticed that sometimes you’re still missing a percentage of orders that weren’t reported to your advertising or analytics platforms. This can happen for various reasons - ad blockers, ITP restrictions, slow internet, a failure on the user’s device, or even just an unfortunate coincidence. Any of these can cause you to lose track of your conversions. But don’t worry, Stape got you covered! With [Shopify server-side tracking](https://stape.io/blog/server-side-tagging-for-shopify), you can bypass these common issues. The Stape Store feature is available on the Pro subscription plans and higher. If you’d like a custom solution, you can contact our [sales department](https://calendly.com/stape-sales). Skip manual event setup. [Stape Conversion Tracking for Shopify with Setup Assistant](https://stape.io/solutions/shopify-app-and-setup-assistant?cta=blog_article) installs GTM server side in minutes, auto-generates key eCommerce events, and loads ready-to-use tags for Google, Meta, TikTok, and more. Events run through Stape’s server-side tracking platform, helping you capture up to 40% more conversions and improve ROAS. Step-by-step configuration In short, the implementation flow looks like this: Set up event tracking as usual using web and server GTM containers. Write marketing and/or analytics cookies in Stape Store and have them available as a fallback if the purchase event has not been reported off the web container. Every purchase event reported from the web is stored in the [Stape Store](https://stape.io/solutions/stape-store). Thus, we will be able to check what transactions have been reported. Set up a webhook using the [Stape's Conversion Tracking app](https://apps.shopify.com/server-gtm) available in the Shopify marketplace or native Shopify webhooks that will report all created orders to sGTM. Once the webhook is received on sGTM - we check if such an order has already been written to Stape Store - that would mean that this transaction has been reported live off the web container. If we cannot find this order in Stape Store, it means that for some reason it hasn’t been reported, so we need to process the webhook, retrieve necessary cookies from Stape Store, and report to the marketing and/or analytics platforms you need via Conversions API. Before you begin Before you start implementing the instructions below, you need to activate Stape Store: Log in to your [Stape account](https://stape.io/login) and select your sGTM container from the dashboard. ![Select your sGTM container from the dashboard](https://cdn.stape.io/i/6a54a3ccf2e88395210458.png) 2. Click the Store tab. 3. Click Activate Store. ![Click Activate Store.](https://cdn.stape.io/i/6a54a3cd42649390036675.png) Step 1. Implement basic tracking setup with the Stape Conversion Tracking app Stape Conversion Tracking app on Shopify allows you to easily [install Custom GTM and GA4 Loader](https://stape.io/solutions/custom-gtm-loader) and become more resistant against adblockers. Combined with the [Cookie Keeper](https://stape.io/solutions/cookie-keeper) power-up, it will even allow you to bypass ITP restrictions. We have great articles and ready-made container templates that describe how to implement this step, please check them out: [How to use pre-built GTM container templates for your Shopify store](https://stape.io/gtm-set-up-assistant) [Server-side tagging for Shopify](https://stape.io/blog/server-side-tagging-for-shopify) [Meta CAPI for Shopify via server GTM](https://stape.io/blog/meta-capi-for-shopify-via-server-gtm)https://stape.io/blog/meta-capi-for-shopify-via-server-gtm [Debugging Shopify tracking with web and server GTM: a complete guide](https://stape.io/blog/shopify-tracking-debugging-guide) – once your basic setup is live, don't skip verification. Shopify's sandboxed checkout means tags can appear to work in GTM preview while failing silently in production. Step 2. Store necessary cookies in Stape Store Now we need to store the cookies we might need in the future in the [Stape Store](https://stape.io/solutions/stape-store). In our example, we will store Meta cookies on the “[checkout_started](https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_started)” event and send them from the Shopify web pixel to sGTM. At this moment, the checkout token will be available to us and we’ll be able to use it as a stitching parameter to later match the webhook with the checkout and cookies. A similar process can be applied to any other platform you want to report to. The following code snippet will send a payload with checkout token and Meta cookies to the server container URL. The Data Client will claim this request; by default, it accepts requests on /data path. analytics.subscribe("checkout_started", (event) => {   setTimeout(() => {     async function getCookiesPayload() {       try {         const payload = {           "event": "store_cookies",           "cart_token": init.data.cart.id,           "fbp": await browser.cookie.get('_fbp'),           "fbc": await browser.cookie.get('_fbc')         };         return payload;       } catch (error) {         console.error('Error retrieving cookies:', error);         return null;       }     }     async function sendCookiesToSgtm() {       const payload = await getCookiesPayload();       if (payload) {         fetch("https://sst.example.com/data", {           method: "POST",           headers: {             "Content-Type": "application/json"           },           body: JSON.stringify(payload),           keepalive: true         }).then(response => {           console.log('Payload sent successfully:', response);         }).catch(error => {           console.error('Error sending payload:', error);         });       }     }     sendCookiesToSgtm();   }, 1500); }); Now we need to store these cookies in Stape Store using the [Stape Store Writer tag](https://stape.io/solutions/stape-store-writer-tag)available in the server GTM gallery, so we can later retrieve them and report to Meta off the webhook. These cookies will be referenced by cart token, which is available to us on ‘store_cookies’ event, and that will also be available in the native webhook payload sent from Shopify. Here is an example of how the Stape Store Writer tag can be configured: ![Stape Store Writer tag config](https://cdn.stape.io/i/67eea774082db899943333.png) If applicable, please also keep in mind privacy regulations and store advertising and/or analytics consent status as well, so you can later know whether this user has granted consent and you are allowed to report such conversion. Alternatively, if your consent banner supports Shopify privacy API, you may configure your web pixel to fire only if necessary consent status has been granted. Step 3. Store every purchase reported from the web container in Stape Store We need to store every purchase reported in a “usual” way from the web container in Stape Store, so we can later know if this conversion has already been reported to Meta. Apply a similar approach used on a previous step, but this time use transaction_id as a document key, which will also be available to us from the Shopify webhook payload. Here is an example of a Stape Store Writer tag that can be configured for this purpose: ![Stape Store Writer tag](https://cdn.stape.io/i/67eea7a5d963e928903152.png) It is better to convert transaction_id “number” variable type to a string to avoid any conflicts between data types used in sGTM, Shopify, and Stape Store. There is a variable in the sGTM gallery that easily allows us to do that. Step 4. Set up a webhook in Shopify You may set up a webhook in Shopify in many different ways. One of the easiest would be to use the [Stape Conversion Tracking app](https://apps.shopify.com/server-gtm) - it has all the necessary payload: cart token, properly structured order and product information, and user data. You may also use native webhook functionality or any other app of your choice. ![Set up a webhook in Shopify](https://cdn.stape.io/i/67eea7ca3f244655638684.png) We would also suggest using Stape’s [Request Delay Power Up](https://stape.io/solutions/request-delay) to ensure that the request sent from the web container reaches the server container before the webhook from the backend. This will allow us to explicitly control the sequence of requests, which is crucial for our case. A delay of 1 minute should be sufficient for the purchase request to reach the server container, allowing all necessary tags to fire and process the required requests. Step 5. Verify if the order sent via webhook has already been processed On this step, we already have the following: All necessary marketing and/or analytics cookies are stored in Stape Store as a cart_token document. Every purchase reported from the web container is stored in Stape Store as a transaction_id document. Whenever an order is created in Shopify, a webhook will be sent to the server container with a small delay. Now, we need to verify whether the incoming webhooks should be processed and reported to Meta or disregarded, since the order has already been processed. Thus, we take transaction_id from the incoming webhook and check if it is available in the Stape Store using the [Stape Store Lookup variable](https://stape.io/solutions/stape-store-lookup-variable). ![Stape Store Lookup variable](https://cdn.stape.io/i/67eea8199546d333407478.png) As a result, our variable will return ‘true’ if this transaction_id is found in the Stape Store. This means we should disregard this webhook since this transaction has already been reported off the web container. If our variable returns undefined or false, it means that this transaction has not been reported off the web container for some reason, and we should process this webhook. Set up an additional Facebook tag for [Shopify CAPI](https://stape.io/blog/facebook-conversion-api-and-shopify), and fill it with basic information from the webhook, like value, currency, content_ids, user data, etc. For the most accurate attribution, you should also report the _fbp and _fbc cookies from the Stape Store. They can be retrieved using the Stape Store Lookup variable referenced by the cart token available in your webhook. Here is an example: ![Stape Store Lookup variable](https://cdn.stape.io/i/67eea8344fc8d141596779.png) Stape Store Lookup variable for _fbp should override Browser ID parameter in Facebook tag, and Stape Store Lookup for _fbc should override Click ID parameter. This Facebook tag should be triggered when our Stape Store Lookup variable for transaction_id check returns a value that does not equal true. If applicable, perform an additional check for consent status using a similar approach. Conclusion This approach allows you to achieve 100% Shopify conversion tracking accuracy, so you’ll never miss a conversion that will be attributed appropriately. It can be extended for any marketing/analytics platform you need; just make sure to store all necessary cookies in step 2. Then, in step 5, you can create an additional tag like TikTok, Snapchat, GA4, Google Ads, etc. You just have to override the necessary parameters with cookie values obtained from Stape Store. For more complex platforms like Google Ads, Stape already offers excellent solutions with a simple authentication process, including the [Google Ads Offline Conversion tracking tag](https://stape.io/solutions/google-ads-offline-conversion-tag) and [Conversion Adjustment tag](https://stape.io/solutions/google-ads-conversion-adjustments-tag) reporting, if you have such specific needs. Feel free to reach out if you have any questions. Want to start using server-side tags? Happy to hear that! Just click Try for free button and see all the options! --- # Is it possible to configure server-side tracking for Bing/Microsoft Ads? Source: https://stape.io/blog/bing-server-side-tracking Microsoft Ads server-side tracking isn't currently possible to set up. However, markets can partly implement Bing server-side tracking for offline conversions. So far, Microsoft hasn't presented an official Conversions API, and implementing server-side tracking for this platform isn't possible. In this article, we will consider the potential alternative that can enrich conversion data. ⚠️UPDATE: Microsoft has released in closed BETA its official Conversion API, which means you can set up server-side tracking for this platform. Check our blog post on [Microsoft Conversion API integration](https://stape.io/blog/guide-microsoft-conversion-api-integration) for the detailed setup guide. What do marketers mean by Bing or Microsoft server-side tracking? When marketers ask about Microsoft (Bing) server-side tracking, they mean a method of data tracking that allows sending data on users' interactions to a cloud server owned by a business. After that, the data is routed to third-party vendors, in our case to Microsoft Ads. Acting as an intermediary, a cloud server connects a website (or other data source) with external tracking tools. ![How server-side tracking works](https://cdn.stape.io/i/68400243e8788897479661.png) Microsoft server-side tracking is a popular search query, as [server-side tracking provides numerous benefits](https://stape.io/blog/benefits-server-side-tagging), including more precise conversion tracking. In the context of Microsoft/Bing Ads, it is valuable as it enriches data and allows effective campaign optimization. ⚠️UPDATE: Now you can set up server-side tracking for Microsoft Ads as Microsoft has releaded the Conversion API in closed BETA. You can [integrate Microsoft CAPI using Stape’s Microsoft UET Conversion API tag](https://stape.io/blog/guide-microsoft-conversion-api-integration). Is it possible to set up Microsoft/Bing Ads server-side tracking? Although that is a popular request, it is currently [impossible to configure Microsoft server-side tracking](https://community.stape.io/t/server-side-tracking-for-bing-ads/1628), as the platform doesn't have an official [Conversions API](https://stape.io/blog/conversions-api-explained). For now, it is impossible to set up Bing server-side tracking using either a server Google Tag Manager (GTM) container or by configuring Conversions API Gateway, unlike with other platforms such as [Meta](https://stape.io/fb-capi-gateway), [Google Ads](https://stape.io/stape-gateway), [Snapchat](https://stape.io/snapchat-capi-gateway), [TikTok](https://stape.io/tiktok-events-api-gateway), which do support this functionality. What is Bing Ads API? Bing API is a suite of APIs offered by Microsoft/Bing that lets developers integrate different functionalities into their websites or apps. In essence, it allows them to get the most out of Bing's search engine directly without the need to develop that functionality themselves. Here are some of the [Bing API types](https://www.microsoft.com/en-us/bing/apis): Bing API type | Description Bing Web Search | Delivers ad-free, location-aware search results. Bing Image Search | Lets users explore the web for images. The results provide direct image URLs, source website details, metadata, and more. Bing Custom Search | Offers access to a global search index and document processing. It identifies relevant websites and images, generates automatic query suggestions, applies Bing’s ranking algorithm, and presents accurate search results. Bing Autosuggest | Enables intelligent type-ahead suggestions that help users complete queries more quickly. Conversion API | Sends data directly from your own server to an advertising platform's server. What are Microsoft Ads' server-side tracking alternatives? Alternatively, to complete server-side tracking for Bing Ads, you can set up offline conversions tracking. The primary objective of offline conversion tracking is to capture and report conversions that occur outside the online environment (e.g., in-store purchases resulting from an ad interaction). ![Offline conversions tracking](https://cdn.stape.io/i/68400dc60e483252508763.png) Offline conversion tracking can also significantly enrich your data and contribute to campaign optimization. Additionally, such a configuration provides the following benefits: Improved ROI - get a complete picture of the number of conversions (both online and offline) and optimize campaigns accordingly. True server-to-server solution - allows you to transmit conversion data directly to your server-side GTM container using such methods as We have a detailed guide on [Microsoft/Bing Ads offline conversion tracking](https://stape.io/blog/microsoft-ads-bing-offline-conversion-tracking); however, before starting, keep in mind a few points: Offline conversions don't support view-through attribution. So, if you're relying on this type of attribution and plan to send online conversions via the server, it is better not to integrate this tracking method, as doing so will result in fewer server conversions compared to web conversions. To enable this setup, some minor development work is required - you'll need to capture the Microsoft Click ID (msclkid query parameter) when the form is submitted, typically by storing it in a hidden input field. This ID can then be passed from your CRM to sGTM using webhooks. Please note: In 2024, Microsoft launched its own version of Consent Mode. Like Google, it requires obtaining user consent before collecting data. We offer a comprehensive guide on how to [configure consent management in Microsoft](https://stape.io/blog/consent-management-in-microsoft-bing). Benefits of сonversions tracking for Bing Ads Microsoft offers Universal Event Tracking (UET) tag, which records customer actions on your website. The solution allows you to track conversions (such as purchases or leads) and create remarketing lists for targeted advertising. [Microsoft advertising UET tag](https://help.ads.microsoft.com/apex/index/3/en/56894), along with [Microsoft Ads Offline Conversion tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/microsoft-ads-offline-conversion-tag) for server GTM container, lets marketers and business owners create comprehensive conversion tracking. Comprehensive conversion tracking has the following benefits: Measure and campaign performance and ROI. Understand which ads, keywords, campaigns, and landing pages are giving the most conversions. Optimize ad campaigns. Conversion data gives the insights required to make informed decisions about bidding strategies, budget allocation, and targeting. Facilitate remarketing. Conversion tracking allows you to build remarketing lists. Based on it, you can target users who have visited your site or performed specific actions with tailored ads, increasing the likelihood of conversion. Bing Ads vs Google Ads server-side tracking Often, advertisers run ads on multiple platforms, such as Google Ads and Microsoft Ads, simultaneously. When it comes to Google Ads, there is a wide range of options to track conversion data on the server side. Platform | Server-side tracking solution | Description Google Ads | [Server-side tracking setup via the server GTM](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) | A flexible, highly customizable, and scalable solution if you need to set up server-side tracking for other platforms (Meta, Google Analytics 4, Snapchat) | [Server-side tracking using Stape Gateway](https://stape.io/blog/what-is-stape-gateway) | It allows configuring server-side tracking for Google Ads and Google Analytics 4 only. | [Google offline conversion tracking](https://stape.io/solutions/google-ads-offline-conversion-tag) | Track conversions from physical stores, calls, and other offline conversion sources. | [Google Ads adjustment tag](https://stape.io/blog/google-ads-conversion-adjustment) | Modify data on conversions after they were made. For example, adjust data after returns or order cancellations. Microsoft Ads | [Microsoft Ads offline conversions tag](https://stape.io/blog/microsoft-ads-bing-offline-conversion-tracking) | Similarly to Google Ads, the tag enriches data with offline purchases. | [Microsoft server-side tracking using server GTM](https://stape.io/blog/guide-microsoft-conversion-api-integration) | Set up server-side tracking using Stape’s Microsoft UET Conversion API tag. Conclusion While other advertising platforms, such as Google Ads, offer a wide range of solutions for implementing server-side tracking, [Microsoft doesn't provide an official Conversions API](https://community.stape.io/t/server-side-tracking-for-bing-ads/1628), which could enable such a data tracking method. As an alternative method to enrich data using a server-side connection, marketers can utilize offline conversion tracking. It lets attribute conversions that occur offline to the specific campaigns and gain more reliable data for ad strategy optimization. --- # How to integrate Facebook Pixel with a web GTM container Source: https://stape.io/blog/add-facebook-pixel-gtm Discover how to set up Facebook Pixel and GTM integration using Stape’s Meta Pixel tag. See the benefits of a tag that will become a part of Meta ad campaigns optimization. Stape has developed a tag for web GTM containers that allows you to add Facebook Pixel to GTM and efficiently manage data collection. In this article, we consider the benefits of integrating Facebook Pixel with GTM, and show you how to do it using the Meta Pixel tag by Stape. What are the benefits of integrating Facebook Pixel with GTM? Google Tag Manager is a handy hub for data tracking management without directly modifying your website's code. Integrating Facebook Pixel with GTM allows you to track the events you need easily; besides the standard ones, you can set custom event tracking. GTM integration offers a convenient way to send event data to the Meta platform. With its help, you can keep all the tracking solutions you use besides Facebook Pixel in one place (e.g., Google Analytics 4, Google Ads). Accurate event tracking is what makes [KPIs for eCommerce](https://stape.io/blog/ecommerce-kpis) reliable: without it, the numbers you measure won't reflect reality. Stape's Facebook Pixel tag vs Meta’s Facebook Pixel tag ![Stape's tag vs Meta's tag](https://cdn.stape.io/i/68ece9482836d636684621.png) Stape's tag provides the following advantages compared to Meta’s Facebook Pixel tag: Supporting GA4 data layer. Instead of manually pulling data, Stape's Facebook Pixel tag allows the Pixel to automatically read parameters like event_names and items directly from the datalayer. The items array is converted into the format the Meta Pixel needs for its tracking. Stape's tag parses both Google Analytics 4 and EEC format. At the moment, Meta's tag supports only the Enhanced Ecommerce (EEC) data layer, which was used for Universal Analytics, and GA4 data layer parameters must be configured manually (writing custom code to take data from the GA4 data layer and pass it to the Meta Pixel). Pushing events to the data layer with a unique ID. Our new Meta pixel tag provides an option to easily push a new event with the unique event ID value in the dataLayer. In an advanced setup where you need to use tag sequencing, you may have noticed that the unique event ID variable may resolve differently, although all the tags fire on the very same event. That's how GTM works, and we cannot do anything about it, but with this option, there is a solution to that problem. Just push a new event name, and a consistent, unique event ID will be available as a dataLayer value you can use in all your tags. If you are using tag sequencing in your setup and face an event_id mismatch, refer to our guide on [fixing inconsistent event IDs using the Meta Pixel tag by Stape](https://stape.io/blog/gtm-tag-sequencing-event-id-fix). Storing to Local Storage and reusing data across sessions. The tag has an option "Enable Event Enhancement" which allows you to store user data in Local Storage. You can activate this option only if Advanced Matching (sending users' personal information, such as email addresses, etc., to Meta) is enabled. Whenever there is a stored item in local storage, user data will be included in the payload of every event sent to Meta, which will allow you to increase Event Match Quality. Certain user information, like a user's unique ID or other relevant data, is saved locally in the user's browser. The data persists even after they close the browser window or navigate away from the site. In this way, the Facebook Pixel can identify that user across different browsing sessions. This is particularly useful for tracking multi-session conversion paths. You are free to decide whether to store plain user data or already hashed. Regardless of this choice, user data will always be sent hashed to Meta. For your convenience, you may also use a standard User-Provided Data variable to populate user data parameters in a tag. Supporting GTM Consent Mode. Stape's tag provides an option to adapt the tag's behavior based on a user's consent choices as communicated by a consent management platform (CMP) you use. How to configure Facebook Pixel using the web GTM tag Create Facebook Pixel 1. Log in to [Meta Events Manager](https://www.facebook.com/micro_site/url/?click_creative_path[0]=link&ums_creative_detail=advertiser-help-center&click_from_context_menu=true&country=AT&destination=https%3A%2F%2Fwww.facebook.com%2Fevents_manager2%2F&event_type=click&last_nav_impression_id=1Q2B24Yoz1HhiSRpF&max_percent_page_viewed=36&max_viewport_height_px=778&max_viewport_width_px=1440&orig_request_uri=https%3A%2F%2Fwww.facebook.com%2Fbusiness%2Fhelp%2F952192354843755&primary_cmsid=952192354843755&primary_content_locale=en_US®ion=emea&scrolled=true&session_id=10FmZvB49XB41JAEM&site=fb4b&extra_data[view_type]=v3_initial_view&extra_data[site_section]=help&extra_data[placement]=%2Fbusiness%2Fhelp%2F952192354843755&extra_data[creative_detail]=advertiser-help-center). 2. Click Connect Data. ![Connect data in Events Manager](https://cdn.stape.io/i/68eceb5f01d8e604200820.png) 3. Select Web as a data source → click Next. ![Connect a new data source](https://cdn.stape.io/i/68ecebd25821f117219926.png) 4. Add a name for your Pixel and click Create. Please note: By default, Meta offers a free Conversions API Gateway demo - that's a solution which allows you to track data more accurately using server-side tracking, you can deselect this option. It's just one of several setup solutions available. For a detailed overview of Meta's tracking solutions and a comparison of the different approaches, refer to our [guide on Facebook tracking](https://stape.io/blog/facebook-tracking). ![Name for the Pixel](https://cdn.stape.io/i/68eceeab90c07699271429.png) 5. As a setup option, select Set up manually. ![Set up Pixel Manually](https://cdn.stape.io/i/68fa1c1bc3812029440332.png) 6. On the next step, Meta recommends using Conversions API and Meta Pixel. Meta Conversions API (CAPI) is another way to configure more accurate data collection using server-side tracking. Compared to the Meta Conversions API Gateway, CAPI is a more complex way to configure server-side tracking, but it provides greater flexibility and customization. In this article, we focus on [client-side tracking](https://stape.io/blog/server-side-tagging-versus-client-side-tagging), so we select Meta Pixel only. ![Meta Pixel only option](https://cdn.stape.io/i/68ecf12ccb8a2790227864.png) 7. If you integrate Facebook Pixel with a web GTM tag, you don't need to insert the code that Meta generates into your website. On this point, you just need to click Copy code and then click Continue. ![Install Pixel](https://cdn.stape.io/i/68ecf25c4964e536085945.png) 8. After passing these steps, you will be redirected to the Datasets page. Here, you need to copy the Pixel ID. It will be required for the GTM tag configuration, which we explain below. ![Copy Pixel ID](https://cdn.stape.io/i/68ecf2a7647df199400291.png) Integrate Facebook Pixel with GTM 1. Add the [Facebook Pixel tag by Stape](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/fb-tag) to your workspace. Go to your web GTM container → Templates section → Search Gallery → search for Facebook Pixel by Stape → click Add to workspace. ![Add Facebook Pixel tag by Stape](https://cdn.stape.io/i/68b8336504f32435932392.png) 2. In the "Tags" section of the web GTM container, click "New" and choose "Facebook Pixel by Stape" as the Tag Configuration. ![FB Pixel template in GTM](https://cdn.stape.io/i/68b833f5930ec926316592.png) 3. Configure the tag. 3.1 Add Facebook Pixel ID. If you haven't copied the ID while creating Pixel, you can find it in [Facebook Business Manager](https://business.facebook.com/business/loginpage/?next=https%3A%2F%2Fbusiness.facebook.com%2F%3Fnav_ref%3Dbiz_unified_f3_login_page_to_mbs&login_options%5B0%5D=FB&login_options%5B1%5D=IG&login_options%5B2%5D=SSO&config_ref=biz_login_tool_flavor_mbs) → Event Manager → Data Sources. ![Find Pixel ID](https://cdn.stape.io/i/68ecf5155322c804496419.png) On the same page click Datasets → navigate to the Settings tab → copy the Dataset ID. If you add several Facebook Pixel IDs, separate them by commas. ![Dataset ID in Meta](https://cdn.stape.io/i/68ecf5905ec9c812467803.png) Tip: [Use a constant variable](https://stape.io/blog/gtm-best-practices-and-tracking-tags#use-constant-variables) for Pixel ID to avoid retyping the ID whenever it is required. 3.2 Select Event Name Setup Method: Inherit from DataLayer - with this option, the tag maps GA4 event names (add_to_cart, sign_up, etc.) to Meta equivalents. Override - choose from standard events or provide a custom event name. 3.3 (If selected "Override" as event name setup method) Choose the Event type you want to track: standard from the list of available events or a custom one. 3.4 Check the boxes if it meets your tracking needs: (Recommended) Enable automatic data population from the Data Layer - if you check this, the tag will automatically populate standard Object Properties and User Properties from the DataLayer. Tag parses [Google Analytics 4](https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtag) and[Common Event Data](https://developers.google.com/tag-platform/tag-manager/server-side/common-event-data) formats. (Optional) Use only data from the last DataLayer push - in this case, the tag will take data only from the current DataLayer event if enabled. So, only data pushed to the DataLayer last will be used. (Optional) Enable Advanced Matching - with this option, you allow sending users personal information such as email addresses, names, etc. to Meta. Find more details in [Meta's documentation](https://developers.facebook.com/docs/meta-pixel/advanced/advanced-matching/). (Optional) Enable Event Enhancement - by clicking this check box, you enable the use of LocalStorage to store and reuse data across sessions for enhanced event tracking. 3.5 Configure Compliance section: Consent Granted - if you set Consent Granted to false, it will prevent the Pixel from sending hits until the tag is fired with Consent Granted true. Enable GTM consent mode support - if enabled, the tag will check for ad_storage, and if it is not granted, it will set the Facebook pixel consent to revoke. After the consent is granted, it will automatically execute fbq('consent', 'grant'). Limited Data Use (LDU) is an option for those needing to comply with various USA privacy regulations. When Meta receives data with this setting enabled from individuals, the platform will process it as a service provider or processor, as appropriate, and restrict its use as outlined in [Meta's State-Specific Terms](https://www.facebook.com/legal/terms/state-specific). 3.6 (Optional) Object Properties - list the properties that will be sent to Meta with an event. See the [list of Object Properties](https://developers.facebook.com/docs/meta-pixel/reference#object-properties) in Meta's documentation. You can define a variable that returns a JavaScript object containing the desired properties. This object will then be combined with the additional properties listed in the table in this section. Any conflicts will be resolved in favor of the table. 3.7 Server-side tracking - if you track the same event on the server side, configure this section by adding the Event ID parameter. It will allow deduplication of the same event if sent from multiple sources. Learn more about [event deduplication](https://stape.io/blog/how-to-set-up-facebook-conversion-api#event-deduplication-for-facebook-pixel-and-conversions-api-events) in our blog post. Enable DataLayer push using a matching event name and object to ensure synchronization. ![Example of Meta Pixel configuration](https://cdn.stape.io/i/68ecf73ca2e83209605688.png) 4. Add a trigger for a tag. Click on Preview in the web GTM container. Trigger the event, and check whether it is fired. ![Preview in GTM](https://cdn.stape.io/i/67ed2680e197f520997333.png) Meta platform and server-side tracking Server-side tracking helps track data more accurately, improving the conversion attribution as you can send data directly from your server to Meta's server in our context. There are a few options for setting up server-to-server tracking: [Meta Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api#what-is-facebook-conversion-api) (Meta CAPI). Stape has pre-built templates for CAPI via server GTM setup: [choose your CMS](https://stape.io/gtm-set-up-assistant) and download the template. Follow our step-by-step guides for a smooth setup. [Meta Conversions API Gateway](https://stape.io/fb-capi-gateway) (Meta CAPIG). Both methods require [cloud services](https://stape.io/gtm-server-hosting) for data processing and provide similar benefits in terms of data accuracy. The key difference is that Facebook CAPI provides higher flexibility, as besides Meta, you can set up server-side tracking for a [list of other platforms](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). Facebook CAPIG is an easy-to-set-up solution that will be a great fit for those who need to track conversions only from Meta. Read more about the differences between [Meta CAPI and Meta CAPIG](https://stape.io/blog/meta-conversions-api-gateway-versus-conversion-api) in our blog post. Summary Integrating Facebook Pixel with GTM simplifies event tracking, allowing businesses to manage data collection from a single interface. Stape’s custom Facebook Pixel tag offers inheriting event data from the DataLayer or allowing manual overrides for precise customization. The tag's configuration is straightforward; you can integrate Meta Pixel with Google Tag Manager in a few simple steps. Want to start using server-side tags? Stape has lots of options! Click on Try for free to register and check all the benefits. --- # How to set up AdRoll tag using server GTM Source: https://stape.io/blog/adroll-server-side-tracking Discover how you can set up AdRoll integration with your website in a few simple steps. Track standard events and set custom ones to meet the needs. In this guide, we will show you how to set up AdRoll conversion tracking using a server GTM container. The configuration process includes the following steps: Creating a server GTM container. Adding AdRoll Pixel to the website. Sending data from the web to the server GTM container. Adding the AdRoll tag from the Template Gallery to the server GTM container. Configuring the tag to track events. Adding a trigger to the tag. Testing the setup. What does the AdRoll tag do? The AdRoll tag for the server GTM container allows you to build AdRoll Google Tag Manager integration. With its help, you can send site or app events and parameters directly to AdRoll. You can configure both standard and custom events and receive the list of server, app/device data, and/or custom data parameters along with the event. Please note:: At the time this guide was written, the AdRoll platform was in the early alpha stage of developing a server-to-server event API. While it allows for data collection, AdRoll isn’t yet processing the events. Due to the same reason, AdRoll documentation may be incomplete. Benefits of AdRoll tag AdRoll tag developed by Stape operates on the server GTM container, so it offers a [list of benefits of server-side tracking](https://stape.io/blog/benefits-server-side-tagging), including: Accurate data collection and conversion tracking. High control allows easier compliance with data regulations. Data enrichment. Before starting Make sure you have the following things that are required for setting the AdRoll tag: Having installed AdRoll Pixel, you can find the detailed instructions on the setup process in [AdRoll documentation](https://www.adroll.com/pixel-set-up). [Server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). Data flows from the web to the server GTM container (e.g., by [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client)). How to set up AdRoll conversion tracking via server GTM 1. Add the [AdRoll tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/adroll-tag) to your workspace. To do it, go to your server GTM container → Templates → in the "Tag Templates" section, click "Search Gallery" → find "AdRoll by Stape" → click "Add to workspace". ![Click 'Add to workspace' to add the AdRoll tag](https://cdn.stape.io/i/68c3dd90cf28c285793712.png) 2. In the "Tags" section of the server GTM container, click "New" and choose "AdRoll" as the Tag Configuration. ![Add Adroll tag as tag configuration](https://cdn.stape.io/i/67ea5874dbcab659175405.png) 3. Choose Event Name Setup Method: Standard - you can select the needed event from the list (pageview, product search, add to cart, purchase). Inherit from the Client - the tag will automatically parse server GTM event names and align them with AdRoll standard events. Custom - define a unique event name of your choice. ![Choose event type](https://cdn.stape.io/i/67ea595007a63238440840.png) 4. Configure the tag. Despite the event type you've chosen, you will need to configure the following fields: a. Advertisable ID - you can find it in[the AdRoll account](https://app.adroll.com/segments) under AdRoll → Website → View Pixel → adroll_adv_id. b. Pixel ID - go to[AdRoll account](https://app.adroll.com/segments) and find it under AdRoll > Website > View Pixel > adroll_pix_id. c. Access Token - you can get the token in the[Personal Access Tokens](https://app.adroll.com/settings/personal-access-tokens?_gl=1*c4vzmy*_ga*MTk0NzI3ODk5Ny4xNzQyOTkwNjM0*_ga_5KP18ZQG7D*MTc0Mjk5MDgyNS4xLjAuMTc0Mjk5MDgyNS4wLjAuMA..) section in account settings. d. Custom Item ID Key - specify a custom key that will be used to set the content item ID. By default, item_id will be used. This may be useful if you are using WooCommerce extensions. 5. (Optional) Add Server, App/Device Data, and/or Custom Data Parameters that you want to receive when the event is triggered. Here is an example of a configured AdRoll tag: ![Example of AdRoll tag configuration](https://cdn.stape.io/i/67ea59f696eb6751161336.png) 6. Add a trigger for a tag. 7. Test the tag setup in the web and server GTM container using [GTM preview and debugging](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration). Conclusion Integrating AdRoll with GTM allows effective management of conversion tracking. With its help, you can track standard events such as pageviews, adding to cart, purchases, and set up custom events tracking. Thanks to server-side tracking, you can start benefiting from precise data collection, high control over data, and more benefits that server-side tracking offers! Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # How to set up Sendlane tag using server GTM Source: https://stape.io/blog/sendlane-server-side-tracking Configure the Sendlane tag for server GTM using Stape’s tag. Set up event tracking, add contacts to lists, and start server-side tracking. This guide will walk you through setting up Sendlane tracking using server GTM. Below, we provide a detailed breakdown of tag configuration, which includes the following steps: Setting up a server GTM container. Sending data from the web to the server GTM container. Adding the Sendlane tag from the GTM template gallery. Configure the tag to track events or add contacts to the lists. Assigning a trigger to the tag. Testing the configuration. What is a Sendlane tag? Sendlane Tag for the server Google Tag Manager container allows creating an integration between your website and Sendlane. With this tag, you can add new contacts to the lists, track user interactions, and transmit [customer data](https://stape.io/blog/customer-data-analytics) directly to Sendlane's API. Benefits of Sendlane tag Since the Sendlane tag works on the server GTM container, it not only helps track events and new contacts to the lists but also offers several [key benefits](https://stape.io/blog/benefits-server-side-tagging): More accurate data tracking, which is unaffected by ad blockers and browser restrictions. Faster page loading compared to client-side tracking, as tags are processed on the server rather than in the user's browser. Higher data control makes it easier to comply with data privacy regulations. Before starting [Configure a server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). Set up data sending from the web to the server GTM container. You can [set up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). (Optional but preferable) Configure a [custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). It will allow setting first-party cookies. How to set up Sendlane event tracking via Sendlane tag for server GTM 1. Find the [Sendlane tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/sendlane-tag) in the Template Gallery by clicking “Templates” → “Search Gallery” → “Add to workspace“. ![Find Tag Template](https://cdn.stape.io/i/6911ff87616b0269799129.png) 2. In the “Tags” section, click “New” and select the Tag Configuration “Sendlane tag by Stape.” ![Sendlane tag by Stape](https://cdn.stape.io/i/6912077587b0a769410016.webp) 3. Configure the tag. 3.1 Choose the type: Add Contact to Lists – add contacts to Sendlane lists with optional custom fields. Track Events – capture and send custom event data, including user details and attributes. 3.2 Add API Token - you can find it in your Sendlane account under Account → API, for the details, please follow [Sendlane documentation](https://help.sendlane.com/article/706-how-to-generate-authorization-tokens#api). 3.3 Custom Integration Token - a token that links API requests to a specific integration. It is required to set up event tracking. To add the token, you will need to create a custom integration, and then you will get a token. See the detailed instructions in [Sendlane's article](https://help.sendlane.com/article/706-how-to-generate-authorization-tokens#custom-integration) (please note: the article is aссessable only for Sendlane users). 3.4 Add Event or List ID - it depends on your chosen tag type. With Event, it is straightforward - just mention the event name you need to track. You can find List ID if you navigate to the "Lists" page in your Sendlane dashboard and select the necessary list for adding contacts. You'll find the List ID in the browser's URL before "/stats." 3.5 (Optional) Add Event Customer Data Properties/Customer Properties. In this section you can list additional parameters that will be sent along the event. ![Example of tag configuration](https://cdn.stape.io/i/67e553259a711066547250.png) 4. Add a trigger for a tag. 5. Test the setup by using web and server GTM debugging tools to ensure the Sendlane tag triggers correctly. In case of any issues with debugging, check our [debugging and monitoring guide](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration). Conclusion Setting up the Sendlane tag for the server Google Tag Manager container is a handy way to improve your data tracking. Sendlane tag allows you to configure events tracking or add contacts to the lists. You can also set up additional parameters to send, such as email, phone number, first and last name. Start implementing the Sendlane tag to optimize your data tracking! Want to try server side? Stape has lots of options! Click on Try for free to register and check all the benefits. --- # How to set up Adtraction tag using server GTM Source: https://stape.io/blog/adtraction-server-side-tracking Check out how you can easily set up Adtraction integration with your website using a tag developed by Stape. In this article, we will show you how to configure Adtraction conversion tracking with server GTM. Below in the guide, you'll find a step-by-step breakdown of the tag setup process, including the steps: Creating a server GTM container. Transmitting data from the web to the server GTM container. Adding the Adtraction tag to the server GTM. Configuring the tag to track page views and/or conversions. Adding a trigger to the tag. Testing the setup. What is the Adtraction tag and its benefits The Adtraction tag works for the server GTM container and allows smooth integration between the Adtraction platform and your website. It helps you set up tracking for two types of events: pageviews and/or conversions. Since the tag works on the server GTM container, it gives the complete list of [server-side tracking benefits](https://stape.io/blog/benefits-server-side-tagging), which include, but are not limited to, extended cookie lifetime, precise data recorded unaffected by adblockers, and high control over the data that makes complying with data regulations easier. What you need to set up the Adtraction tag Before configuring the Adtraction tag, make sure you have: [Server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). Configured data flow from the web to the server GTM container (e.g., [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client)). How to set up Adtraction conversion tracking via Adtraction tag for server GTM 1. Go to GitHub and download the [Adtraction tag](https://github.com/stape-io/adtraction-tag). Then upload it to the server GTM container. Now, you can also add the Adtraction tag from the [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/adtraction-tag). ![Import Adtraction tag](https://cdn.stape.io/i/67e5474bc41bd677168080.png) 2. In the “Tags” section, click “New” and select the Tag Configuration “Adtraction by Stape.” ![Adtraction by Stape](https://cdn.stape.io/i/67e5476b7b7a5165741639.png) 3. Configure the tag. 3.1 Select event type: Page View – it stores the at_gd URL parameter, which contains the Click ID, inside the at_gd cookie. Conversion – it sends a tracking request to Adtraction when a conversion happens. With the Page View option, the basic setup is completed as the URL parameter name for the Click ID is "at_gd" by default. You only need to change it if you have a custom implementation. For conversion events tracking, add the following configurations: a. Program ID - add the Program ID provided by Adtraction here. If you have questions, contact your account manager. b. Transaction type - choose the transaction you are going to track: sale or lead. c. Transaction Type ID - add here the Transaction Type ID provided by Adtraction. If you have questions, contact your account manager. d. (Optional) Parameters Override - by default, the tag will parse all available parameters from the eventData, but in this section, you can select the parameters to override; choose from the following: Currency Order reference Discount code Click ID value MD5 Hashed Email Last paid click referring channel New customer Here is an example of a configured Adtraction tag: ![Configured Adtraction tag](https://cdn.stape.io/i/67e547dc28a64798276209.png) 4. Add a trigger for a tag. Test the tag configuration Trigger the event and check whether it works correctly in the server GTM containers. If any issues arise with the tag setup, check out our detailed [guide on debugging and monitoring](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration). Summary Setting up Adtraction conversion tracking with server GTM is a straightforward process. With its help, you can create an integration with the Adtraction platform, and thanks to server-side tracking, you will get accurate and reliable data collection. By following the steps in this guide, you can start tracking conversions. With this setup, you can optimize your tracking strategy and maximize the effectiveness of your Adtraction campaigns. Want to start using server-side tags? Stape has lots of options! Click on Try for free to register and check all the benefits. --- # You've sent potentially violating personal data to Meta: what to do Source: https://stape.io/blog/fix-personal-data-violations-meta Learn how to fix the issue of sending potentially violating personal data to Meta. Stay compliant with privacy laws and protect user data. In this article, we will explain what to do if you receive a warning from Meta about sending potentially violating personal data. Learn how to fix the issue and stay in line with the privacy regulations. With all the data regulations piling up and getting stricter, users are more alert than ever about the breach of personal data. In response to the data privacy regulations, Meta has introduced some updates that make including personal parameters in the URL unacceptable. What does “Potentially violating personal data sent to Meta” alert mean? This happens when Meta detects any URL parameters that potentially contain information that personally identifies individuals. For instance, such information as contact information (phone number, email address), full name, user ID, address, birth date, payment details, login credentials, health-related information, etc. Meta does not accept events if there are unencrypted PII in the URL parameters. Therefore, you must either encrypt this data before sending it or remove it from the URL entirely. When [running Facebook Lead Ads](https://stape.io/blog/facebook-lead-ads), make sure you're not passing sensitive personal information through URL parameters to stay compliant and avoid this issue. Quick solution First, you need to turn off your software or plugin feature that passes the user’s personal data as URL Query Parameter to the thank you page (this occurs post sign-up, subscription, and purchase). You could use different plugins, and the interfaces could be different, but there should always be an option to de-select this interface. Alternative solution: change the URL for server-side events If Facebook is detecting personal data (PII) in your URL, there’s another way to fix it - especially for server-side tracking. For web events, Facebook automatically picks up the page URL, so you can’t change it. But for server-side events, you can replace the URL before sending it to Facebook. This stops Facebook from receiving personal data in the URL. Here’s what to do: 1. Stop web events from running on pages with PII If a page URL has personal data, make sure Facebook’s web tracking doesn’t run on that page.You can do this by adding an exception trigger in Google Tag Manager. How to do it: Step 1: Create an Exception Trigger Go to Google Tag Manager → Open your Web Container. Navigate to Triggers → Click New. Choose Trigger Type: "Page View" (or any you need) Set Conditions: page URL contains email= or phone= (adjust based on your URL structure) Name the trigger: "PII Exception Trigger" Click Save. Step 2: Apply Exception to Facebook Pixel Tags Go to Tags → Open your Facebook Pixel Tag (Page View, Purchase, Lead, etc.). Scroll to Triggering. Click Add Exception. Select "PII Exception Trigger". Click Save. Step 3: Publish and test Click Preview in GTM. Visit a page with PII in the URL. Open Facebook Pixel Helper. The Pixel should NOT fire on pages with personal data. Now, Facebook’s web tracking will not run on pages where the URL contains sensitive user data. 2. Change the URL for server-side events Before sending data to Facebook, remove personal info from the URL. You can do this using custom JavaScript to clean the URL before Facebook sees it. This way, you still track events but without sending any private data to Facebook. How to do it: Step 1: Create a Custom JavaScript Variable in web GTM 1. Go to Google Tag Manager. 2. Go to to Variables → Click New. 3. Choose Variable Type: "Custom JavaScript". 4. Create JavaScript code to clean the URL, example below. function() {     var url = {{Page URL}};  // This is the page URL captured by the event     var cleanUrl = url.split("?")[0];  // Removes query parameters (everything after '?')     return cleanUrl; } Explanation: This script removes any query parameters (such as ?email=xyz@domain.com) from the URL before it's sent to Facebook. 5. Name the variable: Clean Page URL 6. Click Save. Step 2: Use the Cleaned URL in Facebook Server-Side Tag Send the cleaned URL as a parameter to the server container (in GA4/Data tag data depending on what you are using). Go to Tags on your sGTM → Open your Facebook Server-Side Tag. Find the Page URL field in your tag configuration. Replace the current URL variable (e.g., {{Event Data - clean_page_location}}) with the newly created "Clean Page URL" variable. Click Save. Step 3: Publish and test Click Preview in Google Tag Manager. Visit a page that contains personal data in the URL. Check Facebook’s server-side event logs to confirm that the URL sent to Facebook no longer contains personal data. Final result: Before Cleaning (URL with PII): https://example.com/thank-you?email=john.doe@email.com&phone=1234567890 After Cleaning (URL without PII): https://example.com/thank-you By using this method, you can continue [tracking Facebook events](https://stape.io/blog/facebook-tracking) server-side without sending any personal information to Facebook. Conclusion It’s alarming to receive a potentially violating personal data alert from Meta. Luckily, there are ways to fix it. Have you ever encountered such a problem? Let us know in the comments how you handled it and what topic you would like us to cover next on our blog. Want to start using server-side tags? Stape has lots of options! Click on Try for free to register and check all the benefits. --- # Spotify ads | pros and cons and how much cost? Source: https://stape.io/blog/spotify-ads-pros-and-cons-cost Discover how Spotify Ads work, their pros and cons, pricing, and best practices for targeting engaged listeners in the right moments. Spotify Ads isn't just another digital marketing channel – it's your backstage pass to reaching listeners during their most engaged moments. Unlike traditional advertising, where audiences actively tune out, Spotify connects you with people during their personally curated soundtracks and favorite podcast discussions. Every advertising platform has its unique rhythm and flow. Throughout this article, we'll explore what makes Spotify Ads distinctive – helping you understand how to use this tool and make it sing for your specific marketing needs. What are Spotify ads? Spotify Ads are ads that play on Spotify. They can be in audio or video format and are broadcast to users using the free version of Spotify. Thanks to this, brands gain access to a large audience and can effectively interact with listeners. Spotify Ads go beyond simple interruptions. They're sonic doorways that open when listeners are most receptive. Unlike traditional advertising that fights for attention, these audio and video messages slip naturally into the rhythm of the listening experience when users pause between tracks or check their screens. Free-tier Spotify users have made a conscious choice: they're willing to experience occasional advertising in exchange for access to their favorite music and podcasts. This creates a unique mindset where listeners actually expect and accept these brand interactions rather than actively resisting them. The sheer scale of Spotify's free listener base gives brands broad reach across diverse demographics and interest groups. But it's not just about numbers — it's about reaching people during the soundtrack of their daily lives when music actively shapes their mood and mindset. Pros of advertising on Spotify 1. Behavioral data targeting Spotify provides advertisers with advanced targeting capabilities, allowing them to customize their audience by: Demographic characteristics (age, gender, location). Musical preferences (genres, favorite playlists, performers). User behavior (when, how, and on which devices they listen to music). For example, a sportswear brand can customize ads for people who listen to motivating music during workouts, and a food delivery company for users who often listen to podcasts during dinner. 2. High interaction and audience engagement Ads on Spotify have a higher level of attention retention than on many other platforms. Reasons for this: Spotify is a personalized platform. Users trust the content they are offered and are more likely to respond to relevant ads. Advertising is integrated into the listening stream - listeners cannot immediately miss an ad (as in YouTube) or scroll through it (as in social networks). Users actively listen to content — music or podcasts are the backdrop for sports, work, or leisure, increasing the chances of memorable advertising. Spotify research shows that 75% of listeners remember audio ads better than video ads on social networks. 3. Variety of advertising formats Spotify offers several advertising formats that allow you to adapt the campaign for different purposes: Audio advertising - 15-30-second announcements between music tracks. Video ads are ads that appear when a user interacts with an application. Podcast ads are native ad integrations in popular podcasts. Sponsorship of playlists - brands can "pin" their messages in thematic playlists (for example, in lists for running or relaxing). This approach allows choosing the most effective format depending on marketing goals: increasing brand awareness, attracting new customers, or promoting a specific product or service. 4. Easy to create ads Spotify Ad Studio allows even small businesses to run advertising campaigns without large budgets and technical skills. Advantages: A simple interface for creating audio ads without studio equipment. Ability to add your own audio file or use synthesized voices. Flexibility in budgeting - the minimum cost of the campaign starts at $250. Thanks to Spotify Ad Studio, creating high-quality advertising is available even without a team of designers and producers. Cons of Spotify advertising 1. Limited visual component Spotify is predominantly an audio platform, and unlike YouTube or Facebook, it does not offer full-fledged visual advertising. Main limitations: Audio advertising does not allow for the display of the product – users hear messages but do not see the product's branded identity, packaging, or demonstration. Visual advertising works only for active users. Although Spotify has video ads (for example, Sponsored Sessions), they are displayed only when the user is actively using the application, which is rare. Limited creative options - Advertisers should rely more on sound, voice, and script than graphic content or video. For example, a company advertising a new mobile application may face a problem. On Facebook, it can show how the interface works and Spotify must explain it in words. 2. Minimum budget for campaigns Advertising on Spotify requires an initial budget of $250, which can be a high threshold for small businesses or test campaigns. Potential problems: High start threshold – while Facebook or Google allow running ads with minimal cost (for example, $5-10 per day), Spotify must immediately allocate a minimum of $250 per campaign. Limited control over the budget – unlike PPC advertising (Google Ads), where you can flexibly change rates and adjust the daily budget, Spotify's process is less adaptive. Risk of inefficient spending - if advertising does not produce the expected results, the advertiser has already lost significant money before he can optimize the strategy. This means that testing Spotify Ads requires more initial financial risk for small companies or startups than other platforms. 3. Less conversion to sales Spotify is a platform for background listening, so the audience is not always ready to interact with advertising. The main reasons: Users usually listen to music or podcasts during other activities (training, work, travel). They are less likely to click on advertising links or make purchases. Limited immediate reaction - Unlike Facebook or Google, where the user sees ads and can go directly to the site, Spotify does not have a direct CTA (Call-To-Action) that can be easily clicked. Music platform ≠ marketplace - if YouTube or Instagram are actively used to find new products, Spotify is primarily a place for entertainment. As a result, the conversion to sales may be lower than in advertising on social networks or search engines. However, Spotify ads work well in increasing brand awareness and not in direct sales. How much do Spotify ads cost? The cost of advertising on Spotify depends on the chosen format, targeting parameters, and the campaign's duration. The minimum budget ([recommended by Spotify](https://ads.spotify.com/en-US/pricing/)) to launch a campaign through Spotify Ad Studio is $250. Audio advertising is paid according to the CPM model (cost per thousand impressions), and video advertising is paid according to the CPCV model (cost per full viewing). This means you only pay for impressions or views that users have fully completed. The actual cost may vary depending on the target audience, geographical location, and other factors. To get accurate budget calculations, it is recommended to consult with Spotify representatives or use their advertising platform. Type of Advertising | Price Audio advertising | $0.015 - $0.025 per audition Video advertising | $0.02 - $0.03 per view Sponsored playlists | $20,000 + per campaign Recommended starting budget (Spotify Ad Studio) | from $250 per campaign Is Spotify advertising worth it? Spotify has become the daily soundtrack for millions of lives worldwide. With over 550 million users across more than 180 countries, it's woven into how people experience music and audio content globally. What makes this particularly powerful for advertisers is the sheer devotion of the Spotify audience. Nearly half of all users — 44% to be exact — open the app daily. This isn't casual engagement; it's a deeply ingrained habit where people actively choose to spend time with the platform. It means advertising messages connecting with real people during morning commutes, workout sessions, dinner preparations, and evening wind-downs. These are intimate, attention-rich moments repeated day after day. Spotify Ads shine brightest when you're looking to plant your brand in listeners' minds rather than triggering immediate purchases. The platform creates perfect moments for storytelling and emotional connection when people are already in a receptive state of mind. Think about how you personally engage with music — it's often a deeply immersive experience. When your brand message arrives during these moments, it becomes associated with the listening experience's positive feelings rather than like an interruption demanding action. This context is golden for awareness campaigns. Your message becomes part of the soundtrack to someone's day, building familiarity and positive associations over time. The platform particularly excels when your brand can align with specific moods, activities, or moments that match certain playlists or podcast themes. But let's be honest about the limitations. You might be disappointed if you measure success by direct sales conversion metrics. The listening experience doesn't create the same immediate action impulse as platforms where users actively search or shop. Brands seeing the best results from Spotify typically use it as part of a broader marketing ecosystem — building awareness and emotional connection through audio and capturing that interest with more conversion-focused channels when listeners are buying. Who is the Spotify target audience? Spotify's target audience is diverse, reaching both young people and broader age groups who actively use streaming services to listen to music and podcasts. Here are the main groups that interact most with the platform and could potentially be interested in advertising: 1. Young people 18-34 years old This age group makes up a large part of Spotify users. They use the platform to listen to their favorite tracks, create their own playlists and discover new music. 2. Music and podcast lovers Spotify is not only a music service but also a platform for podcasts. Users who listen to podcasts often show high engagement and trust in content. It makes them an attractive audience for native advertising. 3. Mobile users Most plays on Spotify happen via mobile devices. This allows advertisers to adapt their ads to a mobile audience, for example, by integrating ads into playlists for training, travel, or work. 4. Those who are not ready to pay for the premium version Users of the free version of Spotify regularly hear advertisements between tracks because this monetization model is the main one for free access. 5. Music lovers looking for personalized content Spotify algorithms analyze user behavior and offer them personalized recommendations. 6. Users listening to music during various activities Many people use Spotify while training, working, studying, or relaxing. Advertisers can target audiences according to their context; for example, sports brands can show ads during workout playlists. 7. Local and global listeners Spotify operates in many countries worldwide, allowing companies to run ads internationally and target specific markets based on regional preferences. Spotify and first-party data Spotify actively uses [first-party data](https://stape.io/blog/first-party-data) to [improve ad targeting](https://stape.io/blog/improve-targeted-advertising) and provide users with a personalized experience. This data includes information about user interactions with Spotify, such as searches, listening, skipping tracks, and keeping content in the library. These actions form the user's "preference profile," which helps Spotify's algorithms recommend relevant content and ensure that ads are relevant. Spotify dives deeper into listener behavior than nearly any other platform, capturing not just what you click on, but how you actually experience content. Every time you let a song play through, hit skip after 10 seconds, or save something to your library, Spotify's systems are learning about who users really are – not who they claim to be on a profile page. This creates what insiders call the "preference profile" – a living, breathing digital reflection of your actual tastes that evolves with every interaction. Unlike static demographic data, these behavioral patterns reveal the true you: the workout enthusiast who secretly loves Disney soundtracks, or the classical music aficionado with a weakness for 90s hip-hop. Spotify ad types Spotify offers various advertising formats that help brands reach their target audience naturally and unobtrusively. Here are the key advertising formats with examples of their use: 1. Audio advertising Description. These are 15-30-second audio clips played between songs when users listen to music or podcasts. They cannot skip, which ensures that the listener hears the brand message. Additional features. Ads can be accompanied by banners or images that the user can click to visit the site. Example. Spotify uses this format to advertise new albums or podcasts. Nike could use audio advertising to promote its new line of running shoes, targeting users who listen to playlists for workouts. ![Audio advertising](https://cdn.stape.io/i/67e120298678a627163989.png) 2. Video advertising Description. 15-second videos that are played by users who listen to Spotify with a screen (on smartphones or PC). There are two main formats of video advertising: Sponsored Sessions - the user gets 30 minutes without advertising after watching the video. Video Takeover - video is displayed during active interaction with the application. Example. Coca-Cola can run video ads in sponsored sessions, allowing users to watch videos in exchange for continuous listening to music. ![Video advertising](https://cdn.stape.io/i/67e122abe5000901450258.png) 3. Sponsored playlists Description. Brands can sponsor popular playlists on Spotify by getting exclusive logo placement and ads inside the playlist. Example. McDonald's can sponsor a Top Hits playlist with the ability to integrate its own audio or video advertising messages between songs. 4. Podcast Advertising Description. Brands can advertise as inserts in popular podcasts. It can be: Pre-roll (at the beginning of the podcast) Mid-roll (in the middle of the podcast) Post-roll (at the end of the podcast) Example. Spotify collaborates with podcasts like The Joe Rogan Experience and Call Her Daddy. For example, Audible may use integrated advertising to encourage listeners to try a free trial subscription. ![Podcast Advertising](https://cdn.stape.io/i/67e122ff76e90124714861.png) Additional advertising opportunities Overlay Ads - banners that appear on the screen when you open the application. Homepage Takeover - branded design of the main page of Spotify for a certain period. Branded Moments - interactive campaigns activated under certain conditions, for example, before a party or workout. How to start with Spotify advertising 1. Sign up for Spotify Ad Studio. 2. Choose your objectives. ![Choose your objectives. ](https://cdn.stape.io/i/67e1234914688840141075.png) 3. Define your target audience. ![Define your target audience](https://cdn.stape.io/i/67e12364186f4162324215.png) 4. Set budget and targeting. ![Set budget and targeting](https://cdn.stape.io/i/67e1238ae9767050990972.png) 5. Upload ads or use the built-in generator. ![Upload ads or use the built-in generator](https://cdn.stape.io/i/67e123a0a2e0c445319590.png) 6. Run the campaign and track the results. How to set up Spotify ad analytics and track results? 1. Using Spotify Ad Studio to launch campaigns Spotify Ad Studio is a stand-alone platform for creating and managing ad campaigns on Spotify. It offers tools for setting up targeting, choosing an advertising format, and monitoring results in real-time. 2. Integration with analytical platforms For deeper analysis, it is recommended to integrate Spotify Ad Studio with other analytical tools such as Google Analytics or other web analytics platforms. It allows users' behavior to be tracked after interacting with your Spotify ad. 3. Using server-based tracking with Stape Stape offers a server-side tracking solution that more accurately collects user interaction data with your ads. Stape has released the [Spotify Conversions API tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/spotify-tag) for server GTM. It enables Spotify integration with server GTM and provides the following benefits: Improved data accuracy. Server-side tracking avoids many pitfalls of client-side methods ([ad blockers](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers) and browser restrictions such as [ITP](https://stape.io/blog/safari-itp)), resulting in a more reliable data collection process. Better website performance. By moving the data tracking process to the server, you reduce strain on your site, leading to quicker load times and a smoother user experience. Easier privacy compliance. Server-side data handling offers high control over data collection and its processing, making it easier to comply with privacy laws. 4. Configure events and conversions Identify key events (e.g., clicks, views, purchases) and set up their tracking. This will assess how effectively your advertising encourages users to take the desired actions. Use UTM tags to analyze traffic from advertising campaigns. 5. Regular analysis and optimization Constantly analyze the collected data to identify your campaigns' strengths and weaknesses. Use these insights to adjust strategy, improve targeting, and create creative materials. The server-based approach Stape allows getting even more accurate data for A/B testing, advertising personalization, and campaign efficiency. FAQs How often does Spotify show ads? The frequency of ads on Spotify depends on several factors, including the type of user subscription, the ad format, and the region in which the ads are broadcast. 1. For free users (Spotify Free) Spotify is funded by advertising for users who do not have a premium subscription. On average: Ads appear every 15-30 minutes of listening. It means that users hear the ad unit after about 4-6 songs. The ad unit lasts 15 to 30 seconds, usually including 1-2 ads. Ad formats can change, such as audio ads, video ads, or banners that appear in a mobile application or web version. 2. Spotify Premium – without ads Users who subscribe to Spotify Premium do not receive promotional inserts while listening to music or podcasts, which is one of the main incentives for switching to the paid version. What are the best practices for Spotify Ads? To make your Spotify ads effective, follow these guidelines: Clear and short message - 15-30 seconds, with an emphasis on the key message. Personalization. Address the audience using relevant musical preferences. Call to Action (CTA). For example, "Listen more," "Learn more," "Get a discount." High-quality sound. Use professional voice recording and background that complements advertising. Targeting Optimization. Customize ads by age, location, music genres, and listener habits. Testing different formats. Audio, video, sponsorship of podcasts or playlists. Clear branding. Name the brand in the first seconds to consolidate recognition. How long should a Spotify ad be? The duration of Spotify ads depends on the format and purpose of your campaign. Here are some options that are often used: Advertising format "Audio Ad" (audio advertising): 30 seconds is the standard duration recommended for audio ads on Spotify. 15 seconds - this option is also popular for quick, concise messages that aim to attract the user's attention to a product or brand without overloading it with information. Advertising format "Video Ad" (video advertising): 15 seconds is the ideal duration for video advertising, since this format attracts attention without distracting from the main content. 30 seconds - allows you to tell the story in more detail, show the advantages of the product or service, but it is important that the video is dynamic and not delayed. Advertising format "Display Ad" (banner advertising): Here, the duration of the advertising banner is not so strictly defined, since it appears on the user's screen for a certain period while they interact with the application or media. It is recommended to test different formats and durations to find out which works best for your audience. It is important that advertising is short, informative and effective, because on Spotify, listeners are usually not ready to spend a lot of time on advertising. Are Spotify Ads better than YouTube or Facebook Ads? The answer depends on your goals, i.e., for brand awareness - yes, for direct sales - no. Advertising on Spotify, YouTube, and Facebook has its own characteristics depending on the audience and format. Spotify is aimed at users who listen to music and podcasts, so advertising in audio format can be effective for brands wanting to reach this specific audience. YouTube provides the ability to use video ads suitable for brands with visual products that want to display them through dynamic content. Facebook provides extensive targeting capabilities that allow you to customize ads based on demographic, behavioral, and geographic data, making the platform a flexible tool for brands that want to scale their audience. Here, you can use different formats: images, videos, and carousels. The choice of platform depends on the brand strategy. Spotify is suitable for brands focused on audio content, YouTube is for those who want to show their product through video, and [Facebook is ideal for targeted advertising](https://stape.io/blog/facebook-lead-ads) in various formats for different purposes. Can small businesses advertise on Spotify? Yes, small businesses can advertise on Spotify using the Spotify Ad Studio platform. This platform allows them to create and run audio ads with a budget suitable for small businesses. They can choose advertising formats lasting 15-30 seconds and set up targeting by interests, age groups, and geography, which allows them to reach their target audience effectively. This allows small companies to promote their products or services with affordable advertising costs. --- # Significant reduction in hosting costs with server-side tracking | ZweiDigital Source: https://stape.io/blog/case-study-stape-transformed-tracking-for-zweidigital Learn how ZweiDigital improved data tracking with Stape and Meta Conversions API integration, boosting data accuracy and marketing performance. [ZweiDigital](https://www.zweidigital.de/) is a Frankfurt-based performance marketing agency that specializes in accurate tracking solutions. After iOS 14.5 introduced tracking restrictions, the agency began exploring server-side tracking solutions to maintain ad performance. ZweiDigital sought innovative solutions to maintain tracking accuracy regarding these changes affecting ad performance. Meta Conversions API offered a way forward, but its setup was costly and complex. The Stape solution allowed ZweiDigital to reduce costs, simplify the process, and improve data accuracy, ensuring better client results. Calls after iOS 14.5 tracking restrictions With the advent of iOS 14.5, improving tracking has become critical for marketing agencies. Previously, a standard browser setting made manually or using plugins was enough. However, new restrictions from Apple have radically changed the approach to performance marketing. Meta promptly responded to these changes by introducing server tracking via CAPI. However, the setup process was quite complicated, and agencies began working on templates for the server-side Google Tag Manager since there were no alternatives at that time. However, using Google Cloud turned out to be too expensive — customers were not willing to pay about 100 euros per month for a previously free service. Transition to Stape - saving costs and simplifying processes While searching for alternative solutions, the agency explored several options before discovering Stape, which ultimately proved the perfect fit. One of the primary reasons for this decision was the significant reduction in hosting costs compared to Google Cloud. Previously, clients had to allocate a substantial portion of their budget to cover cloud expenses, making it challenging to justify the investment in server-side tracking. Stape reduced these costs to a fraction, making it a much more cost-effective solution. In addition, the setup process has become much easier and more convenient. Stape offered a straightforward and practical approach. It allowed the agency to implement server tracking faster and with fewer complications, ultimately saving time and resources. Another advantage of Stape was the availability of a [ready-to-use Meta CAPI template](https://stape.io/solutions/facebook-capi-tag) specifically designed for server tracking. This template included all the essential features to ensure effective data transmission while providing an intuitive interface. Furthermore, Stape's comprehensive documentation made the integration process even easier, enabling both the agency's team and their clients to understand and utilize the platform without unnecessary difficulties. Server-side tracking as an agency standard Initially, the agency offered server-side tracking only to performance marketing customers for an additional fee since the setup process was complicated. However, over time, this technology has become an industry standard and significantly increased the effectiveness of advertising campaigns. Today, the agency includes server-side tracking in standard support when onboarding new clients. Since Stape is much more affordable than alternative hosting options, demonstrating the benefits of server-side tracking with Stape is easy. New opportunities and additional sources of incomes Integrating Meta CAPI and server-side tracking through Stape not only helped the agency retain existing customers facing declining attribution but also attracted new ones. Thanks to cooperation with Stape, the agency was able to offer this service as a separate one. There are more opportunities for further cooperation - customers who apply only for tracking settings are subsequently interested in other services, such as effective marketing or content creation. Why ZweiDigital recommends Stape for reliable server-side tracking [ZweiDigital remains a strong partner of Stape](https://stape.io/partner/zwei-digital), continuing to integrate server-side tracking solutions for new customers while expanding tracking integration services. Thanks to Stape's support, ZweiDigital can offer efficient customization that guarantees optimal results at a lower cost. Its technical support is fast, which is important because each setting is unique. This partnership helps this agency stay at the forefront of effective marketing and deliver cutting-edge solutions to its customers. Interested in server-side tracking? Click on Try for free and complete the registration to start using Stape. --- # 37% ROAS increase and 20% CPA reduction with Stape | ZweiDigital Source: https://stape.io/blog/herzlack-meta-tracking-optimization Find out how ZweiDigital and Herzlack improved campaign efficiency with Stape, increasing ROAS and lowering CPA. [ZweiDigital,](https://www.zweidigital.de/) a [partner of Stape](https://stape.io/partner/zwei-digital), enhanced online performance marketing for a growing German e-commerce brand [Herzlack](https://herzlack.de/). They optimized Meta's CAPI setup by addressing tracking discrepancies and integrating Stape with Google Tag Manager. The result? A 37% increase in ROAS and a 20% reduction in CPA. ![Stape & ZweiDigital & Herzlack collaboration hands image](https://cdn.stape.io/i/690337972a198841434420.png) Herzlack’s growth strategy: leveraging online performance marketing Herzlack is a fast-growing nail polish brand based in Germany. With a focus on handmade products and achieving the highest quality standards in production, they can satisfy their customers. Since the brand is not yet represented in large retail chains, its growth depends entirely on online marketing. Due to the high competition in Google, the company is forced to focus on generating demand, and the leading platform for this is Meta, which effectively helps to find and attract the target audience. As a lifestyle brand, Herzlack uses Instagram as an ideal medium for presenting its products. Campaign success largely depends on accurate data tracking, which allows Meta to transmit the correct signals and helps the algorithm determine the optimal target groups. Tracking challenges with Shopify’s Facebook sales channel Herzlack is a Shopify shop, so it comes naturally to use the Shopify Facebook sales channel to integrate Meta tracking, including Conversions API (CAPI), to set up server-side tracking. Unfortunately, this is not working properly for all shops. Even though everything looks right in the Events Manager, there can be huge discrepancies when comparing the purchases tracked server-side with the actual sales in Shopify backends. Even when considering a decline in consent, numbers might be way off. ZweiDigital checks with every new client to see if this problem might affect them, and if so, the сompany decided to implement Meta Pixel and CAPI manually. In the case of Herzlack, an estimated 20% of sales was not tracked. Why Stape is the Best Solution for CAPI Implementation Whenever issues arise with CAPI tracking via plugins, Shopify, or other shop systems, the recommended solution is implementation via Stape, with the entire setup handled for the client. Besides solving issues with missing sales and data, there are many reasons why ZweiDigital does not recommend opting for the seemingly easiest solution – a plugin. With the Stape setup, their clients receive significantly more data since Google Tag Manager (GTM), the foundation of the setup, can be hosted on their own domain using [Stape Custom Loader](https://stape.io/solutions/custom-gtm-loader). This makes it invisible to ad blockers and bypasses browser restrictions on third-party tracking, which impact GTM and all tracking within it. As a result, the accuracy of server-side tracking via Meta CAPI is greatly improved. Individual Consent is, of course, respected, but it is a way around the browser already making a decision for the customer before he can opt in or -out on a website. Integrating Stape with Shopify app for accurate tracking ZweiDigital integrated the Google Tag Manager with the [Stape Shopify app](https://stape.io/solutions/shopify-app) and set up [Meta CAPI](https://stape.io/blog/meta-capi-for-shopify-via-server-gtm) inside the GTM. Stape has its own app for Shopify, an important factor in working with Shopify shops. Since Shopify introduced customer events, tracking anything in the checkout process has been hard, but Stape fits seemingly in the Shopify environment, respecting all aspects of customer privacy. You can read more about configuring [server-side tagging for Shopify](https://stape.io/blog/server-side-tagging-for-shopify). Stape Shopify App generates its own data layer, which is used to set up events in Google Tag Manager. With just a few infos from your Stape account, you can set up the app in minutes and profit from the stape custom loader and other benefits, like the cookie keeper, which prolongs cookie lifetime. This is especially important for customers with a longer sales cycle. Information about previous ZweiDigital's experience with server Google Tag Manager container hosted by Stape is in the article [Case Study: ZweiDigital with SportSpare got 24% Cost-per-Purchase reduction and 32% Improvement of ROAS](https://stape.io/blog/zweridigital-with-sportspar-got-24-cost-reduction-and-32-improvement-of-roas). The impact: increased ROAS, lower CPA, and higher Event Match Quality The great results achieved enabled an increase in the Meta ad budget to seven times the previous daily spending in the month following the implementation. With the CAPI manually set up with Stape, it became possible to: increase ROAS by 37%; decrease CPA by 20%; improve Event Match quality by 10%. These measurable improvements directly enhanced the effectiveness of Meta Ads, leading to more Shopify sales. You can [calculate ROAS](https://stape.io/roas-calculator) to estimate how server-side tracking could reduce your cost per purchase. Accurate tracking is a key success factor in maintaining strong client relationships. Since the pricing model is not based on the client's ad spend, there is no direct benefit from increasing the budget. The primary goal is to ensure the client's business succeeds and scales profitably. Reliable data is essential, and significant improvements are consistently seen when integrating CAPI via Stape. For this reason, educating clients on the benefits and providing full support with tracking setup remains a priority. Why ZweiDigital recommends Stape for reliable server-side tracking Continuous improvements in tracking are essential, and Stape consistently introduces new features while simplifying the setup process. As the go-to solution for CAPI integration, it offers a more reliable alternative to plugins or browser-based setups. While the initial setup requires more effort than installing a plugin, the long-term benefits outweigh this. Once configured, it runs smoothly without the need for ongoing maintenance. Interested in server-side tracking? Click on Try for free and complete the registration to start using Stape. --- # 15% to 30% more complete data in Meta Events Manager | Hide and Seek Source: https://stape.io/blog/hide-and-seek-implemented-server-side-tracking-with-stape Check how server-side tracking and Meta Conversions API helped Hide and Seek’s clients achieve precise data collection. [Hide and Seek](https://hide-and-seek.com/), [one of the top Stape’s partners](https://hide-and-seek.com/services/data-tech/stape/), is a leading online marketing agency based in the Netherlands. They focus on reaching the right audience with a relevant message. ![Case study: Hide and Seek agency boosts ad tracking with Stape’s services](https://cdn.stape.io/i/67d4052e7bd4f455722926.png) At Hide and Seek, growth is at the heart of everything they do. Their services are designed to align perfectly with businesses’ goals, covering everything from online advertising campaigns, to SEO, to Content and to Data & Tracking. Problem: lacking data on ad campaigns The core of Hide and Seek is online advertising on various platforms for their clients. Reliable data, which is not affected by ad blockers, browser restrictions (e.g., [ITP from Safari](https://stape.io/blog/safari-itp)), and data regulations (such as [GDPR](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive)), is the key to making the right decisions and achieving reasonable budget allocation. The agency's main challenge was the increasing data loss in both Google Analytics 4 and advertising platforms like Meta, preventing campaigns from performing as effectively as they did before GDPR and other restrictions. Another aspect of the problem was reporting - the gap between actual performance and the dashboard was growing. As a result, collecting accurate insights on ad campaign performance and optimizing them became increasingly challenging. Solution: server-side tracking and Meta Conversions API implementation In their search for a reliable solution to fill the gap in the data collected, Hide and Seek concluded that server-side tracking and Meta Conversions API best fit their needs. “Server-side tracking gives us as an agency and our clients back control of the data, because before it was slipping through our fingers.” — Erik Theelen, Co-Founder at Hide and Seek What Hide and Seek loves the most about Google Tag Manager server-side tracking and Facebook Conversions API solutions is the high customization. “There was a time when we used to activate the Facebook Conversions API within WordPress or Shopify directly using a Facebook plugin. Still, the thing is that there's no room for customization with native solutions like you have with Google Tag Manager". — Erik Theelen, Co-Founder at Hide and Seek In their work with clients, Hide and Seek combined different templates from Facebook and Stape for web and server containers (such as [Data Client](https://stape.io/solutions/data-tag-client), [Facebook CAPI](https://stape.io/blog/how-to-set-up-facebook-conversion-api) templates), which allowed them to optimize the processes. As a result of optimization efforts, they could set up a server GTM container with Meta CAPI integration within a couple of hours. Among the most frequently used Stape power-ups are the following: [Custom GTM and GA4 Loader](https://stape.io/solutions/custom-gtm-loader) - without this power-up, the data can still be exposed to ad blockers and other restrictions that impact data quality. [Cookie Keeper](https://stape.io/solutions/cookie-keeper) - that’s a lifesaver and one of the main unique selling points to pitch Stape for agency clients. With its help, you can extend cookies’ lifetime to any desired number of days, depending on the platform. [Multi Domains](https://stape.io/solutions/multi-domains) - a helpful power-up used for large clients with multiple websites, requiring a centralized solution to manage data tracking. One of such clients is Superstruct, whose challenges and solutions we explore in a separate case study. Another feature that became essential for the agency’s clients is [Stape Analytics](https://stape.io/solutions/stape-analytics). People have always asked about the impact of Stape’s server-side tracking on the data collection. Without the analytics dashboard, estimating how much data was saved was difficult. Seasonal or market changes could explain the increase in conversions, but with Stape’s feature the clients can see the results of server-side tracking. ![Case study: Hide and Seek agency boosts ad tracking with Stape’s services](https://cdn.stape.io/i/67d4046d9a252223628362.png) Results After implementing Facebook Conversions API for the clients, they could observe improvement in data collection by 15-30% in Event Manager. Stape’s Analytics feature also showcases the effectiveness of such a switch. “Server-side tracking provides more precise results and better performance for our clients. It also gave us new clients who were experiencing this data gap before". — Erik Theelen, Co-Founder at Hide and Seek Hide and Seek’s clients admit that they have gained more control over the data they collect and become less affected by any arising restrictions. Conclusion Server-side tracking and Facebook Conversions API for Hide and Seek became an effective solution to collect data more precisely and optimize the client’s campaigns accordingly. Stape’s services covered the agency's problem - data loss due to browser restrictions, ad blockers, and data regulations. Both solutions proved to be beneficial for making data-driven decisions despite the growing challenges in data tracking. Big thanks to [Erik Theelen](https://www.linkedin.com/in/eriktheelen/) for his help in creating this case study. Interested in server-side tracking? Click on Try for free and complete the registration to start using Stape. --- # Marketing Data Enrichment Source: https://stape.io/blog/marketing-data-enrichment Enhance your marketing strategy with data enrichment. Improve targeting, personalization, and decision-making with enriched customer insights. This article examines data enrichment, which increases the accuracy and value of data by including external information. It analyzes the benefits of data enrichment, key data sources, various enrichment methods, and popular tools such as HubSpot CRM, Clearbit, and LeadGenius. Whether applied to B2B or CRM data, enrichment allows the creation of more accurate customer profiles, contributing to improved marketing strategies and business development. What is data enrichment? Data enrichment is a key process in information management that increases its accuracy, value, and content. Combining existing data with external sources allows businesses to refine and improve the original array of information. The importance of this process lies in ensuring the quality of data for companies and organizations that use it to make decisions, create strategies, and maintain competitive advantages. Enriching data is not just adding new information but improving and expanding their usefulness. The main tasks of this process include standardizing data formats for consistency and adding context that makes data arrays more valuable. For example, enriching customer data in marketing can involve supplementing profiles with information about demographic characteristics, purchasing behavior, or social media activity. This helps to improve the personalized approach to customer interaction and increase the [effectiveness of marketing strategies](https://stape.io/blog/measure-marketing-effectiveness-and-impact#definition-of-digital-marketing-effectiveness). Pros of data enrichment for marketing Personalization. Rising customer acquisition costs and a crowded digital space make an [effective attribution](https://stape.io/blog/marketing-attribution-models) model crucial for tracking touchpoints and optimizing budgets, while data enrichment helps companies tailor products and strategies to audience preferences and behaviors. Personalized offers, recommendations, and notifications are sent to customers based on their demographic characteristics, interests, geographical location, and purchase history, which allows for more accurate segmentation of the customer base. Better decision-making. Enriched data provides a complete understanding of the topic, allowing businesses to make more informed decisions [Targeted advertising](https://stape.io/blog/improve-targeted-advertising). Enriched data allows companies to better understand their target audience, leading to more effective and personalized marketing strategies. Efficiency. Data enrichment can help improve performance and procedures. For example, it can improve the effectiveness of campaigns targeting specific audiences. Increase sales efficiency. Enriched data improves sales performance by providing sales teams with practical information and priority leads. Innovation. Data enrichment can open up new opportunities and solutions by providing more diverse and comprehensive data. For example, it can be used to identify new markets, trends, and patterns in data, from which new functions, products, and business plans can be created. Main data sources for enrichment Various sources are utilized to enrich the data by providing additional information about customers and the market. The main ones include: Internal company data. These are information about sales, consumer complaints, accounting, pending orders, etc. External public sources. Data is available through government agencies, non-profit organizations, and non-governmental organizations that publish information about demographics, economics, and other aspects that may be useful to marketers. Online resources. Tools such as Google Trends provide data on the popularity of search queries, which helps to understand the interests and needs of the target audience. Data from social networks. Information from platforms such as Facebook, LinkedIn, and Twitter allows you to analyze user behavior, interests, and interaction with the brand. Data on competitors. Analyzing public information about competitors, their marketing campaigns, and their positioning in the market helps to understand the competitive environment. Customer Data Platforms and Data Vendors - CDP collects data from different sources in the organization and creates a single view of the customer. It helps avoid the use of isolated or inaccurate data by structuring real data into individual customer profiles. CDP works in conjunction with CRM to provide enhanced capabilities, such as tracking customer interactions across multiple channels (online and offline). Types of data enrichment Existing data can be enriched in the following ways: Contact data enrichment, such as phone numbers and email addresses, allows direct customer communication Geographic data, such as country, region, or city of residence, helps to run location-based campaigns. Demographic data, particularly age, sex, or marital status, is especially useful for personalized B2C campaigns. Technological data, such as customer device type, usage habits, or technology stack, which contributes to more efficient targeting. Behavior data, from browsing duration to search history, helps to understand individual customer models and plan accordingly. Proprietary data such as company industry, size, and revenue are especially important for targeting decision-makers in B2B campaigns. Best ways for data enrichment Regardless of the size of databases, manually viewing data today is too resource-intensive. Special services have already been developed to simplify and automate this task, greatly facilitating the management and enrichment of data. Here are the best data enrichment solutions: - Stape offers powerful data enrichment capabilities through server tracking and integration with Google Tag Manager (GTM): [HTTP Lookup Variable](https://stape.io/blog/http-lookup-variable-for-server-google-tag-manager) is a function for server GTM that allows HTTP requests to external APIs or web services, which makes it possible to configure and enrich data directly in the tracking process. [Stape Store Lookup](https://stape.io/solutions/stape-store-lookup-variable) is a variable developed in the Google Tag Manager (sGTM) Stape server environment. It allows users to retrieve data from the Stape Store by specifying a document ID or setting query criteria to search for specific documents. This functionality facilitates efficient data retrieval and management for server-side tag implementation. [Enricher power-up](https://stape.io/solutions/enricher-power-up) is a built-in feature for server GTM that automatically enriches incoming events with previously collected user data (email, phone, location, and more), helping recognize returning users and maintain a consistent customer profile across sessions. - HubSpot CRM is an effective solution for managing client data. It offers customizable properties, tasks, web forms for collecting data, built-in chat, tracking, and email sending. - Vainu is B2B sales and business intelligence software. It allows you to filter the database with millions of companies and find potential customers that match the ideal profile. Integrates with HubSpot, Salesforce, Pipedrive, etc. - Clearbit is a platform for enriching data about companies and contacts. It allows to update, qualify, and evaluate potential B2B-klіents thanks to access to more than 200 million contacts. - Reverse Contact is a reverse email search service that only finds information about a person and company by email. Uses real-time public data and meets GDPR and CCPA requirements. - LeadSpace is a technology that updates information by combining multiple data sources and CRM systems. It uses artificial intelligence (AI) to collect data based on user behavior on the Internet, which helps to target potential customers more accurately. - Datanyze is a service that searches for and communicates with potential customers around the world. It integrates with CRM systems and allows you to collect data while browsing social networks, create segmented lists, and target ads. - LeadGenius allows checking information about B2B leads so that teams refer only to the most accurate and interested potential customers. It creates personalized datasets, improving the quality of communication and customer engagement. - Trifacta offers an open and interactive cloud data platform that enables data preparation and management for analytics and machine learning. It also helps track quality and data sources in enrichment processes. - Accurate Append enriches B2C data by providing detailed information on demographics, income, and donation history. This service helps improve the quality of leads and allows you to more accurately target marketing strategies, providing businesses with additional data to attract customers effectively. 7 data enrichment techniques with examples Data enrichment is a key step to improving customer information quality and accuracy. Here are some effective data enrichment examples: 1. Define clear enrichment criteria The first step is to set specific goals for data enrichment. For example, a company may aim to achieve 90% accuracy in customer data verified by third-party sources. It will assess the effectiveness of enrichment efforts and identify areas for improvement. Before defining those goals, it's worth reviewing [tips for improving data quality in data analytics](https://stape.io/blog/improve-data-quality-and-integrity) to make sure your baseline data is reliable enough to enrich effectively. 2. Development of repeatable enrichment processes Creating standardized procedures for data enrichment ensures efficiency and consistency. For example, the automated process of validating customer profile data through predefined third-party sources can be reused for different datasets, ensuring consistency and reducing task time. 3. Scalability of enrichment efforts. If data volumes are increasing, it is important that enrichment processes can scale accordingly. Implementing automation, such as through server-side tracking, can help reduce the impact of ad blockers and improve the accuracy of data collection, which positively impacts the scalability of enrichment efforts. 4. Unification of enrichment processes for different datasets. The unification of approaches to data enrichment for different sources ensures consistency. For example, introducing a single process for verifying customer data obtained through web forms on computers and mobile devices ensures that data from both platforms is processed similarly, ensuring their integrity and accuracy. 5. Using server-side tracking to improve data quality. Server-based tracking allows for more accurate data collection and conversion tracking as it is less affected by ad blockers and tracking restrictions. For example, [according to a study conducted by Google](https://blog.google/products/marketingplatform/360/bring-performance-and-privacy-together-server-side-tagging/), Square has seen a 46% increase in registered conversions from Google Ads after the introduction of server-side tracking. 6. Data enrichment through integration with Stape Store. Integrating the Google Tag Manager (sGTM) server container with Firestore allows you to read and write data, which opens up ample opportunities for data enrichment. It provides data collection and processing flexibility, adapting processes to business needs. Data enrichment vs. data cleansing Data cleansing Data cleansing focuses on the accuracy of the available data. It is identifying and correcting errors, inconsistencies, and redundancies in a dataset. The main tasks of cleaning: Bug fixes. For example, fixing misspelled names, incorrectly entered values, and errors in addresses or phone numbers. Updating outdated information. Checking for the relevance of data, such as a change of address or customer status. Remove duplicates. Detect and remove duplicate records that may falsely represent the number of clients. This process maintains the integrity of the data, ensuring its correctness and relevance. Cleaning usually takes place in the initial stages of working with data to ensure that they do not contain errors that may affect the accuracy of the analysis or decision-making. When should you invest in data cleanup? If the level of involvement drops with an increase in the number of contacts, this can be a signal to clean up the data. Data cleansing should occur at least every six months to ensure its relevance and accuracy. Data enrichment Data enrichment is the process of improving and expanding existing data through external sources. Rather than simply correcting errors, enrichment adds new, relevant information that can add context and depth to existing data. It allows for the creation of a more complete customer or prospect profile. Examples of enrichment: Adding demographic data. Enriching contacts with data about age, gender, family, or interests. Geographic enrichment. Adding customer location information can be helpful for targeted advertising or special offers. Psychographic enrichment involves obtaining more information about customer preferences, lifestyles, and buying habits, which allows better targeting of marketing campaigns. Enrichment helps create more accurate and personalized customer profiles, which can improve interactions with customers and offer more relevant products or services. When should you invest in data enrichment? When your database is cleared, and you want to add more depth to your customer profiles for personalized marketing campaigns. If you are interested in improving customer segmentation accuracy or conducting more detailed analyses. Comparison of data cleaning and enrichment Data cleansing focuses on correcting errors and inaccuracies and removing unnecessary or outdated data. Data enrichment adds new information to improve and enhance existing data, allowing for more accurate and profound profiles. Cleansing is usually the first step, after which you can move on to enrichment to create more prosperous and valuable data. FAQs How data enrichment improves marketing strategies? Data enrichment improves marketing strategies by providing deeper customer insights, allowing you to segment your audience and create personalized campaigns more accurately. By enriching data, [marketers can combine all customer information](https://stape.io/blog/building-a-custom-cdp-and-enriching-event-data-using-server-side-gtm) in one place, which simplifies their understanding and improves interaction with them. This enhances the effectiveness of marketing campaigns, providing more accurate targeting and improved customer service. In addition, data enrichment helps in risk management and regulatory compliance, ensuring that the data is correct and up to date. Data enrichment generally turns raw data into valuable insights contributing to improved marketing strategies and business development. What is CRM data enrichment? Customer Relationship Management (CRM) is the process of improving customer information through external data sources. This allows you to get more details about customers, such as demographic information, purchase history, behavior on the site, and other factors that help you better understand their needs and preferences. Enriching CRM data allows companies to create personalized marketing campaigns, improve customer interaction, and increase sales efficiency. It also helps in audience segmentation and business process optimization. What is b2b data enrichment? Data B2B-enrichment (Business-to-Business Data Enrichment) is a process of improving and expanding information about business customers by adding external data, allowing you to get a complete picture of the companies with which you cooperate or plan to cooperate. This includes integrating additional information such as company size, industry, financial performance, contact details of key individuals, and other characteristics that help to better understand the needs and capabilities of your business customers. Enrichment of B2B-data contributes to improving sales and marketing processes, allowing you to more accurately segment the target audience, create personalized offers, and effectively manage customer relationships. --- # Chrome extension GTM Helper by Stape: key features and use cases Source: https://stape.io/blog/stape-chrome-extension Learn how to install and use Stape Chrome Extension, a free tool to make your GTM experience more efficient! There are a lot of [challenges in the GTM preview interface](https://stape.io/blog/google-tag-manager-errors-mistakes-solutions) - many have likely noticed areas that could be improved. Data can often be difficult to read, and [navigating the GTM preview](https://stape.io/blog/why-is-google-tag-manager-preview-mode-not-working) can become cumbersome in large containers with numerous active tags. That's where browser extensions help - they make data clearer and navigation easier. That's why the Stape team made a simple Chrome extension to improve the GTM preview. The whole GTM team uses it, so we know it will help many people. What is Stape GTM Helper? [Stape GTM Helper](https://chromewebstore.google.com/detail/Stape%20GTM%20Helper/ipjcocdbbjgkailaejllpnmeliblbimn) is a free Chrome extension designed to improve the debugging experience in [Google Tag Manager preview mode](https://stape.io/blog/gtm-preview-mode-and-debugging). The tool provides multiple features for both web and server GTM containers. With this extension, you can easily navigate fired tags, quickly identify failed ones, focus only on the tags you’re testing, and take advantage of other features, which we'll explore in detail below. Who can benefit from Stape GTM Helper? Stape GTM Helper will be helpful for anyone configuring data tracking using GTM. It can be used by data tracking specialists, data analysts, freelancers, or agencies that need a convenient tool to simplify the debugging process. Stape GTM Helper has the following benefits: Targeted tag testing. Filter and focus on the tags you need to test right now. Especially helpful if you have multiple entities in your GTM container. Easy tag status identification. If you have multiple tags in a GTM container, it is crucial to navigate through them during the debugging process to figure out which tags fired and what failed. Stape GTM Helper adds color coding to the most popular tags and highlights the status. Readability of request parameters. With Stape's extension activated, JSON incoming and outgoing requests, as well as the Request URL, are getting structured and easy to read. The feature will be helpful for sGTM users who need to view incoming/outgoing requests. Clear consent status in sGTM. The consent status can be viewed only in the request parameters in server GTM debugging. The Stape GTM Chrome extension displays the four main consent statuses in the server preview. Easy debugging of the checkout page on Shopify. Due to the sandbox on the checkout page in Shopify, you can struggle with troubleshooting this part of the setup. Our Chrome extension allows you to inject the GTM snippet on the checkout page and easily debug the setup. Bulk selection of GTM container entities. Pick multiple items to modify in a single step instead of clicking through each one individually. Tracking setup analysis. Scanner feature analyzes the page you’re viewing and generates a report with recommendations for improving both web and server-side tracking. Stape GTM Helper features and use cases Takeaway The free Stape GTM Helper includes an Entities filter, a Request URL format, and a JSON format. The Entities filter allows you to filter certain tags for easier debugging. The URL format enhances the readability of queried parameters in URL requests, while the JSON formatter makes incoming and outgoing JSON requests easier to read. Combined with color-coded tag statuses and types, these features simplify debugging and improve the overall experience when working with sGTM. Get the free [Stape extension from the Chrome Web Store](https://chromewebstore.google.com/detail/stape-gtm-helper/ipjcocdbbjgkailaejllpnmeliblbimn) today to make your workflow more straightforward and more efficient. You don't even have to create a Stape account to use the Stape GTM Helper. We'd love to hear your ideas and challenges that the Stape extension can help solve. Feel free to share your suggestions on our [Feature Request](https://feature.stape.io/) page. --- # GTM best practices and tracking tags for 2026 Source: https://stape.io/blog/gtm-best-practices-and-tracking-tags Explore the list of tracking tags for web and server GTM containers and take advantage of Google Tag Manager best practices selected by Stape. Google Tag Manager is a popular tool for efficiently managing tracking scripts. In this article we will show you: Top tracking tags for web and server GTM containers that will help track campaign performance and user behavior. List of best GTM practices, including but not limited to setting up the Data Layer, implementing allow and deny lists, and using AMP. So, let’s get started! What is Google Tag Manager? Google Tag Manager is a tagging tool that simplifies tag management. It allows you to configure and control tags on your website without directly modifying its code. It is like a command center where you can manage and set up data tracking. Its configuration is straightforward and requires creating a GTM container and inserting two snippets on each website page. For the purpose of this article, we will consider both web and server GTM containers. 11 popular tracking tags for GTM Tags for analytics tools Google Analytics Type: web and server Google Analytics 4 remains one of the most popular analytics tools. Using tags, you can set up pageviews, traffic, and events such as button clicks, scrolls, and downloads. That's an essential tag for gathering insights into user interactions and behavior on your website. The tag is available for both web and [server GTM containers](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). It is found when you choose the tag type when creating a new tag. Check out our detailed guide on how to [set up server-side Google Analytics 4 tracking](https://stape.io/blog/set-up-ga4-server-side-tracking). ![Google Analytics tag](https://cdn.stape.io/i/67d4381ee47aa730779944.png) Mixpanel Type: web and server If you use Mixpanel for data tracking, a few tags are available for web and server GTM containers. Both communicate with Mixpanel API allowing you to implement Mixpanel through the Tag Manager interface rather than directly in code. Mixpanel has developed a [Mixpanel tag for web containers](https://tagmanager.google.com/gallery/#/owners/mixpanel/templates/mixpanel-gtm-template), which can be found in the GTM template gallery. ![Mixpanel tag for web container](https://cdn.stape.io/i/67d43931c99c0519264985.png) As for the [Mixpanel tag for server GTM container](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/mixpanel-tag), you can use the one developed by Stape. For the detailed set up guide, please check our article on [configuring the Mixpanel tag](https://stape.io/blog/mixpanel-tag-for-server-google-tag-manager). ![Mixpanel tag for server GTM configuration](https://cdn.stape.io/i/67d4395ccad85059167167.png) Matomo Type: web and server Matomo became even more popular after Google Universal Analytics sunset. It is a free, open-source platform that provides tools to track user interactions on a website. If you use [Matomo tracking](https://stape.io/blog/matomo-server-side-tracking), there are numerous GTM tags can facilitate the tracking process. As for the tag for web GTM container, [Matomo Analytics - Actions](https://tagmanager.google.com/gallery/#/owners/data-marketing-school/templates/matomo-actions-tag) tag is the most versatile as it includes the tracking of different actions (page view, events, goals, links and site searches) compared to other available tags that are focused on the specific actions tracking. ![Matomo tag for web GTM container](https://cdn.stape.io/i/67d439882e124934371100.png) If you are using server GTM container, try [Stape's Matomo Advanced tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/matomo-advanced-tag). With its help, you can track pageviews and events, including e-commerce. Check our article on tag configuration for more details. ![Matomo Advanced tag for server GTM](https://cdn.stape.io/i/67d439b53c582700497755.png) Google Ads tracking Google Ads Conversion and Remarketing Type: web and server Google Ads Conversion Tracking tag is crucial for evaluating the performance of your Google Ads campaigns. So, you can refine your Google Ads strategy. In addition, if you run remarketing campaigns, you should add Google Ads Remarketing tag. Similar to the Google Analytics tag, the Google Ads Conversion Tracking and Remarketing tags can be found in web and server GTM containers when you select the tag type. We have a detailed guide for setting up [server-side conversion tracking in Google Ads](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords), including configuring Enhanced Conversions and remarketing tracking. ![Google Ads Conversions tag in GTM](https://cdn.stape.io/i/67d43a1886586196683577.png) Google Ads Conversions tag in GTM Facebook tracking Type: web and server Depending on your tracking method (client-side or server-side), there are two data gathering tools: [Facebook Pixel and Facebook Conversions API](https://stape.io/blog/facebook-conversion-api-vs-facebook-pixel). Both have the same purpose - gathering data on Facebook and/or Instagram ad campaigns. If you are using a web GTM container, you can opt for [the Facebook Pixel tracking tag](https://tagmanager.google.com/gallery/#/owners/facebookarchive/templates/GoogleTagManager-WebTemplate-For-FacebookPixel) from the GTM template gallery. After adding the Meta Pixel script to your website, you can effectively manage data collection with this tag. ![Example of Facebook Pixel configuration](https://cdn.stape.io/i/67d43a8039a38220187266.png) For the server GTM container, you can use the [Facebook Conversions API tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) developed by Stape. Please note that Meta recommends tracking events using Facebook Pixel and Conversions API, so you must also set up event deduplication for precise data tracking. ![Example of Facebook CAPI tag configuration](https://cdn.stape.io/i/67d43aa4b7ec2067171366.png) LinkedIn tracking Type: web and server Similar to Facebook, LinkedIn has a tracking pixel. GTM templates will facilitate data tracking if you run LinkedIn ads. For a web GTM container, you can use [LinkedIn InsightTag 2.0](https://tagmanager.google.com/gallery/#/owners/linkedin/templates/linkedin-gtm-community-template) after adding tracking code to the website. However, some users notice that the tag's performance slows down website load, so it's worth doing website speed testing before and after implementing the tag. If you are using a server GTM container, try the [LinkedIn Conversion API](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/linkedin-tag). Integrating the Conversion API will improve your web pixel tracking and make it more resistant to ad blockers and the latest ITP updates. Check out our guide on setting up the [LinkedIn Conversion API Tag for server GTM](https://stape.io/blog/linkedin-conversion-api-tag-for-server-google-tag-manager) for more details. ![LinkedIn CAPI tag configuration](https://cdn.stape.io/i/67d43addcbc84430025121.png) Email marketing tags Most email marketing services don't have their own rebuild GTM templates, especially for web GTM container. So, in the sections below, we consider the available templates for the most popular platforms. If there is no template for a web GTM container, creating a custom HTML tag that fits your needs would be a good solution. Mailchimp Type: server [Mailchimp Event Track](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/mailchimp-tag) is a tag that works for the server GTM container. With the help of a tag you can track events and create or update contacts. Check how to [connect your website to the Mailchimp](https://stape.io/blog/connect-your-website-to-mailchimp-using-google-tag-manager-server-container) using a tag. ![Mailchimp tag configuration](https://cdn.stape.io/i/67d43b3ce04c2847787121.png) Klaviyo Type: web and server Integrating your site with Klaviyo is crucial if you run email campaigns. By sharing data with Klaviyo, you can better segment lists, automate campaigns and send personalized emails. [Klaviyo Identify](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/klaviyo-identify-tag) is a tag for a web GTM container that sends user identification to Klaviyo. In most cases, it can be more convenient than custom HTML. The [Klaviyo tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/klaviyo-tag) can be used for the server GTM container. It allows you to add new users, track user activity on the website, and send events and parameters. For details, see the detailed guide on [how to set up the Klaviyo tag](https://stape.io/solutions/server-side-klaviyo-tag). ![Klaviyo tag configuration](https://cdn.stape.io/i/67d43b8581c63514508309.png) Brevo Type: server Like Mailchimp, integrating with Brevo using a prebuilt template is only possible for the server GTM container. To create such an integration, use the [Brevo tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/brevo-tag). The [Brevo server GTM tag](https://stape.io/blog/brevo-tag-for-server-google-tag-manager) allows for the tracking of events, page views, link clicks, and user identification. ![Brevo tag configuration](https://cdn.stape.io/i/67d43bc59f654125393740.png) SendGrid Type: server SendGrid is a popular solution for those needing to send large emails. Similar to other email marketing services, SendGrid has a prebuilt template for a server GTM container only. The[SendGrid template](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/sendgrid-tag) allows sending messages from SendGrid and adding/updating contacts using the server GTM container. For a detailed guide on [how to set up SendGrid tag](https://stape.io/blog/sendgrid-tag-for-server-google-tag-manager) check our guide. ![SendGrid tag configuration](https://cdn.stape.io/i/67d43c03b7d4c002205331.png) Want a complete overview of all analytics and ad trackers firing on your website? Test it now with [Stape’s free Website Tracking Checker](https://stape.io/website-tracking-checker?cta=blog_article). The tool shows you how well your website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for your analytics systems and ad platforms. Digital marketers and agencies can run [fast tracking audits](https://stape.io/blog/website-audit), use the report as a checklist to double-check implementations, and win more clients with proof of server-side tracking value. 12 Best Google Tag Manager practices Create scalable naming system Creating a scalable naming system for GTM tags, triggers, and variables is essential for maintaining clarity and consistency as your website grows and the number of these elements increases. The best practices for naming GTM elements include: Create unified naming rules. The tags/triggers/variables names should include the key data on a specific element's purpose and additional information required if someone works with it later. Categorize elements. They can be logically divided into groups, such as the behavior metrics setup and e-commerce tracking. Use descriptive suffixes and prefixes to differentiate them. Keeps records. Notes significant changes and container setups so that someone else can refer to them in the future if necessary. We have prepared the table that may help you structure your naming system for tags, triggers, and variables: GTM element | Tool/Type | Purpose | Example Tag | GA4 | Pageview | GA4 - PageView | FB | Add to cart | FB - AddToCart | GAds | Purchase | GAds - Purchase Trigger | Custom event | Add payment info | ce - add_payment_info | Page view - DOM ready | Pageview | dom - page_view | All elements/Just links click | Click “Register” button | click - register_button Variable | 1st Party Cookie | Tracking email subscribers | cookie - email_subscriber | Custom JavaScript | Track the event’s timestamp, which will be sent to GA4 | cjs - ga4_event_timestamp | Data Layer Variable | Currency tracking | dlv - ecommerce_currency Avoid loading all scripts with a tag manager GTM isn't the best choice for loading visual or functional elements of the website, such as [cookie banners](https://stape.io/blog/cookie-banner-all-in-one-guide) or hero images. Relying on a tag manager for these elements can introduce delays, negatively affect user experience, and increase metrics like LCP and CLS in PageSpeed Insights. So, using third-party solutions to set up such elements is better. Set up Data Layer Data Layer is a more advanced concept for data tracking, but it is often omitted. It helps you set up flexible event tracking and ensure reliable data collection. In addition to tracking specific elements of your website that auto-event listeners can't capture, you can create a stable source from which the GTM container retrieves data instead of relying on HTML DOM. Our [guide on Data Layer](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager) covers its use cases, set up process, testing, troubleshooting, and more. Use constant variables Constant variables are helpful if you need to enter specific data (such as GA4 Measurement ID or Pixel ID) multiple times for different tags. If you need to change this data, you can adjust it only in one place (constant variable), and the changes will be applied to all the tags. You can create constant variables by going to Variables → New → "Constant" as the Variable type. ![Constant variable in GTM](https://cdn.stape.io/i/67d43ca42dbd9254902079.png) You can also use Stape's pre-built templates for different platforms. Please note that they are created for both web and server GTM containers. Here is the list of platforms we have prebuilt templates for: [WooCommerce](https://stape.io/gtm-set-up-assistant) [Shopify](https://stape.io/gtm-set-up-assistant) [Wix](https://stape.io/gtm-set-up-assistant) [PrestaShop](https://stape.io/gtm-set-up-assistant) [BigCommerce](https://stape.io/gtm-set-up-assistant) [Magento](https://stape.io/gtm-set-up-assistant) Pre-built templates include tags, triggers, and GA4, Meta, and Google Ads variables. As for the constant variables, you will receive the template where you just need to put your value: ![Pre-built template by Stape](https://cdn.stape.io/i/67d43cc5efa39402711221.png) Reduce the number of custom HTML tags Custom HTML tags are a flexible solution for setting up custom data tracking. They allow you to add tracking scripts to the page, but in some cases, having many such tags may result in layout shifts. When this element is inserted, the browser must recalculate the size and position of all elements on the page. Frequent recalculations can degrade website performance. ![Custom HTML tag](https://cdn.stape.io/i/67d43d05d8b31633697137.png) When possible, use templates from the [GTM template gallery](https://tagmanager.google.com/gallery/#/). Custom templates operate within a sandboxed JavaScript environment. They are optimized to work more effectively with your website's Content Security Policy (CSP), which helps website developers restrict potentially harmful actions JavaScript can perform on a site. Implement allow and deny lists Allow and deny lists are used to restrict certain tags, triggers, or variables on the website. This can be helpful for security. For example, prevent GTM users from adding specific tags to maintain code stability or control data collection. Implementing allow and deny lists is done through the Data Layer. You can find more details on the setup in[Google's documentation](https://developers.google.com/tag-platform/tag-manager/restrict). Discover Accelerated Mobile Pages (AMP) Accelerated Mobile Pages (AMP) in GTM are designed to provide a fast and smooth browsing experience for mobile users, making them especially beneficial for businesses with a large share of mobile traffic. [Implementing AMP](https://support.google.com/tagmanager/answer/9205783?hl=en) requires additional setup - such as creating a container and configuring page variables - but the effort is worthwhile for those looking to track mobile user data without compromising performance. ![AMP in GTM](https://cdn.stape.io/i/67d43d3a787ac752505102.png) Monitor PageSpeed Insights When you make bulky updates in GTM, such as adding multiple elements, especially custom HTML tags, check how they affect website performance. Every additional piece of code may negatively impact page speed. So be sure to roll back the GTM updates if you see a negative impact on the website performance. Often, the problem can be in the [JavaScript files of GTM](https://stape.io/blog/how-to-reduce-javascript-files-of-gtm-in-pagespeed-insights) that impact the page load time. ![Third-party code in pagespeed insights](https://cdn.stape.io/i/67d43d5b84fa5594003451.png) Conduct container audit Regularly reviewing GTM is the best practice for maintaining an efficient and error-free setup. Auditing the GTM container will allow unnecessary elements to be deleted, resulting in faster website load. For this purpose, you can use[GTM Tools](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape), which was created by Simo Ahava and relaunched and fully supported by Stape some time ago. With its help, you can conduct a comprehensive container audit, visualize container set up, delete or clone specific elements. ![GTM tools by Stape](https://cdn.stape.io/i/67d43da15ffde745922332.png) Test with other tools In addition to [testing set up via GTM](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration), it is worth double-checking it in other tools. For example, if you configure tracking for Google Analytics 4, use its DebugView. For manual real-time configuration check and troubleshoot use [Tag Assistant](https://stape.io/blog/what-is-google-tag-assistant-and-how-to-use-it). This way you can be sure that the tracking you've configured works smoothly. If you are using Stape, you can also try our [Monitoring feature](https://stape.io/solutions/monitoring). With its help, you can easily monitor your GTM setup, as when developers update the website, some actions can negatively affect data tracking or break it. ![Monitoring feature at Stape](https://cdn.stape.io/i/67d43dc21755d651524857.png) Make GTM preview easier to navigate Reading data can be tricky, and navigating the preview can become overwhelming in large containers with multiple active tags. To make a GTM preview navigation more manageable, use browser extensions such as [Stape GTM Helper](https://chromewebstore.google.com/detail/stape-gtm-helper/ipjcocdbbjgkailaejllpnmeliblbimn). GTM Helper extension will allow you: Improve clarity of incoming and outgoing JSON requests with the JSON formatter. View query parameters in URL requests using the Request URL formatter. Navigate popular tags (Meta, GA4, Google Ads, Microsoft, etc.) with color-coded types and statuses. Verify consent statuses in server GTM to troubleshoot tag-related issues. Consider using server-side tagging If you don't use [server-side tracking instead of client-side tracking](https://stape.io/blog/server-side-tagging-versus-client-side-tagging), switching to it is worth considering, especially in the age of data regulations and the need for greater control over the data to comply with them. This approach removes vendor code from the client and shifts processing from the client to the server. Server-side tagging is highly flexible in setup and provides [numerous benefits,](https://stape.io/blog/benefits-server-side-tagging) including resistance to ad blockers and browser restrictions such as [ITP](https://stape.io/blog/safari-itp?trk=public_post_comment-text), security, and data control. ![How server-side tracking works](https://cdn.stape.io/i/67d43dfe26f8b935641409.png) Conclusion In this article, we have listed tags that will work for web and server GTM container. They will be enough to track the different platforms' performance and on-site behavior. By using best practices such as structured naming conventions, reducing the number of Custom HTML tags, and implementing server-side tracking, businesses can maintain a well-organized and high-performing GTM setup that doesn't affect website performance. Additionally, server-side tracking provides improved data control and security. Regular audits and performance monitoring with GTM Tools ensure efficient data tracking configuration. If you're putting these best practices into action, consider improving your skills with a [GTM certification](https://stape.io/blog/google-tag-manager-certification). You will learn how to make setups, validate implementation across web and server containers, and present your expertise to stakeholders. Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # How to set up Admitad tag using server GTM Source: https://stape.io/blog/admitad-gtm-tag-setup Discover how you can set Admitad integration with server GTM using a tag developed by Stape. Enjoy the benefits of server-side tracking with a quick and easy setup. In this guide, we'll walk you through setting up Admitad tracking with server GTM. To configure the Admitad tag, follow these steps: Set up a server GTM container. Enable data transmission from the web to the server GTM container. Add the Admitad tag from the GTM template gallery. Configure the tag to track pageviews or conversions. Assign a trigger to the tag. Test the configuration. Below, we’ll describe the configuration process in more detail. What is the Admitad tag for GTM? Admitad is a tag created for the server GTM container allowing website owners to track user actions. The Admitad Template for Google Tag Manager allows you to [track conversions](https://stape.io/blog/conversion-tracking-faq). The template sends data to Admitad statistics, allowing website owners to monitor and analyze user behavior on their site. Benefits of Using Admitad with Google Tag Manager As Admitad tag works on the server GTM container, besides a convenient way to track conversions, you will get the following benefits: Accurate data collected that is not affected by ad blockers and browser restrictions. Faster page loads compared to client-side tracking, as server-side tracking processes tags without loading them in the user's browser. High data control, so you can easier comply with data regulations. What you need to set up the Admitad tag Before setting Admitad tag, ensure you: Have a [server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). Establish data flow from the web to the server GTM container by [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). How to set up the Admitad tag 1. Add [the Admitad tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/admitad-tag) to your workspace. To do it, go to your server GTM container → Templates → in the "Tag Templates" section, click "Search Gallery" → find "Admitad (Mitgo)" → click "Add to workspace". ![Add Admitad tag template](https://cdn.stape.io/i/67d007328934b904684940.png) 2. Create a new tag. Go to the section "Tags" → click "New" → choose as the tag type "Admitad (Mitgo)". ![Choose as tag type Admitad tag](https://cdn.stape.io/i/67d0075e6589c482839257.png) 3 .Configure the tag. 3.1 Choose Event Type: PageView - it stores the {admitad_uid} URL parameter inside the _aid cookie. Conversion - with this option you send a request with data about the conversion to the Admitad. If you opt for conversion option, you will need to configure the following fields: Campaign Code - that’s the target action code from your program settings. You can find the action_code value in your account → Integration section → Integration methods → Custom integration → Postback → in the Action column find the required value for this field. Postback Key - that’s a constant whose value is defined in the postback request. Action Code - a constant whose value is defined in the postback request. It can be found in the same location as Campaign Code. Tariff Code - a variable which is the rate code from your program settings. Find the tariff_code value in your account → Integration section → Integration methods → Custom integration → Postback → in the Rate column find the required value for this field. Payment Type - a constant with the value "sale". Check [Admitad’s documentation](https://support.mitgo.com/knowledge-base/article/integration-via-postback-request_2) for the detailed instructions on how to find the values required for tag configuration. 3.2 Parameters override - that’s optional as Admitad tag attempts to retrieve all data from the event data using GA4 parameters. Specify the parameters you want to override, the parameters include: Order ID Currency code Price Client ID Quantity Position ID Position count Product ID Country code City Promocode ![Admitad tag configuration](https://cdn.stape.io/i/67d0080498e7e852585345.png) 4. Add a trigger for a tag. 5. Verify the tag configuration by triggering the event in the web and server GTM containers. If you encounter any issues with the tag setup, see the detailed [guide on debugging and monitoring](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration). Summary Setting up the Admitad tag with a server-side Google Tag Manager container allows you to track conversions accurately. Implementing server-side tracking improves data reliability and website performance. The setup process is simple and fast, allowing you to immediately take advantage of server-side tracking! Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # What should marketers expect from Snapchat Ads? Source: https://stape.io/blog/snapchat-ads-explained Read about Snapchat advertising and why it is a good alternative to the most popular platforms. Check which type of ad better fits your needs. In this article, we are going to review how Snapchat Ads work, how effective they can be, and how to get the maximum from them. Set your marketing expectations accordingly and plan your strategies, considering what this platform can provide you with. All in all, Snapchat has almost a billion monthly active users (1/7 of the total Earth population), and statistics show it will only increase its numbers. Seems like a great time to get more to know about it. Snapchat Ads explained Snapchat advertising is very similar to what we see on Instagram: short videos popping up when people scroll through the feed or stories. Considering [Snapchat’s audience](https://www.emarketer.com/learningcenter/guides/snapchat-user-statistics/) (the biggest share belongs to Gen Z - people between the ages of 15 and 30), you can hardly ever see ads for medication, [real estate](https://stape.io/blog/real-estate-facebook-ads), or gambling. Instead, it focuses on goods attractive to youth: [fashionable clothes, music, food and drinks, entertainment, and technology](https://stape.io/blog/benefit-from-snapchat-ads-for-businesses). On the contrary, it is very strict to all types of political and social advertising. There are strict rules about its transparency, and content that promotes hate or division is not allowed on the platform. Gambling advertisements are allowed only in certain regions. Tobacco and alcohol have no access to this social media at all. Of course, we are talking here only about the official rules, and if someone finds a way to bypass them, remember it is illegal. Your advertisement on Snapchat will be banned anyway sooner or later, but in this situation, it will be banned together with your account. Why consider Snapchat advertising? A logical question may arise: “If I have never used Snapchat advertisement before, why should I start doing this now?” Of course, the main reason is the number of people on the platform: [from around 40K in 2014, it has risen to almost 500K in 2024](https://www.statista.com/statistics/545967/snapchat-app-dau/). The dominant age category on the platform is Gen Z, whose yearly spendings are estimated to be around $3 trillion in 2025. Thus, Snapchat users represent a “very considerable” (softly speaking) buying power that cannot be ignored. You may say all these numbers do not matter if people do not open the app often enough, and you are totally correct in this question. However, they do. The average number of times [users open the Snapchat app on their phones daily is 40](https://www.socialpilot.co/blog/snapchat-statistics). So, is Snapchat good for advertising? In our opinion, it definitely is. Check out our article on [Spotify advertising](https://stape.io/blog/spotify-ads-pros-and-cons-cost) if you're also considering audio as part of your channel mix. Ad formats available on Snapchat Depending on what you want to achieve with your Snapchat ad campaign, there are 6 advertisement types you can launch on the platform. Single image/video advertisement This type of ad is the most flexible one and may generally fit any goals. There are 4 types of visual content you can use for it: images; GIFs; videos; cinemagraphs (videos and images combined in one file). This type of ad is shown between the stories or in the discover mode (an analog for the well-known feed). Although suitable for any case, this ad type is mostly used for increasing brand awareness, boosting website traffic, or encouraging users to install an app. Collection ads ![Collection ads](https://cdn.stape.io/i/67cad127d0447614394443.png) Advertisement on Snapchat can look like a big picture or video of a product and 3 clickable thumbnails of other products below it. It is used to increase sales and promote products from one brand, shop, or company. For instance, you can get a sneakers ad with one model represented in the main frame and 3 other products from the same seller and category - below it in a smaller size. Upon clicking on any of them, you will be redirected to the corresponding page in the online store. Story ads ![Story ads](https://cdn.stape.io/i/67cad1414bd3f519679085.png) This type of ad is shown between pieces of content people view in the Discover section. Story ads can consist of 1 to 10 videos and pictures combined and are often used for marketing on Snapchat through storytelling, introducing new products, and promoting specific goods or services. There is a “VIP” option to add the CTA or download button at the bottom of such an ad. For instance, it can be a teaser of a new movie with a button to buy tickets in the local cinema. AR lenses and filters ![AR lenses and filters](https://cdn.stape.io/i/67cad1ec69a09955633042.png) The development of artificial intelligence allows people to interact with brands and products to increase awareness and promote something. Lens Studio offers hundreds of filters Snapchat users can apply to their videos or even their faces using the frontal camera to add more dynamics and engagement to the ad. A good example here is the advertisement for cosmetic products that people try on with the help of the phone camera. Another popular application of filters in Snapchat ads marketing is organizing contests using specific lenses or filters. It helps to engage more people and promote specific products during certain periods and in certain areas. Commercials ![Commercials](https://cdn.stape.io/i/67cad1ff84320232188023.png) Commercials are probably the most premium way to use Snapchat for advertising. They look like a well-made full-screen video masterfully tied between stories and other types of user-generated content in the Discover section aimed at introducing a product and engaging users in the most natural way possible. There are two types of Snapchat commercials: a 6-second one (with the first 3 seconds non-skippable) and up to 180 seconds (with the first 6 seconds non-skippable). Commercials are commonly used to introduce a brand or product or to promote time-sensitive and limited offers. Benefits of marketing on Snapchat ![Benefits of marketing on Snapchat](https://cdn.stape.io/i/67cad2247b03e289465092.png) We have already casually mentioned the importance and attractiveness of Snapchat for business marketing. However, now we want to systematize everything and discuss all the points (both already touched on in this article and not) in more detail. Engaged audience. Snapchat has a huge audience of mostly young users who are interested in modern trends and have high buying ability. Most of them spend at least half an hour per day on this social media platform and consume tons of content monthly. Younger generations are also more loyal to advertising, as they associate it with helping them choose something, not with the irritating commercials on TV in the middle of a movie. Targeting options. Companies and brands that decide to use Snapchat for advertising can benefit from its advanced targeting options based on localization, age groups, and behaviors. You can also create custom groups with attributes that are important only for your particular advertising campaign. Interactivity. AR filters and lenses allow you to create engaging and unusual campaigns to attract more people. You can create contests using brand masks and filters to boost it even more. This usually results in a bigger number of interactions and clicks. Low competition. Compared to Meta platforms, Snapchat has lower competition in many spheres. For advertisers, this means smaller budgets can lead to better results than on other social media. CPM and CPC also go down. The Snapchat team constantly works on adding new filters, masks, and inventing new ways to engage its audience. Thus, we can expect the platform to become even more popular and effective in the near future. How do we measure Snapchat ad performance? ![How do we measure Snapchat ad performance?](https://cdn.stape.io/i/67cad24b35d9c153066483.png) Snapchat provides all advertisers with a convenient dashboard to [analyze all the key ad data](https://stape.io/blog/digital-marketing-data-trends): campaign performance and strategy effectiveness; demographic statistics; information on the individual performance of each launched ad; scheduling and budgeting nuances. However, to [squeeze everything possible from the ads,](https://stape.io/blog/ad-tracking) you need to dive into the matter even deeper and add some additional tools to your arsenal. For the most accurate data and conversion tracking, you need to set up Snap CAPI. You can turn to our services and use the [Snap CAPI tag or a Gateway](https://stape.io/blog/snapchat-capi), which are the best immediate solutions for businesses to set up Snapchat tracking. With its help, you can not only measure the success of your Snapchat ads marketing campaigns but also plan your next steps and understand the areas you need to focus on. In addition, it is a convenient tool for creating custom login profiles and incorporating PPC markups. Use case with Snapchat ads We can discuss [Sephora's case](https://forbusiness.snapchat.com/inspiration/sephora-case-study) as an example of how profitable understanding Snapchat advertising essentials can be. It is even more interesting to us because it concerns a market that is not so familiar to Western middle-lance marketers: Saudi Arabia. The company wanted to strengthen its position in the local market. During the 2022 Ramadan, they collaborated with Saudi artists and created unique Snapchat lenses to engage Snapchat users during the holy month. For instance, Sephora’s marketing experts and their partners developed an interactive Snapchat-based game that utilized the platform’s augmented reality. People who took part in this activity received a discount voucher for their products. This activity was supported by the “Who inspires you” movement, launched on Snapchat in 2024. Local influencers and celebrities shared their stories about how makeup increased their self-confidence, helped them present themselves to the audience, and inspired them. These campaigns resulted in a 12% increase in brand awareness and a 5.6% increase in add-to-cart action in Saudi Arabia. These impressive results prove that Snapchat advertising can be effective and is worth investing in. FAQs What makes Snapchat Ads different from other platforms? We would place its audience in the first place: young people interested in modern brands and trends with higher-than-average buying ability. Snapchat actively interacts with its users, engaging them in different activities and contests tailored to its ads, increasing their engagement. Add to this lower competition, attractive pricing, and active usage of augmented reality - you get an attractive and promising platform for advertising. How much do Snapchat Ads cost compared to other platforms? As of January 2025, Snapchat’s CPM was $8.85, and the average CPL - $1.93. For comparison, Instagram's corresponding numbers are $6.70 and $2; Facebook’s - $14.4 and $0.44. Some may claim such a price is one of the cons of using Snapchat for marketing purposes. However, upon closer examination, the prices are competitive and may also vary depending on the season and the product advertised. Can Snapchat Ads work for small businesses? Affordable pricing and a focus on a younger audience make Snapchat a perfect choice for small businesses to launch their ads. Advanced targeting capabilities and active use of augmented reality only increase the chances of receiving better results. Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Using Stape SDKs for server-side tracking Source: https://stape.io/blog/stape-sdk Stape SDKs send data to sGTM for server-side tracking, supporting PHP, Node.js, iOS, and Android. Ideal for tracking events without web GTM. Web GTM isn’t always the best way to send events to server GTM - especially for server-side interactions like CRM events, subscription payments, or backend order updates. Stape SDKs provide a direct way to send data to your server GTM container without additional dependencies. This guide covers setting up Stape SDKs for PHP, Node.js, iOS, and Android, configuring the Data Client, and ensuring your events are processed correctly. What is SDK? An SDK (Software Development Kit) is a set of tools and resources designed to help developers build applications for a specific platform, framework, or service. Stape SDKs are tools for transferring data to the server Google Tag Manager container. It is possible to use them within server-side tags. The server-side GTM container is designed to receive data without authorization keys or additional settings. The most common method for sending requests to this container is using JSON in GET or POST format. In most server-side tracking setups via GTM, the web container acts as a signal source for the server container. For instance, you might use GA4 or Data Tag in the web container to collect and transfer data to the server. However, in many cases, events cannot be collected using a web container (subscription payments, order cancellations, events in your CRM system, etc.). In this case, you can use the Stape SDK to transfer the needed data to the server. It can also be helpful if you don't want to use the web GTM container and send data directly from the code to the server GTM container. Here is what Stape has to offer: [Stape PHP SDK](https://github.com/stape-io/stape-sgtm-php) [Stape Node.js SDK](https://github.com/stape-io/stape-sgtm-nodejs) [Stape iOS SDK](https://github.com/stape-io/stape-sgtm-ios) [Stape Android SDK](https://github.com/stape-io/stape-sgtm-android) The Stape SDK functions similarly to a [Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag) but is implemented within your codebase. It's designed to transfer events and data to sGTM, where the server's necessary tags can be used. If required, the SDK also handles data encoding (base64, md5, sha256base64, sha256hex). The iOS and Android SDKs also support automatic copying and sending of events generated by the Firebase SDK. Getting started with Stape SDK You must configure the Stape Data Client within your server-side GTM container to properly receive and process events sent via the Stape SDK. How to set up Stape Data Client in server GTM 1. Download [Data Client](https://github.com/stape-io/data-client) from GitHub. ![image](https://cdn.stape.io/i/67c86a5014ab7399075591.png) 2. Go to your server GTM container ➝ Templates ➝ Add new Client template and select .tpl file that you loaded from GitHub. ![image](https://cdn.stape.io/i/67c86a6bb9c41352638709.png) ![image](https://cdn.stape.io/i/67c86a75a6f2c816694201.png) 3. Go to ‘Clients’ section on your server GTM container ➝ New client ➝ Add Data Client from templates. ![image](https://cdn.stape.io/i/67c86a8d625ca785234331.png) 4. Submit changes on your server GTM container to make it live. ![image](https://cdn.stape.io/i/67c86a9fb6555532265644.png) How to add Stape SDK to your project You can integrate the Stape SDK using standard package managers for your language. Node.js SDK 1. Install the code. npm install stape-sgtm-nodejs 2. Initialize the SDK in your Node.js project. import StapeSGTM, { transformations, EventData } from 'stape-sgtm-nodejs'; const sgtm = new StapeSGTM({   gtm_server_domain: 'https://gtm.example.com',   request_path: '/data', }); const eventData = {   value: 68,   currency: 'USD',   page_hostname: 'stape.io',   page_location: 'http://stape.io',   user_data: {     email: transformations.sha256hex('jhonn@doe.com'),   }, }; sgtm.sendEventData('add_to_cart', eventData)   .then((result) => console.log('✅ Event Sent:', result))   .catch((error) => console.log('❌ Error:', error)); PHP SDK 1. Install the PHP SDK using Composer: composer require stape/stape-sgtm-php 2. Implement the SDK in your PHP project: require_once __DIR__ . '/vendor/autoload.php'; use Stape\Sgtm\StapeSGTM; use Stape\Sgtm\Transforms; $sgtm = StapeSGTM::create('https://gtm.example.com', '/data'); $eventData = [     'value' => 68,     'currency' => 'USD',     'page_hostname' => 'stape.io',     'page_location' => 'http://stape.io',     'user_data' => [         'email' => Transforms::sha256hex('jhonn@doe.com'),     ], ]; $response = $sgtm->sendEventData('add_to_cart', $eventData); if ($response) {     echo "✅ Event sent successfully!"; } else {     echo "❌ Failed to send event."; } 3. Implement passing the data you want on the events you wish to. iOS SDK 1. Ensure you've installed the Stape SDK via CocoaPods: pod 'StapeSDK' 2. Run it through. pod install 3. Initialize SDK in your project. import StapeSDK @main class AppDelegate: UIResponder, UIApplicationDelegate {     var window: UIWindow?     func application(_ application: UIApplication,                      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {         // Initialize Stape SDK with your domain         if let url = URL(string: "https://gtm.example.com") {             let configuration = Stape.Configuration(domain: url)             Stape.start(configuration: configuration)         }         return true     } } 4. Replace "gtm.example.com" with your actual sGTM container domain. 5. Create and send event. import StapeSDK class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Send "add_to_cart" event sendAddToCartEvent() } func sendAddToCartEvent() { // Define event payload let payload: [String: Any] = [ "value": 68, "currency": "USD", "page_hostname": "stape.io", "page_location": "http://stape.io", "user_data": [ "email": sha256("jhonn@doe.com") // Hash email for privacy ] ] // Create event let event = Stape.Event(name: "add_to_cart", payload: payload) // Send event Stape.send(event: event) { result in switch result { case .success(let response): print("✅ Event Sent: \(response.payload)") case .failure(let error): print("❌ Error: \(error.localizedDescription)") } } } // SHA256 hashing function func sha256(_ input: String) -> String { guard let data = input.data(using: .utf8) else { return "" } var hash = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH)) data.withUnsafeBytes { _ = CC_SHA256($0.baseAddress, CC_LONG(data.count), &hash) } return hash.map { String(format: "%02x", $0) }.joined() } } Note! Ensure you have the CommonCrypto library imported for the SHA256 hashing function. Firebase hooking To start listening to Firebase events, you need to call Stape.startFBTracking() method after the call to Stape.start(). There is a handlers API to get responses for Firebase events dispatched to Stape Data Client. It consists of a pair of methods to add and remove handler closures identified by keys: public static func addFBEventHandler(_ handler: @escaping Completion, forKey key: String) public static func removeFBEventHandler(forKey key: String) Android SDK 1. Add the Stape SDK dependency to your build.gradle file. implementation 'io.stape:android-sgtm:1.0' 2. Initialize the SDK in your Application class. import android.app.Application; import io.stape.sgtm.Options; import io.stape.sgtm.Stape; public class MyApp extends Application {     @Override     public void onCreate() {         super.onCreate();         Options options = new Options("gtm.example.com");         Stape stape = Stape.withOptions(options);     } } 3. Replace "gtm.example.com" with your actual sGTM container domain, excluding https:// or http:// schemas. 4. Create and send the event from your activity or fragment. import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import io.stape.sgtm.Stape; import java.util.HashMap; import java.util.Map; public class MainActivity extends AppCompatActivity {     private Stape stape;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         // Initialize Stape instance         stape = Stape.getInstance();         // Send "Add to Cart" event         sendAddToCartEvent();     }     private void sendAddToCartEvent() {         // Create event data         Map eventData = new HashMap<>();         eventData.put("value", 68);         eventData.put("currency", "USD");         eventData.put("page_hostname", "stape.io");         eventData.put("page_location", "http://stape.io");         eventData.put("user_data", getUserData());         // Send event         stape.sendEvent("add_to_cart", eventData);     }     private Map getUserData() {         Map userData = new HashMap<>();         userData.put("email", sha256("jhonn@doe.com"));         return userData;     }     private String sha256(String input) {         try {             MessageDigest digest = MessageDigest.getInstance("SHA-256");             byte[] hash = digest.digest(input.getBytes(StandardCharsets.UTF_8));             StringBuilder hexString = new StringBuilder();             for (byte b : hash) {                 String hex = Integer.toHexString(0xff & b);                 if (hex.length() == 1) hexString.append('0');                 hexString.append(hex);             }             return hexString.toString();         } catch (NoSuchAlgorithmException e) {             throw new RuntimeException(e);         }     } } Example of using Note! Unlike data collection via web GTM, where many parameters are automatically populated, using an SDK requires manually collecting and including key tracking data. This includes: User IP Address: Needed for attribution & compliance. Cookies: Used for session tracking and conversion tracking (e.g., _ga, _fbc). User Agent & IP Override: Ensures platforms see the real user, not your server data. Different advertising and analytics platforms have specific data requirements. Before implementing events, check the official API documentation of the platforms you plan to send data (e.g., Meta CAPI, Google Ads, TikTok API). Ensure user_agent and ip_override contain real user data, not your server’s IP or User Agent. If necessary, override these values in your sGTM tags. Below is an example purchase event payload that could be used for Meta CAPI via the Node.js SDK. In the case of other SDKs, syntax changes are only made, but the approach remains completely the same. import StapeSGTM, { transformations, EventData } from 'stape-sgtm-nodejs'; const sgtm = new StapeSGTM({   gtm_server_domain: 'https://gtm.example.com', //your sgtm container url   request_path: '/data', //default Data Client path }); const eventData = {   value: 50.69,   currency: 'USD',   items: [     {       item_id: '42082',       item_name: 'LEGO Technic 42082',       quantity: 1,       price: 50.69,     }   ],   content_ids: ["42082"],   page_hostname: 'lego.com',   page_location: 'http://lego.com/products/lego-technic-42082',   page_path: '/products/lego-technic-42082',   page_title: 'LEGO Technic 42082',   page_referrer: 'http://google.com',   ip_override: '195.234.12.69',   user_agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120',   language: 'en',   user_data: {     email: 'jhonn@doe.com',     first_name: 'Jhonn',     last_name: 'Doe',     user_id: '437283'   },   facebook_click_id: 'IwY2xjawIgS11leHRuA2FlbQEwAGFkaWQBqxhD-YazOQEdX6Vv2-TU2AdiARCxJoWJWZBwf1IDdMusnodh0C47KbqQta4iab5tLmqj_aem_2BKiIsr7_LBVloJPeSYSLw', }; sgtm.sendEventData('purchase', eventData)   .then((result) => console.log('✅ Event Sent:', result))   .catch((error) => console.log('❌ Error:', error)); Tracking events and conversions on marketing platforms requires sending click ID (click identifier) with the event data. This ID helps platforms attribute conversions to the original ad click, ensuring accurate measurement and optimization. A click ID is a unique identifier assigned to users when they click on an ad. This parameter is included in the landing page URL and must be captured to be passed along with conversion events. For example, Meta ADS passes this parameter when clicking on the URL under the ‘fbclid’ key. Since the click ID is only available when the user first lands on your website, you must store it for later use with all user events (in user cookies or your database). Testing the setup The server GTM preview only displays incoming requests sent from the tab adjacent to the Chrome browser where the preview mode runs. So, if you run sGTM preview and send a request through SDK, you will not see it in preview mode, although this does not prevent it from working. You need to use the power-up [sGTM Preview Header config](https://stape.io/solutions/sgtm-preview-header) to view and debug SDK requests. We have a blog post describing [setting up and debugging incoming webhooks in the sGTM](https://stape.io/blog/debug-webhooks-google-tag-manager-server#how-to-set-up-and-debug-incoming-webhooks-in-the-server-google-tag-manager). If you are configuring this on a live container that receives a lot of hits, activating the HTTP header may not be a good idea. It will display all requests coming to the server in the preview, which can lead to performance issues for the container if the preview receives hundreds or thousands of requests per second. In such a case, it would be a good idea to start a ‘staging’ container on a free plan, where everything is configured and debugged, and then transfer that to a live container and the live URL of your server GTM. The most common problem when using the SDK is getting a 400 error 400 error means that no client has processed your request. In this case, make sure that Data Client is installed on your server GTM container, and that these changes are omitted (check in the Versions tab that the latest version of the container is live). Also make sure that the /path to which you send requests is specified in the Data Client (if you use something other than the standard /data). Final thoughts Stape SDKs offer a direct way to send data to your server GTM container, making tracking backend events like CRM interactions, subscription updates, and purchases easier. With support for PHP, Node.js, iOS, and Android, you can integrate server-side tracking without relying on a web container. Setting up the SDK requires configuring the Data Client in sGTM and ensuring requests are sent correctly. Testing is essential, especially when debugging incoming requests. If you see a 400 error, check that the Data Client is installed and the request path is correct. For those managing server-side tracking, Stape SDKs provide a straightforward solution to handle events efficiently. Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # What is Conversions API? How does it work & most popular platforms Source: https://stape.io/blog/conversions-api-explained Learn what the Conversions API is, how it works, and which platforms support it. Improve data tracking, enhance ad performance, and optimize marketing efforts. Imagine Conversions API (CAPI) as a secure tunnel running directly between your business servers and major ad platforms like Facebook, Snapchat, and TikTok. While traditional tracking relies on the functionality of the browser prone to restrictions, CAPI takes a smarter route by sending data straight from your systems to the platforms. This means your conversion tracking stays rock-solid even when browser-based methods hit a wall. What is Conversions API? Conversions API (CAPI) is a server-to-server tracking method that allows businesses to send web and offline event data directly to advertising platforms like Facebook, Snapchat, LinkedIn, and others. It helps improve data accuracy, bypasses browser limitations like ad blockers and cookie restrictions, and enhances campaign performance by providing more reliable conversion tracking. In the modern digital world, ads are not created from scratch in a vacuum. They are born from a deep understanding of the target audience - their values, problems, dreams, and even the language they prefer. The better the marketer knows the audience - the more successful the ad is. That's the same place where the Conversions API steps into the game. It offers a way to share data that doesn't depend on cookies. In this article, we'll dive deep into understanding the subtleties of Conversions API and explore practical tips for putting it to work in your business. How does Conversions API work? Conversions API changes the game: instead of hoping browsers and cookies catch all your customer actions, it creates a bulletproof connection straight from your systems to ad platforms like Facebook, Snapchat, and LinkedIn. Think of it as building your own private highway for data - no more getting stuck in browser traffic or hitting ad blocker roadblocks. ![Conversions API operation scheme](https://cdn.stape.io/i/67c84003bfd4b736039867.png) By establishing a reliable, server-to-server link between your website, app, CRM, or offline sales system, Conversions API helps businesses track a wide range of events, including: Website events. When users add an item to their cart in an e-commerce store. App events. When a user completes a level in a mobile game. Offline conversions. When a customer makes an in-store purchase. Messaging events. When a user inquires about a product via Facebook Messenger or Instagram Direct. CRM events. When a sales rep logs a phone call with a prospect in a CRM. Here's how businesses are getting smarter with CAPI: it lets you see exactly how your ads are performing and tweak them based on real data, not guesswork. CAPI provides a more reliable way to track real user actions. Think of it as reducing noise in your data – instead of relying on incomplete signals, you get a clearer picture of actual conversions, not just clicks. Why does this matter? Because throwing money at ads without accurate tracking is like driving blindfolded. We'll walk you through the nuts and bolts of CAPI - from how it works in the real world to getting it up and running in your business. You'll see how companies are using it to cut through the noise and get their ads in front of the people who actually want to see them, all while playing by the privacy rules. Benefits of using Conversions API Using Conversions API offers multiple advantages for advertisers and businesses looking to improve the accuracy and efficiency of their digital marketing efforts. Unlike traditional pixel tracking, which relies on browser-based mechanisms, CAPI establishes a direct server-to-server connection, ensuring more reliable data transmission. Here are the key benefits of implementing the Conversions API: Improved data accuracy. Since CAPI sends conversion data directly from a business's server to advertising platforms, it significantly reduces data loss caused by browser restrictions, third-party cookie limitations, and ad blockers. This means marketers receive more complete and reliable conversion tracking, allowing them to make better-informed decisions. Better performance tracking. Accurately measuring conversions is crucial for optimizing marketing campaigns. With CAPI, advertisers can track actual user actions – such as purchases, sign-ups, or lead form submissions – without relying solely on pixel-based tracking, which can be blocked or distorted by various browser settings. This leads to more precise performance metrics and better budget allocation. For strategies on turning those leads into customers, see our [lead acquisition](https://stape.io/blog/lead-acquisition) guide. Privacy compliance and data security. As global privacy laws like GDPR and CCPA evolve, businesses must prioritize user data protection. CAPI ensures that conversion data is transmitted securely, giving companies more control over what information is shared while aligning with regulatory requirements. By using server-side tracking, businesses can continue to measure marketing effectiveness without compromising user privacy. Enhanced ad personalization. CAPI allows advertisers to send verified conversion data, improving audience targeting and retargeting efforts. Since the data is complete and accurate, ad platforms can use it to optimize ad delivery better, increase relevance, and improve return on ad spend (ROAS). It means businesses can reach higher-intent audiences and drive stronger engagement and conversions. Resilience against browser limitations. As browsers implement stricter privacy policies, traditional tracking methods face growing challenges. CAPI helps businesses maintain reliable conversion tracking by transmitting data directly from the server, reducing reliance on client-side methods. This ensures more consistent performance despite changes like Apple’s iOS privacy updates and ongoing discussions about third-party cookie alternatives. By integrating Conversions API, businesses can future-proof their marketing efforts, reduce data discrepancies, improve advertising efficiency, and stay compliant with evolving privacy regulations – all while gaining a clearer understanding of their campaign performance and customer behavior. Popular platforms supporting Conversions API After years of relying on pixel tracking, marketers are switching to server-side data feeds like CAPI – a game-changer that keeps conversion data flowing even when browsers get picky about cookies. The direct server connections mean you'll finally see the true impact of your ad spend, instead of wondering which sales actually came from your campaigns. Let’s explore some of the key platforms that support this technology: Platform | Conversion API Meta | https://stape.io/fb-capi-gateway[Meta Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api) (Facebook CAPI) Google | [Google Ads API](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) LinkedIn | [LinkedIn Conversions API](https://stape.io/blog/linkedin-conversion-api-tag-for-server-google-tag-manager) Twitter | [Twitter Conversions API](https://stape.io/blog/twitter-conversion-api-tag-for-sgtm) Snapchat | [Snapchat Conversions API](https://stape.io/blog/snapchat-capi) Pinterest | [Pinterest Conversions API](https://stape.io/blog/pinterest-conversion-api) Reddit | [Reddit Conversions API](https://stape.io/blog/reddit-conversion-api-tag-for-server-google-tag-manager) Amazon | [Amazon Conversions API](https://stape.io/blog/amazon-server-side-tracking-conversions-api) By integrating these Conversions APIs, businesses can collect complete and reliable conversion data, refine ad targeting, and stay compliant with evolving data privacy regulations, ultimately. How to implement Conversions API Implementing the Conversions API is a multi-step process that requires careful planning and attention to detail to ensure smooth integration. Below are the key steps involved in setting up the Conversions API: Choose your integration method. The first step is to decide how you'll integrate the Conversions API into your system. You can go with a direct API integration, which involves writing custom code to communicate with the API. Alternatively, you can use third-party tools like Google Tag Manager (GTM) or the Conversions API Gateway, which offer simplified integration options without requiring much custom development work. Depending on your technical resources and expertise, you'll need to select the best option for your business. Set up a server environment. Once you've chosen your integration method, the next step is to ensure your server environment is set up correctly. Your server must be configured to handle and transmit data to the relevant advertising platform securely. It involves ensuring that proper encryption and security measures are in place to protect user data during the transmission process. It's important to verify that your server can securely send conversion data to the platform without risking exposure to unauthorized access. Generate an API access token. To authenticate your server's connection to the advertising platform, you'll need to generate an API access token. This token is like a digital key that grants your server permission to communicate with the platform's API. The token is usually generated through the platform's developer console or dashboard, and you will need to follow the specific instructions provided by the platform to ensure the token is created and stored correctly. Define event parameters. Once you have access to the API, you will need to define which events you want to track. These events might include purchases, form submissions, leads, sign-ups, or other actions taken by users that you want to measure. Defining these events is a critical step because it determines which types of user interactions will be captured and sent to the platform for analysis. You'll need to clearly outline the event parameters in the API request to ensure accurate tracking. Send data to the API endpoint. Once you've mapped out what data you want to track, the next step is packaging it up in a way that the API can understand - think of it like speaking the API's language. You'll need to craft your HTTP requests just right, following the platform's specific recipe for success. Get the format wrong, and you might end up with missing or wonky data in your reports. Each platform (like Meta or Google) has their own playbook for this, so you'll want to keep their docs handy while building out your requests. Monitor and optimize. After the data is successfully transmitted, it's important to continuously monitor the conversion data flow to ensure everything works as expected. Regularly reviewing the data is essential for identifying any potential issues, such as incomplete tracking or discrepancies in the reported conversions. Optimization may involve fine-tuning the event parameters, adjusting the server settings, or even integrating additional tracking methods if necessary to improve the accuracy and completeness of the data. Over time, this ongoing monitoring and optimization process helps ensure that the Conversions API continues to provide valuable insights into your campaign performance. Case studies Case study 1: enhancing Facebook Ads performance with Conversions API A public doctoral-graduating (R2) university started to collaborate with the Agency New Path to improve its Facebook ad campaigns. Integrating the Facebook Conversions API helped reduce CPM from $7.80 to $3.81, leading to a 568% increase in leads and a 204.05% rise in completed registration. These results highlight the effectiveness of combining FB Pixel with CAPI, as shown in [a detailed comparison of Facebook Ads performance](https://stape.io/blog/facebook-conversion-api-vs-facebook-pixel). Case study 2: boosting e-commerce Conversions through server-side tracking Farmsave (an Italian online pharmaceutical retailer) started partnering with Tag Manager Italia using Stape's server-side tracking solutions to reduce data discrepancies. The percentage of inaccuracy was decreased from 20% to 6%. By improving the accuracy of data collection, the cross-selling strategy was able to be more effective, leading to [an 88% increase in conversion](https://stape.io/blog/case-study-on-increase-in-conversion-campaigns-for-farmasave) for Facebook ad campaigns. CAPI server-side tracking: real Stape users' problems solved One Stape user reported spikes in purchase events when using CAPI [server-side tracking with WooCommerce](https://stape.io/blog/woocommerce-server-side-tracking), which made Meta campaign results look overstated. In the [full thread](https://community.stape.io/t/server-side-purchase-over-over-tracking-but-browser-side-is-ok/2931), the issue was traced to a misconfigured deduplication setup that caused extra server-side events to be counted. After correcting the deduplication settings, the over-tracking stopped and purchase numbers returned to normal. FAQs What is the difference between pixel tracking and CAPI? Pixel tracking and Conversions API serve similar purposes but operate fundamentally differently. Pixel tracking relies on browser-based cookies to monitor user interactions on a website. When a user takes an action, such as making a purchase or filling out a form, the pixel sends this data back to the advertising platform via the browser. However, pixel tracking has become less reliable due to privacy regulations, browser restrictions, and the increasing use of ad blockers. On the other hand, CAPI transmits conversion data directly from a business's server to the advertising platform. This server-to-server connection improves data accuracy and ensures compliance with evolving privacy regulations, such as GDPR and Apple's iOS privacy updates. By bypassing browser-related limitations, CAPI allows for more complete and reliable tracking of customer interactions. For a deeper comparison of these two tracking methods, check out [Facebook Conversion API vs. Facebook Pixel](https://stape.io/blog/facebook-conversion-api-vs-facebook-pixel). Can I use multiple CAPI integrations on the same website? Yes, you can absolutely feed your conversion data to all the major ad platforms at once - Facebook, Google, TikTok, LinkedIn, the works. Just hook up CAPI to each one and you'll get much cleaner data about which ads are actually driving sales. A word of caution though - you'll want to set it up carefully to avoid counting the same conversion multiple times. In my experience, the real magic happens when you run CAPI alongside your existing tracking. It's like suddenly getting X-ray vision into how people zigzag between different platforms before finally hitting that buy button. What is the Conversions API Gateway? Conversions API Gateway is a centralized system designed to simplify the process of setting up and managing multiple CAPI integrations. Instead of manually configuring separate API connections for each advertising platform, businesses can [use API Gateway](https://stape.io/fb-capi-gateway) to handle data collection and transmission efficiently. It reduces the complexity of implementation and improves data consistency across different marketing channels. Conclusion The shift to Conversions API represents a critical turning point in digital advertising. While traditional pixel tracking served us well in the past, today's privacy-focused landscape demands more robust solutions. The data shows that businesses embracing server-side tracking through CAPI are gaining a significant edge in campaign optimization and customer insights. For online retailers, software companies, and digital marketers, this technology has moved beyond being merely advantageous – it's now fundamental to maintaining market position. By investing in CAPI infrastructure today, companies aren't just solving current tracking challenges; they're building a foundation for sustainable marketing success in an increasingly privacy-conscious digital world. The evidence is clear: those who adapt to this new paradigm will be best positioned to thrive in tomorrow's marketing landscape. --- # How Eyk integrated Stape to give eCommerce teams control over attribution data Source: https://stape.io/blog/eyk-integrated-server-side-tracking-from-stape Discover how Eyk collaborated with Stape’s team to reach the best server-side tracking solution. [Eyk](https://www.eykdata.com/), a [partner of Stape](https://stape.io/partner/eyk), is a leading e-commerce analytics platform that empowers teams to increase [marketing ROI](https://stape.io/blog/increase-marketing-roi) through insights into attribution, performance and segmentation. Their fully automated and no-code platform empowers e-commerce marketing teams to increase marketing ROI, align priorities across the team and report on performance in an easy to use interface. You can pinpoint correct revenue attribution, monitor your most impactful KPI’s, segment your customers on buying behaviour and more, all while keeping full control over your business data. Read our [KPIs for eCommerce](https://stape.io/blog/ecommerce-kpis) guide to see which metrics matter most for attribution and performance tracking. Problem: unreliable third-party data and high setup cost As correct revenue attribution is a key challenge that users want to solve, the Eyk team embarked on providing them with attribution models they can control at an early stage of the platform development. However, as Eyk was relying on Google Analytics data as input for their models, they quickly found out that it came with major downsides in data completeness and reliability. Customer acquisition and retention/upsell are constantly under pressure as [third-party cookies are being pushed out](https://stape.io/blog/third-party-cookies), the marketing mix complexity increases, demand for personalised touchpoints is strong and competition at an all-time high. E-commerce marketing teams need a centralized, reliable interface they like to work with to align on priorities quickly, dive deep into performance and opportunities and make marketing decisions supported by data. And as everyone knows: data is everything in e-commerce. It’s what the business runs on as in-human contact with customers is relatively scarce. Yet, most current tools available to e-commerce marketing teams run on taking control over their business data, storing it in a black-box and controlling data models without transparency. E-commerce entrepreneurs need to find a way to take control over their data, how it’s created, where it’s stored and how it’s modeled. But this often means expensive and technically complex projects that have a high barrier to entry. After Google Bigquery and Google Tag Manager, Stape felt like the right next piece of architecture to integrate for Eyk users. Solution: integration of Stape hosting into Eyk platform ![Solution: integration of Stape hosting into Eyk platform](https://cdn.stape.io/i/67b59fb01aade293840822.png) In the search for the most reliable, future proof source of attribution input data that the customers can control, Eyk’s team ended on server-side tracking as the way forward. “Beyond being globally recognized as the leading server-side tracking solution that runs in Google Tag Manager, the high performing architecture and performance enhancing features combined with a highly responsive and clearly passionate team that shared our vision for giving data control back to entrepreneurs and their teams, made us decide that Stape was the right tech partner for us.” — Alain Odijk, Co-Founder of Eyk Just in a couple of weeks, the Stape and Eyk teams collaborated to integrate server-side tracking infrastructure into the Eyk platform. ![integration of Stape hosting into Eyk platform](https://cdn.stape.io/i/67b59fee020a7905488459.png) ![integration of Stape hosting into Eyk platform](https://cdn.stape.io/i/67bca52230cbe237058919.png) ![integration of Stape hosting into Eyk platform](https://cdn.stape.io/i/67bca5601b8e4090740083.png) Results Now, Eyk tracking does not run through an obscure Pixel, that’s placed in your website that you can not run independently. Instead Eyk tracking runs on best-in-class tooling and architecture in the form of Google Tag Manager and Stape. That gives entrepreneurs a feeling of power that they deserve. “Clients love that Eyk runs on server-side tracking powered by Stape. On one hand, it strengthens Eyk’s vision of being an open platform that combines the best tracking and analytics components, and on the other hand, it supports Eyk’s mission to give data control back to entrepreneurs and their teams.” — Alain Odijk, Co-Founder of Eyk The integration process was seamless, with a well-functioning API and responsive communication. Stape and Eyk teams ensured a streamlined and automated onboarding experience for Eyk users. Conclusion For Stape users who run an e-commerce business, Eyk might be the perfect next step. Automatically integrate your server-side tracking setup with Google Bigquery and get ready-made insights like tracking performance, revenue attribution and customer segmentation in an easy to use interface for your team. Stop relying on third-party marketing platforms to report on your performance, take back control over your data and your business with Stape and Eyk! Interested in server-side tracking? Click on Try for free and complete the registration to start using Stape. --- # Targeted advertising: what is and how to improve? Source: https://stape.io/blog/improve-targeted-advertising This guide explains effective strategies for identifying the right audience, optimizing your ads, and achieving better results. Targeted advertising is a marketing strategy that delivers specific advertisements to particular individuals or groups based on their demographics, behaviors, interests, and other data-driven characteristics. In this article, you will find out the essentials of targeted advertising, from core concepts and key mechanics to the most effective targeted advertising strategies of 2026, along with practical guidance to optimize your ad campaigns. What is targeted advertising? Targeted advertising refers to the practice of reaching specific consumers with tailored promotional content. This approach relies on studying customer traits, shopping patterns, and online activity to determine which ads each person sees. Rather than showing everyone the same message, companies match their promotions to people most likely to be interested in their products. The process combines market research with digital insights to create more relevant advertising experiences. ![What is Targeted Advertising](https://cdn.stape.io/i/67bf392a64b42531198584.png) Ever find yourself scrolling through social media when suddenly an ad pops up for those hiking boots you were eyeing last week? Or maybe you've noticed ads for local restaurants right when you're getting hungry? That's not a coincidence – welcome to the fascinating world of targeted advertising! Old-school mass advertising feels like shouting into the void in our hyper-connected world. Innovative businesses have moved away from the "spray and pray" approach of blasting generic ads to everyone. Instead, they're getting strategic – using customer data to craft messages that speak directly to the people who matter most. When you target the right person with the right message at just the right moment, everything changes. Sales increase, customers feel understood, and marketing budgets work harder than ever. Think of targeted advertising like a smart party planner. Instead of inviting everyone in town to your event, they focus on people who would actually enjoy it. Businesses have gotten more thoughtful about their targeted advertising strategy – instead of throwing ads at everyone, they carefully pick out the people who want what they're selling. Think of how different this is from the old days when companies would just put up billboards or TV commercials and cross their fingers that the right people would see them. Now, people get ads that feel like they were made just for them. It's pretty remarkable how marketing strategy has changed to become so personal and precise. How do targeted ads work? Targeted advertising relies on data collection and segmentation to tailor ads for specific users. Here’s a breakdown of how it works: 1. Data collection. When you browse the web, shop online, or check social media, you leave behind digital footprints. Advertisers follow these trails, piecing together bits of information about what you like, where you go, and what you buy. They look at everything – the websites you visit, the things you search for, your shopping habits, the posts you interact with, and even where you tend to hang out. It's like they're putting together a puzzle, with each piece helping them understand who you are and what might catch your eye. Instead of broadcasting generic advertisements to a broad audience, businesses use data-driven insights to deliver ads relevant to individual users' interests, behaviors, and preferences. This is the core of targeted advertising. 2. Audience segmentation. After gathering all that information, marketers sort people into different groups – kind of like organizing books on shelves. Maybe there's a group of young parents looking for baby gear, another of fitness enthusiasts hunting for workout equipment, or tech-savvy folks eager to try the latest gadgets. By understanding these different groups, companies can craft messages that really speak to each one. It beats throwing the same ad at everyone and hoping something sticks. Instead, they can show car ads to people shopping for vehicles or promote running shoes to marathon trainers. It’s just smarter marketing that tends to work better because people see stuff they care about. This is all part of the [effectiveness of targeted advertising](https://stape.io/blog/measure-marketing-effectiveness-and-impact#definition-of-digital-marketing-effectiveness). 3. Ad customization. Once marketers know who they're talking to, they can get creative with their ads. Instead of blasting out the same message to everyone, they craft different versions that click with each group. Think about it – a college student and a retiree probably want to hear different things about the same product. These days, people are bombarded with so many ads that they'll tune out anything that doesn't feel relevant to them. But when an ad speaks directly to their interests or needs, they're much more likely to pay attention and maybe even buy something. Smart companies use everything they've learned about their different customer groups to make ads that feel less like advertising and more like helpful suggestions. Audience-targeted advertising approach is why targeted advertising works so well. 4. Ad placement. Putting ads in the right place and right time is just as important as making them. It’s like knowing which fishing spots have the most fish – you want your ads to show where your potential customers hang out. Some businesses find their crowd scrolling through Facebook, while others connect better with professionals on LinkedIn. Online shops might see better results showing their products on Instagram, where people love browsing through photos. These days, companies can track where their target audience spends time online, what times they’re most active, and which websites they visit regularly. They use this info to pick the perfect spots for their ads. There's even smart technology that automatically places ads in real-time, like having a super-efficient assistant who knows exactly when and where to put each ad for the best results. This precision is one of the most valuable benefits of targeted advertising. 5. Performance tracking. Smart marketers keep a close eye on how well their ads are doing – they want to know if people are clicking, buying, and whether they're getting their money’s worth. Think of it like a chef tasting soup while cooking – they’re constantly checking what works and needs tweaking. They use fancy tools to test different ads versions, like running little experiments to see which pictures, words, or offers get the best response. The beauty of targeted online advertising is that you can see what’s happening in real-time and make quick changes. Maybe an ad isn’t reaching the right people, or perhaps it’s not grabbing attention like it should. By looking at these numbers and making thoughtful adjustments, businesses can ensure they’re not wasting money and that their message is getting through to the people who matter. This ongoing process of optimization is a major advantage of targeted advertising. What types of targeted advertising are the most popular in 2026? As digital marketing continues to evolve, these targeted digital advertising methods remain dominant in 2026: Behavioral targeting. Based on users’ online activities, such as browsing history, search queries, and shopping behavior. Geotargeting (location-based advertising). Uses GPS and IP tracking to display ads based on a user’s location. For example, showing restaurant ads to users near a specific area. In 2026, geotargeting evolves with digital out‑of‑home (DOOH) and connected TV (CTV) targeting tied to location cues. Contextual targeting. Ads are displayed based on the content of a webpage. For example, an ad for hiking boots appearing on an outdoor adventure blog. Demographic targeting. Ads are tailored based on age, gender, income, education level, and marital status. Interest-based targeting. Uses data from users’ interactions with content, such as social media likes and follows, to deliver relevant ads. You can learn more about [Spotify advertising](https://stape.io/blog/spotify-ads-pros-and-cons-cost), which takes interest-based targeting further using listening behavior and playlist data. Retargeting (remarketing). Ads are shown to users who have previously interacted with a brand but didn’t convert, reminding them to complete their purchase. Psychographic targeting. Focuses on lifestyle, values, and personality traits to create highly personalized targeted advertising campaigns. AI-driven predictive targeting. Uses artificial intelligence to predict what users may be interested in based on their online behavior patterns. Zero‑party data targeting. Ads use data that users intentionally share (e.g., preferences from quizzes or polls) for highly relevant ad personalization in a privacy‑compliant way. Identity graph and clean room‑supported targeting. Combines first‑party identifiers securely across platforms to enable precise targeting and measurement without exposing raw personal data. Cross‑device and omnichannel targeting. Uses unified identity solutions to ensure consistent messaging across devices and channels (mobile, desktop, app, email) tied to the same user or audience profile. ![types of targeted advertising](https://cdn.stape.io/i/69fdba5388496972438245.png) Benefits of targeted advertising Higher conversion rates When you show ads to people who are already interested in what you're selling, you're much more likely to turn those views into actual sales. It's like opening an ice cream shop next to a beach instead of in the middle of nowhere – you're reaching people when and where they're most likely to buy, especially with targeted advertising on social media platforms where users are highly engaged. By the way, if you're looking to make this work even better, you might want to read more about Conversions API as a tool that helps you keep better track of how people interact with your ads and ensure you're not missing any important data. Cost-effective This focused approach is also easier on the wallet. Instead of spreading your message far and wide and hoping it sticks, you're zeroing in on the folks who might want what you're offering. It's like fishing with a net in a spot where you know the fish are, rather than casting blindly across the whole ocean. Social media ads allow you to target specific audiences effectively, maximizing your ROI. Better user experience People also appreciate seeing ads that match their interests. If someone's been researching camping gear, they'd probably rather see ads for tents and hiking boots than random promotions for luxury cruises. It makes the whole online experience feel more personal and helpful, particularly when served through targeted advertising on social media, where users expect tailored content. Improved brand awareness When brands keep showing up in the right places with the right message, people start to remember them. It's like becoming a familiar face in the neighborhood – when someone needs what you offer, they'll think of you first because they've seen you around in a good way. Targeted advertising on social media platforms, in particular, are key for this kind of visibility. More precise data-driven decisions Targeted advertising provides valuable insights that help businesses refine their marketing strategies. Analytics platforms offer real-time feedback, enabling brands to adjust their approach for even better results. Measure and analyze targeted advertising performance There are several ways marketers can tell if their ads are working. First, they look at how many people click on their ads - it's like checking if people are stopping to read a billboard you put up. When many people click, it usually means the ad caught their eye and seemed worth checking out. But clicks aren't everything. What really matters is how many of those clicks turn into something valuable - like someone buying a product or signing up for a service. It's similar to a store counting not just how many people walk in, but how many walk out with shopping bags. Money talks, too. Marketers carefully watch how much cash they spend on ads compared to how much they make back, assessing the return on investment. If they're spending $100 on ads but making $500 in sales, that's a pretty good deal. They also pay attention to how people interact with their ads – are they liking them, sharing them, or leaving comments? This shows whether people actually care about what they're seeing, providing valuable insights to improve their marketing efforts. By the way, understanding [Profit on Ad Spend (POAS)](https://stape.io/blog/profit-on-ad-spend) is crucial for marketers looking to optimize their ad performance. It goes beyond basic ROI by factoring in actual profit rather than just revenue. Another sign is if people remain interested on the website after clicking an ad. If someone clicks but immediately hits the back button on their web browser, something's probably off – maybe the website doesn't match what the ad promised. And for the big picture, companies track how much business they get from each customer over time. Some might make small purchases regularly, while others might make one big buy – both are valuable in different ways. How to improve targeted advertising 1. Enhance audience segmentation. Use advanced data analytics to identify specific customer behaviors, preferences, and demographics, allowing for more precise and effective targeting in advertising. 2. Leverage AI and machine learning. Test the automated ad optimization for better performance. 3. A/B testing. Experiment with different ad creatives, copy, and formats to find the best-performing combinations. 4. Optimize ad placement. Choose platforms where your audience is most active. Choosing the right platforms is crucial for reaching your target audience effectively. Whether it's Facebook, Instagram, LinkedIn, or Google Ads, placing your ads where your audience is most active can significantly impact performance. Learn more about optimizing your Google Ads strategy inhttps://stape.io/blog/improve-google-ads-performancethis [guide on improving Google ads performance](https://stape.io/blog/improve-google-ads-performance). 5. Personalize ad content. Tailor ad messages to resonate with specific audience segments. 6. Utilize cookieless tracking solutions. As third-party cookies phase out, invest in first-party data collection and privacy-friendly tracking methods to maintain effective retargeting strategies. For example, you can follow our step-by-step guide on [how to set up cookieless tracking in GA4](https://stape.io/blog/cookieless-tracking-ga4), ensuring your campaigns continue to capture accurate insights while respecting user privacy. 7. Monitor and adjust in real-time. Continuously analyze performance data and tweak ad campaigns accordingly. Therefore, integrating [data enrichment](https://stape.io/blog/marketing-data-enrichment) with server-side tracking enhances your ability to track and analyze data. Targeted advertising examples Facebook targeted advertising. Businesses use Facebook online ad targeting to reach users based on demographics, interests, and behaviors, which helps [increase lead generation](https://stape.io/blog/facebook-lead-ads)by delivering ads to the most relevant audience. Instagram ad targeting. Ads appear in Instagram feeds and stories based on user engagement. LinkedIn targeted ads. Used mainly by B2B marketers to target professionals based on job title, industry, and company size. Google targeted ads. Ads appear in Google search results, websites, and apps based on user search queries, interests, and online behavior. E-commerce retargeting ads. Online retailers show personalized product recommendations based on past interactions. FAQ How do privacy laws impact targeted ads? [Privacy regulations](https://stape.io/blog/how-global-data-privacy-laws-affect-user-tracking-strategies) like the General Data Protection Regulation (GDPR) and the California Consumer Privacy Act (CCPA) require advertisers to obtain user consent before collecting and using personal data. These laws encourage more ethical data collection practices, respect for data privacy, and transparency in targeted advertising. What is cookieless targeting? [Cookieless targeting](https://stape.io/blog/cookieless-targeting-how-does-it-work) is a method of delivering personalized ads without relying on third-party cookies. Instead, it uses first-party data, contextual targeting, and advanced analytics to maintain ad relevance while respecting user privacy and ensuring a more secure advertising experience. Why is targeted advertising good? Targeted advertising helps to attract the attention of target users and has several key advantages that increase the effectiveness of marketing campaigns: [Fine-tune the target audience](https://stape.io/blog/cookieless-retargeting-how-to-retarget-in-a-cookieless-world). Targeted advertising allows reaching precisely those users who may be interested in a product or service by defining specific criteria for displaying ads. Businesses can target ads to users based on network behavior, interests, geography, and demographics. [Analytics and optimization of results](https://stape.io/blog/how-to-improve-web-analytics-data-quality-challenges-and-solutions). Social networks provide access to powerful tools for analyzing the effectiveness of advertising campaigns. You can get data on the level of involvement, conversion, and other important indicators. Thanks to the dynamism of targeted advertising, marketers can adjust real-time campaign settings, test new ads, and optimize strategy to improve results. Promotion without the need for a website. For small businesses that are not yet ready to develop their own website, social networks provide an excellent opportunity to run ads without additional costs for creating a site. The brand's official page on social networks may be sufficient to promote goods or services effectively. Economic benefits. Although the cost of advertising on the Internet and social networks is growing, targeted advertising remains affordable. You can start an advertising campaign even with a minimum budget of only $5 per day. It attracts a broad audience for less money than traditional advertising channels, while targeted advertising provides high efficiency. Wide audience coverage. Social networks continue to attract more and more active users who regularly visit their profiles to communicate and share content. Targeted advertising allows you to effectively interact with a large number of potential customers, allowing businesses to achieve significantly. How effective is targeted advertising? Targeted advertising is effective because it allows businesses to accurately cover the target audience and effectively use the advertising budget. Accuracy of conversion tracking plays a key role in its success. [For example](https://stape.io/blog/roi-assist-achieves-a-thirty-three-percent-increase-in-facebook-ads-tracking-accuracy-with-stape-server-side-tracking), ROI Assist faced the problem of losing 40% of purchase data from Facebook Ads Manager and 30% from Google Ads, making optimizing campaigns difficult. The introduction of server-based tracking from Stape has made it possible to significantly improve data collection using server-based Google Tag Manager, Power-ups, and saving click identifiers. As a result, tracking accuracy in Facebook Ads increased by 33.65% (to 93.65%), and in Google Ads and GA4 reached 95%. It helped to provide more accurate analytics, improved budget management, and increased the effectiveness of advertising campaigns. With server-based tracking from Stape, companies can minimize data loss and make informed marketing decisions. Are there any reliable paid advertising tools for targeting specific interests? Yes, several platforms offer strong interest-based targeting capabilities: Facebook Ads Manager remains one of the most detailed options, allowing advertisers to target users by hobbies, behaviors, and lifestyle categories. Google Ads covers interest targeting through affinity and in-market audiences, reaching potential customers at different stages of the buying journey. For B2B marketers, LinkedIn Ads stands out for targeting based on professional interests and industry. Pinterest and TikTok Ads are also worth considering for younger or more visually driven audiences. --- # Marketing attribution models: which one to choose in 2026 Source: https://stape.io/blog/marketing-attribution-models In this post, you will learn how choosing the right marketing attribution model in 2026 can help you optimize cross-channel attribution for better ROI. You picked an attribution model, set up tracking, and started collecting data. Now comes the part that actually shapes budget decisions: understanding what the numbers mean and which model is telling you the truth. Attribution isn't a one-time setup. Customer journeys span more channels than ever, privacy rules keep changing what you can measure, and the model you picked six months ago may no longer reflect how your customers actually convert. Getting this right means knowing what each model shows you, where it falls short, and when it's worth switching. This guide walks you through the main digital marketing attribution models, how to choose between them, and how to put your setup to work in 2026. What is a marketing attribution model? [Marketing attribution](https://stape.io/blog/attribution-tracking) relies on attribution models to assign value to customer interactions. Simply put, an attribution model is a set of rules that determines how credit for a conversion is distributed across the various touchpoints or channels involved in the customer journey. Here’s a more full marketing attribution model definition: Marketing attribution model is a method to decide which interactions in a customer’s journey deserve credit for a sale or conversion. It helps businesses understand which touchpoints - such as ads, website visits, or social media clicks - contribute the most. For instance, the Last Interaction model gives full credit to the last touchpoint before the conversion, assuming it was the deciding factor in the purchase. A marketing channel attribution model is vital for understanding which customer interactions led to sales and how they did it. So, when choosing an attribution model for your business, one thing is sure - it’s essential to choose wisely. Identifying the best marketing attribution model can lead to better decision-making and more effective marketing strategies. And the choice is vast. Let’s go through the types of digital attribution models to understand how they work and when/where to use them to drive the best marketing results. Types of marketing attribution models In GA4 Attribution reports, there are 3 available attribution models: data-driven attribution, paid and organic last click, and Google paid channels last click. Used till 2023, first click, linear, time decay, and position-based models are now deprecated in Google tools. Google replaced them with data-driven attribution for conversion actions that still used them. Look at the infographic below to discover the attribution models, how they distribute credit, and where they're best used. ![Attribution models](https://cdn.stape.io/i/699327fd874ef340927089.png) Now, let's dive into each of the attribution models. Note: [setting up event tracking in GA4](https://stape.io/blog/what-is-event-tracking-in-ga4-a-guide-to-boosting-your-data-insights) correctly is crucial for any marketing attribution model. Last interaction attribution Instead of giving credit to the first point of contact, the last interaction attribution model assigns all the credit to the final touchpoint before the user converts. This model assumes that the last interaction is the most critical factor in driving the user to take action. Marketers often use last-click attribution to identify which channels directly lead to conversions. While this model helps measure the [effectiveness of closing strategies](https://stape.io/blog/measure-marketing-effectiveness-and-impact#definition-of-digital-marketing-effectiveness), it doesn’t account for earlier interactions that may have played a role in influencing the user’s decision. Here’s how last-click attribution works in practice for marketing campaign attribution: Imagine a user planning a vacation and seeing a banner ad for a hotel booking website while reading a travel blog. They click on it, browse briefly, but don’t book. A week later, they see an Instagram ad from the same company, click on it, and finally book their trip. In the last-click attribution model, all the credit goes to the Instagram ad, as it was the final touchpoint that directly led to the booking. Last non-direct click This digital marketing attribution approach assigns all credit for a conversion to the last touchpoint that wasn’t a direct visit. Direct visits (such as when a user types the URL directly into the browser) are excluded from the credit, even if they happen last in the conversion path. This model identifies the last interaction that contributed to the conversion while ignoring any direct traffic that might have occurred right before it. This model works well when marketers want to focus on the last significant marketing interaction that led to conversion while filtering out the influence of direct traffic. For example, if a user first comes across a travel booking site through a banner ad, later visits the website directly, and then makes a booking after clicking on a Google search ad, the last non-direct click attribution model would give all the credit to the Google search ad, ignoring the direct visit before the conversion. Custom attribution model A custom attribution model is a flexible approach where marketers set up rules for how the credit is given to different touchpoints in a customer’s journey. Unlike standard models like first-click or last-click, it can be adjusted to fit the unique needs of a business. Marketers use this model when they want to [match attribution](https://stape.io/blog/how-to-improve-event-match-quality-facebook) to their specific goals or the key interactions that lead to conversions. For example, a travel company might give less credit to a banner ad that raises awareness while giving more credit to an Instagram ad if it leads directly to a booking. This approach helps businesses track their marketing efforts in a way that aligns with their goals. What is cross-channel attribution? Each of the marketing attribution models we’ve just discussed focuses on different stages or touchpoints in the customer journey. And, often, they do it within a single channel. The modern marketing environment is quite dynamic, and a customer can interact with a brand through multiple touchpoints during one customer journey, both online and offline. Here’s why we need to talk about multi-channel attribution modeling. This broader approach helps marketers evaluate how different marketing channels work together as the customer journey progresses. In GA4, cross-channel attribution uses the currently supported models: data-driven attribution, paid and organic last click, and Google paid channels last click. Still, it applies them to various platforms, offering marketers a clearer understanding of how each interaction contributes to the final conversion. Which attribution model to choose? Understanding cross-channel attribution gives marketers a clearer picture of how different touchpoints work together, but the question remains: how to choose an attribution model that fits your business? With so many options available, choosing the right approach depends on your goals, customer journey, and the advertising attribution strategy you want to implement. Let’s break down how to decide which model will give you the most accurate insights and drive better marketing decisions. Unfortunately, or luckily, there’s no one-size-fits-all attribution model. The best choice depends on many factors that a marketer needs to consider: Marketing goals. This is the main factor behind the choice of an attribution model. The choice will differ based on your focus goal: brand awareness, engagement, conversions, etc. Length of the sales cycle. Prioritizing early or late touchpoints often depends on the length of the sales cycle. The complexity of the customer journey. The more touchpoints the customer journey has, the more effective an attribution model that distributes credit is required. Number of marketing channels. A broad attribution approach is needed if many channels are involved in the customer journey. Budget. Choosing a model that reflects the impact of each touchpoint helps a business optimize its marketing spending and focus on channels and efforts that perform best. Data availability. Advanced attribution models need reliable data and strong analytics tools to be effective. Before choosing a model, consider whether you have the data and the tracking capabilities. Selecting the right attribution model requires carefully evaluating your business goals, customer journey, resources, and data. This lets you see which approach aligns with your marketing strategy and helps you optimize your marketing performance. How to implement an attribution model You must take several steps to implement an attribution model for your marketing campaign. 1. Define your business goals. You need to clarify your objectives before you pick an attribution model. What are the KPIs you are looking for? Is it brand awareness, conversions, customer lifetime value, or something else? 2. Collect and organize your data. Clean and structured data will help you get the most out of your chosen attribution modeling marketing setup. Gather and structure data you get from a website or app analytics, ad platforms, CRM, marketing automation tools, and custom tracking (like [server-side tracking](https://stape.io/)). You can use the [ROAS calculator](https://stape.io/roas-calculator) to estimate your potential CPA with server-side tracking. 3. Pick an attribution model. It’s time to select an attribution model that fits your needs. 4. Set tracking and data integration: Set up UTM parameters (add unique tags to your URLs to track where your website traffic is coming from) to track campaign source details. Integrate tracking pixels. Set up event-based tracking. Connect CRM, ad accounts, and analytics platforms to bring all your data into one place. This integration helps unify information from: CRM apps, advertising accounts, and analytics tools. 5. Analyze your data and determine how much credit each marketing channel deserves: Experiment with different attribution models to see how they impact results. Use reporting tools (like Looker Studio) to get a deeper insight into the data. 6. Optimize your attribution model(s) based on insights you get: After discovering what marketing channels work best, adjust your budget accordingly. If it makes sense, try different attribution models to see if they would drive better results. Study how customers interact with different campaigns to improve your campaigns. 7. Automate and scale: Automate data collection using APIs to pull data from various sources, such as CRMs, Google Analytics, and ad platforms (for example, Facebook, TikTok, or Google Ads). Continuously test and refine your attribution model. Why should I care about marketing attribution in 2026? You need marketing attribution models to determine which parts of your marketing efforts bring in customers. Marketing attribution is more important than ever in 2026, as customer acquisition costs are rising. Ads are getting more and more expensive due to the increased competition. In the saturated digitalized environment, you are no longer unique with any service or product. Knowing [how to track your ads](https://stape.io/blog/ad-tracking) precisely can help you allocate the budget smarter. [Privacy rules change](https://stape.io/blog/how-global-data-privacy-laws-affect-user-tracking-strategies), data regulations get stricter, and traditional tracking experiences many hardships because of these factors. A strong attribution model can help you make data-driven decisions. Moreover, without attribution, you won’t see the complete picture of your customers’ interaction with your brand. The road is long and curvy: social media, display ads, email, search ads, influencer marketing, and more. Customers move through various touchpoints before converting, and a strong attribution model helps you identify which ones make a difference. In 2026, marketing attribution is essential for smart spending. With rising customer acquisition costs and stricter privacy regulations, relying on external tools alone isn’t enough. A solid attribution model lets you make data-driven decisions, improve your ROI, and ensure your marketing budget goes further. Understanding the customer journey allows you to optimize your efforts and stay competitive in a crowded marketplace. Top 10 reasons why marketing attribution matters in 2026 Want to make smarter marketing decisions? Attribution helps you see what’s working, optimize your budget, and drive better results. Here are the top 10 reasons it’s a must in 2026: Rising costs. Ad spend keeps climbing. Attribution helps you spend not just more, but more precisely. When you know what performs, every dollar works harder. Tougher competition. Most markets are crowded. Attribution shows you what's working and what's just adding noise. That clarity helps you focus on what actually moves the needle. Privacy rules. Third-party cookies are going away. GDPR, CCPA, and similar regulations limit external tracking. A first-party attribution strategy lets you rely on data you own. Customer journeys. Customers rarely convert on the first touchpoint. They scroll, read, compare, and click across multiple channels before making a purchase. Attribution helps to track the full path, not just the last step. Investment optimization. Attribution tells you which channels drive revenue and which ones only look good in reports. You can shift the budget toward high performers and pull back from those that aren't delivering. Campaign performance. Marketing campaign attribution lets you measure individual campaign impact more accurately, so you can act on what drives results rather than guessing. Market changes. Consumer behavior shifts quickly. Attribution gives you data to respond to those changes in near real-time, rather than waiting for end-of-quarter reports. ROI maximization. Advanced attribution models help you focus on what brings the best return. Better attribution tends to mean better ROI over time. Personalized marketing. Understanding which touchpoints resonate with which audience segments lets you build campaigns that feel relevant. Attribution provides the data layer that makes personalization at scale possible. Competitive advantage. Businesses that invest in marketing attribution modeling make better decisions faster. In tight-margin markets, that advantage compounds over time. ![9 reasons why](https://cdn.stape.io/i/694abdb53409b266364549.png) FAQs What is the best attribution model for small businesses? For small businesses, the best attribution model is data-driven attribution. It is the recommended model in GA4 and the default for most Google Ads conversion actions. It assigns credit across the real customer path, not only to one touchpoint. If your team needs strict last-touch reporting, use paid and organic last click in GA4 or last click in Google Ads. How does AI improve marketing attribution? AI improves channel attribution by generating synthetic data based on real interactions, compensating for missing conversions through machine learning algorithms. Its key advantage lies in quickly processing vast amounts of data, providing real-time insights, predicting behavior, and optimizing ad spend.Why AI is useful: It works fast It handles large datasets easily It analyzes data by comparing patterns AI is helpful, but it's always good to double-check its results. Can I use multiple attribution models simultaneously? Yes. You can compare multiple models, but use only models that are currently supported in your platform. In GA4, compare data-driven attribution, paid and organic last click, and Google paid channels last click. In Google Ads, use data-driven or last click. Using multiple models that fit your needs can help you get better results and understand how your marketing and advertising are doing and how to polish them further. --- # How to set up GoHighLevel tag using server GTM Source: https://stape.io/blog/gohighlevel-gtm-tag-setup Check a convenient way to set up GoHighLevel tracking using the server GTM tag developed by Stape. Read a guide on how you can start creating new contacts in no time. In this article, we will guide you through setting up GoHighLevel tracking using server GTM. To configure the GoHighLevel tag, you will need to: Set up a server GTM container. Configure data sending from the web to the server GTM container (with the help of Google Analytics 4 or Data Tag/Data Client. Add the GoHighLevel tag from the GTM template gallery. Configure the tag. Now, you can set up the creation of new contacts, but you will be able to configure event tracking in the future. Add the trigger to a tag. Test the setup. Keep on reading for more details on each step. What is the GoHighLevel tag for server GTM? The GoHighLevel tag enables CRM integration with Google Tag Manager. With its help, you can create new contacts, and in the future, you will also be able to track events. The benefits of GoHighLevel tag As the GoHighLevel tag works on the server GTM container, it provides a lot of benefits, among which are: Accurate data. Track the data that is less affected by browser restrictions and [ad blockers](https://stape.io/blog/bypass-adblock-detection). Extended cookie lifetime. It provides more precise data collected as the data isn't impacted by restrictions such as [ITP](https://stape.io/blog/safari-itp). Improved website page load time. The tags will be loaded on the server instead of the visitor's browsers. See the complete list of [server-side tracking benefits](https://stape.io/blog/benefits-server-side-tagging) in our other article. What you need to set up the GoHighLevel tag Before configuring the GoHighLevel tag, you will need to: Have a [server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). Send data flow from the web to the server GTM container. You can use Google Analytics 4 or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client) to do it. How to set up the GoHighLevel tag Please note The tag supports GoHighLevel API v2; API v1 is no longer maintained. If you configured the tag before its update, be sure that after updating the template, you change all tags created using the template, and add the Private Integration Token and Location ID to them. 1. Add [GoHighLevel tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/gohighlevel-tag) from the template gallery. To do it, go to your server GTM container → Templates → in the "Tag Templates" section, click "Search Gallery" → find "GoHighLevel" → click "Add to workspace". ![Add GoHightLevel template](https://cdn.stape.io/i/69244c0ba4642657752720.png) 2. Create a new tag. Go to the section "Tags" → click "New" → choose as the tag type "GoHighLevel". ![Choose as tag type GoHighLevel tag](https://cdn.stape.io/i/69244c379e25b595986438.png) 3. Configure the tag. 3.1 Private Integration Token - an authorization token that allows the systems to call the GoHighLevel API (v2.0) without going through the full OAuth2 flow. Generate a Private Integration Token with the contacts.write or Edit Contacts scope, then add it to the tag. Note: The token must be created at the Sub-Account level, not the Agency level. For detailed steps on creating a token, refer to the [GoHighLevel documentation](https://marketplace.gohighlevel.com/docs/Authorization/PrivateIntegrationsToken/#how-do-i-manage-private-integrations) or watch a [quick guide from the GoHighLevel team](https://www.youtube.com/watch?v=ssDO6tz6b1w). 3.2 Location ID (Sub-Account ID) - is a unique identifier assigned to each sub-account within your agency account. It allows us to identify your client’s account accurately. The Location ID can be found in your Business Profile. For the detailed instructions, please refer to [GoHighLevel documentation](https://help.gohighlevel.com/support/solutions/articles/48001204848-how-do-i-find-my-client-s-location-id-). 3.3 Contact - set up creating new contacts in this section. Phone number or email are required for creating a contact but you can also collect other data such as first- and last-name, address, and other parameters listed in [GoHighLevel documentation](https://public-api.gohighlevel.com/#5fbc2b83-603d-4974-81c3-7d8658a79594). Here is an example of a configured tag: ![Example of configured GoHighLevel tag](https://cdn.stape.io/i/69244cc09a08e890337253.png) 4. Add a trigger for a tag. 5. Test the tag configuration. Trigger the event in both web and server GTM containers. If you face any problems with tag configuration, see the detailed guide on [debugging and monitoring](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration). To sum up Setting up the GoHighLevel tag in server GTM provides many benefits, including precise data tracking, setting first-party cookies, and quicker website load. The tag allows you to create new contacts and, in the future, track events. The configuration process requires just the API Key and filling in the contact section, and it shouldn't take much time to complete. --- # Step-by-step guide to deleting a GTM container Source: https://stape.io/blog/delete-google-tag-manager-container Find out how you can delete the Google Tag Manager container in a few simple steps. Bonus: answers to frequently asked questions. Whether you're retiring an old setup or switching to a new one, knowing how to properly remove a GTM container keeps your tracking clean and your website conflict-free. Note: before you begin, we recommend you to export your container as a JSON backup file in case you need it later. Overall, deleting a GTM container is pretty straightforward: Log in to Google Tag Manager and select the appropriate account. Click the Admin tab and select the container you want to delete. Go to Container Settings → three-dot menu → Delete, then confirm. Remove the GTM code snippets from your website's head and body sections (or deactivate the GTM plugin if you used one). Clear your site's cache and verify the snippet is gone by checking the page source. The full detailed guide with step-by-step instructions and screenshots is available further in this article. Before deleting the GTM container Before deleting the GTM container, it is worth exporting its current version. This will be helpful if you decide to recover it or use the previous configurations as a reference for a new container. To export the container, choose the container you want to delete (steps 1 and 2 below show how to do this), click Export Container → choose a container workspace or version to export. ![Export GTM container](https://cdn.stape.io/i/67bc8f7781fc1117766271.png) Click Export in the upper right corner. The file in JSON format will be downloaded to your computer. Keep the file in a secure location so you can access it later if necessary. ![Click export](https://cdn.stape.io/i/67bc8f8ca0a62736372647.png) How to delete a GTM container Step 1. Access GTM account [Navigate to GTM](https://tagmanager.google.com/#/home) → choose an account (in case you have a few) that has the container you want to delete. ![Choose an account in GTM](https://cdn.stape.io/i/67bc8faaf31b5490258278.png) Step 2. Navigate the container you want to delete Click on the Admin tab, and in the column on the right side, choose the container you want to delete if you have a few containers. ![Containers in GTM](https://cdn.stape.io/i/67bc8fc233643729903658.png) Step 3. Delete container To delete the container, click on Container Settings → three dots in the upper right corner → select Delete. This action will trigger a confirmation dialog to ensure the user is certain about the deletion. ![Container Settings in GTM](https://cdn.stape.io/i/67bc8fd884767489244659.png) How to remove a GTM container from a website Remove the snippet from the website Removing the GTM code snippet depends on how you added it to the website - manually or using plugins for CMS. Remove manually Open your website’s source code. Locate the GTM container code, which is typically found in two places: The section: ![GTM snippet on the website](https://cdn.stape.io/i/67bc8ff9361d9867683500.png) And section: ![GTM snippet](https://cdn.stape.io/i/67bc900db57fe822194463.png) You should delete both of these snippets and save the changes. Remove GTM from the CMS plugin If you have used the plugin to add the GTM snippet code, you can deactivate or remove the plugin. Clear cache and verify GTM code removal Clear your website’s cache and open your site in an incognito window. Check the source code (right-click → "View Page Source") and search “gtm.js” to make sure that the GTM snippet is gone. ![View page source](https://cdn.stape.io/i/67bc90315e5a8108598366.png) How to delete a Google Tag Manager account Open your GTM account and navigate to the Admin tab. Under the Account column, select Account Settings. Click the three-dot menu in the upper right corner and choose Delete. Confirm the action by clicking the checkbox and then Delete. How to delete Google tags On the Tag Manager Accounts screen, click on the Google tags tab. Select the Google tag you’d like to delete. Go to the Admin tab. In the Manage Google tag section, select Delete from the three-dot menu. Click the checkbox to confirm you understand, then click Delete. FAQs Can I stop using a GTM container without deleting it? Yes, you can remove the GTM code snippet from your website. You should remove both the This lets you directly capture page views and other critical events by integrating them into the site's code. The values for pageUrl and pageTitle should be dynamic, as they will change for each page or content type. Ideally, the developer will handle this and any hashtags, question marks, or other query parameters in the URLs. Once the data layer is in place, you can complete the setup in GTM with these three steps: 1. Setting up two data layer variables. 2. Creating a custom event trigger. 3. Configuring a GA4 page_view event tag to send the data to GA4. Let's start by creating the data layer variables for pageUrl and pageTitle: 1. Go to Variables. 2. Click New. 3. Select Data Layer Variable as the type, and configure the variables accordingly for pageUrl and pageTitle. ![image](https://cdn.stape.io/i/6724deb3d7f1e308517857.png) ![image](https://cdn.stape.io/i/6724dec39968b247666145.png) 4. Now that we’ve stored the values for the page URL and page title in data layer variables, the next step is to create a trigger based on the custom event (virtualPageview) we defined earlier in the data layer. Here’s how to set up the custom event trigger: Go to Triggers Click New Select Custom Event as the trigger type Set the event name to virtualPageview This trigger will activate whenever the virtualPageview event is pushed to the data layer. ![image](https://cdn.stape.io/i/6724df0dbb428743509466.png) 5. Next, we’ll create the GA4 event tag to send the data to GA4. Here’s how to set it up: Go to Tags Click New Select GA4 Event as the tag type Configure the tag as follows: - Event Name: page_view - Event Parameters and Values: page_location: Set the value to the DLV – pageUrl variable page_title: Set the value to the DLV – pageTitle variable - Trigger: Set the trigger to fire whenever the virtualPageview custom event is detected This will send the pageview data, including the dynamic URL and title, to GA4. ![image](https://cdn.stape.io/i/6724df450da15702603573.png) Be sure to test the third method in [GTM’s preview mode](https://stape.io/blog/why-is-google-tag-manager-preview-mode-not-working) and GA4’s DebugView to ensure the right data is being collected, particularly for the page_location (URL) and page_title parameters. We didn’t add these parameters to the GA4 Configuration Tag because GA4 only reads them once during the initial page load. This means it would miss later changes on a SPA since the page doesn't fully reload. Though some of these methods can be challenging, they’re generally doable with some careful setup. Common challenges with tracking single-page applications Understanding the challenges of SPAs isn’t essential, but it can make it easier to handle tracking issues when they arise. Here are a couple of common challenges: 1. JavaScript dependency: SPAs rely heavily on JavaScript to function. If JavaScript is disabled, none of the interactions will be tracked, as the application won’t work. While server-side rendering can offer a workaround, it can complicate things, as other dynamic functions may not behave as expected. 2. Tracking URLs with parameters or fragments: URLs that contain parameters like hashtags or question marks aren’t automatically tracked. To handle this, you’ll need to capture the full URL using window.location.href in a JavaScript variable and override the page_location parameter with this value for every GA4 event tag, ensuring the entire URL is captured accurately. ![image](https://cdn.stape.io/i/6724df6baad60634345778.png) 3. If multiple history change events appear in GTM’s preview mode, it’s essential to investigate and eliminate any duplicate data. You can do this by adjusting the trigger to fire only on specific history change events rather than all of them. 4. If you're using the data layer method and notice that the virtualPageview event fires every time the website loads, you should disable the Send a page view event when this configuration loads option to prevent unnecessary page view events.virt ![image](https://cdn.stape.io/i/6724df848e9fe561367949.png) 5. Addressing a rogue referral issue, where Google mistakenly attributes paid traffic as organic, is essential. For more details, refer to Simo Ahava’s article on the topic. Unfortunately, this specific fix isn't currently compatible with GA4. Remember, this is a partial list of challenges, as others may arise depending on your website's setup. However, these points should give you a good idea of what to anticipate. Best practices for tracking single-page applications To effectively track SPAs, it's essential to follow these best practices: If you have a developer available, ask them for help with setting up the data layer method. This makes tracking more accurate because important data, like page URLs and titles, can be added directly to the data layer. This gives you better control over what’s being tracked on your site. Always make sure to test your setup in Google Tag Manager’s preview mode and GA4’s DebugView. This helps you find problems like duplicate events or incorrect triggers, so you can fix them before your setup goes live, ensuring accurate data collection. If your website's URLs include fragments like # or ?, capture the full URL in a JavaScript variable using window.location.href. Use this value to replace the page_location parameter in all GA4 event tags, ensuring the full URL is tracked correctly. Don't add the page_location and page_title parameters directly to the GA4 configuration tag. Instead, create a separate GA4 event tag specifically for page_view to override these parameters manually. This approach ensures that changes to the URL and page title are tracked accurately in single-page applications (SPAs). Check the Send a page view event when this configuration loads option in the GA4 configuration tag to see if it's needed. Enabling this option could result in duplicate or incorrect page view data if your SPA loads new content without refreshing the entire page. Following these best practices can help you avoid common issues and collect accurate, reliable data when tracking SPAs with GA4 and GTM. Conclusion Tracking single-page applications (SPAs) can be tricky, but server-side Google Tag Manager (GTM) makes it much easier to get accurate data. Whether you use GA4’s tools, GTM’s history trigger, or the data layer method, these options help track your dynamic content correctly. At Stape.io, we’re experts in server-side tracking and provide tools like data layer integration and preview mode to ensure your setup runs smoothly. Want to improve your tracking? [Sign up for Stape for free](https://app.stape.io/dashboard) today and let us help you get the most accurate results for your SPAs! After signing up, you can use our detailed text and video [guides on setting up server-side tracking with Stape](https://stape.io/blog/how-to-start-with-server-side-tracking). Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Server-side tagging for Wix Source: https://stape.io/blog/wix-app-for-server-google-tag-manager Wix is a leading platform for creating websites. Learn how to set up Stape Conversion Tracking app for server-side tracking to enhance data accuracy and improve tracking. Wix is a leading cloud platform that enables users to create websites easily, without needing technical expertise. With its drag-and-drop editor, customizable templates, and features for building everything from blogs to online stores, it's a versatile tool for anyone looking to establish an online presence. Recognizing the increasing demand for [server-side tagging](https://stape.io/) on Wix, we developed [Stape's Conversion Tracking app](https://www.wix.com/app-market/web-solution/stape-server-gtm) to simplify tracking setup and improve data accuracy for Wix websites. In this article, we'll go over the solution, highlight its benefits, walk you through the setup process, and explain how to test the app configuration. What are the benefits of Stape's Conversion Tracking app for Wix Automatically add web Google Tag Manager script. Integrate server Google Tag Manager container, configure custom domain and [Custom Loader](https://stape.io/solutions/custom-gtm-loader) for sGTM. Enrich data layer with e-commerce events and user data. Send webhooks to server Google Tag Manager container. You can also take advantage of various [free power-ups developed by Stape](https://stape.io/solutions/category/power-ups) to enhance your server-side experience. They are designed to make the process as seamless as possible. Some of the popular options include: [Anonymizer](https://stape.io/solutions/anonymizer) – removes or anonymizes user data in GA4. [Stape Store](https://stape.io/solutions/stape-store) – a built-in database that allows you to write, read, and sync data within server-side Google Tag Manager. Additional reading: If you also monetize with [ads on Wix](https://stape.io/blog/wix-ads), you may be interested in ad types, placements, tracking basics and realistic earning ranges. How to set up Stape's Conversion Tracking app for Wix Before you begin, make sure you have [set up server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) and host it on Stape. 1. Go to Wix App Market and choose [Stape Conversion Tracking app](https://www.wix.com/app-market/web-solution/stape-server-gtm). Click “Add to Site”. ![Wix App Market ](https://cdn.stape.io/i/69257b3e53ce5351682037.png) Log in to your Wix account and download the app for free! 2. Configure settings in three tabs: General Settings, DataLayers, and Webhooks. 2.1. General. This tab contains all the options for configuring the GTM snippet installation on every page of your Wix site. Add the following data: Specify WEB container ID - add the GTM web container ID. The format should be the following: GTM-XXXXXXX. Here’s [how to find Web Google Tag Manager (GTM) ID.](https://help.stape.io/hc/en-us/articles/20770012801821-How-to-find-Web-Google-Tag-Manager-GTM-ID) Add custom domain (optional) - use the subdomain you created for server-side tracking. If you don’t have a subdomain, please follow the instructions to [add a custom domain to the sGTM container](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). With it, you are able to set first-party cookies and forget about third-party cookie limitations, ensuring more reliable data tracking and compliance with privacy regulations. Add Stape container identifier or Custom Loader - that’s an optional parameter, but we highly recommend adding it as it increases protection against ad blockers. You can find the container identifier in the container section in Stape’s admin. For more detailed instructions, follow Stape’s guide on [how to find the Stape container identifier](https://help.stape.io/hc/en-us/articles/9697466601373-How-to-find-the-Stape-container-identifier). ![stape server GTM app configuration for wix](https://cdn.stape.io/i/67221202d3a08968165691.png) 2.2. Data Layers. In this tab, you can find toggles that enable dataLayer events. With their help, you can enrich the data by adding product and user information. See [the list of events that the app will push](https://help.stape.io/hc/en-us/articles/22337525397917-Wix-App-dataLayer): view_collection view_item add_to_cart remove_from_cart begin_checkout add_payment_info select_item purchase The “Append _stape suffix to event” option is a new setting that lets you choose whether Data Layer events get the _stape suffix. When it’s turned on (default), events will look like purchase_stape or view_item_stape, which helps keep Stape events separate from your existing GTM setup and avoids naming conflicts. If you turn it off, events will use their normal names, like purchase or view_item. ![DataLayer tab](https://cdn.stape.io/i/6925a849ae77c996059007.png) 2.3. Webhooks. Here, you can configure the webhooks to be sent to a specified URL for different events, such as purchases and/or refunds. All you need to do is to add the URL of your server container (format: https://sst.example.com/data). Turn on the fields according to the type of event - purchase and/or refund. Check out the blog posts on using and debugging webhooks: [What are webhooks, webhook servers, and how to use](https://stape.io/blog/webhook-server) [Debug incoming webhooks in Google Tag Manager server preview](https://stape.io/blog/debug-webhooks-google-tag-manager-server) [Server-to-server tracking in server Google Tag Manager](https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager) Click “Send text webhook”. ![stape server GTM app configuration for wix](https://cdn.stape.io/i/67221287beb5b302838332.png) 3. Send data to the server Google Tag Manager container. The two most common methods to achieve this are: [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) with [Data Tag/Data Client](https://stape.io/solutions/data-tag-client) 4. Set up tracking within the server Google Tag Manager container. Most major marketing and analytics tools already offer support for server-side tagging and include tags for sGTM. Check out the list of [platforms that support Google Tag Manager server-side tagging](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking) in our blog post. You can use the [pre-built templates for Wix](https://github.com/stape-io/wix-gtm-container-templates), which will simplify the setup process for Meta, GA4, and Google Ads. Check out [how to set up the templates in our article](https://stape.io/gtm-set-up-assistant). Alternatively, you can opt for automatic GTM templates generation and importing into web and server GTM containers with the help of [Setup Assistant by Stape](https://stape.io/blog/setup-assistant-by-stape). Test Wix app setup To check your configuration, visit any website page and open your browser's console. Go to the network tab and search for your subdomain. If you find a request with a 200 status code, it means that the setup works properly. ![Open the console of your browser → network tab → enter your custom domain](https://cdn.stape.io/i/677bc671eae69362937068.png) To sum up If you're looking for a quick and easy way to implement server-side tracking on your Wix website, Stape’s app is the ideal solution. With it, you can bypass ad blockers and browser limitations, send webhooks from offline stores, and enrich data with purchase and user details. We hope this article will help you with the setup! And if you have any questions about Stape’s admin or have encountered any errors in the app, please feel free to [contact us](https://help.stape.io/hc/en-us/requests/new). Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Cross-device tracking explained: what is it and how it works Source: https://stape.io/blog/cross-device-tracking Cross-device tracking helps businesses connect user behavior across devices for better ad targeting, improved personalization, and precise campaign measurement. People today constantly switch between devices, making it challenging for businesses to track user behavior accurately across different platforms. So, how do you keep up? Cross-device tracking is the answer. This post will explain how it works and share best practices to help you track users smoothly and keep your data reliable. What is cross-device tracking? Сross-device tracking monitors user behavior across multiple devices like smartphones, tablets, and desktops. It works like this: it connects user data from different devices with the help of other identifiers. Such identifiers include unique device IDs, cookies, login information, etc. Let’s imagine a situation where multi-device tracking takes place. Users see a product they like on an ad banner when running errands. They google the product on their mobile device. Later that day, a user sits at his laptop, studies the previously discovered product, and makes a purchase. Cross-device tracking methods can help a business link those actions together, not perceiving this one user as two separate individuals. This way, a business gets a complete vision of the user journey and uses it to polish its [marketing](https://stape.io/blog/increase-marketing-roi) and sales strategies. GA4's new measurement model allows for tracking web and app data simultaneously through data streams, giving a comprehensive view of a user's journey across different devices. ![Cross-Device Tracking](https://cdn.stape.io/i/67175d18a5f56591779521.png) Cross-device tracking empowers marketers. This method gives them more profound insights into user behavior, allowing them to create better-targeted ad campaigns. It also enables advanced personalization and precise campaign measurement, giving marketers control and confidence in their strategies. Cross-device tracking allows businesses to show users the most relevant ads regardless of their current device. This customer-centric approach ensures that companies can deliver consistent multi-device experiences across different platforms, prioritizing users' needs and preferences and leading to better commercial results. Why cross-device tracking is important + benefits Cross-device data tracking became a hot topic when mobile and smartphone technology advanced significantly. According to research by the Pew Research Center, an average U.S. household with internet access had [17 connected devices in 2023](https://www.pewresearch.org/short-reads/2015/11/25/device-ownership/). So, it's not surprising that anyone uses multiple devices during the day, such as mobile phones, tablets, laptops, and desktops. As shown in the example below, there are clear tendencies about what tasks users find are better to complete on the "big internet or the small internet" and how different generations approach it. One thing is sure—most people on the internet are actively using more than one device at the same time or throughout their day, so cross-device tracking and cross-device targeting are ways in which a business can better tailor its offerings to these clients. It all boils down to this: consumers increasingly shift to multi-device usage. Brands that adopt multi-device tracking demonstrate their adaptability to changing consumer behavior. This enhances customer experience and improves ad targeting, reassuring businesses about the effectiveness of cross-device tracking. Benefits of cross-device tracking Cross-device tracking has some substantial benefits. The following infographics show the major ones. ![Cross-Device Tracking](https://cdn.stape.io/i/67175d8630d78664756537.png) Let’s look at each of the advantages of multi-device tracking. 1. Improved user experience (UX) across multiple devices. When you get a comprehensive view of user experience across different platforms, you can customize your brand message for every platform to ensure it reaches your target audience most effectively. Moreover, cross-device analytics is vital for spotting places where users' interactions with your brand are ineffective. Based on this data, you can decide how to improve them for better results. Or, you could shift your priority to more impactful platforms. 2. Personalization and multi-device targeting. Cross-device targeting allows advertisers to better target users based on their behavior on different devices. A consistent message from a business on other devices is more likely to result in a conversion. For example, when a user looks up a product on their mobile phone and later researches it and makes a purchase on his desktop, cross-device conversion tracking ensures that the marketing efforts of the same user are recognized on two different devices. 3. Cross-device attribution and analytics for better ROI are other benefits of cross-device tracking. It allows businesses to improve marketing campaigns' return on investment (ROI). Cross-device [attribution](https://stape.io/blog/attribution-tracking) will enable marketers to accurately credit each interaction on each device and channel that influenced the conversion. It improves ROI by providing accurate insights into how each touchpoint contributes to conversions. This approach helps businesses spend their ad budget more wisely by targeting the devices and channels that lead to the most sales while improving reports and making finding and keeping valuable customers more straightforward. 4. Help businesses polish their multi-platform ad campaigns. By understanding how customers interact with their brand on each platform, advertisers can deliver more relevant ads based on the user's behavior and preferences, ensuring a consistent experience across devices. This boosts engagement and helps more people take action because the ads reach them on a suitable device at the right time. Cross-device targeting also makes ad campaigns more unified and effective, reaching a larger audience and getting better results. Sounds good, right? Now, let's explore how this magic of staying in touch with users, no matter what their device, actually works. How cross-device tracking works There are different approaches to cross-device analytics, each with pros and cons. One method uses exact data, like login details, to accurately follow the same user on other devices. Another look at patterns, like the type of device or how someone uses it, to make guesses about whether it's the same person, etc. Both methods are useful, but the choice depends on how accurate the tracking needs to be and what information is available. Deterministic tracking Deterministic tracking uses unique identifiers like user logins to link devices. It evolved as an alternative to cookie-based tracking when websites started inviting visitors to create accounts for their websites or apps. This way, each of the user's devices can be linked to the same user. For example, when you sign into Netflix on your TV and later use the Netflix app on your phone, deterministic cross-device tracking knows it's the same person or user. This happens because both devices use the same login information, making it easy to track you as one person across different devices. Deterministic tracking is helpful and very accurate, but it has some limitations. It only works for people who have already signed up or logged in, and it can only track new visitors with an account or a unique ID. Probabilistic tracking Probabilistic tracking guesses if the same person uses different devices by looking at patterns. It doesn't use exact data like a login but instead looks at the type of device, location, or browsing habits. These clues make an educated guess whether it's the same user across devices. This method isn't as exact as deterministic tracking, but it helps track users who haven't logged in or created an account. Probabilistic tracking analyzes anonymous data points that don't directly identify a person but can suggest that different devices belong to the same user. These data points include: Device type (such as phone, tablet, or computer) Browser type and version Operating system (like iOS or Android) IP address Location data (city or region) Time of activity (when the device is used) Browsing behavior (such as visited websites or actions taken) By combining these data points, probabilistic tracking makes a good guess about whether the same user is active on different devices. Cookies in cross-device tracking A user journey is never linear, so they can go through different touchpoints and devices before making a purchase, and cookies alone are not enough to track the whole user journey. When it comes to cookies alone, there isn't anything they can do for cross-device attribution alone. They store user data within one device on a browser, so they can't be transferred across devices. Google Analytics 4 cross-device tracking specifics GA4 has four identity spaces for tracking users: User-ID (tracks signed-in users across devices) Device ID (tracks users on one device) Google Signals (enables user of User-ID for cross-device measurement in conjunction with logged-in Google accounts) Modeling (predicts behavior when cookies are blocked). While Reporting Identity options include: Blended (uses User-ID, Device-ID, then Modeling) Observed (uses only User-ID and Device-ID) Device-based (only uses Device-ID) This means that your only direct lever on cross-device tracking is providing a User ID (and enabling Google Signals), so the deterministic approach is described above. Cross-device tracking based on User ID is among the most effective identification method. However, it requires a custom implementation. It is available only for websites and apps where users fill in their data. Behavioral modeling revolves around compensating unconsented data, and there are no clear indications that the machine learning involved has anything to do with cross-device. Enricher power-up for improving cross-device tracking Tracking often fails when user identifiers are missing across sessions or devices. Even if a user is partially identified (e.g., email collected on one visit, but missing on another), systems may not be able to stitch events together. To solve this problem, Stape has developed the Enricher power-up. It stores selected user data from incoming requests and reuses it to enrich future events when information is missing. Enricher builds a user data layer using cookies and/or Stape Store (data storage solution developed by Stape). When a user returns and triggers a new event without identifiers (such as email, phone number, or name), the power-up looks for any available identifiers: email _sbp (Stape's app cookie) FPID _ga (GA4 client ID) _dcid (Stape Data Client ID) X-Stape-User-Id If there're such identifiers, the power-up automatically supplements the request using previously collected data. It means a user can be recognized even if they switch devices or return later without logging in, as long as some identifier was captured earlier. For more details on power-up, as well as the configuration guide, follow the [documentation on Enricher](https://stape.io/helpdesk/documentation/enricher-power-up). https://www.youtube.com/watch?v=x-pF805KUp4 Conclusion Сross-device tracking helps businesses stay connected with users as they move between devices, allowing for a more complete understanding of their behavior. By leveraging a mix of tracking methods, companies can deliver relevant content, improve targeting, and refine their marketing strategies. --- # Server-side Google Analytics 4 for BigCommerce Source: https://stape.io/blog/server-side-tracking-for-bigcommerce Learn how to connect GA4 to your BigCommerce store using server-side tracking. Ensure precise data collection and seamless event tracking. After Universal Analytics sunset, Google Analytics 4 (GA4) became one of the most popular analytics tools. If you are going to use or already use server-side GA4 and want to connect it to your BigCommerce website, you are in the right place. In this article, we will consider how to set up server-side BigCommerce GA4 integration. Server-side GA4 setup for BigCommerce Conclusion Setting up server-side Google Analytics 4 for BigCommerce website is an effective way to obtain the most precise data and, hence, make data-driven decisions. The setup process is easy as a breeze and takes a few steps to complete. If you’ve had difficulties with the installation process, feel free to email Stape’s support team at [support@stape.io](mailto:support@stape.io), and we will be happy to assist you. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Snowplow tracking integration with server Google Tag Manager Source: https://stape.io/blog/snowplow-tracking-with-sgtm-container Learn how to implement Snowplow tracking via sGTM to optimize your data collection process. Get accurate insights with server-side tracking. Snowplow is a powerful event-tracking platform. When integrated with server-side Google Tag Manager (sGTM), it can give you even more control and flexibility over data collection management. In this guide, we’ll walk you through setting up pre-pipeline Snowplow tracking, which allows you to claim and process data before it reaches your Snowplow pipeline. Armed with this knowledge, let’s dive into the setup process. Snowplow tracking with server-side GTM lets you start optimizing your data collection by providing greater control, accuracy, and flexibility. Overview of Snowplow tracking Snowplow supports sending events to adjacent destinations by working with the server Google Tag Manager. There are two high-level approaches to combining Snowplow and sGTM: - Post-pipeline (Destinations Hub) - Pre-pipeline ![image](https://cdn.stape.io/i/67126f6bb7000478311974.png) ![image](https://cdn.stape.io/i/67126f7c4d7b5698161500.png) While both approaches can be helpful, we will now focus on the Pre-pipeline one. This is the second example in the picture above. This approach gives you extra flexibility and control over data processing, one of the main advantages of using server-side GTM. Benefits of pre-pipeline approach with server-side tagging The setup is easy thanks to the wide selection of available tags and the familiar, user-friendly GTM interface. You can clearly see every transformation your data goes through, ensuring complete transparency at each process step. This level of control and visibility will make you feel secure and in charge of your data. All data remains in your private cloud until you choose to forward it, ensuring its safety and your peace of mind. Sounds good, right? Let’s start with the integration right away. How to integrate Snowplow with sGTM Step 1. Install Snowplow Client on your server container Before setting up, please ensure your server-side GTM is configured: you are welcomed to read the article on [how to set up Google Tag Manager server container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) First, install Snowplow Client on our server container. You need that to claim a request from your JS tracker.Since the Client gallery is non-existent, you must do it manually. 1.1 Download the [Snowplow Client template from GitHub.](https://github.com/snowplow/snowplow-gtm-server-side-client) ![image](https://cdn.stape.io/i/67126a6207e54925848705.png) 1.2 Import the template into your server container. Templates → Client Templates → New ![image](https://cdn.stape.io/i/67126a7260448319093322.png) 1.3 Click the three dots in the upper right corner, and select Import. ![image](https://cdn.stape.io/i/67126a7d7186f183947935.png) 1.4 Choose template.tpl that you just downloaded. ![image](https://cdn.stape.io/i/67126a8c66ccf393309580.png) 1.5 Hit Save. ![image](https://cdn.stape.io/i/67126a9a646b2904576459.png) 1.6 Now, create a Client instance: ![image](https://cdn.stape.io/i/67126aa879bc0799460203.png) 1.7 Do not change any default settings; give it a name and hit Save. ![image](https://cdn.stape.io/i/67126ab8294d3724021632.png) Step 2. Add Snowplow tag 2.1 Snowplow tag is available in the [Tag Manager Template Gallery](https://tagmanager.google.com/gallery/#/owners/snowplow/templates/snowplow-gtm-server-side-tag).In a default scenario, the only adjustment to be made to the tag is to input your collector URL. ![image](https://cdn.stape.io/i/67126d4d3aed3629441385.png) 2.2 Give it a trigger. ![image](https://cdn.stape.io/i/67126d83dc683358231110.png) Once configured with your Collector URL, the Snowplow Tag will automatically forward any events the Snowplow Client receives. Step 3. Point your JS tracker to your server container's subdomain Now that the server part is done, you must point your JS tracker to your server container subdomain. 3.1 If you are using web GTM to add a tracker to your site, you must change the collector endpoint in either the Snowplow Settings variable or directly in the tags. ![image](https://cdn.stape.io/i/67126c359c0a9048527501.png) ![image](https://cdn.stape.io/i/67126c25ab3a0692701935.png) 3.2 If you’re adding the tracker with code: snowplow('newTracker', "sp', "{{collector_url_heret?', { appId: 'my-app-id', discoverRootDomain: true, cookieSameSite: 'Lax', // Recommended contexts: { webPage: true // default, can be omitted } }) ; Step 4. Test your setup Test your setup as follows. 4.1 Launch the server container preview to see events claimed by the Snowplow Client and Snowplow Tag fire. ![image](https://cdn.stape.io/i/67126c0e9ede4498686106.png) ![image](https://cdn.stape.io/i/67126c05d63e6213124599.png) Step 5. Publish your container(s) 5.1 Don’t forget to publish your container(s) for the changes to apply! To sum up With the above, you have started sending your Snowplow signal through a Google Tag Manager server. Server-side data tracking with Snowplow opens the possibilities of reporting to various destinations off of this data stream and redacting/enriching the data that your collector ultimately gets. We will discuss these two scenarios in follow-up articles. Happy tagging! Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Server GTM container is not receiving requests - reasons and fixes Source: https://stape.io/blog/server-gtm-container-is-not-receiving-requests-solution Server GTM preview empty? Fix tracking issues caused by transport URL, GA4 conflicts, or CORS/CSP settings with this troubleshooting guide. When you've decided to try server-side tracking and chose Stape hosting (although in the context of this post - it doesn't matter what hosting provider you have), you first create a server Google Tag Manager (sGTM) container. Next, you connect your subdomain to it. Finally, your server preview is up and running. After all this is done, all that's left is to configure the tags. You start by studying videos and articles on configuring a platform, making changes to your configuration settings within Google Tag Manager, running the preview, and…nothing happens. Correctly configuring GTM settings is crucial for effective event tracking and data management. Your server preview is empty; the Google Tag Manager container receives no requests. What should you do now? Worry not! We have an answer for you. Spot which requests reach the server and which do not thanks to [Stape GTM Helper](https://stape.io/solutions/stape-gtm-helper?cta=blog_article), so you can find the cause and restore sending faster for your agency clients or your own large GTM containers. Reason 1. Basic issues Sometimes the problem lies in the simplest things that could easily be fixed. Review the following basic issues to check if you're on top of everything. How to check and fix this 1. Ensure that the preview server functions properly during the setup process. It can only work correctly in the Chrome browser, so make sure you have it updated to the latest version. 2. Check that your server GTM container preview is working. When you run it, you should see something like this. ![GTM container preview](https://cdn.stape.io/i/670925486258f091897170.png) 3. In your browser, go to your subdomain and add /healthy to your subdomain link. Everything is set up correctly if you see ok on display. !["ok" status for a correctly set up subdomain](https://cdn.stape.io/i/670925616f1d9422096352.png) 4. Start the server container preview; in the add tab, just go to your server container URL and add /test to it. If you see a 400 error on the page - that's fine. You should see this request in the preview. ![Request in the preview](https://cdn.stape.io/i/670925cbeadf4952935887.png) If the basic checks above pass, technically, everything will be fine with your server container, and the problem with not receiving requests is one of the reasons below. Reason 2. Incorrect transport URL This may seem silly, but it's worth checking it out first. In the server container URL, make sure to use the exact URL where you are running the sGTM preview to ensure the correct event data is being sent. ![Check that URLs match](https://cdn.stape.io/i/6709263c7c1fd223190783.png) How to check and fix this The straightforward solution is to send events to the correct URL or run the preview at the correct URL. It's a simple fix that can make a big difference. Reason 3. GA4 configuration is overwritten GA4 is most often used as a transport mechanism for transferring data from a web GTM container to a server container on the Google Cloud Platform. GCP is necessary for hosting server-side containers due to its robust infrastructure and scalability. The problem here may be that the GA4 measurement ID you use in your tags may already be used elsewhere and re-initialized with other settings, affecting the tagging server setup on the Google Cloud Platform. It could be, for example, some plugin integrations, inline integration of gtag in code, work of another Google tag in a container, or work from another GTM container if you have several of them on your site. How to check this Open the network dev tool in your browser and activate the preserve log option so you don't lose any events when switching between pages. In the filter, specify the measurement ID of your GA4 for convenience, making it easier to find the necessary requests. Here is an example of an event that works correctly and is sent to the URL of the server container: ![An event that is sent to the server container URL](https://cdn.stape.io/i/670926b074de3401104503.png) And here is an event that is sent directly to GA due to configuration issues: ![An event that is sent directly to GA](https://cdn.stape.io/i/670926baec395221911632.png) Check that all your GA4 events are sent to the URL of your server container, not to google-analytics.com or similar domains. How to fix this Check the code for inline code with gtag initialization or events; it usually looks something like this: ![Code with gtag initialization or events](https://cdn.stape.io/i/67092779e24bc827860011.png) If you find gtag scripts in your site code, remove them altogether. Check if you have any active plugins or integrations that also send data to GA4. If so, disable these functions. Ensure no other Google tags with the same measurement ID are in your container. Ideally, use a single Google tag with GA4 configured through your GTM container. The mechanism of the problem is quite simple. Your tag initializes gtag with the setting to send requests to the server_container_url you specify. But after that, additional config is loaded, for example, from gtag, inline code (or any other source), and initialized the same GA4 again but without server_container_url, so requests are sent directly to Google Analytics, and you don't see anything in your server container preview. Also, if you have this problem, you may have some of the events sent to the sGTM and some directly to analytics. It's just that some event is sent before the Google tag config is overwritten. Reason 4. CORS/CSP issue Your tags' operation is blocked due to Cross-Origin Resource Sharing (CORS) or Content Security Policy (CSP) settings. This is a common problem with resources with advanced security. How to check this These problems are usually immediately visible in the browser console. Open the browser console, reload the page if necessary, and trigger the necessary events. If you have such problems - you will see several (or many) red errors that will tell you that some request was blocked due to CSP: ![Checking CSP issues via browser console](https://cdn.stape.io/i/6709288a3f5ca210827072.png) Or CORS: ![Checking CORS issues via browser console](https://cdn.stape.io/i/6709288071b29878849961.png) Any of your web tags may be blocked from working because of the same problem. How to fix this Contact your developers to add the necessary exceptions to the CORS or CSP rules to unblock your tags. Usually, a few screenshots of the console and a brief description of the problem are enough, but it's also worth sending them the [official Google CSP documentation](https://developers.google.com/tag-platform/security/guides/csp). Set up alerts to detect tracking issues early Fixing request issues in the server GTM is only part of the solution. Maintaining stable tracking over time is equally important. Many tracking failures can go unnoticed for hours or even days. The [Monitoring feature](https://stape.io/helpdesk/documentation/monitoring-feature) helps prevent this by checking your tracking flow and sending alerts when something goes wrong. After receiving alerts, you can react quickly and reduce potential data loss. How to apply it to your business Select the metric and platform you need to monitor. A universal metric is the number of purchases. Define thresholds to avoid false positives. Since monitoring often runs overnight, short-term drops in activity are expected. A good practiсe is to use a universal metric such as the total number of purchases. Define the average expected number of daily purchases via CRM/CMS. Take into account typical fluctuations like weekends, holidays, and nighttime traffic (when conversion volumes are typically lower). Based on the baseline, configure a rule to define a minimum acceptable threshold. If the number of purchases falls below this level, an alert is triggered. Note: to reduce false alerts caused by short-term fluctuations, you can use a longer observation window (for example, 12 hours). Let's consider, as an example, an alert configuration for Facebook purchases. Scenario: we checked via CMS that we send an average of 50 purchases per day to Facebook, and we want to be notified if something goes wrong and the number of tracked Facebook purchase events drops below 30 per day. 1. Click Create alert. !["Create Alert" button](https://cdn.stape.io/i/69fc91c9ed84e430884262.png) 2. Add the configurations: Alert name. Log type: Outgoing Log (since we need to track how many requests were sent to Meta from sGTM container). Period: 1 Day (we know the average number per day). Event exactly matches Purchase. Status code exactly matches 2xx (monitor only purchase requests that were successfully sent to Meta). Platform exactly matches Facebook. Alert me when there is less than 30 (purchases per day). ![Alert settings](https://cdn.stape.io/i/69fc92d4cdd89742134642.png) 3. Click Create. Note: make sure that the sGTM container you are using has a [configured Facebook CAPI tag by Stape](https://stape.io/blog/how-to-set-up-facebook-conversion-api). 4. Once the number of purchases is fewer than 30, you will receive a notification on the email(s) you've specified in the Settings tab. ![Settings tab in Stape admin](https://cdn.stape.io/i/69fc935751ac5734868671.png) Conclusion As a digital marketer or web developer, your role in troubleshooting these issues is crucial. When looking for problems with sending data anywhere, you should always pay attention to the browser console and the network tab. There, you can find much more information about how tags and data work than is available just in GTM preview mode. Your insights and actions are key to resolving these issues. Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Profit on Ad Spend: why it matters and how to set it up via Stape Source: https://stape.io/blog/profit-on-ad-spend Profit on Ad Spend tracking with Stape optimizes ad performance. Learn how to set it up for accurate profit-based analytics in Google Ads and GA4. By default, marketing platforms such as Google Ads or Google Analytics report the revenue from purchases instead of profit, which often includes taxes, shipping, and other fees. Consequently, the data you get isn't reliable as it does not take into account your actual earnings on a particular purchase. To effectively estimate the results of advertising campaigns and your marketing efforts, you need to track the Profit on Ad Spend (POAS). This marketing metric will be helpful for current performance analysis and planning future advertising campaigns. In this article, we will explain the importance of the Profit on Ad Spend metric and how to start tracking it easily. Why do you need to track Profit on Ad Spend? Profit on Ad Spend (POAS) helps more precisely evaluate the performance of advertising campaigns. Unlike other popular formulas, such as Return on Ad Spend, it takes into account the actual profit after subtracting any additional costs (e.g., taxes, shipping costs). Relying on profit instead of revenue generated leads to [more effective ad campaign analysis](https://stape.io/blog/ad-tracking#tools-for-competitive-advertising-tracking) and better business decisions. To achieve this, you don't need to send the full number of conversions; you only need to send your earnings, depending on what products were purchased. So the main task is to store your earnings data for each product somewhere and send this data instead of the purchase amount. Methods to configure Profit on Ad Spend Add to dataLayer A dataLayer is a JavaScript object that holds and passes information about the page or user's interactions to tags. It can also be used to set up Profit on Ad Spend tracking. However, it has a significant drawback - low data security. Technically, the data you store in a dataLayer can be easily accessed through the browser's developer tools, like the "Inspect" function. The dataLayer is a good solution for collecting lightweight data (e.g., cart data); if that’s the case for you, check our [end-to-end guide on dataLayer in Google Tag Manager](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager). Create a lookup table or custom JavaScript variable Such a method works via GTM setup. You need to create a lookup table variable or custom JavaScript that will collect data. However, this method will work only if you don't have a significant amount of items. Lookup tables or custom JavaScript variables will be inconvenient for dozens or hundreds of products. Use external database Storing product IDs and their profits in an external database is the most effective approach to tracking Profit on Ad Spend. It is a highly secure method that allows you to store enormous amounts of data about the items you sell. However, it has several difficulties with configuration, especially with connecting to the external database and then connecting this data to your existing tracking. To simplify the setup process, you can choose Stape as your hosting provider for sGTM and use the [POAS Data Feed power-up](https://stape.io/helpdesk/documentation/poas-data-feed-power-up) for simple and reliable setup. Benefits of Stape's POAS Data Feed as a cloud database for sGTM Specifically created for data storage from GTM. This allows you to avoid errors that you may face due to the complicated configuration of the database for server GTM. No additional setup is required. It is seamlessly integrated with Stape hosting. No additional costs for users with the [Pro or higher plan](https://stape.io/price). There are no limitations on the data you can store. Convenient management. You have several handy options, such as the ability to automatically update the catalogue. Learn more about the [POAS Data Feed power-up](https://stape.io/helpdesk/documentation/poas-data-feed-power-up). ![POAS Data Feed](https://cdn.stape.io/i/69d51e1d478c5964928548.png) POAS Data Feed How to set up Profit on Ad Spend tracking with Stape Requirements It is assumed that you are already using server-side tracking via sGTM and that it is already configured. If not, here is a list of relevant articles: [6 Steps for configuring server-side tracking with Stape](https://stape.io/helpdesk/documentation/sgtm/get-started) [Simplified configuration using Setup Assistant](https://stape.io/gtm-set-up-assistant)https://stape.io/gtm-set-up-assistant For a step-by-step setup guide for the POAS Data Feed power-up, feel free to read [our Helpdesk article](https://stape.io/helpdesk/documentation/poas-data-feed-power-up). Conclusion Profit on Ad Spend is a helpful metric for your business to track. Unlike other metrics such as ROS and ROAS, it measures the gross profit generated for every dollar spent on an ad, so it shows the profit after subtracting any possible additional costs like taxes and shipping costs. This gives you a clear view of ad campaign profitability, enabling you to make more informed decisions. The most effective way to track Profit on Ad Spending is to use an external database. You may consider Stape's POAS Data Feed for this purpose. It is seamlessly integrated with Stape, so it doesn't require any additional setup; in addition, the POAS Data Feed power-up is available for users with the Pro or higher plan. --- # Setting up webhooks via the Shopify Flow app Source: https://stape.io/blog/setting-up-webhooks-via-the-shopify-flow-app Learn how to configure webhooks in Shopify Flow to send recurring subscription purchase events to Google Analytics 4 via server-side GTM. Tracking offline subscription purchases in Shopify can be tricky. With Shopify Flow, you can easily send these events to Google Analytics 4 (GA4) using server-side Google Tag Manager (GTM). This guide will show you how to set it up and ensure all your transactions are tracked accurately. Why Shopify Flow? Shopify Flow is a tool that helps Shopify store owners automate tasks without needing to code. It lets you create workflows based on specific actions, like when an order is paid, or a product is out of stock. Benefits of Shopify Flow: Customization. You can set it up to match your store’s needs with different triggers and actions. Time-saver. Automates repetitive tasks so you can focus on running your business. Error reduction. By automating tasks, it helps avoid errors that can happen when doing things manually. Integration with other apps. It connects with apps like Google Analytics or CRMs so that you can easily send data. In a nutshell, Shopify automation with Flow makes running your store more efficient and easier to manage. The Flow app is one of the best choices for setting up webhooks in [Shopify server-side tracking](https://stape.io/blog/server-side-tagging-for-shopify). It offers a variety of triggers, conditions, and customization options so you can set up exactly what you need. It allows you to send a customized HTTP request to your sGTM container and then report such an event to any other platform, including [Shopify Conversion API Facebook](https://stape.io/blog/facebook-conversion-api-and-shopify) for server-side ad tracking. Let’s review an example of how you can report recurring subscription purchases of your products to GA4. Since such transactions do not happen online, the only way to track them is to report them to your Shopify CMS. How to configure webhooks in the Shopify Flow Step 1: Create your Flow with a trigger Start creating your Flow with a trigger — for our example, the “Order Paid” trigger will suit best, but depending on the case, it can also be “Order Created,” etc. Step 2: Apply the “Wait” action The next Action worth applying is “Wait” so that the app used for subscription recurring orders will assign necessary tags to the order. Most subscription apps do that, and you need to check which specific tags are added. Usually, several minutes should be enough. In our example, we applied 3 minutes. ![image](https://cdn.stape.io/i/67078fd949332323274162.png) Step 3: Create a condition The next step is to create a condition to differentiate all paid (or created) orders from the ones created offline by a subscription app. To do it, we need to check if order tags contain one of the tags assigned by a subscription app. Below is an example of how this condition may look. Please make sure to replace “subscription_recurring_order” in our example with the actual tag name that your subscription app assigns. ![image](https://cdn.stape.io/i/6707901503ff7331699580.png) In our example, if one of the order tags is “subscription_recurring_order”, the condition will return ‘true’ and continue to the next action. If an order does not contain the mentioned tag, the Flow will just stop, and no further actions will be taken, which is fine in our case. Step 4: Send a webhook to the sGTM container in the Shopify Flow If the condition is accurate, we want to send a webhook to our sGTM container in the Shopify Flow. This action is called “Send HTTP request”. Here, you can build your webhook by specifying the URL where to send the request and which headers and payload to add. Here is an example of how this webhook may be built: ![image](https://cdn.stape.io/i/67079031b5eff277275298.png) To apply the HTTP method, please select POST. Enter the URL of your server GTM container. If you have a Data Client installed, please remember that the default path is /data; however, you may configure any custom path you want in Data Client settings. Add the header “Content-Type” with the value “application/json.” The following code will build a webhook with the GA4 formatted payload; however, if needed, you may adjust the structure and/or add more parameters, which can be similarly pulled from the Shopify API. { "event": "recurring_order_paid", "user_id": "{{order.customer.id | split: '/' | last}}", "ecommerce": { "transaction_id": "{{order.name}}", "order_id": "{{order.id | split: '/' | last}}", "currency": "{{order.presentmentCurrencyCode}}", "value": {{order.totalPriceSet.presentmentMoney.amount}}, "tax": {{order.totalTaxSet.presentmentMoney.amount}}, "coupon": "{{order.discountCode}}", "shipping": {{order.totalShippingPriceSet.presentmentMoney.amount}}, "items": [ {% for lineItems_item in order.lineItems %} { "item_id": "{{lineItems_item.product.id | split: '/' | last}}", "item_name": "{{lineItems_item.product.title}}", "item_brand": "{{lineItems_item.vendor}}", "price": "{{lineItems_item.variant.price}}", "quantity": "{{lineItems_item.quantity}}", "item_sku": "{{lineItems_item.sku}}" }{% unless forloop.last %}, {% endunless -%} {% endfor %} ] } } Step 5: Test/Debug your setup To debug your Flow, you may use Stape’s [HTTP header preview power-up](https://stape.io/solutions/sgtm-preview-header) or temporarily add “x-gtm-server-preview” in the header of your HTTP request action in Flow, just next to Content-Type. You may find out more about [how to debug webhooks](https://stape.io/blog/debug-webhooks-google-tag-manager-server) in our blog post. Conclusion Shopify Flow app is an excellent way to achieve more accurate tracking results in your advertising and analytics platforms. With its help, you may report events that could happen offline, apply various conditional checks before sending an event, report refunds and cancellations, and much more. By utilizing Shopify Flow app, you can automate the process of sending important event data, such as recurring subscription purchases, directly to your server-side Google Tag Manager for enhanced tracking in GA4. Ready to get started with more accurate server-side tracking? [Try Stape for free](https://stape.io/sign-up) and see how our solutions can simplify your Shopify setup! Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # PrestaShop module for server Google Tag Manager Source: https://stape.io/blog/prestashop-module-for-server-google-tag-manager Set up server-side tracking for your PrestaShop store with Stape’s GTM module. It bypasses ad blockers, enriches data, and ensures accurate tracking. PrestaShop has gained popularity due to its high flexibility and customization when creating an online store. If you are looking for a solution to set up server-side tracking for your website, consider a solution developed by Stape - [PrestaShop module for server GTM](https://addons.prestashop.com/en/analytics-statistics/95017-stape-server-gtm.html). In this article, we will review the solution, describe its benefits, explain how to set it up, and how to test the module configuration. Advantages of PrestaShop module for server GTM [PrestaShop module](https://addons.prestashop.com/en/analytics-statistics/95017-stape-server-gtm.html) was primarily created for server-side tracking; however, it also adds a web GTM snippet to every page of your online store automatically. As for server-side users, you will get the following benefits of using PrestaShop module: Make tracking scripts (GTM, Google Analytics snippets) resistant to ad blockers. Enrich the dataLayer with product and user data. Send webhooks to server GTM. Why choose Stape server-side tracking for PrestaShop module Besides the benefits above, if you are registered as a [Stape user](https://stape.io/sign-up) you can also use [Cookie Keeper](https://stape.io/solutions/cookie-keeper), which helps avoid browser restrictions (such as Safari ITP) and prolong cookies’ lifetime. ![Cookie Keeper](https://cdn.stape.io/i/67069a29ea1c5412814092.png) Also, you can use numerous free [power-ups developed by Stape](https://stape.io/solutions/category/power-ups). The power-ups help make the server-side experience as smooth as possible. Among the popular ones are: [Custom GTM and GA4 Loader](https://stape.io/solutions/custom-gtm-loader) - make GTM and GA4 scripts more resistant to ad blockers. [Anonymizer](https://stape.io/solutions/anonymizer) - remove or anonymize user data from GA4. [Stape Store](https://stape.io/solutions/stape-store) - built-in database that enables you to write, read, and sync data within the server-side Google Tag Manager. How to set up the PrestaShop module for server GTM 1. [Set up server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) and host it on Stape. 2. To start installing, you need to buy the [module on the PrestaShop platform](https://addons.prestashop.com/en/analytics-statistics/95017-stape-server-gtm.html). ![PrestaShop module on the marketplace](https://cdn.stape.io/i/67069be1df6fd052692683.png) 3. Configure settings in three tabs: General Settings, DataLayers, and Webhooks. 3.1 General Settings tab This tab contains all the options for configuring the GTM snippet installation on every page of your PrestaShop site. Add the following data: Insert GTM snippet - enable this field to add the GTM snippet to every page on your PrestaShop store. And add the GTM web container ID (you can find it in your GTM account in the tab “Accounts”). The format should be the following: GTM-XXXXXXX. GTM server container URL - use the subdomain you created for server-side tracking. If you don’t have a subdomain, please follow the instructions to [add a custom domain to the sGTM container](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). Stape container identifier - that’s an optional parameter, but we highly recommend adding it as it increases protection against blockers. You can find the container identifier in the container section in Stape’s admin. For more detailed instructions, follow Stape’s guide on [how to find the Stape container identifier](https://help.stape.io/hc/en-us/articles/9697466601373-How-to-find-the-Stape-container-identifier). Cookie Keeper - also optional; if you turn it on, you will minimize the impact of Safari ITP restrictions. ![Example of General Settings Tab in PrestaShop module](https://cdn.stape.io/i/67069cf39f08d763232414.png) 3.2 DataLayer tab Here you can find a [list of events and their payload, which are added via the module for PrestaShop](https://help.stape.io/hc/en-us/articles/22964609706653-PrestaShop-dataLayer). In this tab, you can find toggles that enable dataLayer events. With their help, you can enrich the data by adding product and user information. See the list of events that the module will push: view_collection view_item add_to_cart view_cart remove_from_cart begin_checkout add_shipping_info add_payment_info purchase ![dataLayer events in PrestaShop module](https://cdn.stape.io/i/67069d6a203d4252373518.png) 3.3 Webhooks tab Here, you can configure the webhooks to be sent to a specified URL for different events, such as purchases and/or refunds. To activate webhooks configuration, turn on “Send webhooks to server GTM container”. Then you need to add the URL of your server container (format: https://gtm.example.com/data). Turn on the fields according to the type of event - purchase and/or refund. Check out the blog posts on using and debugging webhooks: [What are webhooks, webhook servers, and how to use](https://stape.io/blog/webhook-server) [Debug incoming webhooks in Google Tag Manager server preview](https://stape.io/blog/debug-webhooks-google-tag-manager-server) [Server-to-server tracking in server Google Tag Manager](https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager) Click “Save”. ![Webhook configuration in PrestaShop module](https://cdn.stape.io/i/67069da652d0d055150339.png) 4. Send data to the server Google Tag Manager container. The two most common methods to achieve this are: [Google Analytics 4 server-side configuration](https://stape.io/blog/set-up-ga4-server-side-tracking) [Data Tag/Data Client](https://stape.io/solutions/data-tag-client) 5. Set up tracking within the server Google Tag Manager container. Most major marketing and analytics tools already offer support for server-side tagging and include tags for sGTM. Use [Stape’s Setup Assistant](https://stape.io/blog/setup-assistant-by-stape) to automatically generate GTM templates and import them into both web and server GTM containers. Also, you can find guides on how to implement event tracking on the server-side: [Facebook CAPI](https://stape.io/blog/how-to-set-up-facebook-conversion-api); [TikTok events API](https://stape.io/tiktok-events-api-gateway); [SnapChat](https://stape.io/blog/snapchat-capi). Additionally, you can enhance sGTM data using [Firestore](https://stape.io/blog/write-data-to-firestore-from-server-google-tag-manager) or [Google Sheets](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets). Another useful feature of sGTM is its ability to send offline conversions to [Facebook](https://stape.io/blog/facebook-offline-conversion-using-server-gtm) and [AdWords](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm). Check out the list of [platforms that support Google Tag Manager server-side tagging](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking) in our blog post. Test PrestaShop module setup Check the configuration on the website To check your configuration, visit any website page and open your browser's console. Go to the network tab and search for your subdomain. If you find a request with a 200 status code, it means that the setup works properly. ![Check custom domain on the website](https://cdn.stape.io/i/671235f06ede9210947750.png) Debug triggered events in GTM Debugging in GTM for the PrestaShop website works the same way as for any other platform. To check whether the events you configured in dataLayer are triggered, you need to launch a preview in the web GTM container and take the required actions (e.g., add an item to the cart) on the website and check whether the tags fired in GTM. ![GTM preview](https://cdn.stape.io/i/6712363349e8c412199030.png) To sum up Server-side tracking offers significant advantages for data collection, ensuring more accurate data is tracked. Stape developed the [PrestaShop module](https://addons.prestashop.com/en/analytics-statistics/95017-stape-server-gtm.html) to streamline the use of sGTM. This module allows you to bypass ad blockers and browser restrictions, send webhooks from offline stores, and enrich the data with purchases and user data. If you need a fast and simple way to implement server-side tracking for your PrestaShop website, Stape’s module is a perfect solution. We provide [support](https://help.stape.io/hc/en-us/requests/new) for our users in case they face any problems with the module configuration. Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Cookie banner: all-in-one guide Source: https://stape.io/blog/cookie-banner-all-in-one-guide Cookie banners are essential for GDPR, CPRA, and LGPD compliance. Learn how to create a cookie banner, ensure consent, and protect your website from fines. In recent years, several privacy regulations have been enacted, including [GDPR, CPRA, and LGPD](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive), all of which aim to protect users' data. A key requirement across these laws is the implementation of cookie banners, which have become essential for complying with data privacy regulations. To maintain your website’s SEO rankings and avoid potential fines, it is crucial to include a consent banner and ensure it meets all the requirements. In this article, we will cover what a cookie banner is, who needs to implement one, how to create a GDPR-compliant cookie banner, and more. Not sure if your site passes consent correctly? Verify it in seconds with the free Stape’s [Website Tracking Checker](https://stape.io/website-tracking-checker?cta=blog_article). The tool shows you how well your website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for your analytics systems and ad platforms. Digital marketers and agencies can run fast tracking audits, use the report as a checklist to double-check implementations, and win more clients with proof of server-side tracking value. Story behind Cookie banners became prominent after the 2002 [ePrivacy Directive](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive#e-privacy-regulation), also known as the European Cookie Law, addressed concerns about online data privacy and tracking. However, many associate their rise with the 2018 [GDPR](https://stape.io/blog/server-side-tracking-gdpr), which required businesses to get explicit user consent before using cookies to collect personal data. Besides GDPR, there are numerous regulations that apply to different areas around the globe (e.g., LGPD in Brazil, POPIA in South Africa, and PDPA in Singapore, etc.) What is a cookie banner? A cookie banner is a pop-up that appears when a person visits your website to inform them about storing cookies on the user's device. The banner serves two main purposes: let website visitors know that you are using cookies for data tracking get the consent from visitors on their data collection ![image](https://cdn.stape.io/i/67068788ddae1347136893.png) Who should have a cookie banner on their site? After the[General Data Protection Regulation (GDPR)](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive) came into force, cookie banners became required for websites. Although GDPR is applied to the EU zone only, there are a lot of other regulations across the globe that are aimed at data protection (e.g., LGPD in Brazil, POPIA in South Africa, and PDPA in Singapore) and also require consent for using user data. Should I add a consent cookie banner if I use server-side tracking? Yes, Google Consent Mode is required for server-side tracking. When you integrate Consent Mode, you should ensure that user consent is obtained both on the client-side tagging and the server-side. For more details, follow the section on [how to add Consent Mode in the server Google Tag Manager](https://stape.io/blog/cookie-banner-all-in-one-guide#cookie-consent-mode-in-web-gtm). Why should you add a cookie banner? Website owners must implement a cookie banner to comply with data privacy laws and protect SEO rankings. Failing to do so, or using a banner format that doesn't meet [requirements](https://stape.io/blog/cookie-banner-all-in-one-guide#requirements-for-cookie-banners), could result in the following consequences: Fines and legal actions. Under GDPR regulations, the maximum penalty can reach €20 million or 4% of the company’s global annual turnover. Impact on search engine ranking. Although search engines won't block a website if it doesn't have a cookie banner, they may consider such a website untrustworthy, which can lead to losing SEO ranking. How does a cookie consent banner work? A cookie banner pops up when a user visits a website for the first time. It provides users with details about the cookies used on your site and interacts with the user's browser to manage consent preferences. At this point, a user can accept, decline, or customize the cookies that can be gathered. Once a website visitor obtains user consent, the consent banner gathers the user's preferences. It sends them to the tag you select to transmit consent status from the web to the server Google Tag Manager (e.g., Google Tag) if you stick to server-side tracking. This tag includes a parameter that conveys the consent status to server GTM. Within the server, the tag's behavior is adjusted based on the parameter's value that reflects the user's consent status. ![How consent mode works](https://cdn.stape.io/i/670688031c8db541760146.png) How can server-side tracking help comply with privacy laws and regulations? High data control You can't fully control the data they collect when you use third-party web tracking scripts (e.g., Google Analytics and Google Tag Manager snippets). These scripts may gather sensitive personal data without notifying you. With server-side tracking, you can avoid such a problem. Unlike client-side tracking, you have higher control over data and can set up what data you want to collect. Remove or hash sensitive data Certain industries (e.g., healthcare) impose additional regulations that restrict the transmission of specific Personally Identifiable Information (PII) to third-party platforms. These requirements are often difficult to meet with web tracking alone. However, with server-side tracking, you have full control over the transmitted data. Using server-side Google Tag Manager, you can either remove sensitive data or hash it before sending it to external platforms. If you work in the health industry, you should comply with the Health Insurance Portability and Accountability Act (HIPAA); read our blog post on [how to set up HIPAA-compliant data tracking with Stape](https://stape.io/blog/make-your-tracking-hipaa-compliant). Modify Personal Identifiable Information (PII) Personal Identifiable Information can include a wide range of data, not only email or phone numbers. In the healthcare industry, for example, disease or equipment names can be in URLs. Such data doesn't comply with the policies of different platforms such as Facebook. Check our [Personal Identifiable Information guide](https://stape.io/blog/personally-identifiable-information) for more tips on how to manage this type of data safely and compliantly. With Server GTM, you can modify website URLs before sending them to third-party platforms. This allows you to remove parameters or replace specific keywords in the URL. Use [Anonymizer power-up by Stape](https://stape.io/solutions/anonymizer) to remove or anonymize data from Google Analytics 4. Why server-side tracking isn’t a way to bypass consent mode Setting up server-side tracking helps comply with privacy regulations. However, it doesn’t mean you can skip asking for the user’s consent to process the personal data. The ePrivacy Directive incorporated into privacy laws states that any type of data collecting and storage requires consent. So, if you are using server-side tracking, to comply with data privacy regulations, you should [configure consent mode in server GTM](https://stape.io/blog/consent-mode-server-google-tag-manager#how-to-configure-consent-mode-in-the-server-gtm), add a compliant cookie banner to your website, and consult with your legal department. Types of cookie banners Opt-in banner How it looks like Opt-in consent asks users to grant permission for a website to use cookies actively. To collect data, the website user has to choose "Allow," "Allow selection," or "Deny". ![Opt-in cookie banner](https://cdn.stape.io/i/670688c445964526160332.png) When you should use it That's the most popular type of cookie banner. Compared to an opt-out banner, this one is GDPR compliant cookie banner. Moreover, it will comply with other regulations around the globe, such as Brazil’s LGPD, South Africa’s POPIA, and Thailand’s PDPA. Opt-out banner How it looks like The opt-out cookie banner just discloses the use of cookies. By continuing to view the website, the visitor allows the use of cookies unless they choose to withdraw the permission manually. So, no active action is required to start collecting data. ![Opt-out consent banner](https://cdn.stape.io/i/6706890a77461207047064.png) When you should use it Opt-out cookie banners will comply with CPRA regulations in the USA. Lately, however, the regulations have become stricter in the US. For example, in California and Virginia, active visitor consent is now required. Requirements for cookie banners To make sure that you comply with consent regulations, follow these requirements: Display the cookie banner once the page loads. Use an opt-in banner type, which is more versatile and complies with most privacy regulations worldwide. Clearly explain what cookies are used and their purposes, and give an option to manage them. Add the option to customize cookie preferences - accept, customize, or decline cookie categories. Consent Mode parameters You should also consider Consent Mode parameters in terms of the setup itself. Although Google has not released the official documentation, we have another article on[Consent Mode parameters](https://stape.io/blog/google-consent-mode-v2-prepare-for-the-year-2024#consent-mode-v-2-parameters) that we wrote based on our own experience. Cookie Consent Mode in web GTM Google Tag Manager for the web includes a built-in Consent Mode, which you can find in the web container settings. This feature enables tags to adjust their behavior according to the user's consent status. ![Enable consent overview in web GTM](https://cdn.stape.io/i/670689649012e067121780.png) Native Google tags do not require additional consent checks; however, you will need to manually specify when other tags, such as Google Analytics, Facebook, and TikTok, are permitted to fire. You'll also need a Consent Management Platform (CMP) to configure Consent Mode. The main role of the Consent Management Platform is to display a cookie banner on your site. Many CMPs are compatible with Consent Mode in Google Tag Manager, and[Google provides a list of CMPs](https://support.google.com/tagmanager/answer/10718549?hl=en#cmp-integrations) that can integrate with this feature. Consent Mode in server GTM To integrate Consent Mode with server-side tracking, you need to ensure that user consent is respected on both the client-side and server-side. This involves the following steps: Configure Consent Mode in the web version of Google Tag Manager. Transfer user consent information from the web GTM to the server-side GTM. Configure server-side tags to respect the user's consent status, such as ensuring that data sent to platforms like Google Ads complies with the user's consent preferences. See our step-by-step guide on how to set up [Consent Mode in server GTM](https://stape.io/blog/consent-mode-server-google-tag-manager#how-to-configure-consent-mode-in-the-server-gtm). Useful links We have useful articles related to Consent Mode and the GDPR cookie banner: [Google Consent Mode V2](https://stape.io/blog/google-consent-mode-v2) [Server-side tracking and GDPR](https://stape.io/blog/server-side-tracking-gdpr) [Consent mode in server Google Tag Manager](https://stape.io/blog/consent-mode-server-google-tag-manager) [Server-side consent management with sGTM and Cookiebot](https://stape.io/blog/consent-mode-server-google-tag-manager) [Consent Settings for server GTM tags](https://stape.io/blog/consent-mode-server-google-tag-manager) [How to configure consent management using GTM and iubenda](https://stape.io/blog/set-up-consent-management-gtm-iubenda#benefits-of-server-side-consent-management) [How to set up consent management with server GTM and Axeptio](https://stape.io/blog/consent-management-gtm-axeptio)https://stape.io/blog/set-up-consent-management-gtm-iubenda#benefits-of-server-side-consent-managementhttps://stape.io/blog/consent-mode-server-google-tag-manager Conclusion Cookie banners let users know that you are using cookies and help obtain their consent for data collection. Just adding the cookie banner isn't enough; you need to ensure that it complies with all privacy regulations. Otherwise, you may lose your SEO ranking and, in some cases, receive fines. Adding an opt-in cookie banner is more versatile than an opt-out banner and will comply with most current laws and regulations. Also, consider switching to server-side tracking (if you haven't done so yet), as it helps you gain more control over data collection and ensures you comply with all privacy laws. Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Stape Gateway: simplify server-side tracking for GA4 & Google Ads Source: https://stape.io/blog/what-is-stape-gateway Simplify GA4 & Google Ads server-side tracking with Stape Gateway. Bypass ad blockers, extend cookies, and enhance data accuracy without complex setups. In most cases, configuring tracking, especially [server-side tracking GTM](https://stape.io/gtm-server-hosting), takes a lot of time. Here at Stape, we aim to simplify the process of its configuration. That is all about Stape Gateway — a simple, no-fuss solution to quickly set up server-side Google Analytics 4 and Google Ads. Stape Gateway offers a solution to switch from web to server-side tracking, making it much easier to implement reliable data tracking for both GA4 and Google Ads without setting up server GTM container. With Stape Gateway, you can improve paid ad campaign performance and the quality of your analytics data. It effortlessly bypasses ad blockers, extends cookie lifetimes, and ensures that your Google Ads and GA4 tracking remain accurate and reliable, all while enhancing data security and quality. In this article, we’ll dive into the details of Stape Gateway from Stape and how it allows you to focus on what matters most: collecting accurate marketing data and [boosting ad performance](https://stape.io/blog/improve-google-ads-performance). Related: [Competitive advertising tracking](https://stape.io/blog/ad-tracking). Stape Gateway overview Stape Gateway is designed to help customers simplify [server-side tagging configuration for Google Analytics 4](https://stape.io/stape-gateway) and Google Ads. The setup is simple: you must have web tracking for GA4 and Google Ads configured correctly and then set up Stape Gateway. There’s no need for manual configuration of server-side GA4 or Google Ads — Stape Gateway handles web requests to send data through the server-side connection. Stape Gateway allows configuring Server-side Google Analytics 4. Server-side Google Ads remarketing. Server-side Google Ads conversion tracking. Server-side [Google Ads offline conversion](https://stape.io/solutions/google-ads-offline-conversion-tag) tracking. Pricing You can try Stape Gateway for free for 7 days without providing any billing details. 1. Pay as you go 10$/month or 100$/year. Up to 2,000,000 requests per month. With the pay-as-you-go plan, you can add several combinations of custom domains and web GTM. Each additional domain will cost $10 per month and include up to 2 million monthly requests ($100 per year). 2. Ultimate 100$ per month or 1000$ per year. Up to 20,000,000 requests per month. Up to 20 custom domains. Stape Gateway benefits Low price. You can start with a 7 day free trial to check all the benefits and then proceed to the paid plans. In the meantime, you can save hundreds or thousands of dollars compared to manual implementation. Easily set up server-side tracking for GA4 and Google Ads without the hassle of manually configuring tags using the server Google Tag Manager container. Simply configure web tracking for GA4 and Google Ads and set up the Stape Gateway. Bypass AdBlockers by enabling [Custom Loader](https://stape.io/solutions/custom-gtm-loader#how-to-set-up-custom-loader). Prolong cookie lifetime by configuring [Own CDN](https://help.stape.io/hc/en-us/articles/12348841204125-How-to-use-Own-CDN-on-Stape) or enabling [Custom Loader](https://stape.io/solutions/custom-gtm-loader#how-to-set-up-custom-loader). Also, Stape offers a handy solution for GA4 management - [MCP Server for GA4](https://stape.io/blog/mcp-server-for-google-analytics) - it allows you to perform the tasks within GA4 using AI. How to set up Stape Gateway Before you begin, please ensure that web Google Analytics 4 and/or Google Ads tracking is configured for your website. Stape Gateway works only based on data that web GA4 and/or gAds requests send. 1. Create a Stape Gateway [Create an account](https://stape.io/sign-up) or [log in](https://stape.io/login) to Stape. Click on More Gateways → Stape Gateway → Create Stape Gateway. ![Create a Stape Gateway on Stape](https://cdn.stape.io/i/680f7a134aab4939722139.png) Fill out: Gateway name. You can create a random name. Web Google Tag Manager ID. Follow these steps to find the [web Google Tag Manager ID](https://help.stape.io/hc/en-us/articles/20770012801821-How-to-find-Web-Google-Tag-Manager-GTM-ID). Server location. Select a location closer to your website visitors. Click Create Stape Gateway. ![Create a Stape Gateway on Stape](https://cdn.stape.io/i/680f7af075d6d690976813.png) 2. Select the subscription plan or choose to add payment later Stape offers: 7-day free trial. Pay as you go plan - 10$/month or 100$/year with up to 2,000,000 requests/month. Ultimate plan - 100$/month or 1000$/year with up to 20,000,000 requests/month. ![Create a Stape Gateway on Stape](https://cdn.stape.io/i/680f7afddb46a109296455.png) 3. [Recommended] Configure custom domain Configuring a custom domain is highly recommended because it allows you to serve your Google Tags from the [first-party context](https://stape.io/blog/google-tag-gateway-gtg-with-stape) and prolongs first-party cookies. 3.1. Choose your Stape Gateway on Stape. Click Add a custom domain. ![Add a custom domain on Stape](https://cdn.stape.io/i/6706712c10c4f509682965.png) 3.2. Type the domain name, add or select [web Google Tag Manager ID](https://help.stape.io/hc/en-us/articles/20770012801821-How-to-find-Web-Google-Tag-Manager-GTM-ID) and select whether you want to use [Own CDN](https://help.stape.io/hc/en-us/articles/12348841204125-How-to-use-Own-CDN-on-Stape). Own CDN allows serving custom domains (tagging server URL) from the same IP address as your website domain. It helps to set first-party cookies in browsers [with ITP, like Safari and Firefox](https://stape.io/blog/safari-itp). [Read more about configuring Own CDN for Stape Gateway here.](https://stape.io/helpdesk/documentation/configure-stape-gateway) Below is an example of how to add a custom domain without Own CDN. 3.3. Configure the DNS records you see in the Stape.io admin. [With these guides, you can find information on how to set up DNS records for top providers manually.](https://help.stape.io/hc/en-us/sections/20337476535709-How-to-set-up-DNS-records-for-top-providers) But you can also do it Automatically via Entri. ![Add DNS records](https://cdn.stape.io/i/6706713b62085111453407.png) Below is an example of a Cloudflare setup. Log in to your Cloudflare account Select domain name on account home page Click three dots next to domain Click Configure DNS Click Add record Add a CNAME record similar to the screenshot below. Ensure that the proxy status is off Save changes ![Add DNS records / Cloudflare](https://cdn.stape.io/i/6706714f21192931216032.png) It usually takes 20-30 minutes to validate DNS records, but for some providers, it might take up to 72 hours. If the domain is not verified in 72. hours, please follow the steps from [this guide](https://stape.io/helpdesk/knowledgebase/custom-subdomain-is-not-verified-for-stape-gateway) or reach out to [Stape support](https://help.stape.io/hc/en-us/requests/new). ![Custom domain added](https://cdn.stape.io/i/67067182aa1b8080787497.png) 4. Configure Custom Loader The [Custom Loader](https://stape.io/solutions) makes Google Analytics 4 and Google Ads script invisible to ad blockers, improving the quality and quantity of your data collection. Select a domain of your Stape Gateway. Web GTM ID will be predefined based on the previous setting. Select the CMS. Select Other if your website is custom-built or a CMS is not listed in the dropdown. You will see the Custom loader configuration description based on the CMS selection on the right side. Follow the instructions on the right side to update your website’s web Google Tag Manager script. You can either use one of the CMS apps ([WordPress](https://wordpress.org/plugins/gtm-server-side/), [Shopify](https://apps.shopify.com/server-gtm), [Magento](https://commercemarketplace.adobe.com/stape-gtm-server-side-magento-module.html), [BigCommerce](https://www.bigcommerce.com/apps/stape-server-gtm/)) or update the web Google Tag Manager script manually. ![Custom Loader](https://cdn.stape.io/i/674f0cf07f2fe415878739.png) 5. Test Stape Gateway 5.1 Add /healthy at the end of your Stape Gateway (e.g. https://gwt.stape.dog/healthy). If everything works correctly, you should see the response OK. ![Test Stape Gateway](https://cdn.stape.io/i/670671a5d26d2508621485.png) 5.2 Open Web Google Tag Manager debugger, click through your website to activate GA hits, and select GA in the GTM preview. ![Test Stape Gateway](https://cdn.stape.io/i/67066d3681b69687687373.png) Go to Summary → Output → Hits Sent, and verify that hits are routed to the correct tagging URL (the one you’ve added inside the stape admin). ![Test Stape Gateway](https://cdn.stape.io/i/67066deb08807390174670.png) A tracking setup is also possible with a server GTM container. Check out the [difference between the sGTM container and a gateway setup](https://stape.io/blog/sgtm-vs-gateways) in our blog article. Conclusion Stape Gateway simplifies server-side tracking by automating the configuration process for Google Analytics and Google Ads. Whether focused on improving data collection or maximizing ad performance, this solution enhances data quality and accuracy. Explore the benefits with a free plan, and don’t hesitate to contact our [support team](https://help.stape.io/) if you have any questions. Would like to try Stape Gateway for free? Excited to hear that! Click Try for free and register on Stape to start 7-day free trial. --- # 22% conversions increase for Lingopie | Vakulski-Group Source: https://stape.io/blog/twenty-two-percent-conversions-increase Find out how Stape’s hosting helped Vakulski-Group reach a 22% conversion increase for a client Lingopie. [Vakulski-Group](https://www.vakulski-group.com/) is a marketing agency that helps SaaS, Games and Ecommerce companies to improve their business bottom line through data-driven strategies and CRO practices. ![vg logo](https://cdn.stape.io/i/670394e5c1af3192328576.png) Problem: severe conversions decrease Unlike other Vakulski-Group clients, [Lingopie](https://lingopie.com/) required a complex server-side tagging setup, integrating data from the Measurement Protocol into the server GTM container. This was necessary due to their diverse online platform, which included both a website and two mobile apps (iOS and Android). Before working with Stape partner, the client had partnered with several agencies and consultants to address issues with inaccurate conversion reporting in Google Ads and Meta Ads. These reporting discrepancies had led to higher CPCs and significantly lower conversion rates, but none of the previous efforts successfully resolved the problem. Solution: transition to Stape After investigating the client's complex setup, fixing numerous bugs, and cleaning the containers, the Vakulski-Group team recommended splitting the client's setup into two parts: an online platform and mobile apps. The mobile apps would send data via the Measurement Protocol, while the online platform would send data via the native GA4-client. At that time, over 85% of the client's conversions occurred through the online platform, and the client was not running ads for mobile apps. The client used Google Cloud Platform for sGTM hosting before switching to Stape. Google Analytics 4 was the primary marketing tool, and the key metrics were new website visitors, registrations, free trials, and first-time subscribers. Vakulski-Group convinced Lingopie to switch to Stape because it provided clear [Logs](https://stape.io/solutions/logs), [Monitoring feature](https://stape.io/news/monitoring-feature), and [sGTM Preview header config](https://stape.io/solutions/sgtm-preview-header), which allowed to troubleshoot the client’s implementation and resolve all issues properly. Due to the large volume of events, [Stape was a much better solution than the Google Cloud Platform](https://stape.io/blog/stape-an-alternative-to-google-cloud-platform), allowing to convince the client to transition. The client has never regretted this decision! The implementation of [Custom Loader](https://stape.io/solutions/custom-gtm-loader), [Cookie Keeper](https://stape.io/solutions/cookie-keeper), [User ID](https://stape.io/solutions/user-id), [Logs](https://stape.io/solutions/logs), Monitoring etc. took 21 days. After migration to Stape from the Google Cloud Platform, the client’s existing Google Analytics 4 property stopped receiving server-side events, and it was unclear why. The setup was identical to that of the other agency clients and worked well for all of them. However, after spending a lot of time in Stape logs, chatting with the custom support team, and reading a lot of information, Vakulski-Group understood that GA4 can be buggy, and sometimes it makes sense to create a new account. An entirely new account was created (not property, but account!) in GA4 for the client and after they changed the Measurement ID to the new GA4 account, all the client’s data started to appear there immediately. After the setup started working well for GA4, then Google Ads and Meta Ads setup was migrated to the new sGTM via Stape too, and it was found that the new setup fixed all issues the client had. Results: a 22% increase in traffic and conversions After migrating to server-side tagging on Stape, a 22% increase in traffic and conversions was observed. The same thing happened with Google and Meta Ads platforms. Conclusion “Stape is a great tool. It’s easy to set up and use. It also has the best features to troubleshoot the setup properly, find issues and resolve them. Apart from that, Stape has highly competitive prices that make it the leader in the market”, Ihar Vakulski, Founder, Vakulski-Group In case you have any questions about Stape - our [support team](https://help.stape.io/hc/en-us) is available 24/7, and [community](https://community.stape.io/) resources are invaluable. Don’t hesitate to contact us or submit a ticket. Would you like to join us on server-side? Click on Try for free and complete the registration to start using Stape. --- # 90% data accuracy rise for a Dutch lighting company | Tanu Agency Source: https://stape.io/blog/ninety-percent-data-accuracy-rise-for-a-dutch-company Learn how Stape’s partner Tanu Agency helped achieve LEDWINKEL-Online a 90% data accuracy rise with server-side tracking. [LEDWINKEL-Online](https://ledwinkel-online.nl/) is a Dutch-based challenger player in the lighting sector, offering both intelligent and conventional LED solutions. Their extensive product line caters to residential and commercial environments, encompassing a wide array of designs and functionalities. LEDWINKEL-Online serves an extensive customer base across the Netherlands, Belgium, Germany, and France. In this case study, we will detail how [Tanu Agency](https://stape.io/partner/tanu-agency), a partner of Stape, assisted LEDWINKEL-Online in tackling the crucial issue of accurately tracking conversions and revenue — an essential aspect in the fiercely competitive LED market—through the implementation of server-side tagging. Problem: inaccurate conversions data Several key tracking issues were affecting the accuracy of LEDWINKEL-Online’s conversions data: 1. Broken Checkout Tracking: inconsistencies at various steps of the checkout process led to the underreporting of successful transactions. 2. Google Ads Tracking Limitations: Apple's Safari browser, which accounts for roughly 30% of the site’s traffic, restricts cookie lifespan to 24 hours, thereby reducing the accuracy of conversion tracking over longer periods. 3. Ad Blocker Interference: the use of ad blocking software by some users resulted in unrecorded visits and conversions, further distorting the analytics. 4. Cross-Device Purchases: the growing trend of consumers using multiple devices throughout their purchase journeys posed a substantial challenge in tracking conversions across these devices. LEDWINKEL-Online, being an e-commerce platform reliant on Google Ads and organic traffic, recognized the critical importance of optimizing the user journey leading to conversions. Initially configured with Shopify's native Google and YouTube app, the platform registered only about 70% of actual transaction data compared to its back-end systems. This discrepancy suggested a significant loss of insights about customer behavior and advertising efficacy, thereby hindering decision-making processes. Acknowledging these limitations, Tanu Agency proposed that the store owners investigate server-side tagging via Google Tag Manager to secure more comprehensive and precise data. Solution: Stape products integration To counter these issues, LEDWINKEL-Online adopted Tanu Agency’s recommendations, which included several advanced approaches: 1. Hybrid server-side tagging: the store continued using its existing web container while incorporating a server-side tracking environment. This dual setup allowed for richer data collection without sacrificing the advantages of traditional web analytics. 2. Custom Loader for Google Tag Manager: to mitigate Safari's cookie policy constraints, the agency enabled [Stape’s power-up Custom Loader](https://stape.io/solutions/custom-gtm-loader)that prolonged the duration of tracking cookies. Moreover, the Custom Loader was adapted to load different GTM libraries for each domain ([ledwinkel-online.nl](http://ledwinkel-online.nl/),[ledwinkel-online.be](http://ledwinkel-online.be/)). 3. Meta Conversion API: utilizing the server-side container, the store implemented [Meta's Conversion API](https://stape.io/blog/how-to-set-up-facebook-conversion-api), which facilitated more reliable tracking of user actions by directly interacting with Facebook’s systems. 4. Enhanced Conversions via DataLayer: this method involved transmitting more detailed conversion data to Google Ads through the [DataLayer](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager), thus improving the accuracy of measurable purchases. What’s more, custom DataLayer was created using the new Customer Events feature. Results: over 90% match between CRM and analytics By integrating this hybrid server-side tagging approach, significant enhancements in data accuracy were observed. For instance, the alignment between recorded revenue in Google Analytics 4 and the back-end financial data surged from 70% to over 90% within three months. There’s also a direct impact on CPA, which decreased by 23% after implementing the server-side tagging setup. Furthermore, substantial improvements in Facebook (Meta) Events Data were noted. The introduction of Meta’s Conversion API via Stape simplified the tracking process and elevated the accuracy rate to over 95%, a stark improvement over the 50% accuracy provided by Shopify's native analytics tool. Conclusion LEDWINKEL-Online’s success demonstrates the power of Stape’s server-side tagging solutions in improving data accuracy and performance. With over 90% accuracy in conversion tracking and a 23% reduction in CPA, Stape’s tools helped optimize marketing efforts and drive growth. For businesses seeking reliable data and better results, Stape offers proven solutions to enhance tracking and maximize success. Start using Stape today to unlock the full potential of server-side tagging. Would you like to join us on server-side? Click on Try for free and complete the registration to start using Stape. --- # 20% of data recovered from tracking prevention | Peak Metrics Source: https://stape.io/blog/twenty-percent-of-data-recovered-from-tracking-prevention Learn how server-side tracking with Stape helped Peak Metrics recover data blocked by ad blockers and ITP. See the impact on data volume and accuracy. Peak Metrics is a collective of digital marketing freelancers who promote sustainable brand growth through data-driven performance marketing strategies. They focus on increasing qualified traffic and conversions by providing services like digital analytics, advertising, SEO, and training. ![Peak Metrics logo
](https://cdn.stape.io/i/66f6aae897a7d221949042.png) Problem: how to make tracking more reliable Server-side tracking is an advanced technique where user requests are not sent directly from their browsers to analytics tools. Instead, they first pass through a server which manages and processes the collected data before forwarding it to tools like Google Analytics, Facebook Ads, or other platforms. Using an intermediary server helps bypass browser limitations, such as ad blockers or [Intelligent Tracking Prevention (ITP)](https://stape.io/blog/safari-itp) features in Safari, making tracking more accurate and reliable. Solution: utilizing Stape server-side tracking To maximize the effectiveness of server-side tracking, there are some key technical requirements to consider. Here are a few, though this list is not exhaustive: CNAME: the tracking server, which sets the cookie, is placed behind a CNAME record inserted into your DNS records (e.g., sgtm.yoursite.com). Tracking server in the same subnet as the website server: the tracking server, located within the same subnet as the website, ensures that requests are forwarded and processed correctly. Backup of Google, Meta identifiers, etc.: the importance of implementing server-side tracking goes beyond better statistics. By improving data collection, this method provides more complete and reliable information to advertising algorithms, like those used by Google and Meta. Therefore, backup systems for identifiers are essential for building a resilient server system (e.g., Results: more reliable data recovery One of the main advantages of server-side tracking, if implemented correctly, is the ability to recover more data, even in the presence of ad blockers and tracking prevention systems like Safari's Intelligent Tracking Prevention (ITP). According to data from a 10-day test involving over 7 million hits conducted through [Stape](https://stape.io/), a significant number of blocked requests were recovered: Total requests: 7,032,096 Recovered from ad blockers: 231,604 (3.29%) Recovered from tracking prevention: 1,456,034 (20.71%) ![Recovered requests graph](https://cdn.stape.io/i/66f6ab24e79f9201756768.png) Analyzing these numbers, it's clear that server-side tracking can help recover a significant amount of data that would otherwise be lost due to tools like ad blockers or browser-imposed limitations. Looking specifically at different browsers: Safari (Mobile and Desktop): 1.5 million requests, with 0.99% recovered from ad blockers. Chrome (Mobile and Desktop): 4 million requests, with 4.28% recovered from ad blockers. Other browsers (Brave, Edge, Firefox, etc.): 1.6 million requests, with 2.94% recovered from ad blockers. ![Recovered requests share in different browsers graph](https://cdn.stape.io/i/66f6ab915d4c8704967465.png) This shows that server-side tracking can recover a considerable amount of data, significantly improving visibility into user actions from an analytics perspective, and providing a greater volume of data to advertising algorithms (Google Ads, Meta, etc.). Even for specific activities tracked in GA4, the results were similar: AddToCart: 4.3% of requests recovered from ad blockers and 20.48% recovered from tracking prevention. Purchase: 4.27% recovered from ad blockers and 30.67% recovered from tracking prevention. ![Specific activities tracked in GA4 recovery rate](https://cdn.stape.io/i/66f6abbd6961d303211084.png) Conclusion Implementing server-side tracking not only allows you to bypass limitations imposed by browsers and ad blockers but also offers greater accuracy in the data collected. This is crucial for making informed marketing decisions. As demonstrated by the data collected in this test, you can recover a significant number of requests that would otherwise be lost, enhancing the accuracy of your analytics and optimizing your digital marketing campaigns. A big thanks to [Matteo Boscolo](https://www.linkedin.com/in/matteoboscolo/overlay/about-this-profile/) for providing us with this valuable case study of Stape product use. Need help from the experts? Don't worry, we've got you covered! Click on Get assistance and we will send you a free quote. --- # Delay requests for better timing in server Google Tag Manager Source: https://stape.io/blog/delay-requests-with-stape-power-up Boost your server-side tracking with Stape's Request Delay power-up. Delay data requests up to 2000 minutes for better timing in Google Tag Manager. Are you struggling with data being sent at the wrong time or facing issues with duplicate data in your analytics? Need to control when data requests are sent in server-side Google Tag Manager to improve timing and accuracy in your analytics setup? In this article, we will review Stape's solution for this problem - [Request Delay power-up](https://stape.io/solutions/request-delay). Request Delay use case The Request Delay power-up on Stape allows you to delay the sending of data requests in server-side Google Tag Manager (sGTM) from 1 minure to 2000 minutes. This is useful for controlling the timing of data transfers, ensuring that data is sent at the most appropriate times to improve the accuracy and reliability of your analytics. Benefits of Stape's Request Delay power-up With Stape's Request Delay power-up, you get: Control over data request timing. Reduction of duplicate or unnecessary data. Customization of data flow. How to set up Request Delay power-up? 1. [Register](https://stape.io/sign-up) or [log in](https://stape.io/login) to your Stape account to set up and use the power-up. You can use the power-up starting from the Business plan. 2. Go to Stape admin, choose a container → Power-ups → click Use next to Request Delay. ![Request Delay power-up](https://cdn.stape.io/i/6a5f66af8ac2a900327276.jpg) ![Request Delay power-up](https://cdn.stape.io/i/6a5f66c45e154338904048.png) 3. Activate the toggle near Request Delay and click “Save changes”. The power-up will activate. ![Request Delay power-up](https://cdn.stape.io/i/6a5f68278e90e905113295.png) For more details on the power-up configuration and testing, please check our [other article with detailed information](https://stape.io/helpdesk/documentation/request-delay-power-up). Conclusion Request Delay power-up ensures more accurate and timely data tracking, making it easier to manage your analytics. It's a simple way to optimize how your data flows. The only thing you need to do is activate the power-up in [Stape’s admin](https://stape.io/login). If you face any problems with the power-up, feel free to contact our [support](https://help.stape.io/hc/en-us/requests/new). --- # Add user IDs to the sGTM events data with Stape’s power-up Source: https://stape.io/blog/add-user-ids-to-the-sgtm-events-data-with-stape-power-up Optimize your server-side tracking by adding User IDs to sGTM events using Stape's power-up. This will improve your data precision and analysis. User IDs can be lost in sGTM events due to cookie blocking, cross-domain tracking issues, session expiry, misconfigurations, network errors, and privacy regulations. In this article, we will review Stape's solution for this problem - [User ID power-up](https://stape.io/solutions/user-id). User ID use case By assigning a unique user ID to each visitor, you can accurately track and link user actions across multiple devices and sessions, providing a more complete picture of user behavior and improving the precision of your marketing campaigns. This can be done automatically with the help of the User ID power-up. The User ID power-up adds a Stape-generated user ID (X-Stape-User-Id) to the request header for every incoming request within the server Google Tag Manager. User ID consists of a hash of: User IP User-agent TLS settings Hostname Benefits of User ID power-up With Stape's User ID power-up, you get: More control. It lets you manage user data securely and stay compliant with regulations. Reduced data loss. Storing the User ID in a first-party context minimizes blocking, and ensures more complete data. Improved user experience. Consistent tracking across sessions and devices lets you offer more personalized content and deals, keeping users satisfied. How to set up User ID power-up? 1. [Register](https://stape.io/sign-up) or [log in](https://stape.io/login) to your Stape account to set up and use the power-up. You can use the power-up for free regardless of your Stape plan. 2. Go to Stape admin → Power-ups → click “Use” next to User ID. ![image](https://cdn.stape.io/i/66f41a48d70a8331893730.png) 3. Turn on the toggle near User ID and click “Save changes”. The power-up will add a Stape-generated user ID (X-Stape-User-Id) to the Request Header for each Incoming Request inside the server Google Tag Manager. ![image](https://cdn.stape.io/i/66f419b5672d6873034880.png) Conclusion As privacy regulations tighten and third-party cookies face more restrictions, keeping track of users can become a bit of a puzzle. Stape's User ID solution gives you a reliable, privacy-respecting way to maintain this connection, helping you keep your data useful and your marketing on point. Improve sGTM event data with User IDs using Stape’s power-up. The only thing you need to do is activate the power-up in [Stape’s admin](https://stape.io/login). If you face any problems with the power-up, feel free to contact our [support](https://help.stape.io/hc/en-us/requests/new). Switching to server-side? Click Try for free and check all the solutions and benefits of Stape at no cost! --- # Auto convert of webhook’s data in XML to JSON with Stape’s power-up Source: https://stape.io/blog/auto-convert-of-webhooks-data-in-xml-to-json-with-stapes-power-up Check the use case for XML to JSON power-up by Stape and convert webhook’s data in XML easily. Using webhooks is a handy way to track events outside the website or app, for example, in the offline store. However, data in webhooks is often sent in XML format. For better compatibility with server GTM, it is highly recommended that data is used in JSON. In this article, we will review the solution for this problem - [XML to JSON power-up](https://stape.io/solutions/xml-to-json) by Stape. XML to JSON use case Convert webhook data from XML to JSON. Some [webhooks](https://stape.io/blog/webhook-server) send data in XML; however, GTM server-side containers work better with JSON format as it is natively compatible with JavaScript. This can be done automatically with the help of the [XML to JSON power-up](https://stape.io/solutions/xml-to-json). How to set up XML to JSON power-up? 1. [Register](https://stape.io/sign-up) or [log in](https://stape.io/login) to the Stape account to set up and use power-up. You can use the power-up for free regardless of the Stape’s plan. 2. Go to Stape admin → Power-ups → click “Use” next to XML to JSON. ![JSON power-up](https://cdn.stape.io/i/66f3ebf371696113432423.png) 3. Click “Turn on to activate power-up” and click “Save changes”. The power-up will convert XML data to JSON format. ![JSON power-up configuration](https://cdn.stape.io/i/66f3ec1441797721315564.png) Conclusion Converting data in XML to JSON has never been easier - our power-up does it automatically. The only thing you need to do is activate the power-up in [Stape’s admin](https://stape.io/login). So that all the data from webhooks will be compatible with the server GTM container. If you face any problems with the power-up, feel free to contact our [support](https://help.stape.io/hc/en-us/requests/new). Switching to server-side? Click Try for free and check all the solutions and benefits of Stape at no cost! --- # Phone Number Formatter variable for Google Tag Manager container Source: https://stape.io/blog/phone-number-formatter-variable-for-google-tag-manager-container Discover how to easily format phone numbers to the E.164 standard, improving data consistency across your marketing and analytics platforms. Phone Number Formatter variable allows you to format phone numbers into a standardized format, such as E.164, which is commonly used in international telecommunications. It can be particularly useful when you need to ensure that phone numbers collected from various sources (e.g., form submissions, data layers) are consistently formatted before being sent to external systems like CRMs, analytics tools, or other third-party services. In this blog post we will discuss how Phone Number Formatter variable works and how to set it up for both: server and web Google Tag Manager containers. The initial development of these templates was done by [Lars Friis](https://www.linkedin.com/in/lars-friis/), and it is now maintained by Stape. How it works Phone Number Formatter Variable works by taking two inputs: Phone Number: digits you want to format. Country Code (ISO 3166): country code of the phone number, which helps in formatting the number correctly according to the international standard. E.g. ‘DK’. Note that the variable now only supports European countries. The variable processes the inputs and converts the phone number into the desired standardized format. It changes the libphonenumber library (developed by Google) to correctly interpret and format the phone number based on the country code provided. How to set up Phone Number Formatter variable 1. Download: Phone Number Formatter variable for [web containers on GitHub](https://github.com/stape-io/phone-number-formatter-web-variable) or [the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/phone-number-formatter-web-variable). Phone Number Formatter variable for [server containers on GitHub](https://github.com/stape-io/phone-number-formatter-variable) or [the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/phone-number-formatter-variable). ![Phone Number Formatter variable](https://cdn.stape.io/i/66f17732c2a6d161357249.png) 2. Import the variable to your Google Tag Manager container by clicking: Templates → New Variable Template → Click three dots in the top right corner → Click import → Add template that you’ve recently downloaded. ![Phone Number Formatter variable](https://cdn.stape.io/i/66f17747cbbac911278289.png) 3. Configure the variable, by adding Phone Number and Country Code. Click Save. ![Phone Number Formatter variable](https://cdn.stape.io/i/66f177579f7a4843965027.png) Conclusion This setup will help you maintain consistent phone number formatting across your various data flows within the Google Tag Manager container. And if you need help with the setup - don’t hesitate to ask for [the audit or a consultation](https://stape.io/care). Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Klaviyo Lookup variable for Google Tag Manager server container Source: https://stape.io/blog/klaviyo-lookup-variable-for-google-tag-manager-server-container Discover how to implement the Klaviyo Lookup variable in Google Tag Manager server container to retrieve valuable user information based on 'kx' cookies. Klaviyo is a marketing automation platform primarily used for email and SMS campaigns. It's popular because it allows businesses to create highly personalized marketing messages based on customer behavior, purchase history, and other data. Klaviyo integrates seamlessly with e-commerce platforms like [server Shopify](https://stape.io/blog/server-side-tagging-for-shopify), making it easy to set up targeted campaigns that drive engagement and sales. [Klaviyo Lookup variable](https://github.com/stape-io/klaviyo-lookup-variable) enables interaction with Klaviyo's API. In this post we will discuss how it works and how to set it up in your server Google Tag Manager container. The initial development of this template was done by [Lars Friis](https://www.linkedin.com/in/lars-friis/), and it is now maintained by Stape. How it works Klaviyo Lookup variable checks for a specific cookie, called ‘kx’ or ‘_stape_kx' (set by Stape [Klaviyo tag for sGTM](https://stape.io/solutions/server-side-klaviyo-tag)) which is automatically generated by Klaviyo when a user interacts with Klaviyo-powered emails or other tracking mechanisms. This variable is configured to fetch user data from Klaviyo, depending on the presence of the 'kx' cookie, and can return either the user's email or more comprehensive user data, such as their phone number, first name, and last name. The primary use case for this variable is to enhance data collection and targeting capabilities in server-side tracking environments. For example, if a user clicks on a link in a Klaviyo email and visits a website, they would typically have the 'kx' cookie set in their browser. The Klaviyo Lookup Variable can then retrieve this user's data from Klaviyo's database and use it to enhance the data sent to other marketing platforms like Facebook or Google Ads. This can improve personalization, retargeting efforts, and data consistency across platforms. How to set up Klaviyo Lookup variable 1. Download the Klaviyo Lookup variable [from GitHub](https://github.com/stape-io/klaviyo-lookup-variable). ![Download the Klaviyo Lookup variable from GitHub](https://cdn.stape.io/i/66f16940cd8b1795033886.png) 2. Import the variable to your server Google Tag Manager by clicking: Templates → New Variable Template → Click three dots in the top right corner → Click import → Add template that you’ve recently downloaded. ![Import the variable to your server Google Tag Manager](https://cdn.stape.io/i/66f1695e207cf870549265.png) 3. Add your [Api Key](https://help.klaviyo.com/hc/en-us/articles/7423954176283) and choose the output: Email or All user_data. Click Save. ![klaviyo lookup variable configuration](https://cdn.stape.io/i/66f169883285b341999686.png) Conclusion Klaviyo Lookup variable setup is particularly valuable for enhancing user data continuity between different marketing platforms, improving cross-channel personalization, and ensuring that marketing efforts are well-coordinated across multiple touchpoints. You can find more information about [Klaviyo server-side tracking](https://stape.io/solutions/server-side-klaviyo-tag) in our blog: [Integrate Klaviyo with your website using Google Tag Manager Server container](https://stape.io/blog/integrate-klaviyo-with-your-website-using-google-tag-manager-server-container) [Set up Klaviyo website event tracking using server Google Tag Manager](https://stape.io/blog/set-up-klaviyo-website-event-tracking-using-server-google-tag-manager) [Create a user profile and track website activity in Klaviyo using server Google Tag Manager](https://stape.io/blog/create-a-user-profile-and-track-website-activity-in-klaviyo-using-server-google-tag-manager) [How to set up Klaviyo for Shopify via server Google Tag Manager](https://stape.io/blog/how-to-set-up-klaviyo-for-shopify-via-server-google-tag-manager) Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # How global data privacy laws affect user tracking strategies Source: https://stape.io/blog/how-global-data-privacy-laws-affect-user-tracking-strategies Read how global privacy laws like GDPR, CCPA, and others affect user tracking strategies. Learn how server-side tracking with Stape can help with complaint tracking. Wonder how to balance privacy and marketing? Need help figuring out what data privacy laws might affect your business? You’re in the right place. This post will cover the most crucial privacy regulations and discuss their impact on tracking strategies. We will also dive into complaint [customer data tracking](https://stape.io/blog/customer-data-collection#improve-engagement-and-conversion) and explain how Stape can help comply with data protection requirements while keeping your user engagement monitoring precise. This article will discuss all types of privacy laws and how to customize your tracking. Jump to: “[how to use server-side tracking and stay compliant successfully](https://stape.io/blog/how-global-data-privacy-laws-affect-user-tracking-strategies#digital-marketing-and-privacy-how-to-stay-compliant-and-successful)” section now. Data protection and privacy laws - macro perspective Data protection and privacy laws are evolving around the world. These laws form a comprehensive data protection framework that varies from country to country. Look at the map below to get a comprehensive view of the situation. ![Data protection laws by country](https://cdn.stape.io/i/66ed79358b7c2706358807.png) Image description:[Data protection laws by country](https://www.dlapiperdataprotection.com/) The more forward-thinking and digital the country is, the more its governments and citizens are concerned with data privacy. You might need to follow different data protection guidelines based on the region you market and sell to. Let’s closely examine the ones that influence the major markets. Definition of data protection Data protection refers to the policies, procedures, and technologies to [safeguard sensitive information](https://stape.io/blog/fix-personal-data-violations-meta) from unauthorized access, theft, corruption, or loss. It involves a combination of administrative, technical, and physical controls to ensure data confidentiality, integrity, and availability. These measures protect personal, sensitive, and biometric data from potential threats, ensuring that information remains secure and private. Importance of data protection Data protection is more critical than ever. With the increasing prevalence of cyber threats, data breaches, and unauthorized access, safeguarding sensitive information is crucial. Effective data protection measures can help prevent financial losses, reputational damage, and legal liabilities. Moreover, data protection is essential for maintaining customer trust, ensuring compliance with regulatory requirements, and protecting intellectual property. Data protection vs. data privacy While often used interchangeably, data protection and data privacy are distinct concepts. Data protection focuses on the technical and administrative measures safeguarding data, such as encryption, access controls, and data security protocols. On the other hand, data privacy concerns individuals' rights and expectations regarding collecting, using, and sharing their personal information. It involves ensuring that individuals have control over their data and that their privacy is respected. Understanding the difference between data protection and privacy is crucial for businesses to manage [customer data](https://stape.io/blog/customer-data-analytics) tracking and comply with privacy regulations effectively. ⚠️Disclaimer: This blog post is for informational purposes only and is not legal advice. Please consult a legal professional for any legal matters. General Data Protection Regulation (GDPR) The General Data Protection Regulation (GDPR) is a set of rules that control what personal information websites can collect from users and how they must manage, store, and use that data. The rules are divided into 99 articles based on fundamental data protection principles that ensure fair and lawful processing of personal data. The GDPR applies to European organizations that process the personal data of individuals in the EU and to organizations outside the EU that target people living in the EU. GDPR came into force on May 25, 2018. While the main principles are the same across Europe, each country can adjust the rules to meet specific needs. This is why knowing how GDPR applies in your country is essential. It’s also important to understand that GDPR affects businesses and websites outside Europe, including those in the USA and Asia. Even if your website is visited by someone not from Europe, you still need to follow GDPR rules. [Cookies fall under the GDPR](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive#the-general-data-protection-regulation-gdpr-and-cookies) even though they only mention cookies once in[Recital 30](https://gdpr.eu/recital-30-online-identifiers-for-profiling-and-identification/). ![online identifiers for profiling and identification](https://cdn.stape.io/i/66ed79d4ac9c7113418198.jpg) Under GDPR, [cookies are considered personal data because they can identify users](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive#what-cookies-do-and-why-they-matter). Therefore, if GDPR applies to you, obtaining cookie consent is essential. Companies can process users’ data if they can justify it with a legitimate interest. For example, processing customer data for direct marketing is considered a legitimate interest. The GDPR grants individuals several new privacy rights to give them more control over their data. This enables better personal data protection. Understanding these rights is crucial for ensuring GDPR compliance. If your business is subject to GDPR, data protection must be a core consideration in all your processes, both “by design and by default.” Consult legal experts to help you navigate the 88-page regulation. The ePrivacy Directive and the upcoming ePrivacy Regulation also support GDPR. Let’s explore these further. ePrivacy Directive [The ePrivacy Directive](https://www.edps.europa.eu/data-protection/our-work/subjects/eprivacy-directive_en), initially passed in 2002 and updated in 2009, is often called the “cookie law” because it led to the widespread use of cookie consent pop-ups. It complements GDPR and sometimes takes precedence over it by focusing on the confidentiality of electronic communications and user tracking. The ePrivacy Directive provides detailed guidelines on how users should be informed about and consent to collecting their electronic data. It emphasizes the responsibility of companies to collect and manage this data from users properly. Companies must also conduct a data protection impact assessment to evaluate the risks associated with data processing activities. See the main points of the ePrivacy Directive below: Requires user cookie consent for storing cookies. Ensures confidentiality of electronic communications. Regulates and requires consent for unsolicited communications. Sets rules for processing traffic and location data. Empowers users to control their personal data use. ePrivacy Regulation The ePrivacy Regulation, often discussed alongside the ePrivacy Directive, is different. It transforms the ePrivacy Directive into a binding law, making compliance mandatory and enforcing penalties for data privacy violations. Ensuring data protection compliance is crucial for avoiding penalties and maintaining user trust. The ePrivacy Regulation is nearing its final stages of development. It aims to establish more precise rules regarding the use of cookies. See the main points of ePrivacy Regulation below: Cookie consent. Requires explicit user consent for cookies and tracking. Communication privacy. Protects the confidentiality of electronic communications. Direct marketing. Regulates unsolicited electronic marketing, needing user consent. User control. Enhances user control over data and privacy settings. Global reach. Applies to non-EU services targeting EU users. As of September 2024, the ePrivacy Regulation has still not been finalized. California Consumer Privacy Act (CCPA) If your business operates in California, you must understand CCPA compliance, use a consent management platform to manage consumer rights and conform to local data privacy regulations. The California Consumer Privacy Act (CCPA) could impact how your website is permitted to manage the personal information of California residents. Appointing a data protection officer can help businesses manage compliance with CCPA and other data privacy regulations. The CCPA gives consumers more control over the personal information that businesses collect from them. The CCPA rules guide businesses in following the law. This critical law gives California consumers several vital rights: The right to know what personal information a business collects, how it’s used, and who it’s shared with. The right to ask for their personal information to be deleted (with some exceptions). The right to opt out of the sale or sharing of their personal information. The right to not be mistreated for using their CCPA rights. In November 2020, California voters passed Proposition 24, the California Privacy Rights Act (CPRA). This act changed and added to the CCPA with more privacy protections, which started on January 1, 2023. From this date, consumers gained new rights, such as: The right to correct wrong personal information that a business has about them. The right to limit how their sensitive personal information is used and shared. Businesses that follow the CCPA must respond to consumer requests to use these rights and give clear information about their privacy practices. The CCPA applies to many companies, including data brokers. California Privacy Rights Act (CPRA) The California Privacy Rights Act (CPRA), which took effect in January 2023, expands and updates the CCPA, giving consumers more rights. Since the CPRA doesn’t create a new law, it is usually called the “CCPA” or “CCPA, as amended.” The CPRA introduces several critical changes to the CCPA: New consumer rights. It adds rights to correct personal information and limits the use of sensitive data. Sensitive data category. It introduces “sensitive personal information” with additional protections. Data retention limits. It requires businesses to disclose and limit how long they keep personal data. New enforcement agency. It establishes the California Privacy Protection Agency (CPPA) for enforcement. The California Privacy Protection Agency (CPPA) is the data protection authority responsible for enforcing the CPRA. Broader data sharing rules. It extends opt-out rights to include sharing, not just selling, personal data. Higher business threshold. It applies to businesses handling data of 100,000 or more consumers, up from 50,000. These changes make the CPRA more comprehensive than the CCPA. Other data privacy laws Other important privacy and data protection laws exist worldwide. Below are the most influential ones to consider. Title | Country | Overview Personal Information Protection Law (PIPL) | China | It regulates the processing of personal data in China, with a strong focus on consent and cross-border data transfers. Brazilian General Data Protection Law (LGPD) | Brazil | It provides comprehensive data protection rules and grants individuals rights over personal data. Personal Data Protection Act (PDPA) | Singapore | It sets rules for collecting, using, and disclosing personal data, ensuring privacy protection in public and private sectors. Protection of Personal Information Act (POPIA) | South Africa | It governs the processing of personal information and gives individuals the right to protect their privacy, much like GDPR. Privacy Act 1988 | Australia | It covers how personal information is handled by government and businesses, focusing on protecting privacy and data security. Federal Law on the Protection of Personal Data (LFPDPPP) | Mexico | It regulates how private entities handle personal data, ensuring individuals have control over their information. Data Protection Act 2018 | United Kingdom | It implements the GDPR in the United Kingdom, with additional provisions tailored to the UK context, maintaining strong data protection standards post-Brexit. A lot to keep track of while working with customer data, isn’t it? We recommend seeking professional legal advice for any business handling the personal data of their users. Digital marketing and privacy: how to stay compliant and successful? Navigating privacy regulations while staying on top of your sales and marketing efforts is challenging. User data privacy in marketing is a hot topic that can be approached from different angles. A robust data protection strategy is essential for navigating privacy regulations while maintaining effective marketing efforts. At Stape, we believe that turning to server-side tracking and first-party data is a strategic visionary move a business should take to stay ahead of the competition. Here’s how it works and why it’s essential. First-party data One of the best ways of preparing for the cookie limitations due to privacy laws is to switch to first-party data. First-party data is the information you gather directly from your customers through your channels. It includes all the details you collect about how customers engage with your business using the tools and interactions you control. Strong data protection measures can help businesses safeguard the first-party data they collect. This data allows you to enhance personalization and strengthen your customer relationships. You can also refine targeting by leveraging customer behavior and purchase history. Server-side tracking Server-side tracking involves collecting and processing data on your servers rather than relying on third-party services. This method provides greater control over the data you collect and its use, which is crucial for privacy compliance. [Server-side tracking offers adequate data protection solutions](https://stape.io/blog/server-side-tracking-gdpr), providing greater data collection and usage control. Proper server GTM setup with the right solution and power-ups can help you comply with GDPR rules in several ways. Issue | Stape solution | How it works Data loss caused by Ad Blockers and ITP. | [Custom GTM and GA4 Loader](https://stape.io/solutions/custom-gtm-loader) | The Custom Loader modifies the loading paths for GTM and GA4 scripts, making them more resistant to ad blockers and ITP. Using it with a Custom Domain helps set first-party cookies, extend their lifetime, and protect scripts from being blocked. This power-up is available on all plans. To activate it, log in to your stape.io account, add your WEB GTM ID in the container power-ups section, and check the modified requests in the console. Track visitors' locations. | [Geo Headers](https://stape.io/solutions/geo-headers) | The GEO Headers power-up allows you to include X-GEO-Country, X-GEO-Region, X-GEO-City, X-GEO-Ipaddress, and X-GEO-PostalCode in the event data within your server Google Tag Manager. This feature utilizes GeoLite2 data by MaxMind, which is available at MaxMind. A need to protect user privacy. | [Anonymizer](https://stape.io/solutions/anonymizer) | The Anonymizer power-up is available for all Stape users. Its main goal is to remove or anonymize user data from Google Analytics 4. Check out our video manual on anonymizing user data in GA4 with server GTM—Anonymizer power-up. A need to keep all data processing within the European Union. | [Stape Europe](https://stape.io/eu-hosting) | With Stape Europe, you do not need to worry about an EU proxy server to stay GDPR-compliant. You can directly access data anonymization in the server's Google Tag Manager interface. Final thoughts Regulations such as GDPR, CCPA, and CPRA require you to manage collecting and sharing information about your site visitors carefully. Sharing any Personally Identifiable Information (PII) with third-party vendors is prohibited. Data protection best practices can help businesses ensure compliance and protect user data effectively. With server-side tracking, you have complete control over the data flow, ensuring that each vendor only receives the specific information you’ve configured in your server-side tags. [Get Stape for free today](https://stape.io/) and ensure your server-side tracking is compliant and secure! Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Top cloud databases for server GTM explained Source: https://stape.io/blog/top-cloud-databases-for-server-gtm-explained Are you looking for a cloud database for server GTM? Check out Stape’s analysis of popular ones and pick the right one for you. A server GTM container functions as a reverse proxy. The drawback of such an approach is that there is no data storage. However, there are situations when you would need temporary data storage to use it in your server GTM. In such cases, a cloud database will serve. In this article, we will review the most popular databases for storing data. We will highlight each database's killer features to make your decision-making as easy as possible. Use cases of databases for server Google Tag Manager In case you want to [create a customer database or use Customer Data Platforms (CDP)](https://stape.io/blog/cdp-vs-crm) you will need a database. It helps efficiently gather and store all the information about your customers/website visitors. Among the popular scenarios for using a cloud database are: Enrich the pageview event with user data from the purchase event. Save the click ID and use it for events when the click ID is not available. If you need to set up any of the trackings we described above, please see our article with detailed instructions on [how to do it using Stape Store and solutions developed by Stape](https://stape.io/blog/building-a-custom-cdp-and-enriching-event-data-using-server-side-gtm#the-setup). How it works Let's consider how data flow works. 1. Whenever the user makes a purchase, CRM sends a webhook to the server GTM (in case you use [webhooks](https://stape.io/blog/webhook-server)). 2. The Data Client processes the requests and makes them in sGTM format. 3. In server GTM, the configured variable looks for the user who purchased the database: If the user exists - the variable takes the new data from the request (if there is such) and merges all the data. If no such user exists in the database, - it creates a new record. 4. A customer profile with enriched data is sent to the vendor (for example, Google Analytics, Facebook Ads) through a server-to-server connection. ![Merging and sending data to sGTM](https://cdn.stape.io/i/66ed3f7d43aa9250065278.png) Merging and sending data to sGTM What to consider while choosing a database for the GTM server container Database type There are relational databases (SQL-based) and non-relational databases (aka NoSQL). The difference is in how they are structured. Relational ones use tables with predefined schemas (like spreadsheets), while non-relational databases are more flexible and can store data as documents, key-value pairs, or graphs. We recommend using NoSQL databases, as their horizontal scale design makes them better for data scaling. They can handle large volumes of event data, such as numerous impressions, page views, and clicks. In the next section, we review such databases. Integrations you already use If you have integrations with Stape, Google Cloud, Amazon, or Azure, we suggest paying attention to Stape Store, Firebase, DynamoDB, or Cosmos DB accordingly. This way, the setup process may be easier for you or for the developers you ask to configure data storage. Traffic volume To pick the right database, you need to understand the approximate volume of traffic that needs to be processed and stored. For websites or apps with many concurrent users and massive real-time updates, it is better to consider databases such as DynamoDB or Cosmos DB, as they can effectively handle up to 100 million daily requests. Pricing systems Some databases may be completely free (such as Stape Store for users with [Pro or higher plan](https://stape.io/price)) in this case, skip this criteria. Usually, databases stick to specific plans (like Firestore does) or on-demand capacity (like Amazon DynamoDB or Azure Cosmos DB). You may benefit from an on-demand capacity pricing model if you have a predictable request volume. Popular databases for server GTM Below, we review top databases, highlighting what purpose they will serve the best, but here is a quick recap, and you can jump directly to the section with the detailed database description. Database | Best for [Stape Store](https://stape.io/blog/top-cloud-databases-for-server-gtm-explained#stape-store) | All types and sizes of businesses that host on Stape [Google Firestore](https://stape.io/blog/top-cloud-databases-for-server-gtm-explained#google-firestore) | Businesses that host on the Google Cloud Platform [Amazon DynamoDB](https://stape.io/blog/top-cloud-databases-for-server-gtm-explained#amazon-dynamo-data-base) | Websites that receive numerous requests per day [Azure Cosmos DB](https://stape.io/blog/top-cloud-databases-for-server-gtm-explained#azure-cosmos-data-base) | Large websites that need comprehensive flexibility Stape Store Best for all types and sizes of businesses that host on Stape. Stape Store will be the most handy and effective solution for those who already use Stape or are going to [start using it](https://stape.io/sign-up). The solution was developed specifically to store data from server GTM, so you can avoid any errors due to complicated configuration. You can store JSON data organised in documents (1mb is the maximum size of a document). The database is seamlessly integrated with Stape hosting for server GTM, and no additional setup is required. We provide all the required instructions and documentation on how to use Stape Store, if you have any problems you can contact our [support team](mailto:support@stape.io). Besides, our solution is completely free for those who use [Pro or higher plan](https://stape.io/price), which makes it stand out among other databases. ![Stape Store](https://cdn.stape.io/i/66ed4158a544e495186308.png) Stape Store Solutions to write data, retrieve and sync data We have created solutions to write, retrieve and sync data to work with Stape Store: [Stape Store Writer tag](https://stape.io/solutions/stape-store-writer-tag) - developed to store authorisation keys and other valuable data for tracking. [Stape Store Lookup variable](https://stape.io/solutions/stape-store-lookup-variable) - lookup the necessary data from the doc. [Stape restore variable](https://stape.io/solutions/stape-store-restore-variable) - write and get data at the same time. If Stape Store works for you, our article on [how to use Stape Store provides detailed instructions](https://stape.io/blog/building-a-custom-cdp-and-enriching-event-data-using-server-side-gtm). Google Firestore Best for websites that host on Google Cloud Platform. Firestore is a good option for those hosting server-side GTM on the Google Cloud Platform, providing seamless integration with other Firebase and GCP products. In terms of functionality and interface, Stape Store and Firestore are pretty similar. Firestore is a document-based (JSON) database; it works excellently for offline-first websites due to its native cache implementation. When integrated with Google Firebase, Firestore can use web socket connections for data exchange. This allows Firestore to build real-time applications. Firestore offers a free trial of 50,000 reads, 20,000 writes, and 20,000 deletes per day. Depending on the number of operations, it can charge money according to its pricing. ![Firestore interface](https://cdn.stape.io/i/66ed424d453d0299789141.png) Firestore interface Solutions to write data, retrieve and sync data At Stape, we developed templates for Firestore that will help to write and retrieve data in your server GTM: [Firestore Writer tag](https://github.com/stape-io/firestore-writer-tag?tab=readme-ov-file#firestore-writer-tag-for-google-tag-manager-server-side) - use it to record and write data from the server Google Tag Manager to Firestore. [Firestore reStore Variable](https://github.com/stape-io/firestore-restore-variable) - store data inside Firebase and restore data values in case they are found by identifiers. [Firestore Request Delay tag](https://stape.io/solutions/firestore-request-delay-tag) - manage the timing of event processing in sGTM by delaying, replaying, or storing events in Firebase Firestore. If Firestore works for you, please see our instructions on how to set up the solutions developed by Stape: [How to install Firestore Request Delay tag for Google Tag Manager server container](https://stape.io/blog/firestore-request-delay-tag-for-google-tag-manager-server-container#how-to-install-firestore-request-delay-tag-for-google-tag-manager-server-container) [How to write data to Firestore from server Google Tag Manager](https://stape.io/blog/write-data-to-firestore-from-server-google-tag-manager) Amazon Dynamo Data Base Best for websites that receive numerous requests per day. Amazon DynamoDB is a low-latency database that can effectively process a large number of requests per day (up to 100 million requests). A low-latency database is a management system optimised for extremely fast response times. It ensures that when a user requests data, the system retrieves and returns it with minimal delay or lag. So, Amazon DynamoDB is a good fit for high-traffic websites or apps, including those running [Amazon conversion tracking](https://stape.io/blog/amazon-server-side-tracking-conversions-api) via server GTM, where storing and enriching conversion event data at scale is essential. Also, Amazon DynamoDB is a popular database, and most back-end developers have dealt with it in one way or another, making it easier for your developer to work with it. DynamoDB charges clients based on an on-demand capacity model, meaning you pay for the actual number of read and write requests you made. This can be more cost-efficient if your usage patterns are consistent. ![Amazon DynamoDB](https://cdn.stape.io/i/66ed43429fd02497171118.png) Amazon DynamoDB Azure Cosmos Data Base Best for large websites that need comprehensive flexibility. Like Amazon DynamoDB, Azure Cosmos DB is a low-latency database that can process a large number of requests per day. Cosmos DB provides a high level of flexibility and is known as a multi-model database service. It supports document, key-value, wide-column, and graph-based databases. Azure's pricing system is based on consumed Request Units (RUs), which makes Azure Cosmos DB's pricing similar to Amazon DynamoDB's. ![Azure CosmosDB](https://cdn.stape.io/i/66ed43a0145ff219982117.png) Azure CosmosDB To sum up A server-side Google Tag Manager has a limitation: it lacks data storage. However, there are cases when you may need to use a temporary data storage solution (e.g. if you want to create a customer database), and the cloud databases can help here. Among the frequently used databases are Stape Store, Firestore, Amazon DynamoDB, and Azure Cosmos DB. Each database has advantages and can be a great fit for specific cases. To pick the right one, we advise looking for NoSQL databases as they are better for data scaling, pay attention to the integrations you already have as it may be easier to set data storage and know your website or app traffic volume. As a quick recap, we have a kind of "winning categories" for each database to make it easy for you to make a decision: [Stape Store](https://stape.io/solutions/stape-store) - seamless integration with Stape; it provides free use for those with a Pro or higher plan; you don't need to set up a database additionally, and there are no data storage limits. Google Firestore - best for those hosting server-side tagging on Google Cloud Platform and offline-first websites. Firestore provides separate plans according to the number of requests. Amazon DynamoDB - a popular database for websites that receive numerous daily requests (up to 100 million requests). It charges clients based on an on-demand capacity model. Azure Cosmos DB - a good option for large websites that need comprehensive flexibility. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Consent Parser variable for Google Tag Manager server container Source: https://stape.io/blog/consent-parser-variable-for-google-tag-manager-server-container Decode and interpret Consent Mode v2 strings with a Consent Parser variable for server Google Tag Manager. [Consent Mode](https://stape.io/blog/google-consent-mode-v2) is a feature by Google that allows websites to adjust how they track users based on their consent choices regarding cookies, advertising, analytics, and other categories of data processing. Stape created a [Consent Parser variable](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/consent-parser-variable) that reads the encoded Consent Mode v2 string from the ‘gcd’ standard parameter of GA4 hit, decodes it, and returns the consent states for various categories (e.g., ad_storage, analytics_storage) in a readable format. This helps determine what data can be collected and processed based on user preferences. This variable is useful for websites using Consent Mode to manage user privacy preferences, especially in the context of privacy laws like [GDPR and CCPA](https://stape.io/blog/server-side-tracking-gdpr). By decoding the consent string, server-side tags can selectively fire or avoid firing based on the user's consent, ensuring compliance with legal requirements. How to install Consent Parser variable 1. [Set up server Google Tag Manager container on Stape.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. To use this template in your workspace, open Google Tag Manager → choose Templates in the left menu → click Variables Templates field → press Search Gallery button → select Content Parser by Stape → press Add to workspace button. ![Consent Parser template](https://cdn.stape.io/i/69722acecebf6677712489.png) 3. Go to Variables in the left menu → press New button → click Variable Configuration field → choose Consent Parser → press Save button. ![Content Parser variable ](https://cdn.stape.io/i/69722b4d1e38b894824748.png) 4. Go to Variables → New → Choose ‘Consent Parser’ → Click Save. The variable works based on the ‘gcd’ parameter that collects GA4 automatically if your consent banner works with Google Consent Mode support. The variable itself will find ‘gcd’ in the incoming hit and decode all the details in it into separate categories. ![Consent Parser variable preview](https://cdn.stape.io/i/66ebfd0684053863356363.png) In the variable [Analytics Debugger OpenAPI](https://openapi.analytics-debugger.com/ui/#/decode/decodeConsentModeV2) is used to decode the consent string. This is a handy tool for parameter debugging that you can use online: Collect the encoded Consent Mode string from a user session or test event. Paste the string into the decoder tool to view the decoded values. Compare the decoded consent states with what you expect to see based on the user's consent choices. Conclusion Here are three benefits of using the Consent Parser variable in server-side Google Tag Manager: Compliance with privacy laws: this variable ensures websites adhere to privacy regulations like GDPR and CCPA. It enables selective data collection and processing based on user consent, helping you remain compliant with legal requirements. Efficient consent management: easily manage and implement user consent preferences for categories such as analytics and ads for tags on server GTM container. This makes it simpler to control which server-side tags should fire, based on real-time user consent. Respect user choices while still gathering valuable data when consent is granted. This boosts trust with users by limiting tracking to the agreed-upon categories. And if you’d like to read more about Consent Mode, here you can find some useful articles: [Consent Settings for server GTM tags](https://stape.io/blog/consent-mode-server-google-tag-manager) [Consent mode in server Google Tag Manager](https://stape.io/blog/consent-mode-server-google-tag-manager) [Google Consent Mode V2](https://stape.io/blog/google-consent-mode-v2) [Server-side consent management with sGTM and Cookiebot](https://stape.io/blog/consent-mode-server-google-tag-manager) [How to use consent status in the server GTM](https://stape.io/blog/server-side-tracking-GDPR#how-to-use-consent-status-in-the-server-gtm) [Cookieless tracking in Google Analytics 4](https://stape.io/blog/cookieless-tracking-ga4) [EU-owned proxy server for sGTM or how to use Google Analytics GDPR compliant way](https://stape.io/blog/eu-owned-proxy-server-or-how-to-use-google-analytics-gdpr-compliant-way) Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # 95% tracking accuracy after fixing a 30% conversion data gap in Google Ads and GA4 | ROI Assist Source: https://stape.io/blog/roi-assist-achieves-a-thirty-three-percent-increase-in-facebook-ads-tracking-accuracy-with-stape-server-side-tracking Learn how Stape partner ROI Assist helped their clients record a 33% growth in data accuracy with server-side tracking [ROI Assist](https://stape.io/partner/roi-assist), a leading agency specializing in paid advertising and conversion tracking, faced significant challenges with tracking accuracy on Facebook Ads and Google Ads for their clients. With a gap of 40% in purchase data from Facebook Ads Manager and 30% in Google Ads, ROI Assist sought a solution to bridge this discrepancy and enhance their tracking capabilities. Challenge: inaccurate Facebook Ads and Google Ads conversion tracking The client was experiencing significant discrepancies in conversion data between Shopify sales and what was being reported on Facebook Ads Manager and Google Ads. Specifically: 40% of purchase data was missing in Facebook Ads Manager. 30% of conversion data was missing in Google Ads and Google Analytics 4 (GA4) reports. This discrepancy led to an incomplete view of performance, affecting decision-making and budget allocation for campaigns. Solution: implementing Stape server-side tracking To resolve these issues, ROI Assist set up Stape server-side tracking using [Stape's Power-ups](https://stape.io/solutions/category/power-ups) and [Stape Store](https://stape.io/solutions/stape-store).The implementation included: [Stape server GTM hosting](https://stape.io/blog/stape-an-alternative-to-google-cloud-platform) Power-ups like [User ID](https://stape.io/solutions/user-id), [Custom Loader](https://stape.io/solutions/custom-gtm-loader), [GEO headers](https://stape.io/solutions/geo-headers) Stape Store for storing click ID, cookie value, email and restore those data if deleted from visitor browsers. By shifting from Shopify's native "Facebook & Instagram" and "Google" sales channels for tracking to Stape's robust server-side tracking, it was made possible to ensure that the data was accurately captured and reported back to the respective platforms. Results: improved data accuracy The transition to Stape server-side tracking brought immediate and impressive improvements: Facebook Ads: [Facebook Ads conversion tracking](https://stape.io/blog/facebook-tracking) accuracy increased by 33.65%, from 60% to 93.65%. Google Ads and GA4: tracking accuracy improved to 95%, addressing the 30% data shortfall and enhancing overall data reliability. These results demonstrate a significant improvement in data accuracy, leading to more effective campaign optimization and decision-making. Conclusion The successful implementation of Stape server-side tracking solutions has provided ROI Assist and their clients with a more accurate and reliable data tracking system. The reduction in data discrepancies has enabled better campaign management and optimization. “Stape’s solution has been a game-changer for us. The ease of use and cost-effectiveness compared to traditional Google Cloud servers made it the ideal choice. We’ve seen remarkable improvements in tracking accuracy, which has greatly benefited our clients’ advertising performance.” - ROI Assist Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Math variable for Google Tag Manager server container Source: https://stape.io/blog/math-variable-for-google-tag-manager-server-container Perform calculations in server GTM. Use the Math variable to multiply, divide, add, or subtract values for ad spend, conversion adjustments, and custom metrics. [Math variable](https://github.com/stape-io/math-variable) helps you perform basic mathematical operations between two values. It’s particularly useful when working with dynamic values such as calculating percentages, applying formulas, or adjusting numeric values based on other variables. The initial development of this template was done by [Lars Friis](https://www.linkedin.com/in/lars-friis/), and it is now maintained by Stape. Use cases: Ad spend calculations: if you’re setting up something like [Profit Over Ad Spend (POAS)](https://stape.io/blog/profit-over-ad-spend-based-tracking-for-google-ads-and-google-analytics), you might use the Math Variable to dynamically calculate the ratio between revenue and ad spend. Conversion adjustments: you can use this to adjust conversion values based on a given factor or percentage. Custom metrics: in analytics, you may need to calculate new metrics by multiplying or adding various values from the data you collect. How it works ![Math variable for Google Tag Manager server container](https://cdn.stape.io/i/66e17e600a81e465970572.png) This variable offers a simple configuration where you can: Multiply: multiply two values. Divide: divide the first value by the second value. Add: add two values together. Subtract: subtract the second value from the first value. How to set up Math variable Before implementation, make sure you have [set up server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 1. Download Math variable [from GitHub](https://github.com/stape-io/user-data-extractor-variable) or get it from [the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/math-variable). ![Download Math variable](https://cdn.stape.io/i/66e17e9fb7fe9081972009.png) 2. Import the variable to server Google Tag Manager by clicking Templates → New Variable Template. Click three dots in the top right corner → Click import → Add template that you’ve recently downloaded → Click Save. ![Download Math variable](https://cdn.stape.io/i/66e17ebfdccea971020021.png) 3. Select the operation you want to perform (Multiply, Divide, Add, or Subtract). For Value 1 and Value 2, you can either enter static values or reference other variables by clicking on the icon. Click Save. 4. Once the variable is set up, you can reference it in your tags (e.g., Google Ads conversion tracking, analytics, etc.). Simply use the Math Variable in the relevant field of the tag configuration. To sum up You can easily perform real-time calculations based on dynamic values within the GTM environment, without needing to implement external scripts. Math variable is to the rescue :) If you need help with your Stape account, please don’t hesitate to [leave a ticket](https://stapehelp.zendesk.com/hc/en-us/requests/new). Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Pub/Sub Publish tag for Google Tag Manager server container Source: https://stape.io/blog/pub-sub-publish-tag-for-google-tag-manager-server-container Learn how to use the Pub/Sub Publish tag in server GTM to seamlessly send event data to Google Cloud Pub/Sub for data processing and automation. [Pub/Sub Publish tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/pub-sub-publish-tag) allows users to send messages to a Google Cloud Pub/Sub topic directly from server containers. It connects GTM with Google Cloud services, enabling you to send event data from your GTM containers to your cloud infrastructure. What is Pub/Sub? Pub/Sub, short for Publish/Subscribe, is a messaging service from Google Cloud that helps different systems communicate with each other. Here’s a simple example: imagine you have two people, one who shares information (the "publisher") and one who receives it (the "subscriber"). Pub/Sub allows the publisher to send messages (like data or updates) to a topic, which is like a mailbox. Then, the subscriber can take the messages from the mailbox whenever they're ready. It’s useful when you want to send data from one place (like a website or app) to another place (like a cloud server), especially for tasks like processing data or triggering actions. Pub/Sub makes this data flow automatic and easy to manage! Here’s [a detailed documentation from Google](https://cloud.google.com/pubsub/docs/overview). How to use Pub/Sub Publish tag? A common use case of the Pub/Sub Publish tag is data processing pipelines. For instance, if you're tracking certain events (like purchases, sign-ups, etc.), you may want to push this data into Google Cloud for further processing, analysis, or integration with other systems. Using Pub/Sub, you can route these events into Google Cloud services like [BigQuery](https://stape.io/blog/write-data-to-bigquery-from-google-analytics-4) for analytics or into a Google Cloud Function for custom processing. Example: you want to track user purchases on your e-commerce website and automatically push that data to your cloud infrastructure, where it gets processed to trigger downstream workflows like order fulfillment or sending customer notifications. How to set up Pub/Sub Publish tag 1. [Create a Service account](https://support.google.com/a/answer/7378726?hl=en) in Google Cloud with appropriate Pub/Sub roles. This account will allow your GTM container to publish messages to a specific Pub/Sub topic in your Google Cloud Project. ![Create a Service account in Google Cloud with appropriate Pub/Sub roles](https://cdn.stape.io/i/66df0db6e1ee1499785510.png) 2. After creating the account, download the JSON key file. This file is essential because you'll upload it to the Stape power-up later. 3. Before implementation, make sure you have [set up server Google Tag Manager container on Stape.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) [Log in to your Stape account.](https://stape.io/login) Open your sGTM container and click the Power-ups tab. Find Google Service Account and click Use. ![Log in to your Stape account. Open your sGTM container and click the Power-ups tab. Find Google Service Account and click Use.](https://cdn.stape.io/i/66df0e2a77354237960997.png) Activate the power-up and upload service account credentials file. Click Save changes button. ![Log in to your Stape account. Open your sGTM container and click the Power-ups tab. Find Google Service Account and click Use.](https://cdn.stape.io/i/66df0e42e5cb3968971257.png) 4. In the Google Cloud Console, go to Pub/Sub under the Cloud Console menu. Click on Create Topic. Give the topic a name (you will use this name when setting up the tag in GTM). This topic will be the destination where GTM sends its data. ![Google Cloud Console, go to Pub/Sub under the Cloud Console menu](https://cdn.stape.io/i/66df0e8154816826948761.png) 5. Download Pub/Sub Publish tag [from GitHub](https://github.com/stape-io/pub-sub-publish-tag) or add it [from the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/pub-sub-publish-tag). Import the tag to server Google Tag Manager by clicking Templates → New Tag Template. Click three dots in the top right corner → Click import → Add template that you’ve recently downloaded → Click Save. ![pub/sub tag](https://cdn.stape.io/i/66df0ecc15bed695106825.png) 6. Configure the tag by filling out the following fields: ![pub/sub tag](https://cdn.stape.io/i/66df0ee801347024972204.png) Project - write your [GCP project ID](https://support.google.com/googleapi/answer/7014113?hl=en). Topic - Pub/Sub topic name, which you created on step 4. Add Event Data - add all Event Data to the message. If Event Data and Custom Data have the same field, the Custom Data value will be used for that field. In other words, you can override Event Data values with Custom Data. Add Timestamp - this option will add the millisecond timestamp to the message. Skip null or undefined values - this option allows skipping items from customDataList with undefined or null values. 7. Set a trigger. Decide when you want the Pub/Sub Publish tag to fire. This could be on any specific event you need. To sum up Pub/Sub Publish tag for server GTM offers a powerful way to integrate Google Cloud with your event tracking setup. By sending event data from your GTM containers directly to Google Cloud Pub/Sub, you open up a world of possibilities for further data processing, analysis, and automation. Whether it's routing purchase data to BigQuery for analysis or triggering downstream workflows like order fulfillment through Google Cloud Functions, this tag provides a flexible, scalable solution for managing data within your cloud infrastructure. Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # What is event tracking in GA4: a guide to boosting your data insights Source: https://stape.io/blog/what-is-event-tracking-in-ga4-a-guide-to-boosting-your-data-insights GA4 event tracking helps monitor user interactions, analyze data, and optimize marketing strategies. Set up accurate data collection with ease! When Google Analytics 4 (GA4) was introduced to the general audience, it was presented as an event-based tracking tool that views everything from pageviews to purchases as events within its system. GA4 uses an event tracking code to monitor user interactions, providing detailed insights into user behavior. One key concept in GA4 is the ‘event name.’ Think of it as a filing system for your data. It's a classification used to organize and track similar events in Google Analytics. Understanding event names is crucial for effective reporting and capturing user interactions. GA4 has been around for quite a while now, so there are tons of manuals, tutorials, and guides on how to track events and set up this tool correctly. Yet, it can be challenging for a newcomer to master event tracking from scratch. ![what is event tracking](https://cdn.stape.io/i/66df03b4d9e41291480804.png) If you're new to the world of event tracking and data insights management, you're in the right place. What is event tracking? It's like having a magnifying glass for your website or app, allowing you to see every user interaction in detail. How do you figure it out, and why do you need to start asap? All the answers are waiting for you below. Let’s start. What is event tracking, and how does it work? In Google Analytics 4 (GA4), event tracking is all about understanding how people interact with your website or app beyond basic page views. GA4 relies on a tracking code to capture user interactions and collect data, enabling businesses to gain insights into user behavior and optimize their strategies. It lets you capture many user actions, like button clicks, video plays, downloads, form submissions, and more. GA4 relies heavily on these events to gather data, making it a powerful tool for exploring user behavior. Below, you can see a simplified flow of GA4 event tracking. It consists of four steps. ![how event tracking works in ga4](https://cdn.stape.io/i/66df0435566ae633215844.png) What events can you track in GA4? In Google Analytics 4 (GA4), events that track user interactions on your website or app are divided into key types. Here they are: Automatically collected events page_view session_start user_engagement first_visit Enhanced measurement events scroll click file_download video_start, video_progress, video_complete form_submit Recommended events sign_up login purchase add_to_cart Custom events my_custom_event E-commerce events view_item add_to_wishlist begin_checkout purchase view_cart view_promotion remove_from_cart view_item_list select_item add_shipping_info add_payment_info These event types allow GA4 to offer more detailed insights into user behavior. Thanks to them, you can customize tracking to your specific needs. What makes event tracking in GA4 stand out? Event parameters. Events in GA4 aren’t just freestanding actions—they come with extra details called parameters. For example, if a user makes a purchase, you can track the product name, price, and quantity, giving you richer insights into user interaction. Event tracking can also measure the effectiveness of marketing campaigns in terms of user engagement and conversions. Event tracking enables businesses to collect, analyze, and act on user behavior data, providing a comprehensive understanding of user interactions across multiple channels. Custom events. GA4 doesn’t just limit you to standard or recommended events. You can create custom events tailored to your specific needs, which means you can track just about any vital interaction for your business. User properties. Beyond tracking events, GA4 also lets you record information about your users, like their subscription level or user type. It helps you create more personalized and effective audience segments. Why does event tracking matter in GA4? Better insights. Event tracking data allows you to go beyond basic metrics and understand detailed user interactions on your site or app. This data helps you clearly understand what users are doing and why. A clear user journey map. By tracking events, you can map out the entire user journey, spot where users drop off, and make adjustments to improve conversions and overall experience. Flexible conversion tracking. In GA4, events can be directly tied to conversions, which is vital for measuring how well your marketing efforts drive desired actions. Actionable data. The detailed event data you collect provides actionable insights into what’s working and what needs improvement, enabling you to make smarter decisions to boost engagement and performance. Cross-platform tracking. GA4 is designed to work across both websites and apps, so you can track events and user behavior across different platforms and devices, giving you a complete view of your audience. Advanced analytics with machine learning. GA4 leverages machine learning to offer predictive insights, like the probability of a user making a purchase, which can help you proactively engage users who are most likely to convert. Flexibility and customization. Since GA4’s tracking is event-based, it offers much more flexibility than the old Universal Analytics. You can tailor the tracking to fit your business's unique needs, making it easier to get the insights that matter most to you. This level of customization should reassure you that GA4 can be adapted to suit your specific requirements. Event tracking in GA4 helps you to understand your audience better. By knowing exactly how users interact with your site or app, you can take control of your marketing and sales campaigns. With this understanding, you can adjust your strategies, improve user experience, and drive more sales. It's all about putting the power in your hands. How to set up event tracking in GA4? Setting up event tracking in GA4 may seem daunting initially, but it's a straightforward process. Breaking it down into clear and simple steps, you'll find that it's not as complex as it may appear. Accurate data collection is essential, and ensuring the correct implementation of the event tracking code is crucial. With the proper guidance, you can master event tracking in GA4. Here’s how to get started with event tracking in GA4*: *Check your platform naming taxonomy/documentation for more details. Step 1. Plan your events Start by deciding what your needs and expectations are. Create a data tracking map that outlines what you want to track for effective Google Analytics event tracking, focusing on core event components like event name, parameters, triggers, and event category. Keep naming consistent - it helps keep your data clean and easy to analyze. To clarify, event categories are not strictly defined. To make things easier and the picture more precise, you can set event categories like: User interaction event Navigation event Content engagement event E-commerce event System event Custom event One important thing to note here is that you should have some events on your website or inside your app. That would be overwhelming. Prioritize tracking events that deliver valuable insights you can take action based on. In other words, track events linked to your business goals and KPIs. Step 2. Set up your data layer The data layer is where you define the data you want to pass to GA4. A data layer is a JavaScript object that collects details about user interactions on your website. With its help, you can collect virtually any data, starting with product views and up to the user's operating system. Utilizing data layers in GTM enables you to configure more targeted tracking tags and triggers, providing richer insights into user behavior. A well-structured data layer is also the foundation of any [tagging plan template](https://stape.io/blog/website-analytics-tagging-strategy#why-create-a-website-tagging-strategy), making sure every event you track is consistent and complete. We encourage you to go check out our [end-to-end guide on the data layer ​​in Google Tag Manager](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager). Step 3. Use GTM and server-side event-tracking tools Set up Google Tag Manager server container. You can find the setup guide and learn about the [benefits of server-side tracking](https://stape.io/blog/benefits-server-side-tagging) on our blog. Set up your Stape account. You can find the [setup guide](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container#step-2-create-a-stape-account-to-host-your-server-gtm-container) here. Set up [GA4 event tracking through Google Tag Manager](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container#step-5-create-google-analytics-ga-4-event-tag). Event tracking tools like GTM simplify the process of coding, tracking, and analyzing user behavior. Get started with server-side tracking for better results, improving data accuracy, and reducing tracking issues. This setup also helps keep your data compliant with privacy regulations. [Server-side tracking in GA4](https://stape.io/stape-gateway) boosts data accuracy, strengthens privacy, and improves load times by processing event tracking on the server instead of users' devices. This method bypasses ad blockers, ensuring more reliable data collection and better control of data sharing, enhancing user privacy. It’s also one of the most effective ways to run [Google Analytics 4 without cookies](https://stape.io/blog/cookieless-tracking-ga4), since the tracking logic moves to the server instead of relying on client-side storage. [Stape](https://stape.io/) is a top choice for server-side tracking because it offers an easy setup, cost-effective options, and reliable infrastructure. It provides pre-configured templates and integrations specifically designed for GA4, simplifying implementation without needing extensive technical knowledge. Stape also complies with data protection regulations, ensuring your tracking aligns with privacy laws like GDPR and CCPA. With robust support and optimized server performance, there is practically no reason why you shouldn’t [try efficient, compliant, and reliable event tracking for free today](https://stape.io/). For easier GA4 property management, try [MCP Server for GA4](https://stape.io/blog/mcp-server-for-google-analytics), developed by Stape. With its help, you can type your requests in plain, human language, and the AI agent will perform the task for you. How to work with event data and interpret user interactions? Analyzing event data helps improve user engagement by providing insights into user behavior and interaction patterns. Tracking examples include common names like authentication and error events, but you can also create custom name for events that are meaningful to your business. Once you’ve begun recording events, the next phase is to examine the data to derive valuable insights. Follow these steps to get through the process of working with event data: Use Events Report in Google Analytics 4. This section shows a summary of all the events that you set up. Here, you will see how often the events occur, giving you an overview of how users interact with your website. Categorize your data. Dividing your data into categories lets you understand how different user groups interact with your website. Explore event funnels. Explore what actions led users to the same events on your website. Compare different time frames. This can help you gain insights into hourly, daily, seasonal, and other time-based trends in user behavior. After your Google Analytics 4 website event tracking is set up and running, ongoing supervision is necessary to ensure it remains perfectly configured to meet your tracking needs. Consistently verify that the data was received by GA4 and displayed in reports as you planned. How to monitor, debug, and troubleshoot event data tracking in GA4? First, monitor events from your website or mobile app as Analytics collects them. To monitor your events, check: Realtime Report. GA4's Realtime section provides an overview of users' live interactions with your website or app. ![realtime report](https://cdn.stape.io/i/66df087e0b209681351925.png) Event Report. The Events section of GA4 summarizes all the events, including their names, parameters, and metrics. ![event report](https://cdn.stape.io/i/66df08aea9277788679855.png) GA4 Debugger. You can use Google Tag Assistant and browser extensions to verify your tags are firing correctly. ![ga4 debugger](https://cdn.stape.io/i/66df08e1406e8730534567.png) DebugView shows the events and user properties collected by Analytics from a user in real-time. It helps you troubleshoot issues while setting up your tags or monitoring an external user's live activity. Enable Debug Mode Any events that are sent from the Preview GTM get into Debug Mode. You can view them there. Access DebugView Navigate to the "DebugView" section in GA4 under the "Realtime" report to view real-time event data. How to troubleshoot GA4 event tracking Below, we will cover the things that will likely go wrong as you start working with GA4 without any previous experience. Below, we will cover the things that will likely go wrong as you start working with GA4 without any previous experience. Verify tag setup. Ensure your GA4 tags are implemented correctly in your tag management system. Make sure the correct event names and parameters are sent. Check event data. Verify that events emerge as intended in the Realtime report. Check event parameters. Ensure that the parameters linked to your events are transmitted and recorded accurately. Discrepancies in these parameters can result in data problems. Review DebugView logs. Use DebugView to track events flow and identify real-time discrepancies or errors. Follow Google’s guides. Review GA4’s official documentation for troubleshooting tips and best practices. There is an [About events guide](https://support.google.com/analytics/topic/13367566?hl=en&sjid=7401431164122897131-EU) and a[troubleshooting guide](https://support.google.com/analytics/answer/7201382?hl=en) available. Perform regular audits. Periodically review your analytics setup to ensure that all events are being tracked as intended and to spot any issues that may arise. By following these steps, you can effectively monitor and troubleshoot events in GA4, ensuring accurate data collection and analysis. Event tracking in GA4: real Stape users' problems solved In this [thread](https://community.stape.io/t/track-webhook-events-to-ga4/2267), a Stape partner tried sending GA4 events from a webhook through sGTM but noticed missing data like device info and session attribution. The issue was that webhooks don’t automatically include the rich technical data GA4 collects in the browser, such as user agent details, client hints, and correct session IDs. The solution was to inspect the incoming GA4 web events in the server container and replicate those parameters in the webhook payload, ensuring device data and session IDs match what GA4 expects. Final thoughts Google Analytics 4 (GA4) transcribes user interactions through event tracking. Setting it up correctly can significantly boost your insights, help you optimize marketing strategies, and improve overall user experience. GA4’s flexibility and advanced capabilities are essential for making data-driven decisions, whether you're just starting or refining your strategy. Customizing event tracking to align with your specific goals will give you a more precise view of your audience, leading to more innovative methods and better results. Server-side tracking in GA4 boosts data accuracy, strengthens privacy, and improves load times by processing event tracking on the server instead of users' devices. Dive into event tracking with Stape today and turn your data into insights that drive success. Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # User Data Extractor variable for Google Tag Manager server container Source: https://stape.io/blog/user-data-extractor-variable-for-google-tag-manager-server-container User Data Extractor for sGTM captures personal details from server-side events, such as emails and phone numbers, boosting marketing and tracking. User Data Extractor variable is a pre-built template for server-side Google Tag Manager that is used to extract specific user data from an event payload. Typically, in server-side tagging setups, you might want to extract user data like email, phone number, or other identifiers and utilize them for tracking, [marketing attribution](https://stape.io/blog/marketing-attribution-models), or CRM synchronization. This variable makes it simple to retrieve and use user information by automating the extraction process. Its benefits include: Data collection flexibility: you can choose exactly what type of user data to extract (e.g., email, phone number, address) based on your needs, giving you greater control over what is captured. Improved attribution: by extracting key identifiers, such as email or phone number, this variable can be used to link user actions across different platforms and devices, improving cross-channel attribution accuracy. Compliance: helps ensure proper handling of user data and allows you to focus only on the necessary properties for your setup, ensuring compliance with Marketing optimization: extracted data can be fed into various marketing platforms (e.g., Ease to use: it simplifies the process of getting user-specific data without manually parsing it from event payloads. The initial development of this template was done by [Lars Friis](https://www.linkedin.com/in/lars-friis/), and it is now maintained by Stape. How to set up User Data Extractor variable Before implementation, make sure you have [set up server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 1. Download User Data Extractor variable [from GitHub](https://github.com/stape-io/user-data-extractor-variable) or add it [from the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/user-data-extractor-variable). Import the variable to server Google Tag Manager by clicking Templates → New Variable Template. Click three dots in the top right corner → Click import → Add template that you’ve recently downloaded → Click Save. ![User Data Extractor variable for Google Tag Manager server container](https://cdn.stape.io/i/66deceb1b222c259017381.png) 2. Create new variable and choose a desired property and click Save. ![User Data Extractor variable for Google Tag Manager server container](https://cdn.stape.io/i/66decec9e0ef0429966197.png) 3. Add this variable to the necessary tag (e.g. Facebook tag), to send the available user data. ![User Data Extractor variable for Google Tag Manager server container](https://cdn.stape.io/i/66decee32fd0c531802903.png) Conclusion User Data Extractor variable for server-side Google Tag Manager offers a streamlined solution for extracting critical user information from event payloads. By providing flexibility in data collection, enhancing attribution accuracy, supporting compliance with privacy laws, and optimizing marketing efforts, this variable simplifies complex processes and ensures better data handling. Whether you're focused on improving your marketing campaigns or ensuring data compliance, the User Data Extractor variable can play a key role in enhancing the efficiency and effectiveness of your server-side tracking setup. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # End-to-end guide on data layer in Google Tag Manager Source: https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager Improve your GTM tracking with the dataLayer. Learn how to implement it, send data, and avoid common mistakes for richer insights into user behavior. Google Tag Manager (GTM) is a great tool for elevating website analytics and tracking. And the data layer is one of the features that helps bring tracking to the next level. A data layer is a JavaScript object that collects details about user interactions on your website. With its help, you can collect virtually any data, starting with product views and up to the user's operating system. Utilizing data layers in GTM enables you to configure more targeted tracking tags and triggers, providing richer insights into user behavior. So, we created a comprehensive guide on the data layer that will cover many aspects of its implementation and use in Google Tag Manager. We will explain what a data layer is, its use cases, data layer implementation on the website, how to create a data layer in Tag Manager, test the setup, and common mistakes with setting up. Let's get started! What is the data layer in Tag Manager? The data layer is a JavaScript object used to pass data to tags. It allows you to transfer events or variables and set triggers based on specific variable values. The data layer is used in both Google Tag Manager and gtag.js. The data layer is an intermediary between your website and Google Tag Manager, functioning as a hub to store structured data for your container. Data layer's use cases You need to create a data layer if you want to: Set up reliable tracking. Without a data layer, you pull data directly from HTML DOM (the standard used to add, get, modify, or delete HTML elements on your website) and then send data directly to the GTM container. The problem is that HTML DOM may change, leading to stopping the firing of tags and the data collection. You won't encounter such a problem with the data layer since the GTM container pulls data from the page's data layer, which is way more stable than HTML DOM. The data stops recording only if someone breaks the page's data layer. Enrich tag data on specific conditions. Let's say you want to send data on the value of the purchase event only if the user paid more than $50. Instead of searching through scattered variables, transaction details, page categories, and other signals across your page, using a data layer filled with relevant variables and their values (in our case, purchase value > $50) helps ensure that the necessary data is readily accessible whenever your tags need it. How does the data layer work? You can specify what data exactly you want to store in this layer. There are two methods of creating the data layer and filling it with the necessary parameters to track, which we will review [in the next section](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#initialize-the-data-layer). GTM reads and takes the necessary values from the data layer and sends them to analytics tools such as Google Analytics, Google Ads, Facebook Pixel, etc. ![How data layer works](https://cdn.stape.io/i/66db2ad051eab069862020.png) Data layer syntax and examples In Google Tag Manager, the dataLayer is an array, as indicated by the "[]", and it contains an object, represented by the "{}" as it is shown in the script below: dataLayer = [{}]; The elements within a data layer are referred to as variables and are formatted as ‘key’ : ‘value’ pairs (placed in "{}"). GTM uses a data layer variable called "event," which is also used by JavaScript event listeners to trigger tags when a user interacts with elements on a website. So, based on the example below, 'event' is 'key' and 'register' is 'value'. dataLayer = [{'event' : 'register' }]; For variables, the syntax is the same as with events. In the example below, we take the desired country for tracking - 'country' ('variable_name') is 'key' and 'united states' is 'value' ('variable_value'). dataLayer = [{'country' : 'united states' }]; Initialize the dataLayer There are two methods for data layer implementation: declaration and push of data layer. We’ll describe how to use both methods, but you may jump directly to the one that suits you best. In a nutshell, we recommend using [dataLayer.push](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#method-2-data-layer-push) as it is more popular and covers most needs. Additionally, this method is safer to use, as it won't disrupt events in Google Tag Manager, whereas improper setup of data layer declarations can easily cause issues. | Data Layer declaration | dataLayer.push Best works for | Values needed before the page loads | Pushing information into the dataLayer for events other than the page load event Push time of data layer variable | Before runtime | During runtime Placement in code | Above the Google Tag Manager container snippet | Anywhere in the code | [Jump to Data Layer declaration](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#method-1-data-layer-declaration) | [Jump to dalaLayer.push](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#method-2-data-layer-push) Method 1: Data layer declaration To use this method, the data layer snippet should be placed above the Google Tag Manager container snippet. In this case, the data layer initializes before the Tag Manager is initialized. Overall, this isn’t a popular or recommended way to create a data layer, but it will work if you want to create data points before the GTM container loads and use these data points for tag management. Changed 'variable_name': 'variable_value' to the needed parameters and pasted the code on the website page before the GTM snippet. dataLayer = [{ 'variable_name': 'variable_value'  }]; ... Note: Use "=" operator to assign the object's values to the dataLayer array. Method 2: dataLayer.push The push method adds object elements to the data layer dynamically. Unlike the data layer declaration method, with push data, you can place the data layer snippet anywhere in the code. It can be a bit confusing, but 'dataLayer' is also a JavaScript variable that can be accessed by any function interacting with the window object. So, to avoid conflicts with any other local JavaScript array named 'dataLayer,' the best way is to use the ‘window.dataLayer’ prefix. So, you will need to use the code below for the dataLayer.push method. Instead of 'variable_name' : 'variable_value', add the required parameters. window.datalayer = window.dataLayer || []; window.dataLayer.push({  'variable_name' : 'variable_value' }); In the code block above, the dataLayer is set to an existing dataLayer if it already exists; otherwise, a new dataLayer is created as an empty array. The || (OR) operator ensures that the assignment happens if either of these conditions is met. In this way, you will avoid creating multiple declarations, which can overwrite dataLayer. Example and documentation on eCommerce data layer For many ecommerce CMS's there are plugins (including [plugins from Stape](https://stape.io/apps)) that can create you a data layer for standard ecommerce events. In some cases this may not be enough. For example, if you need additional events or additional data in data layer events. Or if you are using a fully customized platform. In this case you need to contact your developers to create data layer events with the payload you need. This is usually a fairly simple task for developers and doesn't take long, although it depends on the architecture of your site or platform. Here is an example of such [documentation for developers that you can copy, edit to your needs and pass on to your developers.](https://docs.google.com/document/d/1vz2C_46mWvWeTMXMbR4w4UB05r6woJQRjR7LSpicPdg/edit) A few useful guidelines: Make a copy of the document, remove the events you don't need and/or add the events you do need and sample payload. Use the same data format in all events. It is best to follow the GA4 format. If it is not an obvious event (e.g. view item or add to cart) describe in detail when it should be triggered. This will avoid unnecessary back and forth between you and the developers. User data can be used in virtually all marketing platforms, it is important that it is available in the data layer - using it will greatly improve your tracking results. Try to avoid data layer events that are sent before the user redirects to another page. This can lead to loss of this data, as the events may not actually be sent before the redirect. For example, if you want to send a Lead event after a user submits a form, and then the user is sent to the thank you page - the [best practice](https://stape.io/blog/gtm-best-practices-and-tracking-tags) is to send this event in the data layer on the thank you page, rather than when the user actually submits the form. If you already have some data layer events on your site, it is better to use some custom names for new data layer events and not to modify old events in order not to affect the existing tracking in the process. That is, if you already have for example add_to_cart in the data layer it is better to create a new event add_to_cart_v2 instead of changing the old one and then reconfigure the tags to the new events. Be sure to check the data layer after the developers have implemented this. Sometimes even small errors in payload can cause tracking problems. How to create a data layer in Tag Manager? You can access the elements from your data layer array in Google Tag Manager differently. To leverage the data within Google Tag Manager, assign it to a variable or use it as an event trigger. These variables or events can then be incorporated into your tags, triggers, or other variables. Below, we provide three use cases of the data layer and their setup in GTM: [Data Layer variables as data points](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#use-case-1-data-layer-variables-as-data-points) [Data Layer to trigger events](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#use-case-2-data-layer-to-trigger-events) [Data Layer variable with variables and event triggers](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#use-case-3-data-layer-variable-as-variables-and-event-triggers) Use case 1: Data layer variables as data points Code example As an example, we take the purchase value of orange T-shirts. window.dataLayer = window.dataLayer || []; window.dataLayer.push({ ‘product_name’ : ‘orange t-shirt’, 'purchase_value' : '5', ‘purchase_currency’ : ‘EUR’ }); GTM setup For variable configuration, in the GTM container, go to Variables → click "New" in User-Defined Variables. ![Create a new variable in GTM](https://cdn.stape.io/i/66db32496f012944526101.png) 2. Choose "Data Layer Variable" as the variable type. ![Data Layer Variable](https://cdn.stape.io/i/66db328d10d5f755065419.png) 3. Add the data layer variable name and click "Save". Please note: the field is case-sensitive, so make sure the name matches the value name in the code you added to the page. In our case, it is "purchase_value". ![Data Layer Variable name](https://cdn.stape.io/i/66db32ce4fd4c985637158.png) Use case 2: Data layer to trigger events Code example As the code example, we take the dataLayer variable that triggers the “register” event when a person fills in the data required for registration and clicks “Register.” window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event' : 'register' }); GTM setup 1. Go to the Google Tag Manager Triggers → click "New." ![Create new trigger](https://cdn.stape.io/i/66db335a524b0638644945.png) 2. Choose the "Custom Event" trigger type. ![Custom Event trigger](https://cdn.stape.io/i/66db338a245f7515299142.png) 3. In the "Event name," add the name in the same way as the value name in the code since this field is case-sensitive. Click "Save". ![Event name in trigger](https://cdn.stape.io/i/66db33ee8af74676430767.png) Use case 3: Data layer variable as variables and event triggers Code example The data layer variable’s example below triggers purchase events and creates purchase info. dataLayer = [{ 'event': 'purchase', 'purchase_info': { 'purchase_amount': 5, 'purchase_curency': 'EUR' } }]; GTM setup You can use variables from the code as both variables and event triggers in Google Tag Manager. Check the setup process from the previous steps for variables and events. How to send data layer's parameters from client- to server-side GTM? The data layer doesn't exist in server-side Google Tag Manager as it does in client-side GTM. However, sGTM has an object called Client that checks HTTP requests from web GTM. If the request contains specific data, the Client transforms the request data to event data. Tags are also used to send the data from the web GTM container to the GTM server. To populate data points the server GTM container, you need to choose the method you will use to send data from the web to server GTM; among the popular are: [Google Analytics 4](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#using-google-analytics-4) [Stape Data Tag](https://stape.io/solutions/data-tag-client) Using Google Analytics 4 This method is particularly effective if you're setting up server-side tracking for Google Ads or Floodlight, as both rely solely on GA4 tags. 1. In web GTM create a tag with configuration "Google Analytics: GA4 Event". ![GA4 Event configuration in web GTM](https://cdn.stape.io/i/66db34e55af06178209226.png) 2. You'll find predefined fields for this data, and you can assign data layer variables to each parameter individually. ![GA4 setup to send data from the web to the server GTM](https://cdn.stape.io/i/66db3502b7792845587753.png) Using Data Tag/Data Client The key advantage of using Data Tag/Data Client is that it automatically sends the data layer and other common data from the web to the GTM server. 1. Create a new tag in the web GTM container and choose "Data Tag" as the tag configuration. Please note: You need to add the[Data Client](https://stape.io/solutions/data-tag-client) to the GTM gallery. ![Data Tag template in web GTM](https://cdn.stape.io/i/66db356d11665174613314.png) 2. In tag configuration, enable the two checkboxes "Send common data" and "Send all from DataLayer." The system will automatically parse the data in the web GTM and forward all available information to the server GTM. ![Configure Data Tag in web GTM](https://cdn.stape.io/i/66db35c34475a181331121.png) Check out our blog post on [creating a data layer for server-side Google Tag Manager](https://stape.io/blog/how-to-create-data-layer-for-server-side-google-tag-manager) to learn more about the setup process. Push data layer variable to Google Analytics 4 Note: Below, we describe how to set up Google Tag to send data; if you already have configured Google Tag, there is no need to create a new tag. Just skip the steps below and jump directly to the section on [creating a custom dimension](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#create-custom-dimension-in-ga-4). In this case, you only need to add parameters as in the code for the data layer in the section "Shared event settings." Configure Google Tag in GTM 1. In the "Tags" section of GTM, click "New" and choose "Google Tag" as tag type. ![Google Tag in web GTM](https://cdn.stape.io/i/66db367ad2989729649748.png) 2. Add your GA4 Measurement ID, and in the section "Shared event settings," list the parameters you added to your code. ![Google Tag configuration](https://cdn.stape.io/i/66db36ae8c98d851823198.png) 3. As a trigger choose "Page View – All Pages". ![Trigger configuration for Google Tag](https://cdn.stape.io/i/66db36e1e70b6318423130.png) Create custom dimension in GA4 There is a list of standard parameters. If the data you want to track with the help of the data layer isn’t present in the [recommended events from Google Analytics](https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm), then you need to add it manually in your GA4 account as custom dimensions. After adding it, it will appear in GA4 reports. 1. In the Google Analytics account, click "Admin" → "Custom definitions." ![GA4 admin section](https://cdn.stape.io/i/66db374492c31601277308.png) 2. Click "Create custom dimension" and fill in the required parameter: Dimension name - the name you want to see in the reports. Scope - choose an event, user, or item scope. Event parameter - add the variable's name or event as specified in the data layer snippet (please note that the data in the field is case-sensitive). Click "Save". ![New custom dimension in GA4](https://cdn.stape.io/i/66db37a424b77819077615.png) Test data layer setup Get a better GTM preview and formatted server requests for easier inspection for your clients or your own large GTM container thanks to [Stape GTM Helper](https://stape.io/solutions/stape-gtm-helper?cta=blog_article). GTM Debug Mode To check if the Google Tag Manager catches the variable, you need to take a few simple steps similar to regular [debugging in GTM](https://stape.io/blog/gtm-preview-mode-and-debugging). 1. Click "Preview" and add the website's URL you are debugging. ![Preview and Submit in GTM](https://cdn.stape.io/i/66db37eb61e18559565284.png) 2. Switch to the tab "Variable" section, and if everything works, you will see the needed data in this tab. ![Variables section in GTM Debug view](https://cdn.stape.io/i/66db381b795b7784474831.png) If you’ve got problems with the Debug Mode in GTM, check our guides: [Why is Google Tag Manager preview mode not working?](https://stape.io/blog/why-is-google-tag-manager-preview-mode-not-working) [Guide to debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration)https://stape.io/blog/why-is-google-tag-manager-preview-mode-not-working Google Analytics 4 To check if Google Analytics captures the data, go to "Admin" → DebugView. ![DebugView in GA4](https://cdn.stape.io/i/66db38804b844396763388.png) Troubleshooting data layer Problem 1: Data layer push doesn’t work If you see that variables or events fail to push, you most likely don’t use proper casing for object names or missed quotes. Solution: proper casing for object names and quotes Check whether "dataLayer" is in the camel case. Good example: dataLayer.push({'variable_name': 'variable_value'}); Bad example: datalayer.push({'variable_name': 'variable_value'}); Make sure all the variable names are enclosed in quotes. Good example: dataLayer.push({'variable_name': 'variable_value'}); Bad example: dataLayer.push({variable_name': 'variable_value'}); Problem 2: Tags don’t fire If you can't fire tags in all needed locations on the website, check the variable names on different pages. Solution: consistent variable names The most frequent mistake is inconsistent casing in the variable names on different pages, so you need to review the names. Good example: // Homepage: dataLayer.push({'variable_name': 'variable_value'}); // Product page: dataLayer.push({'variable_name': 'variable_value'}); Bad example: // Homepage: dataLayer.push({'variable_name': 'variable_value'}); // Product page: dataLayer.push({'variable Name': 'variable_value'}); Recap The Google Tag Manager (GTM) data layer is a crucial component of GTM. It allows us to capture users' interactions with your website while also providing additional data about the interaction or its context. The data layer is essential to use if you want to create a better data structure. The concept of a data layer is pretty challenging to implement, and developers will most likely be needed to build a complex tracking infrastructure. Here is a quick recap: We recommend using [dataLayer.push method](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#method-2-data-layer-push) to implement the data layer. After data layer implementation, you can use the data layer as [data points](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#method-2-data-layer-push), [event triggers](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#use-case-2-data-layer-to-trigger-events), or as [both](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#use-case-3-data-layer-variable-as-variables-and-event-triggers). If you're using server-side tracking, [send data layer's parameters from client- to server-side GTM container](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#how-to-send-data-layers-parameters-from-client-to-server-side-gtm). Always check the setting in [GTM Debug Mode](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#gtm-debug-mode). Add [custom dimensions in GA4](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#create-custom-dimension-in-ga-4) (if you use this tool) to see the data in GA4 reports. Avoid the [frequent mistakes that cause the data layer to malfunction](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager#troubleshooting-data-layer). Switching to server GTM? Stape has lots of solutions! Click on Try for free to register and check them all. --- # Firestore Request Delay tag for Google Tag Manager server container Source: https://stape.io/blog/firestore-request-delay-tag-for-google-tag-manager-server-container Discover the benefits of the Firestore Request Delay tag for sGTM, enabling delayed, stored, or replayed events using Firebase Firestore for better event management. [Firestore Request Delay tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-request-delay-tag) allows you to delay the processing of events in Google Tag Manager (sGTM) by fetching, replaying, or storing events within Firebase Firestore. This tag can be used to control when events are triggered by introducing a delay or fetching them at a later time. What are the benefits: Flexible event timing: this tag allows you to introduce controlled delays in event processing, which can be critical for synchronization with backend systems. Improved error handling: if an event fails to process, it can be replayed later without losing data. Optimized data collection: instead of sending individual events in real-time, this tag lets you collect and batch-process them, optimizing performance and reducing the load on servers. Reprocessing capabilities: provides the ability to store and later replay data, which is useful for audit trails, debugging, or resending failed events. The initial development of this template was done by [Lars Friis](https://www.linkedin.com/in/lars-friis/), and it is now maintained by Stape. How to install Firestore Request Delay tag for Google Tag Manager server container 1. [Set up server Google Tag Manager container on Stape.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Download Firestore Request Delay tag [from GitHub](https://github.com/stape-io/firestore-request-delay-tag) or add it [from Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-request-delay-tag). Import the tag to server Google Tag Manager by clicking Templates → New Tag Template → Click three dots in the top right corner → Click import → Add template that you’ve recently downloaded → Click Save. ![How to install Firestore Request Delay tag for Google Tag Manager server container](https://cdn.stape.io/i/66daeb96d29af613834846.png) 3. Choose the desired functionality (Fetch Event, Replay Event, or Store Event): Fetch Event: set the minimum delay, event limit, and custom output event name. Replay Event: define the key and value data for replay, and custom output event name. Store Event: specify the store event key and output event name. ![Firestore Request Delay tag for Google Tag Manager server container](https://cdn.stape.io/i/66daec8088a2c464839313.png) In Firebase settings, add your [Firebase Project ID](https://firebase.google.com/docs/projects/learn-more#project-id) and define the Firestore path where events will be stored or fetched from (e.g., stape/delay). 4. That’s it! Don’t forget to click the Save button. Conclusion Firestore Request Delay tag for Google Tag Manager server containers offers a powerful enhancement for managing event processing within your analytics setup. This tag provides significant flexibility in controlling event timing, improving error handling, optimizing data collection, and enabling robust reprocessing options. Whether you need to introduce delays for synchronization, handle errors more gracefully, or optimize performance by batching events, the Firestore Request Delay tag has you covered. If you need help with your account or if you’d like to learn more about the [server-side tracking benefits](https://stape.io/blog/benefits-server-side-tagging) of Stape, please [contact our support team](https://stapehelp.zendesk.com/hc/en-us/requests/new) or find your answers in [our helpdesk](https://help.stape.io/hc/en-us). Switching to server GTM? Stape has lots of solutions! Click on Try for free to register and check them all. --- # Duplicate Transaction Checker variable for Google Tag Manager server container Source: https://stape.io/blog/duplicate-transaction-checker-variable-for-google-tag-manager-server-container Detect and block transactions that have already been processed to avoid duplication in analytics platforms, which can lead to inflated conversion metrics. [Duplicate Transaction Checker](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/duplicate-transaction-checker-variable) is a custom template, designed to help prevent duplicate transactions from being tracked in conversion tracking setups, such as [server-side Google Analytics 4 configuration](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Google Ads](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords). This situation often arises when: users refresh the confirmation page after making a purchase. the same transaction ID is sent multiple times due to delays or retries in the transaction process. Those are the main benefits of Duplicate Transaction Checker: Accurate metrics. It helps ensure each transaction is counted only once, avoiding inflated results. Improved attribution. With no duplicates, you get cleaner data on which touchpoints actually lead to conversions. Smarter budget allocation. When your metrics are reliable, it’s easier to see what’s working and spend money where it matters. The initial development of this template was done by [Lars Friis](https://www.linkedin.com/in/lars-friis/), and it is now maintained by Stape. How to set up Duplicate Transaction Checker variable 1. [Set up server Google Tag Manager container on Stape.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Download Duplicate Transaction Checker [from GitHub](https://github.com/stape-io/duplicate-transaction-checker-variable) or add it from [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/duplicate-transaction-checker-variable). Import the variable to server Google Tag Manager by clicking Templates → New Variable Template → Click three dots in the top right corner → Click import → Add template that you’ve recently downloaded → Click Save. ![Duplicate Transaction Checker variable](https://cdn.stape.io/i/66d996c2c86f8173960576.png) How it works ![Duplicate Transaction Checker variable](https://cdn.stape.io/i/66d996d8822f6331015042.png) Transaction ID - type value that will be used as transaction ID. It will act as a unique identifier for each purchase. When the same transaction ID is found multiple times, it flags that as a duplicate. I use Stape.io - if enabled (as shown in the screenshot), Stape is used to store transaction data, helping ensure transaction records persist and are correctly checked across sessions or events. If Stape is not used, Firebase is required as an alternative for storing transaction data. Log Settings - this section offers options to log the results: Do Not Log: no logs will be generated. Log to Console During Debug and Preview: this logs information only during testing, providing useful feedback when setting up or debugging tags. Always Log to Console: this logs each time a check occurs, even in production. How to use it The variable will check the transaction ID that comes in the event data and compare it with the transaction ID that was previously recorded in the store. If the transaction ID is unique - the variable will return ‘false’, if a duplicate transaction ID is found - the result will be ‘true’. Then you can use this verification in the triggers you need. ![Duplicate Transaction Checker variable for Google Tag Manager server container](https://cdn.stape.io/i/66d997261eca2194686472.png) How to use Stape Store instead of Firebase 1. Enable "I use Stape.io" in the variable. You don't need to configure Firebase in this case. 2. Go to your [Stape account](https://stape.io/sign-up) → open the container and choose Store. The order IDs will be stored here. ![Stape store](https://cdn.stape.io/i/66d99774e8ec4600266632.png) Advantages over Firebase: Simplified Setup: you avoid needing to create and manage a Firebase project. Built-In Functionality: Stape is specifically optimized for server-side GTM, so it's more tailored for these types of operations. No External Dependencies: by using Stape's solution, you keep everything integrated within the same platform, reducing complexity. Note: If you want to integrate the Duplicate Transaction Checker with the Stape Store, you’ll need to set up your server-side tagging environment with Stape to handle transaction storage and retrieval in the background. Conclusion Duplicate Transaction Checker variable offers a crucial solution for maintaining the accuracy of conversion tracking data. By preventing duplicate transactions from being recorded, this tool helps ensure that your conversion metrics remain reliable, preventing inflated numbers and inaccurate revenue reporting. Don’t hesitate to contact Stape support: [we will answer your questions](https://stapehelp.zendesk.com/hc/en-us/requests/new) and help resolve any issues you might be experiencing on Stape as quickly as possible. Interested in server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # 15% less data loss for a digital transformation agency | BlueTree Source: https://stape.io/blog/digital-transformation-agency-records-fifteen-percent-more-data-gain-with-stape Find out how a digital transformation and IT consulting agency gained 15% more data with Stape server-side tracking [BlueTree](https://stape.io/partner/bluetree), a Dutch digital transformation and IT consulting company, partnered with Stape to make user interactions with their clients more enjoyable and effective. BlueTree team noticed that customers are becoming increasingly aware of the data they collect and own. The large volume of data they possess no longer provides a sense of security, but rather a sense of unease. Especially now that it is clear that the data is not purely collected, it is not possible to link data from different applications, and they are not always the owners of their own data. ![bluetree company logo](https://cdn.stape.io/i/66d98d058c770768986141.png) From the perspective of helping organizations perform better, BlueTree primarily focuses on two areas: business and personnel. What tools can Stape offer to improve working with, and make tracking data more effective and accurate? With this approach, it could be seen that companies are open to advise on how they handle data and also see the added value of increasing knowledge. This includes server-side tagging, which often comes into play when it comes to improving data quality. As a partner, Stape supports and guides customers through the necessary data challenges. This includes digitalization, digital transformation, and certainly, Stape as a solution to a very fundamental problem. Problem: measuring data quality The company analytics team noticed that the number of conversions and results were increasingly different between 'real world' and the platforms. As they are steering more on conversion-driven campaigns and automatically optimizing their campaigns with algorithms from Meta and Google - data quality is key. Solution: integrating Stape server-side tracking Server-side tagging with Stape is becoming more popular as a data collection method mainly because it is designed to improve conversion tracking accuracy while maintaining privacy regulation. The BlueTree agency was impressed with Stape by the good user experience of their other clients and, initially, the well-documented approach. It was decided to use the Stape server-side proxy to optimize results for GA4, which had never been used before. Otherwise, the tools and KPIs remained the same. From setting up the server-side container to real-world testing, it took less than 8 hours overall. Although the company met some challenges mostly due to custom web integrations, conflicting plugins or multiple languages or domains that require some additional thinking, it always is so with integrating server-side tracking from scratch. Results: 15% less data loss By implementing server-side tracking with Stape, the company experienced 15% less data loss with clients. This improvement applies to both traffic and conversions, leading to more accurate reporting and better campaign optimization. Conclusion The Stape team could say that [BlueTree](https://bluetree.nl/) made a considerable difference in engaging Stape server-side tracking by recording a 15% customer data increase. Although the setup was met with certain challenges associated with utilizing the server-side approach for the first time, Google Tag Manager fixed those. With Stape, you can set up server-side GTM hosting in a few clicks, plus it’s much cheaper than Google Cloud. And if you need help setting up server-side tracking, [we can help](https://stape.io/care), too! Don’t hesitate to [leave us a ticket](mailto:support@stape.io). Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Google Merchant Center Lookup variable for Google Tag Manager server container Source: https://stape.io/blog/google-merchant-center-lookup-variable-for-google-tag-manager-server-container Discover how the Merchant Center Lookup variable enhances product data for Google Ads and Analytics using server-side GTM. [Google Merchant Center Lookup variable](https://github.com/stape-io/merchant-center-variable) is used to retrieve and enrich product data by querying information from a [Google Merchant Center account](https://support.google.com/merchants/answer/188924?hl=en). This is particularly useful for enhancing the data associated with products in your Merchant Center, such as product categories or additional attributes, when passing data to other systems like Google Ads or Google Analytics via the server-side GTM container. Use case For example, you’re an e-commerce company that uses Google Merchant Center to manage your product catalog and Google Ads to run Shopping campaigns. You want to [track conversions](https://stape.io/blog/conversion-tracking-faq) and product interactions more accurately by enriching product data in the server-side Google Tag Manager (GTM) container before sending it to Google Analytics or Google Ads for reporting and optimization. When users interact with the website, product-related data (such as product categories, brands, and other custom attributes) may not always be fully captured client-side. Some attributes might be missing from the web data layer or poorly categorized due to inconsistencies in product tagging on the front end. This results in incomplete or inaccurate data being sent to Google Ads and Analytics, potentially affecting campaign performance and reporting. By setting up Google Merchant Center Lookup variable in the GTM server container, you can enrich the data related to product interactions by pulling additional details directly from your Google Merchant Center feed. This ensures that the product information sent to Google Ads and Analytics is accurate and consistent across all platforms. Benefits Consistent Data Across Platforms: Merchant Center Lookup ensures that all platforms (Google Ads, Analytics, etc.) are working with the same, up-to-date product information. Improved Campaign Performance: Google Ads and other platforms can optimize campaigns better when they receive complete and accurate data about the products being sold. Automation and Efficiency: by automating the product data lookup via the server container, the company reduces manual work and the risk of inconsistencies due to human error. Enhanced Reporting: the enriched data allows for better tracking of product interactions and conversions, leading to more detailed insights for optimization. The initial development of this template was done by [Lars Friis](https://www.linkedin.com/in/lars-friis/), and it is now maintained by Stape. How it works ![Google Merchant Center Lookup variable for Google Tag Manager server container](https://cdn.stape.io/i/66d964904808b867278620.png) Items (input to be enriched) This is where you specify the item or product data you want to enrich from your Google Merchant Center account. You would typically select an existing variable or data layer property here. Merchant center ID This is where you input your [Google Merchant Center account ID](https://support.google.com/paymentscenter/answer/7163092?hl=en), which the variable will use to look up product information. Cache (hours) Defines how long the data fetched from the Merchant Center is stored in the cache. For example, if set to 12 hours, the fetched data will be stored for 12 hours before it is updated with new information. Feed language The language of the product feed that the lookup will pull from. This field ensures that the data matches the correct language of the Merchant Center feed. Find parameter in Merchant Center URL: feedLabel=DK Feed label This allows you to specify which feed within your Merchant Center account to use, particularly if you have multiple feeds for different purposes. Find parameter in Merchant Center URL: language=da Map product_types into item_categories checkbox If checked, this option maps the product_type in the Merchant Center to the item_category field in GTM. This can help categorize products in a more structured way for reporting or targeting. Basic Mapping This allows for simple mappings between Google Merchant Center Lookup variables and GTM variables. You can add rows here to map specific attributes from your Merchant Center to variables in GTM. Custom Mapping This is for more advanced or complex mappings where you want to manually map specific attributes or variables between the Merchant Center and GTM. Before starting Enable the Content API on the GCP project Google Cloud Platform offers a [Content API](https://developers.google.com/shopping-content/guides/quickstart) (Merchant API) for Google Merchant Center. The API allows apps or services to interact directly with a Google Merchant Center account. Enabling the Content API is useful for e-commerce businesses that want to manage products, inventory, and Merchant Center accounts. To connect the Merchant API/Content API, go to [GCP](https://console.cloud.google.com/) → select the relevant project → type in the search bar “Merchant API” and select it → on “Product details” click “Enable”. ![Google Merchant Center Lookup variable for Google Tag Manager server container](https://cdn.stape.io/i/680277eda4399064266644.png) Connect the Service Account from the GCP project to Stape Google Service Account is used to make authorized API requests. By linking a Google Service Account to the server GTM container, you can enable integration between server-side Google Tag Manager and Merchant Center and/or other platforms like BigQuery and Firestore. The integration allows you to perform different server-side tasks related to your Merchant Center data, including retrieving product information, managing feeds, and sending conversion data. To connect the Service Account from the GCP project to Stape, create aervice Account in Google Cloud Platform (IAM & Admin → Service Accounts → Click Create Service Account - If you are unsure what role to use, just pick Project > Viewer) or use an existing Service Account, then go to Stape admin to activate [Google Service Account](https://stape.io/solutions/google-service-account) power-up. For more details on the configuration process check our guide on [how to connect Google Service Account to Stape](https://stape.io/blog/how-to-connect-google-service-account-to-stape). ![Google Merchant Center Lookup variable for Google Tag Manager server container](https://cdn.stape.io/i/680277d68b3f0266528721.png) Add the Service Account as an admin to the Merchant Center account To do it, go to your Merchant Center account → click the Settings & tools icon in the top right corner → People and access → Click the + Add user button → in the email address field, add the Service account ID. That’s the email of your Service Account; you can find it in the Google Cloud Console. Grant it Admin Access. How to set up Google Merchant Center Lookup variable 1. [Set up server Google Tag Manager container on Stape.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Download Google Merchant Center Lookup variable [on GitHub](https://github.com/stape-io/merchant-center-variable) or get it from [the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/merchant-center-variable). ![Google Merchant Center Lookup variable for Google Tag Manager server container](https://cdn.stape.io/i/66d966014499d860853984.png) 3. Import the variable to server Google Tag Manager container by clicking: Templates → New Variable Template. Click three dots in the top right corner → Click import → Add template that you’ve recently downloaded → Click Save. ![Google Merchant Center Lookup variable for Google Tag Manager server container](https://cdn.stape.io/i/66d966215ed9d516106879.png) 4. Fill in the data in the fields of the variable. Click Save. And you’re all done! Conclusion Google Merchant Center Lookup variable enriches product data in Google Tag Manager by pulling attributes from a Google Merchant Center feed, making it useful for server-side tracking, dynamic remarketing, or other applications where you need detailed product information. We hope you find this guide helpful and if you have any questions, please feel free to [leave a ticket](https://stapehelp.zendesk.com/hc/en-us/requests/new) or ask any questions in the comments section. Interested in server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Days In Seconds variable for Google Tag Manager server container Source: https://stape.io/blog/days-in-seconds-variable-for-google-tag-manager-server-container Discover how to use the Days In Seconds variable to easily convert days into seconds for precise time calculations in server-side tracking setups. [Days In Seconds variable](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/days-in-seconds-variable) for Google Tag Manager (GTM) offers an easy yet effective solution for converting a specified number of days into seconds. This is especially valuable in situations where time-based calculations are required, as GTM commonly uses seconds as the standard unit for many server-side configurations. The initial development of this template was done by [Lars Friis](https://www.linkedin.com/in/lars-friis/), and it is now maintained by Stape. How it works: The variable takes an input representing a number of days and multiplies it by the number of seconds in a day (86,400 seconds) to provide the equivalent value in seconds. By using this variable, you can easily handle configurations that require precise time intervals for things like session expirations, cache durations, or setting cookie lifetimes, which are often specified in seconds in GTM server-side setups. ![Days In Seconds variable for Google Tag Manager server container](https://cdn.stape.io/i/66d85a054e7b9236059102.png) Use Case You have a server-side GTM container that handles user session tracking. To ensure users are tracked consistently for a specific period, you need to set a cookie lifetime of 30 days. Instead of calculating the lifetime in seconds manually, use the Days In Seconds variable to input 30 (days). The variable automatically converts this to 2,592,000 seconds, which is applied when setting the cookie's expiration time. This automation reduces the chance of manual errors and ensures that time-based configurations are accurate. You can also use this approach for handling session expirations, cache controls, or any server-side function that depends on a time interval in seconds. How to set up Days In Seconds variable 1. [Set up server Google Tag Manager container on Stape.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Download Days In Seconds variable [on GitHub](https://github.com/stape-io/days-in-seconds-variable) or add it from the [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/days-in-seconds-variable). Import the variable to server Google Tag Manager container by clicking Templates → New Variable Template. Click three dots in the top right corner → Click import → Add template that you’ve recently downloaded → Click Save. ![How to set up Days In Seconds variable](https://cdn.stape.io/i/66d85a2a24dab382718317.png) 3. Set the number of days that will be turned into seconds. Click Save. Conclusion Beyond its simplicity, the Days In Seconds variable is versatile. It can be applied in various scenarios, such as defining cookie expiration times, controlling session durations, or managing cache settings. Whether you're configuring server-side events or optimizing user tracking, this variable ensures that time intervals are accurately reflected in seconds, reducing potential misconfigurations and simplifying ongoing maintenance. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Server-side Google Ads conversion tracking for BigCommerce Source: https://stape.io/blog/server-side-google-ads-conversion-tracking-for-bigcommerce BigCommerce is an eCommerce platform that helps businesses manage stores and optimize marketing with server-side Google Ads conversion tracking. [BigCommerce](https://www.bigcommerce.com/) is a powerful eCommerce platform designed to help businesses of all sizes easily create and manage their online stores. Known for its user-friendly interface and robust features, BigCommerce allows merchants to customize their stores, integrate with various payment gateways, and scale their operations seamlessly. It’s a go-to platform for businesses looking to provide a smooth shopping experience while managing the complexities of online retail with ease. When it comes to optimizing your marketing efforts, implementing server-side Google Ads conversion tracking can offer a significant advantage. In this article, we’ll walk you through the step-by-step process of setting up Google Ads server-side conversion tracking for your BigCommerce store. Whether you’re new to server-side tracking or looking to enhance your current setup, this guide will help you get the most out of your Google Ads campaigns while ensuring accurate and compliant data collection. Key reasons to adopt server-side tracking Switching to server-side tracking for your BigCommerce site offers several advantages that can significantly improve your data accuracy and overall website performance. One of the primary reasons is increased data accuracy. You can reduce the risk of data being blocked or lost due to factors like ad blockers, browser limitations, or connection issues. Gather more complete and reliable information about user behavior, ensuring that key actions like purchases, form submissions, and interactions are accurately tracked. Another critical factor is the enhanced page load speed. Since much of the data processing happens on the server rather than the user’s browser, your site becomes less burdened with third-party scripts. This reduces the load on the client side, leading to faster page loads and a better overall user experience. Improved data security and privacy is also a major benefit. With server-side tracking you are able to handle sensitive user data, like personal information or consent preferences, in a more secure manner. By controlling how and where data is processed, you can ensure that it complies with privacy regulations like [GDPR or CCPA](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive). Greater flexibility is another reason to consider server-side tracking. It is possible to have more control over how data is collected and processed; to customize tracking to fit the unique needs of your business. For instance, you can filter, modify, or enrich data before sending it to your analytics or advertising platforms, giving you better insights for optimizing your marketing strategies. Finally, better resilience to cookie restrictions. As browsers [increasingly limit third-party cookies](https://stape.io/blog/safari-itp), traditional client-side tracking becomes less effective. Server-side tracking, however, can use first-party cookies that are less affected by these restrictions, ensuring your tracking continues to function properly. How to set up Google Ads conversion tracking for BigCommerce Before the implementation make sure you have [set up server Google Tag Manager container on Stape](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 1. Install Stape Conversion Tracking app for BigCommerce. 1.1. Open BigCommerce store and find the [Conversion Tracking app](https://www.bigcommerce.com/apps/stape-server-gtm/). Click Get this app → log in to your BigCommerce account → Install. ![Stape Conversion Tracking app for BigCommerce](https://cdn.stape.io/i/68f24bdfeeda0665285090.png) Next, you’ll need to configure the settings in three tabs: General, Data Layer, and Webhooks. 1.1. General tab Here, you need to add the following data: GTM Web container ID - add the ID of Web container in the format GTM-XXXXXXX. You can find it in your GTM account in the tab “Accounts”. Click “Insert GTM snippet” to automatically add the snippet with JavaScript code to every page on your website. Custom domain - use your subdomain created for first-party cookies for the most precise tracking. If you haven’t created a subdomain yet, please see our guide on [adding a custom domain to sGTM container](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). [Custom Loader](https://stape.io/solutions/custom-gtm-loader) - this feature will help increase protection against ad blockers, resulting in better data quality. Add in the field Stape container identifier. Check this quick guide to [find your container identifier](https://help.stape.io/hc/en-us/articles/9697466601373-How-to-find-the-Stape-container-identifier). [Cookie Keeper](https://stape.io/solutions/cookie-keeper) - it helps prolong the cookies' lifetime by bypassing the browsers’ restrictions. After setting all the necessary fields, click Save. ![General tab for Stape Conversion Tracking app](https://cdn.stape.io/i/66d8443b1a891904162389.png) 1.2. Data Layer tab In this tab, you can add two points to the settings: Add ecommerce Data Layer events - it will add standard Data Layer, based on them you can configure tracking in GTM container. Add user data to Data Layer events - with this feature, events will include user data. You can configure the data you want to collect from your website visitors in the GTM container. Decorate DataLayer event name - lets you decide whether to add the _stape suffix to event names to avoid conflicts with your existing GTM setup; when it’s turned off, events keep their standard names. Click “Save”. ![Datalayer tab for Stape Conversion Tracking app](https://cdn.stape.io/i/692eebeae4182024171694.png) 1.3. Webhooks tab The [webhooks feature](https://stape.io/blog/webhook-server) will be handy if you want to track events outside your website, such as sales made by phone or in offline stores. You just add or update information on a user in CRM or CMS, and the webhook sends data in GTM. To activate a webhook, you need to choose the type of webhook, “Purchase” or “Refund” (or both), and then you can click on “Send webhooks to server GTM container”. Then, add your GTM server container URL (the path where the webhook will be sent). Click “Save”. Note: If you encounter problems setting webhooks, see our blog post on [debugging incoming webhooks in GTM server preview](https://stape.io/blog/debug-webhooks-google-tag-manager-server). ![Webhooks tab for Stape Conversion Tracking app](https://cdn.stape.io/i/66d844a88d6d2866766107.png) 2. Send data to Google Analytics 4 with the server GTM. There can be two scenarios: 2.1. If you already have GA4 events configured in your web GTM container and you just want to switch them to work through the server side. a. Open your server GTM container. In the 'Clients' section, check if you have a GA4 client there. If not, create new one: ![GA4 client](https://cdn.stape.io/i/666abbc6e4996045670623.gif) Choose Google Analytics: GA4 (web) and click Save. ![GA4 client](https://cdn.stape.io/i/666abbf11f164406561938.png) b. Create GA4 tag on server GTM container. Go to Tags and click New. ![Create GA4 tag on server GTM container](https://cdn.stape.io/i/666abc0ae46fa191587635.gif) Choose Google Analytics: GA4. ![Choose Google Analytics: GA4.](https://cdn.stape.io/i/666abc243c815538087473.png) Standard tag settings: Measurement ID - Leave blank, the same measurement id that is in your web events will be used Event Name - leave blank, the same event name you use in web tags will be used. c. Add trigger. Click Triggering. ![adding trigger to GA4 tag](https://cdn.stape.io/i/66d845bce2eec938974519.png) Create triggers for the tag. Client name should equal GA4. Click + ![Client name should equal GA4. Click +](https://cdn.stape.io/i/666abc71038d4610229376.png) d. Choose Custom type → click Some events → choose Client Name in built-in variables → set Equals GA4 (the name of your GA4 client) → click Save. ![Equals GA4 (the name of your GA4 client)](https://cdn.stape.io/i/666abc922b04b457762092.png) e. Add your server container URL to Google Tag settings. In the configuration settings, add the configuration parameter server_container_url and add your tagging server URL as a value. ![Server container URL](https://cdn.stape.io/i/66d846076162b703120241.png) 2.2. If you do not have GA4 configured. a. Inside the Web container, create a new tag of the tag Type Google Tag. Add your [Google Tag ID](https://support.google.com/analytics/answer/9539598). In the section Configuration settings add the following parameters: Name: server_container_url Value: Enter the URL you've created Add trigger to GA4 tag. Normally it should trigger on all page views. ![Create a new tag of the tag Type Google Tag](https://cdn.stape.io/i/666aba64b3f87874034843.png) Google tag itself will generate standard GA4 events like page_view, session_start, user_engagement, etc. b. Setting up additional eCommerce events. Each event you want to configure must be configured with a separate GA4 event tag, use its own trigger and have its own payload. Below is an example of configuring the tag for the add_to_cart event with standard parameters. You can repeat this for any other events you want to configure. You can also use any custom events if you want to track them in your GA4. c. Set up trigger. d. Set up variables for GA4 events payload. You can find the standard and mandatory payload eCommerce GA4 events in the official documentation: [https://developers.google.com/tag-platform/gtagjs/reference/events](https://developers.google.com/tag-platform/gtagjs/reference/events) A minimum of three parameters need to be sent with each eCommerce event: value currency items To add these parameters to an event, you must first create variables for them. To do this, go to Variables section in your web container → create a new one → select Data Layer Variable type → specify the path to the required value as per how they are in the data layer. for value path: ecommerce.value for currency: ecommerce.currency for items: ecommerce.items Сreate these three variables: ![image](https://cdn.stape.io/i/666abb2b81ed3408772996.png) e. Set up GA4 event tag. Go to the tags section in your web GTM container and create a new tag with the tag type Google Analytics: GA4 Event. In the tag, specify: Measurement ID: your GA4 measurement id Event name: add_to_cart (or other if you are setting up another event) On GA4 event tag ‘Event parameters’ section add three parameter: value, currency and items. Use the variables you created in the previous step as the value for them. Add to the tag the add_to_cart_stape trigger we created earlier. ![Google Analytics: GA4 Event](https://cdn.stape.io/i/666abb8c2dac1223213519.png) Similarly, configure any other events you want to track in your GA4. 3. Set up Conversion Linker tag + Google Ads Conversion Tracking tag. 3.1. In the Server container set up the Conversion Linker tag. This tag should trigger on all events claimed by the GA4 client (the same trigger that is used for GA4 server tag, on the screenshot above). ![Conversion Linker tag](https://cdn.stape.io/i/66d84721058d2938679020.png) 3.2. In the Server GTM container click New Tag → click Tag configuration → Google Ads → Google Ads Conversion Tracking tag. Add Conversion ID and Conversion Label similarly to the web Adwords tag setup. 3.3. Then you have an option to add product and user data. If you send user and product data from the web to the server, then you can enable these checkboxes and select event data as a data source. If product and user info are properly sent from the web using standard dimensions and are available in the event data - the tag will parse this information automatically and report to Google Ads. You also have an ability to override the data sent from the web if needed. In our case Adwords server conversion triggers on the purchase event. ![Google Ads Conversion Tracking tag](https://cdn.stape.io/i/66d8473f32442749862161.png) Conclusion Implementing Google Ads conversion tracking for your BigCommerce site is crucial for anyone looking to take advantage of the power of online advertising. In today’s competitive world, having precise insight into which ads drive conversions is essential for staying ahead and optimizing your return on investment (ROI). Whether you're a marketing veteran or just starting out, setting up conversion tracking on your BigCommerce site ensures that you’re making the most of every advertising cent. This tool allows you to track the performance of your campaigns, understand user behavior, and adjust your strategies to maximize impact and boost sales. If you have any questions about the setup - don’t hesitate to [leave a ticket](https://stapehelp.zendesk.com/hc/en-us/requests/new). And if you’d like a setup from us - here’s [a free quote](https://stape.io/quote/setup)! Interested in server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # How to improve web analytics data quality: challenges and solutions Source: https://stape.io/blog/how-to-improve-web-analytics-data-quality-challenges-and-solutions Improve web analytics data quality! This guide covers challenges like ad blockers and cookie lifetimes, and how Stape helps ensure reliable tracking and insights. Today’s online environment demands that you understand user behavior and make informed decisions. Web analytics plays a vital role in this process, providing valuable insights into your target audience and helping improve your website's performance. However, several issues can affect the accuracy of the collected data, impacting your ability to achieve key performance indicators (KPIs) and optimize marketing campaigns. This article will discuss the challenges affecting data quality in web analytics and explain how Stape can assist you in improving the reliability of your analytics, ensuring your website's user experience is aligned with your business objectives. What is web analytics? Web analytics involves gathering, measuring, analyzing, and reporting website data to understand how users interact with a site. By tracking metrics like page views, clicks, and conversions, you can gain insights that help refine your website, enhance user experiences, and meet your KPIs. To gather this data effectively, it is helpful to understand the underlying structure of data collection. Modern [web tracking](https://stape.io/blog/web-tracking-hierarchy) relies on a hierarchy of components and layers, from user interactions and browser scripts to server-side processing, that must work in sync to deliver accurate signals to your reports. ![Web tracking layers](https://cdn.stape.io/i/6970f8c1521bc969961432.png) Web analytics allows you to analyze data from multiple data sources, providing a comprehensive view of how your site visitors engage with your content. This data collection process helps website owners make informed decisions, leading to improved website performance and increased revenue generated from targeted marketing campaigns. ![How to improve web analytics data quality: challenges and solutions](https://cdn.stape.io/i/66d6e527e58af886414998.png) Key metrics to track To get the most from web analytics, it's essential to monitor specific tracking metrics that align with your business goals. Some key performance indicators to focus on include: Website traffic: track the total number of visitors to your site, categorized by sources such as direct visits, search engine results pages (SERPs), and social media platforms. Understanding the web traffic coming from various channels can help optimize your marketing efforts. User behavior: metrics like bounce rate, session duration, and pages viewed per visit provide insight into how people engage with your site. This data is crucial for evaluating your website's user experience. Conversion metrics: tracking actions like purchases, sign-ups, and form submissions shows how well your marketing campaigns are performing and how effectively your site converts visitors into customers. User engagement: observing clicks, scrolling behavior, and time spent on pages helps gauge the effectiveness of your content and the overall user experience. Internal traffic: separating internal traffic from external user data ensures that your analysis is based on accurate and trustworthy data. Choosing the right web analytics tools Selecting the appropriate web analytics tool is essential for accurate data collection and analysis. Popular options include Google Analytics, Adobe Analytics, and others, which offer features to track metrics, interpret data, and generate reports that guide your decisions. Google Analytics 4 (GA4) stands out as the most widely used platform due to its comprehensive set of tools, ease of integration with other Google services, and user-friendly interface that caters to both beginners and advanced users. With features like real-time reporting, customizable dashboards, and seamless integration with Google Ads, GA4 provides an effective and adaptable toolset for tracking and improving your online presence. Related: [Set up Google Analytics server-side tracking](https://stape.io/blog/set-up-ga4-server-side-tracking) to improve data accuracy and bypass ad blockers. In addition to choosing the right analytics tool, understanding the method of data collection is crucial. Web analytics tools can rely on either [client-side tracking or server-side tracking](https://stape.io/blog/server-side-tagging-versus-client-side-tagging), each with its own set of advantages and challenges. Client-side tracking involves placing tracking scripts (often JavaScript) directly on your website's pages. This method collects data through the user's browser, capturing a wide range of information such as user interactions, page views, and session duration. Client-side tracking is generally easier to implement and manage, allowing for more granular tracking and real-time data collection. But it is susceptible to issues such as ad blockers, browser limitations, and client-side performance impacts. Server-side tracking, on the other hand, processes tracking data on your server rather than the user's browser. This method offers improved data accuracy and privacy, as it is less affected by browser restrictions and ad blockers. Server-side tracking can also reduce the load on the user's browser, leading to faster page load times and a better user experience. However, it requires a more complex setup and ongoing management, which can be more resource-intensive. This is where [Stape](https://stape.io/) can play a crucial role. The importance of data quality in web analytics Reliable data is the foundation of successful web analytics. Poor data quality can lead to inaccurate data, incorrect conclusions, misallocation of resources, and missed opportunities. Therefore, it is crucial to focus on maintaining high-quality data to ensure that the insights derived from web analytics are accurate and useful. Challenges affecting web analytics data quality Despite the availability of advanced analytics tools, several factors can negatively impact the quality of web analytics data. Here are some of the most common challenges: Challenge: ad blockers Many users now use ad blockers to avoid online ads, but these tools can also block tracking codes that are essential for collecting web analytics data. This can result in incomplete data, leading to inaccurate insights and compromised data governance. Solution: Custom Loader To address the impact of ad blockers, Stape offers a Custom Loader that allows tracking codes to function even when ad blockers are in use. This ensures that you can collect complete data on user interactions, preserving the integrity of your analytics. The Custom Loader modifies the gtag.js and gtm.js loading path, allowing you to set first-party cookies, extend cookie lifetimes, and protect Google Tag Manager and Analytics scripts from ad blockers. This tool is critical for maintaining trustworthy data and ensuring accurate performance tracking. [Custom Loader power-up](https://stape.io/solutions/custom-gtm-loader) is available for all Stape users. Open your Stape account → Choose a container and open it → Click Power-Ups tab. Click Config Custom loader power-up → add your WEB GTM ID. You will see updated web GTM code → Copy this web GTM script and add or replace existing web GTM script on your site. https://www.youtube.com/watch?v=bs4wkdYtfqo Challenge: measuring ad blocker impact Custom Loader minimizes the effect of ad blockers and ITP, but you still need to know how many users block ads. Without that information, budget choices can easily waste money instead of driving profit. Solution: Ad Blocker Info [Ad Blocker Info](https://stape.io/solutions/ad-blocker-info) power-up adds an X-user-adblocker header to every sGTM event. It returns true if an ad blocker is detected and false if not. This way, you see what portion of your visitors hides ads, and so you can adjust placements or budget accordingly. Note: this power-up works only when Custom Loader is active. Challenge: decreased cookie lifetime Cookies are essential for tracking user behavior over time, but recent updates in browser policies have significantly reduced cookie lifespans. Browsers like Safari, Firefox, and Chrome have implemented [Intelligent Tracking Prevention](https://stape.io/blog/safari-itp?trk=public_post_comment-text) (ITP) and other privacy-focused measures that limit how long cookies can persist, often reducing them to just a few days or even hours. These changes make it increasingly difficult to accurately track returning visitors and analyze long-term user behavior, impacting the quality of the data collected for insights and decision-making. Solution: Own CDN, Cookie Keeper, Cooke Extender tag Own CDN or Same Origin Domain: hosting cookies on your own CDN or using a domain with the same origin can help extend cookie lifetimes, improving long-term tracking accuracy and ensuring the collection of valuable data. [Use this step-by-step guide on how to set up Own CDN from Stape.](https://stape.io/blog/increase-first-party-cookie-lifetime-set-by-a-third-party-ip#how-own-cdn-works) https://stape.io/blog/increase-first-party-cookie-lifetime-set-by-a-third-party-ip#how-own-cdn-works[Read more about same origin domain.](https://stape.io/news/a-new-way-to-set-up-a-custom-domain-in-server-gtm#these-are-prerequisites-to-configure-the-same-origin-custom-domain) ![Own CDN](https://cdn.stape.io/i/66d6e6b7c4600550775474.png) Cookie Keeper: this Stape feature is designed to help you maintain the functionality of your marketing cookies, even if they are deleted for any reason, ensuring continuous tracking of important data points. [Use this step-by-step guide on how to configure Cookie Keeper](https://stape.io/blog/increase-first-party-cookie-lifetime-set-by-a-third-party-ip#how-cookie-keeper-works). ![Cookie Keeper](https://cdn.stape.io/i/66d6e6dacb78c172950244.png) Cookie Extender tag: in situations where you need to extend the lifetime of web cookies, especially when server cookies with HttpOnly settings cannot be accessed by JavaScript, the Cookie Extender Tag can be a valuable tool for maintaining the effectiveness of your tracking setup. [Use this step-by-step guide on how to set up the Cookie Extender tag](https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager#extend-cookie-lifetime-using-cookie-extender-tag-in-s-gtm). ![Cookie Extender tag](https://cdn.stape.io/i/66d6e6fc06b49516401630.png) Challenge: user consent Data privacy regulations like [GDPR and CCPA](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive) mandate that user consent must be obtained before tracking their behavior. This means it's crucial to implement systems that ensure tracking only occurs for users who have explicitly given permission. [Consent Mode](https://stape.io/blog/consent-mode-server-google-tag-manager), for example, allows you to adjust your analytics and ads scripts based on the user's consent status, ensuring compliance with these regulations. Additionally, cookie banners play a vital role in this process, clearly informing users about the use of cookies and providing them with options to accept or decline tracking. Properly managing consent through these tools not only helps maintain compliance but also builds trust with your audience by respecting their privacy choices. ![Consent overview in GTM](https://cdn.stape.io/i/66d6e724abd20888889211.png) Solution: manage consent banners on the server side Stape emphasizes the importance of respecting user consent both on the web and on the server. Implementing consent mechanisms that prevent tracking without permission is essential for compliance and building trust with your audience. Stape offers detailed guidance on handling consent: [Consent mode in server Google Tag Manager](https://stape.io/blog/consent-mode-server-google-tag-manager) [Google Consent Mode V2](https://stape.io/blog/google-consent-mode-v2) [Consent Management in Microsoft (Bing)](https://stape.io/blog/consent-management-in-microsoft-bing) [Consent Settings for server GTM tags](https://stape.io/blog/consent-mode-server-google-tag-manager) [Server-side consent management with sGTM and Cookiebot](https://stape.io/blog/consent-mode-server-google-tag-manager) [The smart way to anonymize user data and use consent mode in Google Analytics 4 using GEO headers](https://stape.io/blog/how-to-anonymize-user-data-google-analytics-4) These guides will help you manage consent banners effectively, ensuring that your tracking efforts respect user privacy while maintaining the accuracy of your collected data. Challenge: spam or unwanted traffic Not all problems come from browsers or consent. Sometimes the issue is traffic itself. Test visits from your team or bots coming to your website can affect your reports and make it harder to see real user behavior. Solution: Block Request by IP Stape offers a power-up that lets you [exclude up to 30 IP addresses](https://stape.io/solutions/block-request-by-ip), so their requests won’t fire tags or appear in analytics. This lets you block your team’s IPs or the IPs that you suspect are the main sources of bot traffic. You can also block loading of all requests containing ‘.js?’ or ‘.html?’ or ’/gtag/js?id=’ from your sGTM container (for requests originating from the IP addresses you’ve defined in the block list). ![Block Request by IP](https://cdn.stape.io/i/6a3ba5d0eed9b802345179.png) Improving web analytics data quality with Stape Analytics Stape provides plenty of [tools and solutions](https://stape.io/solutions) to help you overcome the challenges of ad blockers, shortened cookie lifetimes, and consent management, ensuring that the data collected is accurate and reliable. To assess the impact of server-side tracking on [data quality](https://stape.io/blog/improve-data-quality-and-integrity), you can utilize [Stape Analytics](https://stape.io/blog/stape-analytics-measure-the-impact-of-your-server-side-tracking) feature. This section in the user’s admin provides detailed insights into how your tracking is performing, highlighting improvements in data accuracy and the effectiveness of your server-side setup. By analyzing metrics such as event reliability, data consistency, and tracking accuracy, Stape Analytics allows you to measure the true benefits of server-side tracking, helping you optimize your tracking strategy and ensure that your data is both accurate and actionable. https://www.youtube.com/watch?v=4gfY61-lkZo Conclusion Web analytics is a powerful tool for understanding user behavior and guiding your data-driven decisions. However, the quality of the data collected is essential for making accurate and informed decisions. Issues like ad blockers, reduced cookie lifetimes, and consent choice can affect data accuracy, but with the right tools and strategies, these challenges can be overcome. Stape offers practical solutions to improve your web analytics data quality, ensuring you can make decisions based on accurate and reliable data. By conducting regular [analytics audits](https://stape.io/blog/website-audit) and using Stape as your server-side tracking hosting provider, you can maintain high-quality website data that drives business success and provides valuable insights into your website visitors. --- # Meta CAPI for BigCommerce via server GTM Source: https://stape.io/blog/meta-capi-for-bigcommerce-via-server-gtm Learn how to set up server-side tagging for your BigCommerce site through Meta Events Manager. Improve tracking efficiency on BigCommerce. With the BigCommerce Conversion Tracking app by Stape and [GTM Setup Assistant](https://stape.io/gtm-set-up-assistant), you use pre-made Google Tag Manager container templates that match your BigCommerce stack and ad platforms. This way, server-side GTM and main tags are prepared for you, tracking is more reliable, and you send more complete data to platforms like Google, Meta, and TikTok without long manual setup. Step 1. Configure server Google Tag Manager container. 1.1. Open your WEB [Google Tag Manager container](https://tagmanager.google.com/). Click Admin. Under the container column, click + ![Set up server GTM](https://cdn.stape.io/i/668fda9d53807780905735.gif) 1.2. Type the container name, choose Server, and click Create. ![Set up server GTM](https://cdn.stape.io/i/668fdac160d42112402501.gif) 1.3. Choose Manually provision tagging server, copy your container config and paste it in any text editor. We will need it for the next steps. ![Set up server GTM](https://cdn.stape.io/i/668fdaee3bb7a594196429.png) 1.4. [Create a Stape account](https://stape.io/sign-up) or [log in](https://stape.io/sign-up) to your existing one. ![Log in or sign up to access Stape](https://cdn.stape.io/i/668fdb3be0a12398082874.png) 1.5. In Stape’s admin dashboard click Create container on the top right. ![Log in or sign up to access Stape](https://cdn.stape.io/i/668fdb93aa7ca800963700.png) 1.6. Enter your container details: Container name. The name does not necessarily have to be the same as the container name in your server GTM. Container configuration - paste Container Config that you copied from your Google Tag Manager Server Container. Server location - for best performance, choose the server location that’s closest to where most of your clients are. See the list of available server locations [here](https://help.stape.io/hc/en-us/articles/6092828307869-What-server-locations-zones-do-you-have). If you have traffic from different regions, you can select the [Global multi-zone server location option](https://stape.io/helpdesk/documentation/multi-zone-sgtm-container-hosting). It will automatically route incoming requests to the nearest available zone based on the user’s IP address. Then click Create Container. ![New container](https://cdn.stape.io/i/689dd2605deea483089129.png) 1.7. Choose a plan for your container. You can start with a Free plan. ![Stape pricing plans](https://cdn.stape.io/i/668fde661680d215985384.png) 1.8. You will see the status of your container, container config, and plan name. It takes around 5 minutes to deploy a server container. Please reload the page to update the status. If the Google Tag Manager server-side setup was done correctly, you should see the status “Running”. ![Running container on Stape](https://cdn.stape.io/i/668fdefc05e33471958300.png) Step 2. Set up Custom Loader in Stape admin. Custom Loader modifies gtag.js and gtm.js loading paths to resist ad blockers and ITPs, potentially increasing data volume by up to 40%. 2.1. Find and copy your WEB GTM ID in GTM. To find GTM ID log in to your Google Tag Manager account and open a Web GTM container. In the top right corner (next to the Submit and Preview buttons) you’ll see some short text that starts with "GTM-" and then contains some letters/numbers. ![Find and copy your WEB GTM ID in GTM ](https://cdn.stape.io/i/66c890006bee0332668536.png) 2.2. Open your sGTM container on Stape → Click Power-Ups. Find Custom Loader and click Configure. ![Custom Loader and click Configure](https://cdn.stape.io/i/66c88ff8ce98b714399334.png) 2.3. Add the following settings: Domain - from the list of domains connected to your container, select the necessary ones. Web GTM ID - add web Google Tag Manager ID. Check out [how to find web GTM ID](https://help.stape.io/hc/en-us/articles/20770012801821-How-to-find-Web-Google-Tag-Manager-GTM-ID) in our guide. GA4 ad block bypass - enables bypassing adblockers' impact on the GA4 tracking code. Note that this setting will affect all container domains. Be sure to debug both the web and server GTM containers after enabling this toggle. Same Origin Path - if you are using same origin approach for configuring custom domain, please specify the proxy path for requests. [Learn more](https://help.stape.io/hc/en-us/articles/23760522504349-Same-Origin-Path). Platform - the custom loader code differs for each platform. Select Bigcommerce, click generate and follow the steps on the right. ![Custom Loader and click Generate](https://cdn.stape.io/i/676ecf4fc4380958113116.png) Step 3. Configure Stape Conversion Tracking app for Bigcommerce. 3.1. Install the [Conversion Tracking app](https://www.bigcommerce.com/apps/stape-server-gtm/). Click Get this app → log in to your BigCommerce account → Install. ![ Stape Conversion Tracking app for BigCommerce ](https://cdn.stape.io/i/68f250d5ac1e7237831786.png) Then, you need to complete the settings parameters in three tabs: General, Data Layer, and Webhooks. 3.2. General tab Here, you need to add the following data: GTM Web container ID - add the ID of Web container in the format GTM-XXXXXXX. You can find it in your GTM account in the tab “Accounts”. Click “Insert GTM snippet” to automatically add the snippet with JavaScript code to every page on your website. Custom domain - use your subdomain created for first-party cookies for the most precise tracking. If you haven’t created a subdomain yet, please see our guide on adding a custom domain to sGTM container. GTM Web container ID - add the ID of Web container in the format GTM-XXXXXXX. You can find it in your GTM account in the tab “Accounts”. Click “Insert GTM snippet” to automatically add the snippet with JavaScript code to every page on your website. Custom domain - use your subdomain created for first-party cookies for the most precise tracking. If you haven’t created a subdomain yet, please see our guide on [adding a custom domain to sGTM container](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). Custom loader - this feature will help increase protection against ad blockers, resulting in better data quality. Add in the field Stape container identifier. Check this quick guide to [find your container identifier](https://help.stape.io/hc/en-us/articles/9697466601373-How-to-find-the-Stape-container-identifier). Cookie keeper - it helps prolong the cookies' lifetime by bypassing the browsers’ restrictions. After setting all the necessary fields, click “Save”. ![General tab](https://cdn.stape.io/i/66978fd958e8a453695311.png) 3.3 Data Layer tab In this tab, you can add two points to the settings: Add ecommerce Data Layer events - it will add standard Data Layer, based on them you can configure tracking in GTM container. Add user data to Data Layer events - with this feature, events will include user data. You can configure the data you want to collect from your website visitors in the GTM container. Decorate DataLayer event name - lets you decide whether to add the _stape suffix to event names to avoid conflicts with your existing GTM setup; when it’s turned off, events keep their standard names. Click “Save”. ![Data Layer tab](https://cdn.stape.io/i/692eec9256c28958888494.png) Step 4. Download and Import container templates from our GitHub. 4.1. Download [GTM templates for](https://github.com/stape-io/bigcommerce-gtm-container-templates) BigCommerce on our GitHub. ![Download GTM templates for BigCommerce on our GitHub](https://cdn.stape.io/i/66ceda20c1358670561367.png) 4.2. You should import the templates in both your web and server container on GTM (process is the same across the two). You need to go Admin → Import Container: ![Download GTM templates for BigCommerce on our GitHub](https://cdn.stape.io/i/66ceda35e4cff352766031.png) ![GTM templates for Magento](https://cdn.stape.io/i/66c8952d5eddb508097748.png) 4.3. Select your template file (make sure the template matches the container type - web/server). 4.4. Pick a workspace for this import (you can create a new one for this specific purpose). 4.5. Select Overwrite or Merge. ![image](https://cdn.stape.io/i/66c8954d8742c869259389.png) “Overwrite” option should only be used in a fresh, empty container or if you are absolutely certain you want to do it. For this demo we’re using Merge, with “Rename conflicting tags, triggers and variables” option selected. This way, if there are any conflicts - GTM will just rename the tags, thus not touching any of the existing entities you have in your container. Step 5. Сonfigure GTM container templates. 5.1. Templates are fully built, so triggers, payloads, and event names are all taken care of for you. You just need to input your specific destinations, ids, API keys etc. We’ve tried to make it as comfortable as possible, so in both containers (web and server), you will find a folder called “[Stape] _Settings”. Web ![web Сonfigure GTM container templates](https://cdn.stape.io/i/66c89620030b1563942581.png) Server ![server Сonfigure GTM container templates](https://cdn.stape.io/i/66c8963d8a9ff889799610.png) All these variables are already referenced in tags that use them; you just need to give them proper values, for example: ![proper values for variables](https://cdn.stape.io/i/66c8966a9ef33482318283.png) 5.2. Pixel ID and API token can found in your pixel settings: ![Pixel ID and API token](https://cdn.stape.io/i/66c8967ba88a7735806800.png) ![Pixel ID and API token](https://cdn.stape.io/i/66c896845a4db044866849.png) 5.3. Once you’ve changed all these variables and saved them, your last step (assuming this a new container) is to add a preview URL in your server container by going to Admin → Container Settings. If the container is not new, just skip this step. ![add a preview URL in your server container](https://cdn.stape.io/i/66c89694b43d8805057758.png) Step 6. Test the setup. Facebook provides the ability to test Browser and Server events. That is very useful if you set up Facebook pixel using GTM Server for the first time and wish to check that all data tracked correctly. 6.1. First, you need to obtain test_event_code. For this, you need to log into your Facebook manager, choose the data source that you liked to test, and open the tab “Test events”. There you will find the test event code. It can look like this: TEST2120 ![test_event_code](https://cdn.stape.io/i/66c896d419f9b633740246.png) Note: TEST id will change once in a couple of hours, if your debug sessions are spread in time make sure to check the value you’re using is still valid. 6.2. Fill the LT - Map | Debug Mode → FB Test ID variable, in your server container, with the test event code that you get from the previous step. ![Look up table variable](https://cdn.stape.io/i/66c896fe0932a606974195.png) This variable is already referenced in all Facebook tags. Variable will also only populate the tag in preview mode, so you don’t necessarily need to remove it before going live. 6.3. Launch preview mode on both your containers (web & server) If done right, you will see both web and server test events on the Facebook Test Event page. ![ Facebook Test Event page](https://cdn.stape.io/i/66c8972a264d5105891281.png) Ready to start with server-side? You are awesome! Click on Try for free to sign up and explore all the benefits. --- # Weather variable for server Google Tag Manager Source: https://stape.io/blog/weather-variable-for-server-google-tag-manager Stape has created a Weather variable for server GTM. The variable helps to monitor a specific city’s air temperature. Check our guide and set it up in a couple of minutes. Weather variable is a helpful tool for those who want to monitor the air temperature in their cities effectively and view the data in an analytics tool like Google Analytics 4. With Weather variable, you can set up the tracking via server Google Tag Manager, and in this article, we will guide you through the setup process. How to set up Weather variable [Create a server Google Tag Manager container on Stape](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Go to your server GTM → click “Templates” → find “Variable Templates” → click “Search Gallery”. ![Search Gallery in Variable Templates of GTM](https://cdn.stape.io/i/66c8ab30a815e244558997.png) Find the “[Weather” variable](https://github.com/stape-io/weather-variable) in the gallery and click “Add to workspace”. ![Weather variable template in GTM gallery](https://cdn.stape.io/i/66c8ab52448f8715387078.png) OR You can manually add it to sGTM. To do this, download the [Weather Variable](https://github.com/stape-io/weather-variable) from GitHub. In “Variable Templates,” click “New” → “Import” and choose the variable you recently downloaded. ![Import Weather Variable in Variable Templates of GTM](https://cdn.stape.io/i/66c8ab8d75f63448782476.png) 3. Go to the “Variables” → find the “User-Defined Variables” section → click “New” → choose “Weather” variable type. ![Weather Variable type](https://cdn.stape.io/i/66c8abbd5056e574017079.png) 4. Configure variable. 4.1 API key - you can get it from the [OpenWeather](https://openweathermap.org/) service. The key is free, and you get it one register the account. ![API key in OpenWeather](https://cdn.stape.io/i/66c8abeb3a5a4721171522.png) 4.2 Select unit - here choose between Celcius and Fahrenheit. 4.3 Country code - provide a country and сity to get the temperature. If you use Stape or AppEngine Hosting for sGTM, then country and city will be detected automatically. 4.4 City - specify the city of which you want to monitor the air temperature. 4.5 Logs Settings - choose whether the variable constantly logs to the console, logs during debug mode, or doesn’t log at all. 4.6 (Optional) Format Value - select the options to format the value this variable will output. You have the following options: Change Case to… (lowercase or uppercase) Convert null to… (text or variable) Convert undefined to… (text or variable) Convert true to… (text or variable) Convert false to… (text or variable) Click “Save”. ![Weather Variable setup](https://cdn.stape.io/i/66c8ac7d077c2779712194.png) Find out [how to debug and monitor server-side tracking](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) in our blog post. Conclusion To sum up, the Weather variable is a powerful tool for accurately tracking air temperature in your city and analyzing the data using platforms like Google Analytics 4. You can effortlessly incorporate this data into your analytics processes by configuring tracking through server-side Google Tag Manager. We hope you find this setup process of Weather variable easy and straightforward. And if you need help, don’t hesitate to contact us. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Meta CAPI for a custom website via server GTM Source: https://stape.io/blog/meta-capi-for-a-custom-website-via-server-gtm Implement Meta CAPI for custom sites via server GTM. Step-by-step guide: server setup, data layer, templates, and testing. Boost data accuracy & ad tracking. Set up tracking on any custom website with less work. [GTM Setup Assistant](https://stape.io/gtm-set-up-assistant) by Stape generates web and server GTM containers for your tech stack, so you can track key events, then import ready tags for Google, Meta, TikTok, and other tools. Once events go through a cloud server hosted by Stape, you can restore up to 40% of lost conversions and get higher ROAS. Step 1. Configure server Google Tag Manager container. 1.1. Go to your WEB [Google Tag Manager container](https://tagmanager.google.com/). Select Admin, then in the container column, choose +. ![Set up server GTM container](https://cdn.stape.io/i/668fda9d53807780905735.gif) 1.2. Type the container name, choose Server, and click Create. ![Set up server GTM container](https://cdn.stape.io/i/668fdac160d42112402501.gif) 1.3. Select Manually provision tagging server, then copy your container configuration and paste it into any text editor. You’ll need this information for the upcoming steps. ![Set up server GTM container](https://cdn.stape.io/i/668fdaee3bb7a594196429.png) 1.4. [Create a Stape account](https://stape.io/sign-up) or [sign in](https://stape.io/sign-up) to your existing account. ![Log in or sign up to access Stape](https://cdn.stape.io/i/668fdb3be0a12398082874.png) 1.5. In the Stape admin dashboard, click Create container in the upper-right corner. ![Log in or sign up to access Stape](https://cdn.stape.io/i/668fdb93aa7ca800963700.png) 1.6. Fill in your container details: Container name. The name doesn’t have to match the container name used in your server GTM. Container configuration. Paste the Container Config you copied from your Google Tag Manager Server Container. Server location. For best performance, choose the server location that’s closest to where most of your clients are. See the list of available server locations [here](https://help.stape.io/hc/en-us/articles/6092828307869-What-server-locations-zones-do-you-have). If you have traffic from different regions, you can select the [Global multi-zone server location option](https://stape.io/helpdesk/documentation/multi-zone-sgtm-container-hosting). It will automatically route incoming requests to the nearest available zone based on the user’s IP address. Then click Create Container. ![New container](https://cdn.stape.io/i/689dd2605deea483089129.png) 1.7. Select a plan for your container. You may begin with the Free plan. ![Stape pricing plans](https://cdn.stape.io/i/668fde661680d215985384.png) 1.8. You will be able to view your container’s status, configuration details, and the chosen plan name. Deployment of a server container typically takes about 5 minutes. To refresh the status, reload the page. If the Google Tag Manager server-side setup is completed successfully, the status will show as Running. ![Running your container on Stape](https://cdn.stape.io/i/668fdefc05e33471958300.png) Step 2. Configure Custom Loader in the Stape admin panel. The Custom Loader changes the loading paths of gtag.js and gtm.js to help bypass ad blockers and ITPs, which can boost your data volume by as much as 40%. 2.1. Locate and copy your Web GTM ID from Google Tag Manager. To find it, log into your Google Tag Manager account and open your Web GTM container. In the top right corner, near the Submit and Preview buttons, you will see a short identifier beginning with GTM- followed by a series of letters and numbers. ![Find and copy your WEB GTM ID in GTM ](https://cdn.stape.io/i/66c890006bee0332668536.png) 2.2. Open your sGTM container in Stape, then select Power-Ups. Find Custom Loader and click Configure. ![Find Custom Loader and click Configure](https://cdn.stape.io/i/66c88ff8ce98b714399334.png) 2.3. Enter the following settings: Domain - choose the required domains from the list connected to your container. Web GTM ID - enter your Web Google Tag Manager ID. Refer to our guide for instructions on [locating your Web GTM ID](https://stape.io/helpdesk/knowledgebase/how-to-find-web-google-tag-manager-gtm-id). GA4 ad block bypass - this setting allows bypassing the effects of ad blockers on the GA4 tracking code. Keep in mind that it applies to all container domains. After enabling this option, make sure to thoroughly debug both your web and server GTM containers. Same Origin Path - if you are using the same-origin method to set up a custom domain, specify the proxy path for the requests. [Learn more](https://help.stape.io/hc/en-us/articles/23760522504349-Same-Origin-Path). Platform - the Custom Loader code varies by platform. Choose Other and copy the provided code. Then, follow the instructions displayed on the right. ![Find Custom Loader and click Generate](https://cdn.stape.io/i/676ecf6d857f7547259657.png) Step 3. Create the Data Layer. Since this guide is tailored for a custom website and we don’t currently offer an app or extension to generate the dataLayer automatically, we have created a comprehensive dataLayer specification document for you to share with your development team. The document contains all native Meta events. Because you probably won’t need every event type, we recommend making a copy of the specification and customizing it to fit your particular needs. [Please find the link to the document here](https://docs.google.com/document/d/1LZO2ztW8SlyFOAp93bazoeN4Auvlc0Mr4Svebh9V3jY/edit). Step 4. Download and import the container templates available on our GitHub. 4.1. Download GTM templates on our [GitHub](https://github.com/stape-io/custom-gtm-container-templates). ![GTM templates for a custom website](https://cdn.stape.io/i/66e17328ae05a639886313.png) 4.2. Import the templates into both your web and server containers in GTM (the process is the same for both). To do this, go to Admin → Import Container: ![GTM templates for a custom website](https://cdn.stape.io/i/66e17348d83ef203191990.png) ![GTM templates for Shopify](https://cdn.stape.io/i/66c8952d5eddb508097748.png) 4.3. Choose your template file, ensuring it corresponds to the correct container type, web or server. 4.4. Select a workspace for the import, you may create a new workspace specifically for this task. 4.5. Choose either Overwrite or Merge. ![Tagging setup](https://cdn.stape.io/i/66c8954d8742c869259389.png) Use the Overwrite option only if you are working with a fresh, empty container or are completely sure about replacing existing content. For this demo, we recommend using Merge with the “Rename conflicting tags, triggers, and variables” option enabled. This ensures that if any conflicts arise, GTM will rename the conflicting items instead of altering your existing container elements. Step 5. Set up the GTM container templates. 5.1. The templates come fully configured, with triggers, payloads, and event names all pre-set for your convenience. You only need to enter your specific destinations, IDs, API keys, and similar details. To make this easier, both your web and server containers include a folder named “[Stape]_Settings.” Web ![Сonfigure web GTM container templates](https://cdn.stape.io/i/66c89620030b1563942581.png) Server ![Сonfigure server GTM container templates](https://cdn.stape.io/i/66c8963d8a9ff889799610.png) All these variables are already linked to the tags that use them; you simply need to assign the correct values, such as: ![Set proper values for variables](https://cdn.stape.io/i/66c8966a9ef33482318283.png) 5.2. You can find the Pixel ID and API token in your pixel settings: ![Pixel ID and API token](https://cdn.stape.io/i/66c8967ba88a7735806800.png) ![Pixel ID and API token](https://cdn.stape.io/i/66c896845a4db044866849.png) 5.3. After updating and saving all these variables, your final step, if this is a new container, is to add a preview URL in your server container by navigating to Admin → Container Settings. If the container isn’t new, you can skip this step. ![Add a preview URL in your server container](https://cdn.stape.io/i/66c89694b43d8805057758.png) Step 6. Verify the setup. Facebook offers tools to test both Browser and Server events. This is especially helpful if you’re setting up the Facebook pixel via GTM Server for the first time and want to ensure all tracked data is accurate. 6.1. First, obtain your test_event_code by logging into Facebook Manager. Select the data source you want to test, then open the Test Events tab. There, you’ll find the test event code, which may look like this: TEST2120. ![test_event_code](https://cdn.stape.io/i/66c896d419f9b633740246.png) Note: The TEST ID updates every few hours, so if your debug sessions are spaced out, be sure to verify that the ID you’re using is still valid. 6.2. In your server container, enter the test event code obtained earlier into the LT - Map | Debug Mode → FB Test ID variable. ![Lookup Table variable](https://cdn.stape.io/i/66c896fe0932a606974195.png) This variable is already linked to all Facebook tags and will only populate the tags when in preview mode, so you don’t need to remove it before publishing live. 6.3. Activate preview mode in both your web and server containers. If set up correctly, you’ll see test events from both containers displayed on the Facebook Test Event page. ![Facebook Test Event page](https://cdn.stape.io/i/66c8972a264d5105891281.png) Ready to start with server-side? You are awesome! Click on Try for free to sign up and explore all the benefits. --- # Meta CAPI for Magento 2 via server GTM Source: https://stape.io/blog/meta-capi-for-magento-via-server-gtm Learn how to set up server-side tagging for your Magento 2 site through Meta Events Manager. Simplify tracking on Magento 2. The Magento 2 Conversion Tracking app by Stape plus [GTM Setup Assistant](https://stape.io/gtm-set-up-assistant) let you set up server-side GTM quickly, generate main eCommerce events, and import prepared tags for Google, Meta, TikTok, and more. Because events run through a cloud server hosted by Stape, you can regain up to 40% more conversions and improve ROAS. Step 1. Configure server Google Tag Manager container. 1.1. Open your WEB [Google Tag Manager container](https://tagmanager.google.com/). Click Admin. Under the container column, click + ![set up server gm](https://cdn.stape.io/i/668fda9d53807780905735.gif) 1.2. Type the container name, choose Server, and click Create. ![set up server gm](https://cdn.stape.io/i/668fdac160d42112402501.gif) 1.3. Choose Manually provision tagging server, copy your container config and paste it in any text editor. We will need it for the next steps. ![set up server gtm](https://cdn.stape.io/i/668fdaee3bb7a594196429.png) 1.4. [Create a stape.io account](https://stape.io/sign-up) or [log in](https://stape.io/sign-up) to your existing one. ![log in or sign up to access Stape](https://cdn.stape.io/i/668fdb3be0a12398082874.png) 1.5. In Stape’s admin dashboard click Create container on the top right. ![log in or sign up to access Stape](https://cdn.stape.io/i/668fdb93aa7ca800963700.png) 1.6. Enter your container details: Container name. The name does not necessarily have to be the same as the container name in your server GTM. Container configuration - paste Container Config that you copied from your Google Tag Manager Server Container. Server location - for best performance, choose the server location that’s closest to where most of your clients are. See the list of available server locations [here](https://help.stape.io/hc/en-us/articles/6092828307869-What-server-locations-zones-do-you-have). If you have traffic from different regions, you can select the [Global multi-zone server location option](https://stape.io/helpdesk/documentation/multi-zone-sgtm-container-hosting). It will automatically route incoming requests to the nearest available zone based on the user’s IP address. Then click Create Container. ![New container](https://cdn.stape.io/i/689dd2605deea483089129.png) 1.7. Choose a plan for your container. You can start with a Free plan. ![stape pricing plans](https://cdn.stape.io/i/668fde661680d215985384.png) 1.8. You will see the status of your container, container config, and plan name. It takes around 5 minutes to deploy a server container. Please reload the page to update the status. If the Google Tag Manager server-side setup was done correctly, you should see the status “Running”. ![running container on stape](https://cdn.stape.io/i/668fdefc05e33471958300.png) Step 2. Set up Custom Loader in Stape admin. Custom Loader modifies gtag.js and gtm.js loading paths to resist ad blockers and ITPs, potentially increasing data volume by up to 40%. 2.1. Find and copy your WEB GTM ID in GTM. To find GTM ID log in to your Google Tag Manager account and open a Web GTM container. In the top right corner (next to the Submit and Preview buttons) you’ll see some short text that starts with "GTM-" and then contains some letters/numbers. ![Find and copy your WEB GTM ID in GTM ](https://cdn.stape.io/i/66c890006bee0332668536.png) 2.2. Open your sGTM container on Stape → Click Power-Ups. Find Custom Loader and click Configure. ![Custom Loader and click Configure](https://cdn.stape.io/i/66c88ff8ce98b714399334.png) 2.3. Add the following settings: Domain - from the list of domains connected to your container, select the necessary ones. Web GTM ID - add web Google Tag Manager ID. Check out [how to find web GTM ID](https://help.stape.io/hc/en-us/articles/20770012801821-How-to-find-Web-Google-Tag-Manager-GTM-ID) in our guide. GA4 ad block bypass - enables bypassing adblockers' impact on the GA4 tracking code. Note that this setting will affect all container domains. Be sure to debug both the web and server GTM containers after enabling this toggle. Same Origin Path - if you are using same origin approach for configuring custom domain, please specify the proxy path for requests. [Learn more](https://help.stape.io/hc/en-us/articles/23760522504349-Same-Origin-Path). Platform - the custom loader code differs for each platform. Select Magento 2, click generate and follow the steps on the right. ![Custom Loader and click generate](https://cdn.stape.io/i/676ecfcbd8298382942093.png) Step 3. Configure Stape Conversion Tracking integration for Magento 2. 3.1. Log in to your Magento 2 Admin. Go to Magento 2 Marketplace, then choose [Stape Conversion Tracking](https://commercemarketplace.adobe.com/stape-gtm-server-side-magento-module.html), click Add to cart and proceed to Checkout. ![Magento 2 Marketplace](https://cdn.stape.io/i/692d8939e3b67870797813.png) Please note that the plugin is entirely free, and all plugin functions - except the [Cookie Keeper](https://stape.io/solutions/cookie-keeper) - can be used regardless of whether you use the Stape service or not. The Cookie Keeper function will only work if you use the Stape service on any tariff and have activated it in your container settings. 3.2. In your Magento 2 account go to Stores and choose Configuration. ![Magento 2 account](https://cdn.stape.io/i/66c89cfc7e443063923685.png) 3.3. Choose Stape and click on Server Side GTM. ![Magento 2 account](https://cdn.stape.io/i/66c89d1ea8487911948203.png) 3.4. Paste your WEB container ID, Custom domain and Custom Loader from your container. Don’t forget to click the Save config button. ![Magento 2 account](https://cdn.stape.io/i/66c89d3740745422700773.png) 3.5. You also have an option to send data layer with the help of Magento 2 extension. Simply enable two boxes to send e-commerce and user data. The list of e-commerce events: Collection view View Item Add to cart Begin checkout Add payment info Purchase User data: Email First name Last name Customer ID The Stape Suffix Enabled option determines whether the _stape suffix is added to event names to prevent conflicts with your existing GTM events; when this option is turned off, events keep their original names. ![Data Layer section](https://cdn.stape.io/i/692ec86f85ba1633768963.png) Step 4. Download and Import container templates from our GitHub. 4.1. Download [GTM templates for Magento 2 on our GitHub](https://github.com/stape-io/magento-gtm-comtainer-templates). ![image](https://cdn.stape.io/i/66cda0192623a024359529.png) 4.2. You should import the templates in both your web and server container on GTM (process is the same across the two). You need to go Admin → Import Container: ![GTM templates for magento 2](https://cdn.stape.io/i/66cda03bbd69f248612797.png) ![GTM templates for magento 2](https://cdn.stape.io/i/66c8952d5eddb508097748.png) 4.3. Select your template file (make sure the template matches the container type - web/server). 4.4. Pick a workspace for this import (you can create a new one for this specific purpose). 4.5. Select Overwrite or Merge. ![image](https://cdn.stape.io/i/66c8954d8742c869259389.png) “Overwrite” option should only be used in a fresh, empty container or if you are absolutely certain you want to do it. For this demo we’re using Merge, with “Rename conflicting tags, triggers and variables” option selected. This way, if there are any conflicts - GTM will just rename the tags, thus not touching any of the existing entities you have in your container. Step 5. Сonfigure GTM container templates. 5.1. Templates are fully built, so triggers, payloads, and event names are all taken care of for you. You just need to input your specific destinations, ids, API keys etc. We’ve tried to make it as comfortable as possible, so in both containers (web and server), you will find a folder called “[Stape] _Settings”. Web ![web Сonfigure GTM container templates](https://cdn.stape.io/i/66c89620030b1563942581.png) Server ![server Сonfigure GTM container templates](https://cdn.stape.io/i/66c8963d8a9ff889799610.png) All these variables are already referenced in tags that use them; you just need to give them proper values, for example: ![proper values for variables](https://cdn.stape.io/i/66c8966a9ef33482318283.png) 5.2. Pixel ID and API token can found in your pixel settings: ![Pixel ID and API token](https://cdn.stape.io/i/66c8967ba88a7735806800.png) ![Pixel ID and API token](https://cdn.stape.io/i/66c896845a4db044866849.png) 5.3. Once you’ve changed all these variables and saved them, your last step (assuming this a new container) is to add a preview URL in your server container by going to Admin → Container Settings. If the container is not new, just skip this step. ![add a preview URL in your server container](https://cdn.stape.io/i/66c89694b43d8805057758.png) Step 6. Test the setup. Facebook provides the ability to test Browser and Server events. That is very useful if you set up Facebook pixel using GTM Server for the first time and wish to check that all data tracked correctly. 6.1. First, you need to obtain test_event_code. For this, you need to log into your Facebook manager, choose the data source that you liked to test, and open the tab “Test events”. There you will find the test event code. It can look like this: TEST2120 ![test_event_code](https://cdn.stape.io/i/66c896d419f9b633740246.png) Note: TEST id will change once in a couple of hours, if your debug sessions are spread in time make sure to check the value you’re using is still valid. 6.2. Fill the LT - Map | Debug Mode → FB Test ID variable, in your server container, with the test event code that you get from the previous step. ![look up table variable](https://cdn.stape.io/i/66c896fe0932a606974195.png) This variable is already referenced in all Facebook tags. Variable will also only populate the tag in preview mode, so you don’t necessarily need to remove it before going live. 6.3. Launch preview mode on both your containers (web & server) If done right, you will see both web and server test events on the Facebook Test Event page. ![ Facebook Test Event page](https://cdn.stape.io/i/66c8972a264d5105891281.png) Ready to start with server-side? You are awesome! Click on Try for free to sign up and explore all the benefits. --- # Server-side tracking for Bloomreach Source: https://stape.io/blog/server-side-tracking-for-bloomreach Bloomreach is a platform that personalizes the eCommerce experience. Learn how to set up server-side tracking with GTM for better data accuracy and security. Setting up [server-side tracking](https://stape.io/) along with client-side tracking for Bloomreach has many benefits, such as higher data accuracy, ad blocker protection, and security. However, the Bloomreach platform is pretty hard to work with, and such kind of setup may be challenging. In this article, we’ll guide you through the process of setting up server-side tracking for Bloomreach, so you can start reaping the benefits. Advantages of server-side tracking for Bloomreach Server-side tagging enables Google Tag Manager users to incorporate server-side measurement tags alongside the client-side tags. When used together, server-side and client-side tracking provides a lot of benefits compared to using only client-side tags: More accurate data. Server-side tracking helps reduce data loss due to ad blockers and browser restrictions, resulting in higher data quality. Enhanced security. Website visitor data is more securely protected by gathering and distributing it in a server-side environment. Find out more about [the benefits of server-side tracking](https://stape.io/blog/benefits-server-side-tagging) in our blog post. What you need to configure data sending to server-side GTM 1. [Create server-side GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Download [Bloomreach Engagement Tag for GTM Web Container](https://github.com/stape-io/exponea-web-tag) from GitHub. 3. Download [Bloomreach Engagement Client for GTM Server Container](https://github.com/stape-io/exponea-client?tab=readme-ov-file)from GitHub. How to set up server-side tracking for Bloomreach Note: below, we describe the bare minimum you need to configure server-side tracking for Bloomreach. Please, let us know in the comment section if you would like to learn more about the configuration process. Configure Tag for the web container 1.1 In your web container, go to the “Templates” section → click “New”. ![Add new tag template to GTM web container](https://cdn.stape.io/i/66c8a01af1495848024689.png) 1.2 Click “Import” → add the [template you downloaded from GitHub](https://github.com/stape-io/exponea-web-tag). Click “Save’. ![Import Bloomreach tag template](https://cdn.stape.io/i/66c8a04482daa871501947.png) 1.3 Go to the “Tags” section → click “New” → choose “Bloomreach Engagement” tag type. ![Bloomreach Engagement tag type](https://cdn.stape.io/i/66c8a06d9d8e2682725825.png) 1.4 Configure the tag as it is shown in the screenshot below To find the project token go to the Bloomreach admin → in the top right corner click “Project settings” → Access management (on the left-hand side menu) → API section. The API endpoint URL is located in the same section as the project token and is called the “API Base URL.” ![Bloomreach Engagement tag configuration](https://cdn.stape.io/i/66c8a0bbbc285654760327.png) 1.5 Add a trigger to the tag. The type of trigger should be “Page View,” and the tag should fire on “All Page Views”. ![Trigger configuration for Bloomreach tag](https://cdn.stape.io/i/66c8a0ee9135f442070590.png) Configure Client for server container 2.1 in your server GTM container, go to the section “Templates” → click “New”. ![Add new client template to GTM server container](https://cdn.stape.io/i/66c8a1328eeca819473646.png) 2.2 Click “Import” → add the[client template you downloaded from GitHub](https://github.com/stape-io/exponea-client?tab=readme-ov-file). Click “Save’. ![Import Bloomreach Client template](https://cdn.stape.io/i/66c8a17b89fb6414409993.png) 2.3 Then you need to go to the “Clients” section → click “New” → choose “Bloomreach Engagement” client type. ![Bloomreach Engagement client type](https://cdn.stape.io/i/66c8a1a3a037e185643501.png) 2.4 Configure the Client as shown in the screenshot below. You can find the project token in the Bloomreach admin → in the top right corner, click “Project settings” → Access management (on the left-hand side menu) → API section. The API endpoint is located in the same section as the project token and is called the “API Base URL.” Click “Save”. ![Bloomreach Engagement client configuration](https://cdn.stape.io/i/66c8a1f1ebcd0487166801.png) 2.5 Publish changes. Change target URL As the final configuration step, you need to change the target URL in the Bloomreach Engagement initialization script. The target URL should be changed to the custom domain for server-side GTM, which can be found in the Stape admin account (see the instructions below). ![Change target URL Bloomreach Engagement initialization script](https://cdn.stape.io/i/66c8a23d1c469591522197.png) To find the custom domain for server-side GTM, go to the sGTM container → Settings section → Domains (Tagging Server URLs). ![Domain name in Stape admin](https://cdn.stape.io/i/66c8a268ac3bc176727118.png) Verify the setup You can check whether everything works using the [Explonea Chrome extension](https://chromewebstore.google.com/detail/mmmbicaeeeimceemmbfpjajgodipoaik). ![Open Exponea Chrome extension](https://cdn.stape.io/i/66c8a29ec5dee642016580.png) The plugin should show no errors, and the value for the customer’s cookie ID should be in the section “Customer.” Conclusion To set up server-side tracking for Bloomreach, you need to have a web container and create a server GTM container. The setup requires configuring a [Tag for the web GTM container](https://github.com/stape-io/exponea-web-tag) and a [Client for a server container](https://github.com/stape-io/exponea-client?tab=readme-ov-file). Such a combination of client-side and server-side tracking provides the following benefits: faster website load, enhanced data security, and higher data accuracy. If you’ve got any problems with configuring server-side tracking for Bloomreach, feel free to contact our [support team](https://stapehelp.zendesk.com/hc/en-us/requests/new). Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Meta CAPI for Wordpress via server GTM Source: https://stape.io/blog/meta-capi-for-wordpress-via-server-gtm WordPress server-side tracking with Stape’s GTM container templates ensures accurate data collection, ad-block resistance, and seamless event tracking setup. Make tracking easier on WordPress. Using the WordPress Conversion Tracking app by Stape together with [GTM Setup Assistant](https://stape.io/gtm-set-up-assistant), you can install server-side GTM fast, send key eCommerce events from your site, and use prebuilt tags for Google, Meta, TikTok, and more. Step 1. Configure server Google Tag Manager container. 1.1. Open your WEB [Google Tag Manager container](https://tagmanager.google.com/). Click Admin. Under the container column, click + ![set up server gm](https://cdn.stape.io/i/668fda9d53807780905735.gif) 1.2. Type the container name, choose Server, and click Create. ![set up server gtm](https://cdn.stape.io/i/668fdac160d42112402501.gif) 1.3. Choose Manually provision tagging server, copy your container config and paste it in any text editor. We will need it for the next steps. ![set up server gtm](https://cdn.stape.io/i/668fdaee3bb7a594196429.png) 1.4. [Create a stape.io account](https://stape.io/sign-up) or [log in](https://stape.io/sign-up) to your existing one. ![log in or sign up to access Stape](https://cdn.stape.io/i/668fdb3be0a12398082874.png) 1.5. In Stape’s admin dashboard click Create container on the top right. ![log in or sign up to access Stape](https://cdn.stape.io/i/668fdb93aa7ca800963700.png) 1.6. Enter your container details: Container name. The name does not necessarily have to be the same as the container name in your server GTM. Container configuration - paste Container Config that you copied from your Google Tag Manager Server Container. Server location - for best performance, choose the server location that’s closest to where most of your clients are. See the list of available server locations [here](https://help.stape.io/hc/en-us/articles/6092828307869-What-server-locations-zones-do-you-have). If you have traffic from different regions, you can select the [Global multi-zone server location option](https://stape.io/helpdesk/documentation/multi-zone-sgtm-container-hosting). It will automatically route incoming requests to the nearest available zone based on the user’s IP address. Then click Create Container. ![New container](https://cdn.stape.io/i/689dd2605deea483089129.png) 1.7. Choose a plan for your container. You can start with a Free plan. ![stape pricing plans](https://cdn.stape.io/i/668fde661680d215985384.png) 1.8. You will see the status of your container, container config, and plan name. It takes around 5 minutes to deploy a server container. Please reload the page to update the status. If the Google Tag Manager server-side setup was done correctly, you should see the status “Running”. ![running container on stape](https://cdn.stape.io/i/668fdefc05e33471958300.png) Step 2. Set up Custom Loader in Stape admin. Custom Loader modifies gtag.js and gtm.js loading paths to resist ad blockers and ITPs, potentially increasing data volume by up to 40%. 2.1. Find and copy your WEB GTM ID in GTM. To find GTM ID log in to your Google Tag Manager account and open a Web GTM container. In the top right corner (next to the Submit and Preview buttons) you’ll see some short text that starts with "GTM-" and then contains some letters/numbers. ![Find and copy your WEB GTM ID in GTM ](https://cdn.stape.io/i/66c890006bee0332668536.png) 2.2. Open your sGTM container on Stape → Click Power-Ups. Find Custom Loader and click Configure. ![Custom Loader and click Configure](https://cdn.stape.io/i/66c88ff8ce98b714399334.png) 2.3. Add the following settings: Domain - from the list of domains connected to your container, select the necessary ones. Web GTM ID - add web Google Tag Manager ID. Check out [how to find web GTM ID](https://help.stape.io/hc/en-us/articles/20770012801821-How-to-find-Web-Google-Tag-Manager-GTM-ID) in our guide. GA4 ad block bypass - enables bypassing adblockers' impact on the GA4 tracking code. Note that this setting will affect all container domains. Be sure to debug both the web and server GTM containers after enabling this toggle. Same Origin Path - if you are using same origin approach for configuring custom domain, please specify the proxy path for requests. [Learn more](https://help.stape.io/hc/en-us/articles/23760522504349-Same-Origin-Path). Platform - the custom loader code differs for each platform. Select Wordpress, click generate and follow the steps on the right. ![Custom Loader and click generate](https://cdn.stape.io/i/676ecff22a3c1681252133.png) Step 3. Configure Stape Conversion Tracking plugin for WordPress. Stape has a YouTube video on how to set up server-side tagging for WordPress which you can watch here: [https://www.youtube.com/watch?v=d-fo7U3pOEo&ab_channel=Stape](https://www.youtube.com/watch?v=d-fo7U3pOEo&ab_channel=Stape) 3.1. Log into your WordPress Admin, and go to the plugins. Then, click Add New, type “Stape Conversion Tracking,” choose [this plugin](https://wordpress.org/plugins/gtm-server-side/), and click Install now. Once established, click Activate. ![Stape Conversion Tracking plugin](https://cdn.stape.io/i/68ef948b236d2082574940.png) 3.2. Open the [Stape Conversion Tracking plugin](https://wordpress.org/plugins/gtm-server-side/). In the General tab, select if you want to add web GTM to all site pages or just add plugin functionality without adding GTM script (this option should be used in case you are using any other plugin that inserts GTM script on the site). Next, add WEB Google Tag Manager ID, [tagging server URL](https://help.stape.io/hc/en-us/articles/19018672402461-How-to-find-tagging-server-URL), and [Stape container identifier](https://help.stape.io/hc/en-us/articles/9697466601373-How-to-find-the-Stape-container-identifier) if you use a [Custom Loader](https://stape.io/solutions/custom-gtm-loader). ![WEB Google Tag Manager ID, tagging server URL, and stape container identifier if you use a custom loader.](https://cdn.stape.io/i/66c89ad20da52298481225.png) 3.3. To integrate eCommerce events and user data into the Data Layer from your eCommerce website, navigate to the second tab of the plugin and enable the two checkboxes provided. Please note that this functionality is exclusively compatible with WooCommerce shops. ![Data Layer from your eCommerce website](https://cdn.stape.io/i/66c89ae9a3be4028431088.png) Step 4. Download and Import container templates from our GitHub. 4.1. Download [GTM templates for Wordpress on our GitHub](https://github.com/stape-io/woocommerce-gtm-container-templates). ![GTM templates for wordpress](https://cdn.stape.io/i/66cda094380d7545881678.png) 4.2. You should import the templates in both your web and server container on GTM (process is the same across the two). You need to go Admin → Import Container: ![GTM templates for wordpress](https://cdn.stape.io/i/66cda0a816a9c023046790.png) ![GTM templates for wordpress](https://cdn.stape.io/i/66c8952d5eddb508097748.png) 4.3. Select your template file (make sure the template matches the container type - web/server). 4.4. Pick a workspace for this import (you can create a new one for this specific purpose). 4.5. Select Overwrite or Merge. ![image](https://cdn.stape.io/i/66c8954d8742c869259389.png) “Overwrite” option should only be used in a fresh, empty container or if you are absolutely certain you want to do it. For this demo we’re using Merge, with “Rename conflicting tags, triggers and variables” option selected. This way, if there are any conflicts - GTM will just rename the tags, thus not touching any of the existing entities you have in your container. Step 5. Сonfigure GTM container templates. 5.1. Templates are fully built, so triggers, payloads, and event names are all taken care of for you. You just need to input your specific destinations, ids, API keys etc. We’ve tried to make it as comfortable as possible, so in both containers (web and server), you will find a folder called “[Stape] _Settings”. Web ![web Сonfigure GTM container templates](https://cdn.stape.io/i/66c89620030b1563942581.png) Server ![server Сonfigure GTM container templates](https://cdn.stape.io/i/66c8963d8a9ff889799610.png) All these variables are already referenced in tags that use them; you just need to give them proper values, for example: ![proper values for variables](https://cdn.stape.io/i/66c8966a9ef33482318283.png) 5.2. Pixel ID and API token can found in your pixel settings: ![Pixel ID and API token](https://cdn.stape.io/i/66c8967ba88a7735806800.png) ![Pixel ID and API token](https://cdn.stape.io/i/66c896845a4db044866849.png) 5.3. Once you’ve changed all these variables and saved them, your last step (assuming this a new container) is to add a preview URL in your server container by going to Admin → Container Settings. If the container is not new, just skip this step. ![add a preview URL in your server container](https://cdn.stape.io/i/66c89694b43d8805057758.png) Step 6. Test the setup. Facebook provides the ability to test Browser and Server events. That is very useful if you set up Facebook pixel using GTM Server for the first time and wish to check that all data tracked correctly. 6.1. First, you need to obtain test_event_code. For this, you need to log into your Facebook manager, choose the data source that you liked to test, and open the tab “Test events”. There you will find the test event code. It can look like this: TEST2120 ![test_event_code](https://cdn.stape.io/i/66c896d419f9b633740246.png) Note: TEST id will change once in a couple of hours, if your debug sessions are spread in time make sure to check the value you’re using is still valid. 6.2. Fill the LT - Map | Debug Mode → FB Test ID variable, in your server container, with the test event code that you get from the previous step. ![look up table variable](https://cdn.stape.io/i/66c896fe0932a606974195.png) This variable is already referenced in all Facebook tags. Variable will also only populate the tag in preview mode, so you don’t necessarily need to remove it before going live. 6.3. Launch preview mode on both your containers (web & server) If done right, you will see both web and server test events on the Facebook Test Event page. ![ Facebook Test Event page](https://cdn.stape.io/i/66c8972a264d5105891281.png) Ready to start with server-side? You are awesome! Click on Try for free to sign up and explore all the benefits. --- # Object Builder Variable for server Google Tag Manager Source: https://stape.io/blog/object-builder-variable-for-server-google-tag-manager Stape has developed an Object Builder Variable for server GTM to create and organize data as JS objects. See our end-to-end guide to set it up in a few simple steps. [Object Builder Variable for server Google Tag Manager (sGTM)](https://stape.io/solutions/object-builder-variable), developed by Stape, is a handy tool for creating and organizing data structures in the GTM environment. Using the variable, you will be able to build complex data-tracking schemes and efficiently manage their objects. In this article, you will find out more about variable use cases and [how to set it up](https://stape.io/blog/object-builder-variable-for-server-google-tag-manager#how-to-set-up-object-builder-variable). Use cases The variable's name says for itself - with its help you can create and organize data as JavaScript objects within the GTM environment. It will be helpful for the following purposes: Organize information and build complex data structures. Define properties and assign values to create a structured data object. Create complex tracking. The structures built with this variable can be utilized for tracking, manipulating the data layer, or passing organized information to tags and other variables within your server-side GTM setup. How to set up Object Builder Variable 1. [Set up a server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Go to server GTM → click “Templates” → find “Variable Templates” → click “Search Gallery”. Find “[Object Builder” variable](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/object-builder-variable) in the gallery and click “Add to workspace”. ![Search Gallery in Variable Templates of GTM](https://cdn.stape.io/i/66c88ea6bb3e2320132237.png) OR You can download the [Object Builder Variable](https://github.com/stape-io/object-builder-variable) from GitHub. In “Variable Templates,” click “New” → “Import” and choose the variable you downloaded. ![Import Object Builder Variable in Variable Templates of GTM](https://cdn.stape.io/i/66c88ed814067537896792.png) 3. Go to the “Variables” → find the “User-Defined Variables” section → click “New” → choose “Object Builder” variable type. ![Object Builder variable type](https://cdn.stape.io/i/66c88f51d681f493213395.png) 4. Configure variable. 4.1 Put object inside array - if you check this box, the built object will be placed inside the array. 4.2 Add property and values - they can be chosen from the variables list or specified manually. 4.3 (Optional) Format Value - select the options to format the value this variable will output. You have the following options: Change Case to… (lowercase or uppercase) Convert null to… (text or variable) Convert undefined to… (text or variable) Convert true to… (text or variable) Convert false to… (text or variable) ![Example of Object Builder Variable configuration](https://cdn.stape.io/i/66c88fd714898327541617.png) Conclusion Object Builder Variable will be helpful for those who want to create and effectively organize complex data structures in the GTM environment. The configuration process is simple; it takes just a few steps to complete. The variable itself is easy to customize to your needs. If you need any help with variable configuration, don’t hesitate to contact our [support team](https://stapehelp.zendesk.com/hc/en-us/requests/new). Do you want a setup from us? Happy to hear that! Click Get help, fill-up the form, and we will send you a quote. --- # Meta CAPI for Shopify via server GTM Source: https://stape.io/blog/meta-capi-for-shopify-via-server-gtm Learn how to set up Facebook Conversions API for Shopify using Stape’s app. Step-by-step guide covering configuration, triggers, and verification. Set up tracking without extra work. With [Stape's Conversion Tracking app for Shopify and Setup Assistant](https://stape.io/solutions/shopify-app-and-setup-assistant?cta=blog_article), you can install server-side GTM in minutes, get all core eCommerce events created automatically, and load prebuilt tags for Google, Meta, TikTok, and more. Events run through Stape’s server-side tracking platform, letting you recover up to 40% more conversions and increase ROAS. Step 1. Configure server Google Tag Manager container 1.1. Open your WEB [Google Tag Manager container](https://tagmanager.google.com/). Click Admin. Under the container column, click + ![Set up server GTM](https://cdn.stape.io/i/668fda9d53807780905735.gif) 1.2. Type the container name, choose Server, and click Create. ![Set up server GTM](https://cdn.stape.io/i/668fdac160d42112402501.gif) 1.3. Choose Manually provision tagging server, copy your container config and paste it in any text editor. We will need it for the next steps. ![Set up server GTM](https://cdn.stape.io/i/668fdaee3bb7a594196429.png) 1.4. [Create a stape.io account](https://stape.io/sign-up) or [log in](https://stape.io/sign-up) to your existing one. ![Log in or sign up to access Stape](https://cdn.stape.io/i/668fdb3be0a12398082874.png) 1.5. In Stape’s admin dashboard click Create container on the top right. ![Log in or sign up to access Stape](https://cdn.stape.io/i/668fdb93aa7ca800963700.png) 1.6. Enter your container details: Container name. The name does not necessarily have to be the same as the container name in your server GTM. Container configuration - paste Container Config that you copied from your Google Tag Manager Server Container. Server location - for best performance, choose the server location that’s closest to where most of your clients are. See the list of available server locations [here](https://help.stape.io/hc/en-us/articles/6092828307869-What-server-locations-zones-do-you-have). If you have traffic from different regions, you can select the [Global multi-zone server location option](https://stape.io/helpdesk/documentation/multi-zone-sgtm-container-hosting). It will automatically route incoming requests to the nearest available zone based on the user’s IP address. Then click Create Container. ![New container](https://cdn.stape.io/i/689dd2605deea483089129.png) 1.7. Choose a plan for your container. You can start with a Free plan. ![Stape pricing plans](https://cdn.stape.io/i/668fde661680d215985384.png) 1.8. You will see the status of your container, container config, and plan name. It takes around 5 minutes to deploy a server container. Please reload the page to update the status. If the Google Tag Manager server-side setup was done correctly, you should see the status “Running”. ![Running container on Stape](https://cdn.stape.io/i/668fdefc05e33471958300.png) Step 2. Set up Custom Loader in Stape admin Custom Loader modifies gtag.js and gtm.js loading paths to resist ad blockers and ITPs, potentially increasing data volume by up to 40%. 2.1. Find and copy your WEB GTM ID in GTM. To find GTM ID log in to your Google Tag Manager account and open a Web GTM container. In the top right corner (next to the Submit and Preview buttons) you’ll see some short text that starts with "GTM-" and then contains some letters/numbers. ![Find and copy your WEB GTM ID in GTM ](https://cdn.stape.io/i/66c890006bee0332668536.png) 2.2. Open your sGTM container on Stape → Click Power-Ups. Find Custom Loader and click Configure. ![Custom Loader and click Configure](https://cdn.stape.io/i/66c88ff8ce98b714399334.png) 2.3. Add the following settings: Domain - from the list of domains connected to your container, select the necessary ones. Web GTM ID - add web Google Tag Manager ID. Check out [how to find web GTM ID](https://help.stape.io/hc/en-us/articles/20770012801821-How-to-find-Web-Google-Tag-Manager-GTM-ID) in our guide. GA4 ad block bypass - enables bypassing adblockers' impact on the GA4 tracking code. Note that this setting will affect all container domains. Be sure to debug both the web and server GTM containers after enabling this toggle. Same Origin Path - if you are using same origin approach for configuring custom domain, please specify the proxy path for requests. [Learn more](https://help.stape.io/hc/en-us/articles/23760522504349-Same-Origin-Path). Platform - the custom loader code differs for each platform. Select Shopify, click generate and follow the steps on the right. ![Custom Loader and click Generate](https://cdn.stape.io/i/676ed01494de7272638365.png) Step 3. Configure Stape's Conversion Tracking App for Shopify Step 4. Download and Import container templates from our GitHub 4.1. Download [GTM templates for Shopify](https://github.com/stape-io/shopify-gtm-container-templates) on our GitHub. ![GTM templates for Shopify](https://cdn.stape.io/i/66c893f995c8a159859624.png) 4.2. You should import the templates in both your web and server container on GTM (process is the same across the two). You need to go Admin → Import Container: ![GTM templates for Shopify](https://cdn.stape.io/i/66c89518e965b718221486.png) ![GTM templates for Shopify](https://cdn.stape.io/i/66c8952d5eddb508097748.png) 4.3. Select your template file (make sure the template matches the container type - web/server). 4.4. Pick a workspace for this import (you can create a new one for this specific purpose). 4.5. Select Overwrite or Merge. ![Select Overwrite or Merge](https://cdn.stape.io/i/66c8954d8742c869259389.png) “Overwrite” option should only be used in a fresh, empty container or if you are absolutely certain you want to do it. For this demo we’re using Merge, with “Rename conflicting tags, triggers and variables” option selected. This way, if there are any conflicts - GTM will just rename the tags, thus not touching any of the existing entities you have in your container. Step 5. Сonfigure GTM container templates 5.1. Templates are fully built, so triggers, payloads, and event names are all taken care of for you. You just need to input your specific destinations, ids, API keys etc. We’ve tried to make it as comfortable as possible, so in both containers (web and server), you will find a folder called “[Stape] _Settings”. Web ![Web Сonfigure GTM container templates](https://cdn.stape.io/i/66c89620030b1563942581.png) Server ![Server Сonfigure GTM container templates](https://cdn.stape.io/i/66c8963d8a9ff889799610.png) All these variables are already referenced in tags that use them; you just need to give them proper values, for example: ![Proper values for variables](https://cdn.stape.io/i/66c8966a9ef33482318283.png) 5.2. Pixel ID and API token can found in your pixel settings: ![Pixel ID and API token](https://cdn.stape.io/i/66c8967ba88a7735806800.png) ![Pixel ID and API token](https://cdn.stape.io/i/66c896845a4db044866849.png) 5.3. Once you’ve changed all these variables and saved them, your last step (assuming this a new container) is to add a preview URL in your server container by going to Admin → Container Settings. If the container is not new, just skip this step. ![Add a preview URL in your server container](https://cdn.stape.io/i/66c89694b43d8805057758.png) Step 6. Test the setup Facebook provides the ability to test Browser and Server events. That is very useful if you set up Facebook pixel using GTM Server for the first time and wish to check that [all data tracked correctly](https://stape.io/blog/accurate-shopify-tracking-stape-sgtm)https://stape.io/blog/accurate-shopify-tracking-stape-sgtm. When working on a Shopify store, this process is often referred to as setting up the [Facebook CAPI Shopify](https://stape.io/blog/facebook-conversion-api-and-shopify), since events are sent server-side instead of relying only on the browser. 6.1. First, you need to obtain test_event_code. For this, you need to log into your Facebook manager, choose the data source that you liked to test, and open the tab “Test events”. There you will find the test event code. It can look like this: TEST2120 ![test_event_code](https://cdn.stape.io/i/66c896d419f9b633740246.png) Note: TEST id will change once in a couple of hours, if your debug sessions are spread in time make sure to check the value you’re using is still valid. 6.2. Fill the LT - Map | Debug Mode → FB Test ID variable, in your server container, with the test event code that you get from the previous step. ![Look up table variable](https://cdn.stape.io/i/66c896fe0932a606974195.png) This variable is already referenced in all Facebook tags. Variable will also only populate the tag in preview mode, so you don’t necessarily need to remove it before going live. 6.3. Launch preview mode on both your containers (web & server) If done right, you will see both web and server test events on the Facebook Test Event page. ![ Facebook Test Event page](https://cdn.stape.io/i/66c8972a264d5105891281.png) Ready to start with server-side? You are awesome! Click on Try for free to sign up and explore all the benefits. --- # Stape Analytics: measure the impact of your server-side tracking Source: https://stape.io/blog/stape-analytics-measure-the-impact-of-your-server-side-tracking Learn about Stape Analytics and its benefits. Use it to monitor the performance of your server-side tracking. Server-side tracking is becoming very important for collecting accurate data. When you use only client-side tracking, a lot of your data gets lost before it reaches your analytics tools. But it can be hard to measure how well server-side tracking works. To solve this, we at Stape created the Stape Analytics feature. It gives clear insights into how server-side tracking improves data collection. This tool also makes it easier for agencies to show results to their clients. People using Stape have already tested Stape Analytics and are sharing examples of how server-side tracking improves data collection. https://www.youtube.com/watch?v=4gfY61-lkZo What is Stape Analytics? Stape Analytics is a feature inside the Stape platform that helps you measure how well server-side tracking works. It shows how your data quality improves after you start using server-side tracking. You can see this in key metrics, like the share of traffic recovered by avoiding ad blockers and and cookie life expansion in browsers that limit cookie lifetime. How to access Stape Analytics? You can find the feature in your container in the section "Analytics". Stape Analytics is available for everyone who uses [Stape Custom Loader](https://stape.io/solutions/custom-gtm-loader) (a free power-up by Stape that makes GTM scripts more resistant to ad blockers). ![Stape Analytics tab](https://cdn.stape.io/i/682f460e6cd3f451635483.png) How does Stape Analytics work? Stape Analytics uses a Custom Loader to measure how many requests were recovered. It looks at two main things: requests blocked by browsers that shorten cookie lifetime, and requests recovered from users with ad blockers. Based on your server-side tracking setup, Stape Analytics also shows: Requests by client Requests from bots Requests by consent choice Requests by browser ![Data client requests](https://cdn.stape.io/i/682f46249d776079458271.png) Who should use Stape Analytics? This feature helps businesses check how well their server-side tracking works. It shows how data quality improves after moving from client-side tracking to server-side tracking. The feature will be beneficial for everyone who uses server-side tracking and wants to check its effectiveness: Website owners: if you run your website, you may want to know how beneficial server-side tracking is for data collection. Agencies. Easily present results of server-side tracking to your clients. For agencies, analytics can also become a paid service. This fits well with data-driven marketing and other [extra services that help clients](https://stape.io/blog/services-marketing-agency-should-offer) use reports to increase profit. How to use Stape Analytics? Stape Analytics is OFF in every Google Tag Manager (sGTM) container on Stape by default. Below, we’ll provide you with a short guide. To find the detailed step-by-step instructions, please continue reading the article. If you have a Stape account 1. Go to your Stape account and open the sGTM container. 2. Click on power-ups, select [Custom Loader](https://stape.io/solutions/custom-gtm-loader). 3. Follow the [steps of configuring Custom Loade](https://stape.io/solutions/custom-gtm-loader#how-to-set-up-custom-loader)r. 4. Go to the Analytics section and turn on Stape Analytics. If you don’t have a Stape account Go to the [Stape sign-up page](https://stape.io/sign-up). Follow this [guide to create a Stape account](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container#step-2-create-a-stape-account-to-host-your-server-gtm-container)and host your server GTM container. Go to your Stape account and open the sGTM container. Click on power-ups, select Custom Loader. Follow the [steps of configuring Custom Loader.](https://stape.io/solutions/custom-gtm-loader#how-to-set-up-custom-loader) Go to the Analytics section and turn on Stape Analytics. Please keep in mind the following information: You must use [Stape Custom Loader](https://stape.io/solutions/custom-gtm-loader) to enable Stape Analytics. The instructions differ based on whether you use Stape apps or plugins ([WordPress](https://wordpress.org/plugins/gtm-server-side/), [Shopify](https://apps.shopify.com/server-gtm), [BigCommerce](https://www.bigcommerce.com/apps/stape-server-gtm/), [Magento](https://commercemarketplace.adobe.com/stape-gtm-server-side-magento-module.html)). It may take up to two days to gather Stape Analytics data and display it in your container. If any issues with the Stape Analytics configuration are detected, an email notification will be sent to your account. Analytics will only be available from the date you enabled it. Data for the period before you enabled and configured Stape Analytics will not be available. How to enable Stape Analytics for server-side tracking setup Using Stape plugins (WordPress, Shopify, BigCommerce, Magento) 1. Open your sGTM container and click Analytics ![Analytics in sGTM container](https://cdn.stape.io/i/677fd78778172614673009.png) 2. Click Turn on Analytics. ![Click "Turn on Analytics"](https://cdn.stape.io/i/677fd9a618a5f978370906.png) 3. Go to the admin panel of the CMS you are using and ensure the Stape GTM Server Side plugin is updated to the latest version. If it's not updated, you will see an alert that the new version is available. In this case, please update the plugin or simply enable the auto-updates. ![Ensure the Stape GTM Server Side plugin is updated to the latest version](https://cdn.stape.io/i/677fd9cb11975226247451.png) No Stape plugin is used Open your sGTM container and click Analytics. ![Analytics in sGTM container](https://cdn.stape.io/i/677fda0600694742910836.png) 2. Click Turn on Analytics. ![Click "Turn on Analytics"](https://cdn.stape.io/i/677fda2df2468102137078.png) 3. Go to the Power-ups section and enable or open Custom Loader Power-Up. ![Enable or open Custom Loader](https://cdn.stape.io/i/677fda504373f376789854.png) 4. Copy the Custom Loader code and ensure it's updated on the website. ![Custom Loader code](https://cdn.stape.io/i/677fda6d40d7f910572788.png) That’s it! Now, your Stape Analytics is ready to go. We also have instructions on [how to turn off Stape Analytics](https://help.stape.io/hc/en-us/articles/20374768419613-Turn-off-Stape-Analytics). Stape Analytics features for data accuracy Overall statistics for 10 / 30 / 90 days It shows the total number of requests for the selected period and separately the requests from users with ad blockers and users with tracking prevention. Here, you can generally estimate the % of requests that would be lost without using the server side. ![Percentage of requests that would be lost without SST](https://cdn.stape.io/i/682f463fc8879027986172.png) Separate statistics are available for each client who receives requests on your sGTM Further, you can see the statistics for each client that processes incoming requests on your sGTM separately, as well as a breakdown of the main events for this client. ![GA4 request](https://cdn.stape.io/i/682f465fc432b418975983.png) You can also select the event you are interested in, and the graph will display data only for that event. ![Select the event you are interested in](https://cdn.stape.io/i/682f466ca995e571400745.png) Requests from bots Bot requests include those identified by GA4, Data Client, and other sources. These additional sources may include, but are not limited to, Cookie Keeper, JavaScript events, GTM script loads, and more. The displayed data may vary depending on the selected period. On the infographic, you can monitor the number of bot requests and their percentage from the total number of requests. ![Requests from bots](https://cdn.stape.io/i/6852d9b75c003902766559.png) Other requests statistics This shows stats for other requests or unknown clients, including Cookie Keeper power-up and GTM loading via Custom Loader. ![Other requests statistics](https://cdn.stape.io/i/682f467a15f4b360047050.png) Browser statistics It displays statistics on browsers used by your users and % of requests from these browsers that were restored, i.e., when ad blockers were used. ![Browser statistics](https://cdn.stape.io/i/677fdb0f5d855345869392.png) Server-side tracking impact examples Procab Studio: records 35.71% more purchases for PPC campaigns Stape's client, [Procab Studio](https://www.procab.ch/) - a Swiss digital web agency - has kindly provided the data collection results after using server-side tracking. Procab Studio has an e-commerce client that runs PPC campaigns. Getting as accurate data as possible is crucial to managing ad budgets effectively, so they decided to use server-side tracking. Stape's analytics platform has shown impressive results: +7.06% (7,384) of retrieved requests came from visitors that used ad blockers. +40% (41,856) of recovered requests were initially blocked by tracking prevention mechanisms, such as Apple's Intelligent Tracking Prevention (ITP) and Mozilla's Enhanced Tracking Protection (ETP). ![Procab studio's data](https://cdn.stape.io/i/677fd39c94fb6464974712.png) Most importantly, +35.71% of requests were retrieved for main events like purchases. ![Procab studio's purchase data](https://cdn.stape.io/i/677fd3b5c2dd9934670001.png) Another case study reporting data accuracy increase A client using Stape Analytics improved GA4 tracking from 8.55% to 35% of visitors with ad blockers by enabling the "GA4 Ad Block Bypass" feature, recovering valuable data and insights. ![Improved GA4 tracking from a Stape client's data](https://cdn.stape.io/i/678e2b85ac4a4005583687.png) Find out more about GA4 Ad Block Bypass in our https://stape.io/blog/bypass-adblock-detection#use-case[blog post](https://stape.io/blog/bypass-adblock-detection). Case studies Read the case studies from our partners at Stape to see the impact of server-side tracking and the impressive results they got thanks to choosing server-side tagging: Link to case study | Description [ASENTO is measuring 62% more revenue for WoodUpp with server-side tracking](https://stape.io/blog/asento-measuring-62-per-cent-more-revenue-for-woodupp-with-server-side-tracking) | For six months, the ASENTO agency has separately tracked and compared data from client- and server-side tracking. As a result, they got 62% more revenue tracked with a server-side tracking setup. [Scandinavian Biolabs amplifies Klaviyo revenues with server-side tracking](https://stape.io/blog/case-study-scandinavian-biolabs-amplifies-klaviyo-revenues-with-server-side-tracking) | Biolabs aimed to boost its email marketing revenue, so they needed to track the users' behavior more accurately. As a result, using server-side data collection, the measured Product Views increased by 91.84%. [Immune and wellness supplements company has a 34% increase in conversions recorded with sGTM](https://stape.io/blog/immune-supplements-company-records-34-percent-more-conversions-with-server-side-gtm) | Measure Your Web’s client from Slovenia needed precise data to optimize PPC campaigns. With server-side tracking, they recorded a 34% increase in conversions. Read more case studies in our [blog category with case studies](https://stape.io/blog/category/case-studies). Conclusion The value of server-side tracking is different for every site. It mostly depends on how many of your users have ad blockers, browser restrictions, or issues with third-party cookies. Stape Analytics helps you see these benefits clearly and makes it easier for agencies to show results to clients. With it, you can track how server-side data collection improves accuracy and boosts your business. It also helps monitor conversion tracking and find new opportunities. A strong server-side setup is key to good performance. It often needs in-house expertise or help from analytics vendors to manage integration and ongoing support. Top reasons to use Stape Analytics: View everything in one dashboard See the number of requests handled by the server container Check the share of requests from users with ad blockers or browser tracking limits Need help with setup? Drop us a line at [support@stape.io](mailto:support@stape.io) (available 24/7) or a message in a chat window (in the bottom right corner of this page). --- # 62% more revenue for WoodUpp with server-side tracking | ASENTO Source: https://stape.io/blog/asento-measuring-62-per-cent-more-revenue-for-woodupp-with-server-side-tracking Discover how a Danish manufacturer reached revenue growth with Stape in our case study from ASENTO. [WoodUpp](https://woodupp.com/) specializes in acoustic panels for better acoustic improvements in the home. The modern-looking panels are made from sustainable wood and recycled materials, inspired by Scandinavian homes. ![WoodUpp logo](https://cdn.stape.io/i/66c460a90b71d623772244.png) Challenge: marketing platforms tracking Digital marketing agency [ASENTO](https://stape.io/partner/asento), a partner of Stape, helped WoodUpp set up tracking for several marketing platforms, and used Stape’s hosting to configure server-side GTM for the following: [Google Analytics 4 server-side configuration](https://stape.io/blog/set-up-ga4-server-side-tracking) [Google Ads conversion tracking server side](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) [Meta](https://stape.io/blog/meta-conversions-api-gateway-versus-conversion-api) - both client & server-side [Snapchat CAPI](https://stape.io/blog/snapchat-capi) - both client & server-side [TikTok](https://stape.io/blog/tiktok-server-side-tracking) - both client & server-side [Pinterest Conversions API](https://stape.io/blog/pinterest-conversion-api) - both client & server-side Results: measured sessions, data and conversion increase Since December 2022, WoodUpp has been testing and running server-side tracking. With a well-developed website and a continuously improved DataLayer that includes encrypted user data, they have achieved the following results across all marketing platforms: 27% increase in the number of measured sessions. 62% increase in measured data for revenue. 56% increase in the measured number of conversions. These numbers are based on a six-month period, during which they ran separate setups for both server-side-only and client-side-only tracking. This approach allowed [ASENTO](https://asento.dk/) to compare each setup and determine the percentage difference between server-side and client-side tracking. Conclusion The results have helped WoodUpp and ASENTO scale WoodUpps business across 17 countries, resulting in profitable campaigns and lower advertising costs. ![Results from WoodUpp and ASENTO](https://cdn.stape.io/i/66c46166e9422491001604.png) “For ASENTO, having easy-to-integrate Server-side tracking from Stape is crucial when successfully expanding WoodUpp to new markets. This ensures more accurate and comprehensive data collection from day one.” - [Quoc Phu Le](https://www.linkedin.com/in/quocphule/), Partner at ASENTO. More accurate and comprehensive data collection across WoodUpp's markets has led to more efficient and profitable decisions based on a richer amount of data. ![Helle Merrild, Head of Marketing at WoodUpp.](https://cdn.stape.io/i/66c461b348633088264410.jpg) “To perform our best across various marketing platforms, obtaining the most accurate measured data is essential. This allows us to improve and optimize our campaigns for the right target audience, maintaining low advertising costs while running profitable campaigns.” - [Helle Merrild](https://www.linkedin.com/in/helle-merrild-hansen-a25814a), Head of Marketing at WoodUpp. Stape has 24/7 support and tools to easily implement server-side tracking. If you have any questions or if you feel stuck in your configuration, [please feel free to contact us and leave a ticket](https://stapehelp.zendesk.com/hc/en-us/requests/new). Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # 91.84% more Measured Product Views with server-side tracking and Klaviyo integration | Obsidian Digital Source: https://stape.io/blog/case-study-scandinavian-biolabs-amplifies-klaviyo-revenues-with-server-side-tracking Discover how implementing server-side tracking with GTM improved Scandinavian Biolabs' ability to track user behavior and trigger effective email marketing automation. [Scandinavian Biolabs](https://scandinavianbiolabs.com/), a pioneering hair growth solutions provider, partnered with [Obsidian Digital](https://obsidian.dk/), a [Stape Top Partner](https://stape.io/partner/obsidian-digital), to implement server-side tracking using Google Tag Manager. This case study explores how this implementation dramatically improved their email marketing performance, particularly for browse abandonment and abandoned cart automation. ![Klaviyo server-side tracking boosts revenue: case study](https://cdn.stape.io/i/66bf3d12f0426520904690.jpg) Challenge: precise user behavior tracking Scandinavian Biolabs aimed to boost its email marketing revenue by identifying existing permissions to view products and add items to their carts more accurately. The company needed a solution to track user behavior more precisely and trigger timely and relevant email automation. Scandinavian Biolabs also needed to differentiate between new sales and revenue from subscriptions in their marketing. Solution: server-side tracking with Klaviyo integration Obsidian Digital implemented server-side tracking via Google Tag Manager, focusing on integration with Klaviyo for enhanced email marketing performance. The setup included server-side Google Tag Manager implementation, custom server-side tracking for Klaviyo events, and improved data collection for product views and cart additions. ![Client-side tagging compared to server-side](https://cdn.stape.io/i/66bf3d5ba91c6486392857.jpg) Results: substantial email marketing performance The implementation of server-side tracking led to substantial improvements in Scandinavian Biolabs' email marketing performance: Measured Product Views increased by 91.84%. Measured Added to Cart Events increased by 48.86%. The client received the ability to differentiate between new sales and existing customers re-purchasing. ![Increase in product views and add to carts measured](https://cdn.stape.io/i/66bf3d9a4c168635567373.jpg) Creating value through enhanced automation These significant percentage increases in tracked events directly resulted in more effective email marketing automation, particularly in two key areas: Browse abandonment emails: the 91.84% increase in tracked product views allowed Scandinavian Biolabs to identify many more potential customers who showed interest in specific products but didn't make a purchase. This dramatic improvement enabled their browse abandonment automation to trigger for a much larger audience, re-engaging potential customers who might have otherwise been lost. Abandoned cart emails: with a 48,86% increase in tracked "Added to Cart" events, Scandinavian Biolabs significantly expanded the reach of their abandoned cart automation. This automation, often considered one of the most valuable in e-commerce email marketing, could now be triggered for nearly 50% more potential customers with high purchase intent. Impact on email marketing value [According to Klaviyo](https://www.klaviyo.com/marketing-resources/email-benchmarks-by-industry), browser abandonment and abandoned cart emails are among the most valuable automated emails for e-commerce businesses. Here's how the increased tracking capabilities amplified their value: Higher volume of high-intent triggers: with more tracked events, Scandinavian Biolabs could send out significantly more high-converting emails, directly impacting their bottom line. Improved timing and relevance: more accurate tracking allowed for better-timed and more relevant emails, increasing the likelihood of conversion. Better personalization: with more detailed browsing and cart data, Scandinavian Biolabs could create more personalized email content, boosting engagement and conversion rates. Expanded remarketing opportunities: the increased data capture enabled better segmentation and remarketing strategies, extending the customer lifecycle. Better ROI on email marketing: by sending more of their highest-performing automated emails, Scandinavian Biolabs could significantly increase the return on investment of their email marketing efforts. Conclusion Implementing server-side tracking with Google Tag Manager improved Scandinavian Biolabs' ability to track user behavior and trigger effective email marketing automation. This case demonstrates the potential for e-commerce companies utilizing Klaviyo to substantially enhance their email marketing revenue through improved data collection and automation triggers. Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # 34% more conversions recorded for immune and wellness supplements company | Measure Your Web Source: https://stape.io/blog/immune-supplements-company-records-34-percent-more-conversions-with-server-side-gtm Discover how a Slovenian company in the immune and wellness supplements niche recorded 32% more conversions using sGTM. We, at Stape, are grateful to continue receiving case studies on how [server-side tracking enhances the tracking process](https://stape.io/blog/server-side-tagging-versus-client-side-tagging) of our users. Due to browser restrictions and ad blockers, the number of people willing to switch to server-side tracking has increased significantly over the past years. Our partner, [Measure Your Web](https://measureyourweb.com/?utm_source=stape.io&utm_medium=referral&utm_campaign=case-study), has expertise in optimizing e-commerce funnels, combined with the effectiveness of server-side tracking, it has led to remarkable results for their client in Slovenia. ![measureyourweb logo](https://cdn.stape.io/i/66e85da3c6d45127720382.png) Company info Measure Your Web’s client is a Slovenian company specializing in supplements for better immunity and overall health. As the business has developed, the need for precise tracking has increased, as it helps make better data-driven decisions. Challenge: precise conversion tracking The client’s marketing efforts didn’t perform at their full potential because of limitations in client-side tracking (some data was lost due to browser restrictions and ad blockers). One of the clients’ marketing channels is PPC, which requires significant investments. To analyze the campaigns’ performance effectively, the client needed a solution that could help get the most precise conversion number and attribution. Solution: switching to server-side GTM To achieve data accuracy, it was decided to switch to server-side tracking, which included the following setups: 1. [Creating the custom domain in the sGTM container](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) that helps bypass ad blockers and browsers’ restrictions. 2. Setting up Cloudflare to proxy both servers through the same IP address. Results: client-side vs server-side tracking To compare the difference between the number of conversions from client and server-side tracking, [Measure Your Web](https://measureyourweb.com/?utm_source=stape.io&utm_medium=referral&utm_campaign=case-study) has left the old GTM container as it is and created a new GA4 property for server tracking. In the first case (client-side), conversions were imported from the old GA4, and in the second case (server-side), the number of conversions was sent to Google Ads from the server configuration. The comparison results are shown in the screenshot below. With server-side tracking, the client has received a 34% increase in conversions. ![Increase in 34% in conversions](https://cdn.stape.io/i/66bf19678f7b3848775423.png) Conclusion Server-side tracking can significantly improve your marketing campaigns by providing more accurate results that allow you to make data-driven decisions. As shown by the comparison between client-side and server-side conversion tracking, kindly provided by Measure Your Web, you can expect to track at least 34% more conversions with sGTM. Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # HTTP Lookup Variable for server Google Tag Manager Source: https://stape.io/blog/http-lookup-variable-for-server-google-tag-manager Stape has created an HTTP Lookup Variable for server GTM to customize and enrich the data you get. Check out our end-to-end guide for setting it up. We, at Stape, have developed [HTTP Lookup Variable for the server Google Tag Manager](https://stape.io/solutions/http-lookup-variable) (sGTM). The variable is created to make HTTP requests. Thanks to HTTP requests, you can fetch data from external APIs and/or other web services that help enrich the data. In this article, we will review a variable's use cases, learn how it works, and how to set it up in server GTM. Use cases The [HTTP Lookup Variable by Stape](https://stape.io/solutions/http-lookup-variable) is beneficial in cases when you need to integrate real-time data from external sources into your GTM workflows. For example: Customization. Fetch user-specific data from external API to customize the tags. Data Enrichment. Provide tags with additional information from external sources (e.g., from CRM). How it works After configuring the HTTP Lookup Variable (check the section “[How to set up HTTP Lookup Variable](https://stape.io/blog/http-lookup-variable-for-server-google-tag-manager#how-to-set-up-http-lookup-variable)”) and adding it to the needed tag or another variable, GTM will send the HTTP request to the specified URL. Since the HTTP Lookup Variable works with Promises (a JavaScript feature used for asynchronous operations), GTM will wait for the HTTP request to resolve (e.g., get a response) before proceeding. If the request is successful, the variable will resolve with the data returned by the API. How to set up HTTP Lookup Variable 1. [Set up a server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Download the [HTTP Lookup Variable from GitHub](https://github.com/stape-io/http-lookup-variable#http-lookup-variable-for-google-tag-manager-server-side). ![Download Variable from GitHub](https://cdn.stape.io/i/66bdfce820ef5403051164.png) 3. Open the “Templates” section in your server GTM container → find “Variable Templates” → click “New”. ![Templates in GTM server-side](https://cdn.stape.io/i/66bdfe259d48a985486268.png) 4. Click three dots in the top right corner → click “Import” → select the template you downloaded from GitHub → click “Save”. ![Import template in GTM server](https://cdn.stape.io/i/66bdfe5b78e08769910205.png) 5. Go to the “Variables” → find the “User-Defined Variables” section → click “New” → choose “HTTP Lookup” variable type. ![Choose variable type](https://cdn.stape.io/i/66bdfe87a6e3d744333929.png) 6. Configure variable 6.1 Add request method, you can choose from three options: GET - use it to retrieve data on a server. POST - use it to create new resources. PUT - use it to replace an existing resource with an updated one. ![Choose request method](https://cdn.stape.io/i/66bdff6cf2d31292184216.png) 6.2 Add "Destination URL". It should be in the format "https://example.com," or you can choose the destination URL from the list of variables. 6.3 (Optional) Check the box: Parse response as JSON - if you want to get the response in JSON format. Store response in the cache - to store the response in Template Storage. If all request parameters are the same, a response will be taken from the cache (if such exists). ![Variable settings](https://cdn.stape.io/i/66bdffd87bc89358019887.png) 7. (Optional) Add advanced variable settings. 7.1 Request Data - add properties and values you want to request. 7.2 Request Headers - here, you can add keys and values to the request. 7.3 Additional Options - add request timeout. 7.4 Logs Settings - choose whether the variable constantly logs to the console, logs during debug mode, or doesn’t log at all. 7.5 Format Value - select options to format the value that will be output by this variable. ![Additional settings in Variable](https://cdn.stape.io/i/66be008139acb775867670.png) Conclusion HTTP Variable will be helpful for those who want to customize and enrich the data they retrieve since the HTTP requests retrieve data from external APIs or other web services. The setup process is simple, and the variable is easy to customize to your needs. If you’d like help, don’t hesitate to contact our [support team](https://stapehelp.zendesk.com/hc/en-us/requests/new). Do you want a setup from us? Happy to hear that! Click Get help, fill-up the form, and we will send you a quote. --- # How to effectively use GTM Tools by Stape Source: https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape Initially created by Simo Ahava, GTM Tools is now managed by Stape. Find out the tool’s benefits and how to use it. Created by Simo Ahava, [GTM Tools](https://gtmtools.com/) has already gained popularity due to its functions and ease of use. It includes many features that save time while working with GTM containers. The features include cloning the container, its visualization, and editing. GTM Tools has now been relaunched and is fully supported by Stape. In this article, we will review GTM Tools use cases and how to work with the utility. We are working on developing and adding new features, so we’ll [share our plans](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#new-features-coming-soon). Who can find GTM Tools helpful? ![GTM Tools by Stape](https://cdn.stape.io/i/66b9fd73ef0c9779529882.png) Stape’s GTM Tools will be helpful for a lot of people: Business owners Digital marketers and analytics experts Freelancers who work with numerous GTM containers The tool is designed for everyone looking for an effective tag management tool. It helps you order, edit, clone, and visualize assets in the GTM container. These functions save a lot of time and nerves while working with GTM; keep reading to find the tool's pros. Benefits of Google Tag Manager Tools The GTM Tools provides its users with the following [server-side tagging benefits](https://stape.io/blog/benefits-server-side-tagging): Easy management of GTM container(s) and their contents. The tool's interface is straightforward; you can use tools like Inspect to see GTM assets in the form of a list or Visualize to view the map of the container. Thanks to them, you can see hermit nodes, the dependencies between assets and easily edit their settings. Wide range of functions. Check well-known and loved tools like Inspect, Visualize, Clone, and Workspace mode. These tools help structure, visualize, duplicate, and mass-update the contents of your GTM container. Handy container audit. GTM Tools now supports web and server GTM containers. As GTM Tools helps highlight the dependencies between GTM assets, you can easily find Tags/Triggers/Variables that need to be removed. The [audit of the GTM container](https://stape.io/blog/how-to-reduce-javascript-files-of-gtm-in-pagespeed-insights#solution-1-audit-the-tags) will help to load your website faster. Find out [how server-side tracking helps improve page load speed](https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking) in our article. Start working with GTM Tools Open [GTM Tools](https://gtmtools.com/). To start using GTM Tools, you need to sign in with your Google account credentials. ![Sign in with Google in GTM Tools](https://cdn.stape.io/i/67dc7b82df36b520127688.png) After the signing-in process, you need to pick the Google Tag Manager Account you want to work on - click “GTM Accounts” → from a drop-down list and choose the account (if you have access to multiple accounts). Please note: After Stape’s release, you can also modify server GTM containers. ![Accounts in GTM Tools](https://cdn.stape.io/i/67dc7bc200a59783015508.png) These are all steps required to start working with GTM Tools, and the next step is to [choose what tools you need to use](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#containers-tools). Container’s tools On the Container page, you will find a list of tools for the GTM container. Below, we describe in a nutshell what each tool does. Feel free to click on the tool name to jump directly to the section with its detailed description. Tool name | What the tool does [Inspect](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#inspect) | Adds tags, triggers, and variables to the My assets to download, save, or clone to another container. [Visualize](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#visualize) | Draws paths between container nodes and visualizes the dependencies between Tags, Triggers, Variables, and Built-in Variables. [Clone](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#clone) | Clones the container’s version into the current or another account. [Workspace mode](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#workspace-mode) | Make changes to Tags, Triggers, and Variables in the workspace. Inspect Use cases 1. Clone only some GTM assets (Tags, Triggers, Variables). Unlike the Clone tool, with Inspect, you can see the container's contents and manage them as you need. Choose the asset you want to clone, add it to My assets, and clone it to another container or GTM account. 2. Changes to tag configurations and adding tags to a different container. If you are going to run a website with a similar structure and configuration settings but need to make some minor changes in existing tags, you can use the feature "Export overview as CSV" in the text editor, make those changes, and then upload the revised configuration to a needed container. How to use the Inspect tool Inspect is a default tool you see after choosing the container. You can choose what workspace you would like to work with. By default, GTM Tools will inspect the latest version, but you can change it from the drop-down menu. The tool shows the number of each asset in your GTM container version. ![Versions of GTM container in Inspect tool](https://cdn.stape.io/i/67dc7c4ce15c2199558612.png) Inspect tool provides the following features: Note. The column shows the notes that you added to a specific tag, trigger, or variable. CSV. Click here to download all the contents of the container in CSV format. My Assets. Add or remove the specific GTM asset from the “My Assets”. Links. See the connection between tags/triggers/variables. ![Menu of Inspect tool](https://cdn.stape.io/i/67dc7cc335bea969353501.png) Visualize Use cases Explain the GTM ecosphere to a client. If you are a freelancer in digital marketing and/or analytics, you may have many clients who would like to know how their GTM container is built and its dependencies. How to use the Visualize tool To build a map of your GTM container, click "Visualize". No additional settings are required. ![Click "Visualize"](https://cdn.stape.io/i/67dc7d4a1bbf1743355139.png) As a result, you will get the GTM container visualization like on the screenshot below: ![Container visualization](https://cdn.stape.io/i/67dc7d646f772426838708.png) You may use the following functions to work with the visualization: Hover the cursor on the Tag/Trigger/Variable. In this way, you will see the dependencies between assets. Search node. Just type the node name you want to see, and it will be highlighted. Highlight hermit nodes. You have two options here: select and deselect hermit nodes. This will highlight the assets (Tags/Triggers/Variables) not connected to other assets. Please note that when you hover the cursor on a specific asset, you will see detailed information about it. The information includes the Name, Asset (Tag/Trigger/Variable), and Type. ![Container visualization](https://cdn.stape.io/i/67dc7dc1e1521838145076.png) Clone Use cases 1. Creating a new website with a similar structure. If you are running a business and want to create a project with a similar (or the same) structure as the existing one, you can clone the existing Google Tag Manager container contents into another GTM account. 2. Building a container for a new client. The clone tool is helpful for freelancers who use standard naming for common Tags/Triggers/Variables and need a solution to copy the container's template into a new account. How to use the Clone tool The Clone tool is straightforward to use. You can choose the version of the GTM container you want to clone (by default, it is the latest version) and the target GTM account. ![Clone Tool](https://cdn.stape.io/i/67dc7de3a18ea285236748.png) When the settings are configured, click "Clone". Workspace mode Use cases Editing multiple assets. If you need to pause/unpause a few GTM assets, edit JSON, and rename Tags/Triggers/Variables without going to the GTM account. With Workspace mode, you can edit every asset you need in GTM Tools without opening multiple tags, triggers, or variables in new tabs. How to use the Workspace mode tool The Workspace mode interface is similar to the Inspect tool. As the Workspace mode is used to edit and apply changes in the container, it takes the current version of the GTM container, and you can't choose the older version. ![Workspace mode in GTM Tools](https://cdn.stape.io/i/67dc7e187766c985231054.png) Next to each asset (tag, trigger, variable, template) of the GTM container, you will see the following columns: Changes - changes that were applied to a specific asset. Links - connections between assets. JSON - edit JSON directly. Edit JSON is a handy tool for changing the parameters of a specific asset. Thanks to this function, you can do it directly in GTM Tools; there is no need to download JSON files, go to an editor, and change parameters. Just click "Save" after editing the parameters. ![Edit JSON](https://cdn.stape.io/i/67dc7e7c2bbdd295933890.png) Actions - choose from the list of options: pause (for tags only), edit folder, edit JSON, reset changes. Also, you can update Client templates (for server GTM container). To do it, go to the Templates tab → search for the Client name → click Update. ![Update Client template](https://cdn.stape.io/i/68df9b1544244007245902.png) When you have made all the changes to Tags/Triggers/Variables/Templates, click "Update workspace" to apply them and reload the page. If you want to decline the changes to all the assets, click "Reset all changes". ![Update or reset changes in GTM Tools](https://cdn.stape.io/i/67dc7ed5a3dab336767457.png) My assets After Stape’s update, the Cart and Library are combined. In “My assets” you can access all your saved assets and create or manage new containers. When you select the items, you have a few options: Clone to a container - duplicate all the assets to a specific container. Save to collection - save a selection of assets into a set to be used later. Remove - delete the changes from “My assets”. ![My assets in GTM tools](https://cdn.stape.io/i/67dc7f810baaf654088811.png) New features coming soon We have already redesigned a platform and added server GTM support. In the future we plan adding GitHub templates import (e.g., Data Client, Snowplow Client). Feel free to share your feedback and suggest features you would like to see in GTM Tools on the [Feature Request](https://feature.stape.io/) page. Final thoughts [GTM Tools](https://gtmtools.com/) is a powerful solution for Google Tag Manager management. It will be helpful for business owners, freelancers, digital marketing and analytics specialists. The tool provides a wide range of functions, such as container editing, downloading, cloning, and visualization. The tool will save time and nerves for everyone who wants to organize and optimize a GTM container. Stay tuned for more GTM Tools updates! --- # What is data driven personalization and how to get most of it Source: https://stape.io/blog/how-to-use-data-to-drive-personalization Data-driven personalization means using customer data to deliver tailored experiences that increase engagement and results. Generic marketing is dead. Today’s customers expect brands to know them, anticipate their needs, and deliver tailored experiences. That’s where data-driven personalization comes in. It transforms raw data into marketing that feels personal at scale. Core strategies include: Audience segmentation based on demographics, behavior, and intent. Using first-party data to fuel campaigns. Cross-channel personalization (email, ads, web, social). Continuous testing and optimization with analytics. With these data-driven personalization tactics, you’ll grow customer engagement, strengthen loyalty, and drive better business results. What is data-driven personalization? Data-driven personalization is the process of using customer data, such as demographics, browsing behavior, purchase history, and engagement patterns, to tailor marketing messages, offers, and experiences to individual users. Instead of generic campaigns, it relies on real-time and historical data to deliver relevant and context-aware interactions across multiple channels (email, web, mobile apps, ads, social media). This approach is powered by analytics, AI, and automation to make personalization scalable. Benefits of data-driven personalization Personalization backed by data isn’t just a marketing trend, it delivers hard results. Here’s how data-driven personalization delivers measurable value. Higher engagement rates | Personalized campaigns have significantly higher open, click-through, and conversion rates compared to generic ones. Increased revenue | According to Shopify, [personalization can drive 10–15% revenue uplift](https://www.shopify.com/enterprise/blog/personalization-strategies)when executed at scale. Customer loyalty | Tailored experiences make customers feel understood, improving satisfaction and long-term retention. Optimized marketing spend | Resources are focused on relevant audiences, lowering acquisition costs and wasted ad spend. Improved product recommendations | Data insights help brands suggest products/services that match customer needs, boosting upsells and cross-sells. If your marketing isn’t powered by data, you’re not just missing opportunities, you’re leaving money on the table. Good examples of data personalization 1. Netflix: recommending the right shows Netflix looks at what you’ve watched, how long you watched it, and what kinds of shows you prefer. Then it recommends movies and series that match your tastes. This keeps people interested and helps reduce cancellations. Why it works: it feels useful and personal, like Netflix understands what you want to watch. 2. Amazon: suggesting what you might want to buy Amazon tracks what you browse and buy. Based on that, it shows you products you’re likely to be interested in, on the homepage, on product pages, and in emails. This recommendation system drives more Amazon’s total sales. Why it works: it makes shopping easier and helps people discover products they might not have found on their own. Bad examples of data personalization 1. Target: too personal, too soon Target used shopping data to guess when customers might be [pregnant](https://www.forbes.com/sites/kashmirhill/2012/02/16/how-target-figured-out-a-teen-girl-was-pregnant-before-her-father-did/). In one case, they sent baby product coupons to a teenage girl before her family knew she was expecting. This caused a backlash and raised concerns about privacy. Why it failed: the personalization was too intrusive and poorly timed. It felt like a violation of privacy. 2. Retargeting ads: following people around the internet After visiting a product once, users often see ads for it on every site they visit. This is called retargeting. While it can be a reminder, it often annoys people and makes them feel like they’re being watched. Why it failed: it’s too aggressive. Instead of helping, it creates discomfort and damages trust in the brand. Best tools for data driven personalization Google Analytics 4 (GA4) tracks user behavior across your website and app, giving you a detailed picture of how customers interact with your content. It integrates natively with Google Ads, making it easier to build audiences and run personalized campaigns based on real behavioral data. HubSpot combines CRM, email marketing, and customer journey mapping in one platform. It lets you segment contacts based on behavior, lifecycle stage, or custom properties and trigger personalized emails or workflows automatically. Salesforce Marketing Cloud is built for large-scale personalization across email, mobile, social, and advertising channels. Its AI engine analyzes customer data to predict behavior and recommend the next best action. Dynamic Yield specializes in real-time personalization for websites and apps. It lets you tailor product recommendations, content, and layouts based on individual user behavior without waiting for a developer. Optimizely focuses on experimentation and content personalization. It lets you run A/B tests and feature flags across web and mobile, so you can validate which personalized experiences actually drive results before rolling them out at scale. Segment (by Twilio) acts as a customer data platform (CDP) that collects and unifies data from every touchpoint – website, app, CRM, support tools – and routes it to the other tools in your stack. Stape is a server-side Google Tag Manager hosting platform that gives you more control over the data you collect and share. With Stape, you can move tracking from the user's browser to a secure cloud server, which means less data loss from ad blockers, longer-lived first-party cookies, and better compliance. It also supports offline conversion tracking and data enrichment via integrations with platforms like Facebook CAPI, Google Ads, TikTok, and more. Tool | Category | Best for | Key strength Google Analytics 4 | Web analytics | Behavioral tracking and audience building | Native Google Ads integration HubSpot | CRM + marketing automation | Email personalization and lead nurturing | All-in-one marketing and sales data Salesforce Marketing Cloud | Enterprise marketing platform | Large-scale cross-channel personalization | AI-powered predictions Dynamic Yield | Personalization engine | Real-time web and app personalization | Product recommendations and A/B testing Optimizely | Experimentation platform | Testing and validating personalized experiences | Feature flags and multivariate testing Segment | Customer data platform (CDP) | Unifying data across tools and channels | Single customer profile across your stack Stape | Server-side tracking hosting | Accurate, privacy-friendly data collection | First-party cookies, ad blocker bypass, CAPI integrations Successful data-driven personalization cases Spotify Wrapped Spotify’s end-of-year personalized playlist campaign boosts social sharing and user retention while reinforcing brand identity. Read more about [Spotify ads](https://stape.io/blog/spotify-ads-pros-and-cons-cost) to see how the platform's first-party data powers its advertising capabilities. Starbucks Rewards App Uses purchase data to suggest drinks and send personalized offers, driving repeat purchases and higher average spend. Sephora Beauty Insider Collects customer preferences and purchase history to send tailored product recommendations and loyalty rewards. Nike Run Club App Personalizes workouts and product suggestions based on user activity and fitness goals, strengthening brand loyalty. How personalization improves brand marketing and advertising Let’s start with a quick look at personalization trends in 2024. AI-powered monitoring, [short-form video](https://www.veed.io/tools/video-editor), and story-driven visualization are the most popular trends. According to the latest annual report by RSW/US, AI-powered personalization is the hottest trend. This is not surprising, given the impressive power of data analytics and personalization tools in analyzing and predicting consumer behavior. ![personalization trends 2024](https://cdn.stape.io/i/66b1291d409dc629495403.png) However, for these powerful tools to work, you must feed them massive, high-quality data assets. In other words, you need to be a data-driven business. In this blog post, we will tell you how serve-side tracking can help with data personalization. To get to this segment, click [here](https://stape.io/blog/how-to-use-data-to-drive-personalization#ways-in-which-server-side-tracking-can-help-with-personalization-and-privacy-compliance). Being a data-driven business means using data to make informed decisions. Having access to data is just the beginning. To make the data useful, you must go through several steps. You have to collect and organize high-quality data and ensure the data is stored and handled safely and compliantly. By employing a data-driven operation, your business gets many benefits, like enhanced decision-making, when each of your steps is backed up by solid facts and research. This leads to better operational efficiency and budgeting. What’s more, a data-driven approach allows you to build seamless user journeys and achieve better personalization. This gives a data-driven business a great competitive advantage. ![benefits of being a data-driven business](https://cdn.stape.io/i/66b129a099434097266819.png) What data to track to create personalized content Now that we agree that data personalization is a must, let’s clarify what personalization data collection methods need to be tracked to create personalized marketing content. It's not just about collecting data; it's about understanding your customers' needs and preferences to create a more empathetic and connected marketing strategy. User identification data It gives you basic demographic information about the customers. Examples: Name Email address Phone number Physical address Birth date Gender Purchase history Demographic information Loyalty program membership Descriptive data Such data categorizes and characterizes customers based on different attributes. It helps businesses understand who their customers are, divide them into groups, and market to these groups accordingly. Examples: Workplace Salary range Lifestyle/hobbies Habits Values Opinions Personality traits Contextual data Contextual data offers insights into the specific circumstances and conditions surrounding a client's interaction with a business. This data helps to understand in what environment the message reached the customer. Examples: Device type Location Time/Date Weather Browser Behavioral data Behavioral data provides insights into customers' actions and behaviors. This type of data collected allows businesses to understand how customers interact with the brand, its products, and its services. Examples: Frequency of purchases Repeated purchases Use of offers Clicks Newsletter interaction All the above-listed data and personalization, based on it, can have a massive impact on your business. Let’s move to the next point - how to track and use data for personalization efforts. How to track and use data for personalization Before moving to data tracking, you must have a precise plan of what data you want to track and what platforms you want to track it on (everywhere possible is not a good answer since you can’t create a generalized campaign and expect it to succeed across different platforms evenly), and why you want to track specific data (to create better-targeted ad campaigns, to check if the product meets client expectations, etc.). Let’s review the basics of data collection for content personalization to create a data & personalization connection that can boost your business growth. Collect data from various sources Collecting all the data assets you can get isn’t the way to go here. You want to collect only high-quality customer data that can be utilized for fine-tuning business operations. Here are the best examples of data sources to use: Web analytics tools | Instruments like Google Analytics, Mixpanel, and Google Analytics can provide information about website or app usage. CRM systems | Such instruments store and analyze customer data. Marketing automation platforms | Platforms like HubSpot, Marketo, or Mailchimp can help you track email interactions and campaign effectiveness. Social listening tools | Tools like Hootsuite, Sprout Social, or Brandwatch monitor social media channels. Surveys and forms | These are great tools for gathering first-hand customer data and feedback about your business. You can automate them with services like SurveyMonkey or Typeform. E-commerce platforms | Platforms like Shopify or Magento track purchase and browsing behaviors. Those are the top sources for [collecting customer data for personalization](https://stape.io/blog/customer-data-collection#improve-engagement-and-conversion). Your list of sources could be different based on your business. Segment data After collecting the data, you need to segment your audience to understand clearly who your customers are. For instance, if you are a clothing brand, you would need to figure out how your brand is doing in a particular region. You might want to know what age group your visitors who are interested in a specific product category fall into, their gender, and how they learned about your product. With this information, you can cater your ads to customers looking for a product but have yet to purchase. Based on the peculiarities of your business, you could have different segmentation criteria. Usually, you want to segment your user data based on: Demographic characteristics (age, gender, location, language). Behavior (browsing behavior, purchase history, frequency of visits, and interaction patterns). Psychographics (interests, values, lifestyle choices inferred from behavior). Technographic (device type, operating system, browser type). Engagement (level of engagement with the website or service, like active, inactive, or returning user). By applying segmentation, even small data personalization efforts can result in highly relevant and targeted campaigns. Analyze and optimize personalization After you’ve collected and segmented user data, you can move on to fine-tuning personalization. You need to evaluate your Key Performance Indicators (KPIs) to measure how your personalized ads are doing. For instance: Engagement Conversion rates Click-through rates Average order value Customer retention rate Customer lifetime value When you track the same key metrics before and after implementing data-driven personalization, you can see how the KPIs change and tweak your strategy accordingly. This creates a strong connection between data-driven personalized marketing and customer satisfaction. Prioritize first-party data Personalization is only possible with first-party data. First-party data refers to information collected directly from your customers through your channels. This data includes all insights gained from interactions with your clients using your business's tools and platforms. This data lets you understand how customers engage with your services or products. No level of market research and cross-website cookie tracking can give you as much valuable information about your customers as they can do themselves. How to collect [first-party data and use it](https://stape.io/blog/zero-first-third-party-data-explained-for-a-cookieless-world#strategies-for-collecting-and-using-1-st-party-data-best-practices): Use [first-party user data with the help of sGTM](https://stape.io/blog/cookieless-tracking-ga4) Encourage your customers to create accounts Ask for feedback and study it Make polls, surveys, quizzes, and questionnaires Use the power of CRM systems Set up server-side tracking First-party data is the foundation of how to use data for personalized campaigns. One of the best ways to use first-party data effectively is to implement server-side tracking. Many platforms already support offline conversions, and [you can integrate offline conversion tracking using the server Google Tag Manager container](https://stape.io/blog/ways-of-offline-conversion-tracking#set-up-offline-conversion-with-server-google-tag-managerhttps://stape.io/blog/ways-of-offline-conversion-tracking#set-up-offline-conversion-with-server-google-tag-manager). This integration works because server-side Google Tag Manager (sGTM) can interface directly with the APIs of marketing and analytics platforms. You can configure webhooks from your CRM or POS systems to send data to sGTM, disseminating information on offline conversions for use in analytics and ad networks. Implementing offline conversions through sGTM offers a real-time, cost-efficient solution. Even if web tracking is restricted, server-side monitoring allows you to continue transmitting user data as long as you have the necessary consent. This capability enables advertising platforms to identify the user type and accurately assign conversions to your business. As a result, server-side tracking helps advertisers gain deeper insights into their target audience and build more precise remarketing lists. With Stape, you can set up [Facebook offline conversions](https://stape.io/blog/facebook-offline-conversion-using-server-gtm), [Google offline conversion tracking](https://stape.io/solutions/google-ads-offline-conversion-tag), [Snapchat Conversions API](https://stape.io/blog/snapchat-conversion-api-using-server-google-tag-manager#about-snapchat-conversion-api), [LinkedIn Conversion API](https://stape.io/blog/linkedin-conversion-api-tag-for-server-google-tag-manager), and [more](https://stape.io/solutions). Data privacy concerns and personalization One of the most vital concerns regarding data personalization efforts is user privacy. When a business gathers, processes, and uses personal data to tailor users' experiences, it navigates different security and legal challenges. More customers are unhappy and intimidated by their data being handled by third-party vendors, sometimes without their consent or even knowledge. More users choose to use tracking prevention software and ad blockers and opt out of cookie consent (based on a Ruler Analytics study, the average cookie consent rate in 2023 was as low as 31%). The ethics of ad personalization is also a significant factor to consider. Look at the following stats displaying how users perceive different types and levels of personalization. ![how customers perceive different customized ads](https://cdn.stape.io/i/66b1bebc74ae6652422888.png) So, apart from complying with all the data privacy regulations, you also need to make sure your Datta tracking policy is ethical and the data you collect and process is safe with you. After all, your brand's reputation is at stake, and we all know cases when brands have barely recovered from data leakages. Ensure compliance with data protection regulations Certain regulations and laws have already been established in response to data privacy concerns. However, the strategies that govern user privacy and data collection continue to evolve. First, there are regulations like [CCPA, GDPR, and the ePrivacy Directive](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive) that every business processing personal data should comply with. There is also [HIPAA, a U.S. law](https://stape.io/blog/make-your-tracking-hipaa-compliant) that primarily aims to protect patients' privacy and data security concerning their medical information and health records. User consent To establish data-driven personalization, one of the most important things to do is to develop clear data consent communication with your customers. Consent management is obtaining customers' permission before collecting and utilizing their personal data. This concept emerged as a necessity for organizations in the healthcare sector, where it was crucial to secure patients' consent regarding who could access their protected health information. Further on, with the emergence of data privacy regulations such as GDPR, CCPA, and others, consent management became relevant for every company handling personal data. Here are the main steps to establish a straightforward and effective consent management process: Explain data processing practices to your customers clearly. When a customer visits your website or app for the first time, they should see a pop-up explaining what data your company collects and how the data you collected will be processed and used. Give your customers consent options (accept all cookies, accept only strictly necessary cookies, etc.). Get user consent to store their data. Usually, when users share their data and click the consent box to sign up for a newsletter, they receive an email confirming they intend to receive this information from the brand. Give options to withdraw consent. Customers should be informed that they have the right to revoke their consent and request the deletion of their data from the records at any time. Review and update your consent policy. Audit your data consent policy to ensure compliance with relevant regulations and inform consumers about changes that could impact their data privacy. Ways in which server-side tracking can help with personalization and privacy compliance Server-side tracking is a great tool that can help businesses customize user experiences without compromising privacy. Below is an overview of the benefits server-side tracking can offer for data-driven personalization. From better data tracking and collection to better compliance and control, we see no reason why a business should miss out on the opportunities it offers. ![benefits of server-side tracking for personalization](https://cdn.stape.io/i/66b1c0027bf8e547796824.png) Pseudonymization To use Google Analytics in a GDPR-compliant way, you should implement two main things: an EU proxy server and pseudonymizing user data before the export. User data pseudonymization occurs inside the GA4 tags in the web and server GTM container. At Stape, we are implementing a list of features to help you remove user data automatically. We don't have strict rules on which data should be removed; it's up to you to determine your company's security level. For instance, you can remove or mask the user's IP address. While parameters like country, language, and browser alone may not uniquely identify users, combining them could lead to identification. There’s no debate about removing parameters like client ID or URL queries, as these can uniquely identify users, especially with unique Google IDs. For example, suppose you need to analyze mobile vs. desktop traffic or browser-based conversions. In that case, you must decide whether to remove all data that could lead to fingerprinting and user identification or just some of it. Can you retain information like browser and device while removing other identifiers? Consult with your legal team or Data Protection Officer (DPO) to ensure compliance and protection against regulatory scrutiny. For enhanced security, remove all identifiers that could enable fingerprinting and re-identification. HIPAA Compliance with GA4 + server-side tracking + Anonymization Google Analytics is not inherently HIPAA compliant. This is primarily because it's not designed to handle Protected Health Information (PHI) as outlined under HIPAA guidelines. For example, Google Analytics 4 was not compliant for a while when the Privacy Shield wasn’t there. The only compliant ways to use Google Analytics were server-side tracking and pseudonymization. [To be HIPPA-compliant](https://stape.io/blog/make-your-tracking-hipaa-compliant), you cannot use GA4 alone at this point. You need to anonymize the user data that you collect. You can do it with the [Stape Anonymizer](https://stape.io/solutions/anonymizer). Its main goal is removing or anonymizing user data from Google Analytics 4. We filmed a [video guide](https://www.youtube.com/watch?v=EHsNpSddScY)on removing user data from Google Analytics with the help of Anonimyzer. Conclusion Using data-driven personalization is a game-changer for businesses wanting to connect with their customers more personally. It helps brands create experiences that truly resonate, boosting customer loyalty and driving growth. To really maximize data personalization, it's essential to switch to server-side tracking. This approach not only provides more accurate data insights but also helps you comply with privacy laws, keeping your customers’ trust safe. By adopting server-side tracking, you can easily combine data from both offline and online sources, target your audience more effectively, and uphold strong ethical standards in data handling. Switch to server-side tracking to stay competitive with Stape and meet your customer's ever-changing needs with the help of data-driven personalization. [Contact us](https://stapehelp.zendesk.com/hc/en-us/requests/newhttps://stapehelp.zendesk.com/hc/en-us/requests/new) if you have any questions left or need help setting up server-side tracking. --- # Consent Management in Microsoft (Bing) Source: https://stape.io/blog/consent-management-in-microsoft-bing Consent Management for Microsoft Ads ensures GDPR compliance. Learn how to implement Bing Ads conversion tracking with UET tags and consent mode. Microsoft (Bing) is a powerful search engine that helps businesses reach a broader audience and track user interactions through Universal Event Tracking (UET). And recently, Bing has required users to obtain consent from their website visitors for tracking and collecting data. This is in line with various privacy regulations, such as the [GDPR](https://stape.io/blog/server-side-tracking-gdpr) in the European Union. We have already discussed the [Universal Event Tracking (UET) Consent Mode for Microsoft (Bing)](https://stape.io/news/universal-event-tracking-consent-mode-microsoft-gdpr-solution) in our news post. So here we would like to focus on practical tips and provide you an example of how to implement consent mode for tracking [Bing Ads conversions](https://stape.io/blog/bing-ads). Consent mode for Microsoft Ads conversions Microsoft's consent requirements differ from the settings of [Google Consent Mode V2](https://stape.io/blog/google-consent-mode-v2), which you might already be familiar with. It's also not directly related to GTM's consent overview. Instead, it's an internal datapoint that Microsoft wants to receive along with conversion signals. See example below, tag is configured to only fire when ad_storage is granted and this rule will work, however Microsoft as destination will not know the consent states involved: ![microsoft tag configuration](https://cdn.stape.io/i/66a75928a73ac398206976.png) Naturally, Microsoft would update their GTM template to accept consent data or make it compatible with GTM's consent overview. While we wait for that to happen, we have two options. ![microsoft tag configuration](https://cdn.stape.io/i/66a759536a295176571564.png) You are using custom HTML UET tag In this case you just need to follow the [native documentation](https://help.ads.microsoft.com/#apex/ads/en/60119/1) and add consent state pushes to your code as per example from the native doc: ![custom HTML UET tag](https://cdn.stape.io/i/66a75cab5443a967347779.png) If you are using Google's Сonsent Mode V2, the easiest way to pull a consent state would be using a variable such as [GTM Consent State](https://tagmanager.google.com/gallery/#/owners/Ayudante/templates/gtm-consent-state) or CMP-specific one such as from [Cookiebot](https://tagmanager.google.com/gallery/#/owners/cybotcorp/templates/gtm-templates-cookiebot-variable). You are using UET template To make things easier our friend and partner [Markus Baersch](https://www.linkedin.com/in/markusbaersch/) has released a handy [Microsoft UET Consent Mode Tag](https://github.com/mbaersch/microsoft-consent-mode-tag) to effortlessly push consent state to Microsoft UET. Those of you who ever used [Simo’s Consent Mode](https://tagmanager.google.com/gallery/#/owners/gtm-templates-simo-ahava/templates/consent-mode) will find it very familiar. Functionality boils down to two commands: default and update and selecting a consent state value (either granted/denied or dynamic from a variable). The Tag provides additional functionality: Set Clarity cookie consent - if you check, Clarity will use cookies if ad_storage status is set to "granted," or it will erase cookies otherwise. Push event to dataLayer when done - check to receive a dataLayer event when the consent command is sent to UET. The event name will be "uet_consent_default" or "uet_consent_update." The key "uet_consent_settings" will contain the UET settings that were set with that command. ![microsoft uet template configuration](https://cdn.stape.io/i/66a904ae59eac700727727.png) ![microsoft uet template configuration](https://cdn.stape.io/i/66a759e64b3c1757804653.png) To sum up For advertisers in Europe, it's crucial to review Microsoft's guidelines and update tracking methods to meet new consent requirements. In this article, we explained Microsoft's consent mode for Bing Ads conversions and how to add consent states using custom HTML tags or Markus Baersch’s UET template tool. If you have any questions or suggestions, please leave a comment below or submit a ticket through our [HelpDesk](https://stapehelp.zendesk.com/hc/en-us/requests/new). Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Tag status “failed” in GTM: the reasons and solutions Source: https://stape.io/blog/tag-status-failed-in-gtm-reasons-and-solutions Learn how to fix the "Failed" firing status in Google Tag Manager (GTM). Common issues include tag configuration errors, trigger and JavaScript etc. Dealing with the GTM firing status “Failed” can be frustrating. This issue pops up for some users, and we're here to help you understand why it happens and how to fix it. There are a few possible reasons for this issue to emerge, and we’ll cover them in this post. We'll also provide easy-to-follow solutions to get your tags working smoothly again. We have an article on [Tag status “still running” in GTM](https://stape.io/blog/tag-status-still-running-reasons-and-solutions) as well in case you need to check that too. ![tag status running error](https://cdn.stape.io/i/66a3a5838d294824677825.png) Common issues When you see a "Failed" Google Tag Manager (GTM) tags firing status, there could be several issues behind the problem. Let’s discuss them below. Errors in the Tag configuration An incorrect setup of the tag can be a reason for GTM firing status “Failed”. To fix the issue, double-check your tag configuration settings. Make sure that all the fields are filled out correctly. Trigger conditions not met When the trigger conditions are not met, you can get the “Failed” status as well. To fix the issue, review and adjust the trigger conditions to make sure they reflect the desired firing criteria accurately. JavaScript errors Errors in the custom JavaScript within the tag or on the page could be a reason behind the “Failed” tag status in your GTM. To fix the issue, use the browser console to identify and correct JavaScript errors. Tag sequencing issues When the dependencies between tags are not properly configured, you can get the “Failed” tag status as well. This can often occur if you have an initialisation tag and an event tag. In this case, if the event tag fires before the initialisation tag, the event tag will have a failed status. To fix the issue, adjust tag sequencing to ensure tags fire in the correct order. Blocked by browser or extensions In some cases, a browser or its extensions can block GTM scripts. To fix the issue, test in an incognito window or disable extensions to identify and address blocking issues. Network connectivity issues Poor network conditions can prevent tags from firing. To fix the issue, provide stable internet connection and check for any network restrictions. Permission issues Insufficient permissions or access issues could be behind the “failed” tag status. To fix the issue, verify that all necessary permissions are granted in GTM and on the website. Final thoughts There might be more reasons why your tag status shows "Failed." Don't hesitate to let us know in the comments if you're experiencing issues beyond what we've covered. It's important to address these problems promptly. In this article, we have described three top reasons for the "Failed" status, and by addressing these issues, you can improve the functionality of your tags and ensure accurate data collection. If you want to take your GTM skills further, earning a [certification](https://stape.io/blog/google-tag-manager-certification) helps you design efficient tag setups and avoid common mistakes. You'll learn scalable data layer strategies, server-side container workflows, and prove your expertise to clients or teams. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # How to reduce JavaScript files of GTM in PageSpeed Insights Source: https://stape.io/blog/how-to-reduce-javascript-files-of-gtm-in-pagespeed-insights Find out how to reduce GTM JavaScript files from the PageSpeed Insights report with solutions from Stape. Bonus: learn how to take control of GTM JS files. Google Tag Manager (GTM) JavaScript (JS) files are beneficial for tracking and analyzing website visitors' behavior. However, an excess of JS files can significantly impact your website's performance and functionality. These JS codes make your website load slower, which worsens customers’ experience. Moreover, did you know that Amazon’s study shows that every 100ms page loading time costs 1% in revenue? So reducing JS files is crucial for your website. In this article, we will show the [solutions to reduce the number of GTM JS files](https://stape.io/blog/how-to-reduce-javascript-files-of-gtm-in-pagespeed-insights#how-to-reduce-java-script-files-of-gtm), from auditing containers to [switching to server tracking](https://stape.io/blog/server-side-tagging-versus-client-side-tagging). Why you should decrease JavaScript files of GTM The primary advantage of optimizing JS files in GTM is the significant improvement in the website's loading speed. Each JS file needs a separate HTTP request to load, and more such files mean more requests. For users, this leads to delays in website content loading that may result in a higher bounce rate. For your website directly, it can lead to worse SEO ranking and lower website traffic. Decreasing JS files will reduce the number of HTTP requests, which will make your website load faster. Too many tracking scripts slowing your site? Use Stape’s free [Website Tracking Checker](https://stape.io/website-tracking-checker?cta=blog_article) to see what’s running so you know what to clean up. The tool shows you how well your website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for your analytics systems and ad platforms. Digital marketers and agencies can run fast tracking audits, use the report as a checklist to double-check implementations, and win more clients with proof of server-side tracking value. How to reduce JavaScript files of GTM GTM files are usually found in the following sections of [PageSpeed Insights](https://pagespeed.web.dev/) reports: [Reduce the impact of third-party code](https://stape.io/blog/how-to-reduce-javascript-files-of-gtm-in-pagespeed-insights#reduce-the-impact-of-third-party-code) [Reduce unused JavaScript of Google Tag Manager](https://stape.io/blog/how-to-reduce-javascript-files-of-gtm-in-pagespeed-insights#reduce-unused-java-script-of-google-tag-manager) Click on the section you’ve got problems with and jump directly to it. Reduce the impact of third-party code Third-party JS code allows setting up tracking for different user actions (clicking, scrolling, sharing content, etc.). However, it impacts the website speed and often becomes one of the biggest loads on the web page. ![Reduce the impact of third-party code](https://cdn.stape.io/i/66a2531e493db835557707.png) To fix GTM files, we advise the following solutions: Solution 1. Audit the Tags. Review all the tags in your GTM container, as some may no longer be needed for website performance analysis. This simple step will help reduce the number of third-party codes and the load on your website. To complete this task, we suggest using [GTM.Tools](https://gtmtools.com/). Here you can inspect your container, edit, and mass-update Workspace contents. ![GTM tools workspace](https://cdn.stape.io/i/66a90f793c642470753546.png) Solution 2. Reduce the number of Custom HTML Tags. [Custom HTML Tags](https://stape.io/blog/gtm-best-practices-and-tracking-tags) are helpful for some personalized tracking setups; however, they are often too bulky and, when fired, affect the website's load time. Review the custom tags you have and try to switch to GTM’s templates, as they are more optimized. ![Custom HTLM tag](https://cdn.stape.io/i/66a2538842caf300637056.png) Solution 3. Use a Content Delivery Network (CDN). CDN caches your website data and delivers certain pages from a server closer to your visitors. This results in faster JS file serving. When you host on Stape and add a custom domain for server-side tracking, you have the option to use [Global CDN](https://stape.io/solutions/global-cdn) or [Own CDN, which has benefits for precise tracking](https://stape.io/blog/increase-first-party-cookie-lifetime-set-by-a-third-party-ip#how-own-cdn-works). Solution 4. Delay firing low-priority tags. Some tags don’t need to be fired once the page is loading. Set up tag sequencing for tags that can be delayed. Tag sequencing lets you specify tags to fire immediately before or after a given "primary" tag is fired. To find this option go to the “Advanced Settings” of tags you want to delay. ![Tag sequencing](https://cdn.stape.io/i/66a25407632d3741230476.png) Solution 5. Switch to server-side tracking. If reducing Custom HTML Tags and/or deleting some tags doesn’t work for you. We advise trying server-side tracking. How does it work? When switching to server-side, you move all the GTM tags from the web to the server container. These tags will be loaded into the server container instead of inside the user browsers. This will result in a faster website load. ![How server-side tracking works](https://cdn.stape.io/i/66a254448a485092945002.webp) Faster website load is one [benefit of server-side tracking](https://stape.io/blog/benefits-server-side-tagging), check our blog post to see more advantages. Reduce unused JavaScript of Google Tag Manager Unused JS code is the code that isn’t required to render the page (to load and display the content of the page). This code increases the size of your JavaScript bundle resulting in slower website loading. ![Reduce unused JavaScript files](https://cdn.stape.io/i/66a254a898015181266771.png) The most effective way to address this problem is to audit your GTM container and delete unnecessary tags. However, keep in mind that, most likely, you won’t be able to exclude such JS files completely from this section in PageSpeed Insights. Some variable types can be part of GTM itself, and they are required to make GTM work in general. Such variables include Auto Event Variable, DOM Element, Element Visibility, etc. You may not even add these variables in your container, but you see them as “unused JS code” in PageSpeed Insights. They are part of the GTM library, and deleting them can break the code and result in improper or non-working GTM. Why does it appear in “unused JS code” if it is part of the GTM library and is essential for GTM to work? PageSpeed Insights marks it as unused code because you don’t have such a type of variable in your container. It is placed in the GTM library only. Take control of JavaScript files of GTM As you can see, the fundamental problem you may face with GTM JS files is connected to unordered, overloaded containers. The critical solution is to monitor container size and delete unnecessary tags in time. There are two ways to monitor the GTM container size: Using extension Add the [Get Google Tag Manager Size](https://chromewebstore.google.com/detail/get-google-tag-manager-si/ndaegamobipndngjlabdhacghfbpiljh) extension to your browser and just use it on your website when you want to check it. The extension will show you the size of the container and provide details on the number of variables, tags, and triggers. ![Container size extension](https://cdn.stape.io/i/66a255618f942628898716.png) Get a response from GTM Use the link below to check the size of your GTM container. Instead of the “YOUR_ID” part in the URL, add the ID of your container (click on “Workspace” in GTM, and you’ll see the ID). [https://www.googletagmanager.com/gtag/js?id=YOUR_ID](https://www.googletagmanager.com/gtag/js?id=YOUR_ID) When you get the result page, copy and paste it to TextEdit (for Mac OS) or Notepad (for Windows OS). Then, you can see the size of this file - that’s the size of your GTM container. ![GTM container size](https://cdn.stape.io/i/66a255b232cf5877573255.png) ❗Note: The number will be higher with this method than with the extension, as it includes 33 KB of the GTM library. The extension counts only the container’s contents (tags, triggers, variables). The difference between the extension’s and GTM’s response can be even higher than 33 KB because the GTM’s response decompressed container size, making it heavier than 33 KB. When to check GTM container size? The limit container size is 200 KB, but GTM will warn you if you reach 140 KB. Of course, keeping containers far smaller than this is highly recommended so as not to impact the website's performance. We suggest monitoring container size from time to time, especially after massive changes and tracking setups, so that you can control the impact of GTM code on your website performance. Conclusion The excess of GTM JS files can significantly impair the performance score of your website in PageSpeed Insights. These codes make it load slower, causing a higher bounce rate and worse SEO ranking. The most effective ways to reduce the number of GTM JS files are to control their size, audit GTM containers, and delete unnecessary tags. However, if decreasing the number of tags doesn’t work, we advise considering [server-side tracking instead of client-side](https://stape.io/blog/server-side-tagging-versus-client-side-tagging). With the server side, all the GTM tags will be loaded into the server container instead of the browser, resulting in a faster website load. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # What is Protected Audience API? Source: https://stape.io/blog/what-is-protected-audience-api GDPR enforcement intensifies, as Swedish DPA imposes fines for illicit EU to US data transfers via GA. Stape Europe offers a GDPR-compliant sGTM proxy. With the [cookieless era standing just around the corner](https://stape.io/news/google-chrome-cookie-deprecation-starting-in-early-2025), user privacy legislation getting stricter, and Intelligent Tracking Prevention growing smarter, marketers are looking at alternative ways to target their audiences. Since the cookie deprecation agenda is set, it’s about time you try alternative audience-targeting solutions to soften the blow for your business before things change drastically. ⚠️UPDATE: Google announced that it will [no longer pursue its plans to phase out third-party cookies](https://privacysandbox.com/news/privacy-sandbox-update/). Instead, the company will introduce a new solution: a one-time prompt that allows users to set their preferences, which will apply across all Google browsing experiences. The Privacy Sandbox and its associated APIs are a privacy-centered solution from Google intended to substitute cookies. In this post, we will explore the Protected Audience API's purpose, role, benefits, and challenges. What is Protected Audience API? ![protected audience api](https://cdn.stape.io/i/669a698c9c43d000679268.png) Let’s start with figuring out what Protected Audience API is. As part of the Privacy Sandbox, Chrome proposed Protected Audience API (previously called FLEDGE) — an in-browser API that lets advertisers and ad tech companies show interest-group targeted ads without relying on third-party cookies while protecting users from cross-site tracking. The Protected Audience API (PAAPI) is an on-device ad auction that serves remarketing and custom audiences without cross-site third-party tracking. It uses interest groups to let sites show relevant ads to their users. The image below shows the lifecycle of Protected Audience API. ![protected audience api](https://cdn.stape.io/i/669a69d705f75883797919.png) Source: developers.google.com How Protected Audience API can be used Let's imagine a situation: a user visits an online clothing store and shows interest in a particular jacket style but doesn't make a purchase. Later, when the user browses the internet, the Protected Audience API can enable the browser to display ads from that clothing store, specifically highlighting jackets or related items, without relying on third-party cookies. Or here’s another use case: a user researches flights and hotels in a specific destination but doesn't book immediately. The Protected Audience API could later facilitate the display of ads for travel deals or hotel offers in that destination while the user is browsing other websites. This approach would be based on the user's demonstrated interest but done in a way that respects their privacy and avoids cross-site tracking. Protected Audience API flow looks like this: The user interacts with the site that wants to advertise its products. Browser joins an interest group. User visits other sites that display ads. Ad auction is run on the user's device. The most desirable ad based on seller code is chosen. A winning ad is displayed. The auction outcome results are reported. And if you're looking for specific API methods and parameters: Buyers guide for [joinAdInterestGroup() and generateBid()](https://developers.google.com/privacy-sandbox/relevance/protected-audience-api/interest-groups). Seller's guide for the Protected Audience API [runAdAuction()](https://developers.google.com/privacy-sandbox/relevance/protected-audience-api/ad-auction) Buyers guide to [reportWin()](https://developers.google.com/privacy-sandbox/relevance/protected-audience-api/reports) and sellers guide to [reportResult()](https://developers.google.com/privacy-sandbox/relevance/protected-audience-api/reports) [Troubleshoot the Protected Audience API](https://developers.google.com/privacy-sandbox/relevance/protected-audience-api/troubleshoot) This is how Protected Audience API works. Now, let's see why we need it. What are the reasons for implementing the Protected Audience API? Protected Audience API allows advertisers to understand user behavior better and show users more relevant ads than ads based solely on the website content (contextual targeting). With cookies being phased out soon, websites won't be able to track users across different sites for much longer. Since ad targeting has been relying on cross-site tracking for so long now, there is a pressing need for a privacy-friendly solution like Protected Audience API. Below are the most significant benefits of Protected Audience API: Enhanced user privacy and data protection. PAAPI allows advertisers to take a massive step towards user privacy-centered advertising. This solution lets brands personalize their communication with users without sharing their data with third-party services. Improved targeting accuracy for advertisers. PAAPI lets advertisers target and place their ads better, which leads to improved engagement rates and higher returns of investment. Compliance with data protection regulations (e.g., GDPR, CCPA). One of PAAPI's undeniable advantages is its compliance with user data privacy regulations. By design, it complies with legal standards and is intended to help maintain user trust and protect sensitive information. Challenges of Protected Audience API It is available only for Chrome users. For now, it looks like only Chrome will use PAAPI, so users of other browsers will not be able to benefit from it — at least, not soon. Technical complexities in implementation. To implement PAAPI, you must dedicate a part of your team and resources to it. It’s a complex solution that requires expertise and effort to set up, master, and fine-tune. One of PAAPI's top challenges is balancing ad effectiveness with privacy concerns. This technology aims to improve advertisers' targeting accuracy while ensuring robust data protection. Potential limitations in audience segmentation and targeting accuracy. Some constraints in precisely segmenting audiences can affect the overall effectiveness of advertising campaigns. PAAPI has its benefits and challenges, just like any other tool. The question is whether it’s worth trying despite the possible downsides. So far, the answer is positive — PAAPI is a solution you should explore. Cookies and Protected Audience API Where do cookies stand in the PAAPI horizon? Third-party ones are going down, and first-party ones are shining new and bright. First-party cookies are crucial in effectively integrating and utilizing the Product Advertising API. Here's what first-party cookies do: Manage user sessions: first-party cookies keep track of user sessions by storing session IDs. Users can stay logged in while moving through different pages of a website. Personalize user experience: 1st-party cookies remember user preferences and past interactions, which helps the website recommend products or show relevant ads. Track website activity: you have full information about page visits, time spent on the site, and interactions with product listings. This data helps improve the website's content and layout. Ensure consistent interactions: when using PAAPI for product data or recommendations, these cookies make sure all requests are part of the same session, providing a smooth experience. Enhance security: you can prevent cross-site request forgery (CSRF) attacks and securely store session information, helping websites follow data privacy rules when using PAAPI. It looks like first-party cookies are getting the spotlight in the scope of PAAPI and beyond. At the dawn of third-party cookies, we recommend you look into first-party-centered solutions now. You can read about [strategies for collecting and using first-party data](https://stape.io/blog/zero-first-third-party-data-explained-for-a-cookieless-world#strategies-for-collecting-and-using-1-st-party-data-best-practices) on our blog. How to start with Protected Audience API? Publishers must work with their SSPs to start testing. To enable Protected Audience, you must upgrade to the latest version of Prebid and incorporate the fledgeForGPT module, necessitating some configuration adjustments. Additional integration methods are currently under development and will be accessible soon. One thing is sure: moving tracking and advertising to the browser is a drastic change that one needs to prepare for. A good way to do this is to do your research, explore PAAPI documentation, and educate yourself about it. Conclusion PAAPI is a vital development in the digital advertising ecosystem. This solution offers a future-oriented, privacy-centered method of targeting the audience and displaying the most relevant ads without violating user data privacy. Benefits of PAAPI include enhanced user privacy, improved targeting accuracy for advertisers, and compliance with data protection regulations. Challenges of using PAAPI include technical complexities in implementation, potential limitations in audience segmentation and targeting accuracy, balancing ad effectiveness with privacy concerns, and availability only for Chrome users. PAAPI shifts our attention to first-party data even more. First-party cookies play a crucial role in effectively integrating and utilizing PAAPI. We recommend switching to server-side tracking if you want to get the most out of your first-party data before the cookieless era rolls in. We’re [happy to help](https://help.stape.io/hc/en-us)! Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # DNS configuration for custom domain for server-side tracking Source: https://stape.io/blog/dns-configuration-for-custom-domain Learn how to configure DNS records for custom domain on server-side tracking. We prepared instructions for top providers: Wix, Shopify, GoDaddy, Cloudflare and more. DNS record configuration is an essential part of setting up server-side tracking. If you have just created a custom domain (or haven’t created one yet) that you are about to use for tracking, this article is for you. We will describe what DNS is and why it is important to add DNS records. That's an end-to-end guide where you find [how to configure DNS records for custom domain](https://stape.io/blog/dns-configuration-for-custom-domain#dns-configuration-for-top-providers), check if the [DNS record is verified](https://stape.io/blog/dns-configuration-for-custom-domain#check-dns-records) and [troubleshoot problems](https://stape.io/blog/dns-configuration-for-custom-domain#troubleshooting-dns-records-for-server-side-tracking) (if there are such). What is DNS? Domain Name System (DNS) is a kind of middle-man between the user’s request and the browser. When you want to visit a website, you may enter its domain name directly (www.example.com) or reach any website’s page via search in your browser. You access information through domain names while your browser uses internet protocol (IP) addresses to find the right domain. Let’s say you speak different languages. DNS translates domain names to IPs so the browser can load the correct website’s page. Why is it important to configure DNS for server-side tracking? To enable first-party cookies for server-side tracking, you’ve probably already set up a custom domain in sGTM (if not, check out our guide on [custom domain implementation on sGTM container](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container)). Using this custom domain for tracking requires adding a DNS record. So, why does it matter? It helps to bypass ad blockers. The DNS record helps to set up data redirection to your custom domain name by adding it to the URL. So when ad blockers scan the URL, sending data to a custom domain will ensure that no data will be missed as the custom domain doesn’t contain parts that point out it is used for data collection. Read more about [trends in third-party cookies and how server-side can help you adapt to the world](https://stape.io/blog/third-party-cookies) without them. Another point is custom domain verification. Adding a DNS record is required to do it. Before starting Make sure you have a custom domain for server-side tracking To check it, go to your sGTM container → Admin → Container Settings and see your Tagging server URL; if it includes one of the following formats, you added a custom domain: example.com/sgtm sgtm.example.com wjzsdfvom.us.stape.io ![Custom domain in GTM container](https://cdn.stape.io/i/6698eff731970226838914.png) Check out our [article on creating a custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) to find more about its benefits and a step-by-step guide on how to do it if you don’t have a custom domain yet. See the details required to create a DNS record Go to Stape Admin → open container → Settings → Domains (Tagging Server URLs). You will need data from columns Type, Host, and Value to create a DNS recording. ![Type, Host, and Value](https://cdn.stape.io/i/6734870272adb354301016.png) Check your hosting provider Ensure you know what hosting provider you have. Your hosting provider manages all the DNS records, and you should add a record on the provider's side. If you need clarification on your domain/web hosting provider, use [Sitechecker](https://sitechecker.pro/hosting-checker/) to figure it out. Below, we provide guidelines to configure DNS for the most popular providers; jump to the needed section directly by clicking on your provider: [Godaddy](https://stape.io/blog/dns-configuration-for-custom-domain#go-daddy) [Shopify](https://stape.io/blog/dns-configuration-for-custom-domain#shopify) [Wix](https://stape.io/blog/dns-configuration-for-custom-domain#wix) [Cloudflare](https://stape.io/blog/dns-configuration-for-custom-domain#cloudflare) [DigitalOcean](https://stape.io/blog/dns-configuration-for-custom-domain#digital-ocean) [Namecheap](https://stape.io/blog/dns-configuration-for-custom-domain#namecheap) [Domain.com](https://stape.io/blog/dns-configuration-for-custom-domain#domain-com) DNS configuration for top providers GoDaddy 1. Log in to your GoDaddy [Domain Portfolio](https://dcc.godaddy.com/control/portfolio). 2. Choose your domain and access Domain Settings → click the DNS tab → Add New Record. 3. Then, add the [data required to create a DNS record](https://stape.io/blog/dns-configuration-for-custom-domain#see-the-details-required-to-create-a-dns-record). 4. Click “Save” to add a new DNS record. Check [GoDaddy’s step-by-step instructions on adding DNS records](https://www.godaddy.com/help/add-an-a-record-19238) for a more detailed guide. Shopify 1. Go to [Shopify admin](https://www.shopify.com/store-login). 2. Select your domain → Domain settings → Edit DNS settings → Add custom record. 3. Add [data required](https://stape.io/blog/dns-configuration-for-custom-domain#see-the-details-required-to-create-a-dns-record) to create a DNS record. 4. Click “Confirm”. Find out more info on [configuring DNS records on Shopify](https://help.shopify.com/en/manual/domains/managing-domains/edit-dns-settings#add-dns-record) here. Wix 1. Log in to your Wix account and go to [Domains](https://manage.wix.com/wix/api/mpContainerStaticController#/domains). 2. Click three dots (Domain Actions) → Manage DNS Records → enter record type (A, CNAME, TXT) → Add Record. ![Manage DNS Records](https://cdn.stape.io/i/691b179e2059f828418343.png) 3. Enter all the [data required](https://stape.io/blog/dns-configuration-for-custom-domain#see-the-details-required-to-create-a-dns-record). 4. Click Save and then click Save Changes in a pop-up window. For more details, please check [Wix’s guide on configuring DNS records](https://support.wix.com/en/article/managing-dns-records-in-your-wix-account). Cloudflare 1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com/login). 2. On the account home page next to your domain name click three dots and select “Configure DNS”. ![Configure DNS](https://cdn.stape.io/i/67d2c08c2931f851331355.png) 3. Click “Add record”. ![Add record](https://cdn.stape.io/i/67d2c0b0a212d057651849.png) 4. Enter the type of record and add all the [data for DNS from your Stape account](https://stape.io/blog/dns-configuration-for-custom-domain#see-the-details-required-to-create-a-dns-record). Here is an example of a DNS record: ![DNS record](https://cdn.stape.io/i/6734873f2260c435590390.png) ![DNS record](https://cdn.stape.io/i/6734874551bb6354271028.png) 5. Click “Save”. Read detailed instructions about [creating DNS records on Cloudflare](https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/). DigitalOcean 1. Log in to your [DigitalOcean account](https://cloud.digitalocean.com/login). 2. At the top of the page, click Networking → Domains. 3. Add your registered domain and IP address and click Create report. ![Add domain and IP address on DigitalOcean](https://cdn.stape.io/i/6698f54744166940383006.png) 4. Then, you will see the A record, or address record, for the domain and the name servers (NS records), which you will need to give your domain's registrar. 5. Click “Add record”. Find more information on [adding DNS records in DigitalOcean’s documentation](https://serverpilot.io/docs/how-to-configure-dns-on-digitalocean/). Namecheap 1. Sign in to your [Namecheap account](https://www.namecheap.com/myaccount/login/). 2. Select “Domain List” on the left sidebar, and next to your domain name, click on “Manage”. 3. Go to the tab Advanced DNS → Host records section → click Add New Record. ![Namecheap DNS settings](https://cdn.stape.io/i/6698f67f9d6cd182923489.png) 4. Enter the type of record, host, and [value that you can find in your Stape account](https://stape.io/blog/dns-configuration-for-custom-domain#see-the-details-required-to-create-a-dns-record). 5. Click “Save changes”. Find out more info in [Namecheap’s guide on setting up DNS records](https://www.namecheap.com/support/knowledgebase/article.aspx/319/2237/how-can-i-set-up-an-a-address-record-for-my-domain/). Domain.com 1. Log in to your [Domain.com Account](https://www.domain.com/my-account/login). 2. On the left-side menu, click Domains → Settings (next to your domain name) → Advanced Tools → dropdown menu → Manage. ![Advanced Tools in Domain.com](https://cdn.stape.io/i/6698f73420414301933607.png) 3. Click "+ ADD RECORD" and fill in the required fields with [data from your Stape account](https://stape.io/blog/dns-configuration-for-custom-domain#see-the-details-required-to-create-a-dns-record). 4. Click “ADD” to save changes. For more details on [adding a DNS record, see Domain.com’s guide](https://www.domain.com/help/article/dns-management-how-to-update-dns-records). Check DNS records DNS record verification usually happens within a few hours after adding the record but may take up to 72 hours in some cases. To check if your record is verified, use [Dig (DNS lookup)](https://toolbox.googleapps.com/apps/dig/): 1. Enter the hostname (without https:// and other extra characters) 2. Choose the type of report (e.g., A, CNAME). If the DNS record is verified, you will see TTL (Time to live) and Data on record, as shown in the screenshot below. ![Successful DNS record](https://cdn.stape.io/i/6698f85e9b5c8032666692.png) You will receive a “Record not found” message if the DNS record fails to verify (the screenshot below). To fix your record, see the “[Troubleshooting DNS record](https://stape.io/blog/dns-configuration-for-custom-domain#troubleshooting-dns-records-for-server-side-tracking)” section. ![DNS record not found](https://cdn.stape.io/i/6698f8bb425a0619857995.png) Troubleshooting DNS records for server-side tracking Problems with DNS records verification can be caused by different reasons, among them: 1. Wrong DNS record Values from your Stape container can mismatch the ones in the DNS record you added. Solution: go to Stape Admin → open container → Settings → Domains (Tagging Server URLs) and compare with data you added to your DNS record on the hosting provider site. If needed, make changes to your DNS record. ![Data for DNS record](https://cdn.stape.io/i/6698f9598a011550427718.png) 2. DNS records are proxied If you're not using the “Own CDN” option on Stape, ensure that proxying is disabled for the DNS records of your sGTM subdomain. Here is an example of Cloudflare. This is how proxy status should look like: ![Correct proxy status on Cloudflare](https://cdn.stape.io/i/6698f9b0c742f594034850.png) Below is an example of how proxy status should not look like: ![Incorrect proxy status on Cloudflare](https://cdn.stape.io/i/6698f9e27b4ee817506719.png) Solution: you need to disable proxying in the DNS record settings. On the example with Cloudflare, go to Cloudflare dashboard → DNS → Records → choose DNS record → Edit → toggle Proxy Status to Off. Conclusion Adding DNS records for your custom domain is crucial for server-side tracking. This helps bypass ad blockers’ harmful impact on data collection and allows you to verify the custom domain you created for server-side tracking. DNS records configuration is made on the side of your hosting provider. The process doesn’t differ much from provider to provider, and adding a DNS record doesn’t take much time. You will have a verified record in a few hours (some cases may take up to 72 hours, but it isn’t a typical case). If not, see [how you can fix it](https://stape.io/blog/dns-configuration-for-custom-domain#troubleshooting-dns-records-for-server-side-tracking). Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Stape Conversion Tracking app for BigCommerce Source: https://stape.io/blog/server-side-gtm-app-for-bigcommerce Conversion Tracking app for BigCommerce: easily add GTM, Cookie Keeper, dataLayer events, and webhooks to your store. Enhance tracking accuracy and website performance. If you are looking for an easy way to set up Google Tag Manager (GTM) tracking for your BigCommerce website, you are in the right place. Stape’s [Conversion Tracking app for BigCommerce](https://stape.io/blog/server-side-gtm-app-for-bigcommerce) will help to achieve this goal. The app has additional features that enhance the tracking process and will be especially beneficial for server-side tracking. These features include accurate data tracking, bypassing [ad blockers](https://stape.io/blog/bypass-adblock-detection) and browser restrictions, high website security, and fast website page loading. In this article, we will consider the benefits of the Conversion Tracking app in detail and show how to set up an app for your website so you can start using all the features immediately. Benefits of Conversion Tracking app for BigCommerce [The app](https://stape.io/solutions/stape-server-gtm-app-for-bigcommerce) can be used by both [client-side and server-side GTM users](https://stape.io/blog/server-side-tagging-versus-client-side-tagging). For client-side users, an app makes it easier to add a GTM script to a BigCommerce website, and you won’t even need the help of developers. However, there are some limitations for those who use web GTM. Server-side tracking itself enhances the data-tracking process by providing the following benefits: Precise data tracking. Server-side tracking provides higher data quality as it reduces the risk of data loss caused by [ad blockers](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers) and [browser restrictions](https://stape.io/blog/third-party-cookies) - all the factors that client-side tracking is exposed to. Faster website load. Server-side tracking doesn’t require additional code to be added to the website, as web GTM does. Without additional code, the [website will load faster](https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking). This will improve user experience and SEO. Higher data security. It lowers the risk of data breaches, which is essential for stores that require a lot of [vulnerable data](https://stape.io/blog/make-your-tracking-hipaa-compliant) (such as card details). More accurate conversion attribution. Server tracking will prolong cookies' lifetime, helping to [identify the channel conversion](https://stape.io/blog/track-users-first-last-source-medium-using-server-google-tag-manager) that came from more accurately. This is an extremely helpful feature for estimating the effectiveness of marketing campaigns. Why choose Stape server-side tracking for BigCommerce app Stape's app can be used on any hosting for server GTM. However, such features as [Custom Loader](https://stape.io/solutions/custom-gtm-loader) (it eliminates the harmful impact of ad blockers) and [Cookie Keeper](https://stape.io/solutions/cookie-keeper) (it prolongs cookies' lifetime, bypassing browsers’ restrictions) are available only for those who [host server GTM on Stape](https://stape.io/gtm-server-hosting). Hosting on Stape is cheaper and easier than on a popular platform like Google Cloud Platform (GCP). You can read more in our post on the [difference between Stape and GCP](https://stape.io/blog/stape-an-alternative-to-google-cloud-platform) in the blog. Start with a free Stape plan and then choose one that fits your business’s needs. The paid plans start at only [$20/month](https://stape.io/price), while with GCP, you will spend at least $120/month. When you run out of resources (CPU, RAM), you won’t need to take any action, we will add them automatically to sGTM account. How to set up Stape Conversion Tracking app 1. [Set up server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Install the [app](https://www.bigcommerce.com/apps/stape-server-gtm/). Click Get this app → log in to your BigCommerce account → Install. ![Stape Conversion Tracking app in the BigCommerce marketplace](https://cdn.stape.io/i/68f60b773aae5936170834.png) 3. Then, you need to complete the settings parameters in three tabs: General, Data Layer, and Webhooks. 3.1 General tab Here, you need to add the following data: GTM Web container ID - add the ID of Web container in the format GTM-XXXXXXX. You can find it in your GTM account in the tab “Accounts”. Click “Insert GTM snippet” to automatically add the snippet with JavaScript code to every page on your website. Custom domain - use your subdomain created for first-party cookies for the most precise tracking. If you haven’t created a subdomain yet, please see our guide on [adding a custom domain to sGTM container](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). Custom Loader - this feature will help increase protection against ad blockers, resulting in better data quality. Add in the field Stape container identifier. Check this quick guide to [find your container identifier](https://help.stape.io/hc/en-us/articles/9697466601373-How-to-find-the-Stape-container-identifier). Cookie Keeper - it helps prolong the cookies' lifetime by bypassing the browsers’ restrictions. After setting all the necessary fields, click “Save”. ![General tab](https://cdn.stape.io/i/66978fd958e8a453695311.png) 3.2 Data Layer tab Here you can find a[list of events and their payload, which is added via the Conversion Tracking app for BigCommerce](https://help.stape.io/hc/en-us/articles/22153866785053-BigCommerce-App-dataLayer). In this tab, you can add two points to the settings: Add ecommerce Data Layer events - it will add standard Data Layer, based on them you can configure tracking in GTM container. Add user data to Data Layer events - with this feature, events will include user data. You can configure the data you want to collect from your website visitors in the GTM container. Decorate DataLayer event name - lets you decide whether to add the _stape suffix to event names to avoid conflicts with your existing GTM setup; when it’s turned off, events keep their standard names. Click “Save”. ![Data Layer tab](https://cdn.stape.io/i/692eed3b44d81190779074.png) 3.3 Webhooks tab The [webhooks feature](https://stape.io/blog/webhook-server) will be handy if you want to track events outside your website, such as sales made by phone or in offline stores. You just add or update information on a user in CRM or CMS, and the webhook sends data in GTM. To activate a webhook, you need to choose the type of webhook, “Purchase” or “Refund” (or both), and then you can click on “Send webhooks to server GTM container”. Then, add your GTM server container URL (the path where the webhook will be sent). Click “Save”. Note: If you encounter problems setting webhooks, see our blog post on [debugging incoming webhooks in GTM server preview](https://stape.io/blog/debug-webhooks-google-tag-manager-server). ![Webhooks tab](https://cdn.stape.io/i/6697910a03828677966049.png) 4. Make sure that your container is uploaded to the website. Open the console of your browser → network tab → enter your custom domain. ![Open the console of your browser → network tab → enter your custom domain.](https://cdn.stape.io/i/677bc671eae69362937068.png) Once a server GTM container is added to your BigCommerce website, you can start setting up server-side tracking for the platforms you use. We have the GTM templates and installation instructions for the most popular ones: [Google Analytics 4 server-side configuration](https://stape.io/blog/set-up-ga4-server-side-tracking) [Data Tag/Data Client](https://stape.io/solutions/data-tag-client) [Facebook](https://stape.io/blog/how-to-set-up-facebook-conversion-api) [Google Ads conversion tracking API](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) [Snapchat](https://stape.io/blog/snapchat-capi) See the complete list of power-ups and GTM templates on our [Solution page](https://stape.io/solutions) and pick the ones that fit your needs. For a quick and smooth data tracking configuration, consider [Setup Assistant by Stape](https://stape.io/blog/setup-assistant-by-stape). With its help, you can generate pre-built templates for web and server GTM containers and automatically import them into GTM containers. Conclusion Server-side tracking provides numerous benefits for data tracking, making the data you get more accurate. Stape aims to simplify users' experience with sGTM, so we created the [Conversion Tracking app](https://www.bigcommerce.com/apps/stape-server-gtm/). With our app, you can configure a Custom Loader and Cookie Keeper that help bypass ad blockers and browser restrictions for more accurate data collection. You can also set up webhooks to track conversions outside your website. If you are looking for a quick and easy solution to set up server-side tracking for your BigCommerce website, Stape’s app is the right option for you. Ready to test server-side tagging? Click Try for free , and configure your setup with Stape in no time. --- # Tag status “still running” in GTM: the reasons and solutions Source: https://stape.io/blog/tag-status-still-running-reasons-and-solutions Fix 'Still running' tags in GTM. This guide explains why tags get stuck and provides solutions for redirects, Consent Mode errors, and CSP blocks. Faster detect failed tags and common setup issues in large containers for you or your agency clients, thanks to [Stape GTM Helper](https://stape.io/solutions/stape-gtm-helper?cta=blog_article). Dealing with the "Still running" status in your Google Tag Manager tags can be frustrating. This issue pops up for many users, and we're here to help you understand why it happens and how to fix it. !["Still running" status in your Google Tag Manager](https://cdn.stape.io/i/66964445bbbea776039990.png) In this article, we'll provide easy-to-follow solutions to get your tags working smoothly again. Let's get started and tackle this issue together! 1. Tag processing is interrupted by page redirect/reload “Still running” status can be set if the tag is downloading its script or waiting for a response from the server. It could be a temporary preview error. Solution. Just wait for a few minutes. The status might resolve on its own as the script completes downloading or the server responds. If the issue persists, consider the following actions: ensure your internet connection is stable. check the console for [any errors or warnings](https://stape.io/blog/google-tag-manager-errors-mistakes-solutions) that might indicate what's causing the delay. verify that the server is up and running. clear browser cache, reopen preview and try again 2. Incorrect setup of Google Consent Mode Recent changes in privacy regulations have made it mandatory for websites to obtain user consent for using cookies and tracking scripts related to advertising or analytics. To assist website owners in complying with these requirements, Google introduced [Consent Mode](https://stape.io/blog/google-consent-mode-v2). Implementing this can be challenging for many, which may lead to issues with the tag status. Solution. - Review your configuration Ensure that the Consent Mode tag is correctly set up according to Google's guidelines. This includes the correct placement of the tag and proper configuration of consent settings. We have detailed blog posts on: [Google Consent Mode V2](https://stape.io/blog/google-consent-mode-v2) [Consent mode in server Google Tag Manager](https://stape.io/blog/consent-mode-server-google-tag-manager) [Consent Settings for server GTM tags](https://stape.io/blog/consent-mode-server-google-tag-manager) [Server-side consent management with sGTM and Cookiebot](https://stape.io/blog/consent-mode-server-google-tag-manager) - Use the preview and debug mode Confirm that consent status is correctly being reflected and that tags are firing as expected based on the user's consent. In our blog you can find step-by-step instructions to [debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration). 3. Execution of tag code blocked by third-party restrictions Content security policy (CSP) is a security feature that helps prevent various types of attacks by restricting the sources from which certain types of content can be loaded. If the CSP is not configured to allow the necessary scripts, the tag code will be blocked, leading to tracking and data collection issues. Solution. Modify the CSP settings to allow the domains from which the blocked scripts are being loaded. For example, if Google Tag Manager scripts are being blocked, you might need to add https://www.googletagmanager.com to the script-src directive. Final thoughts There might be more reasons why your tag status shows "still running." Don't hesitate to let us know in the comments if you're experiencing issues beyond what we've covered. It's important to address these problems promptly to ensure the tag won't eventually show a "failed" status. In this article, we have described three top reasons for the "still running" status, and by addressing these issues, you can improve the functionality of your tags and ensure accurate data collection. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # How server-side tracking affects paid campaign attribution Source: https://stape.io/blog/how-server-side-tracking-affects-paid-campaign-attribution Learn how to make paid campaign attribution more accurate and effective with server-side tracking and how it differs from client-side tracking setup. This post will discuss how server-side tracking can assist with paid campaign attribution. We’ll review its benefits and introduce you to some Stape tools that can help you with [attribution tracking](https://stape.io/blog/marketing-attribution-models) on the side of the server. Attribution tracking (what it is and how it works) [Attribution tracking](https://stape.io/blog/attribution-tracking) uses different software to track channels and campaign efforts to determine which channel to attribute conversion to. In simple words, attribution tracking helps you understand which channels help you reach your advertising goals. This way, you can determine which channels to use, how much effort to give them, and what channels aren’t getting you anywhere. ![image](https://cdn.stape.io/i/66915f56e7e65513586246.png) Why accurate paid campaign attribution matters Attribution tracking helps marketers understand the impact of their efforts across different channels and the [effectiveness of marketing campaigns](https://stape.io/blog/measure-marketing-effectiveness-and-impact#definition-of-digital-marketing-effectiveness). What happens without campaign attribution tracking: Marketers have no reliable data on how to distribute their budget and work across various channels, what channels, campaigns, and touchpoints to focus on to get the most conversions, and what channels to reconsider. Marketers have to spend time, resources, and money in all directions randomly, not knowing where to push more and where to stop. For this reason, marketers love tracking attribution, a vital criterion of their efforts. With fine-tuned attribution, you don’t need to guess; you always know what brought your campaign to success (or failure, arguably even more important to track). The diagram below shows why tracking paid campaign attribution is a must. ![image](https://cdn.stape.io/i/66915e8c8a2e1456023909.png) As you can see, understanding the impact of your advertising tactics is crucial for business success. With a suitable attribution model, you can clearly understand where most conversions are coming from and how to keep them up. Let’s move on to tools to help you with attribution tracking. Server-side tagging vs. client-side tagging for paid campaign attribution tracking Campaign attribution can be monitored using [client-side or server-side tracking](https://stape.io/blog/server-side-tagging-versus-client-side-tagging). Let’s examine each option and its benefits and drawbacks. We hope this analysis helps you decide which option best suits your attribution tracking needs. Client-side tracking for paid campaign attribution Client-side tracking is a well-established and easy-to-implement tracking method with many advantages. It provides real-time insight into user interactions, gives comprehensive data on user engagement, and collects various types of data (clicks, page views, conversions). It looks good, doesn’t it? Well, there’s a catch. If client-side tracking methods were flawless, server-side ones wouldn’t be needed. Unfortunately, this popular tracking method has some significant drawbacks that you should consider. Drawbacks of client-side tracking: Browser extensions can block the client side, causing massive data loss. Some browsers (Safari, for instance) limit client-side tracking even without additional plugins. Cookie deletion can compromise client-side data accuracy. Client-side tracking—is becoming more limited by data privacy regulations like [CCPA, GDPR, ePrivacy Directive, and more](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive). Client-side tracking slows down the client's [website performance](https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking), which can cause customer annoyance. Let’s move to the server-side option now and check what it offers. Server-side tracking for paid campaign attribution Server-side tracking has many advantages regarding paid campaign attribution. Benefits of server-side tracking: It lets you track website interactions directly, thus minimizing data loss. It allows you to [bypass browser limitations and client-side ad blockers easily](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers). It enables compliant collection, processing, and storage of tracking data, ensuring user data privacy compliance. Server-side attribution tracking lets you build enhanced attribution models based on the extensive data you collect. You may only know how much data goes sideways unnoticed once you try server-side tracking. Reduced data loss is what all marketers try to reach, and server-side tracking can be the answer. It allows you to depend less on third-party cookies. This is very handy at this point since the [days of third-party cookies are numbered](https://stape.io/blog/cookieless-advertising-strategies-and-solutions). It offers excellent scalability. It efficiently handles large volumes of data and can optimize your ad budget based on extensive customer data. Like any tool, server-side tracking has its challenges: Compared to client-side tracking, server-side technology is still young, so there is less information about it compared to client-side tracking. It requires some technical expertise to set up. You may need to hire a specialized staff member if you need help. You need to pay for the cloud server. You might also need help integrating server-side tracking with third-party tools and platforms if [ready-to-use custom solutions](https://stape.io/solutions) are not developed. Server-side tracking is a promising, efficient, and compliant technology that can help with paid campaign attribution. However, setting up server-side tracking from scratch can be daunting without help. Don’t worry, though — Stape has your back! We know that server-side attribution tracking has numerous benefits, and we're happy to help our clients maximize them. Why server-side tracking positively affects paid campaign attribution 1. Server-side tracking prolongs cookie lifetime. Almost all browsers, except Chrome, have built-in tracking protection mechanisms that decrease cookie lifetime. This applies not only to third-party cookies but also to first-party cookies. Besides, Chrome will also phase out third-party cookies by the end of 2025, meaning that the cookie lifetime restriction will affect all popular browsers in 2025. Why are cookie restrictions so necessary for paid campaign attribution? To accurately match concern to a campaign, ad, or keyword, advertising platforms use click ID. These parameters are added to the URLs and are written in the cookies of the user's browser if a user clicks on the ad. Before all the restrictions, it was possible to store cookies for up to 2 years; this way, click IDs remained in the user browsers for a long time, and it was possible to match a conversion to the campaign or add. When the conversion tracking pixel or event was triggered, together with the purchase information, click IDs were sent to the advertising platform, allowing us to understand which click led to the conversion. With the help of server-side tracking, you can increase cookie lifetime. There are multiple ways on how to do that using stape: [Same origin domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container#using-the-same-origin) [Own CDN](https://stape.io/solutions/own-cdn) [Cookie keeper](https://stape.io/solutions/cookie-keeper) [Cookie extender tag](https://stape.io/solutions/cookie-extender) 2. Allows tracking users with AdBlockers. The popularity of ad blockers started to rise, thus negatively affecting tracking and attribution. With the help of server-side tracking and Stape [custom loader power up](https://stape.io/solutions/custom-gtm-loader), you can make tracking scripts invisible to ad blockers. It means that if your web pixel is blocked, advertising and affiliate networks will still receive information about events from the server. Unlike web tracking, attribution with server-side tracking relies on cookies and user data. If cookies are not available, attribution will depend on user data. This means that advertising networks will try to convert users who converted on your website to users in their database by using user data such as first and last name, email, phone, etc. Stape solutions for paid campaign attribution tracking Stape created a [Facebook conversion API tag](https://stape.io/solutions/facebook-capi-tag) for the Google Tag Manager server container. Among the benefits: Works with Google Analytics 4 and Data Tag. Extracts event data from any client. Parses server client and automatically adds necessary parameters to the request. Sends user data to [increase the match quality score](https://stape.io/blog/how-to-improve-event-match-quality-facebook). Sets up event deduplication. [Server-side conversion tracking in Google Ads](https://stape.io/solutions/adwords-server-side-tracking) is easier with Stape, too. Server-side Google Tag Manager can help you move your Google Ads conversion tracking tags from the webpage to the server. Benefits of Google Ads (Adwords) Server-Side Tracking: Increased accuracy of conversion tracking Improved PageSpeed Did you know that due to tracking restrictions and the stable work of the client-side tracking, your affiliates can lose up to 40% in the commission? [Affiliate Conversion Tag](https://stape.io/solutions/affiliate-conversion) from Stape is there to help you fix this issue. With this tag, you can track pageviews and conversions from affiliate partners. We also created a [Facebook Offline Conversion Tag](https://stape.io/blog/facebook-offline-conversion-using-server-gtm) to let you set up offline conversion more quickly and cheaply than before. You can use it to boost your FB campaign results and improve attribution. You can find all of our solutions and guides on using them [here](https://stape.io/solutions). How to switch to server-side tracking Take the following steps to start with server-side tracking of paid campaign attribution. Pick a tool or platform for server-side tracking that meets your needs. When considering different options, check company credibility, pricing, support access, and functionality. It’s also a good idea to check the scalability options you get. Check the tool’s data safety policy of the tracking tool you decide to use. Choose a compliant server-side tracking tool to align your data tracking needs with the latest data privacy regulations. For instance, Stape offers [EU-owned proxy servers for sGTM](https://stape.io/blog/eu-owned-proxy-server-or-how-to-use-google-analytics-gdpr-compliant-way) to use Google Analytics in a GDPR-compliant way. Set a budget. Based on your needs and budget possibilities, choose how much you spend on tracking. Some platforms offer a free trial or even a free plan. Stape offers a [free plan](https://stape.io/) to explore the platform's benefits for your business. With Stape, you do not need any technical background, and it takes around 5 minutes to deploy a server container. Develop a tracking plan to maximize server-side tracking in the context of paid campaign attribution with your chosen tool. Outline the channels, touchpoints, and events that you want to track. Make tracking consistent across different channels. Your data could be incomplete or inconsistent if you do not do it. Integrate and combine the data you collect in a single analytics platform. This will give you a comprehensive picture of how customers interact with your business and analyze data in detail. Visualize the data in simple dashboards or reports, especially high-volume assets. Massive amounts of server-side tracking data can be overwhelming without visualization. With it, though, it is easy to see trends, the most effective channels, marketing tactics, and failed attempts. Monitor your tracking continuously to tune and tweak your paid campaign strategy when things aren’t going well. Final thoughts Regarding attribution tracking of paid campaigns, server-side tracking technology offers a lot. With server-side tracking, you can collect more data about the performance of your campaign than client-side tracking could ever provide. Server-side tracking helps you bypass adblockers and other limitations on the client side, giving you a clear, uninterrupted picture of how customers interact with your business in general and a given campaign in particular. Server-side tracking can give you more control over the data you collect and help you meet all the data privacy regulations you fall under. Moreover, it can help you see the blind spots client-side tracking inevitably has. This way, you can improve your campaigns, build better attribution models, and get better business results. If you are new to server-side tracking, consider a free plan from Stape to get started within minutes. No tech skills are required! If you are a fast-scaling business looking for high-volume data procession or an agency looking for partnership opportunities, we are happy to help, too! [Contact our team of experts](https://help.stape.io/hc/en-us), and let’s make server-side tracking fun and effective together. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # How to set up Piwik Pro Tag using server Google Tag Manager Source: https://stape.io/blog/how-to-set-up-piwik-pro-tag-using-server-google-tag-manager Do you use Piwik Pro and want to benefit from it on server GTM? Learn how to integrate Piwik Pro into your server container using the Stape tag in 6 easy steps. Over the last time, Google Analytics 4 alternatives have gained popularity. Among them is Piwik Pro, which helps effectively track data, analyze campaign performance, and make data-driven decisions. Besides, people choose it because of its high tool integration ability and data privacy. However, setting up tools like Piwik Pro on server containers may seem challenging. With Piwik Pro Tag from Stape, you can do it easily in [6 simple steps.](https://stape.io/blog/how-to-set-up-piwik-pro-tag-using-server-google-tag-manager#how-to-set-up-piwik-pro-tag-for-server-gtm) Why choose Piwik Pro Tag for server-side tracking? Server-side tracking with Piwik Pro Tag brings many crucial benefits for a data-driven approach for your business here are some of them. Higher data accuracy Unlike client-side tracking, server-side tracking is less vulnerable to different [ad blockers](https://stape.io/blog/bypass-adblock-detection) and [browser limitations](https://stape.io/blog/third-party-cookies), making gathering data about website visitors' behavior impossible. Server-side tracking uses first-party cookies to help eliminate these restrictions. That’s a crucial point for analytics tools such as [Piwik Pro](https://piwik.pro/). Accurate data helps to make better business decisions. Enhanced data security With server-side tracking, you can fully control what data is gathered from your website visitors and comes to the Piwik Pro interface. JavaScript code used for client-side tracking can be tricky and collect more data than required. Later, it can become problematic as it may harm data protection laws (such as [GDPR](https://stape.io/blog/server-side-tracking-gdpr)). Faster page load Setting up analytics tools like Piwik Pro on client-side tracking requires adding JavaScript code to each page on your website. These codes can significantly decrease load speed. Evidence shows that switching to server-side tracking can[increase load speed up to 72%.](https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking) These are just a few of the most important benefits you get from server-side tracking. Check out a blog post on the [benefits of server-side tracking](https://stape.io/blog/benefits-server-side-tagging) to see the full list. How to set up Piwik Pro Tag for server GTM 1. [Set up a server GTM container on Stape.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Download the [Piwik Pro Tag from GitHub](https://github.com/stape-io/piwik-pro-tag) or choose easier way - add [Piwik Pro Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/piwik-pro-tag) from the Template Gallery. 3. Go to your server Google Tag Manager container → Templates → “New”. ![How to set up Piwik Pro Tag using server Google Tag Manager](https://cdn.stape.io/i/668e7955d9b3e629024935.png) 4. Click on the three dots in the upper right corner → Import and upload Piwik Pro Tag you downloaded from GitHub. In case, you added template from gallery click New → choose Piwik Pro Tag. Click "Save". ![How to set up Piwik Pro Tag using server Google Tag Manager](https://cdn.stape.io/i/668e79ccc6977898930423.png) 5. Now, you can configure the Piwik Pro Tag in the “Tag” section. Here, you can set up all the necessary parameters. The tag gives a choice between Inherit from client and Custom event set up. [Inherit from client](https://stape.io/blog/how-to-set-up-piwik-pro-tag-using-server-google-tag-manager#inherit-from-client-event-set-up) - the tag will autonomously interpret event data and assign corresponding information. [Custom](https://stape.io/blog/how-to-set-up-piwik-pro-tag-using-server-google-tag-manager#custom-event-set-up) - with this option, you can track page views or create custom event tracking. “Inherit from client” event set up With this method, you see the following fields that need to be filled: Tracking URL - enter here the tracking HTTP API endpoint (e.g. [https://your-piwikpro-domain.example/piwikpro.php](https://your-piwikpro-domain.example/piwikpro.php)) Site ID - that’s the ID of the site you want to track data for. You can find it in the Piwik Pro account → Menu → Administration → Sites & apps → on the left, select the website you want to get an ID of. Auth Token - it is required to set up the correct IP address. You can find it in the Piwik Pro account → Administration → click API in the left menu. Below, you can check boxes: Enable Ecommerce Tracking - if you click on this box, the tag will assign ecommerce data. Use Optimistic Scenario - with this, the tag will invoke gtmOnSuccess() immediately, without awaiting a response from the API. ![Inherit](https://cdn.stape.io/i/668e7b69e4891298448065.png) Then, you will see the following categories: Event Parameters - list all the parameters you want to override. Request Headers - here, you can add header names and values to the request. Long Settings - choose whether the tag always logs to the console, logs during debug mode or doesn’t log at all. Advanced Settings - section to add additional tag metadata to the event when the tag will fire. ![Event parameters](https://cdn.stape.io/i/668e7bdcc32c7791991781.png) “Custom” event set up Custom option includes all the fields as Inherit from client method, but with Custom, you can personalize settings and install “Page View” or “Event” tracking. With “Event”, you have the option to add an Event Category, Event Action, and Event Name to help categorize the data in the analytics tool. ![Piwik Tag Custom](https://cdn.stape.io/i/668e8be1e32a1560532740.png) 6. After configuring tag, add trigger and test if everything works as usual via GTM Preview and Debug mode. You can also check if the event is being tracked in Piwik Pro account - go to Menu → Analytics → Settings and in the left you will see Tracker debugger. We have an extensive guide on [how to debug and monitor server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) in our blog for your convenience. Conclusion Piwik Pro Tag for server container is a powerful solution for integrating Piwik Pro and benefiting from this analytical tool. The installation is quick and easy, and in just 10 minutes, you can use all the benefits of Piwik Pro Tag for server-side tracking. If you have any issues with tag installation, feel free to contact [Stape support](https://help.stape.io/hc/en-us). Need help from the experts? Don't worry, we've got you covered! Click on Get assistance and we will send you a free quote. --- # How to set up Enhanced Conversions for Google Ads and GA4 Source: https://stape.io/blog/ga4-and-google-ads-enhanced-conversions-tracking-setup-guide Discover the Enhanced Conversions in Google Analytics 4 and Google Ads, how to set them up, usage tips, benefits, and answers to common questions. Accurate conversion tracking is crucial for optimizing campaigns and maximizing ROI in digital marketing. Google Analytics' Enhanced Conversions and Google Ads now offer advanced tracking, delivering deeper insights and more precise data on user behavior. In this article, we dive deep into the process of setup for [server-side GA4](https://stape.io/stape-gateway) and Google Ads, including tips and the latest updates from Google. Introduction to Google Ads' Enhanced Conversions Imagine a tool that can significantly improve the accuracy of your conversion measurement and unlock more effective bidding strategies. That's exactly what Google Ads' Enhanced Conversions do. By supplementing your existing conversion tags with hashed first-party customer data, Enhanced Conversions provide a more complete and precise picture of your [marketing performance](https://stape.io/blog/increase-marketing-roi). Various reliable methods, including the Google tag, Enhanced Conversions in Google Tag Manager, or [Google Ads Offline Conversions API](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm), can be used to set up the integration. By leveraging these tools, you can be sure that you collect accurate conversion data. Unlike traditional tracking methods, which may miss conversions due to browser restrictions or privacy settings, GA4 Enhanced Conversions use [first-party data](https://stape.io/blog/first-party-data) to capture every interaction. Enhanced Conversions in GA4 capture first-party customer data like emails and phone numbers, which are then hashed and sent to Google. How GA4 Enhanced Conversions work For example, a user clicks on your ad, visits your site, and provides their email address. Even if they don't complete a purchase immediately but do so later, the hashed email address provided during the order confirmation allows Google to link the conversion back to the original ad click. It's also effective for Enhanced Conversion in Google Ads when a user interacts across different devices; Google uses identifiers like phone numbers to link these interactions. Benefits of GA4 Enhanced Conversions First-party data focus. The collection of first-party data (like email addresses, phone numbers, etc.) provided by users on your site. This data is encrypted and sent to GA4, ensuring compliance with privacy laws. You don't have to depend on third-party cookies when using Google Analytics' Enhanced Conversions. Improved accuracy. It allows GA4 Enhanced Conversions to match interactions with Google accounts for precise attribution., thereby enabling more precise conversion attribution. Cross-device tracking. With the help of Google accounts, the Enhanced Conversion in GA4 setup understands conversions across different device sessions. Unified ecosystem. While Enhanced Conversions originated in Google Ads, their integration into GA4 signifies a more unified and comprehensive approach to tracking conversions across Google's platforms. This integration allows for a seamless flow of conversion data between GA4 and Google Ads. Use cases of Enhanced Conversions Note:: Let's discuss how Google Ads' Enhanced Conversion logic applies to different campaigns: Lead generation. Enhanced Conversions in Google Ads track form submissions more accurately, ensuring that all potential customer interactions are captured, https://stape.io/blog/third-party-cookies[even if users have opted out of third-party cookies.](https://stape.io/blog/third-party-cookies) https://stape.io/blog/third-party-cookieseCommerce campaigns. You can track purchases by linking online and offline data, giving a complete view of the customer journey from initial visit to final sale. Hotel campaigns. Use Google Ads' Enhanced Conversion data to see which channels drive the most reservations and optimize your strategies accordingly. Take these campaigns to improve tracking by leveraging first-party data through Google's Enhanced Conversions API. How to set up Enhanced Conversions in Google Analytics 4 1. Open your GA4 property and on the left click on Admin. Go to Data Streams. ![Data Streams](https://cdn.stape.io/i/67ed026b48f1b460821024.png) 2. Choose your web data stream and scroll down to Google tag. Then click on Configure tag settings. ![Configure tag settings](https://cdn.stape.io/i/67ed028689915777034845.png) 3. Scroll down to Allow user-provided data capabilities to begin your Enhanced Conversion GA4 activation. ![How to set up enhanced conversions in Google Analytics 4](https://cdn.stape.io/i/67ed02ab4f4ed116278307.png) 4. Toggle on the Automatically detect user-provided data. 5. Select your preferred method for setting up user-provided data collection in Tag Manager: Automatic collection: Google Analytics scans your web pages for email address patterns, excluding phone numbers and addresses. To enhance this feature, we recommend supplementing it with the following options. Learn more here: [Google Analytics Support.](https://support.google.com/analytics/answer/14179632) Manual configuration: choose the types of user-provided data you want to collect, like email addresses or phone numbers. For each data type, specify how you want to identify it on the page—either using a CSS selector or a global JavaScript variable. This method offers more precision than automatic detection but is less reliable than adding a code snippet to your website. If you frequently update your website's code, especially the formatting or CSS selectors on the collection page, consider adding a code snippet for better reliability. [Learn more about this option here.](https://support.google.com/analytics/answer/14169614) Code: insert JavaScript code into your web pages to collect email addresses, phone numbers, names, and addresses. Afterward, configure the user_data parameter for each event on the page. [Learn more about this option here.](https://support.google.com/analytics/answer/14171598?hl=en) Updates in Google Ads’ Enhanced Conversions Google Ads uses third-party cookies but they are not reliable. So, they made your first-party data work harder. In 2025, Google rolled out several updates to make sure your tracking stays accurate and your bidding stays smart. Here is the latest on Google Ads Enhanced Conversions: [GA4 native "user-provided data" infrastructure](https://support.google.com/analytics/answer/9164320?hl=en). Google launched a new infrastructure for User-Provided Data (UPD) within GA4. You can now activate GA4 Enhanced Conversions directly in the GA4 Admin panel under "Data Streams." This setup improves the accuracy of Google Analytics Enhanced Conversions by hashing data locally before it ever reaches Google's servers. [Launch of Google Ads Data Manager](https://support.google.com/google-ads/answer/15707550?hl=en). Introduced in 2024 and fully scaled in 2025, the Google Ads Data Manager became the primary hub for Google Enhanced Conversions API setups. It allows you to connect CRMs like Salesforce or HubSpot directly to Google Ads to manage Enhanced Conversions without writing complex custom code. [Sunset of hotel commission bidding](https://support.google.com/google-ads/answer/14280291?hl=en). As of February 20, 2025, Google officially sunset commission-based bid strategies for hotel ads. Now, travel partners must use Enhanced Conversion Google Ads signals to fuel AI-powered bidding (Target ROAS), making first-party data the only way to maintain visibility in the travel sector. [Advanced Diagnostics and Match Rate reporting](https://support.google.com/google-ads/answer/11954870?hl=en). Google upgraded its Diagnostics tab within the Conversions menu. It now provides specific alerts for Enhanced Conversions Google Tag Manager setups, highlighting issues like "Low Match Rates" or "Missing User Data Parameters." This was important to validate that email or phone variables are being captured correctly. [AI Max & the "Power Pack" era](https://www.wordstream.com/blog/2025-google-ads-updates). At Google Marketing Live 2025, Google introduced the "Power Pack" (Performance Max + Demand Gen + AI Max). These campaigns rely heavily on Google Ads Enhanced Conversion data to power "High Value Mode," which focuses bidding on users most likely to become repeat customers. We adore seeing these updates because they move the power away from unpredictable browsers and back into your hands. By using first-party data and server-side logic, you aren't just "fixing" your tracking – you're assuring the long-term viability of your entire marketing strategy. It's a cleaner, more secure, and much more reliable way to prove your ROI. How to set up Enhanced Conversions in Google Ads 1. Enable Enhanced Conversions in Google Ads. Log in to your Google Ads account, navigate to Tools & Settings → Conversions. If you aren't sure how to turn on Enhanced Conversions in Google Ads, simply check the Turn on Enhanced Conversions box in the settings. 2. Configure Enhanced Conversions Google Tag Manager variables in web GTM and add it to GA4 tag settings. In web GTM, create a Data Layer Variable to capture user data (such as email, phone number, and address). Then, create a User-Provided Data Variable and associate it with the captured data​. ![How to set up Enhanced Conversions in Google Analytics 4](https://cdn.stape.io/i/67ed02d09060d437121880.png) Configure the User-Provided Data variable in web GTM and add it to GA4 tag settings. Make sure the variables are set to send user_data, as shown in the screenshot below. ![Variables settings](https://cdn.stape.io/i/6852ad9db6615317525536.png) 3. Set up a Conversion Tracking tag. How to set up Enhanced Conversions in Google Ads properly? In the GTM server container, create a new Google Ads Conversion Tracking tag. You won't find the Google Ads Conversion Tracking tag in the Community Template Gallery because it is a native, built-in tag provided directly by Google. To access the tag for your Google Ads Enhanced Conversions setup, follow the steps below. 3.1. Open your sGTM container. 3.2. Go to Tags ➝ New. 3.3. Click on Tag Configuration. 3.4. You will see a list of Featured or Google tags at the top. Select Google Ads Conversion Tracking. ![Google Ads Conversion Tracking tag form to fill out](https://cdn.stape.io/i/695e58b07dd07328554176.png) 3.5. Fill out the tag fields. Here is a step-by-step guide on how to fill in the fields for a professional, Enhanced Conversions server-side setup: Conversion ID: input the unique ID from your Google Ads conversion action. Conversion Label: enter the specific label associated with your conversion action. Conversion Value: either enter a fixed amount or select a variable (like {{Event Data: value}}) to send the dynamic purchase amount. Transaction ID: map this to your unique order ID variable (e.g., {{Event Data: transaction_id}}) to prevent duplicate conversions. Currency Code: input your currency (e.g., USD or EUR) or use a variable. Provide User Data: in sGTM, this is a major "nerd" win - the tag automatically parses user data, like hashed emails and phone numbers, from the incoming GA4 request if you have configured the user_data parameter in your web container. You don't need to manually map every field here unless you have a custom setup. Enable Restricted Data Processing (RDP): set this to true if you need to comply with specific state laws like CCPA to limit how Google uses the data. Consent Settings: ensure the tag honors Consent Mode. For users in the EEA, the tag should only fire if ad_user_data and ad_storage are granted. 3.6. Make sure Enable Conversion Linking is set to true. It relies on the Conversion Linker tag to maintain the GCLID (Google Click ID) across sessions. 3.7. Trigger your tag. Select the specific event that should count as a conversion, such as a purchase or generate_lead event received from your GA4 web tag. Verifying Enhanced Conversions server-side and GA4 data Once you have set up Enhanced Conversions, you must verify that they work correctly. To see if you've correctly figured out how to turn on Enhanced Conversions in Google Ads, check your conversion data in the Google Ads Status column. To optimize your Enhanced Conversions, use the data to identify areas for improvement in your conversion tracking. Adjust your setup as needed. In case you need to adjust the conversion data after it occurred (due to cancellation, for example), check the [Google Ads Conversion Adjustments tag](https://stape.io/blog/google-ads-conversion-adjustment) developed by Stape. What is Protected Audience API The Protected Audiences API introduces a new method of audience targeting and data protection. It ensures that audience targeting is not only effective but also compliant with the increasing global data privacy regulations. Google Ads' Enhanced Conversions is a part of Google's broader initiative to roll out the [Protected Audience API](https://developers.google.com/privacy-sandbox/private-advertising/protected-audience). Key features: Browsers can store interest groups, which are categories of users based on their interests. This data is stored directly in the user's browser, rather than on external servers, enhancing privacy. Browsers can conduct on-device auctions. This means that the decision about which ads to display is made locally on the user’s device, based on the stored interest groups, without needing to track the user’s behavior across different websites. The API supports a form of ad rendering that occurs in a controlled environment known as Fenced Frames. This approach isolates the ad from the rest of the webpage content, further ensuring user privacy and preventing any potential data leakage. Retrieval of real-time information. This can be used by both advertisers and publishers for various purposes, such as real-time budget calculation or ensuring policy compliance. Browsers can remember which ad a user is interested in, based on their past web activity, without the need for cross-site tracking or reliance on third-party cookies. How the Protected Audience API can be used For example, a user visits an online clothing store and shows interest in a particular style of jackets but doesn't make a purchase. Later, when the user browses the internet, the Protected Audience API can enable the browser to display ads from that clothing store, specifically highlighting jackets or related items, without relying on third-party cookies. Or here’s another use case: a user researches flights and hotels in a specific destination but doesn't book immediately. The Protected Audience API could later facilitate the display of ads for travel deals or hotel offers in that destination while the user is browsing other websites. This approach would be based on the user's demonstrated interest but done in a way that respects their privacy and avoids cross-site tracking. Basically, it works like this: User interacts with the site that wants to advertise its products. Browser joins an interest group. User visits other sites that display ads. Ad auction is run on the user's device. The most desirable ad based on seller code is chosen. Winning ad is displayed. The results about the auction outcome are reported. And if you're looking for specific API methods and parameters: Buyers guide for [joinAdInterestGroup() and generateBid()](https://developers.google.com/privacy-sandbox/relevance/protected-audience-api/interest-groups). Seller's guide for the Protected Audience API [runAdAuction()](https://developers.google.com/privacy-sandbox/relevance/protected-audience-api/ad-auction). Buyers guide to [reportResult()](https://developers.google.com/privacy-sandbox/relevance/protected-audience-api/reports). [Troubleshoot the Protected Audience API](https://developers.google.com/privacy-sandbox/relevance/protected-audience-api/troubleshoot). FAQs about Enhanced Conversion tracking 1. How to check if Enhanced Conversion is being fired correctly on the server side? Because on the client side, it's necessary to check for the em parameter. You may check the event data tab in the server container preview - you should see your user data there. It will be parsed by the Google tags automatically. You may also check an outgoing hit that is sent from the sGTM and you should see user data there as well, but you should expect it to be hashed already. 2. Will an Enhanced Conversion error appear for "Add to Cart" conversions in Google Ads when new users add items to their cart without logging in? Yes, there will be an error if you do not send any user data with this event. So if you want to have as clean dashboard as possible - enable Enhanced Conversions only for events where you always have user data, like purchase, lead etc. 3. Is sharing user data directly in the Data Layer GDPR compliant? Doesn't it need to be hashed? User data is hashed when sent to Google. Data Layer is an on-site object and is not subject to regulations directly. Conclusion Enhanced Conversions tracking in Google Analytics and Google Ads represents a significant advancement in digital marketing. Precise data will help you optimize your campaigns, achieve higher ROI, and stay competitive. So, mastering Google Analytics' Enhanced Conversions and Google Ads integration can become your next big win. We've provided an overview of Enhanced Conversions, explored various use cases across different campaign types, and offered step-by-step guides for setting up Enhanced Conversions in both Google Analytics 4 and Google Ads. We hope you find this article helpful. If you need any help, [don't hesitate to contact us](https://stapehelp.zendesk.com/hc/en-us/requests/new). Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Why is Google Tag Manager preview mode not working? Source: https://stape.io/blog/why-is-google-tag-manager-preview-mode-not-working Discover why Google Tag Manager Preview Mode isn't working and find solutions. Learn the reasons and how to check if GTM is functioning correctly in our guide. One of Google Tag Manager's standout features is its Preview Mode. It allows users to test and debug tags before deploying changes to their website. If you're facing problems with GTM Preview Mode not functioning correctly, you're not alone! In this article, we'll delve into common causes for GTM Preview Mode failures and offer practical solutions to get it working. Get a clear GTM preview to easily read the tags and requests thanks to [Stape GTM Helper](https://stape.io/solutions/stape-gtm-helper?cta=blog_article) made specifically for agencies and Google Tag Manager experts with large containers packed with tags. Google Tag Manager Preview Mode [GTM’s Preview Mode](https://stape.io/blog/gtm-preview-mode-and-debugging) offers several powerful features for testing and debugging tags before deploying them to a live environment. Here are some of the key things you can do with GTM Preview Mode: Verify that your tags are firing as expected on specific pages or events. Resolve any configuration issues with your tags, triggers, and variables. See the order in which tags are fired and diagnose any sequencing issues. Ensure that your tags work correctly across different browsers and devices. Get immediate feedback on changes made to your tags, allowing for quicker iterations and improvements. All you have to do is to: Enable the Preview Mode in GTM. Visit your website, and the GTM Debug Panel should appear at the bottom of the page. Verify that your tags are firing as expected, and check for any errors or issues. ![Preview Mode in GTM](https://cdn.stape.io/i/667bf8b51fd2c498716484.png) ![Preview Mode in GTM](https://cdn.stape.io/i/667bf8bdabb2a524889200.png) In some cases you are not able to view Preview mode in Google Tag manager. Let’s discuss the reasons and solutions together. We created [Stape GTM Helper](https://stape.io/blog/stape-chrome-extension), a Chrome extension designed to optimize the GTM preview. With it, managing Google Tag Manager becomes faster and more intuitive. №1. Your browser does not accept 3rd party cookies This issue often affects a small percentage of Chrome and Safari users, where strict privacy settings block third-party cookies. And this prevents GTM Preview Mode from working correctly. Solution. Adjust your browser settings to allow third-party cookies. Here’s how you can do it for Chrome and Safari: For Chrome: Open Chrome and click on the three-dot menu in the upper-right corner. Select "Settings" and then "Privacy and security." Click on "Cookies and other site data." Choose "Allow all cookies" or "Block third-party cookies in Incognito." Alternatively, add an exception for GTM by clicking "Sites that can always use cookies" and entering the GTM domain. ![Sites that can always use cookies](https://cdn.stape.io/i/667bf90863507424304497.png) For Safari: Open Safari and go to "Preferences" from the Safari menu. Click on the "Privacy" tab. Uncheck the option "Prevent cross-site tracking." Close the Preferences window to save the changes. ![Sites that can always use cookies - mac](https://cdn.stape.io/i/667bf936a5e9d868475054.png) №2. Unpublished container + GTM snippet not added to website code When you create or make changes to a container in GTM, those changes are not automatically applied to your live environment. Instead, they remain in a draft state until you explicitly publish them. Solution. Publish the container: click on the “Submit” button located in the upper-right corner of the GTM interface. ![publish GTM container](https://cdn.stape.io/i/667bf9650d3c2131961223.gif) Check GTM snippet is added: With [Tag Assistant](https://chromewebstore.google.com/detail/deprecated-tag-assistant/kejbdjndbnbjgmefkgdddjlbokphdefk?hl=en) extension. In the website's source code. Click Ctrl + U (Mac: Cmd +Option + U) in your browser and look for the GTM container code there. If is is not added: Log into GTM and find the container ID. Add the GTM container code snippet to your website’s and sections. Ensure the code is correctly placed and not commented out. №3. Your browser is blocking pop-ups and redirects Many modern browsers have built-in security features that block pop ups and redirects to protect users from unwanted content and potential security risks. When you click on the Preview button, a new tab should appear. GTM Preview Mode may not be able to load this essential interface. Solution. Adjust your browser settings to allow pop-ups and redirects for GTM. Usually, you just have to click Settings → Privacy and security → Pop-ups and redirects → Allow to send pop-ups and use redirects. №4. Adblockers and other browser extensions can block GTM Preview Mode Adblockers and privacy-focused extensions aim to improve user experience by blocking advertisements, trackers, and other scripts that can slow down browsing or infringe on privacy. However, these extensions may also block GTM scripts and the necessary components for Preview Mode. Solution. You may need to adjust or disable your adblockers and other extensions. Here’s how to do it: 1. Whitelist GTM and Your Website or temporarily disable extensions: Add your website and GTM domains (e.g., www.googletagmanager.com) to the whitelist to allow them to load and execute normally. Go to your browser’s extensions or add-ons page, find the relevant extensions, and toggle them off. 2. Use an Incognito/Private Window: Open an incognito or private browsing window, where extensions are usually disabled by default (unless explicitly allowed). Log into GTM and activate Preview Mode from this window to see if it resolves the issue. 3. Check Browser Developer Tools: Use the browser’s developer tools (F12 or right-click and select “Inspect”) to see if there are any blocked requests or errors related to GTM. This can help identify which extension or setting is causing the problem. 4. Clear Browser Cache and Cookies: Clear your browser cache and cookies and then reload your website and try activating Preview Mode again. Conclusion Google Tag Manager's Preview Mode is a great tool, and learning how to manage it can make your life much easier. Even if you run into problems, don't worry — most issues have straightforward solutions. By understanding the common causes and knowing how to fix them, you can confidently test and debug your tags. This way, you can be sure everything works perfectly before going live. If you have other problems in Google Tag Manager, let us know in the comment section. We're here to help! Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Cookieless retargeting: how to retarget in a cookieless world Source: https://stape.io/blog/cookieless-retargeting-how-to-retarget-in-a-cookieless-world Cookieless retargeting is the future of digital ads. Learn how to use first-party data, server-side tracking, and privacy-compliant strategies to stay ahead. Third-party cookie retargeting has been one of the key elements of advertising for a long time. In this blog post, we will dive into the limitations of traditional and the advantages of cookieless retargeting. We’ll also provide insights on how to develop future-proof retargeting strategies. How does traditional retargeting work? Retargeting is an online advertising approach that serves [targeted ads to users based on their former internet browsing history and behaviors](https://stape.io/blog/cookieless-targeting-how-does-it-work). Simply put, retargeting reminds your website visitors about you once more so they can return to your website and make a purchase. ![Online shopping cart abandonment rate](https://cdn.stape.io/i/667590381f812325607992.png) Online shopping cart abandonment rate According to Statista, between 50% and 98% of users abandon their carts and leave the vendor’s website for good. The industries that suffer the least are groceries and consumer electronics. However, the cart abandonment rate in these categories is still around 50%. When it comes to flights, luxury, and fashion, the cart abandonment rate can reach 98%. There are many forms of retargeting that can come to the rescue. Below are the most common ones: Website retargeting Let’s say you plan a long trip and thus need good new headphones for your child. You enter your search engine, type in your request, and look at your options. As you browse, cookies collect your behavioral data. These cookies are retargeting cookies. They store what you looked at, so ad platforms can show you related ads later and you see ads for kid headphones as you continue browsing the internet for other needs in the following days and weeks. This is the usual retargeting flow with third-party cookies. Another option is first-party cookies, meaning cookies set by your own website. In this case, the retargeting cookie is saved on your domain, and it works only after the user agrees to cookies. Social media retargeting As of 2024, the average daily social media usage of internet users worldwide was 143 minutes, which makes social media platforms an excellent place for retargeting. No wonder social media retargeting on Facebook and Instagram is a top priority for advertisers. Social media retargeting works by using data from a pixel installed on your website from the social platform you want to use to retarget. ![3 in 4 marketers use retargeting on Facebook and Instagram](https://cdn.stape.io/i/66759138b02d8751520151.png) 3 in 4 marketers use retargeting on Facebook and Instagram Based on a SharpSpring study, most marketers focus most of their retargeting campaigns on social platforms like Facebook and Instagram. Email retargeting When customers leave their email addresses and agree to receive marketing emails, they can get retargeting emails based on their behavior on the vendor’s website (signing up for a newsletter, viewing some products, abandoning a cart, listing favorite products, etc). All of the tracked information is used to display relevant ads in emails. Search engine retargeting Search engine retargeting is based on keyword searches and interests. It works through automation: certain display ads appear when a user searches for a keyword. With search retargeting, businesses gain more impressions and improve brand awareness on multiple platforms. Why is traditional retargeting not enough? Phasing out third-party cookies changes how most retargeting forms work, making some impossible to continue as if nothing happened. For this reason, advertisers need to implement cookieless retargeting techniques and polish them before the cookieless era takes over. This way, they can fine-tune new retargeting methods while still getting the most of the well-known ones. An increasing number of regulations regarding user data privacy and growing user concern regarding where their data goes and how it is used also impact traditional retargeting. More and more users choose to decline cookies, use tracking-prevention software, and block ads across their devices. Why consider retargeting without cookies now? Targeting and retargeting will be heavily impacted when [third-party cookie deprecation](https://stape.io/news/google-chrome-cookie-deprecation-starting-in-early-2025) is complete. For instance, any retargeting platform that relies on cookies will feel the change and will have to adapt its operation. The shift from cookie-driven to cookieless retargeting is a step that needs to be taken promptly. This step may seem daunting initially, but it’s rich with opportunities. Marketers can engage with their audience in privacy-compliant, precisely calculated, and accurate ads when they step on the cookieless path. Now is the best time to try different cookieless methods while you still have third-party cookies. Simply put, take your chance to get on top of the wave before it washes you overboard. If you start your shift to cookieless retargeting now, you can break your fall into the cookieless era. Even though a short-term negative impact is inevitable when the transition is over, some strategies can help streamline cookieless retargeting in the long term. For example, Google is preparing an alternative to its traditional advertising in the Privacy Sandbox Initiative. How do you retarget an audience without cookies? 1. Do first-party data retargeting Even though third-party data is slowly fading away, first-party data isn’t going anywhere. You can collect first-party data from your CM systems, analytics solutions, website, or app. First-party data comes directly from users’ interactions, purchase history, and preferences, so it can be used to recover successfully. It is the most direct user data available, which makes it the best asset in the cookieless era. When working with first-party data, comply with all the data privacy regulations. You can use your current email lists for personalized retargeting emails. You can segment your audience based on interactions with previous emails or your website. The effectiveness of retargeting emails depends on their precision and directness. A good example would be sending an abandoned cart reminder email to a logged-in user who didn’t go through with the purchase. 2. Implement server-side tracking One of the best ways to [use first-party data effectively](https://stape.io/blog/zero-party-vs-first-party-data) is to implement server-side tracking. Many platforms already support offline conversions, and you can [integrate offline conversion tracking by using server Google Tag Manager container](https://stape.io/blog/ways-of-offline-conversion-tracking#set-up-offline-conversion-with-server-google-tag-managerhttps://stape.io/blog/ways-of-offline-conversion-tracking#set-up-offline-conversion-with-server-google-tag-manager). This integration is possible because sGTM can directly communicate with marketing or analytics platforms API. Webhooks from your CRM or POS can be configured to send data to the server Google Tag Manager, which distributes the information about offline conversions for analytics and ad network use. When you set up offline conversions through sGTM, you get a cost-effective solution that works in real-time. When you set up server-side tracking and web tracking is blocked, you can still send user data (provided you have the needed user consent). This way, advertising platforms can still understand what kind of user is in front of them and effectively attribute conversions to the company. With server-side tracking, advertisers can understand their target audience better and gather a refined retargeting audience. With Stape, you can set up [Facebook offline conversions](https://stape.io/blog/facebook-offline-conversion-using-server-gtm), [Google Ads offline conversions](https://stape.io/solutions/google-ads-offline-conversion-tag), [Snapchat Conversions API](https://stape.io/blog/snapchat-conversion-api-using-server-google-tag-manager#about-snapchat-conversion-api), LinkedIn Conversion API, and [more](https://stape.io/solutions). 3. Try contextual solutions Contextual retargeting relies on non-personal user identification data to serve ads linked to the content of the websites users visit. This retargeting method is not dependent on cookies, as ads are shown based on the keywords and topics of the website page. When you place your ads in the proper context and they align with the content the user is currently engaging with, you can deliver relevant ads while still respecting user privacy. 4. Google Ads cookieless retargeting Even though Google Chrome is in the process of phasing out cookies, it will not stop offering user tracking, targeting, and retargeting. There definitely will be a privacy-compliant alternative. For now, here is what you can do: Engagement-based targeting: go after users who had meaningful interactions with your business, like those who liked your content, followed a link, viewed your video, etc. In Google Ads, you can create audiences based on user engagement metrics. Use these engagement-based audiences to create remarketing lists for search ad campaigns. This way, you can target users when they search for related keywords. Get the most of Google Signals: Google Signals is a standalone Google product integrated with Google Analytics 4, enabling cross-device tracking and remarketing. First, enable Google Signals and link Link Google Ads and Analytics to it. Next, you can use data from Google Signals to create audience segments in Google Analytics and import them into Google Ads. One suggested solution is Protected Audience API, a Privacy Sandbox technology designed to prevent third parties from tracking user browsing behavior across sites. This technology serves remarketing and custom audience use cases. The Protected Audience API enables browsers to conduct on-device auctions to choose relevant ads from websites the user has previously visited. 5. Facebook cookieless retargeting You can use features like Facebook Custom Audiences to retarget audiences based on social media interactions with your brand. You can also retarget the audience interacting with your brand on social media (likes, shares, comments) without cookies. 6. Predictive modeling Retargeting an audience without cookies relies heavily on predictive modeling. Instead of tracking individuals, businesses analyze patterns in customer behavior, purchase history, and engagement to predict who is most likely to convert. 7. Cohort-based targeting Cohort-based targeting groups users by shared interests instead of personal data. Tools like Google’s Privacy Sandbox (Topics API), contextual targeting platforms, and data clean rooms help brands reach relevant audiences while maintaining privacy. Top solutions for cookieless retargeting in the post-purchase journey Post-purchase starts after someone buys. It includes shipping updates, delivery, returns, support requests, and repeat orders. This stage is a good place for cookieless retargeting because you already have first-party data from the purchase, like an email, phone number, or customer ID. N.B.: this works only if the user agreed to data use and marketing. 1. Stop showing “buy now” ads to people who already bought This is the fastest win after a purchase. Add recent buyers to an exclusion list so they do not see acquisition ads again. Then your budget goes to new prospects, and your customers see messages that match where they are now. A simple rule to apply: exclude buyers for 7–30 days, based on your product cycle. 2. Build post-purchase audiences from your order data or CRM Create groups based on your users’ actions, not only cookies. Use your store system or CRM to segment clients by purchase date, product type, and order status. Then you can upload these customer lists to ad platforms to retarget with consent. Examples of post-purchase groups: Bought product A in the last 14 days. Order delivered, no review yet. Subscription renewal is coming. Requested a return. 3. Use email and SMS flows based on post-purchase actions Email and SMS do not depend on third-party cookies. They depend on consent and good timing. Tie each message to one moment, so it feels helpful. For example: After delivery: setup tips or a quick start guide. After 7–14 days: ask for a review. After a return request: next steps and support. 4. Change the message after purchase Post-purchase retargeting is not “buy again” on day one. Start with support and education, then move to accessories, upgrades, or refill offers. This keeps ads aligned with what the customer needs now. FAQs What are cookieless retargeting strategies for incomplete application forms? People start an application form and leave all the time. Cookieless retargeting means you bring them back without relying on third-party cookies. Here are the strategies that work best. 1) Use email or SMS reminders. Ask for an email or phone early in the form. If the person agrees to marketing, send a gentle reminder with a link to continue. This is the easiest cookieless retargeting method. 2) Retarget with customer lists on ad platforms. If you collected an email or phone number and the user agreed, you can upload that data to ad platforms and show ads to those people. 3) Show different messages based on where people stopped. Split the form into a few key steps, like step 1, step 2, and submit. Then match the message to that step. Example: if many people stop at “tell us more”, your ad can say what exactly you want the person to tell you. 4) Track “started” and “submitted” so you can exclude finished users. You don’t want to keep showing “finish your application” ads to people who have already submitted. Track “form started” and “form submitted” so you can target only the incomplete group. How can websites use Internet cookies to retarget you? Websites can use Internet cookies to retarget you by saving an ID in your browser and using that ID to recognize your browser later and show you ads. Here’s how it works: 1. You visit a website and accept cookies. 2. The website saves a cookie in your browser. That cookie contains an ID. 3. When you view a product or add to cart, the site connects that action to the cookie ID. 4. The site shares those actions with an ad platform. 5. Later, when you use another site or app that shows ads from the same platform, the platform reads the cookie ID and shows you ads based on what you did earlier. That’s how “I looked at shoes yesterday and now I see shoe ads” happens. How to create cookieless retargeting campaigns for abandoned cart applications? Start with email or SMS, because it does not need third-party cookies. Ask for an email early in checkout, and send a short reminder with a link back to the cart, but only if the person agreed to marketing. For ads, use customer lists. Upload emails or phone numbers (in hashed form) to your ad platform and show cart reminder ads to those people. Also add a “buyers” list so people stop seeing cart ads after they purchase. Keep your message simple: “Your cart is saved”, “Need help with checkout?”, “Shipping and returns info”, and one button to return to the cart. Conclusion The main point of cookie deprecation and data privacy regulations is to protect sensitive data from getting into the wrong hands. Since users are growingly concerned about how and what they are tracked online, the only right way for advertisers is to go with transparent, consent-based, and compliant retargeting. Though we can’t say making cookie deprecation painless is possible, there are still ways to make the shift easier. With the focus on first-party data and consent compliance, you can build retargeting strategies that meet the demands of cookieless times while helping you reach out to your audience effectively. Strategies like first-party data retargeting, email retargeting, contextual retargeting, social media cookieless retargeting, Google Ads cookieless retargeting, and Facebook cookieless retargeting can make the shift to cookieless advertising easier. Cookieless retargeting is a future-oriented advertising solution that helps deliver personalized advertisements while maintaining user privacy and ensuring compliance with evolving data regulations. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # 25% increase in measured Google Ads conversions, clearer reporting for budget decisions | Paper Planes Source: https://stape.io/blog/finnish-sustainability-leader-measures-25-percent-more-conversions-with-server-gtm Find out how Paper Planes helped Sulapac to get more conversions with the help of server Google Tag Manager and Stape. [Sulapac](https://www.sulapac.com), a pioneer in sustainable packaging solutions, partnered with the Finnish digital marketing agency, [Paper Planes](https://www.paperplanes.fi/en/), to optimize their digital marketing performance. Recognizing the need for more accurate data and improved campaign effectiveness, Paper Planes suggested implementing server-side tagging. This case study explores how this strategic move significantly boosted Sulapac's digital marketing metrics and overall performance. ![Sulapac, a pioneer in sustainable packaging solutions](https://cdn.stape.io/i/666ae499dbbe8628911721.png) The Challenge Sulapac's unique and innovative approach to reducing CO2 emissions and microplastic pollution from packaging has garnered significant attention and seen the company grow internationally. However, their digital marketing efforts, particularly on Google Ads and Meta Ads, were not performing at their full potential due to limitations in client-side tracking. Key issues included: Inaccurate conversion tracking due to browser-based privacy features and ad blockers. Inconsistent data reporting, leading to suboptimal budget allocation. Slow website load times impacting user experience and conversion rates. Data privacy concerns and the need to comply with GDPR regulations. The Solution To address these challenges, Paper Planes proposed a comprehensive server-side tagging setup. This solution aimed to improve data accuracy, enhance user experience, and ensure compliance with data protection regulations. The setup included: Server-Side Tagging via Google Tag Manager: Centralized data processing to improve accuracy and bypass browser restrictions. The setup was powered by Stapes Business-plan. Google Ads with Enhanced Conversions: Leveraged first-party data for more accurate conversion tracking. Meta Ads: Improved conversion tracking and measurement. Google Analytics 4: Enhanced data collection and reporting capabilities. LinkedIn Ads: Optimized tracking for B2B campaigns. ![Client-side and server-side tracking](https://cdn.stape.io/i/666ae537ea5c3510249360.png) Implementation The implementation process was carried out by Paper Planes’ expert team, ensuring seamless integration and minimal disruption to Sulapac's ongoing campaigns. Key steps included: Setting up a server-side Google Tag Manager container hosted on a secure server hosted in EU. Configuring tags for Google Ads, Meta Ads, Google Analytics 4, and LinkedIn Ads. Enabling Enhanced Conversions for Google Ads to utilize first-party data. Moving scripts from client-side to server-side, reducing the load on the user's browser. Ensuring all data transfers were secure and compliant with GDPR. Results The impact of the server-side tagging implementation was immediate and substantial. Over a period of 30 days, Sulapac experienced remarkable improvements in their digital marketing performance: 25% Increase in Measured Conversions on Google Ads: The enhanced tracking accuracy provided a clearer picture of campaign performance, enabling better budget allocation and optimization. 11% Increase in Measured Conversions on Meta Ads: Improved tracking capabilities allowed for more precise targeting and retargeting efforts. 0.3 Seconds Reduction in Load Speed: By moving scripts server-side, the website's load time for new visitors was significantly reduced, enhancing user experience and reducing bounce rates. Improved Data Security and GDPR Compliance: The centralized data processing ensured that only necessary data was transferred, maintaining high standards of data privacy and security. While scaling data collection, it's vital to stay compliant with evolving EU laws. You can read more about the [Digital Omnibus and its impact on data compliance](https://stape.io/blog/digital-omnibus-explanation). ![Paper Planes helped Sulapac to get more conversions with the help of server Google Tag Manager and Stape](https://cdn.stape.io/i/666ae59150700892237738.jpg) Conclusion The collaboration between Sulapac and Paper Planes demonstrates the transformative power of server-side tagging in digital marketing. By shifting to a more accurate and efficient tracking system, Sulapac was able to optimize their campaigns, improve user experience, and ensure data security. About Paper Planes Paper Planes is a leading digital marketing agency based in Finland, specializing in innovative solutions to enhance marketing performance and data accuracy for businesses worldwide. Here's their partner page on Stape: [https://stape.io/partner/paperplanes](https://stape.io/partner/paperplanes). Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Cookieless targeting: how does it work? Source: https://stape.io/blog/cookieless-targeting-how-does-it-work Cookieless targeting is a privacy-focused strategy that lets advertisers reach their audience without cookies, using methods like first-party data and ads. Digital advertising is constantly changing and evolving, trying to meet the needs of the market and the growing number of regulations and restrictions concerning user data privacy. The onset of cookie deprecation causes panic among advertisers and marketers, making them search for new ways of reaching out to their audience. Cookieless targeting is one of the ways in which advertisers can get through to their audience without cookies effectively. Here we will examine cookieless targeting and discuss why and how to get the best results with your ad campaigns. ⚠️UPDATE: Google announced that it will [no longer pursue its plans to phase out third-party cookies](https://privacysandbox.com/news/privacy-sandbox-update/). Instead, the company will introduce a new solution: a one-time prompt that allows users to set their preferences, which will apply across all Google browsing experiences. What are targeting cookies? Targeting cookies are small data files stored on a user's browser that track online behavior across websites. They help advertisers deliver personalized ads based on interests, browsing history, and interactions. What is cookieless targeting? Cookieless targeting is a process of delivering personalized advertisements to users without using browser cookies. It depends on different data sources and techniques that do not rely on cookies. Such targeting can identify target audiences while complying with regulations and maintaining user privacy. Cookieless targeting uses techniques and strategies such as first-party data utilization, contextual advertising, identity-based solutions, and device fingerprinting. In this post, we will examine each of them further. Why consider targeting without cookies? Cookies are still one of the whales online advertising stands on. With the help of cookies, advertisers can show consumers the most relevant ads, make their websites more effective and user-friendly, and measure the efficiency of their marketing and advertising efforts. In traditional targeting, cookies have long been a cornerstone that allowed advertisers to personalize ads based on user behavior. They enable tracking user activity across various websites and collect enough user data to create highly personalized advertising campaigns. Why is traditional cookie-based targeting no longer enough? There are several reasons why traditional targeting alone won’t get you far in 2024. Changes in privacy regulations, consumer privacy concerns, and technological changes call for new solutions. ![cookieless targeting solutions](https://cdn.stape.io/i/666a1609219c4603215667.png) Evolving data privacy regulations are the primary reason businesses need to rethink how they collect and use their customers' data. [Cookies fall under the GDPR's definition of personal data](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive#the-general-data-protection-regulation-gdpr-and-cookies) since they are used to identify users. The ePrivacy Directive and ePrivacy Regulation complement the GDPR to ensure user data privacy. You can read about these [regulations and their influence on marketing and advertising](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive) on our blog. Another aspect deriving from regulations and restrictions is consent fatigue. In plain words, users are fed up with cookie consent pop-ups they stumble upon every step of their online browsing. It leads to users ignoring or rejecting them more and more. Below you can see cookie consent rate stats for 2023, based on Ruler Analytics study. ![cookie consent rate](https://cdn.stape.io/i/666a11782589c953278190.png) The rise of mobile devices and mobile app usage poses many challenges for traditional targeting. When users switch between different devices, it’s hard for cookies to build a comprehensive picture of their behavior. Also, cookies are not very helpful when it comes to mobile apps. Mobile apps have other means of identifying users, like user IDs. Still, the biggest reason traditional targeting isn’t enough anymore is phasing out third-party cookies on Chrome. As already announced, third-party targeting cookies are going away with [Google's Chrome ending support for third-party cookies in the first quarter of 2025](https://stape.io/news/google-chrome-cookie-deprecation-starting-in-early-2025). The finalization of the process has been shifted further along the timeline a few times, but one thing is sure - it’s happening in the foreseeable future. The more complicated advertisers' and marketers' lives with cookies become, the more alternative solutions and technologies emerge to help them. [Server-side tracking is an excellent example of an effective tracking technology](https://stape.io/) that can help businesses thrive in the cookieless era without being vulnerable to browser-based blocking. First-party data and identity solutions are also getting increasingly used in targeting. For all the reasons mentioned above, traditional targeting effectiveness drops. Cookie data quality declines; inconsistency leads to less effective targeting and personalization efforts. Data fragmentation caused by cookie blocking and limitations also reduces the accuracy and comprehensiveness of user profiles. How to target audience without cookies You may wonder how cookieless targeting works. It is fair to say that cookieless targeting is synonymous with contextual targeting. This means that this type of targeting isn’t a novel concept; it’s been around for about a decade. Yet, like everything under the sun, it’s constantly evolving to adapt to the environment. Contextual targeting was outmaneuvered by cookie-based behavioral targeting. Contextual targeting is rising again, with its potential bigger than ever. Nowadays, cookieless targeting is powered by machine learning and artificial intelligence, and it can target users accurately based on website metadata, page content, and keywords. To target an audience without cookies, we recommend you focus on the following strategies: Prioritize first-party data When it comes to cookieless targeting, [first-party data is an invaluable asset](https://stape.io/blog/first-party-data). This type of data comes directly from the users, is shared willingly by them, and gives you the most precise idea about your target audience. First-party data comes directly from the users’ interaction with your website, app, or other owned channels. It is the most direct user data you can get, which makes it the best asset for fine-tuning targeting. Such data is vital for understanding how customers interact with your business. Unlike third-party data, which is unreliable and sometimes compromised in accuracy, first-party data is accurate and reliable and is always there for your business to use. First-party data includes user behaviors, preferences, and purchase history. It can help you segment your audience precisely. It’s also relatively easy to gather and handle such data in a way compatible with data privacy regulations and directives you must obey. How to collect [first-party data and use it](https://stape.io/blog/zero-first-third-party-data-explained-for-a-cookieless-world#strategies-for-collecting-and-using-1-st-party-data-best-practices): Use [first-party user data with the help of sGTM](https://stape.io/blog/cookieless-tracking-ga4). Encourage your customers to create accounts. Ask for feedback and study it. Make polls, surveys, quizzes, and questionnaires. Use the power of CRM systems. Implement server-side tracking One of the best ways to use first-party data effectively is to implement server-side tracking. Many platforms already support offline conversions, and [you can integrate offline conversion tracking by using server Google Tag Manager container](https://stape.io/blog/ways-of-offline-conversion-tracking#set-up-offline-conversion-with-server-google-tag-managerhttps://stape.io/blog/ways-of-offline-conversion-tracking#set-up-offline-conversion-with-server-google-tag-manager). This integration is possible because sGTM can directly communicate with marketing or analytics platforms API. Webhooks from your CRM or POS can be configured to send data to server Google Tag Manager, which distributes the information about offline conversions for analytics and ad network use. When you set up offline conversions through sGTM, you get a cost-effective solution that works in real-time. When you set up server-side tracking, and web tracking is blocked, you can still send user data (provided you have the needed consent). Due to this, advertising platforms can still understand what kind of user is in front of them and attribute conversions to the company effectively. With server-side tracking, advertisers can understand their target audience better and gather a refined remarketing audience. With Stape, you can set up [Facebook offline conversions](https://stape.io/blog/facebook-offline-conversion-using-server-gtm), [Google Ads offline conversions server side](https://stape.io/solutions/google-ads-offline-conversion-tag), [Snapchat Conversions API](https://stape.io/blog/snapchat-conversion-api-using-server-google-tag-manager#about-snapchat-conversion-api), [LinkedIn Conversion API](https://stape.io/blog/linkedin-conversion-api-tag-for-server-google-tag-manager) and [more](https://stape.io/solutions). Emphasize contextual advertising As mentioned above, contextual advertising targets ads based on the webpage context rather than user data or tracking cookies. With the help of contextual advertising methods, you can deliver targeted and relevant advertisements to the users while staying privacy-compliant. To excel in contextual advertising, you need to shift your perspective. The point of contextual marketing is not to lead people to a destination you wish to get them to but rather to deliver your compelling message at the right time and place. To the right user, of course. For instance, if a user reads a blog post about cookieless advertising, it is logical to show them an ad about a [cookieless tracking solution](https://stape.io/blog/cookieless-advertising-strategies-and-solutions). Below, you will find a classic example of contextual advertising. A user looking for a particular product on Google will instantly see ads offering more or less precisely what they are looking for. ![contextual ad example](https://cdn.stape.io/i/666a13d1ed335920292073.png) Contextual ads do not look intrusive while staying highly relevant. Compared to traditional cookie-based ads, contextual ads get more clicks and engagement. They also help build customer loyalty by catering to the user's needs and interests, which leads to better cost-effectiveness of such ads. While contextual ads have a lot of benefits, they also have some limitations. Here are just a few to keep in mind: User targeting is limited to the context of the page the ad is displayed on, so broader behavioral patterns are not noticed. If the ads are too similar to the page content, the users might ignore them. Competitor ads inevitably show up next to the relevant content at some point. Complex setup. Contextual advertising requires detailed analysis and management of content. Privacy issues. Users may find contextual ads invasive. Compliance issues. Legal restrictions on data use can limit the effectiveness of contextual ads. Implement identity-based solutions Instead of relying on cookies, you can use unique identifiers like email or phone numbers for targeting. Identity solutions allow advertisers to reach their target audience across devices, browsers, and platforms. An advanced identity-based solution allows building a detailed profile of consumers across all channels, profiles, and devices. This, again, leads to better-targeted ads. Below are two examples of popular and comprehensive identity solutions: Unified ID 2.0. This open-source framework uses hashed and encrypted email addresses to resolve identity across the advertising ecosystem. LiveRamp’s IdentityLink. It allows connecting first-party data to a universal identity graph. It makes people-based marketing possible across different channels. Get the most of device fingerprinting Device fingerprinting is a technique used in cookieless advertising to track and identify devices without relying on cookies. It collects various attributes from a user's device and browser to create a unique identifier, or "fingerprint." When a user goes to a given website, the site collects various data points from the user's device, like browser type and version, operating system and version, screen resolution, fonts, plugins and extensions, timezone, language, and hardware configurations. All the data collected is used to create a unique identifier (fingerprint) of the device. This identifier can recognize the same device across different sessions and websites. Since user data collected to create a fingerprint usually remains unchanged for a long time, it lets advertisers track user behavior and target ads without using traditional cookies effectively. There are some ethical and privacy considerations regarding device fingerprinting. Device fingerprinting is less evident to users than cookie tracking, so it raises some user concerns. Some privacy-oriented tools and browsers have already tried to reduce the effectiveness of fingerprinting. Benefits of cookieless targeting Cookieless targeting offers many benefits to advertisers, even though it can be challenging to understand initially. As the digital ecosphere evolves, it becomes clear that relying solely on cookieless targeting isn’t a safe choice. As they say, don't put all your eggs in one basket. Even though targeting cookies may work for you now, why miss out on all the opportunities cookieless targeting offers? Here are the main advantages: Enhanced privacy and compliance. Focusing on first-party data allows you to achieve much more control over how you gather, handle, and store user data. This makes it easier to comply with the applicable regulations. Another benefit of cookieless targeting is improved user experience. Consent fatigue is real, and so is users' aversion to staying on websites that load slowly due to overload with third-party tracking tools. With cookieless targeting, you remove the annoying pop-ups from the client’s eyes and help them get to the point they need faster. Ready for the cookieless future. Getting on the cookieless train is not a must now; it’s more of an option you can consider. However, as the traffic jams on the advertising highway get more intense, it often takes a new type of fuel to move forward. Using cookieless targeting could be just what you need to streamline your advertising before the cookieless era kicks in. Challenges of implementing cookieless targeting Naturally, embracing new ways of doing usual things requires some resource input and poses challenges. Regarding cookieless advertising, you need to balance effective targeting with user privacy. Users want to receive relevant ads, but they do not want to tolerate their privacy being violated. It’s challenging to keep up with all the privacy regulations, directives, and requirements. For this reason, we recommend seeking legal advice regarding handling personal user data. Take a look at the stats of global consumer perception of target advertisements and personalized content worldwide. ![user perception of targeeted ads](https://cdn.stape.io/i/666a15680b9bb483898983.png) Data source - Statista, as of November 2023 More than ever, advertisers need to be transparent about what user data they collect and how they store and handle it. User consent is also of the utmost importance. This presents a tricky task for advertisers and business owners: make data collection and processing consent easy, transparent, and non-intrusive. Lastly, switching to new tools and platforms requires some investment. Depending on your chosen solution, you might need to hire new team members, train existing ones, or pay for subscriptions or software licenses. Luckily, companies that believe in their product offer a free trial or plan that lets advertisers try it out to see what it can do for their business. [Stape also offers a free plan](https://stape.io/price)to explore the benefits of server-side tracking without any hidden costs. Final thoughts It all boils down to this: cookieless targeting is a future-oriented advertising solution that helps deliver personalized advertisements while maintaining user privacy and ensuring compliance with evolving data regulations. Advertisers can effectively reach their target audiences without relying on traditional cookies by using first-party data, contextual advertising, identity-based solutions, and device fingerprinting. Enhanced data privacy compliance, improved user experience, and readiness for the cookieless future make cookieless targeting a valuable strategy for modern advertising. Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Decline in Google Ads remarketing audiences Source: https://stape.io/blog/decline-in-google-ads-remarketing-audiences Discover why your Google Ads remarketing audience is shrinking and how to fix issues with consent settings, keywords, ad creatives, and tracking setup. We have recently encountered a significant issue while running a Display Remarketing Campaign targeting a GA4 audience. Despite successfully linking GA4 and the audience being visible in Google Ads, we noticed a substantial discrepancy in audience size between Google Ads and GA4—60 versus 300, respectively. The audience size in Google Ads has been declining. Initially, it grew from 0 to 70 in the first week but suddenly stood at just 54. This decline poses a problem as Google Ads requires a minimum of 100 audience members to run a Display Campaign. Why is the Google Ads audience significantly smaller than the GA4 audience, and why does its size keep decreasing? ![Decline in Google Ads Remarketing Audiences](https://cdn.stape.io/i/6666fe174c08e430919790.jpg) In this article, we will discuss the possible reasons behind the discrepancy and continuous decline in the Google Ads audience size compared to the GA4 audience. We will explore factors and provide solutions and best practices to address and mitigate these issues, ensuring your Display Remarketing Campaign can run effectively. How can remarketing campaigns affect CPC? Remarketing campaigns can significantly impact the cost-per-click (CPC) in various ways: Increased Relevance: remarketing targets users who have already shown interest in your products or services. These users are more likely to engage with your ads, leading to higher click-through rates (CTR). Higher CTR can improve your Quality Score in Google Ads, potentially lowering your CPC. Competitive Bidding: since remarketing audiences are highly valuable, advertisers might be willing to bid higher to reach these users. This can increase the CPC if multiple advertisers compete for the same audience. Ad Fatigue: if the same users see your ads too frequently, they might start ignoring them, leading to lower CTR and higher CPC. Proper frequency capping can help manage this issue. In order to get well-configured remarketing campaigns let's resolve the issue of a decline in Google Ads Remarketing Audiences. Top reasons behind a drop in Google Ads performance and what to do about it 1. Incorrectly configured consent settings A lot of our clients have noticed changes in their GAds performance after [Consent Mode V2](https://stape.io/blog/google-consent-mode-v2) became obligatory for implementation. ![Incorrectly configured consent settings.](https://cdn.stape.io/i/6666ffaa653ea830130720.jpg) If your users come from the EU, you may not be able to collect accurate data on user interactions, conversions, and other key performance indicators. Failing to obtain proper consent can lead to compliance issues with regulations like [GDPR](https://stape.io/blog/server-side-tracking-gdpr), CCPA, and others. So you need to ensure that your consent management platform is correctly configured and compliant with relevant regulations. Check our blog posts on setting up Consent Mode: [Consent mode in server Google Tag Manager](https://stape.io/blog/consent-mode-server-google-tag-manager) [Google Consent Mode V2](https://stape.io/blog/google-consent-mode-v2) [Server-side consent management with sGTM and Cookiebot](https://stape.io/blog/consent-mode-server-google-tag-manager) [The smart way to anonymize user data and use consent mode in Google Analytics 4 using GEO headers](https://stape.io/blog/how-to-anonymize-user-data-google-analytics-4) [Consent Settings for server GTM tags](https://stape.io/blog/consent-mode-server-google-tag-manager) 2. Keyword Issues Negative keywords are used to prevent your ads from showing on irrelevant search queries. However, if not managed correctly, they can conflict with your positive keywords, leading to a significant drop in ad impressions. For example, if you are selling "red running shoes" and have "running shoes" as a positive keyword but mistakenly add "red shoes" as a negative keyword, your ads won't appear for searches that include "red running shoes." Regularly review and update your negative keyword list to ensure there are no conflicts with your positive keywords. 3. Changes in Ad Copy, Creatives or Scheduling If you have a strong CTA like "Buy Now and Save 20%," but you change it to a less compelling "Check Our Products," you might see a drop in CTR and conversions because the new copy lacks urgency and a clear benefit. Regularly update and test different ad creatives to keep your ads fresh and engaging. Use high-quality, relevant images or videos that resonate with your target audience. By carefully managing changes in ad copy, creatives, and scheduling, you can maintain or improve your Google Ads performance and avoid potential drops in engagement and conversions. 4. Tracking setup issues If your Google Analytics or Google Tag Manager tracking code is not properly installed on your website, this may lead to: Sudden drop in reported conversions. Discrepancies between Google Ads and Google Analytics data. High bounce rates or low time on site metrics. Inconsistent or missing data in reporting dashboards. You have to regularly audit your tracking setup to ensure all codes and tags are correctly implemented and functioning. We have a comprehensive [guide to debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) in our blog, so that you can ensure that your Google Ads campaigns are accurately tracked and optimized, leading to better performance and more reliable data for decision-making. Conclusion Decline in Google Ads remarketing audiences can come from various factors, including changes in user behavior, privacy regulations, technical issues, or campaign settings, etc. If you’re experiencing a drop in your remarketing performance, our [agency](https://stape.io/care) is here to help you diagnose and resolve these issues. And if you haven't found the right solution yet, please describe your problem below in the comments section, and we'll provide personalized assistance to get your remarketing efforts back on track. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Unassigned and not set traffic source in GA4 Source: https://stape.io/blog/unassigned-and-not-set-traffic-source-in-ga4 Improve GA4 reporting accuracy and see how to identify and resolve Unassigned and not set traffic, including common causes like gtag initialization and timing. Unassigned traffic in GA4 can be a confusing issue for many website owners and marketers. Understanding why this happens and how to address it is crucial for accurate data analysis. In this article, we'll explore the causes of unassigned and not set traffic and provide practical solutions. By the end, you'll know how to ensure your traffic data is correctly attributed. What is unassigned traffic in Google Analytics (GA4) ![What is Unassigned traffic - Stape](https://cdn.stape.io/i/66f406717ba34824455395.png) What is Unassigned traffic - Stape Unassigned traffic in GA4 includes sessions or events that don’t align with any Default Channel Group, often due to non-standard UTM parameters or missing attribution data. To resolve this, standardize UTM usage and set up Custom Channel Grouping for better traffic classification. A proper setup ensures more accurate data attribution and reliable tracking. Understanding Google Analytics 4 traffic source determination and resolving unassigned sources GA4 determines the particular traffic source of session traffic using two parameters: first, the presence of UTM parameters in the URL at the start of the user session. If these are absent, it checks the referrer to determine the source of traffic to your site. If the referrer is also empty, then the traffic is categorized as Direct. A growing cause for Direct traffic spikes is traffic from AI browsers like Comet or Atlas. They mimic Chrome but strip referrer headers. You can find more in our [guide on how AI browsers impact data tracking](https://stape.io/blog/ai-browser-tracking). How GA4 uses UTM parameters When UTM parameters are present, Google Analytics 4 uses utm_source and utm_medium to determine which channel group to assign the traffic source to. If you don't have custom channel groups in GA4, the Default channel groups are used. You can find the official list of rules for values in utm_source and utm_medium to determine their respective groups here: [https://support.google.com/analytics/answer/9756891?hl=en](https://support.google.com/analytics/answer/9756891?hl=en). For example, if you use utm_source=facebook&utm_medium=paid in Facebook ads, this source will automatically be categorized as 'Paid Social' according to the standard rules. ![Paid Social category - Stape](https://cdn.stape.io/i/66f403ed445dd464181963.png) Paid Social category - Stape However, if you use something custom, such as utm_source=stape&utm_medium=sst, these values don't match any standard rules, so this session will fall into the "Unassigned" category. How to fix unassigned traffic sources 1. Ensure that the issue is indeed with non-standard values in the UTM parameters. To do this, you can switch your Traffic acquisition report to Session source/medium or add this as an additional column. ![Session source/medium - Stape](https://cdn.stape.io/i/66f403fc1c3c8780243827.png) Session source/medium - Stape 2. Check that your source/medium does not have a large number of (not set) values. If everything’s alright, you can see what actual sources and mediums are being used. 3. Go to Google Analytics 4 → Admin → Channel group. Add your new custom channel group that will correctly account for and distribute your UTM parameters into the necessary groups. We recommend not creating it from scratch (this will take much longer), but copying the Default channel group, renaming it, and adding the necessary source distribution rules. What does (not set) mean in GA4 source/medium traffic acquisition report In Google Analytics 4 (GA4), "(not set)" appears when GA4 lacks data for a specific dimension. This often happens due to tracking misconfigurations, missing parameters, or unclassified traffic sources. Common causes include improperly set UTM tags, multiple GA4 script initializations, or events firing before the configuration tag loads. Fixing these issues ensures more accurate reporting and attribution. ![(not set) in Source/Medium Traffic Acquisition Report](https://cdn.stape.io/i/66f4040a530a4215906413.png) (not set) in Source/Medium Traffic Acquisition Report Main reasons for (not set) in source/medium 1. Additional initialization of gtag from another source This is the most common reason for most users. This issue often becomes noticeable after switching to server-side tracking, although you might not have noticed it earlier. Symptom: Some GA4 events are sent to your server-side GTM container, while others are sent directly to google-analytics.com. Causes: In Google Tag Manager, you initialize gtag with the server_container_url parameter, but this setting is overwritten by another initialization done in the site code or through a plugin/integration. Since server-side tracking and web tracking in Google Analytics 4 use different cookies to determine the client id (‘_ga’ cookie is used for web events, FPID is used for server events), events sent by the same user through web and server will be considered by GA4 as events from different users, one of whom did not have a session_start event to determine the session source, resulting in such a session being (not set). How to check this: Open the network dev tool in your browser, activate the ‘preserve log’ option so you don't lose any events when switching between pages. In the filter, for convenience, specify the measurement id of your GA4 to make it easier to find the necessary requests. Here is an example of an event that works correctly and is sent to the url of the server container: ![Preserver log in network dev tool - Stape](https://cdn.stape.io/i/66f40419c56d1526173570.png) Preserver log in network dev tool - Stape And here is an event that is sent directly to GA due to configuration issues: ![Preserver log in network dev tool 2 - Stape](https://cdn.stape.io/i/66f4042767381483858075.png) Preserver log in network dev tool 2 - Stape Check that all your GA4 events are sent to the URL of your server container, not to google-analytics.com. How to fix this: Check the code for inline code with gtag initialisation or events, it usually looks something like this: ![Check that all your GA4 events are sent to the URL of your server container, not to google-analytics.com](https://cdn.stape.io/i/66f40435eb186764710776.png) Check that all your GA4 events are sent to the URL of your server container, not to google-analytics.com If you find gtag scripts in your site code, completely remove them. Check if you have any active plugins/integrations that also send data to Google Analytics 4. Disable these functions in them. Ideally, use a single Google tag with GA4 configured through your GTM container. 2. GA4 event tags firing earlier than the Google Tag This is either because some data layer events fire too early or often due to incorrect tag operation setup relative to consent. Symptoms and checks are exactly the same as in the first point: some events are sent directly to google-analytics.com. Check this in the preview mode of your web GTM container; you can often see a situation like in the example below: ![GA4 event tags firing earlier than the Google tag](https://cdn.stape.io/i/66f4044350cb6065156152.png) GA4 event tags firing earlier than the Google tag In this example, Google tag with GA4 config uses a consent update trigger to operate when consent state is already known, this event appears quite late in the page. But before that there is another event in the data layer (view_item in the example above) on which the event tag is fired. Due to the fact that at the moment of triggering the event there is no setting from the config to send data to the url of the server container - this event will be sent directly to the analytics, which will lead to problems in determining the source of sessions for such an event. If you have similar situations, make sure that your Google Analytics 4 event tags are always triggered later than the Google Tag. Using a trigger group can often help to resolve this. For example, to fix a problem like the one above, you can use a trigger group that includes view_item and cookie_consent_update - this will ensure that the GA4 view_item event is always fired after the config. ![Using a trigger group - Stape](https://cdn.stape.io/i/66f40454d7143544562696.png) Using a trigger group - Stape Related: [What is event tracking in GA4: a guide to boosting your data insights](https://stape.io/blog/what-is-event-tracking-in-ga4-a-guide-to-boosting-your-data-insights) 3. Using incorrect session ID and/or Client ID when sending events via measurement protocol If you use the measurement protocol to send some events, ensure that client_id and session_id are used in the correct format and with the correct cookies. This way, events sent via the measurement protocol will be associated with the user's session and will have the correct source. Often, this point is overlooked when switching to [GA4 server-side](https://stape.io/stape-gateway) and continues to use the _ga cookie in measurement protocol events. ‘FPID’ cookie is used for server-side tracking to determine client_id. Use the value without its first part. Example of FPID User ID Cookie: FPID2.4.dPX9iPhlXAv0WNrJhUjaaNZ5L6jyyqqDV80n24P%2BV04%3D.1716821491 Format for MP Use: dPX9iPhlXAv0WNrJhUjaaNZ5L6jyyqqDV80n24P%2BV04%3D.1716821491 The ‘_ga_yourMeasurementId’ cookie is used to determine session_id. Use only the part after the second dot. Example of Session Cookie: GS1.1.1717673857.4.1.1717674043.0.0.803799365 Format for MP Use: 1717673857 Also make sure you are using the correct decode/encode of the cookie value. Usually the easiest way to check this is to look in GA4 Explore reports at the cookie values for web events and for server events to make sure everything is correct. In case of unexplained problems, additional logging of data to a third-party database and checking it there can always help. Conclusion Understanding and correctly configuring GA4 to accurately track and categorize your traffic sources is essential for effective digital analytics. Ensuring that your UTM parameters are properly set, and avoiding the pitfalls of (not set) values in your source/medium reports, will allow you to have clearer insights into where your traffic in Google Analytics is coming from and how it behaves on your site. By addressing issues such as additional gtag initialization, timing of event tags, and proper use of session and client IDs, you can improve the accuracy of your analytics data. This will ultimately enable better decision-making and more effective marketing strategies. Taking the time to set up your GA4 correctly ensures you get the most out of your analytics, driving better outcomes for your business. We hope this article will be helpful for those struggling with unassigned GA4 traffic. By understanding its causes and applying the suggested fixes, you can improve your data accuracy and gain better insights into your website's performance. However, it's important to remember that sometimes the issue might resolve itself over time as data collection processes normalize. Patience can often be just as effective as immediate action. Thank you for reading, and we wish you success in managing your traffic in Google Analytics. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Cookieless advertising: strategies and solutions Source: https://stape.io/blog/cookieless-advertising-strategies-and-solutions Explore effective cookieless advertising strategies and solutions for privacy-first marketing, ensuring targeted ads without third-party cookies. With the development of new privacy regulations, cookieless advertising is becoming more relevant. Advertisers are forced to look for alternatives to third-party cookies for targeting, attribution, and retargeting. This article looks at cookieless marketing strategy as a solution for adapting to change. What is cookieless advertising? Cookieless advertising is a digital method that does not use traditional third-party cookies to collect user data. It is becoming increasingly popular in response to stricter privacy policies (GDPR, CCPA) and restrictions on cookies in browsers (e.g., Safari, Firefox, Chrome). Cookieless advertising is based on alternative technologies such as: First-party data is information a company collects directly from its customers through websites, mobile applications, or CRM. Contextual targeting is the process of analyzing the content of a page that a user views to display relevant ads. User IDs (Unified IDs, email hashes) are unique identifiers that allow you to identify a user without using a cookie. AI and machine learning - to predict user behavior based on historical data. Best cookieless strategies to implement To navigate a world with advertising without cookies, brands need effective cookieless [marketing strategies](https://stape.io/blog/digital-marketing-analytics). Here are some of the best practices: 1. Leverage zero- and first-party data Due to the discontinuation of third-party cookies, companies should create and optimize zero- and first-party data collection processes. Zero-party data is the information that customers voluntarily provide when interacting with a company. It includes date of birth, gender, product preferences, shopping intentions, and product or service reviews. Such data can be obtained through loyalty programs, customer surveys, and other methods of collecting information. Since this data comes directly from the user, it is highly accurate and valuable. First-party data is information that the company collects indirectly during client interactions (also offline via offline stores, phone calls, chats, etc.). It includes purchase history, email interactions, loyalty status, support calls, and the brand's website or mobile app activity. Zero- and [first-party data](https://stape.io/blog/first-party-data) provide companies with deep analytical insights, but they are often stored in different systems — CRM, marketing platforms, sales, and customer support departments. Combining this data into a complex source allows businesses to create a complete client profile, including his preferences, behavior, and history of interactions. 2. Utilize contextual targeting Contextual advertising works by placing ads on websites based on the content of the page. Instead of tracking user actions on the network, advertising is displayed based on thematic correspondence. For example, an ad for running shoes will appear on a fitness blog without the need to collect personal data. Although the concept of contextual advertising seems simple, its effectiveness depends on an accurate analysis of the page's content. Before the ad is displayed, the system evaluates the text, metadata, images, and video content to determine if the advertising message matches the page's intentions and content. This approach allows advertisers to reach their target audience in a relevant environment, ensuring ads are naturally integrated into content without third-party cookies or personal information. [Spotify advertising](https://stape.io/blog/spotify-ads-pros-and-cons-cost) is a strong example of contextual targeting in action: ads are matched to listeners' moods, playlists, and content without relying on cookies. 3. Implement server-side tracking Businesses can improve data accuracy while complying with privacy laws by using a [cookieless tracking solution](https://stape.io/blog/what-is-cookieless-tracking) such as Google Tag Manager (GTM) or [server-side tracking](https://stape.io/). You can also [set up cookieless tracking in Google Analytics](https://stape.io/blog/cookieless-tracking-ga4) to further reduce reliance on cookies and maintain accurate conversion data. For example, a user opens a website in Safari and clicks on the affiliate link. They land on the advertiser's website, which does not use server-side tracking. In this case, a cookie differentiating a particular affiliate will live only one day (in most cases). According to the affiliate program rules, the affiliate can earn a commission if a purchase occurs within 30 days after the click. In the scenario with Safari and client-side tracking, the affiliate won't be able to get a commission since the cookie will be erased from the website within one day. That is why the most extensive affiliate networks made server-side tagging mandatory for their advertisers. Stape has blog posts and server GTM tags for [Awin server-side](https://stape.io/blog/awin-server-to-server-tracking-using-server-google-tag-manager), [Rakuten](https://stape.io/solutions/rakuten-server-to-server-tag-solution), [Outbrain](https://stape.io/solutions/outbrain-s2s-tag), [Taboola](https://stape.io/solutions/taboola-tag), and other affiliate platforms. 4. Using the second-party data source Second-party data is obtained from reliable partners who have already collected first-party information from their audience. For example, an online retailer can work with a bank to segment the audience more accurately based on shared data. The use of such sources helps advertisers to expand their capabilities without the need for third-party cookies. 5. Data Clean Room One option to replace traditional tracking is to exchange audience data between partners through secure platforms such as Data Clean Rooms or CDP (Customer Data Platforms). This method allows different companies to collaborate using encrypted and anonymized user data to improve targeting and personalization of advertising. 6. Google Topics API Google [Topics API](https://developers.google.com/privacy-sandbox/private-advertising/topics) is a solution that labels a participating website with a topic from a pre-defined list. The Topic API assigns users a new topic weekly based on browsing history. Participating sites can choose three topics to show targeted ads to the user. All the topic data is stored on the user's browser for better user data security and privacy. Users can review and delete their data if they wish. 7. Retargeting Retargeting is definitely more challenging in a cookieless world, but that doesn’t mean it’s impossible. With the right tools and data, you can reach the audience segments you want with ads tailored to their needs best. Simply put, [retargeting reminds website](https://stape.io/blog/cookieless-retargeting-how-to-retarget-in-a-cookieless-world) visitors about the brand, encouraging them to return and make a purchase. Benefits of cookieless advertising With the phasing out of third-party cookies, companies are looking for effective alternatives to preserve ad personalization and analytics without compromising user privacy. Among the main advantages of cookieless ads: 1. Improve user privacy. The approach to data collection and processing is changing, reducing the risks of personal information leakage and increasing trust in brands. 2. Less dependence on third parties. Traditionally, advertisers relied on large advertising networks that collected and transmitted user data through third-party cookies. 3. Reduce ad-blocking risks. As browsers (Safari, Firefox, Chrome) consistently limit third-party cookies, traditional advertising methods become less effective. 4. Cookieless attribution provides more accurate attribution. Evaluating the effectiveness of advertising campaigns requires accurate conversion tracking. Cookieless future in advertising With the development of technology and growing concerns about privacy, the advertising industry is on the verge of important changes. Google's active rejection of third-party cookies is one key factor changing the landscape of digital advertising. At the same time, these changes bring both challenges and new opportunities for marketers who are forced to adapt their strategies to new conditions. Challenges and opportunities 1. The restriction of personalization Previously, advertisers actively used third-party cookies to collect data on user behavior on various websites. This allowed advertisers to create personalized advertising campaigns and target specific users. However, after rejecting these files, advertisers will lose the ability to monitor user behavior in detail, which can reduce the effectiveness of advertising campaigns, especially for those brands that depend on this personalization. 2. Increasing the value of first-party data First-party data is collected directly from users through their channels (sites, mobile applications, subscriptions, etc.). With the rejection of third-party cookies, this data becomes fundamental to the analysis and understanding of audience behavior. Businesses already actively working with first-party data will be able to more easily adapt their strategies and provide personalization without violating user privacy. 3. Alternative targeting methods Advertisers are looking for new targeting methods to compensate for the loss of third-party cookie data. One such alternative is contextual advertising, where ads are displayed based on the web page's content, not on users' personal data. In addition, artificial intelligence and machine learning can use first-party data to create more accurate behaviors, allowing you to maintain advertising campaigns' effectiveness without compromising privacy. Preparing for changes Marketers must change their data collection and use strategies to successfully adapt to a future without cookies. 1. Evaluation of current strategies The transition to new methods of data collection requires a reassessment of advertisers' current strategies. Brands need to determine how they currently use third-party cookies and what will need to change in their strategy. They should also pay attention to the importance of moving to more transparent and confidential methods of data collection. 2. Investment in first-party technology As first-party data becomes the primary source for targeting and personalization, it is important to invest in expanding the ability to collect and analyze this data. This may include integrating CRM systems, mobile applications, and other channels of interaction with users, allowing you to create more accurate audience profiles. 3. Involve users in the data collection process In the new reality, advertisers need to more transparently inform users about the collection and use of their data. It is important to get explicit consent from users and give them more control over how their data is used. This strategy will increase user confidence and help meet the requirements of data privacy legislation such as GDPR. Solutions for customization without cookies There are several technological solutions and strategies to help marketers adapt to change: Application of APIs for data collection. APIs such as the Google Topics API allow audience segmentation based on interests determined by user behavior on websites without using cookies. Using server tracking. Technologies like Facebook CAPI and TikTok Events API allow you to collect data on user interactions on the server, enabling you to maintain tracking accuracy without using third-party cookies. Go to contextual targeting. Ads displayed based on the website's context are a great alternative to targeting based on personal data. FAQs 1. How to choose the best cookieless solution? Before choosing a solution without cookies, several aspects must be evaluated carefully. Verify that the selected solution meets the requirements of data protection legislation, such as GDPR. Determine what data is needed to target the audience effectively. Assess whether the chosen solution can provide this data. Check the possibility of integrating the solution with existing systems, such as CRM or analytical platforms. Finally, it is crucial to test the chosen solution through pilot projects. For example, the key point for social media without cookies is setting up all applicable CAPI types. We recommend the following solutions: Implement server-side tagging for social media platforms. Most popular social media platforms already support server-side tagging and stape-created tags for them (Facebook CAPI, TikTok Events API, Snapchat CAPI, Linkedin CAPI). The critical element when configuring server-side tracking for social media is sharing user data since, for now, this is the key way social media networks can attribute users who saw your ad to the one that converted on your website. Use [offline-first party data](https://stape.io/blog/ways-of-offline-conversion-tracking). Since, for some businesses, a significant part of conversion happens offline, for example, in offline stores, through phone calls, or orders through chat, sharing first-party data can positively affect campaign results. It occurs because brand managers will be able to count not only online conversions but also offline ones), targeting (social media networks will better understand the interests and behaviors of your target audience), and remarketing. Build a custom Customer Data Platform (CDP). For most of us, CDP is associated with something very complicated and expensive. However, with the Google Tag Manager and [Stape Store](https://stape.io/solutions/stape-store), you can build a custom CDP without paying an additional price. Configuring custom CDP using sGTM requires some technical knowledge, but it's definitely doable for those already [familiar with sGTM](https://stape.io/blog/building-a-custom-cdp-and-enriching-event-data-using-server-side-gtm). 2. How to switch to cookieless advertising? The transition to first-party data involves collecting and analyzing information received directly from users through their own platforms, such as websites and mobile applications. Contextual advertising is an important element in a cookie-free strategy. It involves placing ads that match the content of the website on which they are displayed instead of using behavioral data. Alternative targeting methods, such as universal identifiers or other technologies independent of third-party cookies, can also be useful. To ensure process transparency, it is important to improve user interaction, giving them the opportunity to control their data. 3. What is cookieless marketing? Cookieless marketing refers to digital advertising strategies that do not rely on traditional third-party cookies to track and target users. As privacy regulations and user concerns about data collection grow, marketing without cookies has become a significant focus for businesses looking to maintain compliance and ensure privacy. This approach includes cookie-free advertising solutions, including first-party data, contextual targeting, and alternative tracking methods. Cookieless advertising solutions allow marketers to deliver relevant ads without relying on user behavior tracked via cookies. For example, cookieless tracking solutions enable marketers to track conversions and attribute sales without third-party cookies, such as with Google Ads conversion tracking without cookies. Additionally, cookieless attribution models offer a more privacy-conscious approach to measuring ad effectiveness. Programmatic advertising without cookies focuses on targeting users through other data sources, like contextual data or universal identifiers, ensuring that advertisers can still reach the right audience while respecting privacy regulations. In summary, cookieless marketing strategies use alternative tracking methods and targeting approaches, allowing advertisers to advertise without cookies while maintaining effectiveness in a privacy-first digital landscape. Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Write data to BigQuery from Google Analytics 4 Source: https://stape.io/blog/write-data-to-bigquery-from-google-analytics-4 Find out about two ways of exporting data from Google Analytics 4 to BigQuery: using tag Write to BigQuery and through Google Analytics 4 admin. [Exporting data from Google Analytics 4 to BigQuery](https://stape.io/blog/interesting-server-side-tracking-use-cases) opens up a world of possibilities for advanced data analysis and insights. In this article, we'll explore the essentials of BigQuery, including its key features and how it operates. We'll guide you through the steps of how to write data to BigQuery, detailing two scenarios. https://youtu.be/E_oGb6YrDVc?si=Ukb5zHX83Bm48RbG BigQuery overview [BigQuery](https://cloud.google.com/bigquery?hl=en) is a cloud-based data warehouse provided by Google that allows users to store and analyze large datasets quickly and efficiently. It's designed to handle massive amounts of data, making it possible for businesses and researchers to run complex queries without worrying about the limitations of traditional databases. Key features: BigQuery can scale automatically to handle massive datasets. Whether you have a few gigabytes or petabytes of raw data, BigQuery adjusts to your needs without requiring manual intervention. BigQuery Export has a limit of 1 million events for daily exports. With BigQuery, you don’t need to worry about managing the underlying infrastructure. Google takes care of provisioning, configuring, and managing resources, allowing you to focus solely on data analysis. Supports real-time data analysis. You can quickly query and analyze data as it arrives, making it ideal for applications that require up-to-date information. Moreover, all gathered data can be stored indefinitely, and it also serves as a backup of GA4 data outside the Google Analytics interface, since businesses own the underlying tables and can retain records permanently. BigQuery uses standard SQL, making it accessible to anyone familiar with SQL. This means you can write queries in a language you already know and integrate with existing SQL-based tools and workflows. Integrates seamlessly with other Google Cloud services such as Google Data Studio, Google Sheets, and Google Analytics, enabling a cohesive data ecosystem. Modern versions of BigQuery allow integration of machine learning models without any coding skills requirement. BigQuery charges for storage and query processing, while the BigQuery sandbox can be used for free exploration with limits. How the BigQuery data warehouse works BigQuery uses a distributed architecture, meaning it splits the data across many machines to process it in parallel, which speeds up the analysis significantly. To use BigQuery data storage, you load your data into the system, which can come from various sources like Google Cloud Storage, other databases, or even real-time streaming data. Once the data is loaded, you can write SQL queries to explore and analyze it. SQL, or Structured Query Language, is a standard programming language for managing and manipulating databases. BigQuery's ability to handle SQL makes it accessible for users familiar with this language, allowing them to perform tasks such as filtering, aggregating, and joining data. Does Google Analytics 4 support export to BigQuery? Yes! With this integration, you can export raw event data from GA4 to BigQuery for more advanced analysis and reporting. It’s also possible to perform custom queries, combine it with other datasets, and use GA4 to gain deeper insights into user behavior. ![Write data to BigQuery from Google Analytics 4 ](https://cdn.stape.io/i/66559f87e7990925756180.png) How to write data in BigQuery from Google Analytics 4 In this article, we will cover two options in detail: BigQuery export from [Google Analytics 4 admin](http://analytics.google.com/) and using the server-side tag “[Write to BigQuery](https://tagmanager.google.com/gallery/#/owners/trakken/templates/gtm-server-tag-template-write-to-bigquery)”. You will need: BigQuery project and dataset (to store your GA4 data); Google Analytics 4 account and property; Google Tag Manager account with configured web and server containers. You will also need proper permissions in both GA4 and Google Cloud to enable the integration. As soon as you have everything prepared, proceed with the next steps. If all this is new to you, but you follow the guidelines below precisely, you should not have any issues with configuring it. Export data from GA4 admin Native Google Analytics data export is the simplest option if you only need the raw data about the events in BigQuery (names, parameters, etc.). Google handles all the processes in this case automatically, and it is free for all users. This makes native export a great choice for analytics or reporting. Remember, though, that data starts flowing to BigQuery within 24 hours after linking, so short delays are possible at the start. As a pleasant bonus, though, BigQuery exports can be configured for daily or streaming frequency. ![Export data from GA4 admin](https://cdn.stape.io/i/6a50d71970f0e050991910.png) 1. Open your Google Analytics account and click on Admin. Under Product Links, click BigQuery links. ![BigQuery links in Google Analytics account](https://cdn.stape.io/i/6655a0191f3ed510001218.png) 2. Click Link and choose your BigQuery project. ![BigQuery project](https://cdn.stape.io/i/6655a05d0efce109855468.png) 3. Configure data streams and events to select which data streams to include with the export and specific events to exclude from the export. You can exclude events by either clicking Add to select from a list of existing events or by clicking Specify event by name to choose existing events by name or to specify event names that have yet to be collected on the property. Don’t forget to click the Submit button. Check Google's official documentation on [how to link a GA4 property to BigQuery](https://support.google.com/analytics/answer/9823238?hl=en#step3&zippy=%2Cin-this-article) if you have more questions or have faced any issues or cases not described here. Export data with a server-side tag If you are looking for more flexibility and want to fully control what data is stored and how it is structured, the Write to BigQuery tag is what you need. Its configuration is a bit more complex, but its ultimate effectiveness is worth it. ![Export data with a server-side tag](https://cdn.stape.io/i/6a50d79be720c738663286.png) 1. Create a server GTM container and [set up server-side GA4 tracking](https://stape.io/blog/set-up-ga4-server-side-tracking#how-to-set-up-ga-4-server-side-tracking-using-server-gtm). 2. Create or log in to the [Google Cloud Platform web console](https://console.cloud.google.com/). 3. Select IAM & Admin → Service Accounts → Click Create service account. ![Create service account](https://cdn.stape.io/i/6a50d79c033df131580425.png) 4. Add account → Click Create and continue → Select Roles - BigQuery Data Editor role for BigQuery access or the Cloud Datastore User role for Firestore. If you want to use Google Service Account only for BigQuery, choose only the BigQuery Data Editor role. The same for Firestore. When you get to the 3rd step, just click Done. ![Cloud Datastore User role](https://cdn.stape.io/i/6a50d7cab319a432345972.png) 5. Click on your new service account → open the Keys tab → click Add key → Create new key → Select JSON → select Create → JSON will be downloaded to your computer. ![Create new key](https://cdn.stape.io/i/6a50d803506a1435332137.png) 6. Open your Stape account → open sGTM container → open Power-ups tab → Click on Google Service account → Upload JSON file that you’ve downloaded from Google Cloud → Click Save. ![Google Service account](https://cdn.stape.io/i/6a50dd73208ac157380499.jpg) 7. Find Write to BigQuery [in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/trakken/templates/gtm-server-tag-template-write-to-bigquery) and add it: open templates sections in the server Google Tag Manager container → Click Search Gallery. 8. Find the Write to BigQuery tag. Click Add to workspace → Add. The tag will appear in your container. ![Write to BigQuery tag](https://cdn.stape.io/i/6a50ddb2f0001579128713.jpg) 10. Provide an ID for the BigQuery table you want all the data to be recorded to (such a table should be created beforehand via Google Cloud Console). When done, you can choose what data you want to be sent there: All Event Data - if you select this option, this tag will try to write all event data that the responsible client creates to BigQuery. Only those event-keys that also exist in the schema of the target table will be accepted by BigQuery. All other event-keys will be discarded. Custom Data Only - if you select this option, then only the column specified below will be written to your BigQuery table. No default data from the event will be written. You can also choose to Add Event Timestamp: it will add the millisecond timestamp to the event data written to BigQuery. The BigQuery target column will need to be of the INTEGER data type. Additionally, you can add the tag name and other metadata to the packages the tag sends via Advanced Settings. By default, however, this section is rarely used, so unless you know exactly what you need it for, you may not open it at all. ![add the tag name and other metadata to the packages](https://cdn.stape.io/i/6a50de18988c8964907279.png) Alternative setup: Cloud Storage and BigQuery external tables For more advanced server-side setups, you can also [store events in Google Cloud Storage](https://docs.cloud.google.com/bigquery/docs/external-tables) before querying them in BigQuery. In this approach, server-side events are first saved as files in a Cloud Storage bucket, and BigQuery can then query this data using external tables. This setup can be useful when you need more control over how event data is stored before analysis, but it requires additional Google Cloud configuration and is usually more technical than the standard GA4 BigQuery export or direct server-side BigQuery setup. Which to choose? Both methods send data to BigQuery, but they are different in configuration, flexibility, and type of supported data, as well as may be more suitable for different use cases. The table below highlights the key differences between them and is aimed at helping you to decide which approach fits your needs best. Native GA4 data export | Write to the BigQuery tag Works with GA4 collected events | Works with any event from the server GTM container Operates with a fixed GA4 schema | Has a schema that’s fully customizable and adjustable to your needs GA4 property data | GA4, Meta, CRM data, Custom APIs, etc. Managed by Google | You manage it in the server GTM How you can use this data Here we will cover several significant advantages, particularly for businesses and analysts who require more advanced data handling and analysis capabilities: Access raw, event-level data collected from the website that is unsampled and available in full, giving you all the information needed for more detailed and customized analysis compared to the aggregated data presented in GA4. BigQuery allows you to write and execute SQL queries on your GA4 data. This allows you to perform complex analyses, such as joining multiple datasets, filtering, aggregating, and performing calculations that go beyond the default reports available in GA4. BigQuery allows you to combine GA4 data with other data sources, such as CRM systems, advertising platforms, ecommerce data, or custom APIs, giving you a more complete view of user behavior and business performance. Create custom metrics and dimensions that are not available in GA4’s default reports to meet unique business requirements. Create custom metrics and dimensions that are not available in GA4’s default reports to meet unique business requirements. BigQuery ML creates new possibilities for prediction and segmentation directly with SQL. Small differences between the Google Analytics interface and BigQuery raw data are normal because of processing and modeling. Conclusion Both BigQuery and Google Analytics 4 are essential tools for modern data-driven businesses. BigQuery’s ability to handle large packages of historical data with speed and efficiency makes it invaluable for deep data analysis and complex queries. Unlike older versions, e.g., Universal Analytics, Google Analytics 4 provides comprehensive insights into user behavior, and its seamless integration with BigQuery allows for enhanced data exploration and reporting in other tools like Data Studio, Google Sheets, and Google Docs. We hope this article has provided you with the necessary guidance to export your data from Google Analytics 4 to BigQuery. Should you need any assistance with the setup or further optimization, our [team of experts](https://stapehelp.zendesk.com/hc/en-us/requests/new) is ready to help you unlock the full potential of your analytics. --- # Cookies, the GDPR, and the ePrivacy Directive Source: https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive What cookies do and why they matter. How cookies are affected by the GDPR, CCPA, ePrivacy Directive and ePrivacy Regulation. Cookie compliance best practices. In this article, we will cover the concept of cookies, their types, as well as GDPR, ePrivacy Directive, CCPA, and how you can comply with these data regulations. What cookies do and why they matter Cookies are usually harmless; you can view and delete them without a problem. They are just text files, unable to run independently or install anything on your device. They cannot access or modify any other files on your device. ![how cookies work - stape](https://cdn.stape.io/i/66559bcda2744937633969.png) However, cookies have the power to identify you without your consent in some cases. Their primary purpose is to help advertisers reach you with highly customized and targeted ads. In some cases, cookies can store information that is considered personal. For this reason, cookies fall under the GDPR and the ePrivacy Directive. All eyes are on the recent updates on a cookieless future. To understand cookie compliance rules and regulations, we need to be on the same page on the different types of cookies. ⚠️UPDATE: Google announced that it will [no longer pursue its plans to phase out third-party cookies](https://privacysandbox.com/news/privacy-sandbox-update/). Instead, the company will introduce a new solution: a one-time prompt that allows users to set their preferences, which will apply across all Google browsing experiences. Types of cookies There are three ways to classify cookies: Duration Origin Purpose Let’s start with the duration criterion. Cookies are divided into such categories by their timespan: Session cookies. They last as long as your browser session does. When you close your browser, these cookies expire. Persistent cookies. Such cookies stay on your hard drive until you erase them manually or until they expire. The expiration date is written into the persistent code and can be very different. The ePrivacy Directive dictates that persistent cookies cannot remain on a device for longer than twelve months. In fact, they can remain there much longer unless you take action. As for their origin: https://www.google.com/url?q=https://stape.io/blog/zero-first-third-party-data-explained-for-a-cookieless-world&sa=D&source=docs&ust=1738254420082345&usg=AOvVaw2Kb1SxKJhcm6TrpIaK5YYk[First-party cookies](https://stape.io/blog/zero-first-third-party-data-explained-for-a-cookieless-world&sa=D&source=docs&ust=1738254420082345&usg=AOvVaw2Kb1SxKJhcm6TrpIaK5YYk) get to your device directly from the website you are visiting. The website you are browsing places them. [Third-party cookies](https://stape.io/blog/third-party-cookies). Such cookies get to your device not directly from the website you’re on but from a third-party tool. Such cookies go to your device from a third-party service, like an analytics platform, social media, or advertising platform. Some cookies don’t quite fit into any category. For instance, Facebook cookies are created by a third party, and working with them requires using Facebook marketing tools. However, you store them on your website like first-party cookies. The purpose is another criterion for categorizing cookies: Essential. They are absolutely necessary for the website or app to function correctly and for you to use all of its functions. They are placed on your device automatically when you enter the website. Normally, they do not collect any personal information and thus do not require user consent. For instance, such cookies allow users to save items in their shopping cart while browsing the website. Non-essential. They are cookies that help businesses get the data they need. These cookies can be placed on the device only if the user consents to them. Non-essential cookies can be further subcategorized into: Marketing cookies. These cookies track your online activity and can share that information with other advertisers or companies. Their purpose is to customize ads for you and limit how many times you see the same ad. Social networking tracking cookies. They allow users to share info from the websites on their social media. They also help website owners link the activity between their website and a third-party sharing platform. Analytics and customization cookies. Even though not crucial, these cookies help website owners understand how their website is used. This information can greatly help with website upgrades. Now, it should be clear that different types of cookies either concern user privacy or don’t. Since cookies can affect users' privacy, companies are obliged to handle them carefully and in compliance with different regulations that are relevant to them. ![how cookies work - stape](https://cdn.stape.io/i/679b9b88ce24e805704870.png) Are cookies personal data? Whether cookies count as personal data depends on what they store and how they're used. A cookie itself is just a small text file, but if it can be used to identify a specific person – directly or indirectly – it falls under data privacy regulations. Under the GDPR, cookies are considered personal data when they contain identifiers like a user ID, IP address, or device fingerprint that can be linked back to an individual. This is why most advertising and analytics cookies, which track behavior across sessions to build a user profile, qualify as personal data. Not all cookies carry the same risk, though. Strictly necessary cookies, like the ones that remember items in a shopping cart, typically don't identify a person and are exempt from consent requirements. Marketing and analytics cookies, on the other hand, are built specifically to recognize and track users, which is exactly why they need explicit consent before they can be placed on a device. In short, if a cookie can help identify who someone is or build a profile of their behavior, you should treat it as personal data and handle it according to the regulations that apply to your business. The General Data Protection Regulation (GDPR) and cookies The European Union wants to protect the privacy of its citizens with the help of the General Data Protection Regulation (GDPR). The [GDPR is the data privacy and security law](https://gdpr.eu/what-is-gdpr/) that includes hundreds of pages’ worth of new requirements for companies from across the globe. So far, it is the most comprehensive legislation that has ever been passed by any governing body. It only mentions cookies once in [Recital 30](https://gdpr.eu/recital-30-online-identifiers-for-profiling-and-identification/). ![GDPR cookie mention recital 30](https://cdn.stape.io/i/6655b19f93b7d670829434.png) According to the GDPR, cookies qualify as personal data, since they are used to identify users. So, GDPR cookie consent compliance is a must if you are affected by it. Companies can process personal data of the users as long as it can be [justified on the grounds of legitimate interests](https://commission.europa.eu/law/law-topic/data-protection/reform/rules-business-and-organisations/legal-grounds-processing-data/grounds-processing/what-does-grounds-legitimate-interest-mean_en). Here’s an example of legitimate interest: your company has a legitimate interest when processing personal data within the client relationship for direct marketing purposes. The GDPR recognizes a litany of new privacy rights for data subjects, which aim to give individuals more control over the data they loan to organizations. It’s vital to understand these rights to ensure you are GDPR compliant. If you fall under the GDPR Directive, everything you do in your organization must, “by design and by default,” consider data protection. We recommend seeking legal advice if your business falls under the GDPR to ensure you comply with the 88-page regulation. Server-side GTM helps [adapt data tracking to GDPR](https://stape.io/blog/server-side-tracking-gdpr) requirements, making compliance much easier. In November 2025, Digital Omnibus Proposals were published. According to it, cookie regulations, which are governed by the e-Privacy Directive, could move into the GDPR. Also, it suggests introducing a “single-click” reject option to deal with “consent fatigue”. Find out more about [Digital Omnibus](https://stape.io/blog/digital-omnibus-explanation#key-changes-proposed-by-digital-omnibus) in our blog post. GDPR cookie requirements To comply with GDPR while collecting data, you should follow the rules: Use an opt-in cookie banner. Obtain user consent before using any cookies except for strictly necessary ones. Before the consent is received, provide precise and distinct information on the data you track and the purpose of such tracking. Document consent that you receive from users and store it. Make it possible for users to access your service without accepting non-essential cookies. Make withdrawing user consent as easy and transparent as giving consent. Check our [guide on cookie banners](https://stape.io/blog/cookie-banner-all-in-one-guide#requirements-for-cookie-banners) for more details. California Consumer Privacy Act (CCPA) and cookies ![how cookies work - stape](https://cdn.stape.io/i/679b9c506add0255392645.png) If your business operates in California, understanding CCPA compliance is essential. Implementing a consent management platform can help you uphold consumer rights and comply with data privacy regulations. According to CCPA, cookies are considered "unique identifiers". They are part of personal data since the data you collect with the help of cookies can be used to identify users or their associated devices. The CCPA grants California residents specific rights over their personal information: Right to know what data a business collects about them. Right to request its deletion. Right to opt out of the sale of their personal information. CCPA cookie requirements Compared to GDPR, cookie requirements aren’t that strict for CCPA; they include the following: User data collection and processing don’t require prior consent. If a business collects and sells website visitors' personal information to third parties, it must inform consumers of it and give them the right to opt out of such a sale. In case the business sells the data to third parties, a cookie banner isn’t enough to comply with CCPA. The business must provide an opt-out link on its website and develop a process that stops the sharing of visitor’s personal data. ePrivacy Directive [ePrivacy Directive](https://www.edps.europa.eu/data-protection/our-work/subjects/eprivacy-directive_en) was passed in 2002 and later amended in 2009. The ePrivacy Directive (EPD) has become known as the “cookie law”. It is so because its most visible effect was the proliferation of cookie consent pop-ups after it was passed. It supplements the GDPR and in some cases, overrides it, addressing crucial aspects of the confidentiality of electronic communications and the tracking of Internet users widely. The ePrivacy Directive gives extensive instructions on how users must be informed and have consent choices when sharing their electronic data. The ePrivacy Directive focuses on the companies' responsibility to collect and handle electronic data from users. ePrivacy Regulation ePrivacy Regulation, although frequently mentioned together with the ePrivacy Directive, is not the same thing. ePrivacy Regulation is a law that turns the ePrivacy Directive into binding law. All data privacy violations are to be handled according to this law. The ePrivacy Regulation is in the stage of finalizing. It sets clearer rules on cookie usage. The main points of ePrivacy Regulation are as follows: New players will also fall under the regulation: The privacy rules will apply to new players who provide electronic communication services such as WhatsApp, Facebook Messenger, and Skype. Through this directly applicable regulation, all individuals and businesses in the EU will receive the same level of protection for their electronic communications. Privacy of communications content and metadata will be guaranteed. If users did not give their consent for collecting it, such data should be anonymized or deleted. The only exception is when the data is required for billing. New business opportunities: when consent is given for processing communications data, traditional telecom operators get more opportunities to provide additional services. More straightforward cookie policies: there will be no more overload of consent requests for internet users. The new rule will be more user-friendly. Browser settings will provide an easy way to accept or refuse tracking cookies and other identifiers. Protection against spam: ePrivacy Regulation bans unsolicited SMS, email, or electronic calling machine communication. Make enforcement more effective: Data protection authorities, already in charge of the rules under the GDPR, will be responsible for enforcing the confidentiality rules in the Regulation. If the ePrivacy Regulation is finalized in 2024, it won’t be fully in effect until 2026 due to the 24-month transition period. ePrivacy vs GDPR The ePrivacy Directive and the GDPR often get mentioned together, but they cover different parts of data privacy and work alongside each other rather than replacing one another. The GDPR is the broader law – it governs how any personal data is collected, processed, and stored, regardless of the method used to collect it. The ePrivacy Directive is more specific: it focuses on electronic communications and online tracking, which is why it's the law that requires cookie consent banners in the first place. In practice, this means the ePrivacy Directive sets the rules for placing cookies on a user's device and obtaining consent, while the GDPR governs what happens to the data once it's been collected – how long you can store it, how securely you need to handle it, and what rights users have over it. When cookies collect personal data, both regulations apply at the same time: the ePrivacy Directive for the act of setting the cookie, and the GDPR for everything that happens to the data afterward. Cookie compliance best practices Besides creating cookie banners and collecting/processing data in a way that complies with GDPR and CCPA, other ways may help you follow the regulations, among them is cookieless tracking. As the laws regarding user privacy become stricter and users become more cautious about sharing their data with third-party businesses, [cookieless tracking](https://stape.io/blog/what-is-cookieless-tracking) becomes a hot topic for many businesses. You can learn how to [set up cookieless tracking in Google Analytics 4](https://stape.io/blog/cookieless-tracking-ga4) to further minimize reliance on cookies while keeping your analytics accurate. Server-side tracking is one of the most reliable and privacy-friendly methods of tracking user behavior without relying on cookies. With server-side tracking, the tracking code is executed on the server rather than the user's browser. This means the user's device does not need to store any tracking data, done entirely on the server side. Useful links: [Consent Settings for server GTM tags](https://stape.io/blog/consent-mode-server-google-tag-manager) [Consent mode in server Google Tag Manager](https://stape.io/blog/consent-mode-server-google-tag-manager) [Google Consent Mode V2](https://stape.io/blog/google-consent-mode-v2) [Server-side consent management with sGTM and Cookiebot](https://stape.io/blog/consent-mode-server-google-tag-manager) [Cookieless tracking in Google Analytics 4](https://stape.io/blog/cookieless-tracking-ga4) [EU-owned proxy server for sGTM or how to use Google Analytics GDPR compliant way](https://stape.io/blog/eu-owned-proxy-server-or-how-to-use-google-analytics-gdpr-compliant-way) Conclusion Cookies are a powerful tool for marketers that allows user data to be collected and analyzed. Numerous data privacy laws worldwide are designed to regulate the collection and processing of personal information. It's challenging and requires businesses to seek the most effective data collection practices. The key points around compliance with data regulation lie in transparency and giving website visitors an option to consent or actively decline personal information collection. If you fall under any data privacy laws, we recommend seeking legal advice for implementing cookie compliance best practices in your business. If you have any questions or need help understanding the concept of cookie-free tracking, contact us. Stape is an expert in server-side tracking. You can [try Stape for free](https://stape.io/login) to see what it can do for your business. --- # Stape: an alternative to Google Cloud Platform (GCP) for server GTM hosting Source: https://stape.io/blog/stape-an-alternative-to-google-cloud-platform Compare Stape to Google Cloud for server-side GTM hosting. Stape offers predictable pricing, 24/7 support, EU environments, and autoscaling for better value. Naturally, customers research different options when choosing a server-side tracking solution. Some of the main points they pay attention to are global infrastructure and secure access. Let’s see what a popular Stape alternative - Google Cloud Platform (GCP) - offers. We hope this comparison helps you decide which Google Tag Manager hosting works best. ![Stape Vs. Google Cloud Platform](https://cdn.stape.io/i/664b1b5ab3892249344714.png) Google Cloud Platform overview Google Cloud Platform is arguably the top Stape alternative customers consider. It is one of the most widely used platforms worldwide, trusted by countless users. The platform offers various services, including computing, networking, storage, big data, machine learning, and management. This post will focus on the pros and cons of GCP's tagging server and Cloud Run. Pros and cons of Google Cloud Platform hosting for server Google Tag Manager Check out the advantages and disadvantages when choosing to work with the GCP: Pros | Cons The default deployment of a GCP project with a single server is usually free but requires adding a credit card. | You can have only one test GCP environment for one billing account. You must also monitor the number of requests within the free tier limits. Community. Google has extensive documentation and a large community, so you will likely find answers to most of your questions quickly. | There is no free support. If you need support, you must pay a support fee + % of the money you spend on servers. Waiting to get to human support can be time-consuming and painstaking. Google services are highly scalable, automatically adjusting to traffic spikes without manual intervention. In other words, it can seamlessly handle large volumes events. | When traffic spikes unexpectedly, automatic scaling can raise expenses. As a result, no predictable pricing is available. A case when GCP runs out of servers for sGTM in specific regions during high season (Black Friday, Christmas, etc.) is possible, and if it happens, the server can't be scaled, and server-side tagging stops working. It offers extensive controls and customization of the system. | Making the most of controls and customization features requires some technical expertise. You need to manually monitor, fix, and update the GCP settings in case of any issues. Pay-as-you-go pricing model. This model can be beneficial for businesses with fluctuating traffic. | It could be pricey for startups and small businesses. Billing is challenging for agencies since each client must have their own GCP project and billing. Security and compliance. GCP provides high security and data protection thanks to its extensive resources for maintaining global standards. | Security breaches are not 100% preventable, even with the cloud service provider from Google. | If you want the data about your website visitors to remain within the EU, you won't be able to achieve it with GCP. | Although Google has servers in the EU, it is a US-based company, and the main headquarters can access any data stored in the old world. This is the price you pay for being a part of a global infrastructure. As one of the top players, GCP has many benefits beyond the major ones mentioned above. As with any other service, some drawbacks are naturally present. However, the competition is strong. Let's look at one alternative to Google Cloud Platform, which stands out among all other cloud providers. Stape overview Stape is considered the best Google Cloud alternative. It is the easiest solution for organizing server-side tracking and maintaining secure data processing. It reduces the technical barrier often associated with server-side tagging, making it understandable for everyone it may concern. Stape has the right tools to set up server-side tracking quickly and effectively. You don't have to worry about your coding and tech skills, as the service is meant for marketers and business owners rather than tech guys. Stop [worrying about third-party cookies](https://stape.io/blog/third-party-cookies) and [relying on client-side JavaScript](https://stape.io/blog/what-is-cookieless-tracking). We automated everything possible to make server-side tagging clear and comprehensive, even if you have zero tech background. Stape is called the best alternative to Google Cloud not in vain. Check if your sGTM is sending data to the right region. Run Stape’s free [Website Tracking Checker](https://stape.io/website-tracking-checker?cta=blog_article) now. The tool shows you how well your website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for your analytics systems and ad platforms. Digital marketers and agencies can run fast tracking audits, use the report as a checklist to double-check implementations, and win more clients with proof of server-side tracking value. Benefits over the Stape alternatives When you start working with Google Tag Manager, you can either keep hosting your server Google Tag Manager on the Google Cloud or move it to custom hosting. Hosting with Stape, one of the best Google Cloud alternatives, has [a lot of advantages](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server). We will share the most clear description of all the main features here. [Predictable pricing](https://stape.io/price). Stape's hosting is around five times cheaper than Google Cloud services. We created a [pricing calculator](https://stape.io/price-server-google-tag-manager#calculator) where you can check our billing plans and choose one that best fits your budget and needs. There is also a free plan that does not require adding a credit card to your account. Paid plans start at $20, without any hidden costs. The only thing Stape misses now in this domain is on demand pricing, but it is only a question of time and necessity. Support. The Stape support team is available 24/7! EU cloud environments (Scaleway cloud server provider). To be hosted in the EU, select EU when registering. No need to worry about server monitoring. We do that for you. Ability to sign custom documents (Service agreement, DPA, BAA, etc.). Transparent pricing. You pay for the subscription plan. The price is not based on usage, which can be unpredictable. [Security compliance](https://app.vanta.com/stape/trust/q4enx4q7gch43uflljd8). We are ISO 27001, SOC2, HIPPA certified, and GDPR-compliant. [Autoscaling](https://stape.io/solutions/autoscaling). When our monitoring systems see spikes in traffic, we autoscale servers and add more CPU or memory, guaranteeing the system's high performance. Ability to bypass adblockers. Depending on the website industry, the average number of people with an adblocker is around 30% (according to GWI, a market research company). With the Stape custom loader, you can bypass adblockers. Simplicity. Stape is the leading GCP alternative because setting up a tagging server URL takes… well, no-one counted, but less clicks than with GCP, making its integration capabilities limitless. By the way, if we are mentioning integration, Stape can be connected to your custom domain via Entri API, decreasing the need for manual configuration to minimum. [Free global CDN](https://stape.io/solutions/global-cdn). It uses Cloudflare platform to load JS files (gtm.js, gtag.js, analytics.js, etc.) from a server closer to your site visitors. You can access Logs for free, while on Google Cloud services, logs come with extra costs, which can be as much as the price of servers. You can check access logs, request logs, and response logs. The Stape database is included in the subscription plan, while on GCP, you need to pay for Firestore on top. The price of sGTM servers can double or triple for websites with high traffic volumes. [Monitoring feature](https://stape.io/news/monitoring-feature). You can create a set of rules that will notify you in case of anomalies, not only with your sGTM but also with server-side tracking in general. For example, you may receive an email if the number of purchases in GA4 is 50% less than usually, when Facebook CAPI sends a 500 response code, etc. Power-ups. Stape created [many power-ups for your server Google Tag Manager container](https://help.stape.io/hc/en-us/sections/12372381548701-Stape-power-ups). We prepared a short description of the main ones. - [Anonymizer](https://stape.io/solutions/anonymizer). With this power-up, you can remove or anonymize user data from Google Analytics 4. - [Cookie Keeper](https://stape.io/solutions/cookie-keeper). Extend cookies when a person uses any browser with the latest version of ITP, which shortens cookies' lifespans for responses from third-party IPs. - [Multi Domains](https://stape.io/solutions/multi-domains). Payment plans starting from Business allow you to map several subdomains to one server container. - [Preview Header](https://stape.io/solutions/sgtm-preview-header). This power-up lets you see requests from the webhooks in the Google Tag Manager server container preview mode. - [Personal/ agency access and billing](https://stape.io/solutions/access-billing). You can either create a personal account or manage and create containers for clients via an agency account. We also have a [step-by-step guide on switching server GTM hosting from Google Cloud to Stape](https://stape.io/blog/how-to-switch-server-gtm-hosting-from-google-cloud-to-stape). Here’s a more visual comparison of Stape and Google Cloud Platform: ![Stape sGTM hosting vs Google Cloud Run Platform](https://cdn.stape.io/i/664b3a2810f82389730055.png) Final thoughts In a nutshell, Stape is one of the top alternatives to GCP. If you choose Stape instead of the famous cloud service provider, you can get the most out of server-side tracking while planning your budget accurately and accessing a robust community and support. Of course, you may look at Stape alternatives. Still, by doing so, you are missing many of our benefits: attractive and predictable pricing, intuitive UI, high performance and fast setup, professional support 24/7, data protection, and cloud environments (servers) working under EU jurisdiction. Do not hesitate to [try Stape for free](https://stape.io/login) to see what it can do for your business. --- # 24% lower cost per purchase and 32% higher ROAS for SportSpar | ZweiDigital Source: https://stape.io/blog/zweridigital-with-sportspar-got-24-cost-reduction-and-32-improvement-of-roas Learn how SportSpar used server-side GTM with Stape to achieve a 32% ROAS improvement. ![Tracking for sportspar - Stape](https://cdn.stape.io/i/6645f97a35d19978848135.png) SportSpar is one of Europe’s largest sports article & fashion outlets, with sub-shops in several european countries. They were using a plugin solution for their Facebook tracking and to reduce server load and have more control over tracking have been looking for a solution via Google Tag Manager. Our partner [ZweiDigital](https://www.zweidigital.de/serverseitiges-tracking/) a performance marketing agency, specialized in accurate tracking solutions has been working with SportSpar for over 5 years and took care of moving tracking to server-side. Why Stape? Since there are 7 Domains and more than 50 Mil Requests per month, Stape was the perfect solution compared to standard Google Hosting, being more cost-efficient and easier to handle. The ability to log data for in depth analysis of the server requests was also factor for choosing Stape Hosting. Setup Focus was the Facebook Pixel and Conversions API, which was integrated for all shops, using a single serverside container. The articles from Stape on how to [integrate Facebook Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api) were really helpful to achieve this. With more control over the data, Sportspar was able to integrate advanced matching with hashed customer information, as well as integrating custom events, which was not possible with a plugin solution. GA4 was also moved to server-side tracking in this process, with more platforms to come like Google Ads and AWIN. Results There were several improvements that came from the switch to Google Tag Manager Tracking hosted by Stape: Reduction of overall Cost-per-Purchase by 24%; Improvement of ROAS by 32%; Reduction of the load on the webhosting server; Accurate deduplication for conversions API, since all Events now have a Event-ID; Improvement of Event Match Quality by sending hashed customer information; Ability to track custom events not possible with plugin solution. You can use the [ROAS calculator](https://stape.io/roas-calculator) to see what a similar switch could mean for your campaigns. Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Webgains server-to-server conversion tracking Source: https://stape.io/blog/webgains-server-to-server-conversion-tracking Webgains server-to-server tracking enables accurate conversion tracking through Stape's GTM container, improving affiliate campaign insights and ROI. Precise conversion tracking is vital for assessing campaign effectiveness and optimizing [marketing ROI](https://stape.io/blog/increase-marketing-roi). [Webgains](https://www.webgains.com/public/en/) is a prominent affiliate marketing network, facilitating online revenue growth through affiliate partnerships. Establishing accurate [server-to-server tracking](https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager) is crucial for gaining actionable insights into customer behavior, refining marketing strategies, and driving profitability. That’s why we decided to create a [Webgains tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/webgains-tag) for your convenience. How Webgains tag works Webgains tag has two event types: Page View and Conversion. ![webgains tag page view event - stape](https://cdn.stape.io/i/6641ddbb4ae7a217055409.png) Page View stores the cid URL parameter inside the wg_cid cookie. ![webgains tag conversion event - stape](https://cdn.stape.io/i/6641dde06cfc4329436885.png) Conversion event sends the HTTP request with the specified conversion data to Webgains. You can get a Program ID after you’ve been accepted to the [Webgains affiliate program](https://www.webgains.com/public/en/app-faq/#1). The tag will parse all available parameters from the eventData. In the Parameters Settings (Optional): Order Reference - Unique ID that identifies the order or transaction on your site. Event ID - ID of the event. Currency - Transaction currency. Voucher ID - Promotional voucher code on the entire order. Customer ID - Customer ID, fill only on request. Location - Checkout URL. May remain empty. Click id - Value of the identifier. This value must be the click ID assigned to the user. Comment - Optional commentary. Items - Array with the articles of the transaction. Item Fields - Array with the fields of the articles. How to set up Webgains tag 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. The two most popular ways of sending data to sGTM are by [configuring server-side Google Analytic 4](https://stape.io/blog/set-up-ga4-server-side-tracking) and [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Download Webgains tag on [GitHub](https://github.com/stape-io/webgains-tag) or find it in the [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/webgains-tag) → Open templates sections in the server Google Tag Manager container → Click New. 4. Click three dots in the top right corner → Click Import → Select Webgains tag template you’ve recently downloaded from GitHub → Click save. ![webgains tag implementation - stape](https://cdn.stape.io/i/6641de86e3f26346478476.png) 5. Choose the event type and the trigger. Don’t forget to push the Save button. Conclusion Setting up precise server-to-server tracking is key to obtaining actionable insights into customer behavior, fine-tuning marketing strategies, and ultimately increasing profitability. Therefore, the development of a Webgains tag represents a significant advancement for users seeking reliable and effective tracking solutions. Don’t hesitate to contact our [support team](https://stapehelp.zendesk.com/hc/en-us/requests/new) if you have any questions left about the setup or if you’d like to receive a quote so that we can save you from the headache and do the setup for you. Want to start using server-side tags? Stape has lots of options! Click on Try for free to register and check all the benefits. --- # Zero and first-party data explained Source: https://stape.io/blog/zero-party-vs-first-party-data Discover the differences between zero-party vs first-party data, their advantages, and practical applications for improving marketing strategies. Zero-party and first-party data both come straight from your customers, but the key difference between first-party and zero-party data is how you get them. Zero-party data is willingly shared – like quiz answers or preferences. First-party data is collected through user behavior – like clicks, views, or purchases. ![Zero- and first-party data ](https://cdn.stape.io/i/678a41808e3e7278029413.png) What is zero-party data? By definition, zero-party data is the information customers share with the business willingly. It’s the information your customers are happy to provide in exchange for something you offer, like a better experience, discount, tailored offer, brand loyalty program membership, early launch access, etc. Examples of zero-party data: Loyalty program membership (member ID, points balance, or tier level) Interactive responses (quizzes, polls) Preferences (like favorite product categories) Purchase intentions (like wishlist items) Interests (topics like fitness, photography, or travel) Demographics (self-reported age, gender, or income range) At the same time, zero-party data is the hardest to obtain, as it requires direct input from the customer. To collect such data, you must offer the client something worthwhile. Zero-party data, arguably the most valuable data from your clients, is gathered through direct contact with a customer. It is highly accurate, reliable, individual, and collected ethically (with the customer’s explicit consent). What is first-party data? [First-party data](https://stape.io/blog/first-party-data) is information you collect about your customers from your channels to learn how a customer interacts with your business. It’s all the information you can gather from your encounters with your clients using your tools. Examples of first-party data: Interactions and behaviors of mobile app and website users CRM data Contact information Purchase history Social media information Email campaign engagement Support history Loyalty program information The critical difference between zero-party and first-party data is that with zero-party data, customers have to input data and expect something in return. First-party data is information you gather based on customers' interactions with your brand. First-party and zero-party data were grouped for a long time because they come directly from a business's interactions with its customers. If, at some point, due to browser restrictions and data regulations, [more and more marketers turn to cookieless tracking](https://stape.io/blog/what-is-cookieless-tracking) as an alternative to traditional methods. It’s vital to distinguish between the types of data you collect and know how to work with each one. Role of zero-party data While the future of third-party data remains uncertain, zero-party data stands strong. When marketers debate first-party vs zero-party data, zero-party data often comes out as the most valuable data asset a business can possess. It empowers companies to enhance the quality of their marketing efforts and tailor them to the unique needs and preferences of their customers. Zero-party data is not just crucial for building strong, loyal customer relationships; it is the most valuable asset for personalization. Role of first-party data First-party data must be more prominent in the face of the shift from the dominating role of third-party cookies. Any business can gather and manage this data type, making it a reliable and adaptable resource for the future. This data allows you to enhance personalization and maintain and nurture customer connections. You can also refine targeting (by utilizing customer behavior and purchase history data). Thankfully, first-party cookies are not going away like the third-party ones might, at least not in the foreseeable future. Zero-party data vs first-party data When you look at zero-party data vs first-party data side by side, the question comes down to one thing – did the customer hand you this information directly, or did you collect it by observing their behavior? | Zero-party data | First-party data Source | Shared directly and willingly by the customer. | Collected by observing customer behavior. Examples | Quiz answers, preferences, wishlist items. | Website clicks, purchase history, CRM records. Accuracy | Very high.The customer states it themselves. | High, but inferred from behavior rather than stated. Effort to collect | Requires an incentive (discount, early access, etc.). | Collected passively through existing tools and channels. Customer consent | Explicit.The customer actively opts in. | Implicit.Based on interactions with your brand. Best for | Personalization, tailored offers. | Targeting, retargeting, building a customer profile. When you compare zero-party vs first-party data side by side, it becomes clear that neither one is "better" – they simply tell you different things. Zero-party data shows you what customers say they want, while first-party data shows you what they actually do. Used together, zero- vs first-party data isn't really a competition, and combining the two gives you a far more complete picture of your audience than either one alone. How to use zero and first-party data in server-side tracking Using server-side tracking to manage zero- and first-party data comes with a lot of benefits. First, server-side tracking is reliable, since you control the data transmission and management yourself. It also helps you provide better data protection, and it can support privacy-compliant advertising. Whichever side of the first-party data vs zero-party data discussion you focus on, server-side tracking helps you handle both more securely. Server-side tagging allows you to send first- and zero-party data from your CSM, CRM, or database to the Google Tag Manager server. Then, you can deliver the data from sGTM to advertising and analytics platforms such as Facebook, Google, TikTok, etc. It can help you collect more information about your customers' events even without them visiting your website. Offline conversions help improve the attribution and performance of advertising campaigns. They occur when a customer, after interacting with your online ads, takes action offline, such as calling your call center or visiting your physical store. By linking these offline actions to your online campaigns, you can better understand the impact of your digital advertising efforts and optimize them for better results. We have a [guide on how to send data from your CMS, CRM, or any third-party platform directly to sGTM](https://stape.io/blog/debug-webhooks-google-tag-manager-server). Once the data reaches sGTM, you can easily configure it to be sent to any other destination or service, giving you full control over your tracking and data flow. You can also store zero- and first-party data on the server and enrich your web events. For example, if a user creates an account on your website or makes a purchase, you can use the stape store to enrich pageview events for them. Alternatively, for those who visit your website from the ad and then convert offline, you can enrich purchase events with necessary cookies (for example, fbp and fbc for meta) before sending the purchase event to meta. Building [a custom CDP (Customer Data Platform)](https://stape.io/blog/building-a-custom-cdp-and-enriching-event-data-using-server-side-gtm), a system that collects and manages customer data from various sources, and enriching event data using server-side GTM allows you to combine all your customer information in one place, making it easier to understand and reach out to them more effectively. Overall, server-side tracking is the most reliable and viable way to capture and handle customer data in a cookieless way, if the deprecation of third-party cookies happens at some point eventually. Strategies for collecting and using 1-st party data - best practices You should collect first-party data because it’s vital for understanding how customers interact with your business. Unlike third-party data, which is unreliable and sometimes compromised in accuracy, first-party data is accurate, reliable, and is always there for your business to use. How to collect 1-st party data and use it: Use first-party data analytics tools. Google Analytics is an excellent tool for gathering and working with first-party customer information. You can also [set up cookieless tracking in GA4](https://stape.io/blog/cookieless-tracking-ga4) to track users while respecting privacy regulations. Encourage your customers to create accounts. You get more data by encouraging them to create accounts in exchange for receiving a perk or a better experience. You can get valuable information like ​​customer name, email address, and shipping address. This can help you identify users better, track their behaviors, and cater to their needs. Ask for feedback and study it. Gather all the feedback from your customers and examine it to identify tendencies and points of improvement. Create polls, surveys, quizzes, and questionnaires. This interaction will help you better understand your customers and identify ways to better serve them. Use the power of CRM systems. With a [customer relationship management system](https://stape.io/blog/how-to-send-all-ga-event-data-to-your-url-site-crm), you can keep customer data in one place, segment it, and effectively utilize it for marketing and advertising. [Implement server-side tracking](https://stape.io/blog/how-to-start-with-server-side-tracking). This allows you to obtain high-quality web data and fully control it. Moreover, it empowers companies to be independent from third-party data sources. It also protects business data, as owners decide whom to share the captured data with. Remember that effectively collecting and managing first-party data means being transparent. Let your customers know what data you collect, why you want it, and how you protect it. This will also help you get your customers on board by ensuring their information is safe with you and used only in their best interest. Prove that you can use customer data to improve the shopping experience and provide better service overall. Show your customers that it’s [worth trusting their data with you](https://stape.io/news/stape-has-iso-hipaa-gdpr-compliance). Conclusion Naturally, any business attempts to use customer data whenever and wherever it comes from. Finding the correct ratio for collecting and using zero, first, second, and third-party data is essential for the company's well-being in the changing marketing and advertising era. As businesses work on mastering user tracking without cookies, it becomes clear that relying on zero- and first-party data is the right approach. Zero-party data vs first-party data debate matters less than how well you combine the two, and using server-side tracking is one of the simplest ways to make the most of both while coping with the deprecation of third-party cookies. Don’t hesitate to contact Stape support. We will answer your questions and resolve any issues you might be experiencing as quickly as possible. --- # Facebook Leads API for server Google Tag Manager Source: https://stape.io/blog/facebook-leads-tag-for-server-gtm Optimize lead tracking with Facebook Leads API in sGTM. Automate data collection from your CRM to Meta, enhance attribution, and improve conversion accuracy. [Meta Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api) can be used not only to upload server events related to your web traffic but also to send offline events from your customer relationship management (CRM) system. This setup is distinct from your web-based Conversions API integration because it involves different parameters and sources data from your CRM rather than your web servers. Using your CRM and the Conversion Leads optimization goal could lead to higher quality leads that have a better chance of converting into sales. This optimization goal is specifically designed to work with Facebook/Instagram Lead Ads (Instant Forms). You should already have a system in place for transferring leads from Meta to your CRM (indicated in green in the diagram below). You need to send detailed event data from your CRM back to Meta, as indicated in blue in the diagram below. ![Leads from Meta to CRM - Stape](https://cdn.stape.io/i/6630c8622be47860725837.png) This article will guide you through the necessary steps to successfully implement [Facebook Leads API](https://github.com/stape-io/facebook-leads-tag), starting with an overview of its advantages. From there, we'll explore the essential components and prerequisites needed for an easy setup, the mechanics of how the Facebook Leads API works. What are the benefits of using Facebook Leads API direct integration between Facebook's advertising services and a company's CRM system. automatically collect and organize lead information. reduce manual data entry. ensure faster response times to leads. improve the tracking and optimization of marketing campaigns. For strategies on attracting the right leads in the first place, see our [lead acquisition](https://stape.io/blog/lead-acquisition) guide. What is needed for a successful setup Lead Ads campaign (optional) Meta CRM Pixel For the official documentation and additional information, please visit [Meta for Developers, Conversion Leads CRM Integration](https://developers.facebook.com/docs/marketing-api/conversions-api/conversion-leads-integration). How does Facebook Leads API work ![Facebook Leads API - Stape](https://cdn.stape.io/i/68908960c45ed232723120.jpg) API Access Token - Set to your Facebook API [Access Token](https://developers.facebook.com/docs/marketing-api/server-side-api/get-started#access-token). Facebook Pixel ID - Set to a valid Facebook Pixel ID. Lead ID - The 15 or 16 digit leadgen_id from your downloaded leads. Lead Event Source - The name of the CRM where the events are coming from. Event Name (Optional) - The event_name parameter should indicate a lead moving through the sales funnel in your CRM. Default: eventData.event_name Event Time (Optional) - A Unix timestamp in seconds indicates when your CRM updates the lead stage update event. Test ID - Provide a Test ID if you want to test server-side events in the Test Events feature of Events Manager. How to set up Facebook Leads API 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. It's clear that [using webhooks in sGTM can improve the accuracy of tracking conversions and conversion attribution](https://stape.io/blog/webhook-server). Let's explore in detail how to set up webhooks in sGTM and how to use this data for setting Facebook Leads API. 2.1. Check if your CRM or CMS has a built-in feature or plugin for webhooks, as many popular systems do. Once you find it, set up a webhook for the event you wish to track. In the webhook settings, enter your server-side tagging URL, making sure to include a path that uniquely identifies your webhook. In our case: https://ss.wp-demo.stape.io is server-side tagging URL /order_created is a path that differentiates my webhook that sends data whenever an order is placed. ![Webhook order_created - Stape](https://cdn.stape.io/i/6630c91f0769d549967851.png) 2.2. To accurately set up the tag, you need to view webhook data in the sGTM debugger, but it isn't visible by default. To make this data visible, use the Preview HTTP header feature in the sGTM debugger and Stape. To activate the sGTM Preview Header, open your server Google Tag Manager container, click on Preview, then click the three dots in the top right corner. Select Send Requests Manually and copy the X-Gtm-Server-Preview HTTP header. ![X-Gtm-Server-Preview HTTP header - Stape](https://cdn.stape.io/i/66d03930ec11d465056525.png) ![X-Gtm-Server-Preview HTTP header - Stape](https://cdn.stape.io/i/66d039512794e438226062.png) 2.3. Log in to your [Stape](https://stape.io/login) account, open the sGTM container, go to Power-Ups and click sGTM Preview header config. Paste the Preview HTTP header you’ve copied from the server Google Tag Manager debugger and click Save. ![Preview HTTP header - Stape](https://cdn.stape.io/i/66d03973c4eaa095843043.png) This setup allows you to view webhook data in the server Google Tag Manager debugger. After completing the setup, remember to remove the Preview Header from Stape’s sGTM power-ups. Note that our system will automatically remove the Preview Header one hour after it has been activated. 2.4. Process webhook data in server GTM with the help of Stape’s Data Client. [Download Data Client from GitHub](https://github.com/stape-io/data-client). Then, go to the sGTM container, open the Templates sections, and click New client. ![Client templates - Stape](https://cdn.stape.io/i/66d039a49f5ac735990812.png) Click three dots and then Import. Next, select the Data Client template you downloaded from GitHub and save it. ![Data Client template](https://cdn.stape.io/i/66d039c6f031e956497718.png) Go to the Clients tab and create a new Client. Select Client type - Data Client, add client name, and scroll to Accepted Path Settings. Add a path that differentiates your webhook. In my case, it’s /order_created and click Save. ![Data Client - Stape](https://cdn.stape.io/i/6630c9f88f889314720722.png) To learn more about webhooks: [- Send data from CRM to Facebook conversion API using webhooks](https://stape.io/blog/send-data-from-crm-to-facebook-conversion-api-using-webhooks) [- What are webhooks, webhook servers, and how to use](https://stape.io/blog/webhook-server) [- Debug incoming webhooks in Google Tag Manager server preview](https://stape.io/blog/debug-webhooks-google-tag-manager-server) 3. Download [Facebook Leads API](https://github.com/stape-io/facebook-leads-tag) on GitHub or add it in [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-leads-tag) → Open Templates sections in the server Google Tag Manager container → Click New. 4. Click three dots in the top right corner → Click Import → Select Facebook Leads API template you’ve recently downloaded from GitHub → Click Save. ![Facebook Leads API template - Stape](https://cdn.stape.io/i/68909726e2850106250455.png) 5. Click Tags, then New → Select Facebook Leads API. ![Facebook Leads API template - Stape](https://cdn.stape.io/i/68909e3c9634c675506896.png) 6. Fill in the fields the data required and don’t forget to click the Save button. ![Facebook Leads API template - Stape](https://cdn.stape.io/i/6890956fd482e106911982.jpg) 7. Create variables that will extract data from the webhook to use for Facebook Leads API. Open the Variables tab → New variable → Variable type Event Data → Set up event variables for each variable you want to use. ![Variable configuration - Stape](https://cdn.stape.io/i/6630ca6ca31a4140048621.png) 8. Create a trigger. The tag should fire when a Data Client claims a request sent to sGTM by the webhook from the CRM. ![Trigger configuration - Stape](https://cdn.stape.io/i/6630ca8216a59054415766.png) Conclusion For any marketer looking to optimize lead management and CRM integration the [Facebook Leads API](https://github.com/stape-io/facebook-leads-tag) is a must. With it, you will not only merely gather data, but can use it to create more targeted, effective interactions with your potential customers. We hope you’ll like it and find it useful. If you have any questions, please feel free to [leave a ticket](https://stapehelp.zendesk.com/hc/en-us/requests/new), and our support team will be happy to assist you with detailed answers. Need help with the setup? Don't worry, we've got you covered! Click on Get A Quote and we will send you a free quote. --- # 22% cost reduction and 8.2 Event Manager rating | McGen Digital case study Source: https://stape.io/blog/mcgendigital-obtains-22-per-cent-cost-reduction-and-8-in-event-manager-rating This case study explores server-side tracking results achieved by McGen Digital agency, and how they improved their operational efficiency and event management outcomes. [McGen Digital](https://www.mcgendigital.com/), a [Partner of Stape](https://stape.io/partner/mcgen-digital-media), is an agency that helps businesses develop in two directions - server-side tracking and short-form video content creation for social media. They have 19 years of experience in digital marketing and know all the ins and outs of the industry. With McGen Digital, a business can sort out its tracking across different platforms and boost engagement and conversions with the help of unique and compelling short-form organic videos. ![McGen Digital](https://cdn.stape.io/i/66262aab99ff0318094831.jpg) Successfully sold over $7 Million in leads. So far, they have helped their clients generate over $960,000,000 in [Real Estate](https://stape.io/blog/real-estate-facebook-ads) referrals and worked with over 120 Insurance agents providing leads. John McCarthy, has personally upgraded 14 of his websites and then successfully sold the businesses. It was during that journey that he discovered [Stape](https://stape.io/) and its game-changing server-side tracking capabilities, with one key promise at its core – simplicity. Results: Two significant upgrades for [Facebook](https://stape.io/blog/how-to-set-up-facebook-conversion-api) and [Google Ads server to server tracking](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords). By enhancing the Event Manager to seamlessly transmit data back to Facebook and incorporating [Google Enhanced conversions](https://stape.io/blog/ga4-and-google-ads-enhanced-conversions-tracking-setup-guide), the client received staggering results. Within just 14 days, they witnessed an astonishing 22% reduction in overall conversion costs. Event Manager rating skyrocketed from 3.8 to an impressive 8.2, bringing in a flood of high-quality leads. The impact of Stape is nothing short of extraordinary, the client says. Here's a fun fact: one of the minds behind Stape was once a colleague of the founder of McGen Digital, John McCarthy! John said, the set up of Stape and the connection with a sub domain was easy. However, what he did passing over the integration of all the data layers, events, and tracking setup to some specialist people for implementation. Finding the right people was the hard part, however, once he found the right team, John not only used them for all 14 websites but also hired them. John McCarthy is beyond impressed with the system and the tangible difference it has made for him and his team at [McGen Digital.](http://www.mcgendigital.com/serversidetracking) So, don’t hesitate to join a big community of server-side tracking! Would like to receive help with the setup? Sure, we've got you covered! Click on Get assistance and we will send you a free quote. --- # +3.8 percentage-point increase in returning users tracked in an A/B test: client-side only vs server-side tracking | dofollow Source: https://stape.io/blog/dofollow-testing-client-and-server-side-tracking Explore dofollow's A/B testing case study on tracking methods with a Dutch Research Institute. [dofollow](https://dofollow.nl/), a [partner of Stape](https://stape.io/partner/dofollow), known for its forward-thinking digital strategies, conducted an A/B testing experiment in collaboration with a Dutch Research Institute to compare the effectiveness of [client-side and server-side tracking technologies](https://stape.io/blog/server-side-tagging-versus-client-side-tagging). This experiment, initiated in October and observed until the end of November 2023, aimed to directly compare the two tracking methodologies by running them concurrently on the institute's website. The A/B testing approach allowed for simultaneous tracking using both client-side and server-side methods on website traffic to ensure an equitable and comprehensive comparison. Google Analytics 4 was used as data analysis tool. Results Total User Count: The analysis revealed a noteworthy increase in total users recorded via server-side tracking. SST registered 68,904 users compared to the 65,727 users detected through client-side tracking, marking a +5% increase favoring the server-side methodology. Recurring Users: A significant disparity was observed in the count of recurring users. Client-side tracking identified 1,216 recurring users, constituting 1.8% of the total user base. Conversely, server-side tracking reported 3,857 recurring users, amounting to 5.6% of the total. This indicates that SST was capable of recognizing over twice the number of recurring users compared to its client-side counterpart. The pilot study also projected that the gap in recurring user statistics would only widen over time. This projection is underpinned by the durability of cookies with SST, which are retained for 365 days across all browsers, as opposed to the reduced lifespan of cookies in non-Google Chrome browsers under client-side tracking, which ranges from 7 to 31 days. Additional Benefits of Server-Side Tracking Privacy: SST offers enhanced privacy features by allowing control over the data shared with third-party platforms. For instance, it enables the anonymized transmission of statistical data directly to Facebook's Conversion API, circumventing the need for cookie declarations and avoiding breaches of privacy regulations. Website Speed: By relocating tracking logic from the web browser to the server, SST significantly improves website speed. It reduces the need for multiple tracking codes to be loaded by the user's browser, thus enhancing the user experience. Conclusion The setup conducted by dofollow unequivocally demonstrates the superior capabilities of server-side tracking over traditional client-side tracking methods. Not only does SST offer more accurate and reliable data by capturing a greater number of total and recurring users, but it also brings substantial privacy and website performance benefits. This experiment marks SST as a pivotal investment for the future, ensuring resilience against the increasing browser restrictions on tracking. The success of this pilot paves the way for broader adoption and further exploration of server-side tracking technologies in enhancing online marketing effectiveness. If you want to run your own experiments with cleaner data, our guide to [server-side A/B testing](https://stape.io/blog/server-side-ab-testing) walks through how to set it up and what to expect. Need help from the experts? Don't worry, we've got you covered! Click on Get help and we will send you a free quote. --- # Setting up profit on ad spend (POAS) tracking using AI Source: https://stape.io/blog/profit-over-ad-spend-based-tracking-for-google-ads-and-google-analytics Achieve accurate ad profitability! Use server GTM and Firestore to track POAS, and this guide shows you how to set it up using AI. More and more businesses are now focused on precise and effective tracking in their digital marketing strategies. The ability to accurately assess the performance of campaigns is crucial for maximizing return on ad spend (ROAS). You can [calculate return on ad spend](https://stape.io/roas-calculator) to estimate how much server-side tracking could improve your results. Another important metric is Profit Over Ad Spend, which offers a more holistic view of a campaign's effectiveness. While ROAS focuses primarily on the revenue generated per dollar spent on advertising, it doesn't account for the cost of goods sold or other expenses related to the product or service being advertised. This is where Profit Over Ad Spend steps in, providing a more comprehensive perspective. Profit Over Ad Spend takes into account the actual profit generated after subtracting these additional costs. By considering not just the revenue, but the profit, Profit Over Ad Spend offers a deeper insight into the true financial return of advertising campaigns. 💡Meta is testing profit-based campaign optimization. It allows for improving campaign performance, taking into account POAS. It can be configured using Stape's Facebook Conversions API tag for server GTM. Find out more about [profit-based optimization and how to set it up](https://stape.io/blog/meta-profit-based-campaign-optimization) in our article. In practice, this means that a campaign with a high ROAS might not necessarily be as profitable as it appears if the associated costs are high. Many businesses want to hide the real numbers from the competitors, or they just want to keep this sensitive data away from others. So in this blog post we will describe how to set up Profit Over Ad Spend based tracking for Google Ads and Google Analytics and how to use server Google Tag Manager with Firestore, to pull in sensitive profit data (or other sensitive data) and report it to the [Google Ads Offline Conversions API](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm) products in place of revenue as the conversion value. This enables profit bidding, with real time conversion uploads, in a way that protects the sensitive profit data from a determined user. You can also find our ultimate [guide on ad tracking in our blog](https://stape.io/blog/ad-tracking). How to set up Profit Over Ad Spend based tracking: 1st method What is needed for a successful setup: Server Google Tag Manager container. Google Cloud project with Firestore in [Native mode](https://cloud.google.com/datastore/docs/firestore-or-datastore). Accessing individual product profit information before a transaction occurs. Google Analytics or Google Ads accounts. A quick overview: Begin by setting up your tags on the site using a GTM web container. Configure this container specifically for a purchase event. Next, ensure your website is prepared to handle [an eCommerce purchase event](https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtag#purchase) in its data layer, which should include the revenue data. When a purchase occurs, this event will trigger, effectively sending the data payload to server GTM. Then, attach a custom variable to a tag that is activated by purchase events. This variable should be designed to pull profit data from Firestore, replacing the original revenue conversion value with this profit figure. Finally, send this modified event, now featuring the profit conversion value, directly to Google Analytics or Google Ads. This step ensures that the tracking data you are collecting focuses on profit, providing a more accurate and valuable insight into your [advertising performance](https://stape.io/blog/improve-google-ads-performance). Configuration 1. Set up your GA4 configuration to actively send events to the server container. ![Set up GA4 configuration - Stape](https://cdn.stape.io/i/661d18f365c56290274595.png) 2. Set each Firestore document ID to the product ID, this way it's easy to fetch the right document by a single lookup. Create a product collection. For each product, add a corresponding document to this collection. Ensure that each document includes a field specifying the profit value. When configuring the variable in server GTM, specify the Firestore collection name and the document field. 3. Download [gPS Soteria on GitHub](https://github.com/google-marketing-solutions/gps_soteria/blob/main/src/gtm/firestore-value-template.tpl) -> Open templates sections in the server Google Tag Manager container -> Click New. 4. Click three dots in the top right corner -> Click Import -> Select the template you've recently downloaded from GitHub -> Click save. ![gPS Soteria on GitHub - Stape](https://cdn.stape.io/i/661d1973a0a41122513475.png) Go to the permission tab and set the permissions for Firestore, ensuring you update the project ID. ![Permissions in server GTM - Stape](https://cdn.stape.io/i/661d1995d1dca460880068.png) 5. In the HTML data layer, there's a revenue value. This value is then exchanged for the profit value within the server-side container. The profit value is retrieved from Firestore using a custom profit variable template that you just set up: When the purchase event triggers, it activates the GA4 tag as well as the Google Ads Conversion tag. A custom profit variable is linked to this tag, designed to substitute the original conversion value. This profit variable operates using a specific custom variable template to extract profit data from Firestore, aggregating the total profit of all items purchased. And the event, now bearing the revised conversion value, is communicated to Google Analytics and Google Ads. 6. Attach a Google Cloud service account to the deployment. We have a detailed article on [how to connect Google Service Account to stape](https://stape.io/blog/how-to-connect-google-service-account-to-stape). Don't forget to grant access for the Firestore Project. 7. Go to variables -> new user defined variable and create a “profit” variable from the profit variable template. 8. Go to tags and click on new. 1. Setup for Google Analytics 4 Select an GA4 tag. In the “Parameters to add / edit” replace value with the profit variable. ![GA4 tag - Stape](https://cdn.stape.io/i/661d19ffa3e8f694420822.png) 2. Setup for Google Ads Select a Google Ads Conversion Tracking tag. In the configuration add the profit variable to the 'Conversion Value' field. ![Google Ads tag - Stape](https://cdn.stape.io/i/661d1a2ca9e55651132549.png) 9. The trigger should be a custom event for purchase events. 10. Save and deploy the code. How to set up Profit Over Ad Spend based tracking: 2nd method [gPS Phoebe](https://github.com/google-marketing-solutions/gps-phoebe/tree/main) allows obtaining real-time predictions from a Vertex AI model. These predicted values can then be employed as confidential conversion values for value-based bidding strategies. What is needed for a successful setup: [Server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) A Vertex AI endpoint with the model you want to use. Google Cloud project with billing enabled Google Analytics or Google Ads accounts. Configuration 1. Download [gPS Phoebe on GitHub](https://github.com/google-marketing-solutions/gps-phoebe/blob/main/gtm/variable_template.tpl) -> Open templates sections in the server Google Tag Manager container -> Click New. 2. Click three dots in the top right corner -> Click Import -> Select the template you've recently downloaded from GitHub -> Click save. ![gPS Phoebe - Stape](https://cdn.stape.io/i/661d1abc6afde320139718.png) 3. Now in the Variables section click on New and add Vertex AI Prediction. ![gPS Phoebe - Stape](https://cdn.stape.io/i/661d1aebb4b2b014738304.png) Complete the configuration by filling in the details of your environment. In addition to the mandatory fields, it's necessary to include the request data that is to be dispatched to the Vertex AI endpoint. The nature of this data is contingent on the specific requirements of your AI Model. 4. Navigate to the appropriate Tag associated with the purchase or conversion event. Here, replace the conversion value (or a similar field) with the variable you have newly created, which contains the predicted value from Vertex AI.For example: Use case You add to the Data Layer a real Profit and Margin, but these numbers are hidden by some secret formula that only knows your backend and you. profitinDL = 4861 real profit = (4861-100)/69 Basically you send 4861 from web to server GTM. Then, in your server container, you can add a custom variable that does: (4861-100)/69 - and add this field using transformation. Please notice that the backend always knows the correct profit, so it can write the correct profit to Data Layer. You need to have only one formula for hiding real profit. This formula is used only for hiding data and not for actual profit calculation from price. So, this formula is always static. You can use it for all numbers you want to secretly pass to the sGTM from Data Layer. Example real profit = 69 on backend = 69*90+100 = 6310, and put in Data Layer 6310 on sGTM = (6310-100)/90 = 69 which is real profit that we send to gAds. Conclusion Profit Over Ad Spend provides a more realistic view of the financial impact of advertising campaigns, accounting for underlying costs. We hope that with this article you will manage to keep sensitive data protected while still benefiting from Google's advanced ad targeting and optimization capabilities. With real-time conversion uploads and profit bidding, you are now empowered to maximize return on investment, fine-tune your marketing strategies, and gain a competitive edge. Remember, successful implementation requires a careful setup. Once in place, this Profit Over Ad Spend-based tracking system offers a more transparent, effective, and secure way of measuring and enhancing the profitability of online advertising efforts. Need help with the setup? Don't worry, we've got you covered! Click on Get help and we will send you a free quote. --- # Update to IPv6 for Facebook events with Stape Source: https://stape.io/blog/update-to-ipv6-for-facebook-events-with-stape Stape has added the ability for sGTM containers to pass IPv6. Find out how to overcome errors with update to IPv6 for Facebook events. More and more people are getting errors when attempting to send IPv6 for Facebook events, such as issues noted during critical actions like "Send ipv6 for initial checkout, add to cart & add payment info". The problem lies in the transition from the longstanding IPv4 to the more advanced IPv6 protocol, a shift that, while promising enhanced connectivity and tracking accuracy, brings its own set of challenges. Understanding the nuances of IPv6, especially in comparison to its predecessor IPv4, is critical for anyone looking to obtain the full potential of their online platforms. Here, we'll simplify and explain the details of IPv6, highlight its advantages, and provide you with the solution for the errors of Conversion API. What is the IPv6 address for Facebook? An IPv6 address for Facebook is a unique identifier used by the platform within the IPv6 protocol to manage internet traffic. IPv6 addresses are alphanumeric and offer a vastly larger number of unique combinations, accommodating the ever-growing number of devices online. As more devices connect online, the pool of available IPv4 addresses has become insufficient. IPv6 addresses this limitation by providing a near-infinite pool of unique addresses, ensuring every device and service, like Facebook, has a distinct, reachable address. This not only supports the growth of the internet but also enhances connectivity quality, security, and overall efficiency in data routing and management. What is the difference between IPv4 and IPv6? ![difference between IPv4 & IPv6](https://cdn.stape.io/i/6618fe9ea56e6992384256.png) While IPv4 has been the backbone of the internet for many years, IPv6 represents a significant leap forward, addressing the needs of the modern, expansive internet ecosystem: 1. Address Format: IPv4 uses a 32-bit address format, typically displayed in decimal format as four numbers separated by dots (e.g., 192.168.1.1). In contrast, IPv6 uses a 128-bit address format, shown as eight groups of four hexadecimal digits, separated by colons (e.g., 2001:0db8:85a3:0000:0000:8a2e:0370:7334). Due to its 32-bit format, IPv4 can support about 4.3 billion unique addresses. This seemed sufficient in the early days of the internet but is now exhausted due to the massive growth in devices and web services. IPv6, with its 128-bit format, can handle approximately 340 undecillion (a number with 36 zeros) addresses, ensuring a scalable and long-term solution for the internet's expansion. 2. Efficiency and Performance: IPv6 includes features for more efficient routing and packet processing, reducing the size of routing tables and improving the method in which traffic is managed and transmitted across networks. 3. Security: IPv6 was designed with IPsec (a suite of protocols for securing internet protocol communications) as a fundamental, not optional, component, which enhances the security aspect right at the IP level. 4. Simplified Network Configuration: IPv6 allows for auto-configuration of devices. IPv4 often requires manual configuration or additional protocols like DHCP (Dynamic Host Configuration Protocol) for assigning addresses. 5. No More Network Address Translation (NAT): IPv4 often uses NAT to manage the shortage of addresses, where a single public IP is used for an entire network. IPv6, with its vast address space, eliminates the need for NAT, allowing each device to have its unique public IP address, simplifying various network processes and improving end-to-end connectivity. Common errors on Update to IPv6 During the transition from IPv4 to IPv6, users often encounter several common errors, particularly in Facebook where precise event tracking is crucial. ![Common errors on Update to IPv6](https://cdn.stape.io/i/6618ff1059a42381359091.png) During the transition phase, when both IPv4 and IPv6 are in use (dual-stacking), IP address conflicts can occur. This might affect the ability to track user activities accurately on Facebook, especially for events that require precise user identification. Сommon error is the improper tracking of events. This is often due to discrepancies in how IPv4 and IPv6 handle data packets and user identification. For example, if a user’s device switches between IPv4 and IPv6 addresses (due to varying network support), it can result in inconsistent event tracking on Facebook, affecting data accuracy. While IPv6 inherently supports better security protocols, misconfigurations can lead to vulnerabilities. For example, if the IPsec feature of IPv6 is not properly utilized, it might lead to security risks in data transmission, including sensitive information used in Facebook events. Send IPv6 for events with Stape IPv6 support is available on [all servers](https://stape.io/solutions/multiple-server-locations) on Stape Global and Stape Europe. IPV6 can be already sent through the [Stape GTM Data Tag](https://stape.io/solutions/data-tag-client), providing seamless integration and consistent tracking capabilities across the new internet protocol. ![Send IPv6 for events with Stape](https://cdn.stape.io/i/6618ff3ec5c1e343809935.jpg) ![Send IPv6 for events with Stape](https://cdn.stape.io/i/6618ff4cd32b9117738304.jpg) This ensures that your data collection is future-proof and adaptable, maintaining accuracy and efficiency even as network standards evolve. With Stape's advanced infrastructure, you can be confident in the reliability and comprehensiveness of your analytics, regardless of whether your users are connecting via IPv4 or IPv6. Here are useful articles on: [How to set up Google Tag Manager Server Container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) [How to add a custom domain to the Google Tag Manager Server container](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) [How to Setup Facebook Conversion API + Events Deduplication & Hash User Data](https://stape.io/blog/how-to-set-up-facebook-conversion-api) [Facebook Event Match Quality – What it is and how to increase it](https://stape.io/blog/how-to-improve-event-match-quality-facebook) Conclusion The transition from IPv4 to IPv6 is a complex process that addresses the growing need for more IP addresses and provides enhanced functionality. However, as with any significant technological shift, it brings challenges. The problems with tracking specific events on Facebook underscore the importance of ensuring that IPv6 is properly configured and that systems are ready to handle the unique aspects of IPv6 traffic. For businesses, this means ensuring their online platforms, including their tracking and analytic tools, are fully equipped to handle IPv6 data seamlessly. At Stape, all servers are IPv6 supported. And you don’t need to worry about compatibility issues or potential disruptions in service. Your tracking and analytics will function smoothly, capturing and analyzing data across both IPv4 and IPv6 networks. This ensures that you'll have comprehensive insights into your online traffic, without any gaps or inaccuracies caused by the transition. Switching to server-side? Click Try for free and check all the solutions and benefits of Stape at no cost! --- # 50% faster onboarding and 60% lower infrastructure costs | DataLemon Source: https://stape.io/blog/datalemon-and-selectika-onboarding-boost-and-cost-savings Find out how Selectika and agency DataLemon used Stape’s Data Tag to get improvements in onboarding efficiency and cost saving on infrastructure. [DataLemon](https://stape.io/partner/data-lemon) is a data analytics company that specializes in providing solutions for businesses to efficiently analyze, visualize, and derive insights from their data. Their platform offers a range of tools and services aimed at helping organizations harness the power of their data to make informed decisions, improve processes, and drive growth. Their client, [Selectika](https://selectika.com/), is focused on developing AI-powered product recommendations for fashion websites. They approached DataLemon with the need to demonstrate the effectiveness of their recommendations by tracking website performance. The requirements were clear: Selectika needed a user-friendly data collection tool that could be easily implemented across various websites (Wordpress, Shopify, JS, etc), compatible with or without Tag Manager, without necessitating new DataLayer implementation, and prioritizing privacy. Solution To meet these needs, DataLemon examined the Stape's client-side [Data Tag](https://stape.io/solutions/data-tag-client), which allows sending data to Server Google Tag Manager container. They deconstructed and rebuilt the Data Tag into a marketing pixel format (very similar to how Meta Pixel is built). This approach allows collecting data to the sGTM, utilizing fast implementations on the end customer website. The data flow schema: Customer website >> GA4 dataLayer >> customized client-side Data Tag >> sGTM Data Tag >> DataLemon’s database The code that DataLemon has developed has been successfully implemented across multiple websites, seamlessly sending data to sGTM, and subsequently to DataLemon’s database. Results Datalemon achieved remarkable results, demonstrating the power of the partnership with Stape: a significant improvement in onboarding efficiency, with new end-clients being integrated 50% faster than before. 60% cost saving on infrastructure, development and maintenance. With these results, Selectika can now confidently expand their offerings, armed with the tools and insights necessary to enhance their services, streamline operations, and deliver exceptional value to their clients. Need help from the experts? Don't worry, we've got you covered! Click on Get assistance and we will send you a free quote. --- # Make your tracking HIPAA-compliant Source: https://stape.io/blog/make-your-tracking-hipaa-compliant HIPAA compliance for tracking: understand PHI, BAAs, and how Stape's server-side tracking and anonymization features enable secure analytics. Learn more. [Health Insurance Portability and Accountability Act](https://www.hhs.gov/hipaa/for-professionals/index.html), or HIPAA, is a U.S. law that primarily aims to protect patients' privacy and security concerning their medical information and health records. Many marketers and business owners who set up server-side tracking on their websites need to be particularly cautious to ensure that their tracking practices are compliant with HIPAA regulations. This is especially critical if their website collects, stores, or transmits any health-related information. Your approach to web analytics platforms and HIPAA depends on whether you collect protected health information (PHI) through your site or app. Data that isn’t considered PHI is outside the scope of HIPAA. To legally send PHI to your analytics platform, you must sign a [business associate agreement](https://www.hhs.gov/hipaa/for-professionals/covered-entities/sample-business-associate-agreement-provisions/index.html) (BAA) with the vendor. This agreement specifies each party’s responsibilities regarding PHI and ePHI and establishes a legally binding relationship. Many vendors don’t want to sign BAAs. In this case, you must remove all identifiers from the data to use their services so they are no longer considered PHI. But the process of de-identification is long and complicated. [Stape obtained a HIPAA-compliant certificate](https://app.vanta.com/stape/trust/q4enx4q7gch43uflljd8) and can sign a BAA with you for your peace of mind. We ensure that all handling of protected health information meets the stringent standards required in the healthcare industry. This article explains how to make your tracking setup more efficient and privacy-compliant, ensuring that you gather valuable data insights while respecting user consent and regulatory requirements. Google Analytics does not comply with HIPAA standards Google Analytics is not inherently HIPAA compliant. This is primarily because it's not designed to handle Protected Health Information (PHI) as outlined under HIPAA guidelines. Since using Google Analytics might be crucial for some businesses, Stape created a solution for using it in a HIPPA-compliant way. We will discuss it later in the blog post, but first, let’s understand what it means to be HIPPA compliant. What is HIPAA-compliant tracking Making tracking HIPAA compliant involves ensuring that any tracking methods or tools used in healthcare settings comply with the Health Insurance Portability and Accountability Act (HIPAA) regulations. HIPAA requires protection and confidential handling of protected health information (PHI). Here are vital steps to make tracking HIPAA compliant: Use HIPAA-Compliant tools and vendors. Do not share Protected Health Information (PHI) with third-party analytics tools like Google Analytics. Implement strict access controls. Anonymize data. Make tracking and analytics HIPAA compliant using Stape Server-side tracking with Stape simplifies the process for businesses to adhere to HIPAA regulations while still using the existing marketing and analytics tools, like Google Analytics. To help our clients make their tracking HIPPA compliant, [Stape obtained a HIPPA certificate](https://app.vanta.com/stape/trust/q4enx4q7gch43uflljd8) and provides a tool to anonymize or remove PHI and user identifiers from the requests before any analytics tools can access those data. 1. Business Associate Agreement (BAA) You must have a BAA with each vendor if you use third-party services in your tracking setup. This agreement ensures that the vendor will protect PHI to the standards set by HIPAA. You can sign [BAA with Stape](https://app.vanta.com/stape/trust/q4enx4q7gch43uflljd8) to ensure that our handling of your data meets HIPAA compliance standards. By doing so, Stape agrees to maintain appropriate safeguards for protecting sensitive health information, report any breaches consistent with HIPAA regulations, and ensure that any subcontractors or agents also comply with HIPAA requirements. This is crucial for anyone handling Protected Health Information to legally and securely use Stape's services within the scope of their healthcare operations. If you want to sign BAA with Stape, please email [support@stape.io](mailto:support@stape.io), and our team will gladly assist you. 2. Implement strict access controls When utilizing server-side tracking, you can strictly manage and regulate which data is shared with each vendor. On the other hand, with web tracking, this level of control is unattainable because third-party scripts must be added to the website to enable browser tracking. If not properly managed, these scripts can easily scrape any information from your website without any restrictions. By establishing a server-to-server connection, vendors can only access the specific user or event data that you have authorized them to view. The data flow in server-side tagging using [server Google Tag Manager](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) looks like this: Deliver data to sGTM using GA4, DataTag/Data Client, or Webshooks. If you decide to use Google Analytics 4 for data transfer to sGTM, you can utilize the [Stape Anonimizer power-up](https://stape.io/solutions/anonymizer) to remove any sensitive information. Configure which information each vendor receives using sGTM tags. 3. Encrypt PHI and prevent user reidentification Since you cannot send PHI to Google Analytics or any other third-party tool, you must strip all PII/PHI from the data before sending it. You'll first need to configure the Anonymizer power-up to anonymize or remove PHI. You can control how you want to anonymize certain parameters, such as leaving the IP as is, removing certain parts of the IP, or changing it to a static IP from the same country. To configure the Anonymizer power-up, all you need to do is select the checkboxes near each parameter that you want to modify. ![anonymizer power-up from stape](https://cdn.stape.io/i/660bc5854d54c274272396.png) Once you've selected how data should be anonymized, you need to update the tagging server URL for your [server-side Google Analytics 4](https://stape.io/blog/how-to-anonymize-user-data-google-analytics-4) to include "/anonymize." For example, from sgtm.site.com to sgtm.site.com/anonymize. When requests go through this URL, Stape will automatically remove or anonymize the selected parameters. Here are the articles about the cases of using these power-ups: [How to anonymize user data in Google Analytics 4](https://stape.io/blog/how-to-anonymize-user-data-google-analytics-4) [The intelligent way to anonymize user data and use consent mode in Google Analytics 4 using GEO headers](https://stape.io/blog/how-to-anonymize-user-data-google-analytics-4) Frequently asked questions about HIPAA compliance and tracking What is included in Protected Health Information? Protected Health Information (PHI) refers to any information in a medical record that can be used to identify an individual and that was created, used, or disclosed while providing a health care service. It’s a central focus of HIPAA's privacy rules. This Protected Health information includes: names, addresses (including subdivisions smaller than state, like city, county, or zip code), dates (except year) related to individuals (like birth date, admission date, discharge date, date of death), telephone numbers, email addresses, social security numbers, medical record numbers, health plan beneficiary numbers, account numbers, certificate/license numbers, vehicle identifiers and serial numbers including license plate numbers, device identifiers and serial numbers, web URLs, IP address numbers, biometric identifiers (including finger and voice prints), full-face photographs and any comparable images, and any other unique identifying number, characteristic, or code. any part of a patient's medical record or payment history. For example, diagnosis data, treatment information, medical test results, prescription information, and doctor's notes fall under this category. the individual’s payment for the provision of health care that contains identifiers. It may cover billing information, insurance policy numbers, payment history, and other details linked to financial transactions for medical services. Is HIPAA only for healthcare providers? No. It actually applies to a broader range of entities: Lawyers, accountants, IT consultants, billing companies, data processing firms, or others who have access to PHI through their services to covered entities. Third-party administrators that assist health plans with claims processing. Consultants that perform utilization reviews for hospitals.Healthcare Providers: This includes doctors, clinics, psychologists, dentists, chiropractors, nursing homes, pharmacies, and any other entity that transmits any health information in electronic form in connection with transactions for which HHS has adopted standards. Health Plans: This category includes insurance companies, health maintenance organizations (HMOs), employer-sponsored health plans, Medicare, Medicaid, and other government and private companies that pay for healthcare. Do HIPAA laws apply to everyone? No. Only to those who handle health information. However, HIPAA does not apply to all organizations or individuals that might have access to health information. For instance, it doesn't cover employers, life insurance companies, schools, or school districts unless they otherwise qualify as a covered entity or business associate. Similarly, entities like fitness clubs and websites collecting health data from individuals are only covered by HIPAA if they perform functions on behalf of a covered entity. What is a HIPAA compliance audit? HIPAA compliance audits can be conducted internally as part of an organization’s regular compliance checks or externally by government agencies like the [Department of Health and Human Services](https://www.hhs.gov/) (HHS), the [Office for Civil Rights](https://www.hhs.gov/ocr/index.html) (OCR), or third-party auditors. They must ensure that protected health information is properly handled and that access is limited to only those who need it for treatment, payment, or healthcare operations. They are also responsible for checking whether proper documentation is maintained regarding HIPAA policies and procedures and that staff is adequately trained in these policies and procedures. What are the rules of HIPAA? There are three main components of HIPAA: 1. The Privacy Rule: - Protected health information should be controlled and disclosed.Patients have rights over their health information, including the right to examine and obtain a copy of their health records and request corrections. 2. The Security Rule: - Policies and procedures should clearly show how the entity will comply with the act. Physical safeguards involve controlling physical access to protect against inappropriate access to protected data. Technical safeguards involve the technology used to protect ePHI and control access. 3. The Breach Notification Rule: - Entities should provide notification following a breach of unsecured PHI. Are there any penalties for a HIPAA law violation? Yes. These penalties can be significant and vary based on the nature and extent of the violation and the harm caused, including whether willful neglect was involved. Penalties can range from $100 to $50,000 per violation, with an annual maximum of $1.5 million. And among that, companies may also: face criminal charges, which can include fines and imprisonment. face civil lawsuits, where affected individuals may sue for damages caused by health information privacy breaches. face reputational damage and the loss of patient or client trust. Conclusion Take into consideration that HIPAA is critical U.S. legislation that can’t be ignored. If you are covered by it, you must adhere to stringent rules aimed at safeguarding patient privacy and the security of health information, especially in electronic forms. Non-compliance can lead to significant penalties, emphasizing the importance of these regulations in maintaining the confidentiality and integrity of health information in the healthcare system. When correctly configured, server-side Google Tag Manager enhances your control over the data shared with Google. Instead of distributing user data across various third-party servers, it's directed solely to the server hosting the GTM container. Within this server container, you can eliminate any personally identifiable information (PII) before forwarding the data to marketing associates. Don’t hesitate to contact our [support team](https://stapehelp.zendesk.com/hc/en-us/requests/new) for further information about your server-side tracking setup on Stape. Would like to receive help with the setup? Don't worry, we've got you covered! Click on Get assistance and we will send you a free quote. --- # Adform tag for server-side Google Tag Manager Source: https://stape.io/blog/adform-tag-for-server-side-google-tag-manager Here you can find a step-by-step guide on how to set up Adform tag for your server-side Google Tag Manager container and a description of the tag. Adform is a company specializing in digital advertising solutions. They offer a range of services including efficient workflows, omnichannel reach, and better optimization of working media. Adform focuses on maximizing the use of data for competitive advantage, preparing for a [cookieless](https://stape.io/blog/what-is-cookieless-tracking) future, and providing solutions for sustainable trading. We created the [Adform tag](https://github.com/stape-io/adform-tag) to make the Adfrom integration process simpler. In this article, I'll show you how to set up this tag using server-side Google Tag Manager and describe the implementation keys. Adform tag description There are two configuration types that Adform tag includes: PageView and TrackEvent. Pageview event stores the adfcookieid and adfcd URL parameters inside the adfuid and _adfcd cookies, respectively. TrackEvent sends a request to the Adform API with the specified conversion event data. In Pageview, you should add the [Adform Cookie ID (also known as Third-Party Cookie ID)](https://www.adformhelp.com/hc/en-us/articles/9740579489041-Use-Server-Side-Tracking#UUID-8913ffd2-24c4-09ed-4ee9-55c2bec39e73_bridgehead-idm4599406268131232501691310204) (__ADFUID__ macro) and [Adform Click ID](https://www.adformhelp.com/hc/en-us/articles/9740564764689-Use-Cookieless-Post-Click-Attribution#UUID-69fb83f0-f9d5-49d3-12f3-61ae606f8bf8_bridgehead-idm234868328732368) (__ADFCD__ macro) parameters that were used in Adform campaign settings. Update adfuid and _adfcd cookie lifetime if needed. ![adform tag description - stape](https://cdn.stape.io/i/69ca976484ef9363708374.png) In Track events you should make a POST request to Adform Server Side Tracking API. Tracking Domain - is the tracking domain set on the advertiser level. Tracking Setup ID - is the advertiser's tracking ID, which can be found under Site Tracking in Adform UI. Event Name - event-based conversion name that was setup in Adform, case-sensitive. Variables - a table map of event variables that are sent to Adform API. Compliance - pass information about the user's consent to the Adform API. ![adform tag description event types - stape](https://cdn.stape.io/i/6601648743e97236628598.png) Key advantages of using the Adform tag for sGTM Using the Adform tag inside server Google Tag Manager helps you track conversions with more accuracy and less hassle. Here’s what you get when you move this setup to the server: Better attribution. By saving the Adform click ID (adfcookieid) in a first-party cookie, you make sure conversions are tied back to the right ad, even if they happen later. More complete conversion data. The TrackEvent tag lets you send custom values like order ID, revenue, and currency straight to Adform’s API without relying on what the browser collects. No code on your site. Tags run in the server container, not the browser, which means no extra scripts slowing down your site or risking being blocked by browser privacy tools. More control, less noise. You decide exactly what gets sent to Adform and when. No duplicates, no missing IDs, no guessing what worked. This way, your campaign results reflect reality, not just what the browser felt like showing. How to set up Adform tag for server-side Google Tag Manager 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. The two most popular ways of sending data to sGTM are by [setting server-side Google Analytic 4](https://stape.io/blog/set-up-ga4-server-side-tracking) and [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Download [Adform tag](https://github.com/stape-io/adform-tag) on GitHub or add it from [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/adform-tag)-> Open templates sections in the server Google Tag Manager container -> Click New. 4. Click three dots in the top right corner -> Click Import -> Select Adform tag template you’ve recently downloaded from GitHub -> Click save. ![adform tag implementation - stape](https://cdn.stape.io/i/66cf15fb5dc09700064710.png) 5. As mentioned earlier, Adform tag sends two events to Adform: Pageview and TrackEvent. To determine what event to send, the tag will listen to the trigger. Parse events in the trigger, and send corresponding events to Adform. Conclusion Moving your Adform tag to the server container is more than a technical change. This decision will make your conversion data cleaner and your tracking setup simpler. Instead of trying to fill the gaps caused by browser limits, you’re sending reliable signals directly from your cloud server. If you use Adform in your ad strategy, server-side tagging gives you the precision and stability to get the most from it. Need help from the experts? Don't worry, we've got you covered! Click on Get assistance and we will send you a free quote. --- # Filtering bot traffic in GA4 using server-side GTM and Stape’s Bot Detection Source: https://stape.io/blog/filtering-spam-in-ga4-with-stape-bot-detection-power-up Learn how to block referral spam in GA4 and protect your data with GTM server-side tagging and bot detection tools. GA4 bot filtering is essential for keeping your analytics data clean, and recently, site owners have been increasingly faced with strange, unwanted traffic in Google Analytics 4 reports. The most common problem is referral spam with suspicious sources and geolocation "Poland". The source sites of such traffic are usually the same: news.grets.store, statis.seders.website, trast.mantero.online, ofer.bartikus.site. If you have already encountered them, you are not alone. ![GA4](https://cdn.stape.io/i/6911fc47e7a14813664558.png) Google Analytics recommends adding these sites to the List of unwanted referrals. But in fact, this does not solve the problem; it only changes the traffic category to "Direct," leaving spam in your analytics. Another issue is that GA4 cannot filter traffic by referrals, only by IP addresses. In this article, we will examine spam through the Measurement Protocol, the types of spam that occur most often - particularly referral and event spam - and, most importantly, [how to stop bot traffic on the website](https://stape.io/blog/bot-filtering-blocking) and protect your data in the GA4. Why would someone send spam into Google Analytics? Google Analytics is the most popular web analytics tool millions of users use. Referral spammers hope that when you go to Google Analytics and see traffic from unknown websites, you will be curious to see what they are. It is one of the grey ways of getting traffic. There are multiple ways of monetization: redirecting to any affiliate offers or directing to a landing page offering to buy something, download software, promote a marketing agency, or any other service. Spammers need to know your Google Analytics ID to send fake hits to your GA account. But sometimes, they don't even bother themselves with finding real Google Analytics IDs. Spammers may generate fake IDs in large quantities and hope that some of them are real GA identifiers. An automated script sends false data to GA accounts using measurement protocol. How can referral spam affect your website? Because of ghost spam, you cannot see the real data about your website visitors since fake traffic is mixed with organic. Ghost spam affects all GA metrics: number of visits, bounce rate, average session duration, etc. It can also lower your organic ranking since search engines can interpret spam traffic as attempts to increase your SEO positions by using grey technologies. What is GA4 bot filtering? GA4 bot filtering helps exclude automated, non-human traffic from your analytics reports. By default, GA4 filters out known bots and spiders based on the IAB/ABC International Spiders and Bots List. However, this built-in filtering is limited and doesn't cover all types of bot traffic, especially newer spam sources. The main limitation is that GA4 can filter traffic only by IP address. This means referral spam often slips through and continues to pollute your data. How to filter spam in GA4 with Bot Detection power-up 1. Stape’s Bot Detection power-up To solve this problem, you can turn on the [Bot Detection power-up](https://stape.io/solutions/bot-detection). It scores each request from 0 to 100. Requests between 50 and 75 are only flagged because some checked parameters do not fully confirm bot behavior. Requests above 75 are blocked if blocking is enabled, as all parameters show clear bot activity. ![Power-Ups](https://cdn.stape.io/i/6911fc789fce6478932315.png) This power-up automatically checks whether each incoming request comes from a bot (e.g., referral spam, automated scripts). It can detect and block suspicious requests before they reach your server or analytics tools. When enabled, it adds two headers to every request: X-Device-Bot (returns true or false) X-Device-Bot-Score (a score ranging from 1 to 100, with 100 indicating a high likelihood of bot traffic) Next, by creating a Request Header variable for these headers in your sGTM container, you can leverage bot detection signals to filter out unwanted or suspicious traffic. For example, you can block GA4 or other tags from firing if the request is identified as bot traffic. Note: this filtering can now be done either by using a variable in sGTM (as before) or directly within the Stape account by enabling power-up features. Benefits of Bot Detection power-up: ​​1. More accurate analytics data 2. Better security and protection from fraud 3. Easy to set up and manage Once activated, with all requests to the server, you will receive two additional parameters, X-Device-Bot (true or false) and X-Device-Bot-Score (a score between 1 and 100 probability of a request from a bot) in the request headers with each request: ![Additional parameters](https://cdn.stape.io/i/6911fc8c8f668515904134.png) Then you can simply add this as an additional check to the triggers on the server container: On the server container, create a variable with the type 'Request Header' and specify 'X-Device-Bot' to receive the value of this header. Use this variable as an additional check in your GA4 trigger on the server and also in any other triggers where you want to limit the impact of bot traffic: ![Trigger Configuration](https://cdn.stape.io/i/6911fc9b64a7e489619476.png) Now, if the request is determined to be from a bot - your tag will not trigger, and the data will not be sent. You can also combine this setup with the [Block Request by IP](https://stape.io/solutions/block-request-by-ip) power-up. It lets you block requests coming from up to 30 chosen IP addresses. This way, you can filter out internal traffic from your team and block traffic if you notice bots coming from a specific IP address, keeping this data out of GA4 and other platforms. 2. Cloudflare bot detection If you use Cloudflare and, like everyone else, have a specific country from which spam traffic comes (most of it is from Poland), you can activate Bot Check for IP addresses from Poland. This is a good solution, but only if you have no real visitors from the location of the spam traffic. Otherwise, you will definitely affect the number of real visits from there. ![New custom rule](https://cdn.stape.io/i/6911fcab1093f545938593.png) Besides, Cloudflare also provides the following features to block bot traffic: Known bots - will exclude the traffic from the Cloudflare’s list of bots. Verified bot category - exclude bot traffic from the listed categories. ![block bot traffic](https://cdn.stape.io/i/6911fcee071e7385636388.png) 3. Block spam referrals on the trigger level If the referral contains your spam domains, you can add an exception trigger for your GA4 tags. It is quite easy to do this: Make sure you have the referrer variable enabled in your built-in variables. ![Block spam referrals on the trigger level](https://cdn.stape.io/i/6911fd005ee9f070402466.png) Create a new Custom Event trigger that will work for any event (.* via regex will be responsible for this) and specify an additional condition for the trigger that the referrer matches regex your spam domains. In regex you can specify 'or' with | without spaces. For example: news.grets.store|static.seders.website|another.domain ![Custom Event trigger](https://cdn.stape.io/i/6911fd0fb6304035102715.png) Add this trigger as an exception to your GA4 tags and publish the changes on your container. ![GA4 tags](https://cdn.stape.io/i/6911fd1e7ae74899087184.png) Thus, the exception trigger will prevent the tags from working if the referral contains one of your spam domains, and this data will not be included in GA4. Conclusion Referral and event spam in Google Analytics 4 is a serious problem that distorts statistics and can damage your SEO strategy and data-based solution. Unfortunately, the built-in GA4 mechanisms currently do not allow the filtering of such traffic by referral sources effectively. And although the GA4 does not yet have simple tools for filtering such traffic, the solution is. In this article, we talked about how exactly you can protect your data using server tagging through Google Tag Manager and the powerful Stape Bot Detection tool. From adding a secret key, to exceptions in triggers and bot filters. The most important thing is not to ignore the problem. The sooner you implement basic protection, the more accurate and useful your reports will be. And if you also switch to server GTM, you will get not only protection, but also additional advantages: cleaner data, better site speed and more control over analytics. If you do not know where to start - try to test at least one of the solutions described in this article. You will see how your analytics will change in a few days. Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Building a custom CDP and enriching event data using server-side GTM Source: https://stape.io/blog/building-a-custom-cdp-and-enriching-event-data-using-server-side-gtm This blog post provides practical tips to enhance data management and analytics by building a custom CDP and enriching event data utilizing server GTM. Before making a purchase, customers interact with brands through various channels, both online and offline. This can make it difficult for marketers and analytics specialists to keep track of these interactions in one place. Standard tools like Google Analytics or [Matomo server-side tracking](https://stape.io/blog/matomo-server-side-tracking) often cannot track offline events. To solve this problem, people usually use Customer Data Platforms (CDP). One way to use a [CDP](https://stape.io/blog/cdp-vs-crm) is to purchase a pre-built tool, which can be expensive. Another option is to build your CDP. In our blog post, we will show how to build a simple version of CDP using the server Google Tag Manager and database. This setup allows you to combine all your customer information in one place, making it easier to understand and reach out to them more effectively. Whether you are new to tracking or an experienced specialist, this guide can help you create a CDP that significantly improves how you manage [customer data](https://stape.io/blog/customer-data-analytics). How the schema of CDP on sGTM looks like The server Google Tag Manager container will receive requests on all user interactions, whether online or offline. You can use standard clients like GA4 or Data Client to receive online events from web GTM. To retrieve offline events, you can use webhooks. Later in the blog, I will show how to send and debug webhook data inside sGTM. No matter what type of data sGTM receives, it will store the data in the database. There are several databases that sGTM can be integrated with, for example, Firebase, Supabase (much cheaper than Firestore), or [Stape Store](https://stape.io/solutions/stape-store). Here I will use the [Stape Store](https://stape.io/solutions/stape-store) since it is a built-in functionality inside Stape and is free of charge for Stape-paid customers (Pro plans or higher). Besides the sGTM and store, we will also utilize a unique user identifier, which will help store data for one user in the same document. Components needed 1. Data source (CRM, SDK, CMS, mobile app, website, etc). 2. Server GTM container. 3. Database (I will use Stape Store in this guide. You can also utilize FireStore or Supabase, for which Stape created the [Supabase writer tag](https://stape.io/blog/supabase-writer-tag-for-server-google-tag-manager)). 4. To read/write data from the database these sGTM templates can be used: [Stape store writer tag](https://github.com/stape-io/stape-store-writer-tag) [Stape store lookup variable](https://github.com/stape-io/stape-store-lookup-variable) [Stape restore variable](https://github.com/stape-io/stape-store-restore-variable) [Firestore writer tag](https://github.com/stape-io/firestore-writer-tag) (in case you use Firestore) [Firestore restore variable](https://github.com/stape-io/firestore-restore-variable) [Supabase writer tag](https://github.com/stape-io/supabase-writer-tag) (in case you use Supabase) [Supabase lookup variable](https://github.com/stape-io/supabase-lookup-variable)https://github.com/stape-io/supabase-lookup-variable 5. Unique user identifiers. In this guide, I will use a [Unique user ID](https://stape.io/solutions/user-id) or WordPress user ID that [Stape WordPress plugin](https://wordpress.org/plugins/gtm-server-side/) generates. The flow description This is how user data flows from the data source (CRM) to CDP: Every time a user purchases, CRM sends a webhook to sGTM. Data Client in sGTM processes the incoming request in sGTM and maps it to sGTM format. In the server GTM container, we use the reStore variable to identify if a user who made a purchase already exists in the database. If a user exists, we check if the request contains new user information, and then we merge the latest data with the one in the database. After that, write enriched information. If a user does not exist, just create a new customer record. Merge user data in the incoming request with the user data in the database. For example, if the city parameter is missing in the CRM webhook, there is no field city, then this field will be used from the Store. If incoming requests have a field city but the Store does not have it, or it is different, then data from the request for this field will be written to the store. Use a complete customer profile to send it to the vendor through a server-to-server connection. ![This is how user data flows from the data source (CRM) to CDP - Stape](https://cdn.stape.io/i/65e6fc456ea51275757556.png) A brief overview of the required steps: Ways of sending data to sGTM Website. The two most popular ways of sending data from the website to sGTM are by [setting up server-side GA4](https://stape.io/blog/set-up-ga4-server-side-tracking) and [Data Tag](https://stape.io/solutions/data-tag-client). CRM webhooks (Hubspot, SalesForce, Jira, etc). CMS. You can use [Shopify server-side tracking](https://stape.io/blog/server-side-tagging-for-shopify), [WordPress](https://wordpress.org/plugins/gtm-server-side/), or https://stape.io/blog/server-side-gtm-extension-for-magento-2[Magento 2 Google Tag Manager](https://stape.io/solutions/gtm-server-side-extension-for-magento-2) plugins to send refunds and purchase webhooks to sGTM. SDK and Mobile application. Stape created [iOS](https://github.com/stape-io/stape-sgtm-ios), [Android](https://github.com/stape-io/stape-sgtm-android), [PHP SDK](https://github.com/stape-io/stape-sgtm-php), [Node.js SDK](https://github.com/stape-io/stape-sgtm-nodejs). Payment processors (Stripe, Braintree, etc). Receive data in sGTM The method of receiving data depends on how you send data to sGTM. These are the three ways of obtaining data: GA4 client. Works if you use GA4 to deliver data to sGTM. Measurement protocol client. It can be used to control the type of request sent to sGTM and make it in measurement protocol standard. Usually, this is your application code. Data Client. It can be used when you do not control incoming requests since, in Data Client, you can modify the request path, for example, Stripe webhook. Merge users into a customer profile 1. User ID This is the most tricky and crucial part. To build a proper CDP, you must have precise data on users and their actions with your brand. The CDP should contain up-to-date information and clear, not duplicated, data. You need a proper user ID to build such a system of user profiles. For identified users, you may use an email or internal ID that can be used across different systems. If a user is not identified, it can be a [Stape User ID](https://stape.io/solutions/user-id) consisting of a hash of: Client IP (IPv4/IPv6) Browser User-Agent Browser TLS settings Hostname If, due to privacy compliance, you want to make your User ID more unique, you can add a dependable variable. It can be a day, month, week, or year. It all depends on how unique the ID should be. 2. User data stitching We will use either the reStore variable or the [Stape Store Writer Tag](https://github.com/stape-io/stape-store-writer-tag) and [Stape Store Lookup](https://github.com/stape-io/stape-store-lookup-variable)to merge and stitch user profiles from the requests and database. Copies of these templates are also available on [Stape GitHub](https://github.com/stape-io). Writer tag and lookup variables are pretty self-explanatory. These two templates allow you to write and read data from the Stape store. The restore variable will first identify if the user exists in the database. At first, the variable gets all the user identifiers from our event. (email, phone, or client ID.) Then, it sends a query to the Store to select customers that have one of such identifiers. If there is information about the customer in the database, it will return data about this customer. ![how the read flow looks like - Stape](https://cdn.stape.io/i/65e6feaea9502825170713.png) When a variable gets the response from the Store, it merges it with an incoming request. For example, if no field city exists, this field will be used from the Store. If incoming requests have a field city but the Store does not have it, or it is different, then data from the request for this field will be written to the store. This variable creates a new entity if a customer is partially found in the store. ![how the merge flow looks like - Stape](https://cdn.stape.io/i/65e6ff156cd56167778214.png) Send data Once the data in sGTM is processed and formatted into the sGTM format, you can use it to send to any vendor you want, such as Meta, TikTok, Google Ads, or Analytics. Be aware of the user data that is sent in the requests. Debug Debugging in sGTM is difficult, but offline events can be even trickier. We will discuss how to use the following: [sGTM debugger](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration#server-gtm-debugger) Access/Request/Response Stape logs Logger tag sGTM preview header The setup How to use Stape Store https://www.youtube.com/watch?v=BadIVCxppuM I will present two use cases to demonstrate how the Stape Store can be used. We have found that these are the most popular scenarios for Stape customers. Use case 1: Enrich the pageview event with the user data stored on the purchase event. 1. Configure user ID. I will use the Stape User ID power-up that will help to merge users to customers. a. [Log in to your Stape account](https://stape.io/login) and enable the power-up. To do so, open the sGTM container, click on Power up the tab, open the user ID, switch the toggle on, and save. ![user-id power-up by stape](https://cdn.stape.io/i/65e7001cb711a074983228.png) b. In the Server GTM container create a variable that will retrieve the user ID from the request headers in the server. ![variable configuration - stape](https://cdn.stape.io/i/65e7003e3799f071832854.png) 2. Write data to the database on the purchase event. Ensure you are adding a Stape user ID to the event data. a. Add a [Stape store writer tag](https://github.com/stape-io/stape-store-writer-tag) to the sGTM templates gallery (download it from GitHub and import it into sGTM tag template section) and create a tag to write event data on a purchase event. I’m writing all event data and adding a [Stape user ID](https://stape.io/solutions/user-id) to the store record. We will need it to merge users on a pageview event. ![stape store writer tag](https://cdn.stape.io/i/65e7017546d91358746209.png) b. If the tag worked correctly, you will see a record in your database similar to the screenshot below. ![stape store feature](https://cdn.stape.io/i/66c450179965c910516301.png) 3. Enrich pageview event data with the stored data in the Stape store. a. To merge users from the page view event and the one we store in the database, we will again use the Stape user ID and Stape store lookup variable that can retrieve data from the store. Add the [Stape store lookup variable](https://github.com/stape-io/stape-store-lookup-variable) to the sGTM variable template gallery. To download the template from the gitHub, go to the sGTM templates section. Click new in the variable sections, then import. ![stape store lookup variable](https://cdn.stape.io/i/66c44d96b06c3652019360.png) b. Create Stape store lookup variable for the parameters you want to restore: ad document path and path name. ![stape store lookup variable](https://cdn.stape.io/i/65e7021ed3665601308883.png) c. Add a lookup variable to the pageview tag. ![Add a lookup variable to the pageview tag - Stape](https://cdn.stape.io/i/65e7024469b3a802277115.png) 4. Test the setup. You should see enriched user data in the tag triggered in the sGTM container. ![You should see enriched user data in the tag triggered in the sGTM container - Stape ](https://cdn.stape.io/i/65e7026dec4d6824803265.png) Use case 2: Store click ID and push it on events when click ID is unavailable. I want to send offline event data to an advertising network in this use case. When sending conversion data to the advertiser platform, the critical element is sending a click ID. Click ID is an identifier added to the URL or cookies when the user clicks on the advertising link. With the help of Click ID, the advertising network can easily attribute conversion to the ad campaign. The Click IDs are available for all the web events, but if you want to use conversion data from the CRM or CMS to send to the advertising network, in most cases, click IDs are not available. For configuring this option, I will use the [Stape restore variable](https://github.com/stape-io/stape-store-restore-variable) to write data to the Stape Store on pageview and restore data on purchase events. Besides that, I will need [transformation in the sGTM container](https://stape.io/blog/what-are-transformations-in-server-google-tag-manager) to augment the event sent to Facebook. Another critical element is matching users on pageview events to users in offline purchase webhooks. To do so you must use a user identifier that will remain the same on web pageview events and offline purchases. With standard CMSs, it´s easy to achieve because they usually have this type of identifier in cookies. You will need to ask developers to add these parameters for customer websites. My setup is done on a WordPress site. Stape WordPress [plugin](https://wordpress.org/plugins/gtm-server-side/) sends a unique user ID on web events and adds it to the webhook. Using this user ID, I can match users on a pageview and purchase webhooks in the database. 1. Receive purchase webhook from offline data source inside sGTM. a. Send a webhook from the CRM. I will use the [Stape WordPress app](https://wordpress.org/plugins/gtm-server-side/) for this. Go to the Webhooks tab and add the Server GTM container URL. This is a domain you use for your server GTM container. We recommend setting up a [custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) within your website domain since it will allow setting up 1st party cookies. Don't forget to tick the checkboxes. ![gtm server-side for wordpress - stape](https://cdn.stape.io/i/66c44dc673055080910610.png) b. Add [Data client](https://github.com/stape-io/data-client) to the sGTM clients template and configure it to retrieve webhooks you are sending from the CRM. To do so, create a Data Client template and add a Webhook path. ![data client configuration - stape](https://cdn.stape.io/i/65e704221a044767049177.png) c. Configure [sGTM Preview header config power up](https://stape.io/solutions/sgtm-preview-header) on Stape to debug incoming webhooks in sGTM. Go to sGTM preview, click three dots in the top right corner, and click send requests manually. Copy the X-Gtm-Server-Preview HTTP header and paste it into the sGTM Preview header config power up. ![X-Gtm-Server-Preview HTTP header - stape](https://cdn.stape.io/i/66c44e22770d2512389283.png) ![http header config - stape](https://cdn.stape.io/i/66c44e7dcf0e4714576165.png) d. Open the sGTM debugger and test that it received webhooks. Once the webhook is triggered, you should see the incoming request inside sgtm and that the data client claimed that request. ![http header config - stape](https://cdn.stape.io/i/66c44eaf9f2fc652191504.png) 2. Write fbc, fbp, and client ID parameters on the pageviews event to the data to the database. In this step, I will show you how to write fbc and fbp parameters to the database using the [restore variable](https://github.com/stape-io/stape-store-restore-variable). To do so, we will use a Facebook pageview tag to trigger pageview events and a transformation that will write data to the store using the restore variable. a. Add a restore variable to the sGTM variable using [this link](https://github.com/stape-io/stape-store-restore-variable). You would need to download it from GitHub, create a new variable template in sGTM, and click import. b. Configure the restore variable. It should use a wordpress user ID and an identifier and write fbp, fbc and WordPress user ID to the store. ![restore variable configuration - stape](https://cdn.stape.io/i/65e705a21bd91205461159.png) c. Create a transformation that will augment even data on Facebook pageview events using the restore variable and add this transformation to your FB pageview tag. ![transformation configuration - stape](https://cdn.stape.io/i/65e706097a505889767398.png) d. Test the setup. If all is configured correctly you should see data recorded in the Stape store. ![stape store configuration](https://cdn.stape.io/i/65e70636387e9180258162.png) e. Set up a Facebook purchase event that will trigger every time a webhook is received. To augment this event with the data from the Stape store, we would need to use a transformation, and the same restore variable that we used for the transformation on a FB pageview event. This will extract the required parameter on a purchase event. But to send the data in the form that Facebook will recognize we will need to use an object extractor variable that extracts the required object from the restore variable. ![facebook conversion api configuration - stape](https://cdn.stape.io/i/65e70663d9b67772672368.png) ![transformation configuration - stape](https://cdn.stape.io/i/65e706768f18b702674751.png) ![variable configuration - stape](https://cdn.stape.io/i/65e7067e8c6a2561247154.png) f. Test your setup. If everything works correctly, you should see that fbc and fbp parameters were successfully sent to Facebook or on a purchase offline event. ![testing the setup - stape](https://cdn.stape.io/i/65e706ba951e0065079926.png) ![testing the setup 2 - stape](https://cdn.stape.io/i/65e706c8c86cd127371116.png) Conclusion With the help of Stape Store, you can create a customer database or CDP. It provides an easy way to collect and store all the information you can get from your customers, which can help you build better analytics forms or improve the results of your paid campaigns. Augmenting and enriching your customer data can help you gain insights into their behavior and preferences, which in turn can help you improve your marketing strategies. --- # Guide to debugging and monitoring server-side tracking configuration Source: https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration Learn how to debug server-side tracking with Stape’s tools, including sGTM Debugger, logs, and monitoring, to ensure accurate and efficient data tracking. Debugging server-side tracking can be challenging but essential for ensuring precise server-side tracking. The process of debugging server-side tracking includes several key elements. Firstly, monitoring of the cloud server infrastructure that hosts your server-side Google Tag Manager container. If you are using Stape, our team handles this for you. The second aspect involves ensuring the accuracy of your tracking setup. Since server-side tracking via sGTM can be implemented in various ways, the tools and methods for debugging and monitoring are also different. Instantly verify your website's tracking foundation. Stape's free [Website Tracking Checker](https://stape.io/website-tracking-checker?cta=blog_article) confirms if your GTM and server-side containers are set up properly. The tool shows you how well your website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for your analytics systems and ad platforms. Digital marketers and agencies can run fast tracking audits, use the report as a checklist to double-check implementations, and win more clients with proof of server-side tracking value. This blog post will discuss several methods for debugging and monitoring the server-side tracking. Guide to debugging and monitoring server-side tracking configuration https://youtu.be/chvlZQa12Wk Server GTM debugger The sGTM Debugger helps debug and analyze server Google Tag Manager implementations (understanding how tags, triggers, and variables work within GTM). One of the standout features of the sGTM Debugger is its user-friendly interface. Even those with limited technical expertise can easily navigate through the data streams. The tool ensures comprehensive coverage of all potential tracking issues, from identifying missing or erroneous data to validating trigger setups. Let’s talk about each component of the sGTM preview. 1. Summary tab It shows all the details about the requests and events. These requests usually come from the web GTM container and are transported to the server side. However, several ways of delivering [server data to the sGTM container exist](https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager#ways-of-sending-server-data-to-s-gtm). To see the details of each request, simply click on it. The rest of the information should be checked in other tabs. ![Summary tab](https://cdn.stape.io/i/66c704ccea8cb286579964.png) 2. Request tab There are three main components in this tab: Client: a client that claimed this request (e.g. GA4). Incoming HTTP request: request received by the server Google Tag Manager container. You can click on the incoming request and check its details like Request URL, request header, status code, etc. ![Request tab in server GTM debugger - Stape](https://cdn.stape.io/i/65dc6e7781f59564307080.png) Outgoing HTTP request: request sent from the server Google Tag Manager to any vendor (for example, Google Analytics, Facebook, TikTok, etc). You might have several outgoing HTTP requests for the exact incoming requests. You can see exactly what data was sent to each vendor by clicking on the outgoing HTTP request. If the response code for the outgoing request is not 200, meaning there were some issues with processing the request, you can check the response body and read which error exactly stopped the request from processing. 3. Tags tab Shows all the tags fired for each incoming event request. If you click on the tag, it will show you all the data the tag uses. ![Tags tab in server GTM debugger - Stape](https://cdn.stape.io/i/65dc712b10498715203844.png) 4. Variables tab You can see all the variables you have created and their values for the corresponding event. 5. Event data tab Whenever the client claims the requests in the sGTM container, it converts request data to event data. Then, you can use event data to configure variables. If we compare it to a web GTM container, event data is like a data layer of an sGTM container. 6. Console Shows all errors that happened in this request (if any). It consists of the error detail and the source that caused the error. ![Console tab in server GTM debugger - Stape](https://cdn.stape.io/i/66c704f84d0db134530868.png) Use [Stape GTM Helper](https://stape.io/solutions/stape-gtm-helper?cta=blog_article) to make tags and server requests more visible in the GTM preview, making monitoring and debugging easier for clients or your own GTM accounts. Stape logs Logs allow you to monitor sent data, response codes, and processed parameters, ensuring no network or vendor issues are missed. We offer log access to users on Pro and Business plans. Users on Pro and Pro+ plans can access logs for the past three days, while those on Business plans or higher have a 10-day log access window. The Export logs feature is available for Enterprise plans or higher. ![Logs feature](https://cdn.stape.io/i/6a01ce0c3d273664065855.png) There are two types of logs: Incoming requests - the requests that were received by the server GTM. Outgoing requests - the requests that have been sent by the server GTM to Facebook, TikTok, and other platforms. Incoming requests are available by default, and outgoing requests you should activate by switching to the tab “Outgoing requests” and enabling the toggle: ![Outgoing request logging](https://cdn.stape.io/i/6a01ce256d549599903235.png) You can also enable the ability to Export logs (available for Enterprise plans or higher). This will automatically export your incoming and outgoing (if configured) logs to a cloud storage of your choosing. ![Export logs ](https://cdn.stape.io/i/6a01ce6471cb7197741629.png) To activate log export, toggle the switch and enter the required information to connect Stape Logs to your cloud storage. ![Connect Stape Logs to your cloud storage](https://cdn.stape.io/i/6a04608c90d58579493310.png) There are multiple use cases on how Stape logs can be used. For instance, you can verify if any events were sent to Facebook that were not processed successfully, meaning that the status code was not 200. To do so, enable logging of the Facebook tag, as shown in the screenshot above. After collecting request data, open response logs in stape admin and select client and response code. In my case, we're checking Facebook and 4xx responses. ![Stape logs](https://cdn.stape.io/i/69a19d5b71501611469564.png) Several events have 400 status. You can click on a row on the right side of each log and see a sequence of access to response logs and troubleshooting in which 400 responses were received. The easiest way is to find the response body and check its message. In my case, the event wasn’t processed because the parameter was missing. "ResponseBody": "{"error":{"message": "Invalid parameter," "type": "OAuthException," "code":100, "error_subcode":2804019, "is_transient": false,"error_user_title": "Server Side API Parameter Error," "error_user_msg": "The parameter $['data'][0]['event_name'] is required.","fbtrace_id": "xxxxxxx"}}" Set up BigQuery logging for Stape’s GTM templates Stape’s GTM templates support logging directly to BigQuery, making it easy to analyze request, response, and message data at scale. To set it up, you just need to enable BigQuery logging in your server GTM tag/variable, add your Dataset and Table IDs, grant access via Stape’s Service Account power-up, and then create a table in BigQuery with the required schema. Once configured, logs will automatically populate, helping you monitor, troubleshoot, and optimize your tracking setup with better visibility. You can check out the full set up guide in the [Troubleshooting server-side tagging using server GTM logs](https://stape.io/blog/troubleshooting-server-side-tagging-using-server-gtm-logs#set-up-big-query-logging-for-stapes-gtm-templates) article. Logger Tag [Logger tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/logger-tag) for server Google Tag Manager is beneficial for testing POST requests in server GTM. The body of POST requests is not automatically included in logs for Google Cloud or Stape. To access detailed information about POST requests, you should utilize the Logger Tag and activate the 'Log Request Body' option within the tag's settings. Add the tag from the server GTM tag template gallery. Select the Logs Destination - Console, BigQuery, or Stape Store. If you are a Stape Pro or higher plan user and need to save some storage space in the container, opt for [Stape Store](https://stape.io/solutions/stape-store) as the logs destination. BigQuery as Logs Destination is more complex and requires creating a table in BigQuery. For both Logs Destinations, you need to select if you want to log events only while debugging or always → Select what information you want to add to logs → add event name. You can use either static or dynamic name → add custom data if needed → add a trigger. ![Tag config](https://cdn.stape.io/i/69a1c2be56c29186314886.png) You can learn more about our Logger tag [in the article here.](https://stape.io/blog/troubleshooting-server-side-tagging-using-server-gtm-logs#set-up-logger-tag-in-s-gtm) sGTM Preview header config GTM debugger https://youtu.be/VtErfslpkUg?si=5sinAW2BOb9tL3e3 The sGTM Preview header configuration is a power-up available for all Stape users. It's handy for viewing requests in the sGTM debugger when sending them to sGTM from outside the Web GTM. For example, you can [debug webhooks sent to your sGTM container](https://stape.io/blog/debug-webhooks-google-tag-manager-server). To use this power-up, open [sGTM's preview mode](https://stape.io/blog/gtm-preview-mode-and-debugging) (“Preview” in the top right of your workspace). Then, in the top right corner, click on the three dots, select 'send request manually,' and copy the preview header. ![sGTM Preview header configuration](https://cdn.stape.io/i/66c705a654c25368357777.png) Next, insert this header into your Stape container settings. ![Use sGTM Preview header config](https://cdn.stape.io/i/69f20e7fe0d4a048450853.png) ![Preview token](https://cdn.stape.io/i/69f20ea14115c090143531.png) ![Data Client configuration](https://cdn.stape.io/i/66c706f799328467869169.png) To retrieve webhook requests in sGTM, add a [Data Client](https://github.com/stape-io) to your sGTM container and create a Client with the type Data Client. Scroll down to the accepted path setting and add a path to which the webhook was sent. For more information, check out our guide on [how to use webhooks in sGTM](https://stape.io/blog/webhook-server). Remember, the preview header changes dynamically. Therefore, removing it from your stape.io account after completing your tests is crucial to ensure future requests are visible in the sGTM debugger. If you did not turn off the sGTM Preview header config, stape will automatically turn it off in 30 minutes. Monitoring feature The monitoring feature is helpful for ongoing monitoring of your server GTM container work and the correct excursion of tags. It allows you to set rules that will send email notifications or Slack notifications when the rule is triggered. For example, you can receive a notification when the number of purchases sent in GA4 equals 0. Imagine you are checking your Facebook campaign results, and suddenly you discover that despite spending your entire budget, you've recorded zero conversions for several days :( Often, this is due to an oversight during your site update, like removing a GTM snippet or disrupting the purchase event data layer. These minor errors can cost an arm and a leg, as they hinder ad optimization and obscure the true ROAS of your campaigns. At Stape, we've experienced these challenges firsthand, so we've introduced a https://stape.io/solutions/monitoring[Monitoring](https://stape.io/news/monitoring-feature) feature to help reduce the impact of such issues. It is available to all Stape sGTM hosting users with Business, Enterprise, and Custom plans. You can create, edit, or delete your container monitoring notifications. To do so, open the sGTM container and click on the Monitoring tab. If you already have some rules configured, you will see the list of rules in this tab, whether they were triggered, the number of times they were detected, and the last detected time. ![Monitoring feature by Stape](https://cdn.stape.io/i/69bbd0dde956b949145000.png) Monitoring alerts work based on the container logs: Incoming Logs capture all incoming requests to the container. For instance, GA4 requests sent via POST may not fully display in these logs, with details like event names missing. These logs are ideal for monitoring webhooks or tallying total container requests. Outgoing Logs detail outgoing requests and are exclusive to tags created by Stape. They function only when given consent to track and store outgoing requests The notification settings include: Domain: determines whether the rule applies to all container domains or only selected ones. Frequency: specifies the interval for evaluating conditions. Criteria: involves configuring specific conditions like event, client, platform, and status code. Alerts are triggered only when all these criteria are met. Alert Activation: the alert is initiated based on the volume of requests (exceeding or falling short) that align with the defined conditions. You can find the configuration examples and more information on our feature Monitoring [in this article](https://stape.io/news/monitoring-feature). Conclusion To wrap up, knowing how to debug server-side tracking is critical for reliable and accurate data. This guide has shown you tools like the sGTM Debugger, Stape Logs, Logger Tag, Preview Header, and Monitoring. Each tool helps find and fix tracking errors. Good debugging isn't just about solving problems now; it's about constantly monitoring which data is received and sent to each vendor and checking the setup when data does not look correct. We hope this guide has made you more skilled in server-side tagging debugging, making your data gathering solid and meaningful. Keep exploring and let your data lead you to more tremendous success in digital analytics and marketing. Would like to receive help with the setup? Don't worry, we've got you covered! Click on Get assistance and we will send you a free quote. --- # 17% better Google Ads measurability for a Danish market leader | Obsidian Digital Source: https://stape.io/blog/danish-market-leader-improves-google-ads-measurability-by-17-percent In this article Obsidian Digital explored the implementation of server-side tagging and it resulted in significant gains for Workwear Group. [Workwear-group.com](https://workwear-group.com/), initially established in Denmark as [Billig-Arbejdstoj.dk](https://billig-arbejdstoj.dk/), is a leading e-commerce retailer specializing in workwear. With a dedicated team based in the city of Spjald and employing more than 100 skilled employees, the company has carved out a dominant position in the market. Operating from an automated warehouse, they efficiently distribute thousands of packages daily across Denmark, Sweden, Norway, Germany and the rest of EU. ![Workwear group](https://cdn.stape.io/i/65ce066f6be30202919066.png) Since its foundation in 2009, Workwear Group has experienced consistent growth, a testament to its deep market and product knowledge, exceptional customer service, and a team of digital marketing experts. Challenge: The Need for Server-Side Tagging Relying heavily on Google Ads for significant monthly seven-digit revenue, the competitive digital landscape necessitated an optimization of data provided to Google's algorithms (and those of other platforms like Meta) to maximize return on ad spend. To achieve this, Workwear Group, in collaboration with [Obsidian Digital](https://obsidian.dk/) — a [premier Stape-partner](https://stape.io/partner/obsidian-digital) with operations in Denmark, Germany, Finland, and Bosnia-Herzegovina—explored the implementation of [server-side tagging](https://stape.io/blog/server-side-tagging) through Google Tag Manager. Obstacles Faced Despite a well-structured Google Ads account boasting high quality scores and best practices, technical challenges hindered optimal performance, including: Google Ads tracking limitations to 24 hours on Safari User adblockers interfering with Google Ads tracking Purchases not always made from the device used for the initial search Solutions Implemented To address these challenges, Workwear Group and Obsidian Digital employed server-side tagging via Stape, complemented by strategic enhancements: A custom loader was introduced to counteract adblockers and Safari restrictions, extending cookie duration. The "Cookie Keeper" function, alongside a Master cookie, was deployed to navigate around Apple's Intelligent Tracking Prevention 16.4. Consent Mode was activated to estimate data loss due to lack of cookie consent. A unique hurdle was the absence of email addresses in the data layer for Google Ads' Enhanced Conversions. This was ingeniously resolved by scraping the DOM to retrieve email addresses for hashing and matching, enhancing conversion tracking accuracy. Outcomes The initial implementation of server-side tagging in the Danish market—Workwear Groups largest advertising expenditure area—resulted in significant gains: An immediate increase in measured revenue by 17%, translating to a seven-digit figure in additional annual revenue (in EUR). Improved load speed of website by moving scripts serverside Digital resilience in the movement towards a cookieless future Testimonial ![Annika Gran](https://cdn.stape.io/i/65ce07ddd3687169067642.png) Annika Gran “Server-side tagging revolutionized how we value our Google Ads contributions, enabling more efficient budget allocation, growth, and increased profitability. It's now an indispensable part of our Google Ads strategy.” - [Annika Gran](https://www.linkedin.com/in/annikagran/), Performance Marketing Manager at Workwear Group. Need help from the experts? Don't worry, we've got you covered! Click on Get assistance and we will send you a free quote. --- # CJ server-to-server tracking using server Google Tag Manager Source: https://stape.io/blog/cj-server-to-server-tracking-using-sever-google-tag-manager Here’s how to set up CJ server-side tracking with server Google Tag Manager container. Keep accurate track of your affiliate marketing performance! [CJ](https://www.cj.com/) specializes in performance-based marketing through an affiliate network. Their platform facilitates scalable and sustainable growth for brands, publishers, and creators within a partnership-based marketing ecosystem. It offers solutions like CJ Affiliate, CJ Influence, and CJ Leads to help businesses connect with their target audience and drive growth. The platform is powered by data, technology, and industry expertise, designed to help users grow at every stage of their affiliate marketing journey. That’s why we decided to create a [CJ tag](https://github.com/stape-io/cj-tag) for server Google Tag Manager. With it, the integration is as smooth as possible. In this article we’ll describe CJ server-side tracking and how you can set it up using the server GTM container. What are the benefits of CJ tag and how it works CJ's server-side tracking works by sending data from a server to CJ's servers, rather than relying on browser-based tracking. This method is more reliable and secure, as it minimizes data loss due to browser restrictions like [ad blockers or cookie limitations](https://stape.io/blog/safari-itp?trk=public_post_comment-text). Moreover, the server-side approach allows for more customization and control over the data sent to CJ. It involves integrating CJ's tracking system into your server's backend. When a user performs a trackable action on your site, your server records this event and sends the relevant data directly to CJ. You can read more about GDPR, server-side cookies and CJ Enhanced Tracking Integration in [the official documentation](https://developers.cj.com/docs/advertiser-site-tracking/enhanced-tracking-integration). How to set up CJ tag for server Google Tag Manager 1. Download [the CJ tag from GitHub](https://github.com/stape-io/cj-tag) or add it from [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/cj-tag). 2. Open your [GTM server container](https://tagmanager.google.com/). On the left menu choose “Templates”. In the “Tag templates” section, click on “New”. Click three dots in the top right corner, and click import. Choose the file you recently downloaded. ![cj tag for server google tag manager by stape](https://cdn.stape.io/i/66cf0432305c9503878650.png) 3. There are two types of events that CJ tag includes: PageView and Conversion. Pageview event stores the CJEVENT URL parameter inside the cje cookie. Conversion event sends a request with the specified conversion event data to CJ postback URL. 4. When setting up a conversion event, you must add a list of parameters. CID - CJ assigned ID for your program Type - Also referred to as Action ID, this is a CJ assigned value that identifies the action being tracked Also, you can override values of the following parameters which will be parsed from eventData by default: Conversion Date Time Order ID Currency Code Coupon Discount Items 5. Once you’ve done setting up and testing, do not forget to publish server container changes. Conclusion: CJ server-to-server tracking is one of the best solutions for affiliate marketing. Not only is it highly reliable and secure, but it also offers real-time data analytics, enabling marketers to make informed decisions quickly. This system ensures accurate tracking of conversions and transactions, even in complex multi-device environments, thereby enhancing the precision of performance metrics. We hope this article has helped you to get a perfect CJ server-to-server integration using server GTM. If you need assistance setting-up CJ tag or with any other affiliate network, please contact us, and we would be happy to help. Thanks for reading! Would like to receive help with the setup? Don't worry, we've got you covered! Click on Get help and we will send you a free quote. --- # The impact of third-party cookie deprecation on affiliate marketing Source: https://stape.io/blog/the-impact-of-third-party-cookie-deprecation-on-affiliate-marketing Explore the impact of third-party cookie deprecation on affiliate marketing and how server-side tracking can help. Affiliate marketing is an excellent opportunity for businesses to boost their revenue. Similarly, it's an effective strategy for affiliates to earn income through their websites. However, challenges have arisen in tracking affiliate conversions due to increasing [tracking limitations](https://stape.io/blog/server-side-tracking-gdpr), the prevalence of [ad blockers](https://stape.io/blog/bypass-adblock-detection), and [third-party cookie deprecation](https://stape.io/blog/third-party-cookies). Affiliates risk losing their sales due to the unreliability of [client-side tracking](https://stape.io/blog/server-side-tagging-versus-client-side-tagging). In light of these challenges, it's becoming increasingly important to consider the adoption of [server-side affiliate tracking](https://stape.io/blog/affiliate-conversion-tracking). That’s why we decided to cover the specific details relevant to the overarching theme of how the deprecation of 3rd party cookies is reshaping affiliate marketing. Understanding 3rd party cookies Third-party cookies are small text files created by websites that are not the website the user is currently visiting. Unlike first-party cookies, which are generated by the site a user interacts with, 3rd party cookies are crucial for tracking user actions and attributing them to the correct affiliate. This ensures affiliates get credit for the traffic or sales they generate. ⚠️UPDATE: Google announced that it will [no longer pursue its plans to phase out third-party cookies](https://privacysandbox.com/news/privacy-sandbox-update/). Instead, the company will introduce a new solution: a one-time prompt that allows users to set their preferences, which will apply across all Google browsing experiences. The primary function of third-party cookies is to collect data about users' online behaviors. This data includes information about browsing habits, preferences, and even personal details in some cases. Advertisers and marketing companies use this information to create detailed user profiles leveraged for targeted advertising. These cookies enable advertisers to present relevant ads to users across different websites, enhancing the effectiveness of online marketing campaigns. However, the extensive use of third-party cookies has also raised concerns about privacy and data security. In response to these concerns, there has been a shift in the digital world, with increasing emphasis on user privacy and the gradual phasing out of third-party cookies. Deprecation of 3rd party cookies By the end of 2024, [Chrome will phase out third-party cookies](https://stape.io/blog/third-party-cookies), following the lead of Safari and Firefox, which have already implemented Intelligent Tracking Prevention algorithms that block third-party cookies. These changes are driven by a growing emphasis on user privacy and the need for more ethical and regulated user tracking practices. ![Deprecation of 3rd party cookies - history by stape](https://cdn.stape.io/i/65b78a8723eb6004469302.png) Affiliate marketers must adopt more privacy-friendly practices, ensuring transparency and [user consent](https://stape.io/blog/google-consent-mode-v2) in their tracking methods. As third-party cookies become obsolete, there's a growing emphasis on first-party data, information collected directly from a company's audience. How this affects Affiliate Marketing A third-party cookie is placed on their browser when a user clicks on an affiliate link. This cookie stores information about which affiliate referred the user. If the user purchases on the advertiser's site, the cookie ensures that the affiliate gets credit for the sale. Affiliate marketing strongly depends on third-party cookies for attributing conversions to affiliates. This means that all affiliate networks and vendors who utilize affiliate marketing won’t be able to attribute conversions from affiliates after 2024. So, now it’s time to adapt to this change and prepare for the total depreciation of third-party party cookies. Server-side tracking solutions Using server-side tracking is the easiest way to deal with the depreciation of third-party cookies. With [s2s tracking](https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager) and server Google Tag Manager, you can set long-lived first-party cookies instead of third-party ones. Setting up first-party cookies with sGTM used to be easy. But now, new rules from Safari make it harder because it blocks even first-party cookies if they're set from an IP address different from your website's. So, the question is, how can you still set up long-lasting affiliate cookies using sGTM? There are a few ways: 1. Configure [server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container#lets-start-setting-up-server-google-tag-manager). 2. [Set a custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container#how-to-add-a-custom-domain-inside-the-server-google-tag-manager-container). It can be either the same origin domain or a subdomain. 2.1 If you [implement the same origin custom domain](https://stape.io/news/a-new-way-to-set-up-a-custom-domain-in-server-gtm#how-to-configure-the-same-origin-custom-domain-in-s-gtm), no additional setup is needed to prolong the cookie lifetime. 2.2 If you choose to use a custom domain, then you will need to implement one of the following: Set up [Own CDN](https://stape.io/solutions/own-cdn). Use [Cookie Keeper](https://stape.io/solutions/cookie-keeper) to store/restore user cookies. Once the sGTM container and custom domain are configured, you must implement server-side tracking for your affiliate network. At Stape, we have created such articles and affiliate tags for a straightforward setup: [Awin server-side Tag](https://stape.io/blog/awin-server-to-server-tracking-using-server-google-tag-manager) [Affiliate Conversion Tag](https://stape.io/blog/how-to-set-up-server-side-affiliate-tracking-using-server-google-tag-manager) [Refersion Tag](https://stape.io/blog/how-to-set-up-refersion-tag-using-google-tag-manager) [Rakuten Tag](https://stape.io/blog/rakuten-server-to-server-tracking) [Impact Tag](https://stape.io/blog/how-to-set-up-impact-server-to-server-conversion-tracking) Conclusion The end of third-party cookies is a big challenge for affiliate marketing. This shift necessitates affiliate platforms and vendors to change how they attribute sales to affiliates. The most obvious and straightforward way is using server-side tracking, focusing on first-party cookies. The future of affiliate marketing is leaning heavily toward server-side tracking solutions. It’s a robust, privacy-compliant alternative to traditional reliance on third-party cookies. It offers enhanced data accuracy and reliability, crucial for precisely attributing sales and commissions in affiliate marketing. However, it's essential to acknowledge that transitioning to server-side tracking may involve technical complexity and resource investment. Despite these challenges, the long-term benefits and sustainability of server-side tracking in a cookieless digital world make it a strategic choice for the future. That’s why we’re here to help! Don’t hesitate to [leave a ticket](https://stapehelp.zendesk.com/hc/en-us/requests/new) or ask for a free quote. Would like to receive help with the setup? Don't worry, we've got you covered! Click on Get assistance and we will send you a free quote. --- # Server-to-server tracking: what it is and how to set it up Source: https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager Server-to-server tracking via Google Tag Manager improves data accuracy, performance, and privacy by bypassing client-side scripts. Learn how to set it up. Server-to-server tracking sends data directly between servers without depending on browser scripts, cookies, or other client-side tech. In some setups, the browser still collects data but sends it to a cloud server first before it reaches tools like Google Analytics or Meta. In other setups, like pure server-to-server tracking, the data is sent directly from one backend system to another without the browser being involved at all. This blog post explains how to set up server-to-server tracking with Google Tag Manager's server container. We'll explore its benefits, and how you can implement it to gain deeper insights into your analytics while maintaining user privacy and data integrity. What is server-to-server tracking in Google Tag Manager? Server-to-server tracking in Google Tag Manager (GTM) is an effective feature that allows you to collect data on your website without relying on client-side scripts. This method helps reduce the impact on page loading speed and provides more control over data collection. By implementing server-to-server tagging, you can ensure that your data collection processes are less affected by ad blockers and browser restrictions. There are two types of server-to-server tracking with GTM: Hybrid (web + server). This setup uses both web and server containers. You send data from the browser to the cloud server using GA4 or Data Tag/Data Client, then forward it to tools like Google Analytics. You'll need to configure both containers, set up hosting (e.g. Google Cloud or Stape), and use a custom domain. Pure server-to-server. Data goes straight from one server to another without touching the browser. It's harder to set up in GTM, since delivery and debugging depend on sending webhooks from systems like your CRM or CMS. So, how does it work? In server-to-server tracking, there is an intermediary (typically the Google Tag Manager cloud server). Instead of the browser sending the request directly (like with client-side tracking), the request is routed to the cloud server first. The cloud server processes the request and then forwards it to the third-party system (e.g., Google Analytics). ![How server-to-server tracking works](https://cdn.stape.io/i/679b94edc9958499959316.png) Related: [What is Google Tag Manager server-side tracking?](https://stape.io/gtm-server-hosting) The benefits of S2S tracking Reliability. This method is more reliable and secure and less susceptible to issues like browser restrictions, ad blockers, or cookie consent requirements. With the help of Stape’s [Custom Loader power-up](https://stape.io/solutions/custom-gtm-loader), you can make the tracking scripts less visible to ad blockers. Track offline events. Webhooks enable the capture of offline interactions like store sales or phone orders, integrating this data with online platforms. Accurate conversion attribution. Webhooks include more even data than web events, giving the advertising network more parameters for conversion attrition and allowing for reliable S2S conversion tracking. Improves data security. Server-to-server tagging with webhooks offers a more secure way to handle data, which is particularly important for customer privacy and compliance with data regulations. How to set up S2S tracking Step 1. Create a server container in Google Tag Manager Select your GTM account → Click Admin → Click + next to the Container name. ![Create a server container in Google Tag Manager](https://cdn.stape.io/i/66faab6d9c8a6640379995.gif) 2. Add Container Name → under Target platform, choose Server. Click Create. ![Create a server container in Google Tag Manager](https://cdn.stape.io/i/66faabb9aeb85337030808.gif) 3. Choose Manually provision tagging server. Copy your container config. We will need it in the following steps. ![Choose "Manually provision tagging server"](https://cdn.stape.io/i/66faabec581c8932189621.png) Step 2. Create a Stape account to host your server GTM container 1. Go to Stape and [create an account](https://stape.io/sign-up) or [log in](https://stape.io/login). You can try our service for free and explore the [benefits of Stape hosting for the GTM server](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server). ![Create account or log in to Stape](https://cdn.stape.io/i/66faac28039ec552939372.png) 2. Click the button Create container. 3. Enter your container details: Container name. The name does not necessarily have to be the same as the container name in your server GTM. Container configuration. Paste the Container Config you copied from your Google Tag Manager Server Container. Then, set up a custom domain inside GTM to enable first-party cookie tracking. This helps platforms recognize the data as coming from your own domain, improving accuracy and compliance. Server location. Select your server location based on the location of most of your clients. The location can not be changed later. You’ll also need to configure DNS settings and SSL for your custom domain. Stape can manage these automatically, or you can do it manually. ![Create container on Stape](https://cdn.stape.io/i/679b96bab2d05359807908.png) 4. Choose a plan for your container. You can start with a Free plan. Click Continue with a Free plan. ![Stape pricing](https://cdn.stape.io/i/679b96f085736393944363.png) You will see the status of your container, container config, and plan name. It takes around five minutes to deploy a server container. Please reload the page to update the status. Once the container is running, enable Server-Managed cookies in your GA4 settings to avoid browser restrictions like ITP. If the setup was done correctly, you should see the status Running. ![Status "Running" in Stape account](https://cdn.stape.io/i/679b97340d46a294573357.png) Step 3. Configure tags, triggers, and variables Once your server container is ready, you configure tags to send data, triggers to determine when those tags should fire, and variables to store the dynamic information your tags and triggers rely on. For example, tags might send purchase data to Google Analytics, triggers would control when that happens, and variables could capture user session details from requests. This setup allows you to manage data collection with precision and flexibility. Note:: Setting up a server container requires technical expertise and familiarity with Google Cloud Platform and Google Tag Manager. Setting up server-side GTM requires knowing how to work with DNS, SSL certificates, GA4 or Meta tagging, and setting up custom domains. If unsure, consider using Stape Care or working with a GTM expert. By following these steps, you can successfully set up a server container in Google Tag Manager, enabling you to leverage the full benefits of server-to-server tagging. This server-side setup will help you collect accurate data, improve website performance, and enhance user privacy, ensuring your analytics strategy is effective and compliant with modern standards. Check the list of [Stape’s GTM templates](https://stape.io/solutions/category/gtm-templates) for both server and web GTM containers. Ways of sending server data to sGTM You can send data to sGTM without using the browser. Here are the most common methods: CRM webhooks Send offline events like sales or signups directly from your CRM. sGTM preview header by Stape makes webhook setup easier in sGTM. Payment processors (e.g. Stripe, PayPal) Track events like subscriptions, upsells, or refunds using webhooks from your payment tools. CMS platforms (e.g. Shopify, WordPress, Magento 2) Use Stape CMS integrations to send purchase or user data directly to sGTM. Stape SDKs Send data from mobile or backend apps using Stape’s SDK for iOS, Android, PHP, Node.js, or Flutter. It's also worth noting that if you visualize the entire concept of [web tracking](https://stape.io/blog/web-tracking-hierarchy) as a system of interconnected layers, the value of S2S setup becomes easier to understand. When you shift a part of the data flow away from the browser and into backend infrastructure, you gain more control over data quality, routing, and compliance, without breaking the overall tracking architecture. ![Web tracking layers](https://cdn.stape.io/i/6970f8c1521bc969961432.png) Conclusion Server-to-server tracking improves data accuracy and security by reducing reliance on the browser. However, it's not always possible to use a pure S2S setup with every platform. For example, Google Ads depends on GA4 events, which still require some client-side data. To work around this, you can combine S2S with web+server tracking or use offline conversions to import events directly into Google Ads. This guide showed how to send data to sGTM and how to set up a working S2S configuration using Stape. The most technical part is debugging webhook data, where Stape sGTM Preview Header config power-up and Data Client are especially helpful. Server containers help keep your tracking effective by collecting more complete data while remaining privacy-compliant. --- # Google Consent Mode V2 Source: https://stape.io/blog/google-consent-mode-v2 Google Consent Mode V2 lets websites share users' cookie choices with Google tags. Learn what's new, how it works, and how to implement it. Google Consent Mode V2 is an updated version of the original Consent Mode developed by Google. As we have already described in our [previous article about consent mode](https://stape.io/blog/consent-mode-server-google-tag-manager), this tool allows websites to communicate users' cookie consent choices to Google tags more effectively. However, implementing Google Consent Mode V2 has been mandatory for all websites using Google services since March 2024. Here we will discuss what’s new in Google Consent Mode V2, how it differs from the last version and if there’s an impact on server-side tracking. Consent Mode in GTM https://youtu.be/UUbkYisa7-g Key features of Consent Mode V2 Consent Mode V2 introduces more granular control over the data types collected based on user consent. New parameters Google added two parameters to the existing ones (analytics_storage and ad_storage) in Consent Mode V2: ad_user_data: controls whether user data can be sent to Google for advertising purposes. ad_personalization: controls whether personalized advertising (remarketing) can be enabled. These new parameters are specifically designed to enhance user privacy. The settings determine if personal data is sent to Google based on user consent, which applies to services like Google Ads, Google Shopping, Google Play, etc. Two more parameters that were already used in the previous version: ad_storage: сontrols the storage of user’s personal data for advertising. analytics_storage: manages the storage of data for analytics. Google Consent Mode OneTrust and Consent Mode V2 CookieYes are common consent management platforms used to manage this consent process. Two implementation options Google Consent Mode offers two levels of implementation - Basic and Advanced. Basic Consent Mode V2 implementation If a user consents to cookies, the website behaves normally, firing all tags and collecting full data. However, if a user does not consent, no data is collected, and cookieless pings are not sent. It’s a little bit straightforward but limits data collection significantly when users do not consent. To implement Basic Consent Mode, website owners need to: Set up a Consent Management Platform (CMP) to manage user consents. Configure their website so that, when a user rejects cookies, Google Analytics 4 (GA4) tags or similar tags are not fired. Integrate a consent flag to communicate the user's consent decision to Google. Advanced Consent Mode V2 implementation It offers a more nuanced approach. Even when users do not consent to cookies, it allows anonymous, cookieless pings to be sent to Google for modeling purposes. This enables websites to recover some level of data for Google Ads and GA4, even without user consent. In Advanced Consent Mode, implementation involves: Using a CMP for user consent management. Configuring the website so that GA4 cookies are not set when consent is denied, but a consent flag is passed to Google. Sending cookieless pings to Google for data modeling. More a requirement than an option The [Digital Markets Act](https://digital-markets-act.ec.europa.eu/index_en) (DMA) and Google Consent Mode V2 are closely interconnected, especially in the context of digital advertising and data privacy regulations. This legislation requires "gatekeepers" like Google to obtain explicit consent for collecting and using European citizens' personal data. In response to this and other privacy regulations, Google has updated its Consent Mode to version 2, making it compulsory for advertisers who wish to use Google Ads for remarketing and auto-bidding. Advertisers and publishers, especially in the European Economic Area (EEA), must ensure compliance and maintain the quality of their audience and measurement data in Google Ads. Without implementing Consent Mode V2, advertising platforms like Google Ads and GA4 will not capture data about new EEA users after March 2024, significantly impacting advertising strategies and effectiveness. Cookie banner is a must To use Google Consent Mode V2, you must have a cookie banner in place. This means you need to have, or get, CMP running that aligns with Google's standards, server-side tracking, [GDPR](https://stape.io/blog/server-side-tracking-gdpr), and the [e-privacy directive](https://www.google.com/about/company/user-consent-policy/). The Consent Mode V2 functionality is contingent on the language of the banner being in line with Google’s standards for compliance. How it works: when a user consents, the cookie banner communicates this to Google via the Google Consent Mode, allowing normal data collection. And vice-versa: if consent is rejected, Google reduces data collection of those users. In this scenario, Google employs conversion modeling, which uses machine learning to infer connections between user interactions and conversions. Consent Mode V2 and server-side tagging Google Consent Mode is required regardless of whether you use browser or server-side tracking. It's a widespread misconception that server-side tracking exempts the need for user consent before tracking, but this is incorrect. User consent is still necessary even when tracking occurs on the server side. This is particularly relevant under the [server side tracking General Data Protection Regulation](https://stape.io/blog/server-side-tracking-gdpr) and the [EU User Consent Directive](https://www.google.com/about/company/user-consent-policy/), which require explicit, informed consent for data processing and handling. How does Consent Mode V2 work in server-side Google Tag Manager? When a user interacts with a cookie banner on your site, their consent choice is passed to Google Tag Manager via the Consent Mode V2 signals. In a server-side setup, this process involves two layers working together. On the client side, your web GTM container receives the consent state from your Consent Management Platform (CMP) and applies it to all tags before any data is sent. On the server side, your sGTM container receives the same consent signals forwarded from the web container and uses them to decide what data gets passed on to platforms like Google Ads or GA4. When integrating [Consent Mode with server-side tracking](https://stape.io/blog/consent-mode-server-google-tag-manager), you need to make sure that user consent is respected on both sides. This includes: Configuring Consent Mode in web Google Tag Manager. Passing user consent from the web GTM to the server-side GTM. Setting up server-side tags to respect users' consent state, for example, ensuring that data sent to Google Ads only fires when ad_storage is granted.. In Advanced Consent Mode, cookieless pings are still sent to Google even when consent is denied, which supports conversion modeling for GA4 and Google Ads. That said, it's worth consulting your legal team before enabling this – collecting any signals from users who haven't consented carries legal risk. It's also worth keeping in mind that technologically savvy visitors may notice Google signals firing without their consent, which could affect how they perceive your brand. Consent Mode V2 parameters Google has not yet released any official documentation on Consent Mode V2. Still, according to our recent test, they integrated a new parameter responsible for handling the consent status. This is a new parameter named gcd. GCD is present in every interaction with Google services, regardless of whether Consent Mode is enabled or not. It also has information on how the consent signal was generated. This allows for a more precise interpretation of user consent decisions and helps Google maintain compliance with evolving privacy regulations. The parameter reflects whether consent was granted or denied and whether it was set by default or updated based on user interaction. Here’s how the string looks like: ![String](https://cdn.stape.io/i/68be935eed5c2532381168.png) String starts with 11. The letters are the values of each of those consents. And they make up a matrix of two coordinates: one that determines whether consent is given or not and another that determines whether the consent is by default (almost never) or because it is updated (that the user has accepted or rejected it). ad_storage and analytics_storage already existed before (it is the same information of the GSC parameter). ad_user_data and ad_personalization is the new and important thing. The first is advertising consent and the second is remarketing. Different consent signals are separated with 1. String ends with 5. Below you can find a table with the values for the signals: Values | Meaning l | Signal has not been set with Consent Mode. p | denied by default (with no update). q | denied both by default and after update. t | granted by default (no update). r | denied by default and granted after update. m | denied after update (no default). n | granted after update (no default). u | granted by default and denied after update. v | granted both by default and after update. Examples of how gcd parameter may look: gcd=11p1p1p1p5 ad_storage=denied analytics_storage=denied ad_user_data=denied ad_personalisation=denied gcd=11t1t1t1p5 ad_storage=granted analytics_storage=granted ad_user_data=granted ad_personalisation=denied How to test Google Consent Mode V2? 1. Using GTM Preview mode. Open your web GTM container → click Preview → navigate to your site and trigger a few events. In the GTM debugger, open the Consent tab for any event. You'll see the consent state for each parameter (ad_storage, analytics_storage, ad_user_data, ad_personalization) and whether it was granted or denied at the time the event fired. ![Google Tag Manager preview mode](https://cdn.stape.io/i/65c4b97368291176623321.png) 2. Using browser DevTools. Open DevTools → go to the Network tab → filter by collect to find GA4 requests. Click on a request and look for two parameters in the URL: gcs – the original consent signal parameter. gcd – the new parameter introduced in Consent Mode V2, which reflects the full consent state across all four parameters and how the consent was set (by default or after user interaction). If both parameters are present and the gcd value matches the consent state you'd expect based on user interaction, your setup is working correctly. You can use the values table earlier in this article to decode what each gcd string means. ![Filter for example GA4 requests](https://cdn.stape.io/i/65c4b978cdb5d436769328.png) Conclusion Consent Mode V2 provides advertisers and website owners the flexibility to tailor their data collection strategies based on user consent, thereby balancing the dual needs of privacy compliance and data-driven insights. Server-side tracking significantly improves data accuracy and resilience, especially when integrated with Consent Mode V2. Together, they enable more innovative and more compliant data strategies. We can highly recommend to: Check whether you have EEA traffic. Collect user consent for EEA users (via any Consent Management Platform). Share collected CMP consent signals with Google tools. In other words, make the correct setup of Consent Mode v2. If you are sending offline data to Google via API, add consent signals as well. And if you have other questions about server-side tracking and Stape, don’t hesitate to contact our [support team](mailto:support@stape.io). --- # 50% of users tracked with consent, up from 24% after implementing server-side tracking | Tag Manager Italia Source: https://stape.io/blog/mecshopping-doubled-results-with-user-tracking-consent Check out how MecShopping took advantage of server-side tracking and obtained doubled results thanks to Consent Mode. [MecShopping](https://www.mecshopping.it/en/) is a prestigious Italian eCommerce company, elected number one for 2022-2023 for the "Fashion and Accessories" category out of more than 7,000 online shops in the running (Source: survey conducted by Corriere della Sera and Statista). MecShopping has more than 8 shops and over 50 categories of clothing and footwear, accessories and underwear for men, women and children available on its online shop, with more than 100 offers and promotions active throughout the year. Requirement MecShopping needed to analyze in a detailed and timely manner the tracking of both the navigation and conversion path of users between the numerous product categories, and the interactions with the numerous product filters and features. In particular, it was essential to accurately analyze the success performance of the different active offers and the related advertising campaigns in order to optimize their conversion rate and return on investment. In addition to this, to optimize: tracking, to make it more [GDPR-compliant server side tracking](https://stape.io/blog/server-side-tracking-gdpr). the collection and passage of more punctual data from the feed of products uploaded on eCommerce to the Google Merchant Centre and advertising platforms. The solution adopted MecShopping has eCommerce with almost 100,000 products and a Merchant Centre (i.e., the tool that allows you to manage the Google display of the inventory of products available in your online shop and/or shop) with almost 2 million active items. For this reason, as the first phase of the consultancy, [TagManagerItalia](https://stape.io/partner/tag-manager-italia), top partner of Stape, conducted an analysis and technical audit of the active tracking implementations on the entire e-eCommerce. To address the identified requirements, they developed a customized measurement plan in collaboration with the MecShopping team. This plan was designed to: Define the overarching business and marketing goals for monitoring and accomplishment. Determine user actions within the eCommerce platform that need tracking. Identify navigational and User Experience (UX) activities for monitoring. This allowed the team to implement and optimize the configuration of Google Analytics 4 with custom tracking events for eCommerce according to the defined marketing and business objectives. With GA4 configuration it was possible to: make advanced tracking of user interaction with product cards and filters. identify possible friction points blocking users along their conversion path (e.g., errors in filling in form fields). make the management of cookie banners and user tracking [consents](https://stape.io/blog/consent-mode-server-google-tag-manager) more efficient and convenient via a consent management platform and Google Tag Manager. create Audiences and remarketing Segments in [Google Ads server-side](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) to optimize campaigns and their conversion rate. ... and much more. Specifically, through GA4 they managed the configuration and tracking codes of the platforms at Server-Side level: Criteo [Facebook](https://stape.io/blog/how-to-set-up-facebook-conversion-api) [Google Ads conversion server side](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) [GA4 server-side configuration](https://stape.io/blog/set-up-ga4-server-side-tracking) [TikTok](https://stape.io/blog/tiktok-server-side-tracking) Achievements The tracking implementations have enabled MecShopping to: make the reporting and analysis of the user's conversion path more precise and clearer. optimize the performance of offers. increase the conversion rate and return on investment of active advertising campaigns. In particular, thanks to the large number of events and browsing sessions tracked with the new implementations, MecShopping was able to exploit the potential of GA4's predictive audiences (i.e., a segment of users who, based on historical data collected in GA4, are most likely to complete a specific conversion action) to significantly increase the purchase rate on its shop. In addition, the optimisation of the Cookie Banner's layout and style allowed them to double the number of tracking consent acceptances from users from 24% to 50%, thus collecting a greater quantity and quality of accurate data to launch more targeted and profitable advertising campaigns. Got some questions? Don't worry, we've got you covered! Click on Get help and we will send you a free quote. --- # Higher Facebook Ads conversion rate and lower cost per click with GA4 and server-side tracking | Tag Manager Italia Source: https://stape.io/blog/decathlon-italy-optimizes-customer-journey-thanks-to-ga4-and-server-side-tracking Find out how Decathlon Italy optimized customer journey thanks to Google Analytics 4 and server-side tracking. [Decathlon](https://www.decathlon.com/) is one of the most renowned sports brands worldwide, with more than 1,700 shops in 59 countries and clothing and equipment for more than 80 sports disciplines. A responsible company committed to projects that combine sustainability, digital, and personalized services. ![Decathnlon Italy](https://cdn.stape.io/i/656f1cd774ab1962174025.png) Starting from its own business needs, Decathlon Italia's requirement was to identify objectives and make business and marketing decisions related to sustainability. In particular, the brand needed to focus on a Digital Analytics strategy related to the business of Decathlon Rent, the proprietary sports equipment rental platform, and to combine its objectives with ad hoc digital strategies, enhanced by a tracking system that exploited the potential of Google Analytics 4. Combined with the construction of a solid implementation strategy for the tracking system and GA4, the need was to develop and integrate all GA4 features from a technological point of view, but also in light of the regulatory and privacy context. The solution adopted Starting with the drafting of the measurement plan document, which is fundamental for defining clear and concrete business objectives and then breaking them down into marketing objectives and KPIs, [TagManagerItalia](https://stape.io/partner/tag-manager-italia), top partner of Stape, proceeded to the realization of specific technical implementations to ensure Decathlon Italia obtains: A totally customized migration and configuration of eCommerce [server-side tracking in GA4](https://stape.io/blog/set-up-ga4-server-side-tracking). Tracking management of its eCommerce portal via a proprietary server to make data collection and management more accurate and secure, thanks to [server-side tracking](https://stape.io/). Total and flexible control of the data collection and processing system, modifying tracking behavior according to the consents users grant or deny on the portal, thanks to [Consent Mode](https://stape.io/blog/consent-mode-server-google-tag-manager). The results obtained The strategic and technical interventions implemented made it possible to: Comprehensively map the navigation and rental experience of users within their shop. Identify users' preferences for options and services in order to carry out ad hoc activities and optimisations on the platform and in email campaigns. Analyze errors and bottlenecks that prevented users from continuing along the eCommerce conversion funnel. Obtain a system to identify needs for targeted business interventions for a specific sport and location. Optimize and redistribute more effectively the budget dedicated to translations of the Decathlon Rent portal into other key marketing and business activities. In the end, it increased the conversion rate of Decathlon Italia's Facebook Ads campaigns, while reducing costs per click, as well as gathering feedback from customers to make optimisations to the navigation and purchase path on their portal. Need help with the setup? Don't worry, we've got you covered! Click on Get assistance and we will send you a free quote. --- # Accessing original user IP when using Own CDN Source: https://stape.io/blog/accessing-original-user-ip-when-using-own-cdn A guide on how deal with IP addresses when using Own CDN. We already discussed why you would want to use [your Own CDN for server side tracking](https://stape.io/blog/increase-first-party-cookie-lifetime-set-by-a-third-party-ip#how-own-cdn-works). The part that a lot of people omit, is that in such a setup your server GTM will receive a request from an IP of your CDN provider, not the actual IP of the user, which may have an effect on your reporting. Here’s an example: My IP is: 193.193.212.69 but since the subdomain pointed to my sGTM is proxied through Cloudflare, I get a completely different address in the Common Event Data: ![address in the Common Event Data](https://cdn.stape.io/i/6554bc61b2321874122154.png) This means incorrect geo data in your destinations (GA4 would be the most obvious one), and of course also throws a wrench into whatever tags/functionality you may have directly reliant on IP address. Request headers come to the rescue Let's look at the Cloudflare example, the most commonly used CDN. The original IP address will always be available in Cf-Connecting-Ip header: ![Cf-Connecting-Ip header](https://cdn.stape.io/i/6554bca1ea513803578800.png) We can access this data with a native Request Header variable, very straightforward: ![Request Header variable](https://cdn.stape.io/i/6554bcbb9994f567227234.png) Now that we have a proper IP available to us in a variable, we need to apply to our tags. The simplest way to apply to all your sGTM tags is to use Transformations: 1. Go to Transformations section of your sGTM. 2. Create a new one, pick ‘Augment Event’: ![Augment Event in server Google Tag Manager](https://cdn.stape.io/i/6554bce32765c432845232.png) 3. We want to augment event data, so that ip_override (a [common event data](https://developers.google.com/tag-platform/tag-manager/server-side/common-event-data) parameter used by all the tags) is replaced with the value of our header, which we’ve previously created a variable for: ![augment event data](https://cdn.stape.io/i/6554bd084464c983008387.png) 4. Hit ‘Save’ - now all your sGTM tags will reference a proper user IP: ![a proper user IP](https://cdn.stape.io/i/6554bd551a8b7079308035.png) Happy tagging! Would like to receive help with the setup? Sure, we've got you covered! Click Get assistance, fill-up the form, and we will send you a quote. --- # Microsoft Ads (Bing) Offline Conversions tracking Source: https://stape.io/blog/microsoft-ads-bing-offline-conversion-tracking Set up Bing Offline Conversions tracking using Stape sGTM tag to track both online and offline conversions, enhancing campaign optimization and ROI. The primary purpose of offline conversion tracking is to be able to report a conversion that did not happen online, thus couldn’t be reported using scripts we all are so used to. Let’s say your customer sees your ad, clicks on it, and submits a Contact Us form. If your sales manager closes the deal - you would ideally want to know what has led to this conversion and that’s where Bing offline conversion tracking will become handy. Keep in mind that in such case you’ll need a small development effort to submit a Microsoft click ID (msclkid query parameter) with every form submitted, e.g. in a hidden input, so you could later send it from your CRM to sGTM (via webhooks for example). Additionally, nothing is stopping you from sending your online conversions via the Bing Offline Conversions tag, so you do not have to rely on Bing pixel which can be easily blocked by adblockers. Microsoft has released in closed BETA the Conversion API, making it possible to configure server-side tracking for this platform. Check our blog post on [Microsoft Conversion API integration](https://stape.io/blog/guide-microsoft-conversion-api-integration) for the detailed configuration guide. Benefits of Bing Offline Conversions tracking Better tracking. Allows tracking and attribution of events that happened offline (e.g., in-store or over the phone). Better ROI. You can optimize your campaigns based on the full online and offline impact of your search ads. Pure s2s option. This gives you the ability to send conversion data to your server GTM container via webhooks for example, thus making your reporting completely server-to-server. How to set up Bing Offline Conversions tracking using Stape sGTM tag microsoft ads https://youtu.be/sITyV--tIh4?si=XzVmPMRR7AAe9ZCO Now if you are a Stape user the process is significantly simplified. Microsoft authentication is fully handled on Stape side, there is no need to create an app in Azure anymore. Before setting up the tag, please log in to your Stape account -> go to Connections tab -> click sign in for Microsoft Ads and pass the authorization with a Microsoft account that has access to the Microsoft Ads account you want to set up the Bing Ads Offline conversion tag for. That’s it, now you may use the new section in the Bing offline tag, you just need to enter Customer Account ID, Account ID and Stape Container API key that you may find in your container settings on Stape. The rest of the tag setup process remains the same and is described in the next section. ![Bing offline tag - Stape](https://cdn.stape.io/i/661902434c406398853855.png) If for some reason you are still not using Stape, the process gets pretty complicated. In such a case you will need to obtain Microsoft development token, create your own app on Azure and an endpoint for authentication callback. So [sign up](https://stape.io/sign-up) on Stape and enjoy how fast you can get your Bing offline conversion tracking up and running. How to set up Bing Offline Conversions in sGTM container 1. Add [Bing Offline Conversions tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/microsoft-ads-offline-conversion-tag) from sGTM gallery. 2. Log in to your Stape account -> go to Connections tab -> click sign in for Microsoft Ads and pass the authorization with a Microsoft account that has access to the Microsoft Ads account you want to set up the Bing Ads Offline conversion tag for. 3. To get Customer account ID and account ID please go to your Microsoft Ads account where offline conversion is created and check the URL: Customer Id is under &cid= query parameter Customer Account Id is under &aid= query parameter. 4. You may find the Stape container API key under your Stape account -> select the container -> Settings tab -> Container API Key. 5. Lastly, do not forget to add conversion data. The tag also allows you to send user data for part of the enhanced conversions functionality. Conclusion The ability to report data from the [server GTM container to Microsoft Ads](https://stape.io/blog/bing-server-side-tracking) Offline conversions brings valuable benefits for advertisers looking to maximize the impact of their campaigns. It gives you the ability to close the gap between the online and offline activities, providing valuable insights and enabling businesses to make data-driven decisions. Do not hesitate to contact [Stape Care](https://stape.io/care) if you need help setting up Bing Offline conversion tracking - we’ll be happy to help! Would like to receive help with the setup? We've got you covered! Click Get assistance, fill-up the form, and we will send you a quote. --- # Cookieless tracking GA4: explained and set up guide for 2026 Source: https://stape.io/blog/cookieless-tracking-ga4 GA4 cookieless tracking is a method for measuring user interactions using event-based data modeling and AI/ML without relying on browser cookies. After years of planning to kill off [third-party cookies](https://stape.io/blog/third-party-cookies), Google reversed its decision on July 22, 2024. Instead of a total phase-out, they let users make an "informed choice" about their tracking preferences across the web. Google changes its direction at a moment's notice. More importantly, even if third-party cookies stay, user privacy habits haven't changed. People are still opting out, browsers like Safari already block them, and ad blockers are everywhere. Relying on standard browser tracking is becoming a game of "missing data." GA4 was built for this privacy-first world, but to unlock its full potential, you need to move beyond the default settings. Implementing [Google Analytics server-side tracking](https://stape.io/stape-gateway) is the extraordinary way to reclaim your data, bypass browser limits, and stay ready for whatever Google decides to do next. Implementing GA4 cookieless tracking ensures your data remains accurate even in these restrictive environments. Cookieless tracking in Google Analytics 4 explained Websites traditionally use cookies to track user actions, like saving cart items or recording ad clicks. But with growing privacy concerns, many are shifting to [cookieless tracking](https://stape.io/blog/what-is-cookieless-tracking). This raises a common question: does Google Analytics 4 use cookies? By default, the answer is yes, but you can configure it to function as Google Analytics without cookies. Cookieless tracking Google Analytics relies on first-party data instead of browser-stored cookies. The most reliable way to implement this is through server-side tracking. This not only helps to get rid of cookies and make tracking more accurate but also makes it more compliant and has greater control over the user data. Google Analytics 4 uses machine learning to model the behavior of users who did not consent to analytics cookies. They use the behavior of similar users who allowed consent to analytics cookies to model the behavior of those who did not agree to analytics cookies. This is a core component of how Google Analytics 4 cookieless features work today. To be eligible for machine learning, GA4 property should meet specific criteria: Consent mode is enabled across all pages. Tags should trigger before the consent dialog appears. Google tags load in all cases, not only if the user consents. 1,000 events per day with analytics_storage='denied' for at least 7 days. 1,000 daily users sending events with analytics_storage='granted' for at least 7 of the previous 28 days. If your GA4 property doesn't qualify for machine learning or if you discover that machine learning isn't providing accurate results, you have the option to rely on first-party data when a user opts out of analytics cookies and implements Google Analytics 4 without cookies. To make GA4 work correctly and recognize users who come back, you have to provide GA4 with the following information: Client ID (cid) Session ID (sid) Session Count (sct) First Visit (_fv) User Engagement (seg) To set up cookieless tracking in GA4 when a user hasn't given consent, we'll use these tools: [Server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). [Server-side GA4](https://stape.io/blog/set-up-ga4-server-side-tracking). Differentiate [user consent using the GA4 gsc parameter](https://stape.io/blog/consent-mode-server-google-tag-manager). Connect [Google Service Account to Stape](https://stape.io/blog/how-to-connect-google-service-account-to-stape). [Write data to Firestore](https://stape.io/blog/write-data-to-firestore-from-server-google-tag-manager#how-to-set-up-the-firestore-writer-tag). Read data from Firestore. Stape's [User ID power-up](https://stape.io/solutions/user-id). Core features in GA4 for a cookieless analytics GA4 is a complete rebuild designed for a privacy-first world. Let's try to discover how Google Analytics 4 can thrive without third-party cookies: Focus on events. GA4 uses an event-based model to track every interaction as a unique event-like clicks, scrolls, and video plays. It focuses on what users do rather than who a third-party cookie says they are. It also merges web and app data into one view, giving you a seamless look at your audience. This approach is fundamental to Google Analytics cookieless tracking. Track users across all devices. Unlike older versions, GA4 connects the dots across different platforms and devices. Even without third-party cookies, its cross-platform tracking helps you see the full customer journey. This provides a holistic view of how users move from a mobile app to a desktop site, filling in the blanks that cookieless environments often create. Put privacy first. GA4 puts privacy at its core to meet strict global laws like GDPR and CCPA. It automatically anonymizes IP addresses and lets you adjust data collection based on user consent signals. That’s how your tracking stays compliant while building the audience's trust. Fill data gaps with AI/ML. When cookies disappear, data gaps are crucial. GA4 solves this vulnerability by using advanced AI and machine learning. These algorithms predict user behavior and "model" missing data points. This means you still get accurate insights and conversion paths even when direct tracking isn't possible. Double down on first-party data. GA4 cookieless strategies prioritize first-party data, allowing businesses to gain insights directly from their audience in a privacy-compliant manner. GA4 is optimized to squeeze every drop of value from the data users give you directly. The move to GA4 is a major evolution. While the "cookieless" world brings new challenges, it also creates a chance for more honest and accurate data analysis. To maximize GA4's potential, you should learn how to implement cookieless tracking to strengthen your first-party data and implement Google Consent Mode. How to set up cookieless tracking in Google Analytics 4 To determine if consent was granted or not, we use the gcs parameter. If you want to know how to set up cookieless tracking in GA4, you must understand that the default configuration lacks some information, so all requests are written to Firestore for "memory." To determine if a user without consent has an active session in GA4, we will use the difference in the timestamp of the previous visit vs the current visit. If the difference is more than 30 minutes, we will update the session parameters in Firestore. Firestore will use the UserID as the document name and save details about the user session within these documents. While this is a straightforward way to organize Firestore, there are numerous other approaches to maintain data about the complete user experience in Firebase. 1. User with consent to analytics cookies 1.1 [Use default GA4 server-side setup](https://stape.io/blog/set-up-ga4-server-side-tracking). 1.2 If needed, write data to Firestore. For this purpose, we use the [Firestore Writer tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-writer-tag). We use the collection UserID. For each user ID, we create a new document that uses cid as a document name. ![Firestore Writer tag](https://cdn.stape.io/i/6548f5bb3e144244955549.png) ![Firestore Writer tag](https://cdn.stape.io/i/6548f5d42e645747727554.png) 1.3 The GA4 server-side tag has a standard configuration and triggers every time the GA4 client is claimed, and the user consents to analytics cookies. ![Google Analytics 4 tag ](https://cdn.stape.io/i/6548f5fa67d3d107808447.png) ![Google Analytics 4 tag](https://cdn.stape.io/i/6548f6045f1f8509542382.png) 2. User without consent to analytics cookies 2.1 Existing users with active session 2.1.1 If consent to analytics cookies was not granted, we used Stape [User ID](https://stape.io/solutions/user-id) power-up to add user ID in sGTM request headers. 2.1.2 With the help of the [Firestore Writer tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-writer-tag), we write data to Firestore and use Stape User ID as a document name. ![Google Analytics 4 tag](https://cdn.stape.io/i/6548f65d4c647552875873.png) 2.1.3 To check that the session is active, we use the Firestore Reader variable to extract the timestamp that is associated with the last visit of this user in the Firebase. Then, check the difference between the user's previous session timestamp and the current timestamp. If the timestamp is less than 30 minutes, the user has an existing session. ![Firestore Reader variable](https://cdn.stape.io/i/6548f679288fe672847955.png) 2.1.4 Parameters are updated like below: cid and client_id is the value of Stape UserID ga_session_number - a value of the ga_session_number in the Firestore ga_session_id - a value of the ga_session_id in the Firestore x-ga-mp2-seg (engaged session) is set to 1 x-ga-system_properties.fv (first visit), x-ga-system_properties.ss (session start), x-ga-system_properties.nsi (new session ID) are removed. 2.1.5 Send modified data to GA4. To update data before sending it to GA4, we use transformation. ![Send modified data to GA](https://cdn.stape.io/i/6548f6c1eb659866436966.png) ![Send modified data to GA](https://cdn.stape.io/i/6548f6d2ba3a4849884687.png) ![Send modified data to GA](https://cdn.stape.io/i/6548f6dba5005505339121.png) 2.2 Existing user with no active sessions 2.2.1 If consent to analytics cookies was not granted, we used Stape User ID power-up to add user ID in sGTM request headers. 2.2.2 Write user data based on Stape User ID in Firestore again with the help of the Firestore Writer tag. ![Write user data based on Stape User ID in Firestore](https://cdn.stape.io/i/6548f702f1338672379394.png) 2.2.3 To check that the session is active, we use the Firestore Reader variable to extract the timestamp associated with this user in the Firebase. Then, check the difference between the user’s last session timestamp and the current timestamp. If the timestamp is more than 30 minutes, a new session has started. 2.2.4 Parameters are updated like below: cid and client_id is the value of Stape UserID. ga_session_id is a ga_session_id value from Firestore, previously set to timestamp in seconds. ga_session_number is the ga_session_number number you have in Firestore plus 1. x-ga-system_properties.ss (session start) is set to 1. X-ga-mp2-seg (Engaged Session) is set to 1. x-ga-system_properties.fv is removed. 2.2.5 Send modified data to GA4. To update data before sending it to GA4, we use transformation. Tag triggers when a GA4 client is claimed, consent is not granted, and the time difference between sessions is more than 30 minutes. ![Send modified data to GA4](https://cdn.stape.io/i/6548f7297ad81515225993.png) 2.3 New user 2.3.1. When analytics cookies are not allowed, use Stape's User ID power-up to generate a user ID for Google Analytics 4 without cookies. 2.3.2. Check if a user with the same UserID already exists in Firestore. If no user with the same user ID is found, use a [Firestore Writer tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-writer-tag) to create a user with session details in the database. ![Firestore Writer tag](https://cdn.stape.io/i/6548f76f2e971786089547.png) ![Firestore Writer tag](https://cdn.stape.io/i/6548f7776ca17296152095.png) 2.3.3 Parameters are updated like below: cid and client_id is the value of Stape UserID. ga_session_id is ga_session_id from Firebase. ga_session_number is the ga_session_number number you have in Firestore. x-ga-system_properties.ss (session start) is set to 1. x-ga-mp2-seg (engaged session) is set to 1. x-ga-system_properties.fv (first visit) is set to 1. 2.3.4 Send modified data to GA4. ![Send data to GA4](https://cdn.stape.io/i/6548f7ab91c75575828568.png) ![Send data to GA4](https://cdn.stape.io/i/6548f7b418750472541273.png) ![Send data to GA4](https://cdn.stape.io/i/6548f7bd4614d878632745.png) How to check if GA4 cookieless tracking is working correctly? So, you've built your cookieless server-side pipeline. Now, we have to prove it works. Since we aren't relying on the usual _ga cookies, we need to look under the hood of your network requests. 1. Inspect the GCS parameter. Open your website and use the browser's Inspect tool (F12) to watch the Network tab. Look for the Google Analytics requests (collect?v=2…). If a user denies consent, you should see gcs=G100 or gcs=G101. It tells GA4 to ignore cookies. If you see this and the data still reaches your server, you're on the right track. This confirms the browser is running Google Analytics without cookies. 2. Watch the sGTM Preview Console. Enter the Preview Mode in your Server GTM container. Trigger an event without giving consent. Check the Client → make sure the GA4 Client "claims" the request. Check the Tags → your specific cookieless GA4 tags should fire. Inspect the Request → look at the Outgoing HTTP Request to Google. You should see your manually mapped Client ID (cid) and Session ID (sid) being sent. If these values are present even without a cookie, your Firestore logic is doing its job. 3. Verify Firestore records. Head over to your Firebase Console. Check the collection you created (for example, UserID). You should see new documents appearing with the Stape User ID as the name. Open a document and verify that it stores the last_visit timestamp, session_id, and session_number. If the data is there, "memory" is also working. 4. Check GA4 Realtime Reports. Finally, open your GA4 Realtime report. Even with consent denied, you should see your activity appearing. Since we manually handle the cid and sid, GA4 will see you as a single, consistent user rather than a series of disconnected "pings." Conclusion Implementing GA4 cookieless tracking through server Google Tag Manager represents a significant step forward in adapting to the changing landscape of online data privacy and user preferences. As we navigate the future, knowing how to implement cookieless tracking will help businesses stay competitive and relevant digitally. By using the power of server-side tracking and Google Tag Manager, businesses can maintain their commitment to data privacy while still harnessing the crucial data-driven insights provided by GA4. This approach not only ensures compliance with emerging regulations but also fosters trust with users concerned about their online privacy. As we navigate the cookieless future, embracing innovative solutions like server-side tracking and GA4 can help businesses stay competitive and relevant digitally. Want to start on server-side? We are happy to hear that! Click on Try for free to register and check all the possibilities. --- # Yahoo Conversions API using server Google Tag Manager Source: https://stape.io/blog/yahoo-conversion-api-using-server-google-tag-manager Set up Yahoo Conversions API with server GTM! This guide covers key parameters like Client ID and event details, plus handling yclid and yjr_yjad. [Yahoo](https://www.yahoo.com/) is an internet pioneer, known for its web portal, search engine, and various online services like email and news. Like other platforms, Yahoo also has its own [Conversion API](https://help.yahooinc.com/dsp-api/docs/yahoo-conversion-api) and [an official tag for sGTM](https://tagmanager.google.com/gallery/#/owners/yahoojp-marketing/templates/gtm-template-conversion-api). The tag doesn't look too complicated to set up, although it has its own nuances if you understand it in detail. Yahoo Conversion API description Below is the list of tag parameters and their description + example of settings we made while testing it. Tag parameters and fields Client ID To get a Client ID you need a [Japan ID](https://account.edit.yahoo.co.jp/signup?.src=developer&.done=https%3A%2F%2Fdeveloper.yahoo.co.jp%2Fstart%2F), [sign up on Yahoo! Developer Network](https://e.developer.yahoo.co.jp/register) and issue a Client ID. yahoo_ydn_conv_io and yahoo_ydn_conv_label These parameters are similar to conversion id and label as for Google ADS for example. You can find them in your Yahoo conversion settings:In the conversion settings list, locate the "Advanced Matching" section. For the tag that has advanced matching activated, select "Show Parameters". ![yahoo conversions api](https://cdn.stape.io/i/6548ce3ed6fc1252230082.jpg) Example of yahoo_ydn_conv_io: 1EALEzSJBNabcdEFGBE1 Example of yahoo_ydn_conv_label: AB0ABCDEFGHIJKLMNOP123456 Event params: hashed_email Hashed_phone_number: the raw phone number with or without a country code) Еvent_time: use 10-digit Unix Time between current time and 90 days before requests) Yahoo_ydn_conv_transaction_id: order id or any other conversion unique identifier Yahoo_ydn_conv_value: value of conversion The name of these parameters speaks for itself. Unfortunately Yahoo CAPI tag requires already hashed data and does not hash it itself as FB CAPI tag does. But if you are using [Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag) - [Data Client](https://github.com/stape-io/data-client) this is not a problem as there is a special option for this. ![yahoo capi tag](https://cdn.stape.io/i/6548ce76e562c036944094.png) For hashing you just specify a regular email field and in Data Tag specify the required hashing type (in case of Yahoo it is SHA256 hex) - the data will come to the server already hashed. The event time field is actually optional, because if you look in the tag code, you will find that if the field is undefined - the current timestamp will be taken, which is usually the case. Keep in mind that the amount you're handing over to the yahoo_ydn_conv_value will be counted as conversion amount, so you need to customize the value if you want the amount to be for example without tax and shipping. Identification parameters yclid (cookie ‘_ycl_yjad’) yjr_yjad (cookie ‘_yjr_yjad’) Unfortunately, the Yahoo Conversion API tag does not save these parameters if it finds a click id in the url and there's no separate tag like conversion linker. So to pass these two parameters you have two options: 1. [Install Yahoo Site General Tag on the web container](https://ads-help.yahoo-net.jp/s/article/H000044574?language=en_US#c01). This way Site Tag will generate and save the necessary cookies. The downside here is that you'll be loading voluminous JS for the sake of saving cookies from the url. 2. Save these cookies with a custom JS / solution. When a user clicks on a Yahoo advert, the query parameter 'yclid' is added to the url. You need to check the url on each page view for yclid on page url and if it is there - write it value to a cookie for 90 days, the cookie name should be '_ycl_yjad'. Example format ‘_ycl_yjad’ cookie: YJAD.1234567890.1EALEzSJBNabcdEFGBE1 Yjr_yjad - is essentially a browser id and is an optional field. You can generate it e.g. from timestamp + some parameter, e.g. a random number and store it in the cookie under the name '_yjr_yjad'. Example format of ‘yjr_yjad’ cookie: 1600000000.f0 It is not necessary to transfer cookies manually via event data in Yahoo Conversion tag to the server, the tag checks if cookies '_ycl_yjad' and 'yjr_yjad' are present in the headers of each request. So if they are present - it will work automatically. Yclid is the most important parameter for conversions to work, so it is advised to spend more time setting it up and testing it so that everything works exactly correctly. Here you can find [detailed documentation from Yahoo](https://s.yimg.jp/images/promotionalads_edit/pdf/202008_yahooad_tags.pdf) about how click id works (in Japanese only). ![yahoo capi](https://cdn.stape.io/i/6548cf045b19d305273060.png) Yahoo Conversion API tag setup As usual, you need to have a server Google tag Manager container and [Yahoo CAPI tag from the GTM](https://tagmanager.google.com/gallery/#/owners/yahoojp-marketing/templates/gtm-template-conversion-api) template gallery added. Conversion customisation consists of just two general points: 1. On the web container we have configured a server Google tag Manager container and [Yahoo CAPI tag](https://tagmanager.google.com/gallery/#/owners/yahoojp-marketing/templates/gtm-template-conversion-api) from the GTM template gallery added. ![yahoo conversions api](https://cdn.stape.io/i/6548cf650fc93883036921.png) 2. On the server container on the Data Client hit with purchase event we have a Yahoo Conversion API tag that gets all the data from the event data and sends the conversion. ![yahoo conversions api](https://cdn.stape.io/i/6548cf8acafe8534418685.png) Conclusion That's it! Unfortunately, we don't have much use of Yahoo ADS in our region, so maybe this article may not cover some of the nuances on Yahoo, but hopefully this will definitely help you set up server side conversion tracking for Yahoo. If you have any comments or additions to this, please let us know in the comments below. And if you need help, don’t hesitate to ask for a free quote! Got some questions? Don't worry, we've got you covered! Click on Receive help and we will send you a free quote. --- # 88% more Facebook Ads conversions with Conversions API vs Pixel only | Tag Manager Italia Source: https://stape.io/blog/case-study-on-increase-in-conversion-campaigns-for-farmasave Find out how server-side tracking helped to optimize advertising campaigns and created cross-selling and up-selling strategies for Farmasave. [Farmasave](https://www.farmasave.it/) is among the most widely appreciated online shops in the pharmaceutical field in Italy, with an average of 2,500 daily purchases. Farmasave decided to turn to [Tag Manager Italia](https://www.tagmanageritalia.it), one of the [top partners](https://stape.io/partner) of Stape, and asked for help: they wanted to track the actions taken by people on their e-commerce site safely and precisely. To meet this need, the main goal was to configure Google Analytics 4 and e-commerce tracking to analyze the data necessary to accurately respond to Farmasave customers' preferences and needs. In addition, to optimize the quality and quantity of tracked data, a series of specific implementations were carried out, including: Trackings to make them more compliant with GDPR regulations. Google Ads tracking tags. Tracking for Facebook Ads campaigns. TikTok tracking. BigQuery configuration to create dashboards in Looker Studio and Tableau. The process As a first step, a detailed analysis of the tracking system implemented on Farmasave's digital assets was carried out. This step is essential to understand what can be improved and what is missing and should be configured. From the results of the analysis, TagManagerItalia found a 20% discrepancy between the actual number of transactions recorded in the backend and the numbers in Google Analytics. Then they made corrections and optimized the existing standard and advanced tracking configurations, thus obtaining a significant improvement in the accuracy of the tracked data. However, due to the limitations of the Magento 2 platform used by Farmasave, the migration and implementation of e-commerce tracking in GA4 were carried out using a proprietary Google Tag Manager template, using the Google Universal Analytics (GA3) structure. Subsequently, based on Farmasave's business objectives and the results of the analysis, TagManagerItalia developed specific activities for e-commerce: Enrichment of the dataLayer, passing more information and tracked data from e-commerce to Google Tag Manager. Implementation of GTM Server-Side with [Custom Loader](https://stape.io/solutions/custom-gtm-loader) (stape’s power-up), a feature that prevents ad blockers and browsers from blocking specific data tracking. Configuration of [Facebook's Conversion API](https://stape.io/blog/how-to-set-up-facebook-conversion-api), passing user data for the Advanced Matching feature. Configuration of advanced [Google Ads server side tagging](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords). Configuration of the [Consent Mode](https://stape.io/blog/consent-mode-server-google-tag-manager) for recovering Google Ads conversions, also recording conversions from those who refuse cookies, in compliance with regulations and privacy. Implementation of [Tik-Tok Server-side tracking](https://stape.io/tiktok-events-api-gateway), reusing the GA4 e-commerce tracking structure, achieving 100% data accuracy. Creation of reports focused on data related to Facebook Ads and Instagram Ads campaigns. The Results Achieved Farmasave drastically reduced the discrepancy between backend data and Google Analytics 4 data from 20% to 6%, bringing the accuracy of the corrected data displayed and analyzed in GA4 to 94%. Thanks to the new data tracking system, Farmasave was able to precisely analyze and understand the items most frequently purchased by users, thus implementing cross-selling and up-selling strategies that have helped (and will help) e-commerce increase its turnover. With the implementation of the Conversion API and the use of Facebook's Advanced Matching, Farmasave's Facebook Ads campaigns recorded 88% more conversions than using just the tracking Pixel. Configuring advanced Google Ads conversions via Server-Side tracking allowed Farmasave to obtain more accurate tracking, recording 3.13% more conversions measured from its Google campaigns. Furthermore, traffic sessions tracked with GA4 increased by 82% compared to what was tracked in GA3, going from 2.9 million to 3.5 million per month, resulting in a consequent increase in returning users and customer retention rate. Conclusion Farmasave's journey with Tag Manager Italia illustrates the profound impact that meticulous data tracking and optimized analytics can have on an e-commerce business. By addressing discrepancies, leveraging advanced tracking techniques, and harnessing the power of Google Analytics 4, Farmasave not only achieved greater data accuracy but also gained insights that directly influenced their business strategies. This case underscores the importance of ensuring precision in digital tracking systems, especially in today's digital era where data-driven decisions are paramount. So if you would like a setup or need help, don’t hesitate to contact Stape’s team of experts. We will be more than happy to help you! Did you like the case study? Achieve a success too! Click on Get assistance and we will send you a free quote. --- # 128% increase in new memberships for FAI, with 57% coming from Google Ads | Tag Manager Italia Source: https://stape.io/blog/case-study-on-ga4-and-google-ads-for-fai Learn how FAI used GA4 and server-side GTM to achieve a 128% increase in memberships. This case study details their funnel system and optimized ad campaigns. [The FAI](https://fondoambiente.it/) - Fondo per l’Ambiente Italiano is a non-profit foundation that since 1975 has been dedicated to the protection and enhancement of the national heritage of art, history, and nature. It has been operating for over 50 years in the field of environmental and cultural sustainability and has over 200,000 members. ![Fondo per l’Ambiente Italiano](https://cdn.stape.io/i/654216a80960c794894330.png) The FAI sought assistance from [Tag Manager Italia](https://www.tagmanageritalia.it), one of the [top partners](https://stape.io/partner) of Stape, to enhance the performance of their advertising campaigns (particularly Google Ads and Meta) and optimize the tracking of online memberships. Specifically, the FAI wanted to improve the performance of its advertising ecosystem through migration to Google Analytics 4 and its correct configuration for tracking annual memberships. Additionally, there was a need to create a funnel system, an advanced tracking system that could capture all steps of the main purchase flows of the annual membership card. The process They used the structure of Ecommerce in Google Analytics 4 to manage the data collection related to FAI card purchases. Two purchase and renewal paths were detailed, and the following specific objectives were set: The FAI card purchase or renewal path analyzed to highlight friction points that obstructed the user's conversion journey. Personal registrations differentiated from gifts and renewals. Campaigns, especially Google and Meta Ads, optimized by managing micro-conversions, aiming to create audience segments increasingly prepared for the final conversion. By creating a custom tracking event and the standard Ecommerce events in GA4, it was possible to funnel the user's navigation flow, collecting key data and information, including: Viewing the cost rates for each type of card. Clicking on a rate to see the details of individual offers. Adding a rate to the cart to proceed with the purchase. Beginning the checkout. Adding personal data. Adding the payment method. Purchase. Bottlenecks that obstructed the user's path, from the commencement of the navigation and purchase process to its end, were accurately identified. Finally, TagManagerItalia exploited and enhanced a native parameter of Ecommerce in GA4 (i.e., a specific value was attributed to it): this made it possible to further optimize the data flow to advertising campaigns by passing the necessary information to track conversions depending on the type of card. To send additional data to Google Ads and Facebook Ads campaigns, they: Did the implementation of Server-Side Google Tag Manager. Sent GA4 data related to micro-conversions made along the customer journey. Installed the Google Ads Remarketing Tag. With the switch and implementation of Ecommerce in GA4, they passed another important piece of data to optimize the advertising ecosystem: the value of the quota subscribed by the user. This allowed the algorithm to have not just the conversion but also a monetary value of the same. The Results Achieved Thanks to the intervention of TagManagerItalia, the FAI recorded a 128% increase in new memberships in the first half of 2023 compared to the same period in 2022. Furthermore, a specific Christmas campaign led to a 55% increase in new memberships compared to the previous year, of which 57% came from Google Ads. Conclusion With the capabilities of Google Analytics 4 combined with strategic optimization of Google and Facebook Ads proved to be a game-changer for Fondo Ambiente Italiano. By harnessing advanced tracking techniques and using the data to refine their advertising approach, FAI not only achieved a clearer understanding of their members' online journey but also witnessed a significant boost in their advertising ROI. This case study underscores the importance of implementing server-side tracking and using Stape as a hosting. We invite all organizations, whether in the cultural sector or beyond, to draw inspiration from FAI's successful integration of technology to meet and exceed the objectives. Did you like the case study? Achieve a success too! Click on Get help and we will send you a free quote. --- # Server to server Voyado tracking using server Google Tag Manager Source: https://stape.io/blog/server-to-server-voyado-tracking-using-server-google-tag-manager Learn how to track cart changes, product views, and purchases in Voyado using sGTM. This article explains the Voyado tag setup and the benefits of cookies. [Voyado](https://voyado.com/) is an emerging company specializing in the development and operation of a data-centric SaaS solution. With its focus on Marketing Automation, CRM, Loyalty, and Product Discovery, Voyado stands out as the go-to tool for retailers and e-commerce businesses aiming to tailor their communication and enhance customer experiences. The Voyado platform now [supports server-side cookies](https://developer.voyado.com/en/web-activity-tracking/support-for-server-side-cookies), which are beneficial in scenarios like dealing with [Safari's Intelligent Tracking Prevention](https://stape.io/blog/safari-itp) that caps the lifetime of client-side cookies at 7 days. So we, at Stape, decided to create a [Voyado tag](https://github.com/stape-io/voyado-tag#voyado-tag-for-google-tag-manager-server-container) for the server Google Tag Manager for you to take the most out of this platform. Here we will talk about how you can benefit from the server-side integration and how to set up a [Voyado tag](https://github.com/stape-io/voyado-tag#voyado-tag-for-google-tag-manager-server-container) in your server Google Tag Manager container. Advantages of server-side Voyado cookies Web browsers like Safari, Firefox, and Brave are focused on keeping users safe online. One way they do this is by decreasing the lifetime of third-party cookies. These cookies used to last up to 2 years, but now they can only live for a maximum of 7 days. This change makes it harder for websites to track user activity on the website and attribute conversions to traffic sources. Safari takes things a step further. It not only limits how long third-party cookies can last but also [decreases the lifetime of first party cookies set by third party IPs](https://stape.io/blog/safari-itp?trk=public_post_comment-text) and [blocks tracking tools like Google Tag Manager and Analytics in private browsing mode](https://stape.io/news/safari-update-for-gtm-google-analytics-google-ads-blocked-in-incognito-mode). This is where the server-side tracking can help. When using a [custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) for your tagging server, you can set first party server-side cookies. These first-party cookies have a longer lifespan, which greatly benefits your tracking and advertising efforts. How to set up Voyado tag using server Google Tag Manager 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. The two most popular ways of sending data to sGTM are by [setting up server-side Google Analytic 4](https://stape.io/blog/set-up-ga4-server-side-tracking) and [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Download [Voyado tag from Github](https://github.com/stape-io/voyado-tag#voyado-tag-for-google-tag-manager-server-container). 4. Go to your [server Google Tag Manager container](https://tagmanager.google.com/). Click on Templates on the left menu and click New near the Tag Templates. 5. Click three dots in the top right corner -> Click Import -> Select Voyado tag template you’ve recently downloaded from GitHub -> Click save. ![voyado tag](https://cdn.stape.io/i/6540d221f18bb820968664.png) 6. With our Voyado tag for server Google Tag Manager you can: Track [cart changes](https://developer.voyado.com/en/web-activity-tracking/tracking-cart-changes): monitor additions/removals, enable cart abandonment flow, measure the total value of items in a cart at any given time, allowing for better understanding of potential revenue. Track [product view](https://developer.voyado.com/en/web-activity-tracking/tracking-product-views): see which products are most viewed, how long users view certain products, what attributes they engage with and determine what referral sources or campaigns lead to specific product views. Track purchase: monitor the number of successful purchases, total revenue generated, and average order value. [Identify the user](https://developer.voyado.com/en/web-activity-tracking/identification-and-cookies): set a cookie with ContactId or email, for later use in tracked events. To configure the tag you need: Base url - Base URL in the following format: https://[client].voyado.com API key - your[Voyado Engage API key](https://developer.voyado.com/en/api/api-authentication). Email - email of the user. You can also click on the checkbox “Use Optimistic Scenario” and the tag will call gtmOnSuccess() without waiting for a response from the API. 7. Publish the container. Conclusion In this guide, we have outlined how to set up server to server [Voyado](https://github.com/stape-io/voyado-tag#voyado-tag-for-google-tag-manager-server-container) tracking via server Google Tag Manager (GTM). With a seamless setup, you can harness the full potential of Voyado's capabilities. With server GTM, it’s possible to achieve more efficient tag management, better site performance, and enhanced data security. As always, regular checks and updates are recommended to maintain optimal performance and to take advantage of any new features or improvements from both Voyado and server GTM. In case you have any trouble with your setup, don’t hesitate [to leave a ticket](https://stapehelp.zendesk.com/hc/en-us/requests/new) or ask for a quote. Our team of experts will help you right away! --- # Server-side Google Ads conversion tracking in Shopify Source: https://stape.io/blog/server-side-google-ads-conversion-tracking-in-shopify Set up server-side Google Ads conversion tracking for your Shopify store with Stape's Conversion Tracking app, improving accuracy and overcoming cookie restrictions. Shopify is the top eCommerce platform that lots of business owners use to build and run their online shops. Many Shopify store owners count on Google Ads to boost their online store sales as a crucial way to connect with potential customers. The main factor for a successful online advertising campaign is precise conversion tracking. https://stape.io/blog/server-side-tagging-for-shopify[Server-side tracking](https://stape.io/) is a great way to capture accurate and comprehensive data about user interactions on your website, minimizing the impact of cookie [restrictions](https://stape.io/blog/safari-itp) and [ad blockers](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers). In this article, we will show how to implement server-side Google Ads conversion tracking for Shopify stores using Stape’s [Conversion Tracking app for Shopify](https://apps.shopify.com/server-gtm). Use [Stape Conversion Tracking for Shopify with Setup Assistant](https://stape.io/solutions/shopify-app-and-setup-assistant?cta=blog_article) to make tracking simple. Install server-side GTM in minutes, get eCommerce events created automatically, and load tags for Google, Meta, TikTok, and more. Events flow through Stape’s server-side tracking platform, so you capture more conversions and improve ROAS. Why transitioning to server-side tracking is important Server-side tracking technology has become increasingly popular in recent years, and there are several reasons for this trend. The primary factor is that server-side tracking is well-suited to the evolving landscape of tracking regulations and restrictions, making it a better choice than traditional web tracking methods. For example, the [Transparent Digital Services Google Ads setup with Stape](https://stape.io/blog/transparent-digital-services-server-side-tracking-case-study) helped lower cost per purchase and keep conversion data stable across campaigns. Below are some situations where server-sid tracking can help to increase the accuracy of tracking: Limitation on the use of third-party cookies. All popular browsers except Chrome are already limiting the use of third-party cookies. On the other hand, marketing and analytics platforms rely on third-party cookies when tracking user conversions and behaviors. Recently, Safari even started to block first-party [cookies set from third-party IPs](https://stape.io/blog/safari-itp). Chrome will begin phasing out of [third-party cookies in 2024](https://stape.io/blog/third-party-cookies). With the help of the server-side tracking, you can set first-party cookies instead of third-party or set first-party cookies from the first-party IP. Use of AdBlockers. Over the last few years the number of people who installed AdBlcokers has multiplied. With the help of server-side tracking, you can still accurately [track people with adblockers](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers). Blocking of Google Tag Manager, Google Analytics, and other tracking scripts. Safari and Brave are blocking web Google Tag Manager, GA and some other tracking scripts. When web GTM is blocked, all tracking that is supposed to trigger inside the web GTM is blocked as well. The good news is that [gtm script is not blocked when you use server-side GTM with a custom domain.](https://stape.io/news/safari-update-for-gtm-google-analytics-google-ads-blocked-in-incognito-mode)https://stape.io/news/safari-update-for-gtm-google-analytics-google-ads-blocked-in-incognito-mode One more important thing about cookies There are cases when first-party cookies may disappear from the server response. [Server-side tracking Shopify](https://stape.io/blog/server-side-tagging-for-shopify)'s most prominent example is its Checkout Extensibility. When used, it strips the cookie header from network requests, making it impossible to track the customer’s origin or referral source. This issue can be fixed by manually sending the cookie values to the payload, where they can later be transformed back into a format that vendor tags can read. Those who use Stape’s [Data Tag](https://stape.io/solutions/data-tag-client) can consider themselves lucky, as instead of all that manual work, they only need to tick “Send common cookies” in the settings and get everything into the payload automatically. Related: [How to Improve Google Ads Performance | 2025 Tutorial](https://stape.io/blog/improve-google-ads-performance) How to set up Google Ads conversion tracking for your Shopify store Send data to Google Analytics 4 with the server Google Tag Manager container There can be two scenarios: If you already have GA4 events configured in your web GTM container and you just want to switch them to work through the server side a. Open your server GTM container. In the 'Clients' section, check if you have a GA4 client there. If not, create new one: ![GA4 client](https://cdn.stape.io/i/666abbc6e4996045670623.gif) GA4 client Choose Google Analytics: GA4 (web) and click Save. ![GA4 client](https://cdn.stape.io/i/666abbf11f164406561938.png) GA4 client b. Create GA4 tag on server GTM container. Go to Tags and click New. ![Create GA4 tag on server GTM container](https://cdn.stape.io/i/666abc0ae46fa191587635.gif) Create GA4 tag on server GTM container Choose Google Analytics: GA4. ![Choose Google Analytics: GA4](https://cdn.stape.io/i/666abc243c815538087473.png) Choose Google Analytics: GA4 Standard tag settings: Measurement ID - Leave blank, the same measurement id that is in your web events will be used Event Name - leave blank, the same event name you use in web tags will be used. c. Add trigger. Click Triggering. ![Adding trigger to GA4 tag](https://cdn.stape.io/i/66d845bce2eec938974519.png) Adding trigger to GA4 tag Create triggers for the tag. Client name should equal GA4. Click + ![Client name should equal GA4. Click +](https://cdn.stape.io/i/666abc71038d4610229376.png) Client name should equal GA4. Click + d. Choose Custom type → click Some events → choose Client Name in built-in variables → set Equals GA4 (the name of your GA4 client) → click Save. ![Equals GA4 (the name of your GA4 client)](https://cdn.stape.io/i/666abc922b04b457762092.png) Equals GA4 (the name of your GA4 client) e. Add your server container URL to Google Tag settings. In the configuration settings, add the configuration parameter server_container_url and add your tagging server URL as a value. ![Server container URL](https://cdn.stape.io/i/66d846076162b703120241.png) Server container URL If you do not have GA4 configured a. Inside the Web container, create a new tag of the tag Type Google Tag. Add your [Google Tag ID](https://support.google.com/analytics/answer/9539598). In the section Configuration settings add the following parameters: Name: server_container_url Value: Enter the URL you've created Add trigger to GA4 tag. Normally it should trigger on all page views. ![Create a new tag of the tag type Google Tag](https://cdn.stape.io/i/666aba64b3f87874034843.png) Create a new tag of the tag type Google Tag Google tag itself will generate standard GA4 events like page_view, session_start, user_engagement, etc. b. Setting up additional eCommerce events. Each event you want to configure must be configured with a separate GA4 event tag, use its own trigger and have its own payload. Below is an example of configuring the tag for the add_to_cart event with standard parameters. You can repeat this for any other events you want to configure. You can also use any custom events if you want to track them in your GA4. c. Set up trigger. d. Set up variables for GA4 events payload. You can find the standard and mandatory payload eCommerce GA4 events in [Google's official documentation](https://developers.google.com/tag-platform/gtagjs/reference/events). A minimum of three parameters need to be sent with each eCommerce event: value currency items To add these parameters to an event, you must first create variables for them. To do this, go to 'Variables' section in your web container → create a new one → select 'Data Layer Variable' type → specify the path to the required value as per how they are in the data layer. for value path: ecommerce.value for currency: ecommerce.currency for items: ecommerce.items Сreate these three variables: ![Data Layer variable](https://cdn.stape.io/i/666abb2b81ed3408772996.png) e. Set up GA4 event tag. Go to the tags section in your web GTM container and create a new tag with the tag type Google Analytics: GA4 Event. In the tag, specify: Measurement ID: your GA4 measurement id Event name: add_to_cart (or other if you are setting up another event) On GA4 event tag ‘Event parameters’ section add three parameter: value, currency and items. Use the variables you created in the previous step as the value for them. Add to the tag the add_to_cart_stape trigger we created earlier. ![Google Analytics: GA4 Event](https://cdn.stape.io/i/666abb8c2dac1223213519.png) Google Analytics: GA4 Event Similarly, configure any other events you want to track in your GA4. Set up Conversion Linker tag + Google Ads Conversion Tracking tag In the Server container set up the Conversion Linker tag. This tag should trigger on all events claimed by the GA4 client (the same trigger that is used for GA4 server tag, on the screenshot above). In the Server GTM container click New Tag → click Tag configuration → Google Ads → Google Ads Conversion Tracking tag. Add Conversion ID and Conversion Label similarly to the web Adwords tag setup. Then you have an option to add product and user data. If you send user and product data from the web to the server, then you can enable these checkboxes and select event data as a data source. If product and user info are properly sent from the web using standard dimensions and are available in the event data - the tag will parse this information automatically and report to Google Ads. You also have an ability to override the data sent from the web if needed. My Adwords server conversion triggers on the purchase event. ![Google Ads Conversion Tracking tag](https://cdn.stape.io/i/666abfd8c85bd152355525.png) Google Ads Conversion Tracking tag At this stage, you can also set up [POAS Data Feed](https://stape.io/solutions/poas-data-feed) if you want Google Ads to use profit instead of only revenue. It maps margin data by product and adds profit-based values to your conversion setup Conclusion Setting up [Google Ads conversion tracking in your Shopify store](https://stape.io/blog/google-ads-conversion-tracking-for-shopify) is an indispensable step for anyone aiming to harness the full potential of online advertising. As the digital marketplace becomes increasingly competitive, such insights are invaluable in staying ahead of the curve and maximizing your ROI. Whether you're a seasoned advertiser or just beginning your journey, ensure that your Shopify store is equipped with Google Ads conversion tracking to truly capitalize on every advertising dollar spent. If you have any questions about the setup - don’t hesitate to [leave a ticket](https://stapehelp.zendesk.com/hc/en-us/requests/new). And if you’d like a setup from us - here’s [a free quote](https://stape.io/quote/setup)! --- # LinkedIn server-side tracking setup guide Source: https://stape.io/blog/linkedin-conversion-api-tag-for-server-google-tag-manager Set up LinkedIn server-side tracking with Google Tag Manager to ensure accurate data, avoid duplicates, capture offline actions, and optimize campaigns. Following other marketing platforms, LinkedIn also began to support server-side conversion tracking. We’ve developed our LinkedIn Conversions API tag for server GTM, which makes the setup much simpler and intuitive than the native one. With LinkedIn server-side tracking in place, you can track leads, purchases, or other key metrics more accurately. In this article, we will talk about Stape’s tag in detail, highlighting its benefits and showing how to set up the LinkedIn Conversions API with Google Tag Manager, which includes the following steps: Configuring server GTM container. Setting up data sending from the web to the server container. Configuring LinkedIn CAPI tag. Deduplication events. Sending events via LinkedIn Insight tag and server GTM. What is LinkedIn server-side tracking? LinkedIn server-side tracking is a method of measuring the performance of your LinkedIn advertising campaigns without relying solely on browser-based tracking. Instead of placing pixels or cookies directly in a visitor’s browser (client-side tracking), this method sends data to your own server first, and then forwards it to LinkedIn. To ensure the most accurate and resilient setup, best practice is to combine both client-side and server-side tracking. This dual approach maximizes data collection - especially in cases where browser restrictions or ad blockers interfere with client-side data. To avoid counting the same event twice, you should implement event deduplication by passing a unique event ID with both the client and server versions of the event. LinkedIn uses this ID to recognize and log only one conversion, maintaining clean and reliable performance data. With this setup, you gain deeper insights, improved attribution accuracy, and stronger optimization for your LinkedIn campaigns. Quick note: If you would like to go straight to the LinkedIn CAPI, watch the setup guide: How to set up LinkedIn Conversions API https://youtu.be/u3HhXsQ24Ec What is the LinkedIn Conversions API tag The LinkedIn Conversions API tag developed by Stape provides an efficient solution that helps track LinkedIn ad campaigns' performance accurately. With this tag, you can transmit conversion data directly from your server to LinkedIn’s server. LinkedIn server-side tracking allows for easier compliance with privacy regulations since all the data is processed on your server. Despite the events you need to track (whether tracking leads, purchases, or interactions with ads), the LinkedIn Conversions API tag provides reliable data transfer. It minimizes discrepancies from browser restrictions (such as Intelligent Tracking Prevention (ITP) or [ad blockers](https://stape.io/blog/bypass-adblock-detection). It also supports transmitting event data from GA4 or a data client to the LinkedIn Conversions API. Benefits of the LinkedIn Conversions API Achieve more accurate conversion attribution. LinkedIn Conversions API allows direct data transmission from your server to LinkedIn’s server. So, you can be sure that the data is less affected by cookie restrictions and ad blockers, and the conversions are accurately attributed. Enhance data reliability. Server-side tracking is a more controlled and secure way for data collection and transmission, ensuring more straightforward compliance with data regulations and higher data control. Optimize ad delivery. Accurate conversion tracking leads to better optimization of LinkedIn's algorithm. When LinkedIn receives conversion data, it can target the right audience more effectively. Decrease cost per action. High data accuracy allows businesses to target their audience and optimize their campaigns more effectively, which leads to a decrease in cost per action. Be GDPR compliant. By controlling what data is sent to LinkedIn, you can ensure user privacy, respect consent preferences, and stay aligned with EU data protection laws. Extend data capabilities. The Stape LinkedIn server-side tag allows you to send additional user data - such as email, first name, last name, job title, and company - which isn’t supported by the native client-side LinkedIn tag. LinkedIn CAPI also supports LinkedIn Click ID, Axciom ID, country, lead ID, and external ID. External IDs can be shared across ad accounts within the same Business Manager to improve match rates when applicable. Once the CAPI is live, you can send static or dynamic conversion values to optimize for higher overall return. Dynamic values help predict and optimize for the highest potential return, especially when tracking multiple events. If dynamic values aren’t available, sending multiple static events still helps LinkedIn optimize for the most valuable conversions. Before starting Configure a [server Google Tag Manager (GTM) container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) to enable server-side tracking for LinkedIn. Set up a [custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) for your server container to allow first-party cookies and improve data reliability. Establish data transfer from the web to the server GTM container using one of the following methods: [Set up server-side Google Analytics 4 (GA4)](https://stape.io/stape-gateway) [Stape’s Data Tag/Data Client](https://stape.io/solutions/data-tag-client) How to set up LinkedIn Conversions API Firstly, add the [LinkedIn Conversions API](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/linkedin-tag) from the server GTM Template Gallery. ![Add to workspace](https://cdn.stape.io/i/672ca6798c1a6637046957.png) The tag itself is very easy to use, we’ve added the ability to enter explicit variables that will be reported to LinkedIn in a proper format. Tag configuration consists of the event types - PageView and Conversion events. PageView method has been added to a tag to make your LinkedIn tracking resistant to various ad blockers. If you are using Stape’s Custom Loader with a [patched gtag](https://stape.io/solutions/custom-gtm-loader) and/or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client) to send data from web to server container - the PageView method fired on a page_view event will store LinkedIn click ID URL parameter into a li_fat_id cookie, even if the LinkedIn browser pixel has been blocked. Conversion method is intended to report conversion events to LinkedIn CAPI. To send an event via LinkedIn CAPI, you require an access token, a conversion rule ID, and one of the 4 first party parameters LinkedIn requires you to send (hashed email, LinkedIn click ID value, Acxiom ID, or Moat ID). As already mentioned the process for obtaining CAPI access token has been greatly simplified - all you need to do now is the following: In your Campaign Manager, click Data on the left menu → Signals manager → under the Sources category, click Google Tag Manager → then click Generate token, pass the authentication, and the provided key will be your way to send events to the Conversions API ![Generate a token in Linkedin](https://cdn.stape.io/i/67890a70788b8174700701.png) Don’t forget to add the trigger for an event. Below is an example of a configured LinkedIn Conversions API tag: ![Example of tag configuration](https://cdn.stape.io/i/672ca78a55f71135663790.png) Event deduplication When you use both the LinkedIn Insight tag and the Conversions API, the same action can be reported twice: once from the browser and once from the server. To keep your reports accurate, LinkedIn applies deduplication rules. These rules decide when multiple events should be treated as one conversion and when they should be counted separately. Conversion Scenario | Deduplicated? Same conversion type, same campaign | ✅ Yes — deduplicated (except Purchase/Add to Cart events) Same conversion type, different campaigns | ⚠️ Counted based on attribution model Different conversion types, same campaign | ❌ No deduplication Different conversions, different campaigns | ❌ No deduplication Repeat conversions (e.g., multiple Sign Ups) | ✅ Only first instance is counted (lookback window) Repeat Purchase or Add to Cart conversions | ❌ All counted individually LinkedIn web + CAPI event reporting is designed in a way commonly called “redundant event setup”. This means that a single conversion event can be sent through both the LinkedIn Insight Tag (web event) and the LinkedIn Conversions API tag (server event). To avoid double-counting, you must include a shared eventID across both methods. The web event has a higher priority and will be counted as a conversion, and if the same conversion with the same event ID is delivered via CAPI tag, such an event will be discarded. Please be sure to handle this process properly for accurate [LinkedIn Ads conversion tracking](https://stape.io/blog/linkedin-conversion-tracking). What is the LinkedIn Insight tag? The [LinkedIn Insight tag](https://business.linkedin.com/marketing-solutions/insight-tag) is a small JavaScript code snippet that you can add to your website to enhance your LinkedIn advertising capabilities. It enables conversion tracking, website retargeting, and access to audience insights by collecting data from LinkedIn members who visit your site. With the Insight tag, you can start collecting website visitor data for retargeting and audience insights, but for conversion tracking, you'll still need to set up separate tags for each event. This is especially important if you're using both client-side and server-side tracking, as you’ll need to pass an event_id to ensure proper deduplication. When installed, the Insight tag sets a first-party LinkedIn Ads ID and cookies in users’ browsers to monitor behavior and support attribution. For best performance, features like enhanced matching and automatic website actions tracking allow advertisers to deepen insight and improve campaign performance - while maintaining user privacy through data pseudonymization and strict retention policies. How to send events via LinkedIn Insight tag 1. Please make sure to use the latest version of the official [LinkedIn Insight tag](https://business.linkedin.com/marketing-solutions/insight-tag), which supports reporting of the event ID. 2. When you send a conversion through multiple methods, you need to create a conversion rule for each data source (browser and server). For the browser source - conversion rule ID will be available to you during the conversion creation process in the user interface. ![Conversion ID](https://cdn.stape.io/i/672ca7c075efe295916595.png) 3. To create a conversion that will be reported from the server GTM, please click Create conversion → Conversions API. On the Sources step, you may select Direct API integration. Once you are done, select the newly created conversion, and the Conversion Rule ID will be available to you in the URL right after conversions. ![LinkedIn Ads API conversion](https://cdn.stape.io/i/672ca840037be137180634.png) 4. That’s pretty much it. Make sure to add identical event_id sent from the web and any user data that is available for better event matching. li_fat_id cookie value will be automatically added to the payload if received in the incoming request cookie header. 5. To verify your setup, you may trigger your conversion event. The status for your conversions should change to “Active”. If your deduplication is properly set up, after a while, you’ll see a message confirming it if you click on a status for the CAPI conversion. ![Events detected](https://cdn.stape.io/i/672ca86b3e838870189047.png) Features you can use after setting up CAPI After you set up CAPI, you can use LinkedIn’s data to improve your campaigns in more advanced ways. For example, Qualified Leads Optimization helps LinkedIn show your ads to people who are more likely to become your ideal leads. Conversion Value Optimization lets you focus your budget on conversions that bring the most value, using either fixed amounts or dynamic values sent from your system. You can also build Predictive Audiences using CAPI data, so LinkedIn finds people who behave like your best prospects, and create Matched Audiences to retarget visitors or contacts who have already shown interest. For measurement, you can run Conversion Lift tests to check how many extra conversions your ads create and use Measurement Insights to see where people are in your sales funnel over the last 180 days. Some examples of what you can track include demo requests, trial sign-ups, lead qualification updates, content downloads, and pricing information requests. LinkedIn Offline Conversions tracking With LinkedIn CAPI, you are also able to report offline conversion events, which may significantly help in measuring the performance of your LinkedIn campaigns. See our related blog posts for more instructions on offline conversions tracking: [Offline conversions tracking explained](https://stape.io/blog/ways-of-offline-conversion-tracking) [What are webhooks, webhook servers, and how to use](https://stape.io/blog/webhook-server) [Debug incoming webhooks in Google Tag Manager server preview](https://stape.io/blog/debug-webhooks-google-tag-manager-server) LinkedIn server-side tracking: real users' problems solved A user [here](https://community.stape.io/t/linkedin-tracking-is-very-strange-stape-tag-still-usable/2130/10) struggled with LinkedIn server-side tracking because the platform now requires connecting a Google Tag Manager account or using their API, and events only register if they include a click ID or email. The user didn’t want to give full GTM access for security reasons, and their events weren’t being verified. The solution was to create first-party variables for LinkedIn Click ID and/or email, pass them with each event, and optionally use a dummy GTM container to enable server-side tracking without exposing sensitive access. Conclusion With the recent updates introduced by LinkedIn and Stape’s server GTM tag, setting up the LinkedIn Conversions API became a much easier process. Adding conversions API will strengthen your existing web pixel tracking, providing additional resistance to adblockers and latest ITP changes, especially in conjunction with other Stape power-ups like [Custom Loader](https://stape.io/solutions/custom-gtm-loader), [Cookie Keeper](https://stape.io/solutions/cookie-keeper) or [Own CDN](https://stape.io/solutions/own-cdn). --- # +251% conversions and 2.27x lower cost per result with Conversions API vs Pixel-only Source: https://stape.io/blog/case-study-comparing-facebook-pixel-and-facebook-capi Discover the difference in Facebook ads results when using the Facebook Conversions API compared to Pixel-only tracking. Stape is grateful to receive more and more case studies on how https://stape.io/blog/what-is-server-side-tracking[server-side tracking](https://stape.io/) has increased the accuracy, reliability, and depth of user engagement data. With the rising concerns over [client-side tracking](https://stape.io/blog/server-side-tagging-versus-client-side-tagging), primarily due to browser restrictions and an increased focus on user privacy, server-side tracking has emerged as a compelling alternative. Agency [New Path](https://newpathdigital.com/) has presented server-side tagging benefits to a Public, Doctoral Granting, R2 University and they received incredible results! ![How Facebook Conversion API is better than Facebook Pixel](https://cdn.stape.io/i/651eb7a33833d348137503.png) In the table above, you can see the difference between the 2022 Spring Campaign which utilized the Facebook Pixel only, and the 2023 Spring Campaign which integrated the [Facebook Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api), which was set up by Stape. Key Observations: 1. CPM: The 2023 Spring Campaign with Facebook Conversions API achieved a significantly lower CPM ($3.81) than the 2022 campaign with FB pixel tracking ($7.80). Despite a higher impression count, this reduced CPM-optimized budget use, resulting in better lead and registration outcomes. 2. Leads: With the Conversions API, the number of leads generated increased by 568% as compared to the previous year's Pixel campaign. 3. Registrations Completed: The Conversions API resulted in a remarkable 204.05% increase in completed registrations, showcasing its effectiveness in driving user engagement. 4. Amount Spent: While the 2023 Spring Campaign invested slightly more ($17,101.00) than the Pixel campaign ($11,063.13), the enhanced results underline its improved cost-efficiency. 5. Conversions (Leads + Registrations completed): The Conversions API-powered campaign achieved a wider reach of 388,883 and a substantial growth of 251% in overall results. Leads is a simple guide form submission, and registrations completed is a virtual event form submission. 6. Cost per Result: Notably, the Conversions API campaign achieved a lowered cost per result of $59.37, indicating its efficiency in delivering favorable outcomes. 7. Campaign Duration: The 2023 Spring Campaign, powered by the Conversions API, demonstrated remarkable results within its 154-day duration, showcasing its accelerated impact on key metrics. Conclusion The Meta Conversions API can significantly boost your Facebook ad campaign results. On the [Stape blog](https://stape.io/blog/category/facebook), there are many articles that guide you on how to set up and fix any issues with the Facebook Conversions API. If you find it hard to set up CAPI by yourself, just contact the [Stape agency](https://stape.io/care); they're there to help. Need help setting up server-side tracking? We've got you covered! Contact sales and we will send you a free quote! --- # 100% more conversions and 56.64% lower CPA in Google Ads 360 with Floodlight tags set up for server-side tracking | New Path Digital Source: https://stape.io/blog/case-study-migrating-from-web-to-server-side-tracking How the results of Google Ads 360 campaigns improved after migrating from web to server-side Floodlight tracking. [New Path Digital](https://newpathdigital.com/services/) is dedicated to facilitating the journey of businesses towards digital maturity. Through transparent and collaborative partnerships, New Path Digital delivers sustainable value to its clients. One of them - A Public, Doctoral Granting, R2 University - obtained incredible results in their Google Ads 360 campaigns, where Floodlight tags were expertly set up through Google Tag Manager's container by the [Stape](https://stape.io/care) team. In the table below, you can see a comprehensive comparison between the results of campaigns that utilized Web tracking vs. Server-side tracking. ![case study: results from migrating from Web to Server-Side Tracking](https://cdn.stape.io/i/651eb57cd5915782810220.png) Key Observations: 1. Improved Conversions: server-side tracking doubled the number of conversions compared to the previous campaign that utilized web tracking, representing a significant 100% rise. 2. Cost Efficiency: the CPA dropped to $37.29, which is 56.64% less than the $86 from the previous web tracking campaigns. 3. Total Reach: a positive impact on reaching a wider audience. 4. Unique Reach: the campaign with server-side tracking demonstrated an impressive 350% increase in unique reach when considering the total reach, impression reach, and click reach, compared to the web tracking campaign. Conclusion We hope that with this case study from New Path Digital you have a clearer vision on how you can take advantage of the shift to Server Google Tag Manager. And if you are still unsure, we have prepared for you more case studies and useful articles: [Ecooking, Obsidian Digital & Stape: Measuring 53 % more value in Google Ads with serverside tracking](https://stape.io/blog/stape-obsidian-digital-ecooking-case). [How Onyx Cookware measured 115% more value in Google Ads](https://stape.io/blog/how-onyx-cookware-measured-115-more-value-in-google-ads). [What is Server-Side Tagging?](https://stape.io/blog/what-is-server-side-tracking) [Benefits of stape hosting for Google Tag Manager server](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server). Need a custom server-side tagging infrastructure on your servers? We can manually install server-side tagging infrastructure on your servers and adapt it to your need. Custom setup on your servers . Yeah, we mean it. --- # Google Tag, configuration and event settings variables in web GTM Source: https://stape.io/blog/google-tag-configuration-and-event-settings-variables Learn about the new way of setting Google Tracking in web GTM using Google Tag, configuration settings, and event settings variables. If you're using Google Analytics 4 to understand your website's performance, there are some significant updates you should know about. In September 2023, [Google released](https://support.google.com/tagmanager/answer/13543899) two new settings variables that streamline how you configure Google Analytics 4 through Google Tag Manager. These new variables – Configuration Settings Variable and Event Settings Variable – offer improved flexibility and efficiency. They work seamlessly with a new Google Tag template set to replace the Google Analytics 4 configuration tag. This article will describe how to use Google Tag, Configuration Settings Variable and Event Settings Variable when configuring Google Analytics 4 using web Google Tag Manager. What’s new: Google tag Now, you can add Google Tag (gtag.js) to your website. Once in place, it acts as a channel for various Google products and services. Think of it as a multi-purpose tool in your digital toolkit. Instead of juggling multiple tags for different Google accounts, you can add this single tag across your entire website. This one tag can then be connected to various destinations, including but not limited to Google Analytics, Google Ads, and other Google services in the future. For now, Google Tag is only compatible with Google Analytics and Google Ads descriptions. The most obvious advantage is that you'll significantly reduce the number of tags you must manage. Instead of a different tag for each Google product you use, you'll only need to deal with one! This is especially helpful if you're not tech-savvy or if you simply want to streamline your website's code for better performance. Google Tag replaces the Google Analytics 4 configuration tag and is a critical data source for your Google Ads account. ![google tag in google analytics](https://cdn.stape.io/i/650bf1b1bddd8521055850.png) ![google tag in google ads](https://cdn.stape.io/i/650bf1c389dc3526509919.png) In the Google Tag Manager container, users have a second tab that shows all Google Tag that they have access to. By opening each Google Tag, it’s possible to: manage destination combine Google Tags edit settings ![google tag configuration](https://cdn.stape.io/i/650bf1eb6e6a3605141835.png) Google Tag: Configuration Settings Variable The Google Tag: Configuration Settings Variable is a sort of "recipe" for how your Google Tags should behave. Once you create this recipe, you can apply it to multiple tags simultaneously instead of inputting the settings one-by-one for each tag. It's a way to create a set of rules that any Google Tags you choose can follow. For instance, you run an e-commerce site with multiple product categories like electronics, clothing, and home goods. You want to segment your audience based on the category they're interested in. Creating a configuration variable that includes a product category parameter allows you to apply this setting across all your relevant Google tags efficiently. This eliminates the need to update each tag individually. However, this variable comes with a minor drawback. Previously, there was a user-friendly interface that made it easier to input these settings. You'll need to type in the field parameters you want to configure manually. This may be more challenging for a beginner, but once you get the hang of it, the flexibility it offers is a significant advantage. And we’ll show you how! How to set up Google Tag: Configuration Settings Variable 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) Or if you already have one, [go to your Account](https://tagmanager.google.com/). 2. Click on Variables on the left of the menu and choose New. ![new variables in google tag manager](https://cdn.stape.io/i/650bf2726c18a358539721.png) 3. Click on Variable Configuration and choose Google tag: Configuration settings. 4. Type what parameters you want to reuse, like in the screenshot below.You can take a look at [Valid parameters for configuration settings](https://support.google.com/tagmanager/answer/13438166) or type a custom parameter. ![parameters for the configuration settings variable](https://cdn.stape.io/i/650bf2bed659f670377740.png) 5. Don’t forget to name the Variable and click the Save button. Google Tag: Event Settings Variable The Google Tag: Event Settings Variable lets you easily manage and standardize "events" or specific actions that users take on your website, like clicking a button or filling out a form. You can create a list of these event parameters and settings in one place and then apply them to multiple tags. Let's say you operate a news portal and want to monitor the number of people who click on a "Read More" button for featured articles. Instead of manually inserting a "Read More Clicks" parameter into each separate tag, you can centralize this setup by creating a Google Tag: Event Settings variable containing that parameter. Moreover, even though this variable is designed to be used with various products, it offers a dedicated field for adding Google Analytics User Properties. This means you can customize how you track specific user behaviors, offering a more nuanced understanding of your audience. How to set up Google Tag: Event Settings Variable 1. [Go to your Account.](https://tagmanager.google.com/) 2. Click on Variables and choose New. 3. Then, on Variable Configuration and Google Tag: Event Settings. 4. Type what parameters you want to reuse, like in the screenshot below. You can take a look at [Valid parameters for event settings](https://support.google.com/tagmanager/answer/13438771#parameters) or type a custom parameter. ![parameters for event settings variable](https://cdn.stape.io/i/650bf3c37f6eb573494642.png) 5. To transmit event-specific parameters solely for certain GA4 events, include the event settings variable within a GA4 Event tag. Go to Tags and select GA4 Event tag. 6. Select a Google Tag: Event Settings variable from the dropdown list and edit the parameters as you’d like. ![google tag event settings variable in google analytics ga4 event](https://cdn.stape.io/i/650bf400d59e6124275340.png) 7. Don’t forget to click Save and publish the changes. Conclusion Google is working on a more straightforward way to set up tracking for their products using Google Tag and Google Tag settings variables. They aim to reduce the need for many tags that do the same thing for different platforms. Google tag settings variables help cut down on repeated tasks. While the Google Tag configuration variable might not be used often, the event setting variable will be handy. However, both the tag and its settings variables need some improvements. We can likely expect updates in the future. Would like to receive help with the setup? We've got you covered! Click Get help, fill-up the form, and we will send you a quote. --- # Conversions API Gateway: common mistakes and frequently asked questions Source: https://stape.io/blog/conversions-api-gateway-common-mistakes-frequently-asked-questions Discover how to make the most of your Meta Conversions API Gateway while sidestepping common errors and get answers to frequently asked questions. Setting up the Meta Conversions API Gateway might seem easy, but it can be tricky sometimes. Since it's a crucial source for gathering data on how people use your website and follow through the conversion funnel, getting CAPIG set up correctly and using it properly is very important. This is why we created this article to assist you. Here, we'll discuss common mistakes and answer questions people often have. This will help you solve problems faster and keep CAPIG working smoothly. Common errors and their solution: 1. No events in the CAPIG hub. The Meta Conversions API Gateway relies on data received by the Meta pixel. Whenever the Meta Pixel is triggered, it securely sends events to the Meta Pixel and the Conversions API. Meta pixel is tracking that event. The easiest way to check is by using the Meta Pixel Helper tool for the Chrome browser. Install it, then do actions on your site that should cause the event to happen. If the tool doesn't show the event, that means it's not being tracked. The first step to fix this is to set up Meta pixel tracking. Once that's done, CAPIG will start picking up the event automatically. Additional CAPI integration through a third-party vendor. It can be, for example, a Shopify plugin or WordPress app. Ensure no additional integration is configured to send data to Facebook CAPI. A domain that sends events is blocked inside the CAPIG hub. To troubleshoot this reason, log in to the CAPIG hub, open the website tab, and check the list of blocked websites. ![block website CAPI Gateway](https://cdn.stape.io/i/6504633797b56631447402.png) 2. 404 error after finishing the setup. This error can have multiple causes. To address it, kindly contact our [support team](https://stapehelp.zendesk.com/hc/en-us/requests/new) at Stape, and we'll assist you. 3. DNS setup could not be completed. First, log in to your DNS provider and ensure you’ve set up DNS records correctly. You should configure the CNAME record that points to your CAPIG hub URL. You can find the CAPIG hub URL inside [your stape.io account](https://stape.io/login). ![CAPIG hub URL](https://cdn.stape.io/i/65045755819f2861405372.png) The setup inside the DNS provider should look like the screenshot below. Ensure that the Proxy is set to off. This is an example from Cloudflare. ![Example of DNS record](https://cdn.stape.io/i/66ebfde39f412931686012.png) The last step is to use a tool [like this](https://toolbox.googleapps.com/apps/dig/) to verify DNS settings. Add your CAPIG hub subdomain, select CNAME, and check if a record matches the CAPIG hub URL. 4. Can´t connect Pixel to the CAPIG hub. When you click 'Add data source' in the CAPIG hub, the last thing to do is let the CAPIG hub access your Facebook access token. Ensure you've checked the box that says 'I agree to share my token with this site' and then click 'Confirm'. ![connect pixel to CAPIG hub](https://cdn.stape.io/i/65045f89cff50050786282.png) If you do not see the pop-up, ensure that pop-ups are not blocked in your browser. To enable pop-ups in Chrome, go to Settings -> Privacy and Security -> Site settings -> Pop-ups and redirects. Select "Sites can send pop-ups and use redirects" or add CAPIG URL to exceptions. Next, log into your Gateway Hub and try adding the pixel again. If enabling pop-ups doesn't work, try changing the browser or using incognito mode. 5. Error net:: ERR_SSL_VERSION_OR_CIPHER_MISMATCH in console after creating a subdomain ![error net](https://cdn.stape.io/i/658c15ccd682b484157455.png) If your Gateway Hub has not stopped receiving events after you created a subdomain for your Gateway Hub and you see the following error in the console. Please add a CAA record to your main domain - 0 issue “pki.goog”. Frequently asked questions 1. Are there any restrictions on the CAPIG subscription plans? We offer two subscription plans that have the following limits: Pay-as-you-go costs $10/month per pixel and includes 10 million events per month per pixel. Unlimited costs $100/month plan and includes 200 million events per month. 2. How does the "Pay-as-you-go" subscription work? With a pay-as-you-go subscription, you can add an unlimited number of pixels. A 7-day free trial is possible only for the first pixel. If you add more pixels, a prorated charge for additional pixels is applied at the end of the billing cycle. You can check the number of pixels and billing cycle inside stape admin. ![price CAPIG](https://cdn.stape.io/i/65045fb28b618653643756.png) 3. Difference between Meta Conversions API Gateway and Conversions API? The Conversion API Gateway is one way to connect the Conversion API. It has some benefits over other FB CAPI implementations, which are: easy setup. the ability to add multiple pixels and domains in one CAPIG hub. in most situations, the setup and ongoing costs for CAPIG are lower than for CAPI. 4. Do I have to configure event deduplication when using Meta CAPIG? You do not need to set up event deduplication for CAPIG. Event deduplication is set up automatically. Event_id deduplication key is automatically generated and propagated to help ensure deduplication between both channels (web and server). Please keep in mind that event deduplication does not work for test events, since there is no option to add the test event code to Meta CAPI Gateway for server-side testing. You will only see browser-side events when performing tests in Facebook Events Manager. 5. How to improve the event match quality for the Meta Conversions API Gateway? Enable Advanced matching inside the CAPIG hub interface. ![Advanced matching inside the CAPIG hub interface](https://cdn.stape.io/i/650982f98504e298163527.png) Activate Automatic Advanced Matching when linking your pixel to the CAPIG hub. To specify the user parameters you wish to share with Meta, select "Show customer information parameters" and enable the ones you'd like to share. ![CAPIG increase match quality score](https://cdn.stape.io/i/650460050454a434411707.png) 6. What CAPIG server locations do you have? The United States Europe South America Asia Pacific Japan 7. How can I structure CAPIG? Use one CAPIG hub account for all of your clients. In this case, you must connect all pixels to one CAPIG hub and use one custom domain. You can use an [agency account](https://help.stape.io/hc/en-us/articles/6092802128413-Agency-vs-standard-account) to create accounts for each client with its own CAPIG with their email. This way, you will have a custom domain for each website or pixel. We also offer an option of private multi-user Meta Conversions API Gateway hub, which has the following benefits: Ensure optimal data routing for each website, enable advanced matching, attribute more conversions, and improve ad relevance. Predictable price. Pay a flat fee of $500 monthly for up to 1 billion requests. Select from up to 25 server locations. Connect an unlimited number of pixels in the different Facebook Business Managers. Manage access for each account/website individually. Please contact our [support team](https://help.stape.io/hc/en-us/requests/new) for a private multi-user Meta Conversions API Gateway hub. 8. I want to use the same email for all the clients' accounts because I want to have one-centered control over all the client's accounts. Is it possible? You can use the same CAPI gateway instance for all your clients and connect all pixel IDs. All you have to do is click on Add data source. In this case, you can add and use only one subdomain to Gateway Hub. ![add data source CAPIG](https://cdn.stape.io/i/6504636f6da6b846266276.png) 9. How do we change the names of CAPIGs inside the CAPIG hub? Go to Accounts, click on three dots on the left, and choose Edit name. ![change name in capig](https://cdn.stape.io/i/658c19802e344476713335.png) 10. Can I capture a purchase value via Shopify, Woocommerce, Clickfunnels, etc.? Yes, if the event is configured through an FB pixel, you can capture any value associated with a purchase. 11. How can I connect new events to fire through the CAPIG? Meta Conversions API Gateway automatically identifies events set up with an FB pixel and transmits them via the server. Deduplication is also configured automatically. [This documentation](https://www.facebook.com/business/help/952192354843755?id=1205376682832142) explains how to set up and install Meta Pixel. 12. Can I control which domains send events to CAPIG? To see which domains send data to the CAPIG hub, go to the CAPIG hub, open the websites sections, and you should see the list of all domains that send data to CAPIG. Below, you can add websites that you want to block. ![block website CAPIG](https://cdn.stape.io/i/6504635369333938655350.png) 13. Can I control which events the CAPIG hub sends? Meta Conversions API Gateway monitors server-side events based on the data captured by the Meta pixel. Any event the Meta pixel detects will be automatically tracked via the Meta Conversions API Gateway. Through the gateway's hub, you can control which events get sent using an on-off toggle for each event. ![control events that CAPIG hub sends](https://cdn.stape.io/i/650460ff5a8bb485543407.png) To track new events, standard or custom, through CAPIG, you must set up a pixel to track this event. Conclusion: Getting CAPIG set up the right way is really important. It helps you understand how people use your site, make your sales process better, and improve your Facebook ads. We hope this article has shed light on the common pitfalls and FAQs surrounding CAPIG. With this knowledge, you are better equipped to navigate the setup process, troubleshoot issues efficiently, and ensure that your CAPIG operates seamlessly. If you have further questions, please check the [Stape knowledgebase](https://help.stape.io/hc/en-us/sections/9065454784925-Meta-s-Conversions-API-Gateway) or [contact our support team](https://help.stape.io/hc/en-us/requests/new). Start 7-day free trial The easy way to implement Meta Conversions API Gateway with no manual tagging. --- # Leadfeeder IP-Enrich Variable for server Google Tag Manager Source: https://stape.io/blog/leadfeeder-ip-enrich-variable-for-server-google-tag-manager We created a Leadfeeder IP-Enrich Variable for server Google Tag Manager container which allows you to uncover companies visited your site, how they found you & more. Today in our blog post we’ll speak about Leadfeeder - a platform that allows companies to see which businesses visit their website, even if they don't fill out a form or make direct contact. By tapping into this reservoir of passive interest, you can make sales and marketing efforts more efficient. With the release of Leadfeeder IP-Enrich API you can derive insights or additional data based on IP addresses, which means obtaining company information or other pertinent details based on the IP addresses of website visitors. We’ve created a [Leadfeeder IP-Enrich Variable for server Google Tag Manager](https://github.com/stape-io/leadfeeder-variable) so that you could easily integrate it in your sGTM container. In this article we will provide a step-by-step guide on setting up the variable, describe its work and discuss its benefits. How it works By sending the IP, with Leadfeeder IP-Enrich Variable you can receive the user’s: Company name (Company profile information); Industry type; Number of employees; Latest available company revenue information; Year when the revenue was reported; Company business IDs. Can have multiple entries If the company is registered in more countries; Company's social media URLs, etc. Leadfeeder API expects an API token to be included in all requests sent to the server. You can generate your unique authentication token at [Leadfeeder API settings](https://app.leadfeeder.com/l/settings/personal/api-tokens?_gl=1*u05msz*_ga*MTE1NjUxOTA2MC4xNjkzMjEwODU4*_ga_BKMK057R5F*MTY5MzIxMjk3Mi4yLjAuMTY5MzIxMjk3Mi42MC4wLjA.). Parameter Name: X-API-KEY, in: header. GET /companies - returns company information based on the IP parameter. How to set up Leadfeeder IP-Enrich Variable 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Download [Leadfeeder IP-Enrich variable from GitHub](https://github.com/stape-io/leadfeeder-variable) -> Open templates sections in your server Google Tag Manager container -> Scroll down to Variable Templates -> Click New. 3. Click three dots in the top right corner -> Click Import -> Select the Leadfeeder IP-Enrich Variable you’ve recently downloaded from GitHub -> Click save. ![leadfeeder variable by stape](https://cdn.stape.io/i/64f1a18b47754750350997.png) 4. Write down your [ApiKeyAuth](https://docs.leadfeeder.com/connectors/ip-enrich-api/#leadfeeder-ip-enrich-api) in the API Key section and an IP Address. If IP is not set then IP address of the request originator will be used. ![leadfeeder variable by stape configuration](https://cdn.stape.io/i/64f1a1a20a0f8139964841.png) Store response in cache - store the response in Template Storage. If all parameters of the request are the same response will be taken from the cache if it exists. Extract key from data - for example: company.domain. Benefits of Leadfeeder IP-Enrich Variable By integrating IP enrichment, you can better score the leads, understanding which visitors have a higher likelihood of conversion based on their company's details. Create content or user experience based on the details derived from IP addresses. Use the enriched data to better tailor outreach strategies, focusing on leads that match your ideal customer profile. Conclusion Leadfeeder, as a platform, offers significant potential for businesses looking to capitalize on their website traffic. The addition of IP enrichment capabilities would further bolster its offering, allowing for even deeper insights and better decision-making for sales and marketing teams. For specifics on the IP-Enrich API v1, we'd recommend checking Leadfeeder's official documentation or getting in touch with them directly for the most up-to-date and detailed information. And if you need help from our side - don’t hesitate [to contact us by leaving a ticket](https://stapehelp.zendesk.com/hc/en-us/requests/new). Do you want a setup from us? Happy to hear that! Click Get help, fill-up the form, and we will send you a quote. --- # Supabase Writer tag for server Google Tag Manager Source: https://stape.io/blog/supabase-writer-tag-for-server-google-tag-manager Use the Supabase Writer tag to write data from sGTM to Supabase. Learn how to configure this tag for Insert or Upsert ops and enhance your app's functionality. Supabase is an open-source alternative to Firebase. It's a backend-as-a-service platform that allows developers to create, scale, and manage their applications more efficiently. It offers a rich array of features including real-time databases, authentication, storage, serverless functions, and more. One major advantage of Supabase is its ability to enrich server-side data, making it a popular choice among developers and businesses alike. It's this capability that allows for the use of the Supabase Writer Tag, a unique tool that opens up new possibilities for data management within the Server Google Tag Manager. This article will guide you through setting up a [Supabase Writer Tag](https://github.com/stape-io/supabase-writer-tag) for the Server Google Tag Manager (GTM), an essential process for businesses and developers seeking to integrate their websites with Supabase. Supabase Writer tag setup 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. You can do it by [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking)or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Download [Supabase Writer tag](https://github.com/stape-io/supabase-writer-tag) from GitHub -> Open templates sections in the server Google Tag Manager container -> Click New. 4. Click three dots in the top right corner -> Click Import -> Select the Firestore Writer tag template you’ve recently downloaded from GitHub -> Click save. ![supabase writer tag](https://cdn.stape.io/i/64db68cd552e5577226024.png) 5. Create a new tag and select Supabase Writer Tag. ![supabase writer tag](https://cdn.stape.io/i/64db68e2ba382366717269.png) 6. Choose a Mode: Insert or Upsert. Project URL - A RESTful endpoint for querying and managing your database. Project API key - Use service_role API key. This key can bypass Row Level Security or create custom for your needs. Table Name - the name of the table you want to write data to. 7. Once done, click the save button. Conclusion By following the steps of this guide, you can successfully set up a Supabase Writer Tag for your server Google Tag Manager container. It's a fantastic way to harness the power of Supabase, maximizing the data capabilities of your server-side operations, and thus boosting the overall performance and functionality of your website or app. But if you’re confused or have some questions about server GTM setup - don’t hesitate to contact us at [support@stape.io](mailto:support@stape.io). We will help you to get your tracking done correctly! Would like to receive help with the setup? We will be more than happy to help you! Click Get assistance, fill-up the form, and we will send you a quote. --- # Brevo Tag for server Google Tag Manager Source: https://stape.io/blog/brevo-tag-for-server-google-tag-manager Learn how to track page view, events, link clicks, and identify the user with the Brevo tag for the server Google Tag Manager container. Brevo, formerly known as Sendinblue, is a comprehensive suite of SaaS communication tools including email marketing, SMS marketing, transactional emails, marketing automation, CRM functionality, and more. Originating as a digital agency, the brand was rebranded to Brevo to represent its growth and expansion into a full-fledged marketing and customer relations platform. We created a [Brevo tag](https://github.com/stape-io/brevo-tag) for the server Google Tag Manager container which allows tracking page view, events, link clicking and identifying the user. It offers a wide range of abilities for creating, deploying, and managing marketing campaigns across multiple channels, making it a powerful ally for businesses of all sizes. With Brevo tag, you can leverage the data to better understand customer behavior and to optimize marketing efforts for increased conversions. In this blog post you’ll find a step-by-step guide on how to implement Brevo tag. Brevo tag for server Google Tag Manager With Brevo tag it is possible to: Track page view - every time a user navigates to a new page or reloads the current page, a "page view" is tracked. This data can be essential for understanding website traffic, user behavior, and site engagement. Track event - track user interactions with content. Examples include interactions such as form submissions, button clicks, or video playbacks. Track link click - record when users click on hyperlinks present on a web page. Identify the user - allow the system to recognize and differentiate individual users who interact with the website. It can be based on a unique identifier, such as a user ID or a cookie. Client Key - You can find the client_key in the Javascript code. Javascript code is located in the Automation menu in your Brevo account under Javascript (JS) Tracker. Email - email to identify the user. Page - page name (example Checkout page). Set up Brevo server GTM tag 1. First of all, you need to create and set up a Google Tag Manager server container. [Follow this guide on setting up the GTM server container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. You need to pass information from the Web Google Tag Manager container to the Server container. I recommend using our [Data Tag](https://github.com/gtm-server/data-tag) and [Data Client](https://github.com/gtm-server/data-client) for that. The tag and client were designed to send information from the web container to the server, including variables, data layer, events, etc. Data Tag sends information from the web container, and Data Client retrieves this data inside the server container events data. You can check out our article on [how to send data from the web Google Tag Manager to the server](https://stape.io/solutions/data-tag-client) if you need a detailed description. 3. Import Brevo tag to the Google Tag Manager Server container: you can [download it from GitHub](https://github.com/stape-io/brevo-tag) or add it in [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/brevo-tag). Click Templates -> Under Tag Templates click New -> Click on the three dots on the top right corner -> Import. When done, click Save. ![import brevo tag for server google tag manager](https://cdn.stape.io/i/66cf180e5b6d0186879906.png) 4. Go to the tags section inside the server container -> Click New -> Select Brevo tag that you’ve recently imported -> Add tag name. In Type choose between tracking page view, tracking event, tracking link click or identifying the user. ![brevo tag for server google tag manager](https://cdn.stape.io/i/64d36c093be2d163481119.png) It is possible to store the email in cookies if it is provided and use it as a fallback if it is not provided for the current event: click on the checkbox to activate. 5. Once done, publish the sGTM container. Conclusion I hope this guide helped you integrate Brevo using server Google Tag Manager container. Setting up Brevo through sGTM is nice because it lets you make changes fast without waiting for a developer and a long release time. At the same time, the Brevo sGTM tag allows having full functionality, including track events, track page view, track link clicks, and identify a user. If you have any questions or need help, ask, we are here to help! Would like to receive help with the setup? We've got you covered! Click Get assistance, fill-up the form, and we will send you a quote. --- # Reddit Conversion API Tag for server Google Tag Manager Source: https://stape.io/blog/reddit-conversion-api-tag-for-server-google-tag-manager Reddit CAPI Tag for server GTM is a tool to track Reddit campaigns and optimize strategies with server-to-server integration for better performance insights. Reddit has emerged as a prominent platform for driving valuable conversions. With the Reddit Conversion API Tag, you can effectively track and measure the performance of your marketing campaigns using server-to-server integration. In this article, we will guide you through the process of setting up the [Reddit Conversion API Tag](https://stape.io/blog/reddit-conversion-api-tag-for-server-google-tag-manager) for a server Google Tag Manager (GTM). This will help you gain valuable insights into your Reddit marketing efforts and optimize your strategies accordingly. How to set up Reddit CAPI tag 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to sGTM. You can [set up server-side GA4](https://stape.io/blog/set-up-ga4-server-side-tracking), [Webhooks](https://stape.io/blog/debug-webhooks-google-tag-manager-server), or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Download the [Reddit Conversion API tag](https://github.com/stape-io/reddit-tag) from GitHub or add it from [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/reddit-tag). Open the sGTM template section → click three dots in the top right corner → Import → upload the tag you recently downloaded from GitHub → Save. ![Upload Reddit tag](https://cdn.stape.io/i/66979765400ba600610747.png) 4. Go to Overview → New Tag → Tag Configuration → Reddit Conversion API. ![Reddit tag configuration](https://cdn.stape.io/i/669797b25f9e7328861233.png) Below you see three options for event name setup: Standard - find the list of standard event names and pick the ones that fit your needs. Inherit from a client - the tag will autonomously interpret event data and assign corresponding information. Custom - you can personalize your tag by adding variables. However, most fields are standard for all three methods: 1. Account ID - ID of the Reddit Ads account to which the conversion event belongs. You can found ID on the home page of the Reddit Account → in the left corner, click on the drop-down next to an account name → copy ID. 2. Conversion Access Token - a secure key that lets you send conversion event data. To generate an access token, make sure you have a Reddit Ads account or join your team’s account with administrator credentials. Go to Reddit Events Manager → Conversions API → Generate Access Token → add a name for a token → Generate to create a token → copy to clipboard. ![Reddit token](https://cdn.stape.io/i/6697997c31086066625818.png) Reddit token And below there are two checkboxes that are optional: 3. Test Mode - use it while testing the API integration. It will not send any data to the account. 4. Use optimistic scenario - the tag will trigger gtmOnSuccess() immediately without waiting for an API response. While this feature improves sGTM's response time, it also means that even if the tag fails to fire correctly, it will still report a success status. These are the main fields that need to be filled out, and the tabs for more settings are below. With the Reddit CAPI tag, you can edit and send to your account the fields Common Event Data Override, Server Event Data Override, and User Data. ![Data override settings](https://cdn.stape.io/i/66979b5d087b4490252697.png) In these tabs, you can select what parameters you want to exclude or override. With Server Event Override, you can pick the following parameters: Conversion ID Currency ID Item count Products Value Value Decimal With User Data, you can pick the following parameters: IP address Email External ID - identifier used to track and link data from different sources or systems to a specific user or entity Idfa (Access identifier for advertisers) - unique identifier assigned to Apple devices used for advertising Aaid (Android Advertising ID) - unique identifier provided by Google for advertising on Android devices Opt out User Agent - a string that the browser sends to the server to provide details about the users (e.g. browser type, version, operating system, device type, etc.) Screen Dimensions UUID (Universally Unique Identifier) - unique identifier of users or sessions across different devices and platforms And in the very end, you can add logs settings (specify whether you want the tag to always log to the console, only log during debug mode, or not log at all) and advanced settings (configure additional tag metadata for the event when the tag fires). ![Logs and advanced settings](https://cdn.stape.io/i/66979ad0828e4375457503.png) 5. After setting the tag, add the trigger and test whether the tag is fired via GTM Preview and Debug mode. If you encounter problems with [debugging server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration), check out our guide on how to fix them. Conclusion The Reddit tag is designed to enhance advertising effectiveness, and build more robust data-driven strategies. It's essential to ensure you set up and maintain the integration correctly to get the most from its potential. We hope that this step-by-step guide on how to set up the Reddit CAPI tag helped you to implement the tag without any problems. Remember that the digital marketing landscape is dynamic and evolving constantly, so make sure to keep up with the latest trends and advancements for the most effective strategies. You are welcome in our blog! Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Type Сonvertor variable for Google Tag Manager server container Source: https://stape.io/blog/type-convertor-variable-for-google-tag-manager-server-container Need to convert data types in server GTM? The Type Convertor Variable allows you to change strings, numbers, and more for better data processing and analysis. [The Type Convertor Variable](https://github.com/stape-io/type-convertor-variable) for Google Tag Manager (GTM) Server Container is designed to streamline the process of type conversion within the GTM environment. This utility is particularly useful when you have data in one type but need it in another type, such as converting a string into an integer. For instance, there could be situations where you have a user event tagged with a string, but for further data processing, analysis, or integration with another system, you need that data in an integer format. This is where the [Type Convertor Variable](https://github.com/stape-io/type-convertor-variable) steps in, making this transition smooth and hassle-free. The variable provides support for various type conversions including: Integer Number String The Type Convertor Variable ensures that the data is transformed into the desired format, paving the way for more accurate and effective data handling in the GTM server-side tagging environment. How it works: When setting up your GTM Server Container, you will define your variables as you usually would. However, with the [Type Convertor Variable](https://github.com/stape-io/type-convertor-variable) installed, you now have the ability to choose the 'Type Convertor Variable' as the variable type and define the input type and output type of your data. ![type convertor variable](https://cdn.stape.io/i/64c394b63e3b9336160677.png) 1. [Download Type Convertor Variable from GitHub](https://github.com/stape-io/type-convertor-variable) or [add it from Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/type-convertor-variable). Import the variable to server Google Tag Manager by clicking Templates -> New Variable Template -> Click three dots in the top right corner -> Click import -> Add template that you’ve recently downloaded -> Click Save. 2. Specify the output type: choose the type you want to convert your data into. 3. Set value you want to convert to specified type. For example you can convert 22.22 to integer and get 22. Once these settings are configured, the variable will automatically convert any input value to the specified output type whenever the variable is referenced within the GTM Server Container. Conclusion: The beauty of the Type Convertor Variable is its simplicity. It provides a straightforward solution to a common data problem, seamlessly transforming data types and ensuring that your analytics and reporting tools get the exact type of data they need. Need help setting up server GTM? We've got you covered! Click Get help, fill-up the form, and we will send you a quote. --- # Matomo server-side tracking guide Source: https://stape.io/blog/matomo-server-side-tracking Matomo server-side tracking tag for Google Tag Manager enhances privacy-focused analytics. Learn how to set it up with Stape. Matomo is an open-source web analytics platform for tracking and analyzing website traffic, user behavior, and conversions. It works much like Google Analytics, but with a stronger emphasis on data privacy, ownership, and compliance. Matomo server-side tracking is a method of collecting website analytics by sending data directly from your server to Matomo, instead of relying solely on browser-based (client-side) tracking. This approach enhances data accuracy, improves tracking reliability, even when users block cookies or JavaScript, and offers greater control over what data is collected and stored. It works by capturing user interaction data - such as pageviews, events, and conversions - on the backend (via your server or a tag manager like Google Tag Manager server container) and then sending it to Matomo’s tracking endpoint. This minimizes data loss caused by ad blockers and aligns better with privacy regulations, making it an ideal solution for businesses that prioritize secure and compliant analytics. How Matomo server-side tag works Using Matomo’s Tracking HTTP API, Stape’s Matomo tag sends HTTP requests to your Tracking URL with the data you've specified in the tag. Tag automatically parses event data in the server Google Tag Manager container and tries to map it to standard events or e-commerce tracking. If any event or other parameters are manually specified in the tag settings, the tag will prioritize these parameters. Event set-up methods: Inherit from client. The tag will automatically parse event data and map available data. Custom. With the help of this method, you can track pageviews and other custom events by adding event category, event action, and event name. Types of actions that server-side Matomo tag supports: pageview event tracking e-commerce tracking ![Matomo tag for server-side GTM](https://cdn.stape.io/i/64da15a6d7bf7393713840.png) Tracking URL - Tracking HTTP API endpoint, for example, [https://your-matomo-domain.example/matomo.php](https://your-matomo-domain.example/matomo.php) Matomo site ID - The ID of the website you want to set up tracking for. To find the tracking ID click on the gear button in the top right corner, click Websites, then manage and you will find the site ID in Manage Measurables table. Auth token - AuthToken is used to set the correct IP Address. Available In Matomo under Settings > Personal > Security > Auth Token. Optional (if it isn't set, the IP & Region displayed in Matomo will be incorrect). Enable E-commerce Tracking - tag will try to map ecommerce data. Use Optimistic Scenario - The tag will call gtmOnSuccess() without waiting for a response from the API. Event Parameters - here, you can specify which parameters you want to override. Request Headers - add the request headers name and value you want to add to the Matomo requests. Logs Settings - Specify whether the tag should write to the logs to stape. Benefits of server-side tracking for Matomo Here’s a list of the benefits of server-side tracking for Matomo: ✅ Improved data accuracy – reduces data loss caused by ad blockers, ITP, and JavaScript issues. ✅ Better privacy compliance – gives you full control over what data is collected and sent, making it easier to meet GDPR and other legal requirements. ✅ Full data ownership – ensures all analytics data remains on your server with no third-party involvement. ✅ Enhanced tracking reliability – server-side events are less likely to be blocked or missed, ensuring more consistent reporting. ✅ Faster website performance – reduces the amount of client-side scripts running on your site, improving page load times. ✅ Custom integration options – easier to tailor tracking to your exact business logic and infrastructure. ✅ Scalable and secure – suitable for high-traffic websites and sensitive industries where data control is critical. Ways of setting up tracking for Matomo While competitors often describe two different methods for Matomo server-side tracking, Stape experts recommend focusing on one superior approach: using server-side Google Tag Manager. This method ensures the best combination of accuracy, flexibility, and proper support for Consent Mode V2 - especially when working with GA4, Google Ads, or Floodlight tags. ![GA4 collection](https://cdn.stape.io/i/68401987ac3b8007913721.png) An alternative method, which involves sending data directly to Matomo without using Google tools, may suit simpler setups or those avoiding Google entirely. However, it lacks the robustness, integration capabilities, and consent management support that make the GTM-based solution the top choice for advanced and reliable tracking. ![Matomo collection](https://cdn.stape.io/i/684019af5e0c4292395580.png) How to set up Matomo server-side tracking 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. You can [download it from GitHub](https://github.com/stape-io/matomo-advanced-tag) or [add it from the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/matomo-advanced-tag) and add it to your server GTM container by opening the template tab, clicking new, clicking three dots in the top right corner, and clicking import. ![Matomo tag](https://cdn.stape.io/i/66cefbcba2136064186565.png) 3. Create a Matomo tag and add the required fields: Tracking URL, Matomo site ID, and Auth token. 4. Add any parameter that you want to override. In my example, I want the Matomo tag automatically parse event data based on Data Client requests. ![Matomo s2s tag](https://cdn.stape.io/i/64da19dd80a48162618113.png) 5. If you want to track e-commerce data using the Matomo tag, you will need to either turn on a checkbox "Enable e-commerce tracking" (in this case tag will try to parse event data and map it to Matomo e-commerce objects. Ensure that you have proper e-commerce data in the sGTM). Or you can manually set up e-commerce tracking by selecting the custom event setup method. Ensure to add required e-commerce parameters, which are [&idgoal=0, transaction ID, items, revenue](https://developer.matomo.org/api-reference/tracking-api#optional-ecommerce-info) (idgoal, ec_id, ec_items, revenue). Pay attention to items parameter that should be in a format of a JSON-encoded array of items. ![Matomo server-side e-commerce tracking](https://cdn.stape.io/i/64da1a20c0bd9314723557.png) 6. Add triggers to your tags and open debug mode in sGTM and Visits log (Visitors -> Visits Logs) in Matomo to verify the setup. You should see the tag triggered correctly in sGTM, and in the Visitors log, there should be records of any event or e-commerce order reported to server-side Matomo. ![Matomo tag for server google tag manager ](https://cdn.stape.io/i/64b8e43d00be6680284387.png) ![Matomo tag for server GTM](https://cdn.stape.io/i/64b8e44795df4652708186.png) For now, there are two options to send performance settings in the request: 1. Make it available directly in eventData; the tag will automatically pass it. 2. You can override parameters by filling in the Event Parameters section of a tag. Matomo server-side tracking: real Stape users’ problems solved A user tested the advanced server-side Matomo template in Google Tag Manager and saw the tag fire in preview but fail with a 302 status code ([full thread here](https://community.stape.io/t/matomo-server-side/844)). The cause wasn’t the GTM setup itself - it was a permissions issue in Matomo. The auth_token used belonged to a user with view-only access, which blocked server-side tracking requests. Once the user was given writepermissions, the 302 error disappeared and Matomo server-side tracking started working correctly. Conclusion In conclusion, integrating a Matomo Advanced tag into your server Google Tag Manager container facilitates enhanced analytics capabilities while preserving user privacy. This detailed walkthrough has demonstrated the ease of setup and the expansive features offered by the tag. Implementing this setup allows for a seamless and efficient data collection process, eliminating the need for third-party data sharing and thus ensuring superior privacy compliance. If you have any questions, don’t hesitate to contact us! --- # What are Transformations in server Google Tag Manager Source: https://stape.io/blog/what-are-transformations-in-server-google-tag-manager Learn about server GTM Transformations and how they control data flow between clients and tags. This guide shows how to modify, add, or remove event parameters. One of the biggest releases in 2023 in server Google Tag Manager is Transformations. It adds a whole new object to the current structure of sGTM. Transformations act with clients and tags and add a new ability to override or add event data after the client processes incoming HTTP requests and before a tag can access the event data. In this blog post, I want to focus on what Transformations are, how to set them up, and what are the most common use cases. What are transformations A transformation is an object in the server Google Tag Manager that acts as an intermediary between the client and the tag. Data is delivered to the server Google Tag Manager container as an incoming HTTP request. Once a client claims a request, it restructures a request into event data that tags, triggers, or variables can use in sGTM. Transformations allow adding, excluding, and modifying event parameters after the client parses an incoming HTTP request before the tag can access it. Each transformation consists of the following: Configuration. This is where you define what needs to be done with data (allow parameters, augment event, exclude parameters) Matching condition. Defines in which cases transformation will work. This is very similar to triggers in tag configuration. Affected tags. Here you need to select which transformation will apply from the list of existing tags. ![transformations in server google tag manager](https://cdn.stape.io/i/64b6647319b70590546430.png) Types of Transformations There are three types of rules that transformations allow for creating. After applying the transformation rule, it modifies event data for the selected tags and in the specified conditions. Event data is not modified for the default event data. ![transformation types in server google tag manager](https://cdn.stape.io/i/64b664b3cf89c554853582.png) 1. Allow parameters The Allow parameter transformation allows defining parameters that only be accessible by tag. Parameters that are not added to the allowed parameter transformation will be discarded. Since this transformation highly affects what event data is accessible to tags, ensure you’ve added all required parameters. Otherwise, tags can not fire due to missing event data. 2. Augment event Allows adding or modifying event data. When using this transformation, you can override or add any event data before the tag can access it. 3. Exclude parameters The exclude parameter transformation allows removing any parameter before the tag can access it. Like the allow parameter transformation, check the required parameters for tags first because when the required parameter is missing, the tag won’t be able to trigger. How to set up Transformations 1. Go to the transformations tab and click New. ![transformation tabs](https://cdn.stape.io/i/64b6657d3b245215633020.png) 2. Select from the list of specified transformation types. ![transformation type](https://cdn.stape.io/i/64b665ca72d30005145720.png) 3. With Allow or Exclude transformation, you only need to specify the parameter that needs to be allowed or excluded. ![transformation configuration](https://cdn.stape.io/i/64b66604737cd673687024.png) If you select to augment an event, you must add the parameter you want to modify and the value to which it should be modified. How to Debug Transformations The process of debugging transformation is exceptionally straightforward. As usual, you must open preview and debug mode and trigger the tag with transformation. 1. Open the tags tab in the sGTM debugger, click on the tag that includes transformation, and you should see the name of the transformation in the Transformations section. ![debug transformations](https://cdn.stape.io/i/64b66643deb0a339122791.png) 2. Scroll down to the section Modified Event Data. Here you need to enable the checkbox, Show Original. This way, you can see how Transformation affected data that the tag can access. ![debug transformations](https://cdn.stape.io/i/64b66675a6120909719688.png) 3. In my Transformation, I’ve excluded user_agent and ip_override parameters. To verify if data was excluded correctly, I need to verify that in the Final Value, these parameters were excluded. ![debug transformations](https://cdn.stape.io/i/64b6668884f76823907334.png) Transformations use cases 1. Enrich data. With Augment transformation, you can enrich the data of any tag. It can be advantageous to add any data from your database, for example, additional product or user data. 2. Remove PII or any sensitive data. To comply with data protection requirements in some countries, it is required to remove any sensitive PII before sending it to any analytics or tracking tool. With the help of Allow or Exclude parameter transformation, you can strictly control the data sent to each vendor. 3. Write precise data to a database. Using allow data transformation, you can write clear data to Bigquery, Firestore, or any database you use to collect data. Conclusion A transformation is an easy-to-use tool that allows strictly control of what data each tag can access. It provides possibilities to two opposite options: from one side, staying compliant by limiting information tags can access. On the other side, it helps to enrich data. It really depends on the type of project and where you want to implement it. We hope this article was useful and has inspired you to explore the exciting possibilities Transformations offers. Need a little help? We've got you covered! Click Get assistance, fill-up the form, and we will send you a quote. --- # Significant fines imposed by Swedish data protection agency for inadequate measures in Google Analytics use Source: https://stape.io/blog/inadequate-measures-in-google-analytics-use Significant Fines Imposed by Swedish Data Protection Agency for Inadequate Measures in Google Analytics Use. In a ground-breaking action, Sweden's Data Protection Authority, known as Integritetsskyddsmyndigheten (IMY), instituted fines against an unprecedented four companies for violating GDPR laws via illicit data transfers from the EU to the US. Two of the firms received high penalties up to €1 million and the other two were handed stern warnings and given an ultimatum to discontinue their use of the contentious tracking tool. These fines signal a notable shift in the landscape of data protection enforcement. Up until now, several data protection authorities in countries like Austria, France, Italy, and Denmark had ruled that the use of Google Analytics contravenes GDPR. However, this is the first instance where concrete monetary penalties have been imposed, underscoring the gravity of the infraction. The stringent enforcement by the Swedish Data Protection Authority represents a significant milestone in the journey towards robust data protection. It unequivocally communicates to firms within the EU's jurisdiction that any disregard for data protection laws is unacceptable and will be met with substantial penalties. Stape offers a solution You can use [Stape Europe](https://stape.io/eu-hosting) to set up an EU proxy server for server GTM that will help make the use of Google Analytics GDPR compliant. European Proxy Server for Google Analytics https://www.youtube.com/watch?v=9Ilggs-4TTo&ab_channel=Stape This proxy-server aims to break the interaction of US intelligence tracking tools with user browsers. One of the ways, and maybe the easiest, to implement such a proxy-server is using server Google Tag Manager. Proxy servers have to meet a set of criteria. The two most important are: A company that owns a proxy-server must be registered in the EU The proxy server must be physically located in the EU ![European Proxy Server for Google Analytics](https://cdn.stape.io/i/64a3ee97dcbc0845843201.png) [Stape Europe](https://stape.io/eu-hosting) is a European company (registered in Estonia) that uses a 100% EU cloud servers provider [Scaleway](https://www.scaleway.com/en/) to host server GTM containers. We cover all questions related to the EU-owned proxy server. When setting up an sGTM container using Stape Europe, you do not transfer any data to the US company since Stape Europe itself is an EU-registered company, and we use servers that are physically located in Europe. To stay ahead of further regulatory changes, read about [Digital Omnibus](https://stape.io/blog/digital-omnibus-explanation). You can read more about [server-side tracking and GDPR here](https://stape.io/blog/server-side-tracking-gdpr). And you can read about [EU-owned proxy server for sGTM or how to use Google Analytics GDPR compliant way here.](https://stape.io/blog/eu-owned-proxy-server-or-how-to-use-google-analytics-gdpr-compliant-way) Need help with the setup? We've got you covered! Click Get help, fill-up the form, and we will send you a quote. --- # Would you like to become a Stape partner? Source: https://stape.io/blog/would-you-like-to-become-a-stape-partner Show a new way of tracking. Give clients a special link to sign up, and earn up to a 40% recurring commission for life. [Stape](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server) is your all-in-one solution for server-side data tracking. Industry leaders and top companies choose us to boost data quality and [marketing ROI](https://stape.io/blog/increase-marketing-roi) while maintaining security compliance. You can read about [how to start with server-side tracking](https://stape.io/blog/how-to-start-with-server-side-tracking) or what the [benefits](https://stape.io/blog/benefits-server-side-tagging) are and learn so much more on [our blog](https://stape.io/blog). Want to quickly check how healthy your clients’ tracking setup is? Use our free [Website Tracking Checker](https://stape.io/website-tracking-checker?cta=blog_article) to instantly see which tags work, which don’t, and get actionable tips to improve accuracy. Just enter your client’s website URL and receive a clear, detailed report. The tool shows you how well your client’s website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for their analytics systems and ad platforms. Digital marketers and agencies can run fast tracking audits for clients, use the report as a checklist to double-check implementations, and win more business with proof of server-side tracking value. Start a new journey with the Stape Partner program – a great way to monetize your audience by introducing them to an innovative tracking solution. Here, we’ll discuss what our [Partnership program](https://stape.io/partner) offers, its benefits, and how to become a partner at Stape. ![Become a Stape partner](https://cdn.stape.io/i/677d4418e780a175818534.png) Become a Stape partner How Stape’s partner program works For Level 1 partners A unique referral link. You’ll get [listed as our partner](https://stape.io/partner#all). Get up to 30% of the revenue share. When someone clicks your referral link, signs up within 7 days, and makes a purchase, you'll earn a commission every month they renew their subscription. Depending on their plan, you can earn from $2 per month per customer, potentially earning significantly more as your customer base grows or depending on higher-tier plans. For sGTM hosting and Signals Gateway Subscription Plan | Fee, % Pro, Pro+ (available on the website) | 10 Business, Business+ (available on the website) | 20 Enterprise, Enterprise+ (available on the website) | 30 Custom | 30 For Gateways Meta CAPI Gateway | 10% Stape Gateway | 10% Snapchat CAPI Gateway | 10% TikTok Events API Gateway | 10% We send payments via wire transfer, or Paypal. Payment can be made once per month if your partner's commission is more than $100. You’ll get to sign with us an NDA and Partner Agreement. For Level 2 partners You should receive at least a $500 monthly referral commission: Up to 40% of the revenue share. Subscription Plan | Fee, % Pro, Pro+ (available on the Website) | 20 Business, Business+ (available on the Website) | 30 Enterprise, Enterprise+ (available on the Website) | 40 When you meet the requirement to become a Level 2 partner, you can see a widget in the “Payouts” section of your admin account: ![Widget in the “Payouts” section](https://cdn.stape.io/i/694922127cd11079152198.png) Apply for the Level 2 partner program and sign the documents. ![Apply for the Level 2 partner program](https://cdn.stape.io/i/6949224dcccc9849383249.png) For Gateways The commissions for Gateways on Level 2 are the same as those on Level 1. How to join Stape's partner program Notice: You can become our Partner ONLY if you have at least 5 paid products on your dashboard or $50 in monthly referral value (30% of the user’s plan value) in the Agency account. First, you need to have an Agency account. You can create it by [signing up as an Agency](https://stape.io/sign-up/agency) or [upgrading your Standard account](https://stape.io/helpdesk/knowledgebase/how-to-convert-standard-account-to-agency-account). Then, once your account meets certain criteria, you can [upgrade it to Partner](https://stape.io/partner) (see more details further in the article). Agency and Partner accounts [differ from a standard account.](https://stape.io/helpdesk/knowledgebase/general-questions/account-types) You can either handle the billing yourself or let your clients manage it. Additionally, you are responsible for assisting with the setup and onboarding them with Stape, but you are always welcome to ask for our help. You don’t receive any commission right away. Agency accounts work best if you need individual billing for each product. Note: when joining our Partner program, it’s important to consider your account’s region. There are two regions in Stape’s accounts: EU Select this option if your clients and their businesses are based in the European Union and require strict GDPR compliance. Account currency: EUR. Taxes are calculated according to EU regulations. Global Select this option if your clients and their businesses are located outside the European Union. Account currency: USD. Best suited for businesses that do not need to comply with EU GDPR rules. Please keep in mind that accounts from a different branch cannot be added to an Agency or Partner account (i.e., you can’t add clients from the EU to your Global Partner account, and vice versa). This also means that, if you work with both EU and Global clients, you will need two separate Partner accounts (one per region). This ensures proper data hosting and GDPR compliance. Please note that in this case, both accounts must satisfy the Partner account requirements (both must have at least 5 paid products or $50 in monthly referral value). You can use the same email for both accounts. You can also contact Stape to get a universal link that will allow your users to select the region that they want. Guide to joining the Partner program In your Agency account click on Partner program. ![Click on Partner program](https://cdn.stape.io/i/675ffc29ef821677503496.png) You will see how many products do you still need or whether you can already apply for Partner program. ![Stape Partner program](https://cdn.stape.io/i/66d6fbd5415fb472942318.png) Stape Partner program Fill in all required details in the Partner Information section to create the Partner Agreements. ![Partner program - Stape](https://cdn.stape.io/i/6613dcfd88635453332672.png) Partner program - Stape Then, our managers will be reviewing your information. ![Partner program - Stape](https://cdn.stape.io/i/66d7054f3fd21523611193.png) Partner program - Stape If something is not clear, we will get back to you with provided reasons.You will be able to change the information and apply again. ![Partner program - Stape](https://cdn.stape.io/i/66d7057c69e67315220537.png) Partner program - Stape Once everything is in order, you will be asked to provide a digital signature. ![Partner program - Stape](https://cdn.stape.io/i/66d705b050c4c731767792.png) Partner program - Stape Once everything is signed and approved, your account will be automatically upgraded to a Partner account, and we will send you an email with the signed documents from our side. ![Partner program - Stape](https://cdn.stape.io/i/66d705d61fd01643296664.png) Partner program - Stape Useful links [Sign up as Agency](https://stape.io/sign-up/agency). [How to convert standard account to agency account](https://help.stape.io/hc/en-us/articles/8251340776733-How-to-convert-standard-account-to-agency-account). [How to add a client to your Agency account](https://help.stape.io/hc/en-us/articles/8251623590941-How-to-add-a-client-to-your-Agency-account).https://help.stape.io/hc/en-us/articles/15263287799197-How-to-add-a-client-to-your-Partner-account [How to add a client to your Partner account](https://help.stape.io/hc/en-us/articles/15263287799197-How-to-add-a-client-to-your-Partner-account).https://help.stape.io/hc/en-us/articles/13854195065757-Agency-vs-Partner-account [Agency vs Partner account](https://help.stape.io/hc/en-us/articles/13854195065757-Agency-vs-Partner-account). [Agency vs Standard account](https://help.stape.io/hc/en-us/articles/6092802128413-Agency-vs-standard-account). [All about Agency account](https://help.stape.io/hc/en-us/articles/13853520528797-All-about-Agency-account). [All about Partner account](https://help.stape.io/hc/en-us/articles/13854111887901-All-about-Partner-account).https://help.stape.io/hc/en-us/articles/15263287799197-How-to-add-a-client-to-your-Partner-account Conclusion Joining the Stape Partner Program is a great way to earn by sharing a powerful tracking solution with your audience. You’ll earn commissions when someone signs up through your referral link and keeps their subscription active. It’s easy to get started. Just follow a few simple steps to become a partner, and you’ll start earning monthly commissions based on the plans you refer to. Ready to get started? Join the Stape Partner Program now and start earning today! [Contact Stape via email](mailto:partner@stape.io) if you need help or [book a meeting via Calendly](https://calendly.com/stape-sales/partnership-opportunities-with-stape). --- # Region-specific tags behavior in Google Tag Manager Source: https://stape.io/blog/region-specific-tags-behaviour-in-google-tag-manager Discover what is region-specific tag behavior in Google Tag Manager and how to customize tracking based on user geographic location. Region-specific tag behavior in Google Tag Manager refers to the ability to customize the firing of tags based on the user's geographic location. It allows you to define rules and conditions that determine when tags should be triggered or not triggered based on the user's region. With region-specific tag behavior, you can target or exclude certain regions from receiving specific tags. This can be useful when dealing with tracking rules in certain countries, like consent banners or user data anonymization in the European Union. What is region-specific tag behavior in server Google Tag Manager? Region-specific tag behavior is one of the newest features of Google Analytics 4 client in server Google Tag Manager. Region-specific tag behavior does two main things: Adds a country code to the server Google Analytics 4 headers. ![GA4 client configuration](https://cdn.stape.io/i/69a99c0db8fdc631998531.png) Adds the same country code to the Visitor Region variable. ![Country code in the Visitor Region variable](https://cdn.stape.io/i/64941503ef078300551367.png) Please remember any method of determining a user's location can be blocked or skewed by various user settings or tools (e.g., VPNs), so it won't be 100% accurate. Be sure to follow all applicable privacy laws and regulations when implementing any kind of geolocation tracking. Benefits of using region-specific tag behavior in GTM Region-specific tag behavior in Google Tag Manager can offer several potential benefits for your website, primarily if your audience is distributed across various geographic regions, and you must respect tracking restrictions in each region, and provide different user experiences or marketing efforts based on their locations. Here are a few key benefits: Legal compliance. In some cases, laws or regulations may dictate what kind of data you can collect from users in certain regions. For example, the EU's General Data Protection Regulation (GDPR) has strict data collection and user consent requirements. By using region-specific tags, you can ensure that you're only collecting data in ways that are legal and compliant with regional regulations. Better data quality. By triggering a consent banner or anonymizing user data only for those countries where it's required by law, you improve the data quality. Marketing optimization. Region-specific tagging can help you optimize your marketing efforts. For example, users in a specific region respond better to a particular promotional activity, and you can use region-specific tags to collect those people into separate audiences. Improved user experience. You can increase user engagement and satisfaction by customizing and tailoring the user experience to be more relevant and appropriate for their region. Performance optimization. You can serve different versions of scripts or tags depending on the region, which can help improve the performance of your website for users in other locations. A/B testing. Region-specific tags can help you conduct location-based A/B testing to determine what works best for audiences in different regions. Remember, while these benefits can be achieved with region-specific tags in GTM, proper setup and ongoing management are essential to ensure you get the most out of this feature. Always be aware of the privacy and legal implications when dealing with user data and location-based customization. Configuring region-specific tag behavior with Custom Loader power-up (automatic geo data) If you host your server-side GTM on Stape and enable Custom Loader, it automatically adds geo parameters to your tracking data, ensuring a clean and reliable tracking baseline. Custom Loader reduces the impact of ad blockers on GTM/GA4 scripts and helps keep data collection consistent. That means fewer missing signals when you later segment by tag region or analyze google tag location. When to choose this: You want automatic and clean tracking foundations. You wish to avoid data loss (ad blockers / browser restrictions). You need better consistency before you start using region tag logic across tools. How it works: Your GTM/GA4 scripts load through the Custom Loader path. Requests reach your server container more reliably and are already enriched with geo data. You can then build reporting and segmentation using location information. For more information on the setup, see our detailed [guide about configuring Custom Loader](https://stape.io/solutions/custom-gtm-loader). Configuring region-specific tag behavior with GEO Headers power-up (explicit geo data on every hit) If you need visibility of the visitor's location on the hit itself, use GEO Headers. This power-up adds geographical information as request headers in your sGTM Incoming HTTP Request. It's a practical way to build a region tag and send it to your destinations. What you get in sGTM request headers: X-GEO-Country X-GEO-Country-Name X-GEO-Region X-GEO-City X-GEO-Ipaddress X-GEO-PostalCode When to choose this: You need a tag region for analytics reporting and segmentation. You want to send google tag location values directly to ad platforms. You wish to build geo-based routing/logic in your geo tag manager container. Step-by-step setup Step 1. Enable GEO Headers: 1. Log in to [stape.io](https://stape.io/login). 2. Open the needed sGTM container. ![Open the needed sGTM container](https://cdn.stape.io/i/69a99fc615bb8449797718.png) 3. Go to Power-ups → find GEO Headers → click Use. ![Use GEO Headers](https://cdn.stape.io/i/69f207f34cab9101253419.png) 4. Toggle GEO Headers on and click Save changes. ![image](https://cdn.stape.io/i/69f2083fa4ec8244496020.png) Step 2. Create variables in server GTM: 1. In your server GTM container, go to Variables → New → choose variable type Request Header. !["Request Header" variable type](https://cdn.stape.io/i/69a9a0e759b6d084582466.png) 2. Create variables for the headers you need, for example: X-Stape-User-Id. These variables serve as the building blocks for the tag region and region tag logic. ![Variable configuration](https://cdn.stape.io/i/69a9a142024e6249248037.png) Step 3. Use geo values in tags: Utilize the geo data depending on your needs: Analytics: send country/region/city as event parameters or user properties (your Google tag location reporting becomes more consistent). Ad platforms: include country/region fields in server-to-server events where supported. Routing: use X-GEO-Country / X-GEO-Region to choose endpoints, apply consent rules, or enrich events. Step 4. Test GEO Headers: Open server GTM preview. Trigger a request (page_view is enough). In the preview page, open the Request tab → Incoming HTTP Request. Click Show More in Request Headers. Confirm you see the X-GEO headers. ![Test GEO Headers](https://cdn.stape.io/i/69a9a26a8e094431300047.gif) Set up region-specific consent mode behavior using GEO Headers power-up Before you begin, make sure that you've [enabled the Custom Loader power-up](https://stape.io/solutions/custom-gtm-loader). Step 1. Region-specific consent mode using the web Google Tag Manager template 1. Open the web GTM container and add the [Consent Mode tag template](https://tagmanager.google.com/gallery/#/owners/gtm-templates-simo-ahava/templates/consent-mode). 2. Ensure that consent mode is enabled by clicking Admin, Container settings, and Enable consent overview checkbox. !["Enable consent overview" checkbox](https://cdn.stape.io/i/69a9a40e5eb8e233393192.png) 3. Create a new tag with the type [Consent Mode tag](https://tagmanager.google.com/gallery/#/owners/gtm-templates-simo-ahava/templates/consent-mode). Set what type of cookies should be set for each region. The tag will check areas based on the GEO Headers power-up you've enabled in Stape. The trigger should be Consent Initialization - All Pages. ![Consent Mode tag](https://cdn.stape.io/i/649419397eb68009183106.png) 4. Open tag that should listen to the region-specific consent settings and specify which cookies this tag sets. Scroll down to Consent Settings and identify the types of cookies. ![Consent Settings](https://cdn.stape.io/i/6494195b885e9057880858.png) Step 2. Test region-specific tag behavior Open GTM preview mode and trigger tag that should be using region-specific tag settings. Open the website console, go to Application → Cookies, and check that the cookies' behavior matches the settings in the Consent Mode tag. ![Website console](https://cdn.stape.io/i/69a9a5f9e226c592508790.png) Conclusion If your priority is stable tracking, start with Stape hosting + Custom Loader so your requests don't disappear to blockers, and your google tag location reporting stays consistent. If you need geo data directly on every request, enable GEO Headers, build a clear tag region flow, and pass that geo context to analytics and ad platforms. Setting up server-side tracking? We've got you covered! Click Get help, fill-up the form, and we will send you a quote. --- # Private Multi Account Cluster for Conversions API Gateway Source: https://stape.io/blog/private-multi-account-cluster-for-conversions-api-gateway Learn more about the benefits of the Private Multi Account Cluster for Conversions API Gateway by Stape. The Meta Conversions API Gateway provides the simplest method to incorporate the Conversions API on your website. You just need a properly functioning Meta pixel. Once that's in place, create a CAPIG hub and link it to the Meta Pixel. With [Stape, this entire process takes less than a minute](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway). The Meta CAPI Gateway is affordable and quick to set up, taking only a minute. The monthly subscription fees are also reasonable. With Stape, there are two subscription plans to pick from: Pay-as-you-go costs $10/month per pixel and includes 10 million monthly events per pixel. Unlimited costs $100/month plan and includes 200 million monthly events. Another version of the CAPI Gateway is the Private Multi Account Cluster, which is ideal for large agencies and businesses. It links data sources from various Meta Business Accounts to a single Gateway instance. Each Business Account's data remains distinct and protected. Without authorization, neither other Business Accounts nor the main instance can access it. This guarantees the secure and efficient use of the cloud platform. Benefits of Private Multi-Account Cluster Ensure optimal data routing for each website. You can configure a custom domain for each website, enabling advanced matching, attributing more conversions, and improving ad relevance. Predictable price. Pay a flat fee of $500 monthly for up to 1 billion requests. Select from up to 25 server locations. Connect an unlimited number of pixels located in the different Facebook Business Managers. Manage access for each account/website individually. How it looks like When you go to your [Conversions API Gateway environment](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway), you might notice “Manage accounts” in the left menu. ![conversions api gateway environment](https://cdn.stape.io/i/650c15690d436297218519.png) Once you click on it, decide what account you want to add. ![multiple account in gateway](https://cdn.stape.io/i/650c15a693c13403593566.png) Don’t forget to Confirm your settings and click Continue. ![authentication in meta conversions api gateway](https://cdn.stape.io/i/650c15cd961c6121691403.png) Then, you can go to “Data routing” to test if data routing has been optimized. ![data routing in meta conversions api gateway](https://cdn.stape.io/i/650c16022df16442158501.png) Conclusion If you run an agency or a large business, contact our sales to discuss the possibilities of a multiuser Conversions API Gateway hub. Prices start from $500 monthly (contact Stape's sales team for a precise quote), and you’ll receive countless [benefits of server-side tracking](https://stape.io/blog/benefits-server-side-tagging)! Start 7-day free trial The easy way to implement Meta Conversions API Gateway with no manual tagging. --- # Facebook Conversions API for Magento 2 Source: https://stape.io/blog/facebook-conversion-api-for-magento Learn how to quickly and easily set up Facebook Conversions API for Magento 2 using the Stape Conversion Tracking extension. Recognizing the power of data-driven marketing strategies, Facebook has developed the [Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api), a powerful tool that enables businesses to send events from server to server and it means you can now seamlessly connect your Magento 2 -powered online store with the vast advertising capabilities of the social media giant. In this article, we delve into the world of Facebook Conversion API for Magento 2, exploring its features, benefits, and how it empowers businesses to enhance their marketing efforts, streamline data synchronization, and ultimately boost their online sales. Get ready to harness the true potential of our [Magento 2 extension](https://commercemarketplace.adobe.com/stape-gtm-server-side-magento-module.html) and take your eCommerce game to the next level with the Facebook Conversion API. By the way, check out Stape’s [pre-configured templates for Meta CAPI](https://stape.io/gtm-set-up-assistant). Now it is easier than ever to configure your setup: everything is done and all ready for you! What are the main benefits The Facebook Conversion API for Magento 2 offers a range of benefits that empower eCommerce businesses to maximize their marketing efforts and achieve higher conversions. Firstly, it provides a seamless integration between Magento 2 -powered online stores and Facebook's advertising platform, allowing businesses to track and optimize their advertising campaigns more effectively. By syncing data directly from the server side, rather than relying solely on browser-based events, the Conversions API ensures more accurate tracking of conversions, even in scenarios where cookies may not be present or blocked. This enables businesses to gain deeper insights into their customers' actions and behaviors, facilitating better targeting and personalized ad experiences. Additionally, the Conversions API enhances data privacy and security by keeping sensitive customer information within the server environment, reducing the risk of data breaches. Moreover, the API offers increased scalability and flexibility, allowing businesses to handle high volumes of traffic and transactions without compromising performance. With these benefits, the Facebook Conversions API for Magento 2 empowers businesses to optimize their advertising campaigns, drive more relevant and personalized experiences, and ultimately boost their online sales. How to set up Facebook Conversions API for Magento 2 1. [Set up a server Google Tag Manager container on Stape.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Add and configure Magento 2 extension. 3. Send data to the server Google Tag Manager container. There are two most popular ways to do that: With Google Analytics 4. For more information on [how to send data using GA4, check this article.](https://stape.io/blog/server-side-google-analytics-4-for-magento) [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). In this article, I will use Data Tag/Data Client to send data from the web to the server. 3. In your Web Google Tag Manager go to the template gallery, find [Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag), and add it to the Workspace. 4. To ensure eCommerce events, product, and user data are set up correctly, open a web GTM container and check the data layer the Stape extension sends for each eCommerce event. You might need to configure a data layer variable for an event or user data you must send to Facebook. ![data tag configuration](https://cdn.stape.io/i/6492b5f5d13ac152163303.png) 5. Go to Tags, and create a new Data Tag. 6. Inside the Data Tag in the Event Name, select standard and choose Add To Cart. Add your tagging server URL. Add event data (such as product name, value, ID, etc.) and User Data manually or select Send all from DataLayer. You can leave all the other settings unchanged. Add a trigger, in my case, a custom event add_to_cart. ![data tag configuration](https://cdn.stape.io/i/6492b622c264f429488893.png) 7. Add Data Client inside the Google Tag Manager Server container. This Client will listen to Data Tag, process all information, and convert it into events data inside the server container. [Open this link](https://github.com/stape-io/data-client?swcfpc=1) -> Click on the green button Code -> Download Zip file -> Go to the templates tag in the Google Tag Manager Server container -> On the Client Templates, click New -> Import -> Click Save. 8. Create a Data Client in the server GTM container. Select Clients, click New, and choose Data Client. ![data client configuration](https://cdn.stape.io/i/6492b64c7b2f1636385764.png) 9. Create variables inside the Server container that will capture the request_data you sent from the Web container. Go to the variables tab inside the Server container -> Create new variable -> Variable type event data -> Add Key Path. ![variable configuration](https://cdn.stape.io/i/6492b6696b3bb208433323.png) 10. Create a new Tag. Go to the community template gallery and add [Facebook Conversions API Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag). In the Tag select override in Event Name Setup Method and choose AddToCart event. Fill in your FB API Access Token, FB Pixel ID, and Test ID to see events inside the FB testing tool. Add User Data and Custom Data that you wish to send to Facebook. ![facebook capi tag configuration](https://cdn.stape.io/i/6492b69577fbb192796388.png) 11. Add a trigger. Click on triggers-> + in the top right corner-> trigger settings and select a custom event trigger-> type add_to_cart to the event name, and this trigger will fire on Some Custom Events-> Client Name equals Data Client. Click save. ![trigger configuration](https://cdn.stape.io/i/6492b6b58a8d2673798823.png) Conclusion In this article we have highlighted the advantages of using Facebook CAPI for your Magento 2 store and also described steps of implementation. With Stape’s Magento 2 extension it’s now much easier to get started with server-side tracking. And if you have any questions - don’t hesitate to contact us. Our team of experts will guide you through or give an excellent consultation! Setting up server-side tracking? We've got you covered! Click Get assistance, fill-up the form, and we will send you a quote. --- # Server-side Google Analytics 4 for Magento 2 Source: https://stape.io/blog/server-side-google-analytics-4-for-magento Boost Magento 2 data with server-side GA4. Enhance accuracy, privacy, and tracking. Learn the setup: GTM, plugins, custom domains, and event configuration. Google Analytics has long been a go-to tool for tracking and analyzing website data, providing valuable insights into user behavior and performance metrics. For Magento 2 users, integrating GA4 into their server-side implementation can unlock a wealth of data and enable more precise tracking and reporting. In this article, we will explore the benefits of server-side Google Analytics 4 for Magento 2 and provide a step-by-step guide on setting up the [Magento 2 extension](https://commercemarketplace.adobe.com/stape-gtm-server-side-magento-module.html), empowering you to harness the full potential of the e-commerce data. Advantages of using server-side Google Analytics 4 Here we would like to outline the benefits of implementing server-side GA4 for your Magento 2 Store: Enhanced Data Accuracy and Consistency. By capturing data directly from the server, it eliminates the reliance on client-side scripts, reducing the chances of data loss or discrepancies caused by ad blockers, browser settings, or user behavior. This ensures that your analytics reports provide a more reliable and comprehensive view of user interactions, allowing for more informed decision-making. Cross-Device and Cross-Platform Tracking. In today's multi-device and multi-channel world, customers interact with businesses through various touchpoints. Server-side tracking captures these interactions, allowing you to understand the entire customer journey, regardless of the device or platform used. Increased Data Privacy and Compliance. [Server-side GA4 implementation](https://stape.io/stape-gateway) reduces the amount of personally identifiable information (PII) collected and transmitted to third-party platforms. This helps businesses adhere to data privacy regulations such as the General Data Protection Regulation (GDPR) and eases concerns about data security and user privacy. Flexibility and Customization. Now you have more control over the data you send to Google Analytics and can tailor the tracking to match your specific business requirements. This enables you to track custom events, attributes, and user interactions that are unique to your Magento 2 store, allowing for deeper analysis and insights that align with your business objectives. Scalability and Performance. Server-side tracking offers scalability and improved performance, especially for high-traffic websites or complex e-commerce platforms like Magento 2. By offloading the tracking to the server, you reduce the burden on the client's browser, resulting in faster page load times and a smoother user experience. This is particularly beneficial for e-commerce sites where page speed directly impacts user engagement and conversion rates. How to set up server-side Google Analytics 4 for Magento 2 Conclusion Implementing server-side Google Analytics 4 for Magento 2 offers significant advantages and unlocks a new level of data-driven insights for e-commerce businesses. By shifting the tracking process to the server, businesses can achieve enhanced data accuracy, consistent tracking across devices and platforms, improved data privacy and compliance, customization options, and better scalability and performance. In addition to GA4, many merchants also explore the [Magento Facebook Conversion API](https://stape.io/blog/facebook-conversion-api-for-magento) to improve attribution and advertising results, making server-side tracking even more powerful when combined with other platforms. By following the step-by-step guide provided in this article, using Magento 2 you can seamlessly set up server-side GA4 and harness the full potential of the e-commerce data. --- # Stape Conversion Tracking extension for Magento 2 Source: https://stape.io/blog/server-side-gtm-extension-for-magento-2 Don't miss out on the benefits of server-side tagging for Magento 2. Learn how to set it up with Stape’s extension in this quick and easy guide! If you have your store on Magento 2, you might be well-interested in setting up https://stape.io/blog/server-side-tagging-versus-client-side-tagging[server-side tracking](https://stape.io/) on your website. As in the evolving landscape of e-commerce, data-driven insights are crucial to success. Understanding how your customers interact with your website not only enhances their experience but also optimizes your marketing strategies. That's where [Stape's Conversion Tracking extension for Magento 2](https://commercemarketplace.adobe.com/stape-gtm-server-side-magento-module.html) comes in, simplifying the process and opening up the world of [server-side tagging](https://stape.io/blog/server-side-tagging). In this guide, we'll delve into the benefits of implementing the Magento 2 app, understand the offerings of Stape's Conversion Tracking extension, and walk through the steps of setting it up. Why do you need Stape Conversion Tracking extension for Magento 2 The Magento 2 plugin simplifies the process of modifying the [Google Tag Manager](https://stape.io/gtm-server-hosting) script by incorporating the tagging server URL. This extension is compatible with other extensions that insert the GTM script on your website, allowing you to load a GTM container from your subdomain. Also, it includes a custom loader that makes Google Tag Manager and Google Analytics tracking invisible to ad blockers and various tracking prevention mechanisms. Another advantage of using this extension is the extended cookie lifetime when utilizing a custom domain for the server Google Tag Manager container, which enhances tracking accuracy. Furthermore, the Stape power-up [Cookie Keeper](https://stape.io/blog/safari-itp?trk=public_post_comment-text) feature restores marketing cookies in Safari 16.4+. Our plugin supports two most popular themes on the market - Luma and Hyva. With the Magento 2 plugin it is possible to remove 3rd party pixels from the browser to cloud servers and therefore [increase your site page speed.](https://stape.io/blog/benefits-server-side-tagging#2-improved-website-page-load-time) To find out more about the [benefits of server-side tagging](https://stape.io/blog/benefits-server-side-tagging) and what they can bring for your business please click on the link. How to set up Stape Server GTM Magento 2 plugin by Stape 1. Log in to your Magento 2 Admin. 2. Go to Magento 2 Marketplace, then choose [Stape's Conversion Tracking](https://commercemarketplace.adobe.com/stape-gtm-server-side-magento-module.html), click Add to cart and proceed to Checkout. ![Stape Conversion Tracking extension ](https://cdn.stape.io/i/68fb790cba4f6668522695.png) Please note that the plugin is entirely free, and all plugin functions - except the [Cookie Keeper](https://stape.io/solutions/cookie-keeper) - can be used regardless of whether you use the Stape service or not. The Cookie Keeper function will only work if you use the Stape service on any tariff and have activated it in your container settings. 3. Follow the instructions provided to install the extension on your Magento 2 site. 4. [Set up a server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) and [create an account within our service here.](https://stape.io/sign-up) 5. In your Magento 2 account go to Stores and choose Configuration. ![magento 2 account configuration](https://cdn.stape.io/i/64919b1ca0ca6455020533.png) 6. Choose Stape and click on Stape Conversion Tracking. ![magento 2 account configuration](https://cdn.stape.io/i/64919b5ca14d2766195987.png) 7. Paste your WEB container ID, Custom domain and Custom Loader from your container. Don’t forget to click the Save config button. ![container configuration in magento 2 account](https://cdn.stape.io/i/64919b7d79524979631662.png) 8. You also have an option to send data layer with the help of Magento 2 extension. Simply enable two boxes to send e-commerce and user data. [The list of e-commerce events:](https://help.stape.io/hc/en-us/articles/13792810515101-Magento-Plugin-dataLayer) View item View collection Add to cart View cart Begin checkout Payment info Purchase User data: Email First name Last name Customer ID ![data layer for magento 2](https://cdn.stape.io/i/64c39167bf15f317124265.jpg) 9. Once you have a server GTM container for the Magento 2 site up and running, you can start setting up server-side tagging for needed platforms. For example, we already have blog posts describing [setting up server-side](https://stape.io/blog/set-up-ga4-server-side-tracking)[Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking), [Facebook](https://stape.io/blog/how-to-set-up-facebook-conversion-api), [TikTok](https://stape.io/blog/tiktok-server-side-tracking), [Snapchat](https://stape.io/blog/snapchat-capi), and the [Magento 2 Facebook Conversion API](https://stape.io/blog/facebook-conversion-api-for-magento), which ensures reliable event delivery even when browser tracking is restricted. Simplify data tracking setup for web and server GTM containers with [Stape’s Setup Assistant](https://stape.io/blog/setup-assistant-by-stape). Just choose the tools you use, and it will generate ready-made templates that are automatically imported into your GTM containers. Conclusion Implementing server-side tagging for your Magento 2 site through the Stape Conversion Tracking extension offers a range of benefits and is a crucial step towards optimizing your website's performance. Among the features we highlighted: integration of the Google Tag Manager script on every page of your website, compatibility with other extensions that insert GTM script on your website, loading a GTM container from your subdomain, and inclusion of a custom loader to render Google Tag Manager and Google Analytics tracking invisible to ad blockers and various tracking prevention mechanisms, etc. We hope this article has provided a comprehensive guide, outlining the step-by-step process for integrating Stape Conversion Tracking app into your Magento 2 site. By following these instructions, you can unlock the full potential of server-side tagging, empowering you to track and analyze user data more effectively while ensuring a seamless browsing experience for your visitors. Need help setting up server-side tracking? We've got you covered! Click Get help, fill-up the form, and we will send you a quote. --- # Conversion tracking on Shopify upsell page with sGTM Source: https://stape.io/blog/conversion-tracking-on-shopify-upsell-page-with-server-gtm Solve Shopify upsell tracking challenges. Track conversions on upsell pages with sGTM. Learn to overcome GTM limitations & improve data. Shopify app store offers a vast variety of upsell apps. This is an excellent tool for store owners to maximize their revenue, but tracking conversions on the Shopify upsell page can be challenging. One of the biggest issues marketers may experience while working with stores with Shopify upsell apps is that users who completed a purchase might think that the post-purchase page is already the final destination of their user journey. It is hard to blame them, as an order confirmation email has been sent, the money got withdrawn from the card, and in many cases, the upsell page may look like a thank_you page. Thus they simply close the tab/browser, never reaching the order status page, and your marketing pixels never track this conversion. Sad story, right? But do not worry, the problem is solvable, so let us share a few tricks in this blog post. Conversion tracking on the order status page is pretty straightforward: you can pull data from Liquid by inserting dataLayer push scripts and then use GTM tags for tracking, you may insert marketing pixels directly, or you may use different apps that can generate dataLayer without any need to write a single line of code, such as [Stape’s Conversion Tracking app](https://apps.shopify.com/server-gtm). One of the most significant issues on the Shopify upsell page we have encountered is that GTM does not load there as usual, thus your tags do not fire as you might expect. In this blog post we will describe one of the possible approaches to track your conversions using sGTM. When accessed, the upsell page exists in some kind of limbo and scripting capability is very limited, that’s why web GTM container cannot be loaded. Luckily, the gtag library can be used to transfer the information from the upsell page to the server GTM container. To do so, you need to modify the gtag configuration by adding transport_url and first_party_collection parameters, so it would look like this: ![Transport_url and first_party_collection parameters](https://cdn.stape.io/i/64900c322bf41636287779.jpeg) With this simple modification, the event and data associated with it will be transferred to the server GTM container and you’ll be able to access it via Event Data variables. [Shopify server-side tracking](https://stape.io/blog/server-side-tagging-for-shopify) allows you to track initial order and upsell order separately. Here is an example of what data you might expect on the server GTM container: ![Track initial order and upsell order](https://cdn.stape.io/i/64900c356e1cd193099084.jpeg) Most of the Shopify upsell apps use the same order id for initial and upsell purchases, so we would suggest pushing a separate event called, for example, ‘upsell_purchase’ so GA4 would not discard a purchase event with the same transaction_id. Observed unexpected behavior One of the interesting bugs we’ve noticed is that, for unknown reasons, you are not able to send an ‘items’ array, you simply won’t see it in the Event Data. But if you call this parameter differently, on our screenshot it’s ‘items_array’, it can be accessed by the event data variable and then overwritten as a proper ‘items’ parameter in the GA4 tag. Another issue you may face is that cookies are not always being sent with the HTTP request from the post-purchase page, which will cause attribution problems. Funny, despite all the restrictions you have on the upsell page, you still can retrieve all non http-only cookies using document.cookie method and send them as one of the event properties using gtag. On the server GTM container you will be able to access the cookies string, parse it, find the cookie of your interest and send it as an overridden parameter by the tags that allow you to do so, like many tags developed by Stape, e.g. [Shopify Meta CAPI](https://stape.io/blog/facebook-conversion-api-and-shopify) tag, TikTok Events API tag, Outrain tag etc. Conclusions Tracking upsells on Shopify can be challenging but not impossible. For some businesses, it brings lots of additional revenue, so without proper tracking, this additional revenue can be depreciated by lower campaign performance due to missing data. If you are one of the businesses who needs both - additional income generated by upsells and as accurate tracking as possible - feel free to contact [Stape Care](https://stape.io/care) - we will be happy to assist. Need help setting up server-side tracking? We've got you covered! Click Get assistance, fill-up the form, and we will send you a quote. --- # What is Google Tag Assistant and how to use it Source: https://stape.io/blog/what-is-google-tag-assistant-and-how-to-use-it In this article you will find out what is Google Tag Assistant, what are the benefits and key features of this extension and how to start using it. In today's digital landscape, effective tracking and optimization of online marketing efforts are essential for success. We’ve already described that [server Google Tag Manager](https://stape.io/gtm-server-hosting) and https://stape.io/blog/benefits-server-side-tagging[server-side tracking](https://stape.io/) are a must have if you want to improve your pagespeed and make your tracking accurate and secure. If you are a newbie in the analytical world or have just started implementing tracking on your website - you may face some challenges. That's where Google Tag Assistant comes into play. In this article, we will delve into the fundamentals of Google Tag Assistant, exploring its features and explaining how to utilize this indispensable tool to maximize the efficiency of your online tracking and advertising campaigns. What is Google Tag Assistant Google Tag Assistant is a tool that enables website owners and digital marketers to ensure the smooth functioning and accuracy of tags in Google Tag Manager. With the rapid evolution of online analytics and advertising, it has become crucial to have a reliable means of validating the implementation of these tags. Google Tag Assistant simplifies this process by providing real-time feedback and comprehensive diagnostic reports, allowing users to identify and rectify any tagging errors quickly. ![google tag assistant](https://cdn.stape.io/i/6474628ec5295569974414.png) A tag is a snippet of code or configuration that allows you to collect data and track specific events or actions on your website. It is a fundamental component of Google Tag Manager's functionality and helps you manage and deploy various tracking and marketing tools without directly modifying your website's code. When you create a tag in Google Tag Manager, you specify its type, such as [Google Analytics](https://stape.io/blog/set-up-ga4-server-side-tracking), [Facebook Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api), [AdWords Conversion Tracking](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords), or any custom HTML or JavaScript code. Each tag type has its own configuration options and requirements. The Stape team created the Stape GTM Helper, a [Chrome extension to optimize the GTM preview](https://stape.io/blog/stape-chrome-extension). With it, managing Google Tag Manager becomes faster and more intuitive. How to use Google Tag Assistant 1. Install the Google Tag Assistant Companion extension for Chrome. 2. Enable [Preview mode in GTM](https://stape.io/blog/gtm-preview-mode-and-debugging). 3. Open your website - Tag Assistant will launch automatically. 4. Review tag firing, dataLayer events, and troubleshoot issues in real time. Key features and functions of Google Tag Assistant 1. Tag Validation: Google Tag Assistant automatically scans the pages of your website and checks for the presence and correctness of Google tags. It verifies if the tags are properly installed and configured, ensuring that they are functioning as intended. ![google tag assistant tag validation](https://cdn.stape.io/i/64746309b747d936173298.png) 2. Real-Time Monitoring: real-time feedback on the firing and behavior of tags as you navigate through your website. It helps you identify any issues or errors related to tag firing, such as missing or duplicated tags. 3. Diagnostic Messages: detailed diagnostic messages to help you understand and resolve any problems with your tags. It offers suggestions and recommendations for fixing issues, allowing you to ensure accurate data collection and tracking. 4. Tag Recording: record a browsing session and capture the tags that fire during that session. This feature is useful for analyzing the firing sequence and behavior of tags and identifying any potential conflicts or issues. ![tag recording](https://cdn.stape.io/i/6474634a8ef6e928402209.png) 5. Tag Performance: The extension provides insights into the performance of your tags, including load times and the impact on page speed. It helps you assess the efficiency of your tag implementation and optimize the overall performance of your website. 6. Compatibility Checks: Google Tag Assistant checks for compatibility issues between different tags, ensuring they work harmoniously together without conflicts. It also alerts you to any conflicts with other extensions or scripts that may affect tag functionality. 7. Multiple Environments: it supports different environments, allowing you to test your tags in various scenarios, such as development, staging, or production environments. This helps ensure the proper functioning of tags across different stages of your website. How to get started with Google Tag Assistant Follow these steps: 1. Install the Extension: Open your Google Chrome browser. Go to the Chrome Web Store. Search for "Google Tag Assistant" in the search bar. Click on the "Add to Chrome" button next to the extension. Confirm the installation by clicking "Add extension" in the pop-up window. 2. Enable the Extension: Once the extension is installed, you will see the Google Tag Assistant icon added to your browser's toolbar (usually, at the top right). Click on the Tag Assistant icon to activate the extension. 3. Navigate to Your Website: Go to the website where you want to check the tags. Ensure that you have the Google Tag Manager container code or other relevant tags implemented on the site. 4. Analyze Tags: Click on the Tag Assistant icon in your browser's toolbar. A pop-up window will appear, showing a list of detected tags on the current page. The tags will be color-coded based on their status: green for correctly implemented tags, yellow for potential issues, and red for critical issues. 5. Review Diagnostic Messages: Click on a specific tag in the Tag Assistant pop-up window to view detailed diagnostic messages and suggestions for resolving issues. The diagnostic messages will provide insights into tag implementation errors, conflicts, or other issues that need attention. 6. Record a Browsing Session (Optional): If you want to capture and analyze the firing behavior of tags during a specific browsing session, you can click the "Record" button in the Tag Assistant pop-up window. Navigate through your website as you normally would while the recording is active. After you finish recording, click the "Stop" button to end the session. 7. Review Performance and Compatibility: In addition to validating tags, Google Tag Assistant also provides information on tag performance and compatibility with other extensions or scripts. Use the information provided to optimize the performance of your tags and address any conflicts. Remember to refresh the page or navigate to different pages on your website to capture the firing of various tags and get a comprehensive analysis using Google Tag Assistant. Does Google Tag Assistant help with server-side tracking? No, Google Tag Assistant is primarily designed to assist with client-side tracking implementations. It focuses on validating and troubleshooting tags that are implemented within the browser environment, such as tags managed by Google Tag Manager or other client-side tags like Google Analytics or Google Ads conversion tracking. Server-side tracking, on the other hand, involves collecting and processing data on the server before it reaches the user's browser. This type of tracking typically involves implementing tracking codes or scripts directly on the server-side infrastructure. Google Tag Assistant is not specifically designed to validate or troubleshoot server-side tracking implementations. Its functionality is limited to the analysis of tags within the browser environment. For server-side tracking implementations, you may need to rely on other debugging and monitoring tools or consult the documentation and resources specific to the server-side tracking solution you are using. Conclusion Now you can start using Google Tag Assistant to validate and troubleshoot the implementation of tags on your website, ensuring accurate data collection and tracking. And if you’ve got some questions regarding server-side tracking - please don’t hesitate to contact our [support](https://stapehelp.zendesk.com/hc/en-us/requests/new). Check your website’s tracking health Click on Scan your site to use our Website Tracking Checker and get a detailed report on how to fix tracking issues and boost performance. --- # Your tagging server is out of date and no longer supported. Solution. Source: https://stape.io/blog/your-tagging-server-is-out-of-date-and-no-longer-supported In this article find out how to solve a problem: your tagging server is out of date and no longer supported. There has been a surge in reports from developers stating that their Docker containers are not updating as expected. This issue is often accompanied by an error message: "Your tagging server is out of date and no longer supported. You must update to the latest version." ![your tagging server is out of date.](https://cdn.stape.io/i/6470c53dc6fbc928589462.png) This article will explore the roots of this problem and propose solutions, specifically in the context of Google's App Engine. We'll also discuss how stape.io manages to avoid such pitfalls. The Issue In a nutshell, the problem arises when Docker containers running on Google App Engine are not updated as per the expectations. The update process is a critical part of maintaining any server infrastructure, ensuring the latest features, improvements, and security patches are implemented. When this process is hindered, the functionality and security of the application hosted within the Docker container may be compromised. The error message is a clear indicator that the Docker container in question is running an outdated version. It's crucial to note that software companies, including those that maintain Docker containers, routinely phase out older versions of their software, ceasing to provide support or updates for these versions. This practice ensures resources are focused on improving the latest versions and maintaining a high standard of security. Solution When facing this issue on Google's App Engine, you need to [re-run the provisioning steps.](https://developers.google.com/tag-platform/tag-manager/server-side/app-engine-setup?provisioning=manual#provisioning) Use the same settings you used previously. The existing settings are set by default. This action should upgrade your installation to the latest version and resolve the error message. It's a simple process, but requires some time. Stape advantage While troubleshooting and resolving the aforementioned issue in App Engine is straightforward, it's worth considering platforms that have been designed to avoid such problems from the onset. One such platform is us - stape.io. Stape is an innovative platform that helps businesses collect, control and leverage their data. What sets stape.io apart in this context is its approach to maintaining and updating server infrastructure. Stape.io's system is designed to seamlessly handle updates, eliminating the need for manual intervention and the risks associated with running outdated server versions. This ensures that users can focus on leveraging their data and building their businesses, rather than spending time and resources on server maintenance and troubleshooting. Conclusion Updating Docker containers on Google's App Engine can be an issue, but with the right approach, it's a manageable one. By shutting down old servers, deploying new ones, developers can ensure they're using the latest software versions. However, Stape is proving that seamless server updates are possible, paving the way for hassle-free server management and allowing businesses to focus on what truly matters - growing their business and making the most of their data. Need help setting up server-side tracking? We've got you covered! Click Get assistance, fill-up the form, and we will send you a quote. --- # How to set up Klaviyo for Shopify via server Google Tag Manager Source: https://stape.io/blog/how-to-set-up-klaviyo-for-shopify-via-server-google-tag-manager Boost Shopify marketing with Klaviyo. Learn to set up Klaviyo via sGTM for personalized campaigns, increased engagement, and stronger customer relationships. In the fast-paced world of eCommerce, establishing effective marketing strategies is crucial for online businesses to thrive. One such powerful tool that aids in driving sales and engaging customers is Klaviyo — an email marketing platform that integrates seamlessly with popular e-commerce platforms like Shopify ([Shopify Facebook Conversion API](https://stape.io/blog/facebook-conversion-api-and-shopify)). However, setting up [Klaviyo server-side tracking](https://stape.io/blog/set-up-klaviyo-website-event-tracking-using-server-google-tag-manager) for Shopify requires careful configuration and implementation to maximize its potential. In this guide, we will explore how to set up Klaviyo for Shopify via server Google Tag Manager, enabling you to harness the full capabilities of Klaviyo and create personalized and targeted email campaigns. Guide on setting up Klaviyo for your Shopify store with GTM server 1. [Set up a server Google Tag Manager container on Stape](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container#how-to-set-up-google-tag-manager-server-side-tagging-on-your-website). 2. [Add and configure Stape's Conversion Tracking app](https://stape.io/blog/server-side-tagging-for-shopify#features-of-stape-server-gtm-app-for-shopify). 3. Send data to the server Google Tag Manager container. There are three most popular ways to do that: [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). In this article, we will use Data Tag/Data Client to send data from the web to the server. [With Google Analytics 4](https://stape.io/blog/server-side-google-analytics-for-shopify). For more information on how to send data using GA4, check [this article](https://stape.io/blog/server-side-google-analytics-for-shopify#server-side-google-analytics-4-for-shopify). 4. Add Klaviyo tag to the Google Tag Manager Server container from the [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/klaviyo-tag). Click Templates → Search Gallery → search for “Klaviyo” → click “Add”. ![Add template](https://cdn.stape.io/i/692dc39765277721982337.png) 5. Go to the tags section inside the server container → Click New → Select Klaviyo tag that you’ve added to the workspace → Add tag name → Add your [Klaviyo Private API key](https://help.klaviyo.com/hc/en-us/articles/115005062267#find-your-api-keys1). 6. In this example, we'll see how to [send purchase events to Klaviyo](https://stape.io/blog/set-up-klaviyo-website-event-tracking-using-server-google-tag-manager), assign this event to the [existing user, or create a new user](https://stape.io/blog/create-a-user-profile-and-track-website-activity-in-klaviyo-using-server-google-tag-manager). Inside the server GTM container, create a new Klaviyo tag. Add Klaviyo Private API Key, select event and add variable that includes user email. Klaviyo tag will use email to assign events to Klaviyo profile. If there is no user with this email, it will create a new user. This tag should trigger on the purchase event. ![Purchase event setup in Klaviyo tag](https://cdn.stape.io/i/692da47637c80613642045.png) 7. You can also get the user email using Data Tag for the Google Tag Manager Web container. After adding a tag to your workspace, select a standard event name Purchase. Add GTM server-side domain and GTM Server Preview HTTP header (preview header is required if you want to see Data Tag information inside the Google Tag Manager server preview mode) To send user email on the purchase event, click on the user data, select an email address and add a variable that has user email. This tag should trigger the purchase event. You should also add Data Client to the server container. It will listen to Data Tag and add information to the event data inside the server container. You should also add [Data Client](https://github.com/gtm-server/data-client) to the server container. It will listen to Data Tag and add information to the event data inside the server container. ![set up data tag](https://cdn.stape.io/i/61940fdb327a8791117991.png) 8. Open Preview and Debug mode of the Server and Web containers (make sure you've added a GTM Server preview HTTP header, it is required to see Data Tag events inside the Server container preview more. You can find it by clicking the three dots in the top right corner of the Google Tag Manager Server container preview mode and choose “Send requests manually.” ) 9. Once you've verified that the Klaviyo tag triggers inside the Google Tag Manager Server container and sends all the parameters, go to your Klaviyo account and check if that event was added to the user. Don't forget to publish your changes. Alternative way to integrate Klaviyo: Stape Conversion Tracking app Besides the tag described above, Stape also provides a [free Stape Conversion Tracking app for Klaviyo](https://marketplace.klaviyo.com/en-us/apps/01jvvwp56xj2439aaw4zhsa1q4/). The tag is an especially helpful alternative for those users who use methods other than the server GTM container to implement server-side tracking, in particular Conversions API Gateway (CAPIG) and Signals Gateway, where a server GTM container isn't available, and users can’t configure the tag. Important note: If you already use a server GTM container, you can also integrate Klaviyo through the app and use your existing server-side infrastructure. The app automatically sends Klaviyo CRM events (such as clicking a link or unsubscribing) to the platforms you need. To configure the app right away, please refer to our [step-by-step documentation on the Klaviyo app](https://stape.io/helpdesk/documentation/klaviyo-stape-conversion-tracking-app). ![Klaviyo CRM](https://cdn.stape.io/i/6a5f7c92e44d0316768246.png) Conclusion Setting up Klaviyo for Shopify through the server Google Tag Manager can greatly enhance your eCommerce marketing efforts. By implementing this integration, you can leverage Klaviyo's robust features to create campaigns that drive engagement, boost conversions, and cultivate long-lasting customer relationships. With Klaviyo's powerful segmentation and automation capabilities, you can deliver targeted messages based on customer behavior and preferences, ultimately increasing customer satisfaction and loyalty. By following the steps outlined in this guide, you can confidently configure Klaviyo for Shopify and unlock its potential to take your online business to new heights. --- # 115% more value measured in Google Ads for Onyx Cookware | Obsidian Digital Source: https://stape.io/blog/how-onyx-cookware-measured-115-more-value-in-google-ads Find out about the success case of Onyx Cookware, how Obsidian Digital set up server-side tracking via Stape and how it led to a great outcome in Google Ads. The Danish kitchen equipment-brand [Onyx Cookware](https://onyxcookware.dk/), along with sister-brands [Nexsmart](https://nexsmart.dk/), and [Zenbed](https://zenbed.dk/), recently embraced a cutting-edge technology - server-side tagging. ![Onyx cookware](https://cdn.stape.io/i/64674205ec6bb193342507.png) Their core objective was to better comprehend the value addition by Google Ads and consequently allocate their budget effectively towards their high-performing campaigns. Furthermore, they aimed to extract maximum value out of Google Ads by providing richer data to Google's algorithm. The implementation of server-side tagging, orchestrated by [Obsidian Digital](https://obsidian.dk/) via Stape and a server-side Google Tag Manager solution, has led to a noteworthy outcome. The total conversion value tracked for their primary brand, Onyx Cookware, surged by a staggering 115% compared to the previous system. This upgrade in tracking methodology also facilitated the use of [Enhanced Conversions](https://stape.io/blog/ga4-and-google-ads-enhanced-conversions-tracking-setup-guide) across all countries. What is Server-side Tagging and What Problems Does it Solve? [Server-side tagging](https://stape.io/) is an advanced tracking methodology that shifts much of the data processing from the user's browser (client-side) to a server environment. This technology creates a dedicated, centralized server that collects, processes, and forwards the data from your website to third-party services like Google Analytics, [server side tracking for Google Ads](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords), [Facebook Conversions API](https://stape.io/blog/facebook-conversion-api-vs-facebook-pixel), [and other platforms that support server-side GTM](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). The traditional [client-side tagging](https://stape.io/blog/server-side-tagging-versus-client-side-tagging) approach has some limitations. Firstly, it relies heavily on the user's browser for data processing. This can lead to performance issues, especially if a large number of tags are being fired. Secondly, client-side tags are often blocked by browser-based privacy features, like Intelligent Tracking Prevention (ITP), and by [third-party adblockers](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers). This results in a significant underreporting of data. Additionally, client-side tagging via Universal Analytics isn't capable of capturing view-through conversions, which occur when a user sees an ad but doesn't interact with it immediately, instead converting at a later time (often 24 hours). This inability leads to an incomplete and sometimes distorted picture of the effectiveness of an ad campaign. Server-side tagging addresses these issues. By moving data processing to a server, it reduces the load on the user's browser, thus improving website performance. It also bypasses many of the limitations imposed by browser-based privacy features and adblockers, enabling more accurate tracking of user interactions and conversions. The Solution Implemented by Onyx Cookware In their quest to optimize advertising operations and gain a more accurate view of their campaign performance, Onyx Cookware chose to implement server-side tagging with the expertise of Obsidian Digital and the technological platform of [Stape](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server). ![Stape server GTM](https://cdn.stape.io/i/646b3b34b2d84939243851.png) The solution involved setting up a server-side [Google Tag Manager](https://stape.io/gtm-server-hosting) (GTM) container that would act as the centralized hub for all data collection, processing, and forwarding. This container was hosted on Stape, a platform designed for easy implementation and management of server-side tagging. The GTM container was configured to collect data from Onyx’ websites and then send it to various third-party services like Google Analytics and Google Ads. This setup allowed Onyx Cookware to continue using their existing analytics and advertising platforms, while gaining the benefits of server-side tagging. In addition to the basic setup, the solution also included the implementation of Enhanced Conversions. This feature of Google Ads uses first-party data (like hashed emails) to provide more accurate conversion tracking, especially in situations where cookies might not be available or reliable. By implementing Enhanced Conversions, Onyx Cookware was able to capture more conversion data and improve the accuracy of their conversion tracking. The implementation process was carried out meticulously, ensuring all aspects of the system were functioning correctly and that data integrity was maintained. With the new system in place, Onyx Cookware was prepared to harness the[benefits of server-side tagging](https://stape.io/blog/benefits-server-side-tagging) across all their brands and across all countries they operate in. The Outcome of Implementation The transformational shift to server-side tagging led to significant and tangible improvements for Onyx Cookware. The solution enabled the company to accurately track and measure the value generated by their Google Ads, a feat that was previously unattainable with the traditional tracking methods. The impact of this change was particularly notable for their primary brand, Onyx Cookware. The total conversion value tracked surged by an impressive 115% in comparison to the previous client-side tracking system. This surge can be attributed to the enhanced capabilities of server-side tagging, like the ability to capture view-through conversions and bypass browser-based privacy features and adblockers. This improved tracking accuracy gave Onyx Cookware a more comprehensive and realistic understanding of their ad campaigns' performance, which in turn allowed them to optimize their budget allocation and scale their advertising operations profitably. ![Alexander Daniel Pavlak](https://cdn.stape.io/i/646b3337d5ea0276395021.png) Google Ads Specialist [Alexander Daniel Pavlak](https://www.linkedin.com/in/alexanderpavlak/) noted, "The shift to server-side tagging has been a game-changer for Onyx Cookware. It has allowed us to gain a clearer picture of our ad performance and make data-driven decisions with much greater confidence. This has played a key role in scaling our advertising efforts and driving growth for the company." Conclusion In essence, the transition to server-side tagging has brought about a paradigm shift in how Onyx Cookware perceives and utilizes their ad campaign data, ultimately leading to more efficient and profitable marketing strategies. Would like a setup? We've got you covered! Click Get help, fill-up the form, and we will send you a quote. --- # How to easily add user agent and geo data to server Google Tag Manager Source: https://stape.io/blog/how-to-easily-add-user-agent-and-geo-data-to-server-gtm Discover how Stape's User Agent Info and GEO Headers enhance server-side tracking by providing valuable device and geographic data for your sGTM container. Stape offers many solutions and power-ups to simplify and improve server-side tagging possibilities. In this article, we want to discuss [Custom Loader](https://stape.io/solutions/custom-gtm-loader), [User Agent Info](https://stape.io/solutions/user-agent-info) and [GEO Headers](https://stape.io/solutions/geo-headers) power-ups. We'll explain how these power-ups work and can be used inside your server Google Tag Manager (sGTM) container. ![Custom Loader, User Agent Info, and GEO Headers power-ups from Stape](https://cdn.stape.io/i/69aaa87f16ac5205665673.png) Custom Loader, User Agent Info, and GEO Headers power-ups from Stape Custom Loader power-up explained Custom Loader's main function is to protect GTM and GA4 scripts from the impact of ad blockers and ITPs. However, and more importantly in the context of this article, it automatically adds geo parameters to your tracking data. This makes this power-up the most streamlined and straightforward way to enrich your requests with geo data. https://www.youtube.com/watch?v=bs4wkdYtfqo For more information, see our detailed [guide on configuring Custom Loader](https://stape.io/solutions/custom-gtm-loader). User Agent Info power-up explained User Agent Info power-up allows you to add information about the browser and device to incoming requests of your sGTM. You can easily extract data from headers and use it in any of your sGTM tags. When User Agent power-up is enabled inside your server, Google Tag Manager container, the following headers are added: X-Device-Mobile X-Device-Os X-Device-Browser X-Device-Browser-Version X-Device-Engine X-Device-Engine-Version X-Device-Model X-Device-Platform GEO Headers power-up explained When GEO header power-up is enabled, the following headers are added to sGTM requests: X-GEO-Country X-GEO-Country-Name X-GEO-Region X-GEO-City X-GEO-Ipaddress X-GEO-PostalCode This product includes GeoLite2 data created by MaxMind, available from [https://www.maxmind.com](https://www.maxmind.com) By activating the GEO Headers power-up, you gain valuable information about the location of your website visitors. With the help of this data, you can modify tag delivery based on the user's country, region, or city. For example, ask user consent based on the country where a user is located or build remarketing audience depending on their territory. Use case If you check Event Data on hits claimed by GA4 Client - the geo/user_agent data will not be mapped to Event Data. However, you can use sGTM native Request Header variables to reach those data points. Event Data is a layer populated by whichever Client (see sGTM → Clients) has claimed your request. Since GA4 Client is a proprietary, native tool - it does not map those custom headers into Event Data. However, you can check the presence of those headers by checking the Incoming HTTP Request in the Request tab of your sGTM preview. To utilize this data, you need to use the Request Header variable in your sGTM, which works exactly the way the Event Data variable does, only references different things. ![Request Header variable](https://cdn.stape.io/i/69aaba7239ad3764527730.png) Request Header variable ![Incoming HTTP request](https://cdn.stape.io/i/69aabab93bf71551589610.png) Incoming HTTP request Conclusion Custom Loader, User Agent Info, and GEO Headers power-ups help to quickly access device, browser, or geographical information from sGTM headers and use this data in server tags. If you have any questions about Custom Loader, User Agent Info, or GEO Headers power-ups, or any other issue, don't hesitate to contact [Stape support](https://stapehelp.zendesk.com/hc/en-us/requests/new). --- # Facebook server-side tracking setup options comparison Source: https://stape.io/blog/meta-conversions-api-gateway-versus-conversion-api Read this blog post and find out the main differences and benefits of Meta Conversions API Gateway and Conversions API with their use cases. Facebook server-side tracking, also known as Facebook Conversions API (CAPI) or Meta Conversions API, is a method that creates a direct connection between your website's server and Meta's systems. This helps to optimize ad targeting, reduce cost per action, and improve measurement accuracy. Traditionally, the Meta Pixel (formerly Facebook Pixel) has been the standard for client-side tracking. It was used to send conversion signals and track user activity through cookies and JavaScript on a website's browser. However, client-side tracking became compromised due to issues like ad blockers, browser privacy settings, and JavaScript errors, all of which can interfere with accurate data collection. With Facebook Conversions API (CAPI), conversion data is sent directly from your server to Facebook, bypassing these browser limitations. This method provides a more reliable and accurate form of conversion tracking. It means your data still gets sent even when users block cookies or use browsers with strict privacy settings (like Safari). By relying on server-side tracking, advertisers can ensure cleaner, more secure data and achieve better optimization of their ad campaigns, which leads to improved targeting and more effective measurement across all of Meta's platforms. Check our [Facebook tracking guide](https://stape.io/blog/facebook-tracking) for more tips on how to track Facebook conversions accurately. Facebook server-side tracking explained Facebook’s server-side tracking is a tracking method that helps you make sure your conversion events actually reach Meta. It still works when browsers block cookies or limit what data can be shared. Server-side tracking sends conversion data to a cloud server first, before it goes to Meta. This means the browser doesn’t send the data directly, which helps avoid missing or blocked events. And on the server, you can clean, enrich, or adjust the data before sending it on. You decide what to include, and when it’s ready, the server passes it to Meta through the Conversions API. That extra step gives you more control and helps Meta receive cleaner, more useful signals. You can implement this using the Facebook Conversions API through server GTM for full flexibility, or use Meta Conversions API Gateway by Stape for a faster, no-code setup. Why do you need Facebook server-side tracking With traditional pixel tracking, your website's conversion data is collected through cookies that are placed on the user's browser. However, this method can be limited by user privacy settings and ad-blockers, resulting in incomplete or inaccurate conversion tracking. If you use Facebook Ads to get more conversions, you’ll need a more stable way to track what’s working. Facebook Conversions API (CAPI) bypasses browser limitations by sending conversion data directly from your website's server to Facebook, allowing for more accurate and reliable conversion tracking. It also helps you stay compliant with privacy rules by giving you more control over what data is shared. Without CAPI, some key conversions may never be recorded, making your reporting and bidding less effective. Benefits of using Facebook Conversions API with server-side tracking Fewer lost events due to browser issues or ad blockers. More accurate reporting and better attribution. Improved performance of Meta’s automated bidding. Easier compliance with data privacy rules. Option to enrich events with server-side data (like order value or user ID). Ways of implementing Meta server-side tracking Meta Conversions API via server GTM Meta Conversions API Gateway and Conversions API are methods of sending data to Facebook servers known as server-side tracking. Using server-side tracking became widespread and sometimes mandatory because of the constant growth of tracking restrictions and data privacy regulations. By collecting and processing data on the server-side, it eliminates discrepancies caused by ad-blockers, client-side scripts, and other monitoring issues, resulting in more accurate data. Additionally, server-side tracking allows businesses to maintain user anonymity, protecting personally identifiable information (PII) and complying with privacy regulations such as GDPR and CCPA. By the way, check out Stape’s [pre-configured templates for Meta CAPI](https://stape.io/gtm-set-up-assistant). Now it is easier than ever to configure your setup: everything is done and all ready for you! Server-side tracking is becoming increasingly popular as businesses seek more advanced tracking capabilities and improved data privacy. However, ss tracking is more complex than client-side tracking, requiring technical expertise and access to server-side scripts. One of the most popular ways of implementing Meta Conversions API is using server Google Tag Manager (GTM). By using GTM's server-side capabilities, businesses can send [customer data](https://stape.io/blog/customer-data-analytics) directly to Facebook's server. Implementing Facebook Conversions API through sGTM simplify the set up process and make it more accessible to businesses that do not have the technical expertise to write custom code or use a third-party integration platform. Additionally, server GTM provides a centralized location to manage all marketing and analytics tags, making it easier to maintain and update tracking implementation over time. Another popular way of integrating Meta Conversions API is sending data directly from your backend to Meta servers. This option won't have any intermediary between FB and your website, but it requires more advanced technical skills. Advantages of setting up FB CAPI through sGTM: allows any kind of customization. ability to set up pure server-side tracking and web+server. possibility of data enrichment. Disadvantages of setting up FB CAPI through sGTM: requires technical knowledge of server Google Tag Manager. requires [cloud servers to run sGTM](https://stape.io/gtm-server-hosting). Meta Conversions API Gateway Meta Conversions API Gateway is a self-serve configuration option in Events Manager. It allows sending events to Meta pixel and Conversions API in an easy and redundant way. The configuration is straightforward, so hiring a specialist to set it up is unnecessary. When setting up Meta Conversions API Gateway, all you need to do is ensure FB pixel tracking works correctly. Once CAPI Gateway is connected to the Meta pixel, it automatically detects web events and sends related events to the server. Additionally, CAPIG offers the ability to enable advanced matching. It helps to store hashed data in 1st cookies and sends it to the Conversions API with your events. This feature can help you attribute more conversions and show your ads to people that find them relevant. ![Meta Conversions API Gateway advanced matching](https://cdn.stape.io/i/643e718be92d5355539872.png) Meta Conversions API Gateway advanced matching Besides that, you can optimize CAPI Gateway data routing by setting up a custom domain of your CAPIG server instance. Again, it can help to improve performance. ![Meta Conversions API Gateway data routing](https://cdn.stape.io/i/643e71b8abe37570993944.png) Meta Conversions API Gateway data routing But among the cons, we can outline that Meta CAPI Gateway is still a relatively new technology. Meta will bring new functionality and update the existing one, so it makes sense to prepare for some changes to its features. And another thing to mention is that you have to use server Google Tag Manager to manage server Google Analytics, Google Ads, etc. If you want something faster to set up and easier to manage, you can go with an [easier-to-set-up alternative using Gateway](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway). With Stape, you can set up Meta Conversions API Gateway in less than 1 minute and take advantage of our [7-day free trial](https://stape.io/fb-capi-gateway/create). Our pricing is simple as well: $10/month per pixel. $100/month for 100 pixels. Advantages of setting up FB CAPI using Conversions API Gateway: simple and fast way to set up CAPI. supports web+server integration. ability to set up Data routing to improve performance. Disadvantages of setting up FB CAPI using Conversions API Gateway: impossible to customise tracking. requires cloud servers. Difference between Meta Conversions API via server GTM and Conversions API Gateway With different technologies and [benefits of server-side tracking](https://stape.io/blog/benefits-server-side-tagging), Meta Conversions API and Conversions API Gateway both exist to send events from your server to the Facebook server. But only one can be right for you - so let's explore which is best in what situation. Meta Conversions API Gateway will fit those who: Looking for a fast and easy way to set up Meta s2s integration. Do not have spare money to spend hiring a dedicated person to set up s2s integration. Running only Facebook ads. Meta Conversions API will fit those who: Looking for more advanced integration. Interested in customizing events, or user parameters sent to FB servers. Maintain not only FB ads but other platforms. Stape hosting No matter what option of implementing Meta Conversions API you choose, Stape can provide reliable cloud servers for both [server Google Tag Manager](https://stape.io/gtm-server-hosting) and [Meta Conversions API Gateway](https://stape.io/fb-capi-gateway). We offer the most affordable prices and the fastest way of configuration on the market. If you choose to implement Facebook s2s tracking using sGTM, I suggest testing Stape Facebook CAPI Tag and following any of these guides on implementing FB CAPI: [How to set up Facebook Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api) [Facebook Conversions API through sGTM for WordPress](https://stape.io/blog/facebook-conversion-api-for-wordpress) [Facebook Conversions API through sGTM for Shopify](https://stape.io/blog/facebook-conversion-api-and-shopify)https://stape.io/blog/facebook-conversion-api-and-shopify The price for sGTM hosting depends on the number of requests your sGTM container generates. A request is any incoming request you send to the sGTM. It includes all script loads like gtm.js, analytics.js, gtag.js, etc. You can find more detailed information on [sGTM pricing here](https://stape.io/price), or use [pricing calculator](https://stape.io/price-server-google-tag-manager#calculator) to find the best plan for your website. And as for [Meta CAPI Gateway](https://stape.io/fb-capi-gateway) - we offer $10 per pixel per month or $100 for an unlimited number of pixels per month. Besides that, all users have a[7-day free trial](https://stape.io/fb-capi-gateway/create) for that. [Setup is simple enough](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway) to follow without coding or developer help. Meta Conversions API Gateway hosting by Stape https://www.youtube.com/watch?v=iWTYkFef3fk&ab_channel=Stape Join the thousands of satisfied customers who trust Stape hosting for their hosting needs and experience the difference for yourself! Best Facebook server-to-server tracking tools The right tools help you implement Facebook’s server-side tracking faster and more reliably. They reduce setup time, keep your tracking stable, and help you get more out of your ad spend. Here are the most popular tools marketers use to set up Facebook Conversions API: Stape Stape offers both a flexible setup through server GTM and a ready-to-use Meta Conversions API Gateway. If you’re setting up CAPI via server GTM, Stape has [ready-made Meta CAPI templates](https://stape.io/gtm-set-up-assistant) that simplify the entire process. The templates include all required tags and triggers for events like PageView, ViewContent, AddToCart, Purchase, and more. They’re preconfigured for event deduplication, include parameters like fbp and fbc, and let you send events from the website, from your server, or offline sources like phone sales. The setup also covers DNS routing, test events, and key integrations like GA4 and Google Ads. No-code option: Zapier Zapier can send server events to Facebook using simple workflows. It’s useful for small setups or when you don’t want to use GTM or write code. However, Zapier doesn’t support features like event deduplication, advanced parameters, or reliable delivery at scale. If you need more control over the data you send, [server-side tagging with Google Tag Manager](https://stape.io/gtm-server-hosting) is a better option. It lets you track custom events, set up your own tagging rules, and send data from different sources through your own domain, without relying on third-party automation tools. Key differences between the Facebook Pixel and the Conversions API The Facebook Pixel and the Conversions API both help track user actions like purchases, signups, or page views. But they collect and send data in very different ways. Facebook Pixel Facebook Pixel works in the browser. It uses cookies and JavaScript to track what users do on your site and sends that data to Meta. This setup is easy to install but can lose data due to browser privacy settings, iOS restrictions, or ad blockers. Conversions API CAPI sends the same events as the Pixel, but from your cloud server instead of the browser. It gives you more control over what data is sent, allows for data enrichment, and continues working even if the browser blocks the Pixel. Unlike the Pixel, which relies on browser cookies and scripts that can be blocked or deleted, [CAPI sends data through a server connection](https://stape.io/blog/facebook-conversion-api-vs-facebook-pixel). This makes tracking more consistent, especially on iOS devices or browsers with strict privacy settings. It also supports event deduplication and user matching, so you can add details like a hashed email or phone number to show Meta who took the action, even if they weren’t logged in. This helps track results more accurately and shows ads to the right people later. Conclusion In conclusion, it is clear that both Meta Conversions API Gateway and Conversions API have their merits for tracking customer data. However, it's essential to examine the difference between them to ensure the best choice of tool for your particular business needs. If you are still trying to decide which would fit your requirement, consider contacting [a qualified digital marketing team](https://help.stape.io/) for help. It's worthwhile to understand what options are available and select the best one. The right choice of tool can significantly reduce marketing research costs, optimize efforts, and increase customer engagement and loyalty – all essential components of a successful modern business. Start 7-day free trial The easy way to implement Meta Conversions API Gateway with no manual tagging. --- # Google Analytics 4 Advanced tag for sGTM Source: https://stape.io/blog/google-analytics-4-advanced-tag-for-server-gtm In this blog post, you will find out how to set up Google Analytics 4 Advanced tag for your server-side Google Tag Manager container and its use cases. As businesses seek to gain more insights into their website visitors and optimize their marketing efforts, advanced tracking capabilities have become increasingly important. Google Analytics 4 (GA4) offers more advanced tracking features than its predecessor, Universal Analytics, but setting it up can be challenging. However, with the GA4 Advanced tag for server Google Tag Manager (GTM), you can track and override advanced metrics and parameters that are not available in the default GA4 tag. In this blog post, we'll explore the GA4 Advanced tag for [server Google Analytics](https://stape.io/stape-gateway) and how it can help you gain deeper insights into your website visitors, improve tracking accuracy, and optimize your campaigns. We'll also discuss how to set up the GA4 Advanced tag in GTM Server Side and provide best practices for using it effectively. Why choose GA4 Advanced tag rather than GA4 Base Tag Choosing the [GA4 Advanced tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/ga4-advanced-tag) over the [setting up server-side GA4](https://stape.io/blog/set-up-ga4-server-side-tracking) with Base Tag can offer several advantages, especially for businesses that require extended tracking potential. The GA4 Advanced tag allows you to use more advanced metrics and parameters, including the ability to override all parameters (including _gcs and cid) and leverage Data Source settings to build requests to Google Analytics using eventData properties (is now in Beta). Additionally, the GA4 Advanced tag is compatible with Google Analytics 4 Measurement Protocol, which enables the collection of custom event data that can be used for advanced analysis and optimization. GA4 Advanced tag can be a powerful tool for businesses looking to take their tracking efforts to the next level. Benefits of GA4 Advanced tag Ability to override any user or event parameter. Works based on incoming GA4 requests or Event Data. Compatible with Google Analytics 4 Measurement Protocol GA4 advanced tag settings Measurement ID - If the event came from a GA4 web tag, you can leave this field blank to inherit the measurement ID of the event. Redact visitor IP address - Remove visitor IP address from the event. Reports based on the event will not include geographic information. Event Name - The event name to send to Google. See the [recommended events](https://developers.google.com/analytics/devguides/collection/ga4/events?client_type=gtag) for more information. If this field is blank, the value of the event_name parameter will be sent. Event Parameters: Default Parameters to Include - Specify which event parameters to send to Google by default. Do not send personally identifiable information (PII) to Google Analytics. See the [documentation](https://developers.google.com/analytics/devguides/collection/app-web/policy) for more details. The following parameters are excluded regardless of the selected option: first_name, last_name, email_address, phone_number, address Parameters to Exclude - Event parameters listed here will not be sent to Google. Parameters to Add / Edit - Event parameters listed here will be added to the event sent to Google. If the event parameter is already included, then the value will be replaced with the specified value. User Properties: Default Parameters to Include - Specify which user properties to send to Google by default. Parameters to Exclude - User properties listed here will not be sent to Google. Parameters to Add / Edit - User properties listed here will be added to the event sent to Google. If the user property is already included, then the value will be replaced with the specified value. Request Headers - specify Request Headers that should be sent. Data Source Settings: Incoming Request - select if you want advanced GA4 tag work based on incoming GA4 requests. Event Data (Beta) - select if you want advanced GA4 tag work based on event data. In this case, all request properties will be constructed from eventData. We have a list of parameters copied from [thyngster.com](https://www.thyngster.com/ga4-measurement-protocol-cheatsheet/), but for now, we don't have a mapping for all of these parameters, so you are welcome to open PR with improvements and fixes. Logs Settings - select if you want to use stape logs. How to use GA4 Advanced tag 1. [Set up a server Google Tag Manager container on Stape.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. [Download the GA4 Advanced tag from GitHub](https://github.com/stape-io/ga4-advanced-tag) or get it in the [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/ga4-advanced-tag). ![ga4 advanced tag for google tag manager server side](https://cdn.stape.io/i/643e5c5d5ad81832787775.png) 3. In your server container, on the left menu go to “Templates” and click “New”. ![choose a template in google tag manager](https://cdn.stape.io/i/66d052be03b32053167616.png) 4. On the right, click three dots and choose “Import”. Select the GA4 Advanced Tag that you just downloaded. ![chose google analytics 4 advanced tag in google tag manager](https://cdn.stape.io/i/66d052d770cfb166406361.png) 5. Click Save button. 6. In the tab “Fields” you will see all optional fields: ![fields for advanced ga4 tag](https://cdn.stape.io/i/643e5cba16c92375677417.png) 7. On the left menu, go to “Overview” and click “New tag”. In “Tag configuration” choose GA4 Advanced. ![ga4 advanced tag in google tag manager](https://cdn.stape.io/i/643e5ced1a9c9159672883.png) 8. Set up GA4 Advanced tag based on your requirements. 9. Don’t forget to add the triggers. If you select Incoming Request as a Data Source ensure to use GA4 requests in the trigger. When selected Event data any type of trigger can be used. ![triggers for google analytics 4 advanced tag in google tag manager](https://cdn.stape.io/i/66d052f616b01800818131.png) Conclusion GA4 Advanced tag can be a powerful tool for gaining insights into your website visitors and optimizing your campaigns. It's easy to set up in GTM Server Side and with our best practices, you'll be using it like a pro in no time. With all its great benefits, there are no reasons not to give the GA4 Advanced tag a try. If you have any trouble getting the tag set up or need help understanding exactly how to use it, don't hesitate to contact [Stape support](https://help.stape.io/). Would like a setup? We've got you covered! Click Get assistance, fill-up the form, and we will send you a quote. --- # Google Tag Manager server-side container: client, request, transformation, tag, trigger, variable, event data, etc. Source: https://stape.io/blog/what-are-clients-requests-transformations-tags-triggers-variables-server-gtm Explore the basics of server-side tagging using sGTM. Get an understanding of all the components needed for successful sGTM implementation. Tracking and analytics are crucial in digital marketing, providing valuable insights into user behavior and website performance. Google Tag Manager (GTM) is a powerful tool that simplifies the tracking implementation and management process. Most analytics and marketing specialists got used to utilizing the web Google Tag Manager container, which allows managing tracking pixels without inserting them directly into the website code, making tracking setup easier. Because the world of web analytics changes rapidly due to tracking restrictions and new ways of delivering data, most web analytics started transitioning from using web GTM to server Google Tag Manager or combining both. In this article, we want to dive more into the basics of server-side tagging using server Google Tag Manager. We will explore the fundamental components of server GTM. What is server Google Tag Manager Server-side tracking using server Google Tag Manager differs from web tracking that uses web GTM mainly because a new intermediary is added - a cloud server. The main goal of the cloud server is to host or run your server Google Tag Manager container. When you send data to sGTM, it first gets to the cloud server, and then this cloud server, with the help of sGTM settings, delivers data to third-party tracking tools. You can use either web Google Tag Manager, CRM, WebHooks or set up direct requests from your server to deliver data to sGTM. Whatever you choose, delivering data to sGTM is based on incoming HTTP requests. Depending on what type of data delivery to sGTM you choose, tracking can be: Pure server-side. It’s when you send data from any server (CRM, webhooks, or your servers) to sGTM. A mix of web and server-side tracking is when you use web GTM to deliver data to sGTM. One popular way to deliver data from the web to sGTM is using Google Analytics 4 or Data tag. Server-side Google Tag Manager (sGTM) differs from web GTM in operation, privacy, performance, and complexity. Characteristic | Google Tag Manager | Server Google Tag Manager Operation | in the user's browser | server-side Privacy | more exposed | better privacy and security Performance | may slow down the website | reduces browser workload Complexity | easier to set up and use | more complex From the structure point of view, the big difference between web and server GTM is that sGTM has two new elements: Client and Transformations. We’ll talk about them further in the article. The Building Blocks of server GTM - Clients, Requests, Transformation, Tags, Triggers, Variables, Event Data, etc. Before diving into setting server GTM containers up, it's essential to understand the building blocks within. At first, the interface of sGTM looks very similar to the web one, and you might notice common elements. But the difference between these two is vast, not only because sGTM has a few new elements but also because of the logic of how sGTM operators. Data can be delivered to sGTM as an incoming HTTP request (1). When a Client (2) claims an incoming HTTP request, data within the HTTP requests are processed and categorized into the event data that tags, triggers, and variables can use. There is a possibility to use transformation before any data in sGTM gets tagged. Transformation is an intermediary between clients and tags. It can be used to exclude or include any parameters before a tag can access it. Once a tag is triggered, it sends an outgoing HTTP request (3) to a particular vendor. ![server google tag manager explained](https://cdn.stape.io/i/64ad116fe05d0868916711.png) Request There are two types of requests in server Google Tag Manager: incoming HTTP requests to receive information. outgoing HTTP requests to distribute information from sGTM containers to corresponding platforms. Client A Client's function is to listen for incoming HTTP requests, convert requests into event data, and respond to the requests. Once the Client processes the request, it makes data inside the request usable for tags and triggers of the server Google Tag Manager container. Clients operate based on their Priority. One client can claim a request, but multiple clients can try to claim the same request. The priority determines which client to claim the request. Clients with a higher priority would be activated for the request. There are only 5 default clients available in sGTM, and unfortunately, there is no possibility to add clients from the sGTM template gallery. ![default clients in server google tag manager](https://cdn.stape.io/i/64ad11cf7b9c8271922905.png) Transformations Transformations act as an intermediary source between a client and a tag and allow adding or removing event data before the tag can access it. ![transformations in server google tag manager](https://cdn.stape.io/i/64ad11f752256422813821.png) Tags The tag's purpose is to take this event data object, map it to the correct format, and then dispatch it to the servers of the network they designed to deliver data. For example, the Google Analytics tag delivers data to Analytics servers, the Facebook tag to Facebook, etc. There are several default tags in sGTM; many server tags are also available in the sGTM template gallery. You can also find Stape's complete list of tags here: [https://stape.io/solutions/tag/sgtm-tags](https://stape.io/solutions/category/server-gtm-tags). Triggers Triggers determine when and how tags are fired. They define the conditions that must be met for a particular tag to execute. Setting up triggers ensures that the proper tags are activated at the right time, capturing the desired user interactions. Variables Variables are used to parse incoming HTTP requests and get specific data from the request for tags, triggers, and clients. Event data After the client parses the incoming HTTP requests, it structures information into the Event Data that variables can use. The event data concept is similar to the Data Layer in the web Google Tag Manager. ![event data in server google tag manager](https://cdn.stape.io/i/64ad1239a1bd1698428375.png) Preview mode Preview Mode helps you test and troubleshoot your setup before publishing. It lets you see which tags are being fired, their order, and the data they're sending - all in real time. It helps ensure your tags are working as intended before they go live. Debug Mode provides additional details about each request and response, allowing you to check data and tag configurations for potential issues. Conclusion In conclusion, understanding the vocabulary associated with Google Tag Manager is essential for effective tracking and analytics in digital marketing. By comprehending the roles of clients, requests, transformations, tags, triggers, variables, event data, etc., you can harness the power of sGTM to gather valuable data, optimize marketing efforts, and improve user experiences. Explore the capabilities of Google Tag Manager to unlock a world of tracking possibilities and empower data-driven decision-making. If you’re confused, we will save you from the headache. Don’t hesitate to contact us! Thanks for reading. Need help setting up server-side tracking? We've got you covered! Click Get assistance, fill-up the form, and we will send you a quote. --- # Facebook Conversions API for WordPress sites Source: https://stape.io/blog/facebook-conversion-api-for-wordpress Learn how to quickly and easily set up Conversions API for Facebook for WordPress sites using Stape Conversion Tracking plugin. If you run a WordPress site and advertise on Facebook or Instagram, you’ve probably seen data loss from browser restrictions or tracking blockers. That means Meta can’t always tell which campaigns actually drive sales or signups. Meta Conversions API (CAPI) is a solution for that and it works best when you set it up server-side. This guide shows how to install Meta CAPI on your WordPress site using server Google Tag Manager (sGTM) and Stape Conversion Tracking plugin. You’ll learn how to collect more accurate event data, improve ad performance, and stay compliant with privacy rules without relying on cookies or pixels alone. Why use Meta Conversions API on your WordPress site If you run Meta ads and use Pixel to measure results, you probably already see incomplete data. That’s because browser-based tracking can’t do the job right anymore. Browsers like Chrome, Safari, and Firefox limit cookies and use ad blockers to protect user privacy. Privacy updates like those in iOS 14 also keep a big part of user behaviors untracked. Basically, you risk paying for clicks or conversions Meta doesn’t see: someone clicks your ad and takes action on your site, but that action isn’t reported back to Meta because of the new browser features, so it looks like nothing happened. To address this, Facebook launched the Conversions API. This technology brings back data accuracy by bypassing all new browser blockers and sending users’ data from a cloud server rather than from the user's browser. Unlike browser tracking, server-side tracking can include events that happen after the page loads or across sessions, and is not affected by user device settings. This is how Meta Conversions API will help your business: With more accurate data, you will get better optimization. Meta uses conversion data to decide who to show your ads to. If the data is incomplete, Meta can't learn properly. CAPI gives the algorithm more information to work with. You’ll get better attribution. If someone clicks your ad but converts hours later or on another device, that second visit might look like a new, unrelated user, not someone who came from your ad if you use browser tracking. Meanwhile, with server tracking because the data is sent from a cloud server and includes things like user IDs and email hashes, CAPI helps Meta connect the dots. It knows the person who made the purchase is the same one who clicked the ad, even if they came back hours later or on a different device. It helps with privacy. You control what data is shared and don’t have to rely fully on third-party cookies, which makes it easier to comply with current and future privacy rules. How to set up Meta Conversions API for WordPress Setting up Meta CAPI for WordPress https://www.youtube.com/watch?v=jtR9bwfUt8A&ab_channel=Stape The most reliable way to track data for Facebook Ads from your WordPress site is to combine client-side tracking via GTM and server-side tracking via sGTM. This approach ensures better tracking accuracy. 1. Set up a server Google Tag Manager container and host it on Stape. 1. Go to [https://tagmanager.google.com/](https://tagmanager.google.com/)and log in to your Google Tag Manager account. Click on the "Admin" button, and under the "Containers" column, click the "+ Create Container" button. ![Create container](https://cdn.stape.io/i/6834754fb0582678721561.gif) 2. Choose a name for your server container, select "server" as the type of container, and click the "Create" button. ![Create server container in GTM](https://cdn.stape.io/i/6422b170bd78a678330693.png) 3. Select the option to "Manually provision tagging server," and copy the container configuration that appears. Save this configuration in a text editor as you will need it later. ![Manually provision tagging server](https://cdn.stape.io/i/6422b18ea0a9a618486721.png) 4. Log in to your account on [our service](https://stape.io/) or create a new account if you haven't already. 5. Once you're logged in, click on the "Create Container" button. Give your container a name, paste the Container Configuration that you copied from your Google Tag Manager Server Container, and select the server location. Click "Create Container." ![Create container at Stape](https://cdn.stape.io/i/6422b1ae8c228502602688.png) 6. Wait for around 5 minutes for the server container to deploy. Refresh the page to update the status. If the setup was done correctly, you should see the status "Running." If you see "Error," double-check that you've copied the correct container configuration. Contact support if the error persists. 7. In this step, you need to set up a tagging URL. You have two options: You can choose to use the tagging URL that was created for you and is hosted on our domain (stape.io) ![Stape domain](https://cdn.stape.io/i/683478ccb3f76157894314.png) Or use a custom domain. we highly recommend using this option because it will help to prevent tracking from being blocked and increase cookie lifetime. ![Custom domain](https://cdn.stape.io/i/683478f9b6add298484944.png) If you choose to go with the first option, move to step 9. If you want to configure a custom tagging URL, click “Add domain” under the Stape-provided tagging URL. Then, log in to your domain registrar (like GoDaddy, Namecheap, etc.) and create a new CNAME record for the subdomain you want to use. You can choose any subdomain (e.g., ss.yourdomain.com). Use the following settings: Type: CNAME Name: ss (or any other subdomain you want) Target: ghs.stape.io TTL: Auto Proxy status: Disable (make sure it’s DNS only if you’re using Cloudflare) Your CNAME record should look like this: Type: CNAME Name: ss Target: ghs.stape.io TTL: Auto Proxy: DNS only Once the CNAME is saved and propagated, you can return to your Stape dashboard and finish the domain verification. ![Example of DNS record](https://cdn.stape.io/i/6834798f4f22f069262539.png) 9. You can enable the Global CDN feature for the server container, which uses Cloudflare technology to load JavaScript files from a server closer to your site visitors. This can improve page speed and reduce latency. : Consider your country's privacy regulations before enabling this feature. After enabling Global CDN, add a CNAME as instructed in your Stape account to complete the setup. 10. Add the tagging server URL to the Google Tag Manager Server container by going to "Admin," then "Settings," and selecting "Container Settings.” 2. Configure Stape Conversion Tracking plugin for WordPress 1. Log into your WordPress Admin, and go to the plugins. Then, click Add New, type Stape Conversion Tracking, choose [this plugin](https://wordpress.org/plugins/gtm-server-side/), and click Install now. Once established, click Activate. ![Stape Conversion Tracking plugin](https://cdn.stape.io/i/68ef8c5dcdad4429731647.png) 2. Open the Stape Conversion Tracking plugin you installed in the first step and configure it. General tab: Same-origin proxy. Normally the GTM web loader is served from the customer's Stape subdomain (for instance, xxxx.stape.io). With same-origin on, that same loader is served from Stape but routed through the customer's own WordPress site. To the browser, it looks first-party, helping the loader work reliably in Safari and pass ad blockers. Note: it's still Stape's loader and Stape's container doing the work; WordPress is just the pass-through that makes it first-party. Setup with Same-origin proxy enabled Web Google Tag Manager ID - be sure to add your web GTM container’s ID. Read [how to find the web GTM container ID](https://stape.io/helpdesk/knowledgebase/how-to-find-web-google-tag-manager-gtm-id). Proxy path - enter a proxy path for requests, such as /gtm. Once you save the setup, click Test connection to confirm the path responds. Container API key - enter your container API key, located in your Stape account container settings. Read [how to find the container API key](https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key). Add web GTM script onto every page of your website - select this if you want to add web GTM to all site pages. Make sure you are not using any other plugins that insert GTM script on the site to avoid conflicts or event duplication. Load GTM with consent - select this and GTM will wait for information about the user’s marketing consent before tracking any data. Exclude GTM for user roles - select user roles whose activities will not be tracked by GTM. Disable - select this to only add plugin functionality without adding GTM script (for example, if you are using another plugin that inserts GTM script on the site). ![Setup with Same-origin proxy enabled](https://cdn.stape.io/i/6a50ca0277d2b842584277.png) Setup with Same-origin proxy disabled Add web GTM script onto every page of your website - select this if you want to add web GTM to all site pages. Make sure you are not using any other plugins that insert GTM script on the site to avoid conflicts or event duplication. Load GTM with consent - select this and GTM will wait for information about the user’s marketing consent before tracking any data. Exclude GTM for user roles - select user roles whose activities will not be tracked by GTM. Disable - select this to only add plugin functionality without adding GTM script (for example, if you are using another plugin that inserts GTM script on the site). Web Google Tag Manager ID - be sure to add your web GTM container’s ID. Read [how to find the web GTM container ID](https://stape.io/helpdesk/knowledgebase/how-to-find-web-google-tag-manager-gtm-id). Server GTM container URL - enter your tagging server URL. If you are using Stape’s sGTM hosting, read [how to find your sGTM container URL on Stape](https://stape.io/helpdesk/knowledgebase/how-to-find-server-container-url-for-sgtm-container). Otherwise, it can be found in your [server GTM container’s settings](https://developers.google.com/tag-platform/tag-manager/server-side/app-engine-setup#4_add_the_server_url_to_google_tag_manager). Stape container identifier - enter the [Stape container identifier](https://stape.io/helpdesk/knowledgebase/how-to-find-the-stape-container-identifier) if you want to use a [Custom Loader](https://stape.io/solutions/custom-gtm-loader) (highly recommended to improve the accuracy of conversion tracking). Cookie Keeper - select this if you wish to enable [Cookie Keeper](https://stape.io/helpdesk/documentation/cookie-keeper-power-up) and prolong cookie lifetime. ![Setup with Same-origin proxy disabled](https://cdn.stape.io/i/6a50ca49cd6b2485090165.png) Data Layer tab: Add ecommerce Data Layer events - add basic ecommerce events and their data for shops built with Woocommerce. Add user data to Data Layer events - add data with personal details of authorised users to Data Layer events. Decorate dataLayer event name - add _stape to Data Layer event names. Advanced Data Layer settings - fine-tune your Data Layer event values. ![Data Layer tab](https://cdn.stape.io/i/6a50ca720f9c9924521812.png) Webhooks tab: Send webhooks to server GTM container - enable sending webhooks to your server GTM container. Be sure you understand [what webhooks are and how to use them](https://stape.io/blog/webhook-server). Server GTM container URL - enter the URL of the server container where webhooks will be sent. If you are using Stape’s sGTM hosting, follow [this guide to locate it](https://stape.io/helpdesk/knowledgebase/how-to-find-server-container-url-for-sgtm-container). Otherwise, it can be found in your [server GTM container’s settings](https://developers.google.com/tag-platform/tag-manager/server-side/app-engine-setup#4_add_the_server_url_to_google_tag_manager). Purchase webhook - send a purchase event when a new order is created. Order paid webhook - processing - send an order_paid event when an order is paid. Order paid webhook - completed - send an order_completed event when an order is completed. Refund webhook - send a refund event when an order is refunded. Send test webhook - troubleshoot your webhook setup by sending a test webhook. ![Webhooks tab](https://cdn.stape.io/i/6a50ca720456a006857619.png) Customer Match tab: Container API Key - enter your container API key, located in your Stape account container settings. Read [how to find the container API key](https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key). Google Ads Operating customer ID - enter the destination account ID for Customer Match upload. Read [how to find your operating customer ID](https://stape.io/helpdesk/knowledgebase/how-to-find-customer-id-operating-customer-id#how-to-find-the-operating-customer-id). Google Ads customer ID - enter your Google Ads account ID (NOT the operating one). Read [how to find your customer ID](https://stape.io/helpdesk/knowledgebase/how-to-find-customer-id-operating-customer-id#how-to-find-the-customer-id). User data - select which user data to share with Google Ads’ Customer Match functionality. Consent - select one of the options if you wish to define the consent status of the user data. Backfill - select to update existing contacts using the settings above, or leave blank to synchronize only new contacts. ![Customer Match tab](https://cdn.stape.io/i/6a50ca720ecbf752012699.png) 3. Set up Meta CAPI via server GTM using Data tag/Data Client The most reliable way to implement Meta Conversions API for your WordPress website is by combining Data tag in web GTM with a Data Client in server GTM. This lets you track events on both the browser and server side and use event_id for deduplication.This setup lets you track events both in the browser and on the server side, and use event_id for deduplication. 1. Web container: send event data to the server and Meta Create a [Data tag](https://stape.io/solutions/data-tag-client) to send event details like event_name, value, currency, item_id, and event_id to your server GTM container. This tag should send event details like event_name, value, currency, item_id, and event_id to your server GTM container. ✅ Important: in the tag’s settings, enter the GTM server-side URL. This is the custom subdomain you verified on Stape, such as: https://ss.yourdomain.com This URL sends event data from your web container to the server container. Set up a Meta web tag to send the same event details (including event_id) directly to Meta from the browser. Use variables to fetch each parameter from the Data Layer in both tags. Make sure both the Data tag and the Facebook web tag have the same event_id and are triggered by the same custom event (for example, add_to_cart or purchase). This allows Meta to deduplicate events between the browser and server, ensuring accurate reporting. Set up a custom event trigger for each event you want to track, and assign this trigger to both the Data tag and the Facebook web tag. 2. Server container: receive events and send to Facebook - Install the Data Client in your server GTM container (from the Template Gallery). - Create a trigger for the Data Client. The trigger name and event should match the custom event name used for the Data tag in your web container (for example, add_to_cart, purchase, etc.). - Create a Meta Conversions API tag using: Event Name (use the same name as in your web container, e.g., AddToCart); API Access Token, Pixel ID, Test ID; Event data variables (set up in server GTM using type: "Event Data"); event_id from the incoming Data tag (to support deduplication). - Attach this tag to the Data Client trigger. Verifying the setup is complete and correct - Open both the web and server GTM preview modes. - Trigger your test events (for example, add to cart) and check that all tags fire correctly: The Data tag fires in the web container. The Facebook (Meta) web tag fires in the web container. The Data Client receives the request in the server container. The Meta Conversions API tag fires in the server container, using the right parameters and event_id. - Use the Meta Events Manager testing tool to confirm that both browser and server events are received correctly and that deduplication works as expected. ![Events manager testing tool](https://cdn.stape.io/i/6835748eaabdd184003036.png) You can test this event inside the Meta testing tool as well. ![Facebook testing tool](https://cdn.stape.io/i/64254b88b64cd916222315.png) Facebook Conversion API for WordPress: real Stape users' problems solved In this [thread](https://community.stape.io/t/facebook-conversion-api-user-data/49), a WordPress user setting up the Facebook Conversion API for WordPress noticed warnings about missing user_data when sending events through server-side tracking. The issue wasn’t a real error - Meta was simply encouraging more user data to be sent, and yellow warnings don’t affect optimization. The setup was already better than using the Pixel alone, and the warning disappeared after moving the Facebook Pixel into GTM to properly deduplicate events and align web and server-side data. Wrapping up Setting up Meta Conversions API on WordPress with server GTM may sound technical, but it’s one of the most reliable ways to improve how your Meta ads perform. With a precise server-side setup, your data stays accurate even when browsers limit tracking, helping Meta match conversions more reliably and show your ads to people who are more likely to convert. You’ll need a verified subdomain, the Stape plugin configured on WordPress, and specific tags, triggers, and variables set up in both your web and server containers in GTM. When everything is done, you’ll be able to improve attribution and run campaigns based on what’s actually working. --- # Server-side Google Analytics 4 for WordPress Source: https://stape.io/blog/server-side-google-analytics-4-for-wordpress In this guide, find out how to set up server-side Google Analytics 4 for WordPress using Conversion Tracking plugin by Stape. With valuable insights into how customers interact with your site, you can track user trends, optimize responses to provide better customer experiences, and ultimately gain a competitive advantage in the ever-evolving digital landscape. With all of this in mind, using server-side Google Analytics 4 for WordPress has become increasingly popular due to its accuracy and ease-of-use. This blog post will explore the advantages and setup of server-side Google Analytics 4 for WordPress sites with a [Stape Conversion Tracking plugin](https://stape.io/blog/wordpress-server-side-tracking) and help identify ways it can benefit your clients' marketing efforts. Let's take a look at why you should seriously consider implementing server-side Google Analytics 4 into each WordPress site you manage! Advantages to using server-side Google Analytics 4 More Accurate Data Collection The main benefit of [server-side Google Analytics 4](https://stape.io/stape-gateway) implementation over the client-side is that ss GA4 configured using [sGTM using a custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) sets 1st party cookies. WebKit browsers (Safari, Firefox, etc.) limit 3rd party cookies lifetime to 1 or 7 days. Client-side GA4 implementation sets 3rd party cookies. It means that if a users view your website from any browser built on the WebKit, client-side GA4 cookies will live 7 days maximum. Conversely, with ssGA4 and sGTM using a custom domain, cookies will be set from the subdomain located within the main domain and considered 1st party. 1st party cookies are not affected by WebKit yet and will live up to two years. However, there are some plans to [limit the life of 1st party cookies set from the third-party IPs](https://stape.io/blog/safari-itp). Increased Data Privacy and Security Server-side provides an additional layer of privacy and security for sensitive information. This can be particularly important for organizations that collect personally identifiable information (PII) or financial data. By processing data on the server, businesses can reduce the risk of exposing sensitive data to potential security threats, ensuring that data is collected and processed in a more secure and protected manner. Compliance with Regulations Сomply with data protection regulations, such as the General Data Protection Regulation (GDPR) and the California Consumer Privacy Act (CCPA). Ensure that you are collecting and processing data in compliance with applicable regulations. In the summer of 2022, several European countries (France, Denmark, Italy, etc.) concluded that using Google Analytics 4 is illegal since it transfers the personal data of EU users to the US. One of the solutions for the legal use of GA4 in these countries is server-side [GA4 which uses a European proxy server](https://stape.io/blog/eu-owned-proxy-server-or-how-to-use-google-analytics-gdpr-compliant-way). How to set up server-side GA4 Setting up server-side Google Analytics 4 for Wordpress https://www.youtube.com/watch?v=W1fwzAtpsqY&t=9s&ab_channel=Stape Conclusion In conclusion, anyone can gain valuable insight into their customers' site interactions and use this to optimize the customer experience and gain a competitive advantage. [Stape Conversion Tracking plugin](https://stape.io/blog/wordpress-server-side-tracking) for WordPress has made it much easier and more accurate than other methods of tracking user data. If you have any questions left or just want some help with the setup of Google Analytics 4 for WordPress, do not hesitate to contact the [Stape support team](https://help.stape.io/). --- # How to set up Facebook Сonversions API for Shopify Source: https://stape.io/blog/facebook-conversion-api-and-shopify In this guide find out how to set up Facebook Conversions API for Shopify using Stape's Conversion Tracking app for Shopify. Tracking performance in Shopify becomes more difficult every year because of user privacy protections from browsers and ad blockers. Many store owners see gaps in their data, missed conversions, and low ad efficiency, even when campaigns seem to perform well according to analytics. In this article, we cover how to avoid these issues, explain why Meta Conversions API (CAPI) matters in 2025, and provide a step-by-step setup summary. Simplify Shopify tracking setup. [Stape Conversion Tracking with Setup Assistant](https://stape.io/solutions/shopify-app-and-setup-assistant?cta=blog_article) sets up server-side GTM in minutes, auto-creates eCommerce events, and loads tags for Google, Meta, TikTok, and more. By sending events through Stape’s server-side tracking platform, you capture more conversions and improve ROAS. Key benefits of implementing Meta CAPI for Shopify: Boost ad performance: businesses have reported up to a 30% improvement in Return on Ad Spend (ROAS) after integrating the Meta CAPI. Improve event match quality: CAPI sends first-party data (like email or phone) directly from your server, helping Meta better identify users and optimize ads to bring you better results. Recover lost conversions: server-side tracking captures events that browser tracking misses due to ad blockers and privacy restrictions. Simplify setup: Stape's Conversion Tracking app for Shopify makes it easier to connect Meta CAPI without needing advanced tech skills. How to set up Meta CAPI: Get started: create a server-side GTM container and install the Conversion Tracking app for Shopify. Connect Meta: add the Meta CAPI tag inside your server GTM container. Set the rules: add a trigger to tell the tag when it should send data. Test everything: use the GTM debugger or Facebook’s test tools to make sure your setup works correctly. 💡Note: There are other ways to set up Facebook CAPI for Shopify, such as using native Shopify pixel integrations. However, these rely on fixed data flows, offer less flexibility, and don’t give you full control over what data is sent or when. In contrast, server-side tracking with GTM and Stape provides more transparency, better accuracy, and the ability to track exactly what you need, when and how you need it. Let's dive in! Set up the Facebook Conversions API for Shopify 1. [Set up a server Google Tag Manager container on Stape.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. [Add and configure Stape's Conversion Tracking app for Shopify](https://stape.io/blog/server-side-tagging-for-shopify#features-of-stape-server-gtm-app-for-shopify) Here’s a step-by-step guide about [Server-side tagging for Shopify](https://stape.io/blog/server-side-tagging-for-shopify), where you can find more information about the implementation. 3. Send data to the server Google Tag Manager container. There are three most popular ways to do that: [With Google Analytics 4](https://stape.io/blog/server-side-google-analytics-for-shopify). For more information on how to send data using GA4, check [this article](https://stape.io/blog/server-side-google-analytics-for-shopify#server-side-google-analytics-4-for-shopify). [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 4. Configure Facebook CAPI inside server Google Tag Manager. Facebook tags by Stape have two behaviors: Inherit from the client and Override. If you select the inherit option, the FB CAPI tag will listen to the event data and try to parse and map all data it can identify and send to the meta. If you select override, then you must manually specify all the parameters. Below are examples of configuring FB CAPI for each of these tag behaviors. - Inherit from GA4 client: We will automatically convert your GA4 events into corresponding Facebook standard events. I. Add a [Facebook Conversion API Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) to your server GTM container by clicking Add to Workspace. ![Facebook Conversion API Tag](https://cdn.stape.io/i/666ac190b2459819618297.png) II. Create a new tag and select the tag type Facebook Conversion API Tag. Select Inherit from client and add: [FB API Access Token](https://developers.facebook.com/docs/marketing-api/conversions-api/get-started#access-token) [FB Pixel ID](https://www.facebook.com/business/help/171689010314963) [Test ID](https://www.facebook.com/business/help/ServerTestEventsTool) ![Facebook Conversion API Tag](https://cdn.stape.io/i/666ac1e011944244729389.png) III. Add a trigger. Click triggers → + in the top right corner → trigger settings and select a custom trigger → this trigger will fire on Some Events → Client Name equals GA4. Click Save. ![Client Name equals GA4](https://cdn.stape.io/i/666ac1f565990836907829.png) - Override: I. You’ll need to set up FB events manually. Use GA4 events to trigger Facebook server events. Example: an “add_to_cart” event and send value, currency and item_id parameters. II. In your server container add Meta API tag from the template gallery. Select override in Event Name Setup Method and the event type AddToCart. Fill in your: [FB API Access Token](https://developers.facebook.com/docs/marketing-api/conversions-api/get-started#access-token) [FB Pixel ID](https://www.facebook.com/business/help/171689010314963) [Test ID](https://www.facebook.com/business/help/ServerTestEventsTool) ![Set up FB events manually](https://cdn.stape.io/i/666ac2697c0ca451254062.png) III. Fill in the custom data that we decided to pass to Facebook. For these parameters, we will also need to make variables, but now in a server container with the type of variable “event data”. ![Fill in the custom data that we decided to pass to Facebook](https://cdn.stape.io/i/666ac27d08edd913835392.png) The trigger should fire when the event name is add_to_cart and the client name equals GA4. Click Save. ![Custom event is triggered with the event name add_to_cart that triggers on the client name equals GA4](https://cdn.stape.io/i/666ac29453a28937900906.png) Verifying the setup is complete and correct 1. Open the web and server GTM containers debugger and click through your site. In the server GTM container, you should see events fired by the Facebook Conversions API tag. ![Facebook: verifying the setup is complete and correct](https://cdn.stape.io/i/666ac2b73c0f7545614193.png) 2. You can test this event inside the Facebook testing tool as well. ![Facebook: verifying the setup is complete and correct](https://cdn.stape.io/i/666ac2d257eee125956121.png) Once your Meta CAPI setup is live, don't skip verification. Shopify's sandboxed checkout means tags can appear to work in GTM preview while failing silently in production – causing missed or duplicate events in Meta. For a step-by-step validation process, read: [Debugging Shopify tracking with web and server GTM: a complete guide](https://stape.io/blog/shopify-tracking-debugging-guide). Facebook Conversions API for Shopify: real Stape users' problems solved 1. In this [thread](https://community.stape.io/t/facebook-conversion-api-purchase-event-for-shopify/170), a user setting up the Facebook Conversions API for Shopify couldn’t get their purchase event to trigger, even after adding custom code to the checkout page. In the full thread, the issue was traced to an incorrect trigger in Google Tag Manager—the user had set it to fire on “gtm.js” instead of “purchase.” After switching the trigger to the correct event name, the purchase event fired properly and the Facebook Conversions API for Shopify setup worked as intended. 2. A Shopify store using Facebook Conversion API for Shopify via Stape faced failed purchase events in server-side GTM and no test events showing in Meta. The [issue](https://community.stape.io/t/purchase-event-tag-fired-but-firing-status-failed/2596) was not Stape itself, but an incomplete setup: events were reaching the server, but Facebook wasn’t receiving browser-side data. The fix was to use hybrid tracking — set up both the Facebook Pixel in the web GTM container and the Facebook CAPI tag in the server container. Facebook then automatically deduplicates events, server-side errors disappeared, and events showed correctly in Meta Event Manager. Final thoughts Overall, Shopify users have various options when it comes to integrating Facebook’s conversion API. We’ve discussed each possibility thoroughly and explored how to deploy the Facebook conversion API for Shopify using the [Stape Conversion Tracking app](https://apps.shopify.com/server-gtm). Take the time to review your business needs and use cases before determining which integration is best for you. Then, whether you choose a manual solution or rely on automation, implementing the Meta Conversions API will give your company additional insights into customer behaviors, help optimize campaigns, and deliver more engaging experiences for your customers. To get started quickly and achieve the best results, we recommend trying the [Conversion Tracking app](https://apps.shopify.com/server-gtm), which provides an easy-to-use implementation option. Switching to server-side? Click Try for free and check all the solutions and benefits of Stape at no cost! --- # Server-side Google Analytics 4 for Shopify Source: https://stape.io/blog/server-side-google-analytics-for-shopify Set up server-side Google Analytics 4 (GA4) for Shopify using the Stape Conversion Tracking app. Improve data accuracy, enhance user privacy, and optimize tracking. Google Analytics 4 (GA4) became the most popular web analytics tool after Universal Analytics was switched off in the summer of 2023 for most users. So if you had planned on implementing GA4 on your Shopify store, setting up [server-side Google Analytics 4](https://stape.io/stape-gateway) might be an excellent choice since server-side tracking is more adapted to modern tracking restrictions. Server-side Google Analytics 4 will help trace user behavior more accurately and, in turn, make better decisions geared toward improved customer experience and eCommerce success. To understand which metrics matter most for your store, check out our guide on [eCommerce KPIs](https://stape.io/blog/ecommerce-kpis). This blog post will walk you through setting up server-side Google Analytics 4 using the [Stape's Conversion Tracking app](https://apps.shopify.com/server-gtm). Understanding the benefits of using server-side Google Analytics 4 The difference between new and old versions of Google Analytics is huge since Universal Analytics is sessions based, while Google Analytics is event-based. And underway the feedback of users who started implementing GA4 could be better since the product is relatively new, which means it needs some features and has some bugs. Together with the new version of Google Analytics, another main change in the world of tracking is server-side tracking. Server-side Google Analytics 4 (GA4) has several benefits over traditional client-side tracking. It complements tools like [Shopify Conversion API](https://stape.io/blog/facebook-conversion-api-and-shopify) to enhance tracking consistency across platforms. Here are some of the key benefits of server-side tracking: Improved data accuracy: Server-side tracking ensures data is collected and processed. It eliminates discrepancies caused by ad blockers, client-side scripts, and other monitoring issues. In practice, this looks like the [Transparent Digital Services GA4 implementation on Stape](https://stape.io/blog/transparent-digital-services-server-side-tracking-case-study), where GA4 recorded 4,512 purchases after the new setup. Better user privacy: Server-side tracking allows you to maintain user anonymity, protecting users' personally identifiable information (PII) and adhering to privacy regulations like GDPR and CCPA. With server-side tracking, you have greater control over the data you collect and how you use it. For example, custom data streams can track specific events, user behavior, and other data points. Integration with other data sources: Server-side tracking can be integrated with other data sources, such as customer relationship management (CRM) systems, to create a complete view of user behavior and improve analytics insights. Overall, server-side Google Analytics 4 provides more accurate, secure, and customizable tracking options that can help you improve your analytics insights and make better business decisions. Configure Stape's Conversion Tracking app for Shopify Conclusion Implementing server-side Google Analytics 4 for Shopify is an effective method to enhance your business’s online presence. It offers many exciting features that allow you to understand and track user behavior more accurately. With this blog post, setting up the connection between Google Analytics 4 and Shopify via the Conversion Tracking app can be quickly achieved. The few simple steps outlined here make this process both easy and efficient. Doing so will allow you to take careful advantage of all its benefits with minimal effort. So why wait? Start optimizing your store today - feel free to reach out if you need help understanding or implementing how to set up server-side Google Analytics 4 for Shopify using the Conversion Tracking app. Ready to test server-side tagging? Click Try for free , and configure your setup with Stape in no time. --- # Shopify server-side tracking setup Source: https://stape.io/blog/server-side-tagging-for-shopify Learn how to easily set up and manage server-side tagging for your Shopify store using the powerful features of Stape's Conversion Tracking app. Server-side tracking (SST) is an excellent data collection method for Shopify stores, since it ensures accurate conversion tracking and compliance with privacy regulations like GDPR. With challenges such as ad blockers, browser restrictions, and cookie limitations, SST provides a more reliable solution. ![image](https://cdn.stape.io/i/6a4f628a37c19158842758.png) Unlike traditional client-side tracking, which collects data from the user's browser via JavaScript tags, server-side tracking moves this process to your server. For anyone running a Shopify store, this means you can avoid data loss and get a clearer, more secure picture of what's happening, which ultimately helps you make better business decisions and improve your store's performance. Related: [Advertising monitoring](https://stape.io/blog/ad-tracking) guide in 2026. What is server-side tracking [Server-side tracking](https://stape.io/) is a modern approach to data collection that shifts the tracking process from a user's browser to a secure server. Instead of sending information like pageviews, conversions, or clicks directly from the browser to analytics and advertising platforms, this data is first routed through your own cloud server. This extra step helps ensure more accurate data by reducing the impact of browser restrictions, third-party cookie limitations, and ad blockers. It also allows you to extend cookie lifetimes and streamline data delivery to platforms like Google Analytics, Meta, TikTok, and others. It provides a stronger foundation for privacy compliance and lets you customize the data flow to match your business needs. Tools like Google Tag Manager's server container make it easier to implement, especially when combined with services like Stape that handle the server setup. Overall, server-side tracking is a powerful way to future-proof your analytics and improve the reliability of your marketing data. Benefits of using server-side tagging for Shopify [Server-side tagging](https://stape.io/blog/server-side-tagging) can turbocharge the success of your marketing campaigns with precise conversion tracking and user analysis. However, taking full advantage requires a meticulous setup - something nobody should overlook. 1. Better data accuracy. Server-side tagging can help ensure more accurate data collection by reducing the risk of data loss or errors caused by ad blockers, browser extensions, or other client-side factors. 2. Accurate conversion attribution. Due to increased cookie lifetime and user data sent through the server, advertising networks can more accurately attribute conversions to marketing campaigns. This is especially useful when sending server-side events to [Facebook Conversion API for Shopify](https://stape.io/blog/facebook-conversion-api-and-shopify), improving ad targeting, conversion attribution, and campaign ROI. 3. More flexibility in data handling and privacy management. Server-side tagging gives you more control over how data is processed and shared. You can apply filters, modify event data, and ensure that only necessary information is sent to third parties — all from a centralized tagging server. This flexibility makes it easier to align with privacy regulations like GDPR and CCPA while maintaining data quality and customer trust. 4. Consolidated data management. Route all your marketing and analytics data through one central server endpoint. This centralization reduces debugging and troubleshooting time by up to 50%, managing multiple integrations, reduces complexity from numerous tags, and ensures consistent, accurate information flows to all your advertising partners. 5. Enhanced data enrichment. Unlike browser-side tracking, server-side tagging lets you add more valuable data to your conversion events from sources like your CRM or inventory systems. Combining online and offline insights helps you build stronger audience segments and personalize your marketing more effectively. 6. Minimized risk of data manipulation. Since conversion events transmit directly from your secure server, they're far less vulnerable to external manipulation by malicious scripts or browser extensions. This direct, secure channel ensures the integrity and trustworthiness of your tracking data, providing a clean and reliable dataset for all your needs. How to set up server-side tagging on your Shopify store Via Stape's Conversion Tracking app One of the most efficient ways to implement server-side tracking on Shopify is by using Stape's Conversion Tracking app. Its main purpose is to simplify the setup by injecting the Custom Loader and Cookie Keeper, and by configuring a reliable Data Layer based on native Shopify events. While the app itself doesn't send data directly to the server container, it lays the groundwork for accurate tracking by enabling your web container to capture events and pass them to server-side GTM. This reduces manual coding, speeds up implementation, and helps ensure tracking works correctly even in environments with browser restrictions - improving data quality and conversion attribution. Start tracking in minutes. [Stape Conversion Tracking for Shopify with Setup Assistant](https://stape.io/solutions/shopify-app-and-setup-assistant?cta=blog_article) sets up server-side GTM, creates key eCommerce events automatically, and loads ready-made tags for Google, Meta, TikTok, and more. Events run through Stape’s server-side tracking platform, so you record more conversions and improve ROAS. Via Shopify directly A slightly more advanced method for Shopify server-side tracking is using Shopify's native capabilities like webhooks and Shopify Flow. This approach gives more flexibility for tracking backend-triggered events that may not be captured by browser-based tracking. However, both this method and solutions like Stape ultimately require server infrastructure and similar sGTM configuration. The main difference lies in how events are triggered - with Shopify Flow or webhooks, events originate from Shopify's backend, while with tools like Stape, events are still triggered in the browser but routed through your tagging server. Both options involve configuring server-side GTM and ensuring proper formatting, deduplication, and consistency of the data. Shopify server-side tracking with Stape's Conversion Tracking app step-by-step setup Webinar https://youtu.be/7ASTO--LNLE?si=Ite3XsRwG9pLJ9qt Shopify server-side tracking: real Stape users' problems solved A user running Shopify server-side tracking with Stape noticed one store’s Google Ads server-side purchase conversions were underreporting compared to the client-side setup, while another identical store performed correctly. In the [full thread](https://community.stape.io/t/shopify-gads-server-side-tracking-is-performing-bad-than-client-side/2560), possible causes included parallel GA4 tags sending events directly to GA, consent management issues, or Google Ads account restrictions. The solution was to check GA4 initialization, consent settings, and data mapping in triggers and lookup tables, ensuring server-side tags fire correctly for each domain. Using a single server container for multiple stores works if mapping is configured properly. FAQ Can server-side tagging improve Shopify store performance? Server-side tagging doesn't fully replace client-side scripts, but it can reduce the number of third-party tags loaded in the browser by sending data through a server instead. This can make your tracking setup cleaner and slightly lighten page load. For bigger performance gains, you'll need to use webhooks or move heavy scripts off the browser. Additionally, with more accurate and reliable data being collected, your marketing campaigns can be optimized more effectively, leading to improved ad spend efficiency and return on investment. Does server-side tagging work with Shopify's native analytics tools? Server-side tagging in Shopify routes tracking data through a server before sending it to platforms like Google Analytics 4 or [Facebook Conversions API for Shopify](https://stape.io/blog/facebook-conversion-api-and-shopify). This method improves data accuracy, enhances user privacy, and helps bypass browser restrictions. Shopify's built-in analytics use their own data, but adding server-side tagging helps improve the data sent to external platforms like Google Analytics or Meta. This gives you more complete and accurate conversion tracking, which you can compare with Shopify's reports for a fuller picture of your performance. However, server-side tagging doesn't directly feed into or alter the data displayed within Shopify's built-in analytics dashboards. What's the total cost of implementing Shopify server-side tracking? The cost of Shopify server-side tracking depends on the setup. Using the Stape Shopify app with hosted GTM usually means a monthly hosting fee based on traffic. You might also pay a one-time or hourly fee for setup if you hire a specialist. A custom setup costs more. It requires developer time to build the server, set up webhooks, and manage API connections. How long does the setup of server-side tracking for Shopify take with Stape? Setting up server-side tracking for Shopify with Stape is usually much quicker than building a custom setup. For a typical store using tools like GA4 or Facebook CAPI, the core setup can take a few hours to a couple of days. This covers the sGTM container, the Stape Shopify app, data layers, tags, and basic testing. If you have complex events, custom deduplication, or need to connect with many platforms, it might take longer to test and fine-tune everything. Conclusion Server-side tagging is quickly becoming an essential tool, making your conversion tracking and analytics much more precise. For Shopify users, the Conversion Tracking App makes this powerful setup surprisingly straightforward. It helps you get tracking running fast, even with custom domains, and ensures your data moves smoothly. By extending cookie life and pushing back against browser privacy features, these tools guarantee your advertising and marketing platforms get truly dependable information. If you're looking for an easy, quick way to get better tracking insights on Shopify, Stape is a solid choice. Test it out yourself now - we know you won't be disappointed! --- # Cookieless tracking: what it is and how to implement it Source: https://stape.io/blog/what-is-cookieless-tracking Cookieless tracking lets you collect user data without third-party cookies. You can implement it using server-side tracking and first-party data. Cookieless tracking is a method that gathers user data without relying on browser cookies. Instead, it uses methods like server-side tracking, first-party data, fingerprinting, and contextual targeting to understand behavior while ensuring privacy compliance. This approach helps businesses adapt to stricter regulations, improve data accuracy, and reduce dependence on [third-party cookies](https://stape.io/blog/third-party-cookies). In this blog post, we'll break down the concept of cookieless tracking, explain why it's essential, and provide tips on using it in your next marketing campaign. Take a few moments to put aside everything else you're working on - by discovering tracking without cookies, you may find new insights about your target audiences that will ultimately allow you to make smarter business decisions. Let's dive in! What are cookies? Cookies are small text files containing bits of data used to identify a user's computer while browsing a network. Certain cookies are designed to recognize individual users and enhance their web experience. ![Tracking cookies](https://cdn.stape.io/i/66f54681a3a0e848614436.png) Tracking cookies Why are cookies necessary? Сookies make browsing the web a more seamless and unique experience for users. Here are some reasons why cookies are important and why they exist: Authentication. Cookies allow websites to remember if a user is logged in or not. This means that users don't have to enter their login credentials every time they visit a website. Personalization. To remember a user's preferences, such as their language or font size. Shopping carts. When shopping online, cookies can be used to remember what items are in a user's shopping cart, even if the user leaves the website and returns later. Analytics. To track how users interact with a website: what buttons they click on or not, etc. This information can be used to improve the website's design and functionality. Ad targeting. Cookies can be used to track a user's browsing history and interests, which allows advertisers to show more relevant ads. Cookies exist to enhance the user experience on websites and to enable website owners to collect data that can be used to improve their services and marketing efforts. While there are some privacy concerns related to cookies, which we'll describe further, they are an essential part of the modern web. Cookie tracking issues Cookies help track user behavior, personalize content, and support ad targeting. But they also come with serious concerns. Privacy issues. Cookies can help track users across multiple websites. This helps advertisers build detailed profiles, which many users find intrusive. Security risks. Some cookies store sensitive data, like login tokens or payment-related info. If stored on the browser, this data can be accessed by third-party scripts, browser extensions, or malicious programs running on the user’s side. Malicious cookies. Though rare, cookies can be used to deliver malware to a user’s device. Browser restrictions. Safari and Firefox are now blocking third-party cookies by default. Safari’s Intelligent Tracking Prevention (ITP) limits all commercial first-party cookies to 1–7 days. That means even if someone returns after 24 hours, Safari may treat them as a brand-new user. If your site sells high-ticket items or requires multiple visits before conversion, this makes tracking nearly impossible. You can compare the difference by checking how many returning users show up in Safari vs Chrome inside GA4. ![GDPR](https://cdn.stape.io/i/66f546c7da2b5079943087.png) GDPR How analytics and marketing platforms try to overcome the use of cookies GA4 is marketed as privacy-focused, and it is meant to function with or without cookies. GA4 can cover the data collection gaps as the world grows less reliant on cookies by utilizing machine learning and statistical modeling. With browsers such as Safari and Firefox restricting third-party cookies, you can configure Google Analytics 4 to depend on first-party cookies by transitioning to [server-side GA4 tracking](https://stape.io/stape-gateway). Mapping [tagging server URL](https://stape.io/blog/how-to-set-up-tagging-server-url-for-server-gtm) with a [custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) establishes 1st party cookies, which are more dependable and have a longer lifespan than 3rd party cookies. Hosting server-side setups through platforms like Google Cloud can get costly and complicated. That’s why many marketers prefer managed services like Stape, which offers a free tier for up to 10,000 requests and paid plans starting at $20/month. You skip infrastructure work and start tracking right away. You can set up GA4 tracking without utilizing any cookies, be it 1st or 3rd party, by using [Stape's Advanced GA4 tag](https://stape.io/blog/google-analytics-4-advanced-tag-for-server-gtm). This allows for purely server-side GA4 tracking. And as for the Facebook solution - [Facebook Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api) and [Conversions API Gateway](https://stape.io/fb-capi-gateway) - it can be said that besides cookies, it relies on user data. With the help of user parameters you send together with FB CAPI events, FB will match events to users in their database. As a result, you will have more reliable data and do not rely on cookies at all. To prevent the use of FB cookies, you should configure FB tracking exclusively on the server-side. For example, let’s say you’re a home improvement brand. You used to buy third-party audience data about people who visit DIY blogs, then retarget them across platforms using cookies. In a cookieless setup, this won’t work anymore. If someone visits your site without logging in or giving consent, you can’t retarget them one-to-one. That’s why platforms like GA4 or Facebook CAPI now rely on server-side setups Why marketers are shifting to cookieless tracking Three things changed the way tracking works: Consumers started demanding more privacy and control. They don’t want to be tracked across the internet without knowing it. Browsers and tech companies like Apple and Google responded by adding restrictions and phasing out third-party cookies. Marketers now need new ways to measure performance and personalize content without relying on third-party data. What does cookieless mean? Cookieless means collecting user data without relying on cookies. Third-party cookies are used to track users' activities across websites, so later the data is sent directly to platforms like Google Analytics or Meta. This method is called ‘web tracking’. Web tracking often results in lost data, as some events are not being registered due to browsers' privacy restrictions or ad blockers. Cookieless tracking works without storing user data in cookies. Instead of saving identifiers like user ID or session ID in the browser, this data is stored in a secure backend or passed through the cloud server directly. Tools like server Google Tag Manager (sGTM) can help send events without relying on cookies, using alternatives like URL parameters or external ID systems. This setup avoids cookie restrictions and improves tracking consistency. How does cookieless tracking work? Cookieless tracking works based on identifying and tracking users without relying on cookies, which are traditionally used to store user data on their device. Instead, it uses alternative methods like device fingerprints, server-side tracking, and other technologies to gather and process data. With server-side tracking, the tracking code is executed on the server rather than on the user's browser. This means that the user's device does not need to store any tracking data, and the tracking is done entirely on the server side. Server-side tracking can be implemented in several ways, including: Event tracking: Events such as page views, clicks, and form submissions can be tracked on the server side. The tracking data can then be stored in a database or sent to a third-party analytics service. Server log analysis: Server logs contain information about each request made to a website, including the user's IP address, user agent, and other data. This information can be analyzed to track user behavior and generate reports on website traffic. API tracking: APIs can be used to track user behavior on third-party platforms, such as social media or mobile apps. The tracking data can be sent to the server and processed using server-side code. Stape has a full [list of platforms](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking) that support server-side tracking. To implement server-side tracking without cookies, it's essential to configure each tracking vendor purely on the server side. This approach ensures tighter control over the information each vendor sets and collects. For instance, the default setups of platforms like Google Analytics 4, Facebook, and TikTok work with only web (client-side) tracking, but this often leaves gaps in the data. To get accurate and complete insights, most businesses adopt a hybrid setup that combines web and server-side containers. In GA4, this approach is especially relevant as more marketers turn to [cookieless tracking GA4](https://stape.io/blog/cookieless-tracking-ga4) to reduce reliance on browser cookies. While web pixels can still gather data, server-side tracking helps overcome data loss caused by ad blockers, ITP, and other browser restrictions - making it the key to reliable, privacy-compliant analytics. You can also pair a cookieless setup with [marketing mix modeling](https://stape.io/blog/marketing-mix-modeling-mmm) to plan budgets and forecast results. With pure server-side tracking, you'll have a singular data stream that sends user and event data to the server-side container, which could be, for instance, webhooks from your CMS or CRM. Subsequently, within the server-based Google Tag Manager container, you determine what information gets relayed to your analytics and marketing platforms. Main steps of the implementation of cookieless tracking Cookieless tracking can look different depending on your setup, but the core principles stay the same. Here’s what most cookieless configurations include: Skip cookies completely Don’t rely on browser cookies to store user or session data. Instead, use a backend store like [Stape Store](https://stape.io/solutions/stape-store). For [cookieless GA4 tracking](https://stape.io/blog/cookieless-tracking-ga4), this means saving values like client_id, session_id, and first_visit directly in your backend. Create your own identifiers To link browser events with stored data, you need a consistent identifier. This can be done with fingerprinting or [Stape User ID](https://stape.io/solutions/user-id). Store click IDs in an external database Capture important click IDs like fbclid from the URL on the landing page, and save them in your backend. This helps platforms like Meta match conversions to the right ad clicks, even without cookies. What about hashed IDs? Some platforms use hashed identifiers when cookies are blocked. This usually means combining IP, user agent, and URL to generate a unique ID that’s stored server-side. This method can work, but it’s a one-way system. You can’t enrich or update user profiles later. Tools like server GTM and [Stape Store](https://stape.io/solutions/stape-store) give you more flexibility to manage identifiers, connect events, and keep user data compliant without being locked into hashing. Comparison of cookieless tracking methods by criteria | Server-side tracking | Data layer | Session storage | Local storage Use cases | Store sensitive data for a long time | Real-time data storage | Track and temporary store events (page views, clicks) | Track events persistently Data durability | As long as needed (depends on server configuration) | As long as the user is on the page | As long as a session runs | Until data is cleared manually Data size limits | No limits | It is not fixed, but it is used for small datasets | 5 MB per origin | 5 MB per origin Location | Server-side (a server that you own and control) | Client-side (client’s browser) | Client-side (client’s browser) | Client-side (client’s browser) Security | The most secure compared to other methods | Vulnerable to client-side attacks (e.g. Cross-Scripting) | Vulnerable to client-side attacks (e.g. Cross-Scripting) | Vulnerable to client-side attacks (e.g. Cross-Scripting) Cookieless tracking methods explained Server-side tracking: secure and precise data tracking The benefit of server-side tracking is that all users' data is sent firstly to the server and then transferred to tracking platforms (like Google Tag Manager) and third-party vendors (e.g., Google Analytics). Such data processing and distribution methods help bypass ad blockers and browser restrictions. Server-side tracking also helps comply with GDPR and CCPA regulations. ![How server-side tracking works](https://cdn.stape.io/i/66f27694397e5372317057.png) How server-side tracking works Another benefit of server-side tracking is the higher control over collected data, as all the data is processed on your own servers rather than handled on the client side (users' browsers). Unlike client-side methods such as Local and Session storage, this approach offers enhanced security, making it a better choice for managing sensitive information. How to start using server-side tracking Firstly, you need to choose a hosting provider for the server GTM container. One popular option is using the Google Cloud Platform. We recommend considering [Stape](https://stape.io/sign-up) as a hosting provider and solution hub for server GTM. Stape has many advantages over GCP, which businesses of all sizes and types can benefit from. Stape | Google Cloud Platform Free plan for 10,000 requests per month | Price starts at $120/month [Wide range of plans](https://stape.io/price) for high-traffic websites to avoid overpaying ($20 - $300/month) | For websites with higher traffic, the price can increase to $240-$300 per month No additional costs if you have a paid plan | Logs will cost an additional $100 for 500,000 requests Variety of [solutions for sGTM](https://stape.io/solutions) (power-ups, tags, variables) | Secondly, you need to [create and configure a server-side container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). If you have already used web GTM, you probably won’t face difficulties setting it up as the interface and functions are similar. Then you can [add any solutions, and power-ups](https://stape.io/solutions) and set up any tracking you need for your business. Data layer: effective real-time data storage The data layer as a cookieless solution works for cases when you need to collect lightweight data (like UTM-parameters data) that doesn't require extra security. Otherwise, we recommend using server-side tracking, which is better for large datasets and sensitive data. The data layer is a method for temporarily storing real-time data. When a user visits your website, you can capture data from them and temporarily store it in the data layer. This happens before [consent](https://stape.io/blog/consent-mode-server-google-tag-manager) is granted. After the user's content (clicking on cookie consent banners), you transfer data to analytics tools like Google Analytics 4. Using a data layer for cookieless tracking has a disadvantage compared to server-side tracking or local storage - the data is stored as long as the session runs. However, the data gathered can be accessed by tags and scripts you use. How to start using the data layer You need to initialize the data layer (if it doesn't exist yet). Related: [End-to-end guide on data layer in Google Tag Manager](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager) - you will find this article useful if you haven't worked with the data layer yet. Then, you need to set up capturing data (let's say, UTM parameters from URL) and temporarily store them in the data layer you created. Once the user grants consent (like a trigger), the script should find the necessary data and transfer it to the analytics tool. You need to write the script independently or ask a developer to do it. Session storage: for specific data within a session Session storage is a good method if you want to collect data that will be stored only for the duration of the session. Such type of data includes page views or button clicks. One advantage of session storage is high privacy; the data is cleared once the user stops a session. However, this feature prevents you from storing data for a long time, like with server-side tracking or local storage. How to start using session storage The web storage API lets you interact with the browser's session storage. To apply this method, you need to use a script. The JavaScript code should first retrieve or initialize the count of some event (e.g., page view or click to a button), then increment the event count and store it in session storage. Local storage: track persistent data across sessions Unlike session storage, local storage can track and store data across multiple sessions. However, it is better to use this method for non-sensitive data. Local storage is usually used to track and store data like page language or layout to determine user preferences on your website, track the number of transactions, or count events (clicks, page views). It is also an effective way to find out the number of returning users (with the help of a User ID); such a feature can be useful if you build brand recognition. How to start using local storage Local storage, like session storage, is part of the web storage API, so you can interact with it using the API. The flow is similar to session storage; with local storage, you need to use the script to gather and store data locally. 7 Key Cookieless tracking solutions for 2026 The following list focuses on tools that professionals use to keep attribution, analytics, and budget decisions working with less cookie data. Use it as a shortlist when you pick what to add on top of your current setup. Stape Ruler Analytics Google’s Meridian Meta’s Robyn TWIPLA Matomo Fathom Stape Stape is a cookieless tracking option that adds a cloud server layer to your setup. Events still start on the website, but they pass through the cloud server before going to analytics and ad platforms. This helps keep signals stable. Stape gives you control over what data gets sent, and where it goes. You can enrich events with backend details, for example order status, refund info, product margin, or a CRM customer ID. This keeps attribution and reporting consistent when browser tracking drops. Ruler Analytics Ruler focuses on attribution when user-level identifiers and cookies are not reliable. It combines deterministic measurement where possible with cookieless methods like probabilistic attribution and marketing mix modeling. This approach helps you keep a view of which channels and campaigns drive revenue, even when you cannot rely on a full click-path for every user. A practical use case is budget decisions across channels when conversions happen after multiple visits. Ruler can use signals such as impressions and other platform data to model impact when direct tracking is limited. It is a fit if attribution is your main pain and you need reporting that stays stable as browser limits increase. Google’s Meridian Meridian is a marketing mix modeling approach designed to measure how marketing activity influences outcomes without depending on cookies. It works by modeling channel impact from historical performance and media inputs, rather than user IDs. This makes it useful when you need a channel-level view that stays available even when tracking data is incomplete. It is a fit if you want a measurement layer that can cover channels that never had strong cookie tracking, like offline media. It also helps when you need a planning method for spend allocation across channels. Treat it as a modeling layer that sits next to your tracking setup, not a replacement for event tracking. Meta’s Robyn Robyn is another marketing mix modeling tool that focuses on measuring ad impact over time using machine learning. It is designed for teams that have enough historical data to model results across channels and campaigns. It helps answer “what moved results” without needing user-level cookies. Robyn makes sense when you want an independent modeling check beside platform reports. It is also helpful for longer sales cycles where direct attribution becomes fragile. You still need clean inputs, so the quality of your spend and outcome data matters more than your cookie coverage. TWIPLA TWIPLA is a cookieless web analytics tool that includes heatmaps and session recordings. It helps you see how visitors move through key pages when cookies are limited, so you can still spot friction points in your funnel. Use TWIPLA when you want more than traffic numbers. It gives you behavior data you can base your marketing decisions on. Matomo Matomo is a full analytics platform that supports tracking without cookies. It covers the basics like page views, sources, and events, without relying on cookies for identification. Choose Matomo when you want a self-owned analytics baseline that stays consistent as cookie rules tighten. It works well next to [server-side tracking](https://stape.io/), because it focuses on on-site reporting, not ad platform attribution. Fathom Fathom is a privacy-focused web analytics tool built around first-party measurement. It is designed to give you core site insights like traffic sources and engagement. It is a fit for teams that want clean website analytics with a minimal data footprint. Fathom works well as a replacement for cookie-heavy on-site analytics when you mainly need content and acquisition reporting. It is also useful when legal and privacy expectations shape what you can collect. Pair it with a MMM tool if you need deeper campaign measurement. FAQs Do you need consent for cookieless tracking? Often, yes. In the EU, GDPR rules require user consent if you collect personal data, even if you don’t use cookies. That includes IP addresses, emails, and any identifiers that can be linked to a person. Some countries like Denmark, Belgium, and Germany ban all cookies (even functional ones) without explicit consent. These stricter rules are expected to expand across the EU under the upcoming ePrivacy Regulation. In the US, rules vary by state. Some, like California’s CCPA, focus more on transparency and giving users the option to opt out. Always check with your legal team to understand what applies in your region and how your setup handles user data. What should marketers do about cookieless tracking? As cookies become less reliable, marketers need a new approach to collect data and measure results. Here’s what to focus on: Don’t rely only on browser cookies for tracking. Use first-party data where possible, and store it outside the browser. Set up server-side tracking to control how data is collected, processed, and shared. Focus on meaningful signals directly from your site, not from third-party scripts or networks. Make sure your setup complies with local privacy laws. Are tracking cookies illegal? Not exactly, but using them without proper consent is.Laws like GDPR require websites to obtain explicit permission before using most cookies, especially those used for advertising or cross-site tracking. Does deleting cookies stop tracking? Not completely. It removes data saved in the user’s browser, but tracking can still happen in other ways, like using data sent through the website’s server. That’s why many marketers now use both browser and server tracking to keep their data accurate and complete. Conclusion So there it is – an overview of how cookieless tracking works and what it can do for your marketing campaign. We hope this blog post has inspired you to explore tracking without cookies and use that knowledge in your next marketing decision. With Stape's help, you can tap into your audience on a level they never dreamed of before. So don’t wait. Start using cookieless tracking today and see how it changes your business. Check your website’s tracking health Click on Scan your site to use our Website Tracking Checker and get a detailed report on how to fix tracking issues and boost performance. --- # How to set up Xandr tag using server Google Tag Manager Source: https://stape.io/blog/how-to-set-up-xandr-tag-using-server-google-tag-manager Track Xandr campaigns effectively with sGTM. This article explains how Xandr tag works and how to set it up for PageView and Conversion events, ensuring data control. Xandr is Microsoft's advertising and analytics company, which runs the Community online platform for buying and selling consumer-centric digital advertising. Xandr's capabilities in technology, automation, data and identity solutions, and a partnership-first strategy can help you run complex and massive programmatic advertising campaigns. Using Xandr's platforms, you can take advantage of every benefit of running campaigns across screens and tapping into engaged audiences to help your buyers and sellers solve their most difficult advertising concerns. To make the Xandr integration easy for you, we created a Xandr tag for the server Google Tag Manager. In this article we will describe how Xandr tag works and how to set it up using server GTM. How does Xandr tag for server Google Tag Manager work and what are its benefits? Xandr server-side tag has significant benefits over traditional tracking. It doesn’t depend on 3rd party cookies, thus making tracking conversion accurate as it is. With server-side, you can precisely manage what data is given to each vendor and ensure that they do not scrape any information about website users without your consent. That guarantees you total data control and security. Another essential advantage is https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking[website page speed optimization.](https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking) There are two types of events that Xandr tag supports: PageView and Conversion. PageView event stores the token URL parameter inside the xandr_token cookie. Conversion event sends the HTTP request with the specified conversion data to Xandr. How to use the Xandr tag: 1. Create an Xandr pixel and add Page View and Purchase triggers. 2. Add the only required field for the conversion event - Pixel ID, other fields are optional. Pixel ID - advertiser program ID. Order ID - booking or transaction ID. Total Order Value - value excluding taxes, delivery, and discounts. Other - You can include an extra field to pass into your pixel and then see this data in conversion reporting. How to set up Xandr tag using server Google Tag Manager? 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. The Xandr tag is not yet in the server Google Tag Manager template gallery. You can [download it from GitHub](https://github.com/stape-io/xandr-tag) and add it to your server GTM container by opening the template tab, clicking new, clicking three dots in the top right corner, and clicking import. ![xandr tag template in google tag manager](https://cdn.stape.io/i/63f34f43530b9718916878.png) 3. When configuring the Xandr tag, you can add Page View and Purchase triggers. Add the only required field for the conversion event - Pixel ID, other fields are optional. ![xandr tag configuration in google tag manager](https://cdn.stape.io/i/63f34f430ff43820135545.png) Conclusion To sum up, Xandr's server-side tag is an incredibly efficient way to track conversions with accuracy and total data control. Not only does it provide you with more advanced data collection methods, but it also helps to optimize your website’s page speed. All of this, taken together, makes the Xandr integration a powerful tool worth using with server Google Tag Manager. We hope this article helped explain how to set up Xandr tag and its benefits clearly. If you have any questions or need help setting up the Xandr tag on your server GTM, please feel free to reach out to Stape support and we will be glad to help. Got any questions? We've got you covered! Click Get assistance, fill-up the form, and we will send you a quote. --- # Safari ITP - everything you need to know Source: https://stape.io/blog/safari-itp Safari's ITP update reduces cookie lifespan. Discover how Stape's Cookie Keeper and Own CDN solutions enable first-party cookies and maintain tracking accuracy. Safari ITP, developed by the WebKit team at Apple, has been at the forefront of combating invasive data collection when it comes to web surfing. In a revolutionary move against third-party cookie tracking tactics, they imposed limitations that drastically reduced third-party cookies' lifetime duration to 7 days or even 24 hours. However, companies soon found an effective workaround to this limitation with the help of [server-side tagging set on a custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). In autumn 2022, [Safari announced](https://github.com/WebKit/WebKit/pull/5347) a new change in how they treat cookies. They capped cookie lifetimes to 7 days for responses from third-party IP addresses. So, we at Stape created a Cookie Keeper power-up and Own CDN feature. In this blog post, we will describe how the limitation of cookie lifetime based on the IP address works and what it means for web advertising and analytics. And, of course, how Stape can help with the new restriction. In this article, we show how to configure the following solutions to prolong cookies in Safari: Same origin domain - a highly-recommended option to implement by Stape's team and Google ([go to the relevant section](https://stape.io/blog/safari-itp#same-origin-domain)) Cookie Keeper power-up - the best option for those who can't configure the same origin domain for some reason and are Stape's users ([go to the relevant section](https://stape.io/blog/safari-itp#cookie-keeper)) Own CDN - another configuration option, which was frequently used before same origin domains became common, but it still remains a relevant strategy ([go to the relevant section](https://stape.io/blog/safari-itp#about-own-cdn)) What is a Safari ITP Safari Intelligent Tracking Prevention (ITP) is a privacy feature introduced by Apple in the Safari browser to limit cross-site tracking by restricting how cookies and other tracking technologies function. ITP uses on-device machine learning to identify tracking behavior and enforces rules that reduce advertisers' and data brokers' ability to track users across different websites, affecting how analytics, ad attribution, and user targeting work on Safari. How Safari tries to restrict the use of third-party cookies Apple's ITP, which first made its debut in 2017, has seen multiple transformations to become increasingly restrictive with each iteration. Safari's main goal regarding ITP tracking limitations is restricting advertising and analytic networks from profiling users across different websites. This cap helps to raise user privacy and prevent unwanted tracking of users' online activities. But on the other hand, this can make it more difficult for advertisers to target users with personalized ads and track the effectiveness of their advertising campaigns. Let's dive into more details on the existing restrictions and disadvantages of using third-party cookies for browsers based on WebKit. ![First vs third party cookies](https://cdn.stape.io/i/691c81f17678c872674423.png) First-party cookies are small data files stored on a user's device by the website they visit. If the website is example.com, first-party cookies will be considered those set from the main domain example.com and all subdomains blog.example.com, app.example.com, etc. They are used to store information about the user's preferences, such as login credentials, language preferences, and shopping cart items. Since first-party cookies are set by the website being visited, they are considered "first-party" and are generally not subject to the same privacy restrictions as third-party cookies. Third-party cookies are those set outside of your domain. For example, when facebook.com or google.com set cookies on the domain example.com, these are considered third-party. Third-party cookies are often set by advertisers or tracking companies to collect information about a user's behavior across multiple websites. Safari has been regularly updating its ITP feature to restrict the use of third-party cookies' further and improve user privacy. Here is a short timeline of the critical updates to Safari cookie lifetime: Related: [Third-party cookies are about to expire. Will server-side tracking help?](https://stape.io/blog/third-party-cookies) Date | Updates 2017 | Safari introduces ITP 1.0, which uses a machine-learning classifier to detect domains capable of cross-site tracking and starts restricting their tracking cookies. This marks the beginning of widespread third-party cookie blocking. June 2018 | ITP 2.0 is introduced. Key updates include the removal of the 24-hour cookie access window for previously approved domains, immediate partitioning of cookies for tracker-identified domains, and a requirement that embedded content request access through the Storage Access API. March/September 2019 | ITP 2.1 / 2.2 is released. Key updates include limiting first-party cookies (and other script-writable storage set via JavaScript in specific contexts) to a 7-day lifespan. Cookies from domains flagged for cross-site tracking, even when they appear to be first-party, face additional restrictions. March 2020 | Safari 13.1 introduces full third-party cookie blocking by default, preventing third-party cookies from loading in iframes or cross-site contexts regardless of user interaction. Autumn 2022 | Apple announces additional restrictions: third-party cookies are limited to a 7-day lifespan (or just 24 hours when URLs include query parameters) even when techniques like CNAME cloaking are used. First-party cookies set by domains or servers with differing IPs, or those that appear third-party, may also be curtailed. 2023-2025 | Further refinements arrive: first-party storage (cookies, localStorage, and IndexedDB) may be cleared after about seven days without user interaction. Safari's ITP increasingly focuses on "interaction-based lifetimes." How Safari ITP cookie restrictions affect advertisers Advertisers who rely on third-party cookies to track user behavior and serve targeted ads may see a decline in the effectiveness of their campaigns when users are browsing Safari. This is because the browser's restriction on third-party cookies prevents advertisers from collecting user data across multiple websites. As a result, they may see a decrease in conversions and a lower return on investment for their advertising spend. Drop in ad performance Ad networks use third-party cookies to collect data about users who visit different websites by assigning the same user a unique third-party cookie. This way, they can see what websites users browse online and understand their interests. Ultimately, they use this data to show ads based on the user's behavior and interests. Since Apple ITP limits the use of third-party cookies in Safari, this results in less accurate user profiling and, thus, less compelling interest or behavioral targeting. As a result, advertisers spend less money on paid campaigns because of low results. Less accurate conversion attribution The second critical use case of third-party cookies in cases of advertising platforms is utilizing a click ID. When a user clicks on the ad, most advertising networks add a unique click ID to the URL and store the click ID as a third-party cookie or first-party cookie set by JavaScript in both cases, they will be subject to ITP. When a user converts, this click ID is used to understand which conversion should be attributed to which campaigns. ITP Apple makes it difficult for affiliate networks to attribute sales and commissions to the correct affiliates, as the cookie data used for tracking may be deleted after just seven days, and for the known cookies (e.g., facebook click id and google click id) the cookie's lifetime can be reduced to 24 hours when set via JavaScript code. This is the reason why many popular affiliate networks have started making [server-side tracking implementation](https://stape.io/blog/how-to-start-with-server-side-tracking) mandatory for publishers. With the help of server-side tracking, it's possible to set first-party cookies and rely on a longer cookie lifetime. Lower-quality audience representation for remarketing Remarketing is a technique where advertisers show targeted ads to users who have previously interacted with their website. This is typically accomplished by using third-party cookies. Since a user who visited your website in Safari can stay in the remarketing pool for only 7 days, the size of the remarketing audience will decrease. Incorrect analytics data Analytics platforms use cookies to identify whether a user is new or has already visited your website. If a Safari user does not revisit your website every 7 days, they will be considered a new visitor. And it will have a substantial negative impact on user journey, conversion analytics, etc. ![Cookies removal](https://cdn.stape.io/i/691c87e228a16592911007.png) The solution for existing Safari ITP cookie limitations WebKit's restriction on third-party cookies may have initially seemed like a roadblock, but an effective solution was soon discovered. By employing server-side tagging, web developers could bypass this issue. In the case of server Google Tag Manager (sGTM), if you set up a tagging server URL located under your main site domain, like ss.example.com for the website example.com, the tagging server can set first-party cookies, which will increase the cookie lifetime to the default settings. After advertisers found this solution, WebKit tried to restrict it even more. Their main concern was CNAME cloaking, which was later curbed. CNAME cloaking is designed to outwit ITP so that it would treat third-party cookies as first-party cookies. If ITP Safari detects CNAME cloaking, it limits JavaScript first-party cookies to the same 7 days as it would limit third-party cookies. How does ITP limit cookies for responses from 3rd-party IPs? Whenever a new ITP detects that the IP address of the URL that tries to set cookies is different from your website's domain, it cuts cookies' lifetime to 7 days, whether it's first-party or third-party. For example, your website example.com points to IP 1.1.1.1, and you previously used server-side tagging to increase cookies' lifetime. Let's say you use the tagging server ss.example.com, which points to 2.2.2.2 to set first-party cookies. Apple ITP will detect that example.com and ss.example.com have completely different IPs. In this case, it will treat cookies set by the tagging server ss.example.com as standard third-party cookies, limiting cookies' lifetime to 7 days. Safari won't decrease cookies' lifetime if the IP address of the domain that sets first-party cookies is half matching (i.e., 16 for IPv4, and 64 for IPv6). So if your main site IP address is 1.1.1.1, then cookies are set from the subdomain that points to the IP, which starts with 1.1. will be considered the first party, and its lifetime won't be cut. But WebKit says they might change the first 50% match rate rule. The impact of the new Safari restrictions This new release brought everyone back to where they were using third-party cookies. When a user browses your website in Safari, first-party cookies will live for up to 7 days, unless they are set from the domain whose IP matches at least 50% of your website IP address. Is server-side tracking a solution for the new ITP cookies limitations? Yes! And it's easy to prolong cookies in Safari with the help of Stape using solutions such as: [Same origin domain](https://stape.io/news/a-new-way-to-set-up-a-custom-domain-in-server-gtm). [Cookie Keeper power-up](https://stape.io/solutions/cookie-keeper). [Own CDN](https://stape.io/solutions/global-cdn). Please note: These methods can't be used simultaneously; you should choose one that fits your needs the best. Same origin domain A same origin custom domain for sGTM involves configuring your sGTM container to run on a specific path of your main website domain (e.g., example.com/sgtm) instead of a subdomain (e.g., sgtm.example.com). This approach, encouraged by Google, provides significant benefits for data collection, primarily by enabling the use of first-party cookies with extended lifetimes, even in browsers like Safari that impose shorter cookie expiration periods for subdomains. While more complex to set up, requiring a CDN or load balancer, it ultimately leads to more accurate and consistent user tracking and data collection. An advantage of this approach is that it can be configured using different methods, while Own CDN can be set up via Cloudflare only. We have a detailed guide on [how to configure same origin custom domain](https://stape.io/helpdesk/documentation/how-to-use-same-origin-approach-for-server-gtm). Scan your website for free with Stape's [Website Tracking Checker](https://stape.io/website-tracking-checker?cta=blog_article) – identify which tags may be at risk from Safari ITP and get clear, actionable steps to safeguard your analytics and ad tracking accuracy. The tool shows you how well your website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for your analytics systems and ad platforms. Digital marketers and agencies can run fast tracking audits, use the report as a checklist to double-check implementations, and win more clients with proof of server-side tracking value. Cookie Keeper This is an ITP solution developed by Stape. It is easy to configure if you use the Stape app, which we list below, although it is also possible without the Stape app. It is ideal if the same origin or own CDN cannot be configured in your case. This power-up helps to make sure that your marketing cookies are active all the time, even if they get deleted. Cookie Keeper comes with a "master cookie" - a special tracker that identifies each visitor's unique ID on your website. This cookie is stored as a first-party cookie and it lets you comply with all Safari ITP cookie rules. So when the marketing cookies are deleted, the "master cookie" provides information to restore them. This means you can still see how people are using your website and how well your advertisements are working, even if the original cookies were deleted. Set up Cookie Keeper for CMS from the list Download our apps for: [Wordpress](https://wordpress.com/plugins/gtm-server-side) [Shopify](https://apps.shopify.com/server-gtm?search_id=88e49daf-a72d-42a9-b105-8330c0ac0158&surface_detail=stape&surface_inter_position=1&surface_intra_position=1&surface_type=search) [Magento 2](https://commercemarketplace.adobe.com/stape-gtm-server-side-magento-module.html) [BigCommerce](https://www.bigcommerce.com/apps/stape-server-gtm/) [Wix](https://www.wix.com/app-market/web-solution/stape-server-gtm?appIndex=0&collimp_id=86be70ac-a9af-49a5-9218-9e25f021c772&referralSectionName=stape) [PrestaShop](https://addons.prestashop.com/en/analytics/95017-stape-server-gtm.html) [Salla](https://apps.salla.sa/en/app/1927252358)https://addons.prestashop.com/en/analytics/95017-stape-server-gtm.htmlhttps://www.wix.com/app-market/web-solution/stape-server-gtm?appIndex=0&collimp_id=86be70ac-a9af-49a5-9218-9e25f021c772&referralSectionName=stapehttps://www.bigcommerce.com/apps/stape-server-gtm/https://commercemarketplace.adobe.com/stape-gtm-server-side-magento-module.html Stape develops new solutions and updates a list of CMS apps. For an up-to-date list, please check the [CMS page](https://stape.io/apps#cms). To configure the Cookie Keeper power-up using the CMS app, please follow the [configuration instructions](https://stape.io/helpdesk/documentation/cookie-keeper-power-up). How to use Cookie Keeper if you have a custom platform If the platform you use isn't on the list above, you can also configure the Cookie Keeper power-up; instead of the standard GTM loader, you will be given JS code that must be added to your website. Please refer to our [helpdesk article on Cookie Keeper](https://stape.io/helpdesk/documentation/cookie-keeper-power-up#setup-for-other-platforms) for a detailed step-by-step guide. About Own CDN Own CDN is an option that was used before the same origin domain emerged. In terms of bypassing ITP, it is just as good as the same origin domain. So, if you find it more convenient, feel free to use it, just follow the instructions on [Own CDN from the helpdesk guide](https://stape.io/helpdesk/documentation/own-cdn). Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # How to set up Instagram Conversions API Source: https://stape.io/blog/how-to-set-up-instagram-conversion-api Instagram ads tracking is key to accurate data. Learn how Meta Conversions API improves tracking accuracy, audience targeting, and conversions. Crafting successful Instagram Ads and building an effective online presence doesn't have to be a daunting task. With careful research, creative strategies, and data-driven decision-making, you can target a relevant audience and create targeted ads that will drive more traffic and conversions. Challenges like Adblockers or Intelligent tracking prevention might mean missing out on valuable tracking information. Luckily, Meta Conversions API for Instagram is here to save the day! Find out how it works in this blog post, learn its many benefits, and get all the setup details needed for success. What is Instagram Conversions API Conversions API (formerly called Server-Side API) is a Meta functionality that allows you to transfer data directly from your server to a Meta server. Instagram is owned by Meta, which means it has the same configuration of Instagram Conversions API as Facebook Conversions API. Conversions API is an alternative to the more familiar client-side approach, which uses the placement of Meta pixel js code on site pages to send data about events committed by users on the site. Meta recommends using both pixel and conversion API to ensure all events are accurately tracked. To prevent overreporting, you should [set up deduplication](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager) that relies on two main factors: event name and event ID. If Meta sees events with identical event names and IDs, they discard one and keep another. In addition, they prioritize pixel events, meaning that if you send more event or user parameters from the server than from the web, server data will be discarded. Using the Conversions API, you can set up tracking of an event that happens outside of the site, such as a phone call or offline sale. This can be extremely helpful when your business receives significant offline sales. Not only Meta Conversions API can help you increase tracking accuracy, but it also has a positive effect on custom and lookalike audiences. Since it allows tracking events more accurately, you will collect bigger custom audiences and, for example, remarket 100% of website visitors without losing those whose tracking was blocked. Ultimately, it leads to more quality lookalike audiences since Meta will have more information about users who take action on your website. Related: [Pinterest CAPI](https://stape.io/blog/pinterest-conversion-api) for server-side tracking. What are the main benefits You may continue using only Meta Pixel for your tracking, but Meta strongly recommends setting up CAPI for several reasons. Among the benefits, we would like to distinguish the following: extensions of the cookie lifetime prevention of Adblockers and the possibility of tracking people who opted out of Meta tracking in iOS 14/15. you can use CAPI to track events that happen outside your online store, such as phone calls or offline sales. you get more control of the data and a better understanding of your customer’s journey. How to set up Instagram Conversions API To set up Instagram Conversions API, we will use the server Google Tag Manager container. 1. [Configure server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Use of the ways to deliver data to the server GTM container: [Universal Analytics](https://stape.io/blog/set-up-ga4-server-side-tracking), [Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking), [Data Tag/Data Client](https://stape.io/solutions/data-tag-client), or [Webhooks](https://stape.io/blog/debug-webhooks-google-tag-manager-server) are the most popular ones. 3. Add the [Meta Conversions API tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) to your server GTM container. 4. Set up Meta CAPI tags. You can inherit event data from the client or send event data manually. With inherit option, the Meta CAPI tag parses request data and maps it to Meta CAPI events. With the manual option, you will need to configure all events, events, and user parameters manually, but this method gives you more control. ![set up instagram conversion api](https://cdn.stape.io/i/63b6bd5eaa507692767567.png) 5. Remember to set up [Meta event deduplication](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager) if you use Meta Pixel and Meta Conversions API. Check out these articles that cover all different aspects of setting up Meta CAPI: [How to Setup Meta Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api) [Meta event math quality](https://stape.io/blog/how-to-improve-event-match-quality-facebook). [Meta Conversions API errors and how to fix it](https://stape.io/blog/how-to-set-up-facebook-conversion-api) [Meta event deduplication](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager) [Meta offline conversion tracking](https://stape.io/blog/facebook-offline-conversion-using-server-gtm) [How to improve Meta conversion attribution](https://stape.io/blog/actionable-tips-to-improve-facebook-conversion-attribution) [How to easily maintain Meta Test ID in your Google Tag Manager Server container](https://stape.io/blog/how-to-create-test-facebook-variable)https://stape.io/blog/actionable-tips-to-improve-facebook-conversion-attributionhttps://stape.io/blog/facebook-offline-conversion-using-server-gtmhttps://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-managerhttps://stape.io/blog/how-to-set-up-facebook-conversion-apihttps://stape.io/blog/how-to-set-up-facebook-conversion-api Conclusion After reading this post, we hope you understand Instagram Conversions API better. If you need help with the setup or have any questions, our team at Stape is always happy to help. So send us a message, and we will get back to you as soon as possible. Want to learn how to set up Instagram Conversion API? Please answer a few simple questions. Click Need help, fill-up the form, and we will send you a quote. --- # What are webhooks, webhook servers, and how to use Source: https://stape.io/blog/webhook-server Webhooks automate data transfer between web apps in real-time, improving server-side tracking and boosting conversion accuracy. Learn to set them up for sGTM. Among the numerous business process automation tools, a webhook server plays a key role in enabling real-time data exchange between applications. It receives incoming HTTP requests triggered by lightweight, event-driven code blocks called webhooks, and processes them the moment a specific event happens. By setting up webhooks, you can streamline processes that usually depend on manual input, ultimately saving time and energy. In this blog post, we will explain what webhooks are, why they're the perfect choice for your flexibility, how they work, and their use in server-side tracking. What are webhooks In a nutshell, a webhook is a piece of program code. It usually consists of the following parts: Webhook URL: indicates your desired request destination. Body (payload): holds the actual data or details you want to send to another app. Header: defines the structure or encoding of the message content, such as whether it's in JSON or XML format (these two are the most popular ones because they present data in a way that is easy for other applications to manipulate with). Request method: usually POST, but depending on the nature of the request, GET, PUT, or DELETE can be used, too. Webhooks are automated messages sent from web applications to other web applications. It is a powerful tool that allows developers to inform multiple services of updated content or user data. This allows web pages to remain in sync, as webhooks enable developers to connect two web services quickly and automatically transfer information between them in real time. Webhooks can be used for almost anything, including push notifications when an item has been shipped or sending payment information when a purchase has been made. Webhooks provide ease and convenience without needing manual input or middleware software, making web development smoother than ever. What is a webhook server A webhook server is an application that listens for incoming HTTP requests, typically POST requests, sent by other applications when specific events occur. Think of it as an automated notification system between software. When something happens in one system (e.g., a new user signs up, a payment is processed, code is pushed to a repository), that system sends a message (the webhook) to a predefined URL where the webhooks server is listening. The server then processes this incoming information to trigger actions in another system. Purpose of a webhook server The main purpose of a webhook server is to enable real-time or near real-time communication and automation between different software applications or services. They achieve this by: Decoupling systems: applications don't need to be tightly integrated or constantly query each other for updates. They can react to events as they happen. Efficiency: webhooks eliminate the need for continuous polling, which consumes resources and can introduce delays. With webhooks, data is pushed instantly. Automation: webhooks are a cornerstone of automation. For instance, a new sale in an eCommerce platform (event) can trigger a webhook to a server that then updates inventory, notifies the shipping department, and adds the customer to a mailing list, all automatically. Extensibility: webhooks allow developers to extend the functionality of applications by reacting to their events in custom ways. How webhooks work Webhooks work on a simple yet effective principle: Registration: to get started with server-side webhook hosting, you must first decide which application you want to trigger and which application will receive your webhooks. Typically, the sending application is referred to as the ‘source’ while the receiving application is referred to as the ‘destination.’ Once you have chosen both applications, you register a specific URL with the source application. This URL points to the webhook server. You also specify which events you want it to notify you about. Event occurrence: a webhook is triggered when an event that you are interested in occurs on your site, CRM, chatbot, or other systems. For example, a person wrote a comment or added a new product to the product accounting system. When this event occurs, the server creates an HTTP request and sends it to the address specified by the customer to receive webhooks. For example, a person wrote a comment or added a new product to the product accounting system HTTP request: the source application automatically creates and sends an HTTP POST request (though other methods can sometimes be used) to the registered URL of the webhook server. This request contains a payload, usually in JSON or XML format, with details about the event. Server reception and processing: the webhook server, which is constantly listening at the specified URL, receives this HTTP request. Action execution: upon receiving the webhook, the server processes the payload. Based on the information received, it can then perform predefined actions. This could involve updating a database, sending a notification (like an email or a chat message), triggering a build process, or initiating any other automated workflow. The user can also configure webhooks so that events on some sites trigger actions on other sites. For example, a person creates an order in the online store → the system sends a webhook to the owner's app → the app notifies the owner and sends the person an estimate. Response (optional): the webhooks server typically sends an HTTP response back to the source application to acknowledge receipt of the webhook (e.g., a 200 OK status). This confirms that the message was successfully delivered. If the source application doesn't receive this acknowledgment, it might try resending the webhook. How can I use webhooks? There are many scenarios to utilize webhook servers, some of which are: Continuous integration/continuous deployment (CI/CD): when code is pushed to a repository (like GitHub or GitLab), a webhook can notify a CI/CD server (e.g., Jenkins, GitLab CI) to automatically start a build and deployment process. Payment gateways: services like Stripe or PayPal use webhooks to notify a merchant's server about payment statuses (e.g., successful payment, failed payment, subscription renewal). Content management systems (CMS): when content is updated in a headless CMS, a webhook can trigger a rebuild of a static website. Communication platforms: incoming messages or events in chat applications (like Slack or Discord) can be sent via webhooks to other services for logging, analysis, or automated responses. Customer relationship management (CRM): updates in a CRM (e.g., new lead, deal stage changed) can trigger webhooks to synchronize data with marketing automation tools or other sales platforms. IoT devices: IoT devices can send data to a webhook server when certain sensor readings cross a threshold or an event occurs. Webhooks and server-side tracking Using webhooks in server-side tracking is surprisingly simple. With webhooks, data can automatically be sent to the server Google Tag Manager container every time an event or action takes place on your website. The most common use case of webhook in server-side tagging is sending webhooks from the CRM or CMS. For example, whenever a user is created, updated, an order placed, etc., you can send this data to server GTM. Benefits of webhooks for events tracking With the help of webhooks, you can track events that happen not on your website or app. Things like sales in offline stores or phone leads - all this data can be sent to advertising platforms using webhooks and server-side tagging. Imagine this scenario: a user stumbling across your advertisement online, clicks through, and arrives on your website. After some exploring, they had queries regarding the product, so they decided to give you a call. Customer service representatives answered all the questions, and a user placed an order by phone. In this case, one particular campaign is responsible for the order, but how can you track it? The most obvious way is to ask clients how they find your website. They might say something like an online ad or tell the platform where they saw it. But this information won’t help to understand which campaign or ad set was responsible for the conversion. Tracking such orders is possible with the help of webhooks and server-side tagging. Whenever a new phone order is created in the CRM, you can send a webhook to server Google Tag Manager with all the order and customer details. After the server GTM gets this data, you can distribute it to the advertising network. If the ad network can match a user who made an offline purchase to a user who saw your ad, this order will be reflected as an offline conversion to a corresponding campaign. Webhooks vs API An Application Programming Interface (API) and a webhook both facilitate communication between software systems, but they do so with different communication patterns. An API is a set of defined rules and protocols allowing one software application to interact with another. It acts like a menu at a restaurant: you, as the client, make specific requests (e.g., "get me customer data," "create a new order") to a server. This process is called polling. The server then processes your request and provides a response, also known as the payload. This communication is request-driven; the client initiates the interaction and actively pulls information from the server or pushes data to it. The client decides when to ask for updates. A webhook, often referred to as reverse API or push API, represents a push mechanism or an event-driven notification. Instead of the client constantly asking for updates, the server proactively sends data to the webhook listener when a specific event occurs within the server's system. It's like a delivery service: the server sends a package of information to your designated address only when something new happens. The client doesn't need to ask; they receive the information right when it becomes available. The core distinction lies in who initiates the interaction: with an API, the client makes a request; with a webhook, the server sends a notification when an event takes place. APIs are for asking questions or giving commands; webhooks are for being informed automatically about events. ![Webhook vs API work principles](https://cdn.stape.io/i/684037d2513ba050115918.png) Webhook vs API work principles With all that said, you should be aware that webhooks themselves are not APIs and do not substitute them. Instead, they work together. In other words, in order to use webhooks, your system must have a running API already. Webhooks alternative Stape has developed Conversion Tracking CRM apps that automatically send lead status updates to required platforms or generate [Customer Match lists in Google Ads](https://stape.io/blog/customer-list-google-ads). That's a quicker and more convenient way to configure offline data tracking. So far, the limited list of CRMs is supported. Learn more about these apps and how to set them up in our configuration guides: [Configure Zoho CRM](https://stape.io/blog/meta-zoho-crm-conversion-tracking-app) [Configure HighLevel CRM](https://stape.io/blog/integrate-meta-highlevel-crm-conversion-tracking-app) [Configure Pipedrive CRM](https://stape.io/blog/pipedrive-crm-conversion-tracking-app) [Configure HubSpot CRM](https://stape.io/blog/hubspot-crm-conversion-tracking-app) [Configure Salesforce CRM](https://stape.io/blog/salesforce-connector)https://stape.io/blog/hubspot-crm-conversion-tracking-app How to set up webhooks for event tracking The reason why using webhooks in sGTM can help to track conversions more accurately and improve conversion attribution is obvious. So let's dive into details on how to set up webhooks in sGTM. Using webhooks offers significant advantages for effective conversion attribution and precise event tracking. This approach enables direct, event-driven data transmission from your source systems, bypassing traditional client-side limitations. Generally, to set up webhooks for event tracking, you should: Identify the system where your events occur and configure it to dispatch webhooks for specific events (e.g., a new user registration, a purchase). Establish a webhook listener or server at a designated URL, which will receive these incoming event notifications. Program your listener to extract relevant data from the received webhook payload and forward it to your chosen analytics or tracking system for storage and analysis. These steps are quite uniform for all systems, but the setup details may differ. In this chapter, we will explain in detail how to set up and use webhooks in sGTM. 1. How to send webhooks to sGTM Check your CRM or CMS for a native plugin or functionality that supports webhooks. The most popular one does. Once you've found it, create a webhook for the event you want to track. In the webhook settings, add your server-side tagging URL with the path that will distinguish your webhook. In our case: https://ss.wp-demo.stape.io is the server-side tagging URL /order_created is the path that differentiates my webhook that sends data whenever an order is placed. ![How to send webhooks to server GTM](https://cdn.stape.io/i/63b5677b513c6190028946.png) How to send webhooks to server GTM 2. How to see webhook data in sGTM Sending webhook data from CRM or CMS is relatively easy. However, you need to see webhook data in the sGTM debugger to set up tags accurately. The chances that one can set up tags without using a debugger are low. By default, you can't see webhook data in sGTM. To make it visible, we need to use Preview HTTP header functionality in the sGTM debugger and [Stape](https://stape.io/solutions/sgtm-preview-header). To enable the sGTM preview header open your server Google Tag Manager container → click Preview → click three dots in the top right corner → click Send requests manually → copy X-Gtm-Server-Preview HTTP header. ![sGTM preview header](https://cdn.stape.io/i/68403b20744b4144371982.png) sGTM preview header ![Send requests manually in Google Tag Manager](https://cdn.stape.io/i/68403b562a0cc089052751.png) Send requests manually in Google Tag Manager Log in to your [Stape](https://stape.io/login) account, open the sGTM container, go to Power-Ups and click Use sGTM Preview header config. ![Use sGTM Preview header config](https://cdn.stape.io/i/68403df75da0b684709810.png) Use sGTM Preview header config Paste the Preview HTTP header you've copied from the server Google Tag Manager debugger and click Save. The above steps will allow you to see webhook data in the server Google Tag Manager debugger. After you've done the setup, remove Preview Header from Stape sGTM Power-ups. Our system automatically removes the Preview Header 1 hour after you’ve enabled it. 3. How to process webhook data in server Google Tag Manager The last preparation step before you can eventually send webhook data to the advertising or analytics platform is to process webhook data in sGTM. We will do so with the help of Stape’s Data Client. In sGTM, clients are responsible for claiming requests and processing request data to event data. Import Data Client to your sGTM container. The first step would be to [download Data Client from GitHub](https://github.com/stape-io/data-client). Then, go to the sGTM container, open the Templates sections, and click New client. ![Data Сlient in server Google Tag Manager](https://cdn.stape.io/i/68403ef59f65e182218384.png) Data Сlient in server Google Tag Manager Click three dots and then Import. Next, select the Data Client template you downloaded from GitHub and save it. ![Data Client tag in Google Tag Manager](https://cdn.stape.io/i/68403f565b3b3521469106.png) Data Client tag in Google Tag Manager Go to the Clients tab and create a new Client. Select Client type - Data Client, add client name, and scroll to Accepted Path Settings. Add a path that differentiates your webhook. In my case, it's /order_created and click Save. ![Data Client configuration in Google Tag Manager](https://cdn.stape.io/i/63b5677b93479364029509.png) Data Client configuration in Google Tag Manager Once done, open sGTM and test that the webhook was sent and the Data Client processed the requests successfully. 4. How to use webhook data for setting sGTM tags This step highly depends on your goals and technology stack. For example, you can send offline events to [Facebook offline tracking](https://stape.io/blog/facebook-offline-conversion-using-server-gtm) or [Google Offline Conversions API](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm). Or you can notify your sales or marketing department about new orders using [Slack](https://stape.io/blog/send-slack-notifications-using-google-tag-manager-server-container) or [Telegram](https://stape.io/blog/send-notifications-to-telegram-using-google-tag-manager-server-container) tag for sGTM. FAQs How to use webhooks in marketing? Webhooks automate marketing workflows by triggering actions, such as sending welcome emails upon new sign-ups or updating CRM records after a purchase, based on real-time events. This allows for instant reactions to customer interactions without manual intervention. How to create a webhook server? To build a webhook server, you should develop an application that exposes an HTTP endpoint, configured to listen for incoming event notifications and then execute predefined operations based on the received data. This program handles the incoming HTTP requests and processes their payloads. Can I build my own webhook? Yes, you can create a system to emit webhooks by programming it to dispatch HTTP requests containing event information to a specified destination URL whenever relevant occurrences take place within your application. You can also configure a webhook listener to react to external system events. How can Stape help with a webhook server? Stape can assist by providing a platform for server-side tagging, which enables the creation of custom webhook endpoints for sending data to other systems or acting as a receiver for event notifications without relying on client-side code. This capability allows for more controlled and secure data flows. Also, you can process webhook data in your sGTM container with the help of Stape Data Client template. Conclusion Webhooks offer an easy and convenient way to receive real-time notification updates for web-based activities, allowing companies to respond and act upon those notifications with minimal effort quickly. Additionally, webhooks are a secure way of sharing information with other web services like marketing or analytics platforms, as they don't require developers or programmers to provide users with access credentials or sensitive data. If you feel confused - do not hesitate to contact Stape support. We will be more than happy to help you. Want to switch to server-side? You can do it for free at Stape! Click Try for free and explore the advantages! --- # Facebook Conversions API vs. Facebook Pixel Source: https://stape.io/blog/facebook-conversion-api-vs-facebook-pixel Find out the difference between Facebook Conversion API and Facebook Pixel, their pros and cons, and what to choose for the best tracking. Facebook Pixel and Facebook Conversions API are both tools for tracking user actions - but they work in very different ways. Pixel relies on third-party cookies and browser-based (client-side) tracking, which can be blocked or limited. In contrast, the Conversions API uses server-side tracking, offering more accurate data, offline event tracking, and better resistance to ad blockers. In this blog post we’ll describe features of Facebook Conversions API and Facebook Pixel, compare them and discuss their setup. By the way, check out Stape’s [pre-configured templates for Meta CAPI](https://stape.io/gtm-set-up-assistant). Now it is easier than ever to configure your setup: everything is done and all ready for you! What is Facebook Pixel Facebook Pixel is a data-gathering tool that can help you make the most of your Facebook and Instagram advertisements. Basically, [Facebook Pixel](https://stape.io/blog/add-facebook-pixel-gtm), or now Meta Pixel, is a script that you put in your website code. It collects data that allows you to analyze Facebook [ad conversions](https://stape.io/blog/conversion-tracking-faq), optimize advertisements, generate targeted audiences for future ads, and remarket to people who have already made some form of action on the website. It helps companies to evaluate the effectiveness of their product or service advertising. Pixel tracks what users do when they come to your website after clicking an ad, as well as the pages they visit. How Facebook Pixel works Facebook Pixel places the cookies and triggers them to track users. Everything is happening in the visitor’s browser. And that’s why this method is called [client-side tracking](https://stape.io/blog/server-side-tagging-versus-client-side-tagging). It's also an example of third-party tracking, as data is provided to a third party (Facebook) that your visitor may be unaware of. Browsers are attempting to block third-party tracking. ![Facebook Pixel](https://cdn.stape.io/i/64eefcc547fce009297953.png) Facebook Pixel What is Facebook Conversions API and what does it do Facebook Conversions API (CAPI) is a server-side method for tracking FB events. It gives greater data quality and control over the information you track compared to a Facebook pixel. Facebook unveiled its Conversions API as a response to tracking restrictions that became more popular during the last couple of years. They state that CAPI s a powerful solution for advertisers looking to accurately measure the response and success of their FB ad campaign and helps counter new tracking restrictions like Intelligent Tracking Prevention in Safari or Firefox that limit cookie lifetimes, iOS tracking regulations, and growing ad-blocking rates. Recent studies show advertisers can lose up to 30% of conversion data because of ad blockers and tracking restrictions. If these tracking restrictions are enabled, Facebook pixels do not work. This means that FB does not receive valuable information about user actions on the site, which can negatively affect campaign success measurement and the quality of custom and lookalike audiences. With Facebook Conversions API, you can bypass all these tracking restrictions and track user behavior even when tracking restrictions are enabled, and FB pixel is blocked. How is it possible? All because FB CAPI works not inside the user's browser but on the server. Only you can control what user or event data is sent through servers. AdBlockers or ITPs can not access data on the tagging server that sends information to FB using CAPI technology. Another considerable benefit of FB CAPI is that it uses 1st party cookies, while FB pixel relies on 3rd party cookies. Every time a user from your FB ad campaign visits your website, FB sets two types of cookies: fbp (browser ID) and fbc (click ID). These cookies are set from the domain facebook.com and are considered as 3rd party (since it was not your domain that set those cookies). When the user returns to your website and converts, FB uses fbp and fbc cookies to attribute users to the campaigns. Due to ITP, the lifetime of such 3rd party cookies is decreased to 1 or 7 days. If a user clicks your ad and returns in 7 days to make a purchase, FB pixel won’t see fbc and fbp cookies since ITP erased them. In the end, even though FB pixel might track this conversion and show it in the FB events manager, it won’t be attributed to the FB campaigns responsible for driving the conversion. Facebook Conversions API can set 1st party cookies when tagging server URL is located on [your domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). In this case, fbp and fbc cookies are set from your domain, considered 1st party, and live up to 2 years. It has a massive benefit on FB campaign attribution. The last benefit is the ability to send offline events using [FB Conversions API](https://stape.io/blog/facebook-offline-conversion-using-server-gtm). Let us say your business receives a considerable portion of orders by phone. Some of these orders can be driven by FB campaigns. FB pixel can not track which user saw your FB ad campaign, clicked on the ad, and then made a purchase by phone. With FB CAPI, you can send offline events in real-time. FB can attribute such offline sales to FB campaigns by utilizing [user parameters](https://stape.io/blog/how-to-improve-event-match-quality-facebook). The more information about your users you send to FB, the more significant changes they will be able to attribute offline sales to FB campaigns. Check our [Facebook tracking guide](https://stape.io/blog/facebook-tracking) for other methods to monitor Meta performance and advanced tracking strategies. Conversions API vs Facebook Pixel comparison table Characteristics | Facebook Pixel | Facebook Conversions API Type of tracking | client-side tracking | server-side tracking Customer’s journey | Full | Full Offline event tracking | No | Yes Ad blockers resistance | Not resistant | Resistant Cookies | 3rd party | 1st party Data control | Low | High Facebook strongly recommends to use both - Pixel and CAPI, to get the most relevant data. But if your site sends the same events using both the pixel and Conversions API, events may be duplicated since FB will receive the same information from the browser and the server. Facebook has a [deduplication feature](https://stape.io/blog/how-to-set-up-facebook-conversion-api#event-deduplication-for-facebook-pixel-and-conversions-api-events). They can keep only one if they know that the browser and the server events are identical. In our blog, we have an article on the [configuration of Facebook Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api), and you are welcome to get more details on the setup there. The main reason is that combining the browser+server method will give you two data sources. And basically, two are better than one. But make sure to set up event deduplication properly. Otherwise, you might face overreporting. Conclusion We hope this article sheds some light on Facebook CAPI and Pixel differences for you. If you need help setting up or using Facebook Conversions API, please don't hesitate to contact Stape support. We're here to help you get the most out of this great tool. Got confused? Please answer a few simple questions. Click Need help, fill-up the form, and we will send you a quote. --- # Offline conversions tracking explained Source: https://stape.io/blog/ways-of-offline-conversion-tracking Explore the most popular ways of offline conversion tracking and how to set up offline conversion tracking with server Google Tag Manager. Using offline conversions tracking, which includes collecting and sending purchase data to ad platforms, can help create a customer profile and contribute to campaign optimization. In this blog post, we will explain offline conversion tracking, how it works, and provide guides on setting up offline conversion tracking for Google Ads, Meta Ads, and Microsoft Ads. What is offline conversion tracking Tracking offline conversion allows the recording of customer conversions made by phone, in-store orders, offline deals etc. That means via all of the interactions made in the real world: your customer saw an ad and went into your store to make a purchase, for example. Everything that occurred outside of your website is considered an offline conversion. offline conversion tracking - stape https://youtu.be/TnT--10GPZE How does offline conversion tracking work? There are various methods to track offline sales (manual upload of CSV file, built-in custom integrations, using connectors). We will focus on the working mechanism of the server GTM for offline conversion tracking. After a user makes an offline purchase, a webhook is triggered, and the CRM sends a webhook to the server GTM containing the order details and user information. In the server GTM container, a Client listens for incoming webhook events. It processes the event to the corresponding tags ([Facebook offline conversion tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-offline-conversion-tag),[Google Ads offline conversion tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/gads-offline-conversion-tag),[Microsoft Ads offline conversion tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/microsoft-ads-offline-conversion-tag)). After it, the conversion data is matched with online identifier (e.g., click ID) and forwarded to a platform such as Meta Ads, Google Ads, or Microsoft Ads. ![How offline conversion tracking works](https://cdn.stape.io/i/684811dfd6c7f135718377.png) The benefits of offline conversion tracking Tracking offline conversions provides numerous benefits for businesses: Accurate event measurement. It provides accurate data about customers and their purchasing habits. This can include what they buy, where they purchase it, how long it takes them to make a decision, and how much they spend. Information can then be used to inform marketing strategies or adjust pricing accordingly. ROI measurement and optimization. Offline conversions provide real-time insights that help you understand exactly how many sales your ads lead to, whether in-store or through phone orders. This helps to understand how effective campaigns are and if you need to tweak anything to increase ROI further. Lookalike customer portrait and customer experience improvement. Offline conversions are effective for gathering both qualitative and quantitative data. For example, businesses can use surveys or conduct interviews with store personnel who interact with customers to gain a deeper understanding of the shopper experience, interests, and feedback on products or services. This helps businesses improve their services for a better customer experience. Offline conversions use cases Offline conversion tracking can be applied for the following cases: Offline store visit and purchase. You are running an ad campaign on some platform, let's say Google Ads. A customer clicks on the ad to view the product details, then visits the physical store to make a purchase. Phone call conversion. Similarly, as in the example above, the first interaction happens online, but to complete the transaction, a person calls your office. In-person consultations or demos. A lead signs up for a free consultation or demo after clicking a Google or Meta ad. During such a meeting, a person decides to make a purchase. How to set up offline conversions tracking There are a few ways to set up offline conversion tracking: Manually uploading a CSV file on the platform (Google Ads, Meta Ads, Microsoft Ads) Building a custom integration Using third-party connectors like Zapier Each approach has its drawbacks. Custom integrations require hiring developers to build a connection between your CRM and platform. Tools like Zapier are easier to set up, but they can become expensive, especially when dealing with a lot of events. Manual uploads involve significant effort to properly format and prepare the CSV file. A new way of integrating offline conversion tracking is by using Stape's Conversion Tracking CRM apps or a server Google Tag Manager container. [Stape Conversion Tracking CRM apps](https://stape.io/blog/send-data-stape-conversion-tracking-crm-apps-guide) (Hubspot, Pipedrive, HighLevel, Zoho, and Salesforce CRMs are supported) can automatically track the status of your leads within the CRM. Any lead status updates are transmitted as conversion events to the desired platform. With server-side tracking, every conversion is recorded and shared accurately and securely. The integration with server GTM is possible because sGTM can directly communicate with marketing or analytics platforms API. Webhooks from your CRM or POS can be configured to send data to server Google Tag Manager, which distributes the information about offline conversions for analytics and ad network use. The main two benefits of setting up offline conversions through sGTM are: works in real-time, no manual work is required. costs way less than building your own integration or using a specialized connector. More details on what Stape can offer 👇 Stape Conversion Tracking CRM apps Stape has developed several CRM applications that can send data on lead status updates from CRM to the platform you need. The apps can also automatically create [Customer Match lists in Google Ads](https://stape.io/blog/customer-list-google-ads), filling them in with data from CRM. We currently support the following CRMs: [Zoho CRM](https://marketplace.zoho.com/app/crm/stape-meta-leads-for-zoho-crm) [HighLevel CRM](https://marketplace.gohighlevel.com/integration/6698b5f4887d5c2f8125ddb1/versions/6698b5f4887d5c2f8125ddb1) [PipeDrive](https://oauth.pipedrive.com/oauth/authorize?client_id=cc435d5629297210&redirect_uri=https%3A%2F%2Fpipedrive.stapecdn.com%2Fpipedrive%2Fcallback) [HubSpot](https://ecosystem.hubspot.com/marketplace/apps/meta-leads-api-by-stape) [Salesforce CRM](https://appexchange.salesforce.com/appxListingDetail?listingId=20bda0b1-fdc1-4ba4-ac41-2156880a3ffe) Offline Conversion tracking tag If your CRM isn't in the list of apps, you can use Stape's Offline Conversion tracking tags. Facebook offline conversion You can upload or send offline event data to Facebook by configuring [server-side tracking for Meta](https://stape.io/blog/how-to-set-up-facebook-conversion-api). It matches this data to people who saw or clicked your ads. When a match is found, the action is counted as an offline conversion Facebook Ads event. Read more on [Facebook offline conversion using server GTM](https://stape.io/blog/facebook-offline-conversion-using-server-gtm). Google Ads offline conversion Google Ads offline conversion might not only be the way to track users who converted offline, but also an accurate way to track online conversion without relying on machine learning algorithms. Allows you to track and attribute sales to AdWords campaigns. Allows feeding 1st party data to Google and attribute conversions of those users who either opted out of tracking or used ad blockers. Allows seeing behavior conversion tracking without event modeling data. Google Ads offline conversion tag uses Firebase for authentication and the Google Ads developer's account. We simplified the process of creating these two entities for Stape users, which is why the list of needed things to [set up Google Ads offline conversions](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm) depends on whether you are a Stape user. Microsoft Ads (Bing) Offline Conversion tracking You can [set up offline conversion data into Microsoft Ads](https://stape.io/blog/microsoft-ads-bing-offline-conversion-tracking) by uploading events that occurred outside of online interactions. When matched with users who interacted with Bing ads, these events are recorded as conversions. This process is similar to using Facebook's offline conversion API, with added details on setup requirements and additional parameters necessary for proper implementation. Why do offline conversions often lose attribution data? The offline events are coming from systems like CRM, POS, and include such user data as email address, phone number, or an internal customer ID. What is typically missing are the browser and ad-platform identifiers that actually enable attribution in third-party platforms (e.g., Google Ads, Meta Ads). Examples of such identifiers are _fbp, _fbc, gclid, FPID, or _ga. They are usually collected during the user's first website interaction and are not automatically sent to offline systems. In this case, a server-side enrichment becomes useful. Instead of expecting every system to pass all identifiers through the entire customer journey, the enrichment process matches incoming offline events (for example, via email or external ID) against previously stored user profiles. Once a match is found, the system can restore missing identifiers from earlier interactions and attach them to the offline event before the data is sent to advertising platforms. That’s what Stape’s Enricher power-up can do to improve the attribution of offline conversions to the online activity. It can be easily and quickly configured within Stape’s admin account; follow a [detailed guide on how to configure the Enricher](https://stape.io/helpdesk/documentation/enricher-power-up). https://www.youtube.com/watch?v=x-pF805KUp4 FAQs How to track offline conversions in GA4? To [track offline sales in Google Analytics](https://support.google.com/analytics/answer/10325025?hl=en)you should create a custom dimension for offline conversion data, create a CSV file (download the data from CRM, making sure it has unique identifiers like the User ID or GA Client ID), and import offline sales into Google Analytics ( “Admin → Data Import”). How to notify Facebook and Google Ads of offline conversions? The way to notify Facebook and Google Ads depends on the setup you've chosen. If you are using manual configuration, upload a CSV file with conversion data on the corresponding platform. If you are using the server GTM, then the platforms will be notified automatically. What is the difference between offline and online conversion tracking? Online conversions happen on the website or app, while offline conversions are made in-store, over the phone, or at a demo meeting. They are also tracked in a different way. Online conversions are automatically captured via tracking scripts on the website. Offline conversions are gathered from the CRM system and transmitted to the server GTM container via webhooks. A common hurdle with offline conversions is successfully matching those server-side CRM webhooks with the user's initial web behavior, such as specific ad platform click IDs. When identifiers are captured in a secure environment like the Stape Store, the server can instantly retrieve and append that missing web cookie data the moment an offline event arrives, effectively [automating user stitching](https://stape.io/blog/cross-session-user-stitching) to give ad platforms a complete, uninterrupted view of the conversion journey. Conclusion By understanding how conversion tracking works and what data it can provide, businesses can make more informed decisions regarding their marketing efforts - and see a boost in sales as a result. If you're interested in implementing an offline conversion tracking solution for your business but aren't sure where to start, contact our team of experts at Stape support. We'd be happy to help you get started on the path to increased offline sales. --- # Server-side tagging for agencies: why it's time to make the switch for your clients Source: https://stape.io/blog/why-does-your-agency-need-to-start-implementing-server-side-tagging-for-clients If you're an agency providing marketing services to clients, it's time to start implementing server-side tagging. Here you can find out why. Client-side tracking loses data fast because of short cookie lifespan, iOS restrictions, and blocked events, so reports never show the full picture. Server-side tracking solves this by sending data through a server for consistent conversions, consent control, and offline sales tracking. Agencies can earn from setups and audits, and Stape makes it easier with the Agency account, Partner Program, transparent pricing, and tools like Setup Assistant and Power-Ups. Why client-side tracking limits agencies today ![Data loss](https://cdn.stape.io/i/690204e3f21f0188332516.png) Client-side tracking is no longer the best marketing solution. Browsers cut cookie lifetimes, ad blockers stop tracking scripts, and iOS strips away the signals you need for attribution. The result is incomplete reports that leave agencies without enough information to build a strategy. For most professionals, this creates a real challenge. Clients want proof that campaigns are working, yet the data often looks patchy or delayed. As a result, teams spend time explaining gaps instead of showing growth, and optimizations take longer because platforms are learning from half the signals they could. This is why more agencies are moving to server-side tracking. It gives them a way to provide cleaner reporting, adapt to privacy rules without losing clarity, and keep control over how data is handled. In the sections ahead, we will look at what server-side tracking is, the benefits for agencies, and how to set it up in practice. What server-side tracking means in practice ![How server-side tracking works](https://cdn.stape.io/i/6902053cd9318237773371.png) Using server-side tracking keeps data in a first-party context. Events don't go straight from the browser to platforms like Google Analytics or Meta. They first stop at a cloud server, usually on a subdomain such as anything.yoursite.com. Depending on the setup, the data can be processed in the server GTM or relayed through a gateway. In both cases, the browser still records the first action, like a purchase or signup, but instead of sending data straight to the platform, it passes through the server. In the server GTM case, the data can be modified or enriched before being sent to the ads and analytics platforms. If you use a gateway, the setup is faster and simpler, but you'll be limited in the features you can suggest to your clients. Server-side tracking setup gives your clients longer-lived first-party cookies, more consistent user IDs, and one place to check consent before sending any data out, instead of having to repeat that step for every single tag in the browser. It also opens new options: you can send offline conversions from your clients' sales teams or CRM updates that never touched the website. For agencies, the real value is having tracking that works consistently and gives you the freedom to include data from more than just the website. How your agency can benefit from moving to the server side ![Benefits](https://cdn.stape.io/i/690204d1f0fd5207817966.png) Server-side tracking opens new service opportunities for agencies. It makes data more transparent and valuable for clients. Here's how agencies benefit: More reliable reporting. You can measure results across browsers and devices, even when client-side tracking misses data. Easier maintenance. Server setups reduce constant troubleshooting caused by browser updates or blocked scripts. New service lines. You can offer server-side setup, data validation, and tracking health checks as part of ongoing care packages. Better ad performance. Server-side setups improve signal quality for Meta, Google, TikTok, and other ad platforms through Conversions API connections, helping achieve more accurate attribution and lower CPA. Stronger client trust. More precise data helps you explain performance with verified numbers and prove ROI faster. Why the server-side approach matters Server-side tracking gives agencies practical advantages that client-side setups cannot guarantee. iOS and ITP restrictions no longer cut campaign visibility short. Events sent through your own domain arrive more reliably, even when ad blockers are in place. Offline conversions and CRM updates can be added to the same flow, so reports include actions that were invisible before. Most importantly, you keep control of the data for your clients. Consent is applied in one place, and you decide what data is shared with each platform. For agencies, this means fewer gaps in reports, stronger client trust, and more time to focus on strategies that grow campaigns. The main benefits of the server-side approach include: Tracking resilience to iOS and ITP limits Safari's short cookie lifespan and Apple's ITP rules reduce measured conversions in client setups. A server-side setup restores visibility by using first-party cookies and enhanced matching. In the [Workwear Group project](https://stape.io/blog/danish-market-leader-improves-google-ads-measurability-by-17-percent), this approach increased Google Ads revenue by 17% and helped deal with Safari and ITP limits. Ad blocker resistance Events sent through a subdomain are less likely to be blocked by ad blockers, so more conversions reach ad platforms and analytics. [Onyx Cookware](https://stape.io/blog/how-onyx-cookware-measured-115-more-value-in-google-ads) case shows what this looks like in practice, with a 115% lift in tracked Google Ads value after moving to server-side. New data-flow capabilities With server-side tracking, you can add non-browser signals like CRM events, email platform events, and offline outcomes. [Scandinavian Biolabs](https://stape.io/blog/case-study-scandinavian-biolabs-amplifies-klaviyo-revenues-with-server-side-tracking) applied this to Klaviyo automation and increased revenue from email campaigns. [Optimize With Data](https://stape.io/blog/thirty-percent-conversions-growth-with-stape-partner-optimize-with-data) also used server-side with CRM webhooks and recorded 30 % more conversions compared to a browser-only setup. Enhanced data ownership and control When events go through your own server made for your clients, you stay in charge of how data moves between their site and marketing platforms. In a server GTM setup, you can manage consent, filter parameters, or enrich events before sending them. [McGen Digital](https://stape.io/blog/mcgendigital-obtains-22-per-cent-cost-reduction-and-8-in-event-manager-rating) reported a 22 % drop in conversion costs within two weeks, and an Event Manager rating jumped to 8.2 after moving to server-to-server for Meta and Google. Ways agencies can earn with server-side tracking For agencies, server-side tracking is a service in itself. It brings reliable data to clients while opening new ways to generate revenue. ![more complete data and clients who scale with you](https://cdn.stape.io/i/6909e6b058a95014082588.png) Many teams start with setup projects. These include configuring server GTM containers, DNS records, consent flows, and platform tags. Once the base is in place, agencies often move to monthly retainers for monitoring, updates, and change requests. This creates a predictable income while keeping the clients’ tracking stable. You can offer value-added services as well. Audits can show gaps in existing setups and provide an entry point for new contracts. Migration projects, where agencies move clients from broken client-side setups to server-side, are another important revenue stream. Finally, joining a partner program adds recurring income on top. With Stape, agencies earn a lifetime commission on every hosted client, so the work you do once continues to pay back as long as the client stays active. That is why the way you present these services during proposals shapes whether clients see server-side tracking as a growth driver or just another line in the budget, and [pitching server-side tracking](https://stape.io/blog/how-to-pitch-server-side-tracking) well gives agencies the approaches to build trust and secure long-term work. Getting started and choosing the right tools Starting with server-side tracking does not need to be complex. The most important thing is to know which tools are essential and which steps you can already take for free to get comfortable with the setup. The tools you need Agencies usually work with these [main elements](https://stape.io/blog/server-side-tracking-tools) of server-side tracking: 1. [A server GTM container](https://stape.io/helpdesk/documentation/create-server-container-in-google-tag-manager) This is the center of the tracking setup. sGTM receives data from your clients' websites, processes it, and sends it to analytics or ad platforms. With a server container, you can control what information is sent and keep your clients' data more accurate. 2. [A reliable hosting provider](https://stape.io/helpdesk/documentation/create-server-container-in-stape) You can choose [Stape](https://stape.io) as your server provider because it hosts your clients' GTM server container automatically and handles scaling for you. You don't need to manage cloud platforms or commands, as everything runs in a few clicks. 3. [A consent solution](https://stape.io/blog/consent-mode-server-google-tag-manager) Every tracking setup needs consent. It helps your clients stay privacy-compliant and makes sure data is sent only when visitors agree. A consent solution tells the tags when to fire and what data they can send. Without it, your clients risk missing conversions or collecting data without permission. Tips for getting started Some first steps can be done for free and can already bring value: Create your [Agency account at Stape](https://stape.io/sign-up/agency) and explore the dashboard. It helps you see how client projects can be organized and how permissions and billing are managed. Use the [Website Tracking Checker](https://stape.io/website-tracking-checker). It helps you analyze the tracking health of the website you take care of and gives insights on how to improve tracking for both web and server-side tracking. Install the [Stape GTM Helper](https://stape.io/solutions/stape-gtm-helper). It improves Google Tag Manager's preview and debug mode, making it easier to test and troubleshoot tags directly in your browser. Try the [Setup Assistant](https://stape.io/gtm-set-up-assistant). It generates pre-made GTM container templates for both web and server-side setups, based on your clients' CMS and the platforms they use. Learn more in the [Stape Academy](https://stape.io/academy). You can start from zero and learn the basics of server-side setup, how to configure Conversions APIs for different ad platforms, and explore extra lessons on various CMSs and Stape features. These steps let agencies try server-side tracking without heavy investment, giving a clear view of how it can fit into services and open new possibilities. What Stape offers to agencies Stape is built with agencies in mind. It helps you manage client projects and turn tracking setups into a consistent source of revenue. Agency account With the Stape Agency account, you can keep all client containers in one place. You can either leave those accounts' billing to their owners, or opt to [pay for their subscriptions for them](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts). Permissions and notifications are managed from the same dashboard, so you decide who has access and what they see. This makes daily work easier and reduces the time spent switching between accounts. [Create your free agency account](https://stape.io/sign-up/agency) Partner program Thanks to the [Stape Partner Program](https://stape.io/partner), Agencies can upgrade their accounts to Partners and earn a lifetime commission on every hosted client. It means the work you do once continues to generate income as long as the client stays active. Same as with Agencies, Partners can either [pay for their sub-accounts' subscriptions](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts) or leave it to their owners. Sales and enablement tools Agencies get access to a [demo account](https://stape.io/sign-up/demo), [built-in analytics](https://stape.io/solutions/stape-analytics), and [Website Tracking Checker](https://stape.io/website-tracking-checker) to help you analyze the tracking health of your clients' websites. These resources make it easier to explain server-side tracking to prospects and give your team a clear way to show its value. Flexible pricing and calculator Pricing is adjusted to fit different client needs. The built-in [calculator lets you estimate costs](https://stape.io/price-server-google-tag-manager#calculator) with precision, so proposals are transparent and clients know exactly what to expect. Stape features and benefits Stape also provides extra features that make hosting more stable and easier to manage. Features that enrich data [Cookie Keeper](https://stape.io/solutions/cookie-keeper) prolongs cookie lifetime so return visits and conversions are recorded beyond short browser limits. [Custom Loader](https://stape.io/solutions/custom-gtm-loader) helps tracking run even when ad blockers hide default scripts, so more events reach your stack. [User ID](https://stape.io/solutions/user-id) assigns a persistent ID so actions from the same person can be linked across sessions and devices. Features that help with debugging and testing: [Logs](https://stape.io/solutions/logs) show request details for quick checks and faster issue detection. [Ad Blocker Info](https://stape.io/solutions/ad-blocker-info) shows when a visitor uses an ad blocker so that you can see its impact during tests. [Bot Detection](https://stape.io/solutions/bot-detection) gives each visitor a score from 0 to 100. Traffic with a score between 50 and 75 is marked as likely bot, and traffic above 75 is blocked because all checked parameters show clear bot behavior. Conclusion: bringing reliable tracking to your clients For agencies, client-side tracking keeps breaking down. When reports miss events, platforms lose signals, and strategies slow down because optimizations rely on incomplete data. Server-side tracking changes this by making conversions more consistent and adding sources like CRM systems or offline sales into the same flow. With Stape, agencies get everything they need to make server-side tracking part of their work. The Agency account keeps projects simple to manage, and the Partner Program adds ongoing income, while features like Setup Assistant or Autoscaling reduce manual effort in daily setups. Because pricing stays clear, it is easier to plan costs and explain them to clients. If you want to see how this works in practice, [sign up for Stape](https://stape.io/sign-up) and try it out. To make your offer even stronger, agencies can connect server-side tracking with [extra services](https://stape.io/blog/services-marketing-agency-should-offer), including analytics support, AI workflow setup, and profit-based reporting. --- # How Chrome’s 3rd party cookies blocking impacts the future of online marketing Source: https://stape.io/blog/how-chrome-3rd-party-cookie-blocking-impacts-the-future-of-online-marketing Find out the details of Google Chrome 3rd party cookies phaseout and how to prepare for these changes. Google is constantly updating its cookie policies, and it can take some work to keep track of what's happening. That's why we decided to make this blog post to keep you updated with the latest information. As many of you may have heard, Google is making a change to how third-party cookies are handled in Chrome again. According to the last statements, Google will stop the use of third-party cookies in Chrome in 2025. ⚠️UPDATE: Google announced that it will [no longer pursue its plans to phase out third-party cookies](https://privacysandbox.com/news/privacy-sandbox-update/). Instead, the company will introduce a new solution: a one-time prompt that allows users to set their preferences, which will apply across all Google browsing experiences. In this blog post, we'll discuss what third-party cookies are, why they're essential, and what you need to do to prepare for their removal from Chrome. We'll also provide tips for getting the most out of these changes. So read on for all the details! What is wrong with 3rd party cookies Third-party cookies are a technology websites use to collect data on user behavior. These cookies are placed by websites other than the website you're currently visiting, such as Google and Facebook. Third-party cookies are used for a variety of purposes, such as advertising and user profiling. They allow websites to know what pages or products users have visited, what links they have clicked on, and more. This data can be used to track analytics, improve customer experience, display tailored ads, and more. From a technical perspective, third-party cookies are stored in the browser memory when users visit a webpage belonging to a certain domain (the "third-party"). They usually have a longer lifespan than first-party cookies (from minutes to years), meaning that the third party can collect information about the user's browsing habits over time rather than just within one session. ![first and third party cookies](https://cdn.stape.io/i/64ef057bcde46543129030.png) From a privacy perspective, third-party cookies can also be used to track user behavior across different websites without their consent. It's due to the fact that they allow third parties access to personal data gathered from multiple sites, which could then be used for targeted marketing or other purposes. To combat this issue, some browsers offer opt-out options or tools that block third-party requests in order to increase privacy protection for their users. Third-party cookies are powerful tools that enable companies to track analytics and customize advertisements and offerings based on users' browsing habits. However, it is important for web developers and companies who utilize these tracking tools to ensure compliance with consumer privacy standards in order to protect user data in accordance with current regulations. Details of Google Chrome 3rd party cookies phase out Google originally planned to discontinue Chrome's support for third-party cookies this year. But they changed their plans as they needed more time to test the Privacy Sandbox initiative — a less intrusive solution for delivering targeted advertising. The Sandbox is a set of technologies that seek to secure people's online privacy while still offering businesses the tools to advertise successfully. So by the end of 2024, Google will be deprecating third-party cookies. For marketers and advertisers, this means more time before adjusting your advertising strategies to target Chrome users. How will this change affect your site The impact this change will have on websites depends on how reliant they are on 3rd party cookies for analytics and marketing purposes. Websites that rely heavily on these types of cookies may face difficulty adjusting their strategy or finding alternative ways to collect data about their users once the phaseout begins. Companies that lack first-party data will struggle to target and remarket to customers, making advertising more difficult. You may need to invest more resources into developing your own analytics solutions, as well as look into alternative marketing strategies such as using first-party data and first-party cookies, as well as email campaigns or social media outreach instead of relying solely on targeted ads. Additionally, many websites may also need to update their privacy policies in order to comply with the new regulations regarding user data collection once the phaseout begins. What can you do to prepare for the sunset of 3rd party cookies Safari and Firefox already limit the use of 3r party cookies. When Chrome starts doing the same, it will mean that most browsers will not support 3rd party cookies, which may have a massive impact on website analytics and online advertising. One of the best ways to prepare for the third-party cookies phaseout is by moving towards a server-side tracking model. The three main ways of solving 3rd party cookie issues with server-side tracking are: - 1st party cookies You can set first-party cookies when using a [custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) for your tagging server. For example, using client-side tracking for Google Analytics sets 3rd party cookies that expire in 1 or 7 days. For the server-side tagging, cookies will be set from your custom domain, treated as the first party, and left for up to 2 years. - 1st party data After sun setting cookies for major browsers, advertising platforms like Facebook or TikTok will have less ability to understand users' interests. With the help of server-side tagging, you can send 1st party user data to advertising platforms, giving them more information about your users. It will reflect in more accurate interest targeting. Conclusion: While the 3rd party cookies will certainly cause some changes for site owners and users, it doesn't have to be a negative experience. With a little preparation and by working with Stape support, you can ensure that your website is ready for this change and that your visitors continue to have a positive experience when browsing your content. Don't hesitate to reach out to Stape if you have any questions or need help getting started! Need assistance? All it takes is a few simple questions. Click Get help, fill-up the form, and we will send you a quote. --- # Server-side tracking tools Source: https://stape.io/blog/server-side-tracking-tools Server-side tracking boosts website performance, improves ad attribution, and ensures data accuracy. Discover how server GTM simplifies implementation. Server-side tracking is a powerful tool that can significantly enhance your website's performance, influence your advertising strategy, and provide valuable insights into user interaction. This blog post will introduce you to the concept of [server-side tagging](https://stape.io/) and guide you through the most popular server-side tracking tools. By the end, you'll be equipped with the knowledge to choose the right software for your company, based on its unique features and capabilities. Everything you need to know about server-side tracking Server-side tracking is a type of tracking/data collection method that involves a cloud server instead of a client’s browser. You install and manage it yourself, but the principle behind this is the same as with client-side tagging — only now there’s an additional step. This method has several [significant advantages](https://stape.io/blog/benefits-server-side-tagging): it helps your website to load faster; it prevents data loss caused by ITPs, it makes your tracking more privacy compliant; it implements first-party cookies, solving the issue with short-living third-party ones; it allows you to set up different APIs on your server to improve attribution from the paid sources, like [Facebook](https://stape.io/blog/how-to-set-up-facebook-conversion-api), [TikTok](https://stape.io/tiktok-events-api-gateway), [Snapchat](https://stape.io/blog/snapchat-capi), [Google Ads](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords), and others. When it comes to methods of server-side tracking, there are 4 main ones we can highlight. All of them have advantages and disadvantages and may be more or less applicable for different projects. Log analytics. This method analyzes log data from a website or application to gain insights into user behavior. Server-side tagging. This method uses a dedicated tag manager server to host data and send it to analytical platforms. Server-side tagging offers improved data accuracy and control, as it bypasses the limitations of client-side tracking. Hybrid server-side tracking. This approach combines the convenience of client-side data collection with the control and security of server-side tracking. Hybrid tracking allows organizations to leverage the strengths of both methods, providing a balanced solution for data collection. Pure server-side tracking. This method collects data solely on the server side, without user browser involvement. It offers the highest level of data accuracy and control, but can be more complex to implement. While all 4 methods described above are equally viable, you must understand your business’s needs and nuances to select the one that would provide you with the best effect. If you address the [Stape experts](https://stape.io/blog/google-tag-manager-expert), we could advise you on the better choice, but we would not make it for you. Comparison of the most popular server-side tracking tools Many tools on the market help set up server-to-server tracking. This guide will focus on the most popular: server Google Tag Manager, Segment, and Tealium. 1. Stape and server Google Tag Manager ![image](https://cdn.stape.io/i/6810ca8e9752d237344649.png) Stape has almost become a synonym for server-side tracking for the last couple of years. It is one of the most popular services for a server GTM hosting, and in addition to that, it offers dozens of features and power-ups. For instance, you can connect all the needed APIs, set up the webhooks, or configure gateways with us. In other words, we provide almost 360° coverage of all your tracking needs. Almost, because there is always something new and room to grow. Another important aspect of cooperating with Stape is the [price of our services](https://stape.io/price). Our prices start at $20 (our plans are flexible, so the final number depends on your needs), and small businesses can even enjoy our services for free. By the way, if we have already started talking about free things, we also offer a library of sGTM tags and Stape Academy with a step-by-step course on how to set up server-side tracking. Pros: Google Tag Manager is a tool that offers great customizability, full control over the tracked data, and flexibility in your tracking setup. Reasonable and flexible pricing starting at $20. Free plan for small businesses. Stape Academy and a free sGTM tag library are available to everyone, regardless of whether you are our client. We provide European hosting as well, so you can stay GDPR-compliant while using GA4. Cons: If you do not have any basic understanding of how tagging works or have no previous experience, setup and maintenance can be challenging. Stape simplifies the whole process, but you still need to invest time and effort to learn the fundamentals and get the most out of your tracking. 2. Segment Segment is a tool that combines the functionality of web and server GTM, adding a few features on top, such as personas or CDP. Compared to GTM, Segment tries to make the tagging process more straightforward. It was initially designed as a tagging tool for non-tech people. Simplicity comes at a higher cost. Segment has a Free plan that fits small websites with less than 1000 visitors/month and uses only two destinations. Most small websites will need the next tier, which costs $120/month and includes 10,000 visitors/per month. You will need to pay more if you have a more significant business with more than 300 daily users. So, it may be more cost-effective to hire an sGTM professional and set up web GTM and sGTM tagging, paying a one-time setup cost than to cover recurring Segment costs that will grow if your site grows. Pros: An easy-to-set-up tool. Develops new destinations and integrations quite often. Provides email support even for the free tier. Offers solutions besides the web and server tagging tools. Cons: Costs. It can be 100 times more expensive than GTM. It depends on the traffic volume and the tools you need in the suite. There is no community gallery, which affects the number of integrations. GDPR compliance might be an issue. 3. Tealium From our experience, Tealium is a choice of big enterprise companies that don't want to use GTM. This could be because of Google360 costs or the features that Tealium offers compared to GTM. Tealium's versatility makes it a complex tool. Learning the ropes of this platform takes some time, but once you find your footing, there are no limits to what can be accomplished! Pros: An advanced set of features for tagging. The support team is available. Cons: Enterprise-level price. Complexity. Why consider GTM as a server-side tagging tool? We believe server GTM is the best option for server-side tagging solutions among all the tools. The reasons are simple: web GTM is free, and sGTM is cheaper than most competitors. In addition, the number of integrations in sGTM is enormous due to a community gallery. You can even hire a specialist to develop a custom solution for you. At Stape, we do that often for our clients, so if you need help with a custom tag or any time of integration with the database, etc., feel free to reach out to [care@stape.io](mailto:care@stape.io). Please visit our [blog](https://stape.io/blog) if interested in the possibilities sGTM can offer you. We have many articles on only sGTM tags and more advanced techniques like enriching data, storing data, processing data, etc. Conclusion Thank you for reading! We hope this article introduced you to server-side tagging and helped you understand what the most popular server-side tracking tools are about. If you want to learn more about sGTM or what possibilities it can offer your company, Stape has excellent solutions. Our team of experts is always happy to help new users get started with tracking and answer any questions. Need help? All it takes is a few simple questions. Click Get assistance, fill-up the form, and we will send you a quote. --- # Google Ads offline conversion using server GTM Source: https://stape.io/blog/google-ads-offline-conversion-using-server-gtm Set up Google Ads offline conversion tracking via sGTM. This guide covers tag config, Google Ads connection, and required parameters like Conversion Action ID. Google Ads offline conversion was initially designed to track actions that occur not on your website. It can be orders by phone, in-store orders, etc. Since the beginning, Google Ads offline conversions have been essential for companies with a significant percentage of offline sales. With the recent tracking restrictions, like iOS 14/15, using offline conversions to measure Google Ads campaign results might be the only way to accurately track actions after users see or click your Google Ad. Want to know how to set up Google Ads offline conversion tracking using server Google Tag Manager? Look no further! This blog post will show you how to use the sGTM container to send offline conversions to Google Ads. This will allow you to track and attribute sales to Adword campaigns. Note: the method provided in this article is an old approach to tracking offline conversions. Instead, you can configure the [offline conversion tracking via the Google Data Manager API](https://stape.io/blog/google-ads-conversions-tracking-with-data-manager-api). This article provides a legacy method that still works if, for technical reasons, you can’t implement the Data Manager API at this time. What are offline conversions Offline conversions are sales or leads that can be attributed to a Google Ads campaign, even though they occur offline (i.e., not on the website where the ad was clicked). For example, if you run a Google Ads campaign for your brick-and-mortar store and someone sees your ad, then comes into your store and makes a purchase, that would be an offline conversion. Another example of an offline conversion would be if you run a Google Ads campaign for your law firm, and someone sees your ad, then calls your office to schedule a consultation. In this case, the lead would be attributed to your Google Ads campaign even though the actual conversion (scheduling the consultation) occurred offline. Google has been relying more heavily on machine learning and modeling in recent years. For example, with the release of Google Analytics 4 last year, they introduced GA4 integration with Signals, which helps with cross-device user tracking based on data of people who logged in to their Google accounts. In GA4, you can also enable data modeling that will help track users who do not allow using cookies or opt-out of tracking. Google’s data modeling relies on machine learning. When a user agrees to use cookies or allows apps to track them, Google is allowed to observe and report user actions on the site. They call it observed data. When Google cannot track people, it uses the information they learn from observed data to build Modeled data. Since modeled data uses machine learning, there is a list of criteria that your GA4 property has to meet to be eligible for enabling modeling. The main reason is that machine learning is valid when it observed significant amounts of data. The principal criteria are: Consent mode must be enabled. At least 1,000 events/day with analytics_storage='denied' during the last 7 days. At least 1,000 users/day have analytics_storage='granted' for at least 7 of the previous 28 days. ![Google Analytics 4 modeling](https://cdn.stape.io/i/670ce7fd94608249259995.png) Since tracking restrictions have been rising during the last several years, some research shows that you can miss more than 30% of data in your analytics tool or advertising platforms. Saying all that, Google Ads offline conversion might not only be the way to track users who converted offline but also an accurate way to track online conversion without relying on machine learning algorithms. Some conversions (both online and offline) can be canceled, or some errors may occur with conversion tracking, in this case, try [Stape’s Google Ads Conversion Adjustments tag](https://stape.io/blog/google-ads-conversion-adjustment) to ensure the data is tracked precisely. Benefits of Google Ads offline conversions Allows tracking and attribution of events that happened offline (e.g., in-store or over the phone). Reports more accurate ROI Allows feeding 1st party data to Google and attribute conversions of those users who either opted out of tracking or used adBlockers Allows seeing behavior conversion tracking without event modeling data. Methods to configure Google Ads offline conversions tracking Stape provides the following ways to set up Google Ads Offline Conversion Tracking: Stape Conversion Tracking CRM Apps Stape has developed apps for CRM that automatically send offline conversion data from your CRM to Google Ads, creating Customer Match Lists in your Google Ads account. Explore the setup guides for the CRMs currently supported below: [Configure HighLevel CRM](https://stape.io/blog/integrate-meta-highlevel-crm-conversion-tracking-app) [Configure HubSpot CRM](https://stape.io/blog/hubspot-crm-conversion-tracking-app) Using the server-side GTM container tag If you’re using a CRM that isn’t supported by Stape’s apps, you can still implement Google Ads Offline Conversion Tracking using Stape’s server-side GTM tag. We will show how to configure it step-by-step in the article below. What you need to set up Google Ads offline conversions tag in server GTM Google Ads offline conversion tag uses Stape Google Ads connection for authentication and Google Ads developer's account. We simplified the process for Stape users, which is why there are differences in requirements based on where your server GTM is hosted. Google Ads Connection You can find Google Ads Connection in the Connections tab of your Stape admin account. Then click sign in for Google Ads and pass the authorization with your Google account with access to the Google Ads you’re setting this up for. ![The Connections tab](https://cdn.stape.io/i/69246d9944347249454367.png) How to set up Google Ads offline conversion tag 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. The two most popular sending data to sGTM are by [setting up server-side Google Analytics 4 tracking](https://stape.io/blog/set-up-ga4-server-side-tracking), and [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Download the [Google Ads tag](https://github.com/stape-io/gads-offline-conversion-tag) from GitHub. 4. Click three dots in the top right corner → Click Import → Select the Google Ads tag template you’ve recently downloaded from GitHub → Click Save. ![Import template](https://cdn.stape.io/i/672b7f5000e51166360964.png) Or Add [Google Ads Offline Conversion tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/gads-offline-conversion-tag) from Template Gallery. ![Add template](https://cdn.stape.io/i/672b7f7b0df0e359947070.png) 5. Create Google Ads Offline Conversion tag. In the Tags section, click New, and as Tag Type choose the one you uploaded as a tag template. 6. Configure the following settings: Conversion Action ID - refers to the conversion ID you want to use to track offline conversions. To track offline conversion, you need to create an offline conversion type in Google Ads. After offline conversion is created, to find the conversion action ID, click edit goal and check the URL. ctId parameter is responsible for Google Ads offline conversion ID. ![Conversion Action ID](https://cdn.stape.io/i/672b7fae42eef117574231.png) Customer ID - your Google Ads MCC account ID. It can be found under the drop-down arrow near the name of the MCC account. Conversion Environment - Conversion environment of the uploaded conversion. Conversion environment should be UNSPECIFIED. Conversion DateTime - The date-time at which the conversion occurred. It must be after the click time. The timezone must be specified. The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g., "2019-01-01 12:32:45-08:00". If not set, the current time will be used. Gbraid - The click identifier for clicks associated with app conversions and originating from iOS devices starting with iOS14. Wbraid - The click identifier for clicks associated with web conversions and originating from iOS devices starting with iOS14. Gclid - The Google click ID (gclid) is associated with this conversion. You can customize tags by adding Conversion Custom Variables, Cart Data, and User Data. In the end, you will get the configured tag; below is the example: ![Google Ads offline conversion](https://cdn.stape.io/i/673b1728d1d8e725666957.png) How to set Google Ads offline conversion tag up for non-Stape users If you don’t use Stape for server-side tracking or just would like to handle your own authentication, you will need: 1. Enable Google Ads API. To do it use a [link to Google Cloud Console](https://console.cloud.google.com/apis/library), look for Google Ads API, and click “Enable”. 2. Google Service Account with corresponding permissions. Check out [how to connect your Google Service Account to Stape](https://stape.io/blog/how-to-connect-google-service-account-to-stape) in our blog post. 3. Google Ads developers token. See the detailed instructions on [how to apply for a developer token](https://developers.google.com/google-ads/api/docs/get-started/dev-token) in Google’s documentation. 4. Choose Own Google Credentials in the tag settings: ![Own Google Credentials](https://cdn.stape.io/i/672b808054372117120927.png) Add operating Customer ID - it stands for Google Ads account ID. You can find it under "Account Information." What happens if click IDs are missing in offline data The attribution of offline conversion depends on click identifiers such as gclid, wbraid, or gbraid. These values are captured on the first interaction with an ad/website and must later be included when sending an offline conversion event to Google Ads. By the time a conversion happens offline, these identifiers are frequently missing because the conversion data is separated in time and system from the online ad click. A server-side enrichment using [Stape’s Enricher power-up](https://stape.io/helpdesk/documentation/enricher-power-up) helps deal with this problem. When an offline conversion event arrives at the server container, it can be matched using available identifiers such as an email address or an external customer ID. If a match is found in previously stored user profiles, the missing Google click identifiers can be restored and attached to the conversion event before it is sent to Google Ads. https://www.youtube.com/watch?v=x-pF805KUp4 This allows offline conversions to still be properly attributed to the original ad click and provides Google Ads with more data to optimize the ad targeting. Conclusion Offline conversion data tracking is the process of measuring how customers interact with your business offline. This includes people who visit your website but don’t purchase anything, people who call you after seeing one of your ads, and even people who visit your physical location. By tracking this data, you can better understand how well your advertising campaigns are performing and whether or not you should be increasing your budget. We've walked you through the steps in this blog post, but if you need help setting it up, don't hesitate to reach out to us. We'd be happy to assist! Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get assistance, fill-up the form, and we will send you a quote. --- # Actionable tips to improve Facebook conversion attribution Source: https://stape.io/blog/actionable-tips-to-improve-facebook-conversion-attribution Improve Facebook conversion attribution with server-side tagging. Learn FB CAPI methods, event enhancement, and offline conversions for better tracking. Proper Facebook conversion attribution is essential for businesses that want to take full advantage of paid advertising. While some companies still rely on browser tracking, shifting to server-side tracking can provide more accurate data and give you better insights. [Server-side tagging](https://stape.io/blog/server-side-tagging) enables direct communication between your server and the Facebook server, delivering quality first-party data and using first-party cookies. Verifying event data Using Facebook's Events Manager tool is crucial for ensuring accurate reporting and optimization, guaranteeing the effectiveness of your strategies. This blog post will provide actionable tips to help you improve your Facebook conversion attribution using server-side tagging. What is Facebook conversion attribution Facebook conversion attribution is crucial to measuring the effectiveness of your Facebook ad campaigns. It allows you to track the actions taken by users after clicking on your ads, such as making a purchase or filling out a form. [Understanding conversion attribution](https://stape.io/blog/attribution-tracking) is essential to optimizing your ad campaigns and improving your return on investment (ROI). Facebook uses various methods to track conversions, including the Facebook pixel, server-side tracking, and mobile app tracking. The Facebook pixel is a small piece of code that you place on your website to track conversions. It triggers events when specific actions are taken on your website and then sent to Facebook for tracking. On the other hand, server-side tracking sends data directly from your server to Facebook, allowing for more accurate and detailed tracking. Find out more about different methods to track Facebook conversions in our [Facebook tracking guide](https://stape.io/blog/how-to-improve-event-match-quality-facebook). How server-side tagging can help with Facebook attribution One of the main advantages of server-to-server (s2s) tagging is that it provides improved accuracy over client-side tracking methods. This is because s2s tagging can’t be blocked since the communication takes on the server level. Tools like AdBlocker or other tracking prevention mechanisms can’t access data sent through the server. When you enable FB s2s integration, your server communicates directly with the Facebook servers, sending reliable data about events and users who visited your website. This confidence in your tracking methods helps Facebook accurately attribute your users to their FB profiles, leading to quality reporting and a higher chance of successful targeting. “The most popular way of server-to-server Facebook tracking is setting up [Shopify Meta Conversions API](https://stape.io/blog/facebook-conversion-api-and-shopify) with the help of the Google Tag Manager server. However, there are several approaches to setting up FB CAPI in sGTM.” To integrate the Facebook Conversions API Tag within a server-side Google Tag Manager setup, you must configure the tag, set the necessary parameters, and ensure the data flows from the website through the GA4 web tag to the Facebook server for efficient event tracking. In this guide, we want to describe different methods of setting up FB CAPI, how each way impacts FB attribution, and how to improve attribution. These suggestions are based on Stape’s experience and Stape customers’ feedback. Facebook Conversions API (browser+server) Facebook recommends setting up CAPI using the browser+server method. When browser tracking is blocked, server tracking will still send user data to Facebook. When both browser and server tracking are triggered, FB uses the event name and ID for [event deduplication](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager). Event deduplication is a process through which Facebook identifies and removes duplicate events to prevent overreporting. It discards one event and keeps another to ensure accurate tracking. Check out our blog post describing setting up [Facebook CAPI using server GTM](https://stape.io/blog/how-to-set-up-facebook-conversion-api). FB gives higher priority to browser events. When they see both browser and server events, their [deduplication](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager) algorithm will likely discard server events and record browser events. So, if you send more data with a server event, FB won’t be able to read this data. They also do not combine web and server event parameters. It is crucial to pass Facebook-specific parameters correctly to enhance Facebook tracking and ensure compliance with privacy standards. An essential aspect of setting up FB CAPI using hybrid methods via Google Tag Manager pops up when you use GA4 (or any other GTM tag) to deliver data from the web to server GTM. In cases when AdBlocker blocks GA4, it does not provide data to sGTM, meaning FB CAPI tags also do not trigger. So, in this scenario, browser events and server tags do not trigger. To solve this problem, Stape created [a Custom Loader power-up.](https://stape.io/solutions/custom-gtm-loader) This power-up makes your GTM and GA4 script resistant to AdBlockers. So when AdBlocker uses its maximum capacity and blocks gtm.js or collects requests, Custom Loader hides them and prevents them from being blocked. This way, when the FB pixel is not working, your GA4 tag will still deliver data to the sGTM container, and sGTM will send FB CAPI events to Facebook, meaning user action is tracked. On our blog, you can [learn how to avoid Google Tag Manager being blocked by Adblockers](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers). Note: FB recommends setting up the browser+server method. Advantages: The Facebook Conversions API (browser+server) ensures more reliable tracking by bypassing browser limitations like ad blockers. Disadvantages: Server tracking can be blocked unless you use stape Custom Loader power-up (the use case is described earlier in the blog post). More comprehensive implementation is available if you do not use web GTM to set up FB pixels. When a user on an iOS device opts out of tracking, both web and server events will not be sent. (We will discuss this later in the blog post.) Facebook Conversions API (server only) Though Facebook does not recommend sending only server events, it is a good solution if you have more user or event data in the server Google Tag Manager container than in the web one. You can also use any technique to enrich your server data. We already have two blog posts on how you can enhance sGTM data with the help of [Firestore](https://stape.io/blog/write-data-to-firestore-from-server-google-tag-manager) or [Google Sheets](https://stape.io/blog/read-data-from-google-sheet-to-server-google-tag-manager). It is essential to send user data parameters to improve user-matching capabilities while adhering to privacy regulations. Another lengthy and controversial discussion concerns FB conversion attribution of iOS users who opted out of tracking. In the official documentation, FB says that FB CAPI does not help track users who opted out of search. However, some case studies and our experiment show that one way to track users who opted out of tracking on iOS is to send only server events through FB CAPI. This theory is based on the logic that with web+server tracking, FB sees the device ID using pixel and does not collect all events for this device ID. However, when sending events through the server, FB only has access to data you configure and does not know the device ID or if the user opted out of tracking. Advantages: Improve conversion attribution if you have more data on the server. Implementing takes less time since there is no need to set web events and deduplication. You can track users who opted out of tracking. Disadvantages: FB does not recommend this method because of user tracking restrictions. It has some critical limitations compared to the more practical setup combining the Facebook Pixel and the Conversions API (server-side and client-side). You must manually send fbp since the browser ID won’t be generated by FB pixel. You can easily enable this option by using the FB CAPI tag. ![image](https://cdn.stape.io/i/673c585172a07337360521.png) Event Enhancement You can also enable Event Enhancement using an HTTP-only secure cookie (gtmeec) to enhance event data. ![image](https://cdn.stape.io/i/673c581c64048310838076.jpg) When this feature is enabled, the tag stores user data in cookies and enriches events with user data when user data is not available. This increases event match quality and, as a result, conversion attribution to campaigns. Facebook Conversions API through webhooks Setting up FB CAPI through webhooks is similar to sending FB events only through the server. The only difference is how you deliver data from the web to the server. In method #2 (server-only tracking), you send data from web GTM to sGTM using GA4, UA, or Data Tag. With this method, you can trigger FB CAPI events based on the data you send via Webhooks. The most popular CMS has functionality that allows users to configure webhooks easily. With the stape [Preview Header power-up](https://stape.io/solutions/sgtm-preview-header), you can easily debug incoming webhooks in sGTM. We already have a blog post on [how to send webhooks to sGTM](https://stape.io/blog/debug-webhooks-google-tag-manager-server). Webhooks can be an excellent data source for sGTM since they carry complete information about the order. The main benefit of using webhooks to send FB CAPI events is that these events can’t be blocked. Some clients prefer to test sending the same event via browser+server vs. webhook (server only). They can compare which method has a higher match rate and better attribution. Advantages: Improve conversion attribution since Webhooks include valuable data about users and orders. You can track users who opted out of tracking on iOS devices. Gives an excellent opportunity for split testing web+server tracking vs. server through the web GTM vs. server through the webhooks. Disadvantages: It might take longer to set up since you will need to spend more time on the configuration. Facebook offline conversions using sGTM Facebook Offline Conversions allow businesses to track offline actions, such as in-store purchases, and link them to their Facebook ad campaigns. By uploading offline event data, Facebook matches these events to users who interacted with ads, counting them as conversions. This method helps marketers analyze the effectiveness of their campaigns across multiple touchpoints. Learn how to set up Facebook offline conversions in [our guide](https://stape.io/blog/facebook-offline-conversion-using-server-gtm#what-is-facebook-offline-conversions). Advanatges: Tracks offline events for accurate attribution. Automates data upload via sGTM. Enables custom offline event tracking. Disadvantages: Requires familiarity with server-side tagging and sGTM setup. Conclusion Now that you know what tips we are using to help our clients improve their FB campaign's conversion attribution using server-side tagging, it’s time to put this knowledge into practice. Remember that only some solutions fit websites since technologies and conversion funnels differ. Try to experiment and find a method that works best for you. We are here to help if you need assistance setting up your tracking or troubleshooting any issues. Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get assistance, fill-up the form, and we will send you a quote. --- # Mailgun tag for server Google Tag Manager Source: https://stape.io/blog/mailgun-tag-for-server-google-tag-manager Mailgun is an email delivery service for sending transactional emails via server Google Tag Manager. Automate email notifications based on user actions easily. Mailgun is a mail delivery service used to send and track emails from the website or application using SMTP. It has an intelligent inbound routing system that lets you know where every sent email will end up, giving your company greater control of what goes out on its behalf. In this article, we will describe how the Mailgun tag for server Google Tag Manager works and how you can send emails through Mailgun depending on user actions on your site. What is Mailgun? Mailgun was designed for developers, and the primary purpose is to allow users to send out bulk emails quickly and scale fast. However, Mailgun doesn't have some basic features like email templates found in other tools, which might make it less desirable when businesses need to send an email, not only with the help of developers. HTML can be used to format emails and improve user interactions. Setting up Mailgun integration can be extremely difficult when compared to other tools. However, it’s worth remembering that Mailgun is not an email marketing tool (like Klavio or ActiveCampaign). It was designed to send transactional emails in high volumes. The flexibility offered by HTTP in communication allows you to send messages and attach metadata. Since Mailgun does not offer an all-suite of tools that most email marketing tool offers, Mailgun’s subscription packages have reasonable pricing and email limits. Mailgun can be used to send emails in bulk or deliver transactional emails. Transactional emails are triggered after a user's action on the website or app. It can be user registration, forgot password, purchase, etc. To Simplify Mailgun integration to your website, we create a Mailgun tag for the server Google Tag Manager container that enables you to send transactional emails using customer actions on your site. Google Tag Manager server-side integration The[Mailgun tag for server GTM](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/mailgun-tag) is a solution created to simplify Mailgun integration with a website. The tag enables businesses to send transactional emails. By integrating Mailgun with GTM, you can track and manage email sending. For example, you can set up triggers in GTM that send emails through Mailgun when a user completes a purchase or signs up for a newsletter. This integration helps optimize the process and ensures that your emails are timely and relevant. Keep on reading to see how you can set the tag up. How Mailgun server GTM tag works Before setting up the [Mailgun tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/mailgun-tag): Ensure you correctly configured your Mailgun account. [Create and set up a Google Tag Manager server container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). To set up the Maligun tag: 1. Add [Mailgun tag](https://tagmanager.google.com/gallery#/owners/stape-io/templates/mailgun-tag)from GTM template gallery. ![Add a tag from template gallery](https://cdn.stape.io/i/67649e0324647689808841.png) 2. Create a new tag and choose Mailgun tag as Tag configuration. 3. Configure the tag. Mailgun server GTM tag allows performing two actions: Send an email; Add or update a contact API Key - use this link to find info on how to get an API key. Domain Zone - select if you want to use the US or EU domain zone. Sending domain - specify your Mailgun sending domain Add from email to email and email subject. Add email content - you can use constant or GTM variable. Logs Settings - select if you want to use stape logs ![Logs Settings ](https://cdn.stape.io/i/6336fc9c48a8f566448336.png) 4. Add the trigger for a tag. Conclusion [Mailgun server-side tag for Google Tag Manager](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/mailgun-tag) makes it easy to send transactional emails based on user interactions on your website. All you need to do is set up a few simple tags in the sGTM container. No need to ask developers for help. It makes Mailgun integration more accessible and straightforward than ever before. Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get assistance, fill-up the form, and we will send you a quote. --- # How to set up Mixpanel tag for server Google Tag Manager Source: https://stape.io/blog/mixpanel-tag-for-server-google-tag-manager Learn how to use the Mixpanel tag for server GTM to track events, alias users, and reset Mixpanel contact identification. Get accurate user data. Setting up a Mixpanel tag for server GTM provides a lot of benefits among which are bypassing ad blockers and browser restrictions, high tag customization, and other benefits that we consider in detail on the [Mixpanel tag solution page](https://stape.io/solutions/mixpanel-tag). Below, we will show you how you can easily set up Mixpanel tag for you server GTM. We explain each step in details: 1. How the tag works. 2. What you need before starting tag configuration. 3. How to configure Mixpanel tag. How Mixpanel tag for server GTM container works Using the Mixpanel tag for server GTM, you can efficiently track user interactions. Mixpanel tag for sGTM can help you with these action types: Track - tracks events in Mixpanel. Alias - adds an alias to existing Mixpanel contact. Useful if you need to add a new identifier to the existing user. Reset - resets identification of Mixpanel contact. You can use reset to manage multiple identities on the same device. When a user logs out, you can trigger a reset tag. It will reset the distinct_id and remove existing super properties. Mixpanel will treat subsequent events on the same device as performed by a new user. Each action type of the Mixpanel tag has its own set of additional settings. ![Mixpanel tag for sGTM](https://cdn.stape.io/i/6331e0cf19c6e990373025.png) Route data to Mixpanel's EU servers - select if you want to route data to the EU data centers. Automatically handle customer distinct_id - Mixpanel server API optimized for stateless shared usage; e.g., in a web application, the same Mixpanel instance is used across requests for all users. Rather than setting a distinct_id through identity calls like Mixpanel client-side libraries (where a single Mixpanel instance is tied to a single user), this API requires you to pass the distinct_id with every tracking call. Send common data with request - Adds to track request user_agent, path, $current_url, $screen_width, $screen_height, $referrer, user ip, etc. Get parameters from the variable - select if you want to extract any parameters from the sGTM variable. Additional Parameters - select what other parameters you want to send and add Parameter Name and value. Remove parameters from the request - add parameters that you want to remove from the requests. Helpful in eliminating standard parameters like $current_url or IP. Logs Settings - select if you want to use stape logs to troubleshoot your setup. How to set up the server GTM Mixpanel tag 1. [Set up a Google Tag Manager server container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Add a tag to your server GTM using [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/mixpanel-tag). 3. Create a new tag. Select Tag Type (In this example, I will set up a tag type track since this one requires more configuration). Add your Mixpanel project ID (You can get the Project Token from project settings). Select if you need to route data to EU servers and Automatically handle customer distinct_id. ![Mixpanel server-to-server](https://cdn.stape.io/i/6331e31cc5d7f208468667.png) 4. Add event name. If you want to add common sGTM data to the Mixpanel request, you can also choose to parse parameters from variables. There is also an option to add or remove parameters from the request. Remove parameters is helpful when you select to add common data and need to remove some of the event data. ![set up mixpanel s2s integration](https://cdn.stape.io/i/6331e32922b73250355468.png) 5. Add triggers and test your event. Conclusion Setting up Mixpanel server-side tracking with Google Tag Manager is a great way to get detailed insights into how users interact with your site or app. Following the steps outlined in this post, you can quickly get started with sGTM and measure users correctly with long-lived cookies. --- # How to anonymize user data in Google Analytics 4 Source: https://stape.io/blog/how-to-anonymize-user-data-google-analytics-4 Anonymize GA4 data for GDPR compliance using Stape's Anonymizer or manual GTM redaction. Remove PII like IPs, client IDs, and referrers to protect user privacy. The General Data Protection Regulation (GDPR) has made it necessary to protect user privacy. According to the GDPR, you should remove any personally identifiable information before transferring user data to any US-owned tool. This step became necessary due to Privacy Shield invalidation. In this article, we will describe how to automatically remove user data using stape Anonymizer power-up and manually redact user data via web and server GTM. This is an extension to the article published in our blog, which covers why you need to [use a proxy server to use Google Analytics in a GDPR-compliant way](https://stape.io/blog/eu-owned-proxy-server-or-how-to-use-google-analytics-gdpr-compliant-way). Why should you remove PII from Google Analytics 4 There were a few incidents in EU countries (Italy, France, Austria, and Denmark) when people contacted local data protection authorities to verify if using Google Analytics on the website falls under GDPR. The answer in all cases was - using Google Analytics is not GDPR compliant. The main reason is that US companies (including Google) do not provide enough security measures to protect the personal data of EU users. That is why sharing [PII](https://stape.io/blog/personally-identifiable-information) with US companies falls against GDPR. You can find more information about it in our [earlier blog post](https://stape.io/blog/eu-owned-proxy-server-or-how-to-use-google-analytics-gdpr-compliant-way). The good news is there is a solution to use Google Analytics and still be [server side tracking and GDPR](https://stape.io/blog/server-side-tracking-gdpr)-compliant. CNIL (French data protection authority) said that to use GA in a GDPR-compliant way, you should implement two main things: EU proxy-server and pseudonymization of user data before the export. Proxy-server ensures no direct contact between the website and the US analytics tool. The easiest way to implement such a proxy server is by using the server Google Tag Manager container. Proxy-servers must meet a range of criteria. The main area: the company that provides you with a proxy server must be registered in the EU; servers used to host your sGTM container must be physically located in the EU. For these two reasons, you can’t use Google Cloud (GCP) for sGTM. Basically, it’s the same reason as Google Analytics - Google, a US company, owns it. Another good news is that Stape has got you covered. We have a specific product - [Stape Europe](https://stape.io/eu-hosting) that meets all requirements for the EU proxy server. Stape Europe is registered in the EU (Estonia) and uses the EU cloud server provided by [Scaleway](https://scaleway.com/) to run your sGTM container. In this article, I want to focus more on the second part of the law, which is the pseudonymization of user data. At Stape, we are implementing a list of features that will help you to remove user data automatically. That is why I will divide the article into two parts: How you can automatically remove/pseudonymize user data using stape Anonymizer power-up How to manually remove user data using web and server GTM. The list of user data that should be pseudonymized is quite vague. IP address. User identifiers. (like Google client ID) External referrer. URL parameter. Any data that can be used for fingerprinting. Cross-site identifier. Any data that could be used for user identification. For now, we're designing the Stape Anonymizer power-up only for GA4. However, it will be adapted and made available with UA's anonymization feature in future updates. It’s essential to understand that the list of parameters that GA4 sends can change. We will keep this article updated, but ensure you test user data anonymization before publishing it to production. The best tool I’ve found that helps keep track and identify GA4 parameters is [this one](https://www.thyngster.com/ga4-measurement-protocol-cheatsheet/). How to approach user data anonymization The process of user data pseudonymization takes place inside the GA4 tags in the web and server GTM container. If you have not set up [GA4 server-side tracking](https://stape.io/stape-gateway) yet, follow our guide on [how to set up GA4 server-side](https://stape.io/blog/set-up-ga4-server-side-tracking). We do not have strict guidelines on what data must be removed. It’s up to you how you want your company to be secure. For example, you can remove the user’s IP or redact the last few digits. Another big question is about parameters like country, language, browser, etc. Each parameter individually does not give enough user identification information, but a set of parameters can provide it. There are no questions on whether you should remove parameters like client id or URL queries. Using each parameter individually can lead to user identification because of the unique ID in Google. Let’s say it may be essential for you to analyze mobile vs. desktop traffic or conversions in different browsers. Should you remove all data that can be used for fingerprinting and user identification or remove only some? Can you leave the browser and device if you remove all other parameters? Ensure you discuss these questions with your lawyers or DPO to have good protection if the regulator comes to you. I believe that removing all user identifiers that can be used for fingerprinting and re-identifying is better to keep your company secure. This article does not pretend to be an instruction. It’s just sharing experience on removing or pseudoanonymize data and how stape does it automatically. You can select not to use our anonymization power-up or manually anonymize each parameter. Remove user data from Google Analytics with the help of Anonymizer anonymize user data in server gtm - stape https://youtu.be/EHsNpSddScY We’ve recently released an Anonymizer power-up. It’s available for all Stape users. The main goal of the anonymizer is to either remove or anonymize user data in Google Analytics 4. To enable the anonymizer, open the sGTM container in Stape, click power-up and open the Anonymizer. ![Anonymizer power-up in stape](https://cdn.stape.io/i/63d8ffb58a7d0046100492.png) This product includes GeoLite2 data created by MaxMind, available from [https://www.maxmind.com](https://www.maxmind.com) You will have to select what parameters you want to leave as is, remove or anonymize. Once parameters are configured, you should update tagging server URL for Google Analytics 4. If you’ve previously used tagging server URL https://sgtm.example.com when anonymizer is enabled, the updated tagging server URL will look like https://sgtm.example.com/anonymize. We proxy your requests to sGTM through /anonymize path and remove specified data. When GA requests go through the tagging server URL that includes /anonymize, we automatically remove or anonymize selected parameters. After enabling and configuring Anonymizer, ensure you've changed the GA4/UA transport URL in the Web GTM config tag to the one that ends /anonymize. Below is a list of all parameters that Anonymizer can either remove and anonymize. When creating Anonymizer our goal was to give our clients ability to remove all parameters that somehow can be consider as personal user data. You can select which parameters you want to remove. Talk with your DPO or lawyers to specify which parameters need to be removed. General Info You will have two options for most parameters: leave as is or remove. For two parameters (IP and Client ID), you will see options to Anonymize and Anonymize Strictly. IP Anonymize - removes the last octet. Anonymize Strictly - removes the last two octets Client ID. Work only if you use JavaScript Managed client identification. Anonymize - use a hash of IP+UserAgent and add year+month. Anonymize Strictly - use a hash of IP+UserAgent and add a timestamp, crc32_hash(IP+UA).timestamp Parameter name | Description | GA4 Parameter | Anonymize IP | User IP | IP Address | Anonymize - removes the last octet. Anonymize Strictly - removes the last two octets Client ID | Google Analytics Client ID, _ga, _ga_*, FPLC, FPID cookies | cid, _ga, _ga_*, FPLC, FPID | Anonymize - use a hash of IP+UserAgent and add year+month. Anonymize Strictly - use a hash of IP+UserAgent and add a timestamp, crc32_hash(IP+UA).timestamp User ID | User ID, Google Developer ID, Firebase ID | uid, gdid, _fid | - Session ID | Session ID, New Session ID | sid, _nsi | - Query parameters | Remove query paramaters from Document Location | dl | - Referer | Document Referrer Header, Document Referrer Parameter | referer header, dr | - System info User Agent | Document User-Agent header, Sec-Ch-Ua header, Sec-Sh-Ua-Platform header, Sec-Ch-Ua-Mobile header, User-Agent Parameter | user-agent header, sec-ch-ua header, sec-ch-ua-platform header, sec-ch-ua-mobile header, ua | - User Country | Geographical ID, Current country for the user | geoid, _uc | - Browser plugins | Java Enabled, Flash Version | je, fl | - Screen Info | Browser screen resolution, Viewport size | sr, vp | - Screen Colors | Specifies the screen color depth | sd | - User Language | Browser active locale | ul | - User Agent Parsed User Agent Architecture | | uaa | - User Agent Bitness | | uab | - User Agent Full Version List | | uafvl | - User Agent Mobile | | uamb | - User Agent Model | | uam | - User Agent Platform | | uap | - User Agent Platform Version | | uapv | - User Agent WOW64 | | uaw | - Ads Campaign Attribution Campaign Medium | | cm | - Campaign Source | | cs | - Campaign Name | | cn | - Campaign Content | | cc | - Campaign ID | | ci | - Campaign Term | | ck | - Campaign Creative Format | | ccf | - Campaign Marketing Tactic | | cmt | - Google Ads ID | | gclid | - Google Display Ads ID | | dclid | - Parameters that Google Analytics 4 collects change from time to time. So you need to check your GA4 requests to ensure all user data is removed. After you configured parameters in Anonymizer and changed GA4 transport URL to the one that containers /anonymize in the end, we will remove or anonymize specified parameters. After enabling Anonymizer and updating GA4 transport URL, please use web/sGTM debuggers, console, and GA4 debugger to test if all required parameters were removed. Manually remove PII from GA4 using GTM 1. IP address This one is relatively easy to implement but has some controversy. Google has a built-in feature to remove the last byte of the IP address. By cutting the previous byte, the chance that google can identify users is 1 to 256. In combination with other parameters, IP can quickly identify a specific person. Some people think that cutting the last octet is enough. Others believe that you need to remove user IP altogether. My opinion is that it’s better to override the user IP completely. You never know if/how Google reuses IP. “It should be noted that online identifiers, such as IP addresses or information stored in cookies can commonly be used to identify a user, particularly when combined with other similar types of information. This is illustrated by Recital 30 GDPR, according to which the assignment of online identifiers such as IP addresses and cookie identifiers to natural persons or their devices may "leave traces which, in particular when combined with unique identifiers and other information received by the servers, may be used to create profiles of the natural persons and identify them.'' — This is what CNIL (french regulator) says about the IP To remove the user IP, I’ve used the server GA4 tag and set an ip_overrride to a random IP. ![remove user IP](https://cdn.stape.io/i/632b1a72e60cc660853600.png) 2. User identifiers Google assigns a unique client ID to the browser device pair and uses it to identify when the same user revisits your site. This parameter must be removed or pseudoanonymize before sending to GA4. “ To ensure effective pseudonymization, the algorithm performing the replacement should ensure a sufficient level of collision (i.e., a sufficient probability that two different identifiers will give an identical result after a hash) and include a time-varying component (adding a value to the hashed data that evolves over time so that the hash result is not always the same for the same identifier).” — This is what CNIL says about client ID. There are numerous approaches to anonymizing client IDs, all up to your imagination and a suite of tools you use. But make sure that the client id is unique and that you added a time-vary component. You can use a hash of user agent, IP, GTM random number variable, etc. Unlike User IP, we did not find a way to redact the client id on the server side, so we did it on the client. ![hash client ID](https://cdn.stape.io/i/632b1a72a63c5162569306.png) ![rewrite client ID](https://cdn.stape.io/i/632b1a72d722b386716335.png) Once you've anonymized Google Analytics Client ID, you may want to override GA4 cookies with the new values to ensure that GA4 does not set any user identifiers. To do so, I've used the Cookie Monster tag template for the server GTM container. All you need to do is add cookie names and values. once done, do not forget to use the console and check the cookies GA sets. ![override google analytics cookies](https://cdn.stape.io/i/633195161f90a709064211.png) After you redact the client id, it will significantly impact GA4 reporting. Since the client id will be unique, GA won’t be able to determine new vs. returning visitors. As well as multi-channel attribution and events like sessions start, first visit, etc. 3. External referrer An external referrer is designed to determine how a user landed on your site. Was it organic, paid, or maybe social traffic. To remove, you should rewrite page_referrer. ![remove external referrer](https://cdn.stape.io/i/632b1a726ad72046752522.png) 4. Parameters contained in the collected URLs The primary purpose of parameters in the URL is to determine the origin of advertising campaigns. URL parameters can be utm_souce, utm_medium, different click ID types, etc. Besides that, some platforms automatically insert user data into the URL. To remove URL parameters, you must rewrite the page URL. Several variables in the web GTM template gallery can help you with this. I’ve used Trim Query. You just need to specify a blocklist or allowlist of query parameters, which will do all the magic for you. ![remove URL parameters GA4](https://cdn.stape.io/i/632b1a72706cf044958775.png) 5. Information that can be used to generate a fingerprint Such information can be user agent, device, browser, screen resolution, language, operating system, etc. Make sure you’ve redacted all information that can be used for fingerprinting. ![remove data that can be used to generate fingerprint](https://cdn.stape.io/i/632b1a72c8c7b132436186.png) 6. Any lasting or cross-site identifiers Ensure you do not use cross-site identifiers like a user or CRM ID. 7. Any other data that can lead to re-identification This part is a bit hard to understand, but I suggest checking the request that your sGTM container sends to GA and ensuring there are no parameters that can be used for user re-identification. How to test anonymization There are several ways to check if all necessary data was removed or pseudonymized. You first want to go to the server GTM debugger and see outgoing GA4 requests. Ensure that you test different scenarios when there are user parameters vs. no user parameters, URL parameters, various events, referrers, etc. ![test GA4 user data anonymization](https://cdn.stape.io/i/632b1a73162a8519359049.png) The second way is to use Google Analytics 4 debugger and see what data GA4 processes. ![test GA4 user data anonymization GA4 debugger](https://cdn.stape.io/i/632b1a72a2a89938265054.png) Conclusion It's not just Google that collects EU user data and transfers it to the US, which violates GDPR. Multiple companies have collected personal data from Europeans for years, and now it seems their practices will be restricted across the board in response to the Privacy Shield deactivation and ruling that data transfer of EU users to the US is illegal under GDPR. If you are a website owner in the European Union, it’s time to start changing what data you share with US companies, or you may be at risk of being fined by regulatory enforcement. Frequently asked questions 1. How can I use proxy-server for GA when implemented through gtag.js? If you use gtag.js on your website to send events to your server container, you can add the [transport_url](https://developers.google.com/tag-platform/tag-manager/server-side/send-data#google_tag_gtagjs)parameter to your existing tag: gtag('config', 'TARGET-ID', { 'transport_url': 'https://analytics.example.com', 'first_party_collection': true, }); You can use an anonymizer URL to anonymize user data in GA when implemented via gtag.js. Let's say you use stape anonymizer and your anonymizer URL is https://sgtm.site.com/anonymize. You just need to add https://sgtm.site.com/anonymize as a transport URL to gtag config. --- # Rakuten server-to-server tracking Source: https://stape.io/blog/rakuten-server-to-server-tracking Rakuten's server-to-server tracking uses first-party cookies to improve affiliate sales tracking, ensuring accuracy and enhanced privacy. Learn how to set it up. Rakuten has long been a leader in affiliate marketing, and now they're among the first who started to support server-to-server tracking. S2S technology allows direct communication between the publisher server and Rakuten servers. When using a custom domain, s2s tagging relies on first-party cookies, which live longer than third-party cookies. Increasing cookie lifetime considerably affects affiliate marketing results and affiliate commission. This article will look closely at Rakuten's server-to-server tracking and how you can set it up using the server Google Tag Manager container. How Rakuten's server-to-server tracking works Rakuten's server-to-server tracking works similarly to other affiliates’ s2s tracking (we already have blog posts and tags for [Awin s2s tracking](https://stape.io/blog/awin-server-to-server-tracking-using-server-google-tag-manager), [Impact](https://stape.io/blog/how-to-set-up-impact-server-to-server-conversion-tracking), [Refersion](https://stape.io/blog/how-to-set-up-refersion-tag-using-google-tag-manager), [Outbrain](https://stape.io/blog/outbrain-server-to-server-tracking-using-sgtm), and [Taboola](https://stape.io/blog/taboola-server-side-tracking-using-server-google-tag-manager)). When a customer clicks on an affiliate link, their click is tracked and stored as a first-party cookie in the user’s browser. When the customer completes a purchase, the order information is passed back to the Rakuten server, with the click ID from cookies and order parameters configured in sGTM. Then Rakuten uses server GTM data to attribute the sale to the correct affiliate. This process happens without the need for 3rd party cookies, making it more accurate and reliable since 1st party cookies are longer live. Benefits of Rakuten's server-to-server tracking Rakuten’s server-to-server integration has several benefits over traditional browser-based tracking. First, because s2s tagging doesn't rely on 3rd party cookies, it is not susceptible to decreased cookie lifetime. You can be sure that Rakuten accurately tracks affiliates' sales and attributes them appropriately. Second, moving tags to the server-side decreases the browser load. Which, in the end, might speed up your site. Of course, moving only Rakuten to the server-side won’t have a significant effect. But if you follow the best practice and have one data stream to sGTM, which then distributes data to all tracking platforms, it might have improved website page speed significantly. The third one is user privacy. With s2s tracking, you can strictly control what data is sent to each vendor and ensure that they do not scrape any information about website users without your permission using tracking pixels. How Rakuten s2s tag for server GTM works The documentation for a server-to-server integration with Rakuten is not publicly available. You need to ask your Rakuten representative for access. 1. The Rakuten tag is not yet in the server Google Tag Manager template gallery. You can [download it from GitHub](https://github.com/stape-io/rakuten-tag) and add it to your server GTM container by opening the template tab, clicking new, clicking three dots in the top right corner, and clicking import. ![rakuten server to server tag](https://cdn.stape.io/i/632452aecad86331675864.png) 2. When setting up a conversion event, you must add a list of parameters. Affiliate Merchant ID (MID) and Affiliate Key - You can find it in your Rakuten account or by contacting your Rakentan account manager. Order ID - a unique transaction number composed of 1 to 40 nonblank characters. This should be the same as the orderID value you initially reported for the sale in the MOP. Currency - The ISO4217 currency code reference. Use (‘USD,’ ‘CAD,’ ‘GBP,’ ‘JPY,’ ‘BRL,’ or ‘AUD’) for U.S. dollar, Canadian dollar, British pound, Japanese yen, Brazilian real, or Australian dollar. You can also select the Override items array. The tag takes items from the event data by default, but you may want to override it. Add user data to the field Optional Data. ![rakuten tag](https://cdn.stape.io/i/673c70c040ba6458077284.png) Conclusion: Server-to-server tracking is a game changer for affiliate marketing since it addresses the issue of decreased cookies lifetime. It allows tracking sales from affiliates more accurately and attributes sale commissions without relying on 3rd party cookies whose lifetime can be shortened to 1 or 7 days. Rakuten and some other affiliate networks started to force their publisher to implement s2s integration. If you're looking for a more accurate and reliable way to track your sales, you should consider using Rakuten's server-to-server tracking. If you need assistance setting-up server-side tagging, do not hesitate to reach out. Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get assistance, fill-up the form, and we will send you a quote. --- # 53% more Google Ads value measured after moving tracking to the server | Obsidian Digital Source: https://stape.io/blog/stape-obsidian-digital-ecooking-case Server-side tracking increased Ecooking's Google Ads revenue by 53% and conversions by 57%. Stape enabled accurate measurement for Obsidian Digital. The background [Ecooking](https://ecooking.dk/) was founded in 2016 and sells high end skincare and makeup products in both retail and online. While most of the revenue comes from email thanks to a loyal customer base that appreciates the products, both Facebook and Google Ads are essential in getting new people to know the brand. Google Ads in particular was limited as campaigns did not look profitable. High competition in the segment means higher click-prices and that scaling is not as easy as just enabling a Smart Shopping-campaign and turning up the volume. For this reason, Ecooking and agency [Obsidian Digital](https://obsidian.dk/) decided to improve the tracking-setup. The process While Facebook was already running on serverside tracking thanks to Conversions API Gateway, Google Ads was not. But the CMS - Shopware - was already outputting the relevant dataLayer-parameters making it easy to set up tracking using Google Tag Manager. Agency Obsidian Digital set up a serverside Google Tag Manager-account and used Stape.io to quickly enable serverside tracking for both: Google Analytics 4 Google Ads and also preparing tags for Klaviyo as Ecooking is soon changing CRM-systems The work took an estimated 10 hours including everything from setting up subdomains to enable first party cookies to uploading the finished changes in the new serverside setup. The results To verify the results of the implementation, the old client-side tracking setup was kept running simultaneously with the new server-side setup. After 30 days, the results were compared to measure an increment in lift. The results in this blog post is measured as the difference between the conversion and value measured with client side and serverside in the same period. After enabling server-side tracking via Stape.io, the results were significantly improved in both Google Analytics and Google Ads: Google Analytics: 19 % increase in measured revenue Google Analytics: 17 % increase in measured products sold Google Ads: 53 % increase in measured revenue Google Ads: 57 % increase in measured conversions These results powered by Stape.io now allow Ecooking and agency Obsidian Digital to scale campaigns that are profitable, but previously did not appear so - thus enabling further growth for the company using digital marketing. Not scaling campaigns because you can’t measure conversions for any longer than 24 hours is an issue, but luckily, an issue we can solve. With serverside tracking, we raise the bar and enable further growth for Ecooking. — Thomas Meng - CMO Need a custom server-side tagging infrastructure on your servers? We can manually install server-side tagging infrastructure on your servers and adapt it to your need. Custom setup on your servers . Yeah, we mean it. --- # EU-owned proxy server for sGTM or how to use Google Analytics GDPR compliant way Source: https://stape.io/blog/eu-owned-proxy-server-or-how-to-use-google-analytics-gdpr-compliant-way Make Google Analytics GDPR compliant! Learn about EU data transfer concerns and how Stape Europe's EU proxy server for sGTM helps you comply with regulations.. Europe has been hit with a series of Google Analytics restrictions, underscoring the critical importance of GDPR compliance. [Several incidents occurred in different countries](https://stape.io/news/google-expands-eu-user-consent-policy-to-switzerland), but the most widely spread incidence was related to the regulations in Italy, France, and Austria, where data protection regulators said that using Google Analytics is not GDPR compliant. This article will discuss the regulations prohibiting European users' data transfer to US companies. We will also cover how you can use [Stape Europe](https://stape.io/eu-hosting) to set up an EU proxy server for server GTM that will help make the use of Google Analytics GDPR compliant. Google Analytics GDPR compliance: what is the backstory? The legal story of data sharing between EU and US companies started in 2016 when the European Commission approved the Privacy Shield (a legal framework that regulates data transfer for commercial purposes between US and EU companies). This framework has since faced scrutiny from European Data Protection Authorities. In 2020, the European Court of Justice's ruling that declared Privacy Shield disabled sent shockwaves through the digital world. This happened because US law does not offer sufficient personal data protection for European residents, violating data protection regulations. This ruling extensively discussed Google services (like Google Analytics or Google Fonts), highlighting the crucial need for robust measures to ensure the safety of EU user data. European Data Protection Authorities have declared that asking for user consent (or standard contractual clauses) on the site and triggering a US-based intelligent tracking tool based on user consent won’t make it GDPR compliant. An introduction to Google Analytics What is Google Analytics? Google Analytics is a free tool from Google that helps website owners see how their website is doing. It shows them who’s visiting the site, what pages they’re looking at, and where they’re coming from. This info helps businesses understand what’s working on their website and what isn’t so they can make changes to improve it and get more out of their marketing efforts. How does Google Analytics work? Google Analytics gathers information about website visitors and how they use the site. It works through a tiny bit of code added to each webpage, which tracks each visitor and sends the data to Google. Google processes this information and shows it in an easy-to-read dashboard, giving website owners insights into traffic, user engagement, and conversion rates. This helps them see what users are doing on their site, track important goals, and make smart decisions to improve their website and online impact. Understanding GDPR What is GDPR? The [General Data Protection Regulation (GDPR)](https://stape.io/blog/server-side-tracking-gdpr) is a data privacy law introduced in 2018 by the EU to protect people's personal data and give them more control over it. GDPR applies to any organization handling people's personal data in the EU, no matter where the organization is based. It requires companies to follow strict rules on collecting, using, and storing personal data, including getting explicit permission from users before doing so. Following GDPR is important for companies in the EU, as it helps protect user privacy and builds customer trust. Why is GDPR compliance important for Google Analytics? GDPR compliance is essential for Google Analytics because it ensures that the collection and processing of personal data from EU residents adhere to the General Data Protection Regulation . Non-compliance can lead to hefty fines and significant damage to a company’s reputation. Beyond the legal implications, adhering to GDPR builds trust with users, showing them that their privacy is taken seriously. This trust is crucial for fostering long-term relationships and maintaining a positive brand image. By being GDPR compliant, businesses can demonstrate their commitment to protecting user data, which is increasingly important in today’s digital landscape. What are the data protection regulations? The two most famous incidents related to data transfer of EU users to the US were in Italy and France, as investigated by data protection authorities. Let’s start with the French one. The French data protection authority (CNIL) received complaints from French users who asked if the use of Google Analytics (an intelligence tool that belongs to the USA company) complies with the GDPR rules. The CNIL stated that French websites using Google Analytics resulted in a data transfer of European users to US companies. This violates the GDPR rules since US companies do not provide enough evidence that the personal data of EU users is safe. Besides that, the CNIL has confirmed that Google’s implementation of SCCs is not enough to meet the GDPR requirements. The situation in Italy is similar. The Italian SA regulator received questions from several users on whether a particular Italian site’s use of Google Analytics falls under the GDPR. After lengthy investigations, the Italian regulator warned companies to stop using Google Analytics or set up GA in a GDPR-compliant way within 90 days. Similarly, the Dutch data protection authority has also investigated complaints against Google Analytics. Besides that, the Italian regulator released a public notice that they received multiple complaints about the data transfer to the US companies. All Italian website owners should consider this when implementing US-based intelligent tracking tools. Otherwise, penalties may be applied. Non-compliance with GDPR in the context of data transfers of EU users to US companies, mainly when using Google Analytics, is a significant concern. The potential penalties and the impact on user trust make this a crucial issue for website owners and digital marketers to address. Understanding what methods do not make Google Analytics GDPR compliant is crucial. For instance, data encryption, a commonly used method, has limitations that may not guarantee user data protection, as the Italian regulator explained. 1. Data encryption The Italian regulator says transferring encrypted data is unacceptable and can’t guarantee user data protection. Encryption technology expects encryption keys on Google’s side to be used to see and process raw user data. So, as long as the encryption key is available to the Data importer (in this case, Google), this method cannot be considered GDPR compliant. 2. Built-in Google Analytics features that remove IP Google tried to adapt to the EU privacy rules by implementing features designed to anonymize user data. EU regulators said that in practice, such technologies as redacting user IP addresses might have close to zero effect on preventing user identification, mainly because Google constantly processes IP addresses. 3. User consent Google Analytics is still not GDPR if a user consents to analytics cookies. They stated that consent and data transfer to US companies are different. User consent does not help fix the issue with data transfer outside the EU. EU proxy server is a possible solution https://www.youtube.com/watch?v=9Ilggs-4TTo&t=2s According to regulators, using an EU proxy server is a possible solution. This proxy server aims to break the interaction of US intelligence tracking tools with user browsers. One way to implement such a proxy server is to use Google Tag Manager. Additionally, setting up a data processing agreement with your analytics provider is crucial to outline responsibilities and ensure compliance with GDPR. Proxy servers have to meet a set of criteria. The two most important are: A company that owns a proxy server must be registered in the EU. The proxy server must be physically located in the EU. While the point about EU-registered companies is clear, you can quickly check where a company is registered on their website or by checking public register directories. The second point might need to be clarified. The main misunderstanding concerns the use of Google Cloud for sGTM. You can’t use Google Cloud as a proxy server for your sGTM. When setting up a proxy server (which can be a Google Tag Manager server), not only should the server zone be in Europe, but the physical server must also be located in Europe and owned by a European company. Google is not an EU company, which does not satisfy two main criteria. The bad news is that using a 100% EU proxy server for your server Google Tag Manager is insufficient. You must remove any user data used to fingerprint or identify users by the analytics platform. You must also pseudo-anonymize user data before sending it to the US tracking tool. ![EU proxy server data flow graph](https://cdn.stape.io/i/67321a504cb66829086688.png) Data that should be removed before sending it To ensure GDPR compliance, it is essential to manage the data collected from users carefully. 1. IP address You must remove the IP address from the request to prevent it from being used to identify users. Simply cutting the IP address will not work, as it can still be used to identify areas where the user is. 2. User identifiers When a user visits your site, Google generates a unique client ID that identifies the user's browser-device pair and is stored in cookies. The client ID generated by Google must be removed, though you can still use a randomly generated client ID. 3. External referrer You must remove any data about the website the user visited before landing on your site. Usually, this data carries information on whether visitors landed on your site by clicking a link in someone’s blog post, organic search, etc. 4. URL parameter Often, URL parameters contain information (utm_parameters) about the source, medium, campaign, or click ID. Besides that, some websites insert user data (like email, name, phone) into the URL. No matter what URL parameters your site carries, it must be removed. 5. Any data that can be used for fingerprinting Various data can be used for fingerprinting; there is no clear information on what data regulators consider suitable for fingerprinting. However, it may include browser, device, model, language settings, screen resolution, etc. 6. Cross-site identifier Any ID can identify the same user on a different website. It might be a user ID, user ID in CRM, email, etc. 7. Any data that could be used for user identification Any information about the user. There is no way to automate removing all the parameters described above for now. All these must be manually replaced using the server Google Tag Manager interface. How Stape can help you [We created a new product - European Server GTM Hosting](https://stape.io/eu-hosting). Stape Europe is a European company (registered in Estonia) that uses Scaleway, a 100% EU cloud server provider, to host server GTM containers. Using tools like Google Consent Mode can also help adjust data collection based on user consent, ensuring compliance with GDPR. We cover all questions related to the EU-owned proxy server. When setting up an sGTM container using Stape Europe, you do not transfer any data to the US company since Stape Europe is an EU-registered company, and we use servers physically located in Europe. Unfortunately, we do not have a solution for automated user data removal. Our team is working hard to implement features that will help to remove PII automatically, or at least we will make your life easier by removing some of the PII automatically. Here are some more ways in which Stape can help you reach GDPR compliance: 1. [Anonymizer](https://stape.io/solutions/anonymizer) Anonymizer power-up is available for all Stape users. Its main goal is removing or [anonymizing user data from Google Analytics 4](https://stape.io/blog/how-to-anonymize-user-data-google-analytics-4). An anonymizer hides users' personal info, which helps with privacy and meeting legal requirements like GDPR. If you’re using it, ensure the data passing through it follows privacy rules. 2. [Consent banner](https://stape.io/blog/cookie-banner-all-in-one-guide) https://stape.io/blog/cookie-banner-all-in-one-guideA consent banner is needed to get users’ permission to collect their data. It should clearly explain what data you’re collecting and why, and be set up in line with laws like GDPR. 3. [Geo Headers](https://stape.io/solutions/geo-headers) https://stape.io/solutions/geo-headersGeo headers give you data about where the user is located. This is useful for targeting and making sure you follow local laws on data protection. Just make sure they’re set up correctly. Server-side tracking might solve your issues if you set it upright. But it’s important to talk to your legal team to ensure you’re fully compliant with the laws. Conclusion A lot of work must be done to make Google Analytics GDPR compliant. It might be a real pain if you are unfamiliar with server-side tracking. Implementing Google Analytics 4 with proper configurations can also help maintain GDPR compliance. The good thing is that with Stape Europe, you do not need to worry about an EU proxy server. You can access data anonymously in the server's Google Tag Manager interface. How would Google Analytics data look after you remove all the required information? Will it be sufficient to analyze user behavior, site performance, etc.? Well, we will have fewer data. But this is a new reality we need to get used to. Either you decide to stay GDPR compliant and receive less data about website visitors, or you need to pay attention to these rules and risk receiving warnings or fines for transferring user data to the US. Though there were cases related to data transfer in Italy, France, and Austria, some other European countries have already started to discuss similar regulations. If you implement server-side tracking, we suggest immediately removing the part about data transfer to the US. Do not wait until the same cases happen in your country; you must redo the setup. If you have any questions, feel free to contact us. The Stape team can help you set up an EU proxy server. [Our team of experts](https://stapehelp.zendesk.com/hc/en-us/requests/new) is always happy to help new users get started by tracking them and guiding them along the way. Want to start using server-side tags? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Twitter Conversions API tag for sGTM Source: https://stape.io/blog/twitter-conversion-api-tag-for-sgtm In this guide, I will talk about how the Twitter Conversions API works and how to set up the Twitter CAPI tag in server GTM. The Twitter Conversions API allows you to send information from your server directly to Twitter servers, which can be used to measure campaign success. With Twitter CAPI, you make tracking more secure and accurate. Like Facebook, Twitter allows and recommends using a hybrid method of tracking, web+server. When combining web and server tracking, deduplication is required. To match users in events to Twitter profiles, they use customer data: email and twclid. This guide will discuss how the [Twitter conversion API](https://developer.twitter.com/en/docs/twitter-ads-api/measurement/web-conversions/conversion-api) works and how to set up the Twitter CAPI tag in sGTM. How Twitter Conversions API works Authentification You need more than just a Twitter pixel ID or API token to identify your Twitter CAPI. Twitter requires additional authentication, which is impossible to implement via sGTM. That is why, for now, the Twitter CAPI tag works only with Stape. Feel free to modify the tag template and implement authentication yourself if needed. The new Twitter CAPI is not ready for prime time yet and will require 5x more work than “standard” CAPI implementation if you're already familiar with FB or TikTok's APIs. In addition, there are some other complications when using their platform that make things difficult. You will need a dev account, apply for access to Twitter CAPI, and generate several access tokens. We will elaborate on all these steps later in a blog post. Related: You can also check our [Pinterest server-side tracking](https://stape.io/blog/pinterest-conversion-api) setup. What you need to set up Twitter CAPI Configured the server GTM container and data transmission To complete this setup, you will need to create a server GTM container and send data from the web to the server GTM container. Here are the configuration guides: [How to set up the server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) How to send data from the web to the server GTM container [using GA4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [using Data Client](https://stape.io/solutions/data-tag-client). Have X Developer Portal Create or sign in to an [X Developer Portal account](https://developer.x.com/en) → click “Get started”. ![Get started with X Developer Portal](https://cdn.stape.io/i/68934bd15b8e7448890745.png) On the next page, choose “Sign up for free account”, and describe the use cases of Twitter’s data and API. For our case, it can be something like: I need to configure data conversions tracking and optimize ad performance on X using X CAPI and server GTM, as this type of configuration ensures precise data tracking. For this setup, I need to request access to the conversions API and generate an access token. Click “Submit”. ![Sign up for free account](https://cdn.stape.io/i/68934c3455af3866820915.png) Get access to the Conversions API To get the access to X Conversions API, please contact your X Sales representative. How to set up Twitter Conversions API tag in sGTM 1. Add “Twitter Conversions API tag” to the server GTM container. In the server GTM container, go to the section “Templates” → next to “Tag Templates”, click “Search Gallery” → search for “Twitter Conversions API” → add the tag to your container. ![Twitter Conversions API tag](https://cdn.stape.io/i/68934e4aebbe5667965611.png) 2. Create a new tag. In the section “Tags,” click “New” → as tag configuration select “Twitter Conversions API” tag. ![Twitter Conversion API tag as tag configuration](https://cdn.stape.io/i/68b954d2dce21434055966.png) 3. Configure the tag. 3.1 Consumer Key and Consumer Secret - both are required to send requests to the Conversions API. They can be found in the [X Developer dashboard](https://developer.x.com/en/portal/dashboard) → click on the key symbol next to your Project App. ![X Developer dashboard](https://cdn.stape.io/i/68934f64b11a7885731598.png) Click “Regenerate” in the section “Consumer Keys”. ![Consumer Keys in X](https://cdn.stape.io/i/6893504414f2e374617283.png) Copy the generated keys and paste them into the tag configuration. The first value stands for “Consumer Key” and the second for “Consumer Secret”. ![Consumer Key and Secret](https://cdn.stape.io/i/68935070b1a46445559064.png) 3.2 OAuth Token and OAuth Token Secret can be generated in the same place as Consumer Key and Consumer Secret - in the X dashboard → key symbol next to Project App. To get them, just click on “Regenerate” in the section “Authentication Tokens”. Use an Access Token that belongs to a user with ads-account rights. Without these permissions, Conversion API calls may be rejected. ![Authentication Tokens](https://cdn.stape.io/i/689350bfd1b4a624041565.png) 3.3 Pixel ID - this is your Twitter ad account's Universal Website Tag (UWT) ID. To find it, go to the Twitter events manager. To find the Pixel ID, log in to [X Business Manager](https://ads.x.com/) → Tools section of the menu → Events Manager → copy Pixel ID. ![Pixel ID in X](https://cdn.stape.io/i/689350ff426b7723546933.png) 3.4 Event ID - after creating a conversion API event in the Twitter events manager, you will find it. You can create new events in the Events Manager section. ![Add events in X](https://cdn.stape.io/i/689351349f544114538756.png) The Event ID can be found next to each event you create. ![Events ID in X](https://cdn.stape.io/i/68935161b2bf6925014532.png) 3.5 Use HttpOnly cookies - this option forbids JavaScript from accessing the cookie if enabled. 3.6 Server Event Data Override - select to override one of the standard server parameters: conversion time, number of items, currency, value, conversion ID, description, and contents. 3.7 User Data - add user data: email, phone, or twclid. 3.8 Logs Settings - select if you want to use Stape logs. ![Example of Twitter tag configuration](https://cdn.stape.io/i/68b951bc106af564317405.png) 4. Add a trigger for a tag. 5. Test events. When your event has successfully received conversion events within 12 to 24 hours, the status of the ‘Single event web tag’ should show TRACKING on the Conversion Tracking page of the Ads Manager. It will not impact in-flight campaigns that send conversions via the Conversion API. Event deduplication Twitter supports event deduplication. Combining web and server tracking requires sending a deduplication key with both web and server events. Use conversion_id to send the deduplication key. Deduplication happens only if events were received within 48 hours. To create a server-only event, use the Twitter events manager to create a new event and select Install with Conversions API on the third step. ![Conversion API](https://cdn.stape.io/i/67224ad9112c5027180942.png) Twitter CAPI user parameters Unlike other platforms, Twitter accepts only user email and twclid. When you send an email, it should be hashed with SHA256. Twitter tag automatically hashed user email. Twitter CAPI testing Unfortunately, there is no way to test Twitter server events in real time. If tracking is set up correctly, you should see the status of the ‘Single event web tag’ show tracking upon the Conversion Tracking in the Ads Manager within 12 to 24 hours. Conclusion Twitter CAPI can be a great addition to your server-side tracking stack. Though the authorization process for Twitter CAPI is incredibly complicated for now, other logic works highly similar to FB or TikTok conversion APIs: You can send custom or standard events and use web+server or server tracking only. Twitter asks for user data to match users, but for now, they support only user email and twclid. Twitter CAPI has two main downsides: the authentication process and the lack of a real-time testing tool. Because of the verification process, the Twitter tag only works with stape servers for sGTM. If Twitter simplifies the authentication process, the stape team will update the tag to work with GCP. This guide will help you familiarize yourself with Twitter CAPI and set it up in sGTM. For more detailed information about Twitter CAPI, check the official documentation. Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # How to set up Refersion tag using Google Tag Manager Source: https://stape.io/blog/how-to-set-up-refersion-tag-using-google-tag-manager Want to improve your affiliate tracking? Learn how to set up Refersion tag using Google Tag Manager to get the most accurate conversion tracking. One of the few platforms that made server-side tracking required for all advertisers is Refersion, a market leader in affiliate marketing worldwide. They guarantee affiliates that all of their marketing efforts are properly acknowledged and compensated with the aid of S2S integration. We developed the tag for the server Google Tag Manager to make the Refersion s2s integration process simpler. I'll go through the benefits of server-to-server communication in this blog article, along with how to set up Refersion server-to-server tracking using server GTM. What are the benefits of Refersion server-side? Refersion is dedicated to giving advertisers and affiliates the greatest possible conversion tracking experience. As a pioneer in the field, they always work to collect precise data so that all parties may confidently assess the performance of their efforts. Refersion is constantly concerned with using the finest and most dependable conversion monitoring systems, since this is essential for success in affiliate marketing. Due to ITPs, adBlockers, and the limited usage of third-party cookies, conversion tracking becomes difficult. Refersion created server-to-server integration and made it a requirement for all advertisers on their platform in order to help deal with all these tracking limitations that are present in browser tracking. With the help of our tag you can easily implement Refersion tracking in server Google Tag Manager. By doing that you will receive lots of advantages, such as increased pagespeed, better protection and control of the data, a better understanding of results from affiliate marketing, etc. How to implement Refersion tag with server Google Tag Manager 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. The two most popular ways of sending data to sGTM are by [setting up server-side Google Analytic 4](https://stape.io/blog/set-up-ga4-server-side-tracking) and [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Add [Refersion tag from the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/refersion-tag) or download [Refersion tag from GitHub](https://github.com/stape-io/refersion-tag) -> Open templates sections in the server Google Tag Manager container -> Click New. 4. Click three dots in the top right corner -> Click Import -> Select Refersion tag template you’ve recently downloaded from GitHub -> Click save. ![refersion tag in google template gallery](https://cdn.stape.io/i/62fe134a73867687308200.png) 5. The first step would be to set up tag that sets cookies when a user visits your site. Create a new tag with type Refersion tag -> event type PageView -> set cookie lifetime -> Unlikely other affiliate tag, you can send user data for Refersion pageview event. It can be email, IP address, first/last name. By default, customer data is parsed from the Event Data. But you can override it using tag settings -> Add trigger. ![refersion tag configuration](https://cdn.stape.io/i/62fe1349eafb0276351813.png) 6. Test Refersion pageview tag. You should see that this tag triggered successfully in the server Google Tag Manager Preview mode, and the cookie was set. When PageView triggers tag stores the rfsn URL parameter inside the refersion_rfsn cookie. Do not forget to add ?rfsn= parameter to the URL when testing. ![test of refersion pageview tag](https://cdn.stape.io/i/62fe1349c8479172812996.png) 7. The next step would be to set up a conversion event. Refersion has a list of required fields when triggering conversion event, it described in [Refersion documentation](https://www.refersion.dev/reference/webhook-tracking). Create a new tag with the tag type Refersion -> Select type Conversion -> Add all required parameters -> Add trigger. ![setting up conversion event for refersion tag](https://cdn.stape.io/i/62fe134a737f3188313258.png) 8. Once you’ve done setting up and testing, do not forget to publish server container changes. Conclusion Refersion ensures that conversions are properly acknowledged and that affiliates are properly compensated for conversions they have referred. I hope this article has helped shed some light on Refersion server-to-server integration using server GTM. If you need assistance setting-up your Refersion integration or any other affiliate network, please contact us, and we would be happy to help. Thanks for reading! Need help? All it takes is a few simple questions. Click Get assistance, fill-up the form, and we will send you a quote. --- # How to set up Impact server to server conversion tracking Source: https://stape.io/blog/how-to-set-up-impact-server-to-server-conversion-tracking In this blog post you can learn how to set up an Impact tag to get your affiliate tracking work correctly. Using affiliate marketing to bring in revenue for your company is a great idea. On the other hand, if done correctly, it is also a good method for affiliates to monetise a website which may be quite profitable. [Affiliate conversion tracking](https://stape.io/blog/affiliate-conversion-tracking) has grown difficult as a result of cookie restrictions, Apple's Intelligent Tracking Prevention (ITP), Firefox's Enhanced Tracking Protection (ETP), and ad blockers. Because of this, you might want to think about server-side affiliate tracking. Here we will discuss the Impact server to server conversion tracking: how to set up the tag and how it works. What is server-side Impact tag? Stape created an Impact tag to submit events that you would like to report on and potentially pay partners for. Conversions come in many different forms, with sales, leads, and subscriptions serving as common examples. Using server Google Tag Manager, you configure the Impact tag that sets first-party cookies. These cookies can not be blocked because they have first-party status. Which result in more accurate data. The other benefit is improved pagespeed. When you implement Impact tag on server side the tracking code is reduced which means faster loading time of your site. Besides that, data that this tag gathers is under your control. Client-side tracking has the potential to collect more data than you authorized. For instance, it may scrape personally identifiable information (PII) from your users, which is against GDPR and your privacy statement. But here, on server side, you have total control over what information was provided. How to set up Impact tag using server Google Tag Manager? 1. [Create and set up a server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Send data to the server GTM container. You can do it by [setting up server-side tracking in Google Analytic 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Download [Impact tag](https://github.com/stape-io/impact-tag) from GitHub -> Open templates sections in the server Google Tag Manager container -> Click New. Or add it from the [Community Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/impact-tag) 4. Click three dots in the top right corner -> Click Import -> Select Impact tag template you’ve recently downloaded from GitHub -> Click save. ![impact tag in google template gallery](https://cdn.stape.io/i/62fe0fa22c1b2022429255.png) 5. The first step would be to set cookies with the affiliate ID when the user visits your site. Create a new tag with type Impact tag -> Type PageView -> Add URL parameter that you would like to store in cookies -> set cookie lifetime -> Add trigger. ![impact tag configuration of tag type](https://cdn.stape.io/i/62fe0fa29280a274333807.png) 6. Test Impact tag. You should see that this tag triggered successfully in the server Google Tag Manager Preview mode, and the cookie was set. The cookie name will start with impact. ![test your impact tag](https://cdn.stape.io/i/62fe0fa255b00203972507.png) 7. The next step would be to set up a conversion event. There is a list of required fields to set up Impact conversion event, please refer to [Impact documentation](https://integrations.impact.com/impact-brand/reference/submit-a-conversion) when configuring conversion event fields. ![setting up conversion event for impact tag](https://cdn.stape.io/i/62fe0fa2ab62a730654472.png) 8. Once you’ve done setting up and testing, do not forget to publish server container changes. Conclusion The greatest time to start implementing server-side integration to improve conversion tracking is right now if you consider affiliate marketing to be one of your company's traffic and conversion sources. Client-side tracking and third-party cookies are no longer reliable. Additionally, it will become much less trustworthy when Chrome eliminates third-party cookies. I hope that setting up server-side Impact tag was made easier for you by this blog article. Stape's agency can assist you with setting up server-side tracking for your website. Please contact [care@stape.io](mailto:care@stape.io). Need help setting up server-side tracking? All it takes is a few simple questions. Click Get help, fill-up the form, and we will send you a quote. --- # Facebook offline conversion using server GTM Source: https://stape.io/blog/facebook-offline-conversion-using-server-gtm Track offline Facebook conversions by setting up offline tracking via Google Tag Manager. This guide walks you through the full setup step by step. Marketers who run Facebook Ads often search for better ways to track results and improve campaign performance. Accurate tracking helps measure real actions and optimize ads that bring results. But tracking has become harder with privacy updates and browser limits. After privacy changes, many advertisers started using the [Facebook Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api) to send data directly from backend to Meta. This helps fix data loss and improve Facebook offline conversion tracking quality. Another option is Facebook offline tracking, also called offline conversions. It uses first-party data like CRM or in-store sales that are not blocked by cookies or privacy settings. This method keeps tracking consistent across both online and offline activities. In this guide, we show how to send offline events from your CRM or POS to a server [Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) via webhooks, then forward them to Meta through the Conversions API. What is Facebook offline conversions? Facebook [offline conversions](https://stape.io/blog/ways-of-offline-conversion-tracking) help track actions that happen outside your website, like in-store or phone sales. It is part of Facebook offline tracking and lets you connect real sales with your Meta Ads results. You can upload or send offline event data to Facebook using the Facebook Сonversions API. Meta matches this data to people who saw or clicked your ads. When a match is found, the action is counted as an offline conversion Facebook Ads event. Today, customer journeys often include many touchpoints before a sale. That's why many marketers use offline conversion tracking as an extra layer of analysis when checking campaign performance across both online and offline actions. There are several ways to start offline tracking on Facebook or integrate your CRM with Meta: Manual upload using a CSV file Built-in a custom integration Connectors like Zapier Each option has its limits. Custom Facebook offline conversion integration needs developer time to build a connector between your CRM or POS and Meta. Tools like Zapier make it easier, but can be costly if you send many events. Manual upload through CSV takes time and often causes errors. Stape offers two methods to configure Facebook offline conversion tracking: using [Stape Conversion Tracking CRM apps](https://stape.io/blog/send-data-stape-conversion-tracking-crm-apps-guide) (HubSpot, Pipedrive, HighLevel, Zoho, and Salesforce) a server-side Google Tag Manager (GTM) container tags. Stape Conversion Tracking CRM Apps Stape has developed a suite of CRM applications designed to send offline conversion data from your CRM directly to the Meta platform. These apps can send lead status updates from CRMs to the platforms you need and automatically generate [Customer Match lists in Google Ads](https://stape.io/blog/customer-list-google-ads). Find out the configuration guides below: [Configure Zoho CRM](https://stape.io/blog/meta-zoho-crm-conversion-tracking-app) [Configure HighLevel CRM](https://stape.io/blog/integrate-meta-highlevel-crm-conversion-tracking-app) [Configure Pipedrive CRM](https://stape.io/blog/pipedrive-crm-conversion-tracking-app) [Configure HubSpot CRM](https://stape.io/blog/hubspot-crm-conversion-tracking-app) [Configure Salesforce CRM](https://stape.io/blog/salesforce-connector)https://stape.io/blog/hubspot-crm-conversion-tracking-app Using webhooks If among the CRMs supported by Stape's apps, there is no one you use, you can easily set up Facebook offline conversion tracking with webhooks. In this article, we focus on the benefits and show the configuration process in detail. Why use Facebook offline tracking? There might be multiple reasons to use Facebook offline tracking. Measure events more accurately Create quality custom and lookalike audiences Optimize campaigns towards the best performing ads and ad sets Increase ROAS of FB campaigns Even if you already use the Facebook Conversions API, setting up offline tracking through server GTM can still help. It lets Meta receive data about purchases or signups that happen outside your website, like in-store or phone sales. The more complete data you send to Meta, the more precisely its algorithm can learn who is most likely to convert next. This often improves audience quality and overall ad performance. Offline tracking can also help fill reporting gaps caused by iOS privacy settings. When a person who opted out of app tracking makes a purchase, the Facebook Pixel won't record it. But if your CRM sends this sale to server GTM, Meta can still match it with someone who saw your ad, without using device identifiers. This gives you more complete reports without breaking privacy rules. Another massive benefit of Facebook offline tracking is that it's still eligible for a 28-day attribution window. While with FB pixel or FB CAPI, the maximum you can get is a 7-day attribution. Facebook offline conversion tracking https://youtu.be/EeQjsLh4wrI?si=GPlYiit_ZuA5hL3i Step 1: Configure webhooks Below, we will consider setting up webhooks in WordPress using [Stape's plugin for WordPress](https://wordpress.org/plugins/gtm-server-side/). If you are using another content management system, you will need to do the same - configure the webhook. 1.1 Go to the “Settings” section → “Webhooks” tab. Enable the “Send webhooks to server GTM container” checkbox and add “Server GTM container URL”. ![Configure webhook in WordPress](https://cdn.stape.io/i/66e15cb0e9916197024022.png) 1.2 To find the server GTM container URL, go to the Stape admin → open container → copy “Domain name” in the section “Domains (Tagging Server URLs)”. ![Domain name in Stape admin](https://cdn.stape.io/i/66e15ce3f2600307896353.png) Please note:: Make sure you add a path for the webhooks to differentiate webhook requests from other requests. Example: https://ss.wp-demo.stape.dev/webhook 1.3 Enable checkboxes “Purchase webhook” or “Refund webhook” if it works for your case. Click “Save changes”. Step 2: Enable the preview of webhooks in server GTM 2.1 Open Debug and Preview Mode in server GTM → click on three dots in the upper right corner → “Send requests manually”. ![Send requests manually in server GTM](https://cdn.stape.io/i/66e15d8eb4cc9194786697.png) 2.2 Copy X-Gtm-Server-Preview HTTP header. ![X-Gtm-Server-Preview HTTP header](https://cdn.stape.io/i/66e15db61146b034156617.png) 2.3 Go to the Stape admin account → Power-ups → click “Configure” next to sGTM Preview header config. ![sGTM Preview header config](https://cdn.stape.io/i/66e15ded048de375258838.png) 2.4 Enable the power-up and paste the X-Gtm-Server-Preview HTTP header from server GTM. ![Enable and configure the power-up.](https://cdn.stape.io/i/66e15e2c1cc40862266853.png) 2.5 Click “Save Changes”. Step 3: Add Data Client in sGTM 3.1 Download [Data Client from GitHub](https://github.com/stape-io/data-client). 3.2 Go to server GTM → Templates → Client Templates → click “New”. Import the template you downloaded from GitHub. ![Import Data Client in server GTM](https://cdn.stape.io/i/66e15edf0a089473603387.png) 3.4 Go to the “Clients” section → click “New” → select “Data Client” as Client Type. Make sure you added the path of the webhooks you configured when creating a webhook in the section “Accepted Path Settings.” In our case, it is “/webhook.” ![Client configuration](https://cdn.stape.io/i/66e15f5e7f406060443681.png) This way, the Data Client will listen to all requests containing “/webhook” and retrieve data from this request. How to set up Facebook offline conversions tracking using sGTM 1. In the server GTM, go to the section “Templates” → Tag Templates section → Search Gallery. Add the ‘Facebook Conversions API’ tag template from the server Google Tag Manager Template Gallery. ![Add Facebook conversions API from the Gallery](https://cdn.stape.io/i/66e15fbce765b371087490.png) 2. Go to the Tags section → click “New” → select “Facebook Conversions API” as Tag Configuration. ![Facebook Conversions API Tag in server GTM](https://cdn.stape.io/i/66e15fffc58f3721545373.png) 3. Configure the tag. 3.1 Choose “Event Name Setup Method”: Inherit from client - with this option, the tag will parse all the data that it finds inside the event data and send it to Facebook. Override - manually map the data from the webhook. 3.2 Choose the “Event Type” and “Action Source” from the list that fits your case. 3.3 Add “API Access Token” and “Facebook Pixel ID”. To find “Facebook Pixel ID” go to your Business Manager → Events Manager → Data Sources → copy Dataset ID. ![Dataset ID in Business Manager](https://cdn.stape.io/i/66e16094912c6412445698.png) To find “API Access Token” scroll down and find “Generate access token”. ![Generate Access Token](https://cdn.stape.io/i/66e1610007aa3693501147.png) That's the basic tag configuration if you want to send users or some custom data, you can set it up in the sections of the tag. Below is an example of Facebook Conversions API Tag configuration: ![Example of Facebook Conversions API Tag configuration](https://cdn.stape.io/i/66e1612c10d60941045548.png) 4. Add the trigger. Trigger Type: Custom Event Event name: specify your event name (in our case, it is “purchase) This trigger fires on: Some Custom Events Condition: Client Name equals Data Client ![Trigger Configuration for a Facabook CAPI Tag](https://cdn.stape.io/i/66e16191ed57d691061651.png) Test the Facebook Conversions API tag 1. Open Preview and Debug Mode in server GTM. 2. Go to WordPress Setting tab and click on “Send test webhook”. ![Send test webhook](https://cdn.stape.io/i/66e161df42984002199600.png) 3. See the webhook in Preview and Debug Mode. ![Webhook in Preview and Debug Mode](https://cdn.stape.io/i/66e16209969d5984889313.png) How to improve Event Match Quality when offline data is incomplete Meta offline conversion tracking and CAPI performance rely on matching signals such as _fbp, _fbc, email address, phone number, and other user identifiers. These signals are used by Meta to calculate EMQ and improve attribution accuracy. However, offline systems such as CRM, POS, or webhook-based workflows often don’t pass the full set of identifiers that were originally collected on the website. As a result, conversion events may be sent with only partial user data, which leads to reduced match rates. A server-side enrichment with [Enricher power-up by Stape](https://stape.io/helpdesk/documentation/enricher-power-up) can solve this limitation. Our solution is able to link offline events to previously stored user profiles. When a conversion event arrives, it is matched using identifiers such as email or external ID, and any missing Meta identifiers collected during earlier sessions can be restored and added to the event. This results in more complete conversion data sent to Meta, which can improve EMQ and overall attribution accuracy. https://www.youtube.com/watch?v=x-pF805KUp4 FAQs What are Facebook offline conversions? The Facebook offline conversions tracking helps send sales or signups that happen outside your website, like in-store or phone orders, to Meta Ads. It makes Facebook offline tracking possible by sending offline event data safely through a server. You can connect it with Google Tag Manager or use a webhook integration from your CRM. This setup improves Facebook offline conversion tracking and keeps your results complete. How do you measure offline conversations with Facebook? Here is a simple flow to measure offline conversions with Facebook: Capture the sale in your CRM or POS with event_name, event_time, value, currency, order_id, and customer identifiers like email or phone. Send a webhook from your CRM to server GTM, then forward it to Facebook through Conversions API, or send it directly to Facebook Conversions API. Hash customer fields before sending, and use a consistent event_id to deduplicate against Pixel or other CAPI events. Check results in Events Manager under the offline conversions columns. Data is now sent to Datasets through Conversions API, not Offline Event Set. Monitor match rate, attribution windows, and revenue totals to confirm that Facebook offline conversion tracking reflects real outcomes. How do I track offline events in Meta? To set up Facebook offline tracking, you need: Create a Dataset in Events Manager and connect it to the right ad accounts. Build a Facebook offline conversion integration using server GTM, or call the API directly. Many teams prefer webhooks for Facebook Conversions API integration from the CRM to server GTM for stability. Map fields carefully, for example, Purchase or Lead as event_name, value, currency, and customer identifiers like email or phone. Use a consistent event_id for deduplication. Test in Test Events, then enable it in production. In Ads Manager, add columns for offline conversion Facebook ads and check the attribution window. Conclusion Facebook offline conversions is one of the ways to boost your FB campaign results and improve attribution. Though offline conversions only are not enough for proper FB tracking and audience collection, it might be an excellent addition to your existing FB pixel tracking and FB CAPI. Using webhooks plus a Facebook Conversions API tag in your server Google Tag Manager container, you can set up offline conversions with less manual work. Remember to follow offline conversions best practices to improve the efficiency of your setup. If you need help setting up server-side tagging, we are here to help! Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Pinterest server-side tracking with Conversions API Source: https://stape.io/blog/pinterest-conversion-api Learn how to set up Pinterest server-side tracking using the Stape Pinterest CAPI tag for the server Google Tag Manager container. Thanks to the release of Pinterest Conversions API, implementing server-side tracking for this platform became possible. Pinterest CAPI is an excellent way to increase the accuracy of conversion tracking and, as a result, get a better return on investment for paid advertising. This blog post will explain the benefits of Pinterest CAPI and how the Stape Pinterest Conversions API tag for server GTM works. What is Pinterest server-side tracking? Pinterest server side tracking is a way to send conversion events to Pinterest from a server Google Tag Manager container, not only from the browser. You still collect most events on the website, but instead of sending them straight to Pinterest, the data goes through a cloud server first, where you can process, enrich or hash it before it reaches Pinterest. Adding a cloud server gives you more control over your Pinterest tracking. You can decide what data to send and when to send it; and more events reach Pinterest even when the browser blocks or limits tracking. You can also apply the same tracking rules across different sites and setups. Consent checks can happen on the server too, so only allowed events are sent to Pinterest. Benefits of Pinterest Conversions API The Pinterest Conversions API offers several compelling benefits for advertisers looking to optimize their campaigns: Improved conversion tracking. Tracking conversion events on the server side helps you better understand campaign performance. Such a flow ensures that every conversion event is captured. Better ad targeting. Advertisers can refine their ad targeting and placement strategies with access to precise conversion data. Advertisers can improve their conversion reporting and achieve better advertising results by implementing the Pinterest Conversions API. Enhanced data accuracy. Server-side tracking bypasses browser limitations, leading to more reliable and accurate conversion data compared to client-side tracking. Compliance and privacy. With server-side tracking, advertisers can ensure better compliance with privacy regulations (like GDPR) by controlling how user data is processed and stored. Reduced data loss. By sending data directly from the server, the risk of losing valuable tracking information (due to ad blockers, cookie restrictions, or connectivity issues) is significantly reduced. How does the Pinterest Conversions API work? The Pinterest Conversions API allows advertisers to send server-side conversion events directly to Pinterest, bypassing limitations commonly found with browser-based tracking. By integrating this API, you can track actions like purchases, sign-ups, and other conversions more reliably. Here's a breakdown of the technical flow, as outlined in Pinterest's official documentation: Event triggering: conversion events (e.g., transactions and form submissions) are triggered on your website or app. These events are captured by your server, which processes them to collect relevant data. Data collection: once the event is triggered, the server collects necessary conversion data, which may include transaction IDs, revenue, product details, or any other relevant information (such as user identifiers like email addresses or phone numbers, all hashed for privacy). Secure data transmission: the collected event data is then securely transmitted to Pinterest's servers over HTTPS via the Pinterest Conversions API endpoint. You will use an API key for authentication, ensuring secure communication. Event validation and matching: Pinterest verifies the incoming data and checks for any user identifiers (such as hashed emails or phone numbers) that can match a Pinterest user. This process ensures that conversion events are linked to specific user profiles and ads, helping to attribute the conversion accurately. Event deduplication: if the same event ID is sent through both Pinterest’s Pixel (client-side) and the Conversions API (server-side), Pinterest automatically deduplicates the events to prevent double-counting. Deduplication only works when the event ID is identical in both sources. Here is the [guide](https://developers.pinterest.com/docs/api-features/handling-duplicate-events/) on how to set it up properly. Attribution and reporting: after the event is processed and attributed, Pinterest updates its reports, linking the conversion to the correct ad campaigns. Advertisers then receive more accurate conversion data, allowing for better optimization and campaign performance tracking. Data retention and privacy: Pinterest also follows strict data privacy guidelines, ensuring that user data (especially identifiers like email addresses) is hashed before being sent to their servers. ![Pinterest CAPI technical flow](https://cdn.stape.io/i/685293713fc7d830080719.png) Pinterest CAPI vs Pinterest Tag Pinterest Tag is a client-side tracking tool that collects user interactions directly from the browser, allowing advertisers to monitor actions like page views and conversions. In contrast, Pinterest Conversions API (CAPI) operates server-side, sending event data directly from your server to Pinterest. This server-to-server setup improves data accuracy by bypassing browser limitations such as ad blockers and cookie restrictions. While the Pinterest Tag is easier to implement and captures real-time user behavior, the Pinterest Conversions API offers more reliable and comprehensive tracking, especially important in environments with growing privacy restrictions. If you choose to combine both methods, event deduplication becomes essential to avoid double-counting and ensure accurate reporting. Before starting To set up Pinterest Conversions API, you will need to [set up a GTM server-side container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container), as well as a [web container](https://stape.io/helpdesk/documentation/create-server-container-in-google-tag-manager).https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container Pinterest recommends using both browser and server tracking. Below, we will use the server Google Tag Manager container to set up Pinterest Conversions API. Please note that you should have a data stream from the web to the server container - this can be done with either by [configuring server-side GA4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). How to set up the Pinterest Conversions API tag To implement Pinterest CAPI, begin by configuring the Pinterest tag in your web Google Tag Manager container. This involves setting up the Base Code event and any additional events you wish to track. It's crucial to note that web and server containers require different Pinterest IDs: Web GTM: use the Pinterest ID associated with your Pinterest Ad account. Server GTM: use a distinct Pinterest Advertiser ID. After configuring the web container, proceed to set up the Pinterest Conversions API in your server GTM container. 1. Add the [Pinterest Conversions API tag template](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/pinterest-capi-tag) from the Google Tag Manager Template Gallery. In your server GTM container, go to Templates → Tag Templates → Search Gallery, then add the Pinterest Conversions API template to your workspace. 2. Go to Tags → New → Tag Configuration, then select the Pinterest Conversions API tag template you've added. ![Pinterest Conversions API tag](https://cdn.stape.io/i/695e7c1d87218792206149.jpg) 3. Configure the Pinterest tag. 3.1 Select Action Source - web, offline, Android or iOS app. 3.2 Choose Event Name Setup Method: Standard - with this option, you can choose the event from the list (e.g., page_visit, add_to_cart, checkout, etc.) Inherit from client - the Pinterest CAPI tag will try to map events automatically into standard events or use a custom name if it's impossible to map into a standard event. Custom - if you choose this option, you can set up custom event tracking. 3.3 Add Pinterest Advertiser ID - to find it, login to your [Pinterest Ad account](https://ads.pinterest.com/) → click Settings in the top left corner → under the Manage Business category, click Conversions → choose the Set Up API page from the left-hand navigation. In the block called Generate conversion access token, you'll see your Ad account name and Pinterest Advertiser ID. Copy and paste this ID to the tag in the server container. 3.4 Add API Access Token - in the same block as the Pinterest Advertiser ID, click Generate new token to get your API access token. ![Generate access token](https://cdn.stape.io/i/673c60c82aa9e940213105.png) 3.5 (Optional) Check the following boxes: Test Mode - if you check this box, the events will not be recorded but the API will still return the same response messages. Use this mode to verify your requests are working and your events are constructed correctly. Use Optimistic Scenario - the tag will call gtmOnSuccess() without waiting for a response from the API. This will speed up sGTM response time however your tag will always return the status fired successfully even in case it is not. 4. Add advanced configuration for a Pinterest tag. 4.1 Server Event Data Override - select from a list of custom data. The frequently asked question for this section is how to add an Event ID. The Event ID is automatically grabbed from [event data](https://github.com/stape-io/pinterest-tag/blob/master/template.js#L321), or you can redefine it in tag settings. ![Event ID](https://cdn.stape.io/i/673c60f6ac90e795326256.png) 4.2 User Data - select from a list of user data. These are user data that Pinterest supports: Email addresses Phone numbers Gender Date of birthday Last name First name City State Zip code Country Maids Client IP address Client user-agent External ID Click ID 4.3 Custom Data - select from a list of product data. Along with events, you can send such custom data: Currency Value Content IDs Contents Num items Order ID Search string Opt out type Content name Content category Content brand 4.4 Logs Settings - choose if you want to log requests to your stape account. This feature is handy when setting up server-side tagging since it allows seeing incoming and outgoing requests and network responses. Below is an example of a configured tag: ![Example of configured tag](https://cdn.stape.io/i/673c61237ab02536297488.png) 5. Add a trigger for the tag. Test Pinterest Conversions API tag setup You can test the setup as usual in Google Tag Manager. Click on Preview, trigger the event, and check whether the tag has fired. ![Preview in GTM](https://cdn.stape.io/i/673c614ce17ce424157801.png) Find out more about [debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) in our guide. FAQs about Pinterest Conversions API 1. Does Pinterest offer reliable conversion tracking? Yes, the Pinterest Conversions API allows you to track conversions accurately, even with ad blockers or cookie restrictions, providing a clearer view of campaign performance. 2. What is the conversion rate for Pinterest? Conversion rates on Pinterest vary by industry but tend to be higher for niches like home improvement and retail. The Pinterest Conversions API ensures accurate tracking of conversions like purchases or sign-ups, even when traditional methods like browser-based tracking fail. By leveraging server-side tracking, it provides more reliable data, which leads to better audience targeting and ultimately a higher conversion rate. 3. Is the Pinterest Conversions API GDPR-compliant? Yes, the Pinterest Conversions API is GDPR-compliant. It requires hashed user data (e.g., emails) to protect user privacy. Businesses must also obtain consent from users before sending any data for tracking. 4. Are there any limitations when using the Pinterest Conversions API? User identifiers are required for accurate tracking, which can cause issues if missing. Event processing might have a slight delay, affecting real-time reporting. Conclusion With help of Pinterest Conversions API tag, you can easily track web conversion events. Also you can choose any other action source that better fits your needs - offline conversions or app (iOS and Android) events. When the conversion event occurs, it will be recorded and thanks to the server-side tracking, you will get more reliable data. The Pinterest tag configuration is easy and straightforward, especially if you have set up the Facebook Conversions API. If you have any questions, feel free to contact [Stape's support](https://help.stape.io/hc/en-us/requests/new). Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Facebook Conversions API for ClickFunnels using sGTM Source: https://stape.io/blog/clickfunnels-facebook-conversions-api Set up Facebook Conversions API for ClickFunnels using server-side GTM for accurate attribution, better audience targeting, and improved ROAS. Landing page builders like ClickFunnels were created to allow users to see everything their customers do along the conversion funnel. Such tools provide detailed insights into how your customers interact and what works best for them along each stage of their journey until they finally purchase from you. ClickFunnels was created so that its clients are never left guessing about which marketing campaigns or offers will bring users closer to a purchase. If you're advertising on Facebook or using any other source of paid traffic on ClickFunnels landers, tracking and reporting conversions during each stage of the funnel – down to dollars and cents – is a must-have to make your campaigns profitable and achieve the highest ROAS. How can you ensure that Facebook receives enough data so its algorithms work better toward ad optimization? Well, this is not an easy task considering recent tracking restrictions. But what can definitely help to improve ClickFunnels and Facebook conversion tracking is server-side tracking. If we focus on FB, it's implementing the Facebook Conversions API. While Facebook remains a major platform for advertisers, some marketers also explore options like the [Reddit Pixel Conversions API](https://stape.io/blog/reddit-conversion-api-tag-for-server-google-tag-manager), which can similarly benefit from a server-side approach for more reliable tracking and attribution. In this article, we will show the Stape team's approach to setting up the Facebook Conversions API for ClickFunnels. ClickFunnels built-in Facebook Conversions API integration ClickFunnels offers a fantastic website builder, but I was surprised that it doesn't have a complete Facebook Conversions API built-in integration. ClickFunnels Conversions API integration does not offer all of the best practices that Facebook recommends. Here are some of the most essential drawbacks: 1. No event deduplication. FB documentation says deduplication is necessary if you share the same events from the browser and server. If redundant browser and server events aren’t deduplicated, you will see two conversions in your FB events and Ads Manager, which leads to inaccurate reporting. In most cases, Facebook deduplication uses two parameters to identify redundant events: the event name (for example, PageView, Lead, Purchase, etc.) and the event ID. Events are considered redundant when web and server events have identical event names and event IDs. Two other parameters may be helpful for event deduplication fbp and/or External ID. The best and easiest way to ensure you've set up deduplication correctly is to use the Facebook Test Events tool. Test events should appear in the FB Test Events tool within 30 seconds when configured correctly. 2. Low event match quality. With the native ClickFunnels Facebook Pixel, the event match quality score you will get will be less than 5. The highest event match quality score you can get on Facebook is 10. So is 5 out of 10 good or bad? Well, it depends on the event. As you may have guessed from their name, an event match quality score measures how accurately FB matches events on your site to actual FB user profiles. Quality score depends on three main factors: the number of user parameters you send for every event (such as first name, last name, email, phone, etc.), the number of events that include user data, and the quality of the user parameters. Say you report two events to Facebook: page view and purchase. When a user visits your site, there is little information about the user. It can be some technical data like the user's IP or browser. On the other side, when a user purchases on your site, most likely they add billing details like the first name, last name, email, city, etc. So, having a match quality of 5 on a page view event is good since no additional information can be sent unless the user is logged in or you use[Firestore](https://stape.io/blog/write-data-to-firestore-from-server-google-tag-manager) (or any other database) to enrich user data. At the same time, an event match quality of 5 might be considered low for a purchase event since you have additional user data that might be shared with FB. Facebook encourages sending as many user parameters as you have, such as first name, last name, email, country, etc. They say the more information you provide about users, the better. Curious why they ask so? It's all about getting a better conversion attribution and quality audience, which might lead to a better ROAS and lower cost/conversion. Before sending any user's data to Facebook or any other third-party tool, ensure it complies with your company's privacy policy, terms of use, or any regulations in your country. 3. No server event customization. There is no way to control what events ClickFunnels sends to FB servers, and no way to customize server data. Let’s say you want to track button clicks, specific product views, or scrolls – all these custom events are impossible to add to the native ClickFunnels and Facebook Ads integration. So, to sum up, with a native ClickFunnels integration, you might get events overreporting with lousy attribution. These may lead to an incorrect conversion attribution, a low-quality retargeting audience, and a lookalike audience. There are several ways to improve FB conversion tracking on ClickFunnels. Stape approaches it by setting up the Facebook Conversions API with server-side GTM. In this article, I will describe how we do it. How to set up Facebook Conversions API for ClickFunnels using sGTM Here are things you need to have before setting up the Facebook Conversions API for ClickFunnels: Facebook pixel tracking using web Google Tag Manager. Server Google Tag Manager container created and set up. Let’s get started with setting up FB CAPI for ClickFunnels. 1. The first step would be to send data from web GTM to server GTM. We highly recommend using Data Tag since requests sent by Data Tag are more resistant. Open a web GTM container and add a[Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag) from the Template Gallery. If you decide to use GA4 for sending data from the web to sGTM, I suggest adding the Data Tag to your web GTM templates anyway, because later, we will use it to store user data. 2. I will set up page_view and lead events using FB CAPI in this example. To make FB CAPI work correctly, I need to send user data and event ID for these two events. Adding an event ID is a simple step. We will start with this one. I will use the Stape [Unique event ID variable](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/unique-event-id-variable) template for web GTM. Add a[unique event ID variable](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/unique-event-id-variable) template to your web GTM container → Create a unique event ID variable and add it to your FB pixel tags. In my case, I’m using custom HTML for setting up FB pixel events because I need to use trackSingle to send event data to one FB pixel. In this case, adding an event ID should look like the screenshot below. ![Facebook event ID custom HTML](https://cdn.stape.io/i/62d708e4a8296930306021.png) If you use the FB tag template, scroll to more settings and add the event ID variable to the corresponding field. ![Facebook event ID Facebook tag web GTM](https://cdn.stape.io/i/62d708fa0f40b965374862.png) 3. This step will show how I extract user data from ClickFunnels. User data helps FB match users on your site to FB profiles. I need three things to extract user data: JS variable that scrapes user data from the page. Data Tag that stores user data in cookies or local storage. Data Variable that extracts user data stored. Create a Data Tag that triggers whenever a user submits a contact form. Data Tag stores users' data (first name, email, and phone number) in local storage and cookies when triggered. ![store user data in cookies](https://cdn.stape.io/i/62d7094f3dfbc345443502.png) ![store user data in local storage](https://cdn.stape.io/i/62d70961120e5423828696.png) To scrape user data, I’ve used a custom JavaScript variable that returns each of the needed parameters. It looks like this: function() {     if (document.querySelector('input[name = "email"]')) {         return document.querySelector('input[name = "email"]').value;     }     return ""; } 4. In the previous step, we successfully extracted user data from the site and stored it. The ability of Data Tag to store user data helps to add user data when they are not available on the site. For example, when there is a redirect after successful contact form submission. In this scenario, user data is available on one page, but lead event triggers on another. To extract user data that was stored using Data Tag, I will use[a Data Variable](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-variable) that’s available in the web GTM template gallery. Create a data variable for every user parameter you’ve stored using a data tag. ![data variable](https://cdn.stape.io/i/62d709ce7af98236349916.png) 5. Now, let’s set up a Data Tag to send data from web GTM to server GTM. Create a new tag → Select tag type Data Tag → Add event name → Set[server GTM URL](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). In the event data, I will add the event_id we’ve set up in step #2. Inside the user data, I will add all user parameters that we’ve stored using Data Tag and extracted using Data Variable. ![data tag send lead data](https://cdn.stape.io/i/62d709e1513a0187736587.png) 6. For event deduplication to work correctly, you should use the same trigger for matching events sent by the Data tag and FB pixel tag. 7. You may also want to add user parameters to the FB pixel tag. Why so? Because when FB sees two identical events from the web and server, they remove the server event and keep only the web event. If you send user data in the server event, these user parameters will also be removed. If no user parameters are added to the FB pixel tag, you will lose some additional information that might be helpful for FB algorithms. In my case, I’ve added user data to the custom HTML tag I use to send lead events to the Facebook Pixel. ![Facebook lead event custom html](https://cdn.stape.io/i/62d709f83085d710225324.png) Let’s finally move to the server GTM container and set up FB CAPI. I will use Data Client to retrieve information sent to sGTM by Data Tag. Unfortunately, no Client templates are available in sGTM, so you’ll need to import the Data Client from GitHub manually. Open[this link](https://github.com/stape-io/data-client) and download the zip file from GitHub. Go to the Clients template section in sGTM → Click New client → Import Data Client. ![stape data client](https://cdn.stape.io/i/62d70a50d9e7b292453852.png) 9. Open the Clients section and create a Data Client. ![set up data client](https://cdn.stape.io/i/62d70a72010b8971224529.png) 10. Inside the sGTM container, add the FB CAPI tag template from[Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) → Create a new FB CAPI tag → Select the event name method → Add FB pixel, FB access token, and[FB test ID](https://stape.io/blog/how-to-create-test-facebook-variable). I suggest enabling the checkbox Generate _fbp cookie if it does not exist. This will help with FB attribution → Add event ID and user data. To extract user data, I will use the event data variable. This tag should trigger every lead event claimed by Data Client. ![Facebook Conversion API tag](https://cdn.stape.io/i/62d70a833d79c783178853.png) ![Facebook Conversion API trigger](https://cdn.stape.io/i/62d70aafdd314990829000.png) ![event data sgtm](https://cdn.stape.io/i/62d70abf438a0814826932.png) 11. Set up a Facebook Conversion API tag for every event you want to track on the server side. Once done, open the web and server GTM debuggers and the FB test tool, and start testing ClickFunnels integration with Facebook Conversions. If everything is done correctly, you should see FB pixel triggered in web GTM, FB CAPI tags triggered in sGTM, and deduplicated events and event parameters in the event testing tool. 12. After a couple of days, you should see something similar to what I show on a screenshot below in the FB events manager. Events are sent from both the browser and the server. The event has a decent quality score and no deduplication errors. ![Facebook conversion api clickfunels](https://cdn.stape.io/i/62d70ae7cebe0815339699.png) Conclusion By design, Clickfunnels is a tool for people who spend money on paid advertising. Since the era of manual CPC bidding is going away, and we are highly reliant on machine learning algorithms that decide to whom they should show our ads and at what price, ClickFunnels conversion tracking is crucial for successful[marketing campaigns](https://stape.io/blog/increase-marketing-roi). Since the rise of tracking restrictions, accurate conversion tracking is no longer possible with browser-tracking only. Unfortunately, Clickfunnels' native FB CAPI solution does not give FB server-side tracking good accuracy. The best way to approach FB CAPI for ClickFunnels is to set it up manually using the server GTM container. I hope this article helped you with testing Facebook Lead Ads and ClickFunnels integration. If you need help setting up server-side tracking for your site, do not hesitate to contact us. Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Server-side cross-domain tracking using Cookie reStore tag Source: https://stape.io/blog/server-side-cross-domain-tracking-using-cookie-restore-tag Cross-domain tracking is a complicated process, but with the help of Stape's Cookie reStore tag, it can be made simple. Learn how to set it up. The process of cross-domain tracking is complicated, even for browser tracking. A list with requirements should match in order for cross-domain tracking to work properly and accurately - besides that there are different technologies used when setting up your own implementation. Cross-domain server-side tracking can be even more frustrating. We will cover how server-side cross-domain tracking works in this article and some related topics such as Google Analytics server-side tracking, use of FPLC cookies and Stape's Cookie ReStore tag that can help reuse cookies across domains. Server-side Google Analytics cross-domain tracking Cross-domain tracking allows seeing users who visited two different domains as a single session instead of two separate sessions. It helps to measure user journeys more accurately. Google Analytics keeps track of user sessions by generating a unique client ID (_ga) for each one. This way, it can tell if someone is returning or new to the site. When Google Analytics links users between different domains, it will use the same client ID for both websites. The client ID is stored in the browser's cookies. When cross-domain tracking is enabled, web GA will add a linker parameter to URLs that point to the destination domain. This URL parameter contains the client ID, timestamp, and browser metadata. On a destination domain, GA will check for the parameters in the URL, and if it finds linker parameters, then GA extracts the client ID from the parameter and stores it in cookies. When you switch over to the server-side Google Analytics and server-managed cookies, a new FPID cookie is created. This one replaces _ga and has an HttpOnly flag, meaning it is not accessible by JavaScript. This is when complications start, and it’s also the reason many teams look into how to run [GA4 without cookies](https://stape.io/blog/cookieless-tracking-ga4), since session continuity and cross-domain tracking depend on these server-managed identifiers. We already discussed that web GA cross-domain tracking uses client ID (_ga cookie) and adds linker parameters to the destination domain. Since the FPID cookie is HttpOnly, it’s impossible to read and add it to the URL since JavaScripts can’t access HttpOnly cookie. To eliminate this issue, Google created a new FPLC cookie. FPLC cookie for cross-domain tracking FPLC is a hash of FPID cookies, and it’s not HttpOnly, which means that JavaScript can access FPLC and use it for cross-domain tracking. There are a few critical nuances that you should be aware of before setting up cross-domain tracking for ss GA: FPLC cookie lifetime is 20 hours. It means that cross-domain tracking will only work if a user clicks on a destination URL in less than 20 hours after they landed on a site. Assume, there will be close to 0 cases when a user stays on a page longer than 20 hours and clicks the destination URL. Both websites should use server-side tracking. Since FPID and FPLC are available only for ss GA, both sites that you set up ss cross-domain tracking for must use ss GA. Similar to web GA cross-domain tracking, after you’ve set up ss GA cross-domain tracking, GA will add the FPLC parameter to the URLs of the destination site. The server container of the destination site will catch the FPLC parameter from the URL and set FPID. How Cookie reStore tag works Server-side cross-domain Google Analytics tracking helps only with GA tracking on different domains. But what if you want to pass other cookies from domainA.com to domainB.com. To help address these issues, stape created [Cookie reStore tag for server Google Tag Manager](https://github.com/stape-io/cookie-restore-tag). The cookie reStore tag is designed to store user identifiers and their cookies in Firebase and restore them when you need. To make this tag work, you must pass any user identifiers on the first site and use the same user identifier on another site to extract cookies. There are no restrictions on the type of user identifier and it's number. It could either be an email address or some other kind of unique identifies, like user ID in the CRM, cookie, etc. Cookie reStore tag use cases: Cross-domain tracking Cross-browser tracking Setting correct UTM tags Basically, any situations when you need to store and extract cookies of the same user The cookie reStore tag uses Firestore or Stape Store to preserve cookies on one site and extract them on another. Since you will use one Firestore collection for both sites, if you configure with Firestore, ensure both have access to the same Firestore database. How to use Cookie reStore tag In this example, I will store fbc, fbp and channel_flow cookies on the site https://wp-demo.stape.io/ and restore them on https://stape.dev/. To set up this tag, I need: Both sites using server-side tracking via sGTM. Cross-domain Google Analytics set up, since I will use _ga as a unique user identifier. Let’s get started with setting up the cookie reStore tag. 1. Download [Cookie reStore tag](https://github.com/stape-io/cookie-restore-tag) from GitHub → Open tag templates sections in the server Google Tag Manager container → Click New → Import reStore tag template you’ve recently downloaded → Click Save. Download and import the Cookie reStore tag for all sites that you need to set up cross-domain tracking for. In my case, I’ve added Cookie reStore tag template to https://wp-demo.stape.io/ and https://stape.dev/ sGTM containers. ![Import Cookie reStore tag](https://cdn.stape.io/i/673758783fef5923387404.png) 2. Configure the Cookie reStore tag. Choose the database for this setup - Stape Store or Firebase. For this article, we will consider the setup using Firebase in detail, as this configuration is more complex than with Stape Store. Check the box “Only restore cookies” if you want to prevent saving cookies to Firebase or Stape Store. The option is useful if you want to sync cookies between sites only in one direction. Stape Store configuration To complete the setup with the Stape Store, add identifiers and cookies that need to be restored. Requirements: The same server GTM container has to be used by both websites. [Stape Store](https://stape.io/solutions/stape-store) has to be enabled. ![ReStore tag with Stape Store configuration](https://cdn.stape.io/i/67ff9fb41655a135625055.png) Firebase configuration To set up a tag using Firebase, add Firebase path and Firebase Project ID. Make sure that you've [connected Google Service account to your Stape.io containers](https://stape.io/blog/how-to-connect-google-service-account-to-stape). Firebase Path - path to Firebase collection that should be used to write/read data. The tag will create a new Firestore document in a specified collection every time the Cookie reStore tag triggers. Firebase Project ID - add Firebase project ID. Tag uses a default project ID connected to your service account when empty. Add cookies that should be stored in Firebase. We will use first party _ga cookie as a unique user identifier. To have the same user identifier on the destination domain, we've set up [cross-domain GA4 tracking](https://support.google.com/analytics/answer/10071811?hl=en). ![image](https://cdn.stape.io/i/67ff9ff85c473950272199.png) ![image](https://cdn.stape.io/i/67ffa0051798f146996392.png) 3. When a user visits wp-demo.stape.io, they can click a button and land on another domain, stape.dev. Every time a user clicks on the outbound link, the _gl linker parameter will be added to the destination URL. This parameter contains the encoded values of _ga cookie (Client ID), _ga_ cookie (Session information), among other information. ![image](https://cdn.stape.io/i/67ffa01c9a08a853501894.png) When the user lands on the destination website, the cookie _ga will be recreated with the same value as the previous website. We can read it by creating a cookie variable. ![image](https://cdn.stape.io/i/67ffa04fa6bc1741691614.png) 4. In the sGTM container of the destination site (stape.dev), I’ve set up a cookie reStore tag that extracts and sets _fbc, _fbp, and channel_flow cookies from Firestore based on the user_id parameter that uses _ga value extracted from the cookie. ![image](https://cdn.stape.io/i/67ffa06c47728595706056.png) 5. Once you’ve finished the setup, open sGTM previews, Firebase, and console to make a test. In my case, I checked that the cookies wp-demo.stape.io match stape.dev cookies, and corresponding records were created in Firestore. ![Setup test in developer tools](https://cdn.stape.io/i/67ffa08c8eca4732920721.png) ![image](https://cdn.stape.io/i/67ffa09d6ba40772490772.png) ![image](https://cdn.stape.io/i/67ffa0a9daf05441930737.png) 6. Do not forget to publish updates for both containers once you’ve done with the setup. Conclusion Hope this blog post sheds more light on cross-domain server-side tracking. We've discussed that Google Analytics has a native solution for cross-domain tracking that uses a new FPLC cookie that can be accessed by JavaScript and pass these cookies between different domains. If you need to store and restore cookies cross-domains, cookie reStore tag might be the best solution. It stores unique user identifiers and cookies in Firestore and then uses the same unique identifier to restore cookies on a destination site. I hope this guide will help you set up cross-domain tracking for the server-side tracking. If you need help setting up ss track feel free to reach out. Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Send dataLayer push from server GTM to web GTM Source: https://stape.io/blog/send-datalayer-push-from-server-gtm-to-web-gtm Learn how to send datalayer push from server Google Tag Manager to web GTM using the Stape’s Data Client and Data Tag. When setting up server-side tagging, the most common scenario for setting up a data flow is sending data from web GTM (or other endpoints like CRM, CMS, Google Sheet, etc.) to server GTM containers. But what if you need to trigger a tag in web GTM based on data from sGTM. How can you send dataLayer pushes from server GTM to web GTM? This blog post will show how to send data from server to web GTM using stape’s Data Client and Data Tag. Let’s get started! What are the use cases? Surprisingly we’ve faced many use cases to trigger web events based on data in server GTM. And these use cases deal with different aspects of tracking - triggering events, creating variables, enriching data, setting cookies, etc. Let's take a look at some examples here. 1. Enrich web GTM data using server GTM There are several methods of enriching data using server GTM. We already have blog posts on how to enrich sGTM data using [CRM](https://stape.io/blog/send-data-from-crm-to-facebook-conversion-api-using-webhooks), Firestore, and [Google Sheets](https://stape.io/blog/read-data-from-google-sheet-to-server-google-tag-manager). With the help of [Google Tag Manager dataLayer](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager) pushed from sGTM to web GTM, you can enrich web GTM tags as well. Let’s use Facebook as an example. According to FB documentation, when FB sees identical web and server events, they discard server events and track only web events. Together with the server event itself, they dump all user and product data. So if server event sends more data, Facebook won’t use it. You can solve this issue by sending additional parameters from server to web GTM container and adding it to FB pixel tags. 2. Trigger web events based on data in sGTM We had a situation when we needed to trigger web events only after a server event was set. For example, trigger a purchase event only after sending the server pageview. Or you need to use a server variable in the web GTM container. It means that web tag should be triggered only after sGTM sets this variable. It applies, for instance, when generating Facebook event ID in sGTM and using it in the web GTM. 3. Set cookies in sGTM Server cookies can be more powerful and long-lived compared to web cookies. That is why you might decide to set server cookies. To make server cookies work correctly, you should trigger web events after server cookies are set. Otherwise, web tags might reset server cookies. The process of setting server cookies can be complicated and has some nuances. We will create another blog post about setting up server cookies. How does push data from server to web GTM work? Feature of sending server GTM events to web GTM datalayer is available in Data Tag and Data Client. These two were designed to send data from the web to server GTM. With this new feature, we can do the opposite - send data from server to web GTM. Let me show you how this works. To make this process work, you need to set up a [Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag) in the web GTM and [Data Client](https://github.com/stape-io/data-client) in sGTM. Open Data Tag, scroll to the settings section and enable Push event to DataLayer after the tag receives a response. You will need to set two parameters. ![Push event to DataLayer after the tag receives a response](https://cdn.stape.io/i/629db7c98430d693343011.png) DataLayer Event Name - set dataLayer event that should be sent to the web GTM once server Data Tag receives a response from the server. It may be a static value or variable. DataLayer Object Name - use dataLayer by default. Modify only if you renamed the [dataLayer object name](https://developers.google.com/tag-platform/tag-manager/web/datalayer#rename_the_data_layer). Once done with the setup, Data Tag will receive a response whenever a tag in sGTM triggers based on a Data Client request. Once a response is received, it will send a datalayer event push to the web GTM. How to push server GTM data to web GTM datalayer In this example, I will show how to use a server-generated unique event ID and server-enriched user data inside the web Google Tag Manager container. To do this I will need [Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag), [Data Client](https://github.com/stape-io/data-client), [Service Account connected to stape](https://stape.io/blog/how-to-connect-google-service-account-to-stape), Firestore, and [Response tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/json-response-tag). 1. Add [Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag) from web GTM template gallery. 2. Create a Data Tag in the web GTM -> select event name -> set GTM Server Side URL -> Scroll to the settings section and enable Push event to DataLayer after tag receives a response -> add DataLayer Event Name -> Set datalayer Object Name. Change this parameter only if you [renamed the dataLayer object](https://developers.google.com/tag-platform/tag-manager/web/datalayer#rename_the_data_layer). ![Send dataLayer push from server GTM to web GTM](https://cdn.stape.io/i/629ee1a294e7d006620057.png) 3. Download [Data Client](https://github.com/stape-io/data-client) from GitHub. Go to the sGTM templates section -> Create a Client Template -> Click three dots in the top right corner -> Click Import and select the Data Client you’ve downloaded from Git Hub. ![data client server GTM](https://cdn.stape.io/i/629db85a912ff802444465.png) 4. Create a Data Client in sGTM -> Open Response Settings -> set Response Body to empty. We will need this setting later while setting up the [Response tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/json-response-tag). If you select empty, Data Client won't set any response. Only Response tag will be responsible for setting server response. ![Data client response settings](https://cdn.stape.io/i/629e23a67a9ca741220360.png) 5. Add [Response tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/json-response-tag) from server Google Tag Manager template gallery -> Create response tag -> Add values that you want to send to Web GTM. I will send the event name, unique_event_id (this one is generated automatically by Data Client), and user email. To send user email for events like pageview (when a user email is not available) I will utilize Firestore Writer tag and Firestore Lookup variable. The response tag should trigger every time when Data Client is claimed. ![json response tag](https://cdn.stape.io/i/629e2671b54ff013135052.png) 6. Open web and server GTM debuggers and test your setup. In my case, I've got a datalayer event in the web GTM that includes unique_event_id, user_email, and event_name. ![server response in web GTM](https://cdn.stape.io/i/629e2a3d09cf4617954165.png) Conclusion I hope this new ability to send data from server to web will help fix some problems with your tracking and allow you to improve web and server tracking. For us, this feature made a big deal. Thanks for reading. Contact us if you need help setting up ss tagging for your site! Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote\, fill-up the form, and we'll get back to you! --- # Outbrain server-to-server tracking using sGTM Source: https://stape.io/blog/outbrain-server-to-server-tracking-using-sgtm Outbrain is a content platform that boosts engagement, optimizes ad campaigns, and improves data accuracy with server-to-server tracking integration. Outbrain [server-to-server tracking](https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager) helps improve the quality of data sent out, giving more precise information on how well campaigns are converted and a better source for data-driven advertising algorithms to learn. Besides data quality, there are other benefits like the ability to measure offsite conversions and remove 3rd party scripts from pages - which make sites both safer and faster. We've tried to simplify Outbrain s2s integration by creating the Outbrain s2s tag for the Google Tag Manager server container. In this article, we'll walk you through the steps of setting up the server GTM tag for Outbrain and describe how Outbrain s2s tag works. Outbrain server-to-server tracking Outbrain's Pixel is a powerful tool that can be used to track conversions. However, it has some flaws - for instance, when users enable ad blockers or privacy settings on browsers, Outbrain pixel won’t be able to set cookies or track events. This means intelligent bidding optimization won’t take any notice whatsoever and conversion events won’t be reported. Server-to-server tracking can overcome these pixel restrictions. When a user visits your site, the server tagging endpoint will set 1st party cookies with the unique user identifier. Once this user converts, s2s Outbrain conversion tag sends a request to the postback URL with the user identifier back to Outbrain. Based on this data Outbrain understands that the conversion event was triggered, what user made the conversion, and what advertiser is responsible for the conversion event. Server GTM Outbrain tag The logic of Outbrain s2s tag for the sGTM container is simple: when the pageview event triggers, Outbrain pageview sGTM tag captures ​​Outbrain click-id from the URL and stores it in cookies. When conversion event triggers, conversion tag sends the conversion event to Outbrain together with event details. Conversion tag allows sending event name, order ID, order value, and currency code when a conversion event triggers. How to set up server GTM Outbrain tag 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. You can do it by [setting up Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Add Outbrain tag using [sGTM template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/outbrain-tag) 4. Create Outbrain Pageview tag -> Add [Outbrain click ID](https://www.outbrain.com/help/advertisers/server2server-integrations/) parameter that you’ve specified in Outbrain campaign settings -> Set Outbrain Click ID cookie lifetime in seconds. When a user clicks on the ad, Outbrain appends the Click ID to the URL. Outbrain sGTM tag stores this click ID in the outbrain_cid cookie. A cookie expiration time can be modified in tag settings. ![outbrain pageview server to server tag](https://cdn.stape.io/i/628b9869aba33416178196.png) 5. Log in to the Outbrain account and create a conversion event if you haven’t configured it yet. Go to the conversions tab and click Add Conversion button-> select type Event-Based Conversion -> add event name and choose category -> click save. 6. Create Outbrain conversion tag -> add event name. It should exactly match the conversion event name you’ve set up in Outbrain -> add order ID, order value, and currency, and if necessary -> add a trigger. ![outbrain conversion event server to server tag](https://cdn.stape.io/i/628b989510be2581026377.png) 7. Open sGTM preview mode and test Outbrain tags. While testing the pageview tag, make sure you’ve added a click ID to the URL. You should see that outbrain_cid created. Once you’ve tested the conversion event, go back to the Outbrain interface and check that the tracking status of the conversion event is active. ![test outbrain server to server tag](https://cdn.stape.io/i/628b98ea6c826260392142.png) Conclusion: Most affiliate and advertising platforms recommend implementing server-side tracking alongside or replacing client site tracking. S2S helps make tracking more resistant and record data when client-side tracking fails. For example, when using ad blockers, browser privacy settings, or the page just doesn’t finish loading. If you need help setting up server-side tracking, don't hesitate to contact us. Our team of experts will be more than happy to assist you in getting set up and start seeing the benefits of Outbrain's robust server-to-server tracking. Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Server-side GTM with multiple domains Source: https://stape.io/blog/server-side-gtm-with-multiple-domains Set up server-side GTM for multiple domains with Stape. Learn single sGTM container use, custom domain mapping, and handling multiple tagging server URLs. The first step to successfully web tracking is creating a detailed plan that describes what events and event data should be sent and when. This ensures the correct information gets collected, analyzed, and reported back to analytics tools like Google Analytics or Facebook. Configuring server-side tracking should start even with an earlier phase - planning how to set tagging server. Configuring a tagging server is relatively easy if you plan to use an sGTM container for one website. Just create a custom domain for the tagging server, set necessary DNS records, configure sGTM, and that's it. But what should you do when using one server GTM container for multiple websites? When does it make sense to use one sGTM container for several websites? How should you map custom domains in this case? How to use sGTM if more than 20 custom domains are added? In this blog post, we will cover all questions related to [server-side tagging](https://stape.io/blog/server-side-tagging) for multi-domains and show how to set up a multi-domain tagging server using Stape. Google Tag Manager on multiple domains explained Running Google Tag Manager on multiple domains is common for brands managing several localized sites, subdomains, or related properties under one shared tracking setup, and it behaves a little differently depending on whether you're working with the web container or the server container. In the web container, each domain simply loads its own copy of the GTM snippet, so there's nothing extra to map - cookies and tracking stay scoped to whichever domain the visitor is on. Server-side tracking adds a layer on top of that, since the tagging server itself also needs to know which domains it's allowed to serve. Multiple domains with web GTM vs. server GTM With standard web GTM, tracking multiple domains rarely needs special configuration beyond installing the container on each site - there's no shared tagging server to map, so every domain operates independently. Server-side setups work differently because GTM server-side runs on two containers, web and server, that have to be connected before cookies can persist as first-party data across every mapped domain: the web container still fires the tags that reach the browser, while the server container receives that data, processes it, and forwards it on to your analytics and ad platforms. When to use one sGTM for multiple domains These are the three most popular use cases for utilizing one sGTM for several websites: Localization. Site uses different domains for localization. For example, the English version is example.com, example.es - is the Spanish version, etc. Subdomains. Some parts of the website are located on subdomains. example.com - is the main site, but there are also blog.example.com, landing.example.com, etc. Different domains but same niche. You might have several websites in the same niche and use one tracking property for all of your websites, for example, the same sGTM and UA for websites with domains, example.com, test.com, blog.com, etc. Disadvantage of using one sGTM container for multiple domains You might decide to use one server Google Tag Manager for multiple websites to reduce expenses on sGTM hosting. Though it really might decrease costs on running sGTM, we highly recommend using one sGTM on multiple domains when it is strictly necessary because a multi-domain setup makes managing sGTM tracking extremely complicated. Using one server GTM container for several websites can lead to an increase in the number of tags and triggers because you might have situations where it's necessary to create a separate tag or trigger, depending on the domain. Most of this extra maintenance comes down to Google Tag Manager server-side and how it works with two containers - every added domain means keeping both the web side and the server side in sync at the same time. Besides server-side GA, you will want to set up ss tracking for other platforms like Facebook, TikTok, Snapchat, or maybe use Firestore or Google Sheet integration. With multiple websites in one sGTM, the number of sGTM elements will grow exponentially since you must create tags, triggers, and variables for each website. Eventually, you might reach the limits of the server-side GTM container. Yes, you can't create an unlimited number of elements in an sGTM container. Google determines how heavy the sGTM container is by evaluating the size of the code and not the number of elements in sGTM. One of our test containers reached the limit of 85% with only 41 tags and 5 clients. When the container comes to the limit, you should either restructure the sGTM container into several sGTMs, which means using another tagging server URL. Or delete some parts of server GTM. ![Server GTM limit](https://cdn.stape.io/i/6707a696e9d7f868645009.png) Server GTM limit Map multiple domains to one sGTM tagging server The key feature of server-side tagging is setting first-party cookies. To do so, it's necessary to configure a [custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) for a tagging server URL. Custom domain should be located within your main site domain hierarchy. When using sGTM for one site, it's easy to determine a custom domain, just use top-level domain +1. Here we will cover two scenarios for using one sGTM for multiple domains: 1. Different domains When mapping websites with completely different domains into one sGTM endpoint, it's necessary to create a custom domain for each site individually. Later in this article, I will show you how to configure tagging server, server and web GTMs for multi-domain containers with different domains. 2. Sharing the same domain When websites share the same domain (example.com and blog.example.com), tagging server domain should be configured on the top-level domain + 1 (eTLD+1) of the given domain or URL. This means that for websites example.com and blog.example.com tagging server should look like ss.example.com. In this case, both domains will have access to set first-party cookies. Do NOT use something like ss.blog.example.com. Map multiple domains inside sGTM container [Step-by-step guide] https://www.youtube.com/watch?v=zrLjb_C-wZs How to set up Multi-domain container on Stape Multi domains feature is available for Business (and higher) plans on Stape. To enable it, open the sGTM container, click Power-Ups, and click Use near Multi-Domains. ![Multi domains feature on Stape](https://cdn.stape.io/i/6707a6d199377589037385.png) Multi domains feature on Stape Add all subdomains that you want to use for the server-side endpoint. For Business plan users the limit is 20 domains and for Enterprise it's 50 domains. For Custom plan users, the number of domains is agreed individually during the plan setup. ![Multi domains in Stape](https://cdn.stape.io/i/6707a6ebe63c0689350200.png) Multi domains in Stape Server Google Tag Manager debugger with multi-domains The only thing that needs to be set up in the server GTM container is Server container URLs in the Admin settings. Here you will need to add all server container URLs that you've set up in the previous step. To do so open Admin → Container Settings → add URL under Server container URLs. ![Add URL under Server container URLs](https://cdn.stape.io/i/6707a71cf1e48192043418.png) Add URL under Server container URLs Adding server container URL affects the sGTM debug URL. To select the tagging URL you want to use for debugging, click the selector near the preview button. ![Adding server container URL](https://cdn.stape.io/i/6707a73b9f6b1337468186.png) Adding server container URL You will see the custom domain list you've added in the container settings. Select one from the list of the domains. ![Select one from the list of the domains](https://cdn.stape.io/i/6707a7501efa6452582490.png) Select one from the list of the domains Once done, click preview and check if the preview URL uses the correct custom domain, the one that you've selected in the previous step. In the container settings of server GTM, there is a technical limitation that you can add a maximum of 20 domains. These domains only affect which preview url is opened. If you have more than 20 domains, you will simply need to add the urls of those that do not fit into the preview URL string. ![Maximum of 20 domains](https://cdn.stape.io/i/6707a76040ca2564469897.png) Maximum of 20 domains Web GTM with multiple tagging server URLs We approach necessary changes in web GTM with a multidomain tagging server using the [Lookup table variable](https://stape.io/solutions/lookup-table-variable). In the web GTM, you need to send, for example, GA4 data to the pacific tagging server URL. The best way to set it up is by using the Lookup Table variable. This lookup variable should check the page hostname, and depending on that set tagging the server URL. Since Google Tag Manager server-side runs on two containers, web and server, the web side needs exactly this kind of logic to know which tagging server to call for each domain. ![Lookup variable tagging server](https://cdn.stape.io/i/6707a77b6a8e2057783674.png) Lookup variable tagging server Conclusion Hope this blog post shed more light on configuring a server GTM container for multiple tagging servers. This is a handy feature when using different domains for website localization, brands, products, landing pages, etc. While setting up server-side Google Tag Manager is getting more popular, it can be a little daunting for those who have never done it before. If you need help getting started, our team of experts are more than happy to assist you. Contact us today, and we'll get your tracking set up in no time! --- # Troubleshooting server-side tagging using server GTM logs Source: https://stape.io/blog/troubleshooting-server-side-tagging-using-server-gtm-logs Learn how to troubleshoot server-side tagging using server GTM logs. Diagnose issues with requests, missing data, and vendor responses to optimize the setup. Setting up server-side tagging can be an uphill battle. Except for configuring a tagging server for your sGTM, there are so many different clients, tags, variables, and triggers that need tweaking to work seamlessly. In this blog post, we want to talk about server GTM logs and how logs help diagnose problems with server-side tagging. Server GTM logs Stape Logs is an essential tool to use when setting up [server-side tagging](https://stape.io/blog/server-side-tagging). It can help you troubleshoot any problems with requests, missing data, or even determine how the vendor processed a request. ![Logs tab in the Stape admin](https://cdn.stape.io/i/6a01cdbec3326540009575.png) Stape paid plan offers several types of requests for users to view: Incoming requests (those that your server GTM container receives) Outgoing requests (those that are sent to third-party platforms from your server GTM container) Stape's Pro and Pro+ plan users get access to logs for the last 3 days. And for Business and higher plans - logs are available for the last 10 days. Each type of log has its own filter options like date range or client name, which will help ensure specific events don't get lost among others - perfect when you need quick troubleshooting. Downloading those requests onto CVS is also possible. The Export logs feature is available for Enterprise plans or higher. We have a detailed [guide on Stape's Logs feature](https://stape.io/helpdesk/documentation/logs-feature), its functionality, and configuration. Server GTM logs use cases There are countless situations when server Google Tag Manager logs can help troubleshoot server-side tagging setup. Here are just four of the many ways that it will help you out. 1. Fewer purchases in the analytics platform than in the CRM. You can troubleshoot this issue by going to Log, filtering all Outgoing requests, and checking if all purchase events were processed successfully (status 200). 2. Suspect that Facebook Ads manager attribution doesn't work correctly. If you think that FB attribution doesn't work correctly, the first thing that you would want to verify is if Facebook CAPI sends the fbc and fbp parameters via Stape Logs. For a detailed guide on how to troubleshoot these tracking issues, refer to our [guide on data discrepancies causes](https://stape.io/blog/data-discrepancies-troubleshooting). 3. Event is missing a parameter. You've noticed that some purchases in Google Analytics miss the purchase value. In this case, the Logger tag can help to troubleshoot this error. We will show how to use the Logger tag later in this blog post. But the main idea is that you set up a tag in sGTM that triggers the purchase event when the purchase value is 0. You can add a custom name to this event and later check it inside the Stape Logs section. 4. Logging POST requests body. Server GTM logs have two request types POST and GET. POST request body is not available by default in Google Cloud or Stape logs. If you need to see more details about POST requests, use Logger Tag and enable Log Request Body in the tag settings. Set up Logger tag in sGTM The Logger tag for server-side Google Tag Manager (sGTM) helps track and debug requests sent to your server container. It allows you to log event data, request details, and custom information to [Stape Store](https://stape.io/solutions/stape-store), GCP, BigQuery, or other cloud platform logs. This tag also allows logging of POST request bodies, which are not included in logs for GCP or Stape by default. Note that the tag doesn't log responses to requests made within sGTM, because it's not possible for this tag to access them. You can alternatively achieve this using the logging section in Stape's tag templates. 1. Go to your Google Tag Manager server container → open the Tags section → click New. 2. In the pane that opens → click Discover more tag types in the Community Template Gallery → search for Logger → click on the Logger tag by stape-io → click Choose template. ![Import Tag Template](https://cdn.stape.io/i/69a1bcc70ee42797294469.png) ![Logger tag in the Template Gallery](https://cdn.stape.io/i/69a1bd755065d447069365.png) 3. Create a new tag in the server GTM. As a tag type, choose Logger. 4. Launch sGTM debugger and test the Logger tag. Once the tag is triggered go to your sGTM Container → click Logs → Other Logs → add event name → apply filter. Console as Logs Destination Select if you want to log events only while debugging or always → select what information you want to add to logs → add event name. You can use either static or dynamic name → add custom data if needed → add a trigger. ![Tag config](https://cdn.stape.io/i/69a1be02be4e4938917388.png) You will see information about requests and can troubleshoot any issues. ![Log during debug](https://cdn.stape.io/i/69a1be2717122975801395.png) Stape Store as Logs Destination If you are a Stape Pro or higher plan user and need to save some storage space in the container, opt for Stape Store as the logs destination. ![Stape Store as the logs destination](https://cdn.stape.io/i/69a1beb8c8e53010797237.png) Set up BigQuery logging for Stape's GTM templates Similarly to the Logs Settings mentioned in the [Types of server GTM logs](https://stape.io/blog/troubleshooting-server-side-tagging-using-server-gtm-logs#types-of-server-gtm-logs) section above, some Stape's GTM templates also support logging the same information to BigQuery. The following tags already support this feature: [Snapchat Conversion API Tag for the server Google Tag Manager](https://stape.io/solutions/snapchat-capi-tag) [How to set up TikTok events API. server-side tracking for TikTok](https://stape.io/solutions/tiktok-events-api) [Facebook Conversion API Tag for the server Google Tag Manager](https://stape.io/solutions/facebook-capi-tag) [Google Ads Offline Conversion Tag](https://stape.io/solutions/google-ads-offline-conversion-tag) To enable this type of log, go to server GTM → Open the tag/variable → Scroll down to BigQuery Logs Settings, and select Log to BigQuery. Add the BigQuery Dataset ID and BigQuery Table ID. The field is BigQuery Project ID is optional. If omitted, it will be retrieved from the environment variable GOOGLE_CLOUD_PROJECT where the server container is running. If the server container is running on Google Cloud, GOOGLE_CLOUD_PROJECT will already be set to the Google Cloud Project's ID. Save the changes. Remember to use [Stape's Service Account power-up](https://stape.io/blog/how-to-connect-google-service-account-to-stape); or give the server GTM default service account access to the BigQuery project on GCP. ![Log during debug](https://cdn.stape.io/i/68a44530a3a71096231760.png) Now, go to BigQuery and create a table with the following schema: Field Name | Type | Mode | Description timestamp | INTEGER | REQUIRED | Unix epoch timestamp (milliseconds). type | STRING | REQUIRED | Log type: Request, Response or Message. trace_id | STRING | REQUIRED | Unique identifier for the request (from the trace-id header). tag_name | STRING | REQUIRED | Name of the GTM tag generating the log. request_method | STRING | NULLABLE | HTTP method (GET, POST, etc.) (if applicable). request_url | STRING | NULLABLE | URL of the API request (if applicable). request_body | JSON | NULLABLE | JSON string representation of request body (if applicable). response_status_code | INTEGER | NULLABLE | HTTP status code from API response (if applicable). response_body | JSON | NULLABLE | JSON string representation of API response body (if applicable). response_headers | JSON | NULLABLE | JSON string representation of API response headers (if applicable). event_name | STRING | NULLABLE | Name of the event being tracked. message | STRING | NULLABLE | Additional log messages (for Message type). reason | STRING | NULLABLE | Reason for failure (for Message type). To create a table, go to BigQuery project; choose or Create a dataset; for the chosen dataset, click the three vertical dots next to its name and select Create table. Give the table a name and click Edit as text under the Schema section. Copy and paste the table schema below: [     {         "name": "timestamp",         "type": "INTEGER",         "mode": "REQUIRED",         "description": "Unix epoch timestamp (milliseconds)."     },     {         "name": "type",         "type": "STRING",         "mode": "REQUIRED",         "description": "Log type: `Request`, `Response` or `Message`."     },     {         "name": "trace_id",         "type": "STRING",         "mode": "REQUIRED",         "description": "Unique identifier for the request (from the `trace-id` header)."     },     {         "name": "tag_name",         "type": "STRING",         "mode": "REQUIRED",         "description": "Name of the GTM tag generating the log."     },     {         "name": "request_method",         "type": "STRING",         "mode": "NULLABLE",         "description": "HTTP method (GET, POST, etc.)."     },     {         "name": "request_url",         "type": "STRING",         "mode": "NULLABLE",         "description": "URL of the API request."     },     {         "name": "request_body",         "type": "JSON",         "mode": "NULLABLE",         "description": "JSON string representation of request body."     },     {         "name": "response_status_code",         "type": "INTEGER",         "mode": "NULLABLE",         "description": "HTTP status code from API response."     },     {         "name": "response_body",         "type": "JSON",         "mode": "NULLABLE",         "description": "JSON string representation of API response body."     },     {         "name": "response_headers",         "type": "JSON",         "mode": "NULLABLE",         "description": "JSON string representation of API response headers."     },     {         "name": "event_name",         "type": "STRING",         "mode": "NULLABLE",         "description": "Name of the event being tracked."     },     {         "name": "message",         "type": "STRING",         "mode": "NULLABLE",         "description": "Additional log messages (for `Message` type)."     },     {         "name": "reason",         "type": "STRING",         "mode": "NULLABLE",         "description": "Reason for failure (for `Message` type)."     } ] As a result, you will get such a table configuration: ![Table config](https://cdn.stape.io/i/68a44623ec1c9583534000.png) You can define the “partitioning setting” and “clustering setting”. It's not required, but this can help optimize performance and costs associated with this table. Suggestion: partition by ingestion time - day and cluster by tag_name or type. ![Partitioning settings](https://cdn.stape.io/i/68a4468226d36482681235.png) Once all this is done, click Create a table. Your logs should start to populate in the newly created table. Conclusion Server GTM Logs is a powerful tool when setting up, testing, and debugging server-side tagging. The best thing about Stape logs is that they're free for paid plan users. Unlike Google Cloud, where you need to pay an additional charge for logs. If you use Stape's tags, you can also check response logs and clearly understand whether the platform successfully received and processed requests or encountered some errors. If you want to test a specific situation, the Logger tag for sGTM can be helpful. Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Write data to Firestore from server Google Tag Manager Source: https://stape.io/blog/write-data-to-firestore-from-server-google-tag-manager Firestore is a NoSQL database that stores data in documents within collections. Learn how to integrate it with server-side GTM for data enrichment and transfer. Firestore and sGTM integration give numerous opportunities for server-side tagging. The best thing you can do with this combination is to enrich server-side data. You can quickly get data from Firestore using a new Firestore Lookup variable. It’s a native variable and available for everyone in sGTM. But how can you write data to Firebase? Stape solved this problem by creating a Firestore Writer tag. This blog post will show how to write data to Firestore from the server Google Tag Manager container. I’ll also show how to use the Firestore Writer tag and Firestore Lookup variable to enrich server-side data. Let's get started! What is Firestore Firestore is a flexible and scalable NoSQL database with document-oriented storage. Unlike SQL databases, there are no tables or rows in Firestore - instead, you store data into documents that get organized into collections for easy navigation and management. ![firestore server Google Tag Manager](https://cdn.stape.io/i/6267a9b586e00501475459.png) Firestore is the perfect solution for those with extensive collections of small documents. It stores data in documents that are organized in collections. Each document includes name-value pairs. Firestore and server Google Tag Manager With the newest release of server-side GTM API, it’s now possible to build integration of Firestore and sGTM. We used this API to create the Firestore Writer tag. Let me quickly describe what functions Firestore sGTM API gives. Firestore.read - reads data from Firestore document and returns a promise that resolves to an object containing two keys: id and data. Firestore.write - writes data to a Firestore document or collection. If you specify only the path to the collection, the document will be automatically created with a random name. Firestore.query - returns an array of Firestore documents that match specified query conditions. Firestore.runTransaction - allows reading and writing from Firestore automatically. Firestore Writer tag ![firestore writer tag for server Google Tag Manager](https://cdn.stape.io/i/6267a9b57c5fc259116981.png) Firebase Path - specify a path to your Firestore document or collection. Must not start or end with a '/.' If the path is to a collection, a document will be created with a randomly generated ID. If the path is to a document that does not exist, it will be generated. There are several action types that this tag allows: Add Event Data - send all Event Data you have in sGTM to the Firestore document. If Event Data and Custom Data have the same field, the Custom Data value will be used for that field. In other words, you can override Event Data values with Custom Data. Merge document keys - If checked, the tag will merge keys in the Fire Store document with the data from sGTM. Otherwise, the tag will override the whole document. Override Firebase Project ID - The projectId is retrieved from the environment variable GOOGLE_CLOUD_PROJECT as long as the access_firestore permission setting for the project ID is set to * or GOOGLE_CLOUD_PROJECT. If the server container runs on Google Cloud, GOOGLE_CLOUD_PROJECT will already be assigned to the Google Cloud project's ID. Add Timestamp - when enabled, the tag will add the millisecond timestamp to the document. Custom Data - use this to override event data. To set up the Firestore Writer tag you will need write data from sGTM to google sheets https://youtu.be/1XPTnYruiIM If you use stape for sGTM hosting, you will need these things to set up the Firestore Writer tag: 1. Google Service Account connected to stape 1. Create or login to the [Google Cloud Platform web console](https://console.cloud.google.com/). 2. Select IAM & Admin → Service Accounts → Click Create service account. ![Create Google service account.](https://cdn.stape.io/i/672dfc0747e61482481931.png) 3. Add account → Click Next → Select Roles BigQuery Data Editor role for BigQuery access or the Cloud Datastore User role for Firestore. If you want to use Google Service Account only for BigQuery, choose only the BigQuery Data Editor role. The same for Firestore. When you get to the 3rd step, just click Done. ![select Google service account roles](https://cdn.stape.io/i/672dfc304124c710680552.png) 4. Create private key → Select JSON → select Create → JSON will be downloaded to your computer. ![generate Google service account private key](https://cdn.stape.io/i/672dfc4868865381534726.png) 5. Open your [stape.io account](https://stape.io/login) → open sGTM container → open Power-ups tab → find "Google Service Account" power-up → Upload JSON file that you’ve downloaded from Google Cloud → Click Save. ![upload Google service account private key to stape](https://cdn.stape.io/i/672e01eed080c168522620.png) 2. Firebase account 1. Open [Firebase](https://firebase.google.com/) → click Create Project → Select the same project you’ve used to create Google Service Account → click Continue → Click Add Firebase on the third step. 2. Click Build → Firestore Database. ![create firebase project](https://cdn.stape.io/i/672dfc74c8e9b237974392.png) 3. Click Create Database → select Start in production mode → Click Next. ![create firebase database](https://cdn.stape.io/i/6267ac7f6c306473762230.png) 4. Select Cloud Firestore location. It should match your sGTM server location. To check the sGTM server location, go to your [stape.io](https://stape.io/login) account → open the sGTM container that you want to integrate with Firebase and check Server Location. ![Select Cloud Firestore location](https://cdn.stape.io/i/6267ac93e70b1933650459.png) 5. Click Start a collection. Here you will need to set Firebase Path that lately will be used for Firestore Writer Tag. I’ve added Firebase Path to purchase → Click Save. ![Click Start firestore collection](https://cdn.stape.io/i/672dfcd701c39225479238.png) How to set up the Firestore Writer tag The ability to write and read data to/from Firestore gives numerous scenarios for data enrichment. You store data in Firestore using the Firestore Writer tag and extract the needed data with the help of the Firestore Lookup variable to send it in sGTM tags. In this example, I want to send user data to Facebook conversion API and when this information is not available in sGTM event data. To achieve it, I will store user data and Google Analytics client id (_gid) in Firebase when a user makes a purchase. Using the Firestore lookup variable and _gid (as a user's unique identification), I will extract user details on the page_view event and enrich the Facebook CAPI pageview event. enrich server-side data using Firestore https://youtu.be/Hb__99Zeb4I 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. It can be done by [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or https://stape.io/blog/sending-data-from-google-tag-manager-web-container-to-the-server-container[Data Tag Stape](https://stape.io/solutions/data-tag-client). 3. Download [Firestore Writer tag](https://github.com/stape-io/firestore-writer-tag) from GitHub or add it from the [sGTM template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-writer-tag) → Open templates sections in the server Google Tag Manager container → Click New. 4. Click three dots in the top right corner → Click Import → Select the Firestore Writer tag template you’ve recently downloaded from GitHub → Click save. ![import Firestore Writer tag](https://cdn.stape.io/i/672dfcfda7a7e061792020.png) 5. Create a new Firestore Writer tag → Add Firebase Path. I will use path purchase, this setup will create a new collection called purchase in Firestore, and all new purchases will be added as Firestore documents with random names. I will select an action Add Event Data, which means that the tag will write all event data to Firestore. I also added Custom Data to add user_email and user_id to the Firestore document. Since this is a test site and demo setup, I would not hash user data, but if you use a similar format on production, make sure to hash user data. ![Create a new Firestore Writer tag](https://cdn.stape.io/i/6267a9b593598465886320.png) 6. Test your tag and check what data was added to Firestore. In my case, whenever a user purchases on the site, a new document is added to Firestore with sGTM event data. ![Test Firestore writer tag](https://cdn.stape.io/i/672dfd1766a1c825623892.png) 7. Now, create the Firestore Lookup variable in sGTM. I selected Collection Path & Query → Specify Collection Path → Set your condition. In my case, every time user_id (in Firestore) exactly matches the gid variable (in sGTM), the lookup variable will extract the user_email value in the corresponding Firestore document. ![create the Firestore Lookup variable in sGTM](https://cdn.stape.io/i/672dfd2e2cc25996243257.png) 8. Test Firestore Lookup variable in sGTM preview. ![Test Firestore Lookup variable in sGTM preview](https://cdn.stape.io/i/672dfd431f933669650933.png) 9. Now, I can send enriched sGTM data with user email even if user email is not available in sGTM. Conclusion The possibilities are endless when it comes to data enrichment with the help of Firestore and server Google Tag Manager. It’s relatively easy to write sGTM data to Firestore. The primary step is to create a scheme of data stored in Firestore and extract it when you need it to enrich sGTM tags. If you need help setting up [GTM server-side tracking](https://stape.io/gtm-server-hosting), don't hesitate to contact us. We can help you get your data into Firestore and start deriving insights from it in no time. Thanks for reading! Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Read data from Google Sheets to server Google Tag Manager Source: https://stape.io/blog/read-data-from-google-sheet-to-server-google-tag-manager Read Google Sheets data directly into sGTM! This guide covers 'Read cell,' 'Read Range,' and 'Read Two Columns' variable actions for efficient data enrichment. Server Google Tag Manager can accept data from multiple sources like websites, CRMs, webhooks, etc. With the latest integration of Firestore and sGTM, we now have even more opportunities for data sources. The Google Sheets Reader variable is a custom server Google Tag Manager variable created by Stape that allows reading data from Google Sheets. You can use it to pull values from single cells, full ranges, or two-column key-value pairs and enrich your server-side tracking setup. We already have a blog post that explains how to [write data from sGTM to Google Sheets](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets). This article will show how to read data from Google Sheets and use it within a server Google Tag Manager container. How does the Google Sheets Reader variable work? There are three types of actions that this variable can do: Read Cell retrieves the value from a single specified cell in a Google Sheet and returns it for use in server Google Tag Manager. Read Range retrieves data from a specified range of cells in a Google Sheet and returns it as an array of values. Read Two Columns reads a two-column range and returns an object where the first column contains keys (names) and the second contains their corresponding values. Google Sheets Reader variable use cases The first use case that comes to mind is enriching sGTM data from Google Sheets. Let’s say there is a Google Sheets with User ID and user email. You can get a User ID in sGTM. With the help of Google Sheets Reader, you can enrich data with user email by finding the corresponding User ID in Google Sheet. It will help enhance user parameters, for example, for the Facebook Conversions API, increasing the match quality score of Facebook Conversions API events. What do you need to use the Google Sheets Reader variable? For Stape users If you're a Stape user, setting up the Google Sheets Reader variable is simple. Stape handles Google authentication internally, so you don’t need to upload any service account keys manually. Here’s what you need: Server Google Tag Manager container. You need an active Server GTM container hosted on Stape. If you don’t have one, you can create it from the Stape dashboard. Google Sheets Connection. To authorize access to Google Sheets, go to the Connections tab in your Stape account and click Sign in with Google Sheets. Use the Google account that has access to the spreadsheet you want to read from. After authorization, this connection will be available in your server container. Google Sheets Reader variable setup. Add the variable template from the [sGTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/spreadsheet-variable); or manually import it from[Stape’s GitHub repo](https://github.com/stape-io/spreadsheet-variable) (Go to Templates → Variable Templates → New → Import → Select the .tpl file). Test your setup. Use Server GTM’s Preview mode to verify that the variable returns the expected data. The output will depend on the action type you've configured. The variable will now be able to fetch and return spreadsheet values, which you can use in other variables, tags, or enrichments inside sGTM. For non-Stape users If you're not using Stape's built-in authentication, you'll need to set up manual access to your Google Sheets using your own credentials. Here's how: Enable Google Sheets API. Go to Google Cloud Console, open your project, and enable the Google Sheets API. This gives your service account permission to interact with spreadsheets. Create a Google Service Account. In your Google Cloud project, navigate to IAM & Admin → Service Accounts, then create a new service account. Once created, generate a Private key of JSON type - this file will be used later in Server GTM for authentication. Connect the Google Service Account to Stape using the power-up. In your Stape account, click on the Google Service Account power-up and upload the JSON key generated in the previous step. Share your spreadsheet with the service account. Open the Google Sheets you plan to use. Share it with the service account email (e.g., your-service-account@your-project.iam.gserviceaccount.com) and grant Viewer access. This is required for the variable to read data from the spreadsheet. Google Sheets Reader variable setup. Add the variable template from the [sGTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/spreadsheet-variable); or manually import it from [Stape’s GitHub repository](https://github.com/stape-io/spreadsheet-variable) (Go to Templates → Variable Templates → New → Import → Select the .tpl file). Create a new variable using this template and choose the desired action type (Read Cell, Read Range, or Read Two Columns). Provide the spreadsheet URL and range, then select Stape Google Sheets Connection as the authentication method. Enter the spreadsheet URL and data range. For Authentication, choose Own Google Credentials. Test your setup. Use server GTM’s Preview mode to verify that the variable returns the expected data. The output will depend on the action type you've configured. How to set up the Google Sheets Reader variable? 1. Follow one of the guides in the section above (for Stape users or for non-Stape users). ![Google Sheets Reader variable](https://cdn.stape.io/i/6883590aa4402438547981.png) 2. In sGTM, create a new Google Sheets Reader variable. In this guide, we will show how the Read Two Columns option works. After selecting this option, add the columns range. This method works only with two columns and returns an object that consists of these two columns. The first column will be used as a name, and the second column will be used as a corresponding value. This is how our spreadsheet looks. ![Google Sheets Reader to sGTM](https://cdn.stape.io/i/626403dd205fe826084034.png) 3. Add spreadsheet URL and range. We’ve added this range A1:B4 to the Google Sheets Reader. ![Add range](https://cdn.stape.io/i/688359ca03fcf894421348.png) 4. Test the Google Sheets Reader variable. In our case, it looks like this: ![Test the Google Sheets Reader variable](https://cdn.stape.io/i/68835a8a3f8cb008522969.png) 5. In sGTM, we know the product name and want to add product ID based on data from a spreadsheet. To do this, we will use the [Object Property Extractor variable](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/object-property-extractor-variable). In the Object, select your Google Sheets Reader variable that captures data from Google Sheets. In Property, we will choose the variable that records the product name. ![Object Property Extractor variable](https://cdn.stape.io/i/626403dd83a55162871938.png) 6. Test Object Property Extractor. We’ve added a product named Beanie to cart, and the Object Property Extractor variable returned 1. It corresponds to the product ID for this product according to Google Sheets. ![Read data from Google Sheets to sGTM](https://cdn.stape.io/i/68835aedefdab105836100.png) Learn [how to track CLTV conversions for lead generation with Google Sheets Reader variable](https://stape.io/blog/cltv-conversions-tracking-for-lead-generation) in our blog post. Conclusion Integrating Google Sheets with Server Google Tag Manager opens up powerful opportunities to enrich your data using external sources like product IDs, user attributes, or custom mappings. In this guide, we walked through how to use the Spreadsheet Reader variable to pull data from a Google Sheet and enhance your sGTM setup. If you need help setting up server-side tracking, feel free to reach out - we’re happy to assist and make sure your implementation runs smoothly. Thanks for reading! Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Write data from server Google Tag Manager to Google Sheets Source: https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets Write data to Google Sheets from server GTM. Track leads, sales, and more directly in spreadsheets. This guide explains the setup and benefits for marketers. Google Sheets is a cheap and easy-to-use platform to collect and manage data. Though there are a lot of fancy CRM systems, around 40% of markets and salespeople prefer recording website leads, sales, and campaign results in Google Sheets. Connecting a website with Google Sheets allows you to automatically track any user interaction, or conversion inside the spreadsheet, making it easy for your sales and marketing team to operate and analyze data. Previously the easiest and fastest way to send data from websites to Google Spreadsheets was using tools like Zapier. The biggest concern about using Zapier is price. The free plan includes up to 100 tasks (records) per month. Stape team created Google Sheets tag for server Google Tag Manager. This blog post will show you how to write data from server Google Tag Manager to a Google Sheets using the Google Sheet tag for sGTM. Let's get started! How can you use the Google Sheets tag You can pull any data available in sGTM to Google Sheets. It can be event data, user data, website data, webhooks, etc. The first use case that comes to my mind is recording lead or sales data to the spreadsheet. You can add order information, traffic source, and UTM tags to the CRM. Google Sheets tag can also be helpful when debugging the sGTM setup. If you have some issues or doubts if the tag works correctly, you can send data to Google Spreadsheet to ensure all parameters were sent correctly. For example, let’s say you’ve implemented FB CAPI and think that sGTM does not send fbc parameters to FB, which affects conversion attribution to your FB campaigns. In this case, you can use the Google Sheets tag to add order IDs and fbc parameters to Google Sheets and see which orders were made after seeing a FB ad. Visit our blog post on [how to track CLTV conversions for lead generation with Google Sheets Reader variable](https://stape.io/blog/cltv-conversions-tracking-for-lead-generation). What do you need to set up Google Sheets tag Google Sheets Connection If you are a Stape user, the process of the Google Sheets tag is simplified. Google authentication is entirely handled on the Stape side; you just need to use Google Sheets Connection to the Stape admin. You can find Google Sheets Connection in the Connections tab. Then click sign in for Google Sheets and pass the authorization with your Google account. ![Google Sheets Connection](https://cdn.stape.io/i/69246e00d2171980978347.png) How to set up Google Sheets tag 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. It can be done [by setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or https://stape.io/blog/sending-data-from-google-tag-manager-web-container-to-the-server-container[Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Download and unzip a file with the [Google Sheets tag from GitHub](https://github.com/stape-io/spreadsheet-tag). Go to your server GTM → Templates → in the “Tag Templates” click “New” → import the file you downloaded. ![Import Google Sheets tag](https://cdn.stape.io/i/672b768349dd7660673263.png) Or You can also add it via the [server GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/spreadsheet-tag). ![Add via template gallery](https://cdn.stape.io/i/672b769f50171339941357.png) 4. Create a new tag. In the “Tags” section, click “New” and add the following configurations: Type - add row or update cells; Rows range and Spreadsheet URL; Authentication Credentials - choose Stape Google Connection if you are a Stape user and [signed into a relevant Google account](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets#google-sheets-connection). Below is an example of tag configuration: ![google sheets tag configuration](https://cdn.stape.io/i/673b1d6836ea0410857967.png) 5. Add the trigger for a tag. 6. Test the tag. You should see it triggered correctly in the server GTM debugger: ![Tag is fired](https://cdn.stape.io/i/672b77677422f948046571.png) And the row should be added to the Google Sheets: ![New row in Google Sheets](https://cdn.stape.io/i/672b779d7fbb7624084022.png) How to set Google Sheets tag up for non-Stape users In case you don’t use Stape for server-side tracking or would like to handle your own authentication, you will need: 1. Enable Google Sheets API by using the [link to Google Cloud Console](https://console.cloud.google.com/apis/library), searching for “Google Sheets API” and clicking “Enable”. ![Enable Google Sheets API](https://cdn.stape.io/i/672b77d629874178656435.png) 2. Google Service Account with corresponding permissions. Find out [how to connect your Google Service Account to Stape](https://stape.io/blog/how-to-connect-google-service-account-to-stape) in our blog post. 3. Choose Own Google credentials in the tag settings: ![Own Google credentials](https://cdn.stape.io/i/672b7826cdef4582880868.png) Conclusion By connecting Google Sheets to your website, you can manage marketing campaigns and track conversions quickly. It will provide complete insight into which channels generate qualified prospects and act on new conversions faster. If you need help setting up server-side tracking, please don't hesitate to contact us. We're happy to help! In the meantime, be sure to check out our other blog posts for more tips and tricks on using server Google Tag Manager. Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # How to connect Google Service Account to Stape Source: https://stape.io/blog/how-to-connect-google-service-account-to-stape Connect Google Service Account to Stape for sGTM integration with BigQuery and Firestore. Create a JSON key in GCP and upload it to Stape's Power-ups. With the help of a Google Service Account connected to Stape, you integrate server Google Tag Manager with BigQuery and Firestore. This blog post will show how to create a Google Service Account and connect it to your Stape container. Related: [Server-side tracking GTM](https://stape.io/gtm-server-hosting). What is Google Service Account, and what possibilities does it bring to sGTM? Google Service Accounts can be used by applications to make authorized API calls. With the help of a Google Service Account connected to the sGTM container, it is possible to integrate BigQuery and Firestore with server GTM. To create a Google Service account, you will need to have a Google Cloud Platform account and generate an Access Key. The service account JSON key file must be added to an sGTM container power-up in Stape to authenticate with these services. Firestore is a database that can write/read or sync data. It can be used to enrich data sent using server-side tags. For example, with the help of user ID, you can extract additional user data from Firestore and send more user parameters to Facebook CAPI, which will increase the FB event match quality score. To simplify integration, Google released the Firestore Lookup variable. With the help of this variable, you can extract specific values from the Firestore document. The only disadvantage is that Firestore is not a free service - check the [price here](https://firebase.google.com/pricing). Using server Google Tag Manager, it’s possible to write data directly to BigQuery from sGTM Tag or Client. Previously BigQuery integration was only available for 360 users. With the release of sGTM and GA4, all users can send data to BigQuery for free or cheaper than before. BigQuery is also not free - check its [pricing here](https://cloud.google.com/bigquery/pricing). How to connect Google Service Account to Stape? Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Snapchat CAPI explained & full setup guide Source: https://stape.io/blog/snapchat-capi Boost Snapchat ad performance with CAPI via sGTM for customization or CAPI Gateway for simplified setup. Enhance conversion tracking and data accuracy. In this post, we will discuss the Snapchat Conversions API and how to set it up in two ways: [Using the Google Tag Manager server container](https://stape.io/blog/snapchat-conversion-api-using-server-google-tag-manager#how-to-set-up-snapchat-conversions-api-using-server-google-tag-manager) [Using the CAPI Gateway](https://stape.io/blog/snapchat-conversion-api-using-server-google-tag-manager#snapchat-capi-gateway-the-fastest-way-to-set-up-snapchat-capi) Snapchat Conversions API: an overview Snap Conversions API allows passing web, app, and offline events from your server to Snap servers. The official documentation says that Snap CAPI helps lower cost per action by improving conversion tracking and targeting. Snapchat CAPI supports the same events and event parameters as web pixels. There are two main ways of implementing Snap CAPI: direct integration, which means sending server-side information from your servers directly into Snap’s servers, or partner integrations, which include the server Google Tag Manager. Let’s first talk about Snap CAPI properties. Snapchat event deduplication Like Facebook and TikTok, Snapchat supports event deduplication, which means you can use browser and server tracking simultaneously. To remove redundant events, you should consider using event deduplication. The primary deduplication keys are Client_dedup_id (which allows for a 48-hour deduplication window) and Transaction_id (which provides a 30-day deduplication window). The Snap tag for web Google Tag Manager does not support event_id, so you should use a Custom HTML tag in web GTM to set up event deduplication. Snapchat CAPI events CAPI supports all standard event names available for Snap web pixel and custom event names. Event parameters Snapchat has [detailed documentation that describes what event parameters CAPI supports](https://marketingapi.snapchat.com/docs/conversion.html#conversion-parameters). All user parameters (plain text email, mobile identifier, IP address, and phone number) should be [normalized](https://marketingapi.snapchat.com/docs/conversion.html#data-hygiene). After normalization, they should be hashed with lowercase hex SHA256 format. The Stape Snap CAPI tag does all these transformations automatically. Server event testing Though Snapchat has excellent functionality for testing pixel events using the pixel diagnostics page, unfortunately, for now, Spanchat does not have functionality for testing server events in real-time, similar to FB’s test ID. After each setup, we will show you how to test your configuration. The only way to check that Snap received and processed server data correctly is by checking via Conversions API data in the Snap events manager. What tracking method should you choose? Comparison table | Snap CAPI through sGTM | Snap CAPI Gateway Setup complexity | More complex configurations, you need web and server GTM containers | Easier to set up; you only need to have a web GTM container Ability to set up server-side tracking for other platforms | More flexible, enabling setup for [various platforms](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking) | Setup is possible only for Snapchat Price | Depends on the number of requests, check the [calculator](https://stape.io/price-server-google-tag-manager#calculator) to see the price for your website | 10$/month for each Pixel or 100$/month for 100 Pixels Snap Conversions API tag suits best for: Businesses with in-house technical expertise or dedicated support teams. Advanced users who want full control over their tracking setup. Snap Conversions API Gateway suits best for: Small to medium businesses or advertisers looking for a quick and efficient way to enable server-side tracking. Users who want a ready-to-go solution without deep technical involvement. Alternatively, you can set up your tracking with a server GTM container. Check out the [difference between the sGTM container and a gateway setup](https://stape.io/blog/sgtm-vs-gateways) in our blog article. Benefits of Snapchat Conversions API through sGTM Here's why [Snapchat's CAPI is excellent for improving your ads](https://stape.io/blog/snapchat-ads-explained) and getting better data: Privacy At its core, server-to-server tracking is a technology building with a privacy policy in mind. Unlike web pixel tracking, with s2s tracking, you can strictly control which data you send to each network. They will receive only data configured in server requests. Better ads optimization CAPI helps collect more user data, making [Snap advertising algorithms](https://stape.io/blog/snapchat-ads-explained) more sufficient. In the official documentation, Snapchat says implementing CAPI will help improve cost per action. More quality audience CAPI will improve remarketing and lookalike campaigns since it will send Snapchat more data about your users. The number of events should also increase. When users do not allow apps or sites to track users, CAPI can still send events. Improved conversion tracking Since server events can't be blocked in most cases, it will allow users to track all events generated by users. Pricing To set up the Snapchat CAPI via server Google Tag Manager with Stape, you first need a Stape account. You can [create it for free](https://stape.io/sign-up) and start with a Free plan. The total price of the Snapchat CAPI via sGTM with Stape depends on the number of GA4 requests; check the [calculator](https://stape.io/price#calculator) to see the price for your website. How to set up Snapchat Conversions API using server Google Tag Manager https://www.youtube.com/watch?v=24x_A5fO5ug 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. You can do it by [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. To add the tag from the GTM Template Gallery, go to [sGTM template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/snapchat-tag) → Open Templates sections in the server Google Tag Manager container → Click Search Gallery in the Tag Templates section → search for the Snapchat Conversions API from Stape→ click Add to workspace. ![Snapchat Conversions API from Stape](https://cdn.stape.io/i/674d8c655b329511152864.png) 4. To import the tag in case you download the [tag from GitHub](https://github.com/stape-io/snapchat-tag), click three dots in the top right corner → Click Import → Select the Snapchat tag template you’ve recently downloaded from GitHub → Click Save. ![Click "Save"](https://cdn.stape.io/i/674d8cdbe09ec078247080.png) 5. Create a Snap tag in the sGTM container → Select the event name. Standard - select one of the standard names. Inherit from the client - in this case, the tag will try to parse sGTM event names and match them to Snap standard events. Custom - use a custom name. 6. Add [Snap Pixel ID](https://businesshelp.snapchat.com/s/article/pixel-website-install?language=en_US) → Add Conversions API Token. To create Conversions API Tokens, go to Business Settings and click Generate Token in the Conversions API Tokens section. ![Conversions API Tokens section](https://cdn.stape.io/i/674d8d06c7594242921560.jpg) 7. Add user and events data. ![Add user and events data](https://cdn.stape.io/i/674d8d124a726978631318.jpg) 8. If you want to use hybrid method (web+server) tracking for Snap, ensure you’ve added event ID to web and server Snap tags. The web Snap tag does not support event_id, so use custom HTML to set up Snap web tags. ![Add event ID to web and server Snap tags](https://cdn.stape.io/i/674d8d1d88a3c377092081.jpg) Testing the setup Open web and server GTM [debugs](https://www.google.com/url?q=https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration&sa=D&source=docs&ust=1733138067735067&usg=AOvVaw3HvSe1TXbsViItiy3PXMMg) and test that Snap tags are triggered correctly. ![Test that Snap tags are triggered correctly](https://cdn.stape.io/i/674d8d306f233545039144.jpg) Unfortunately, Snap does not have a real-time tool to troubleshoot server events. The only option to verify that Snap received server events is to wait until you see them in Snap Events Manager. Snapchat CAPI Gateway: the fastest way to set up Snapchat CAPI ![Snapchat CAPI Gateway](https://cdn.stape.io/i/674d8d3d6626f723938700.png) [Snapchat Conversions API Gateway](https://stape.io/snapchat-capi-gateway) is the latest solution for implementing the Snap Conversions API, offering the most straightforward setup process. With Snap CAPI Gateway, you don't need to configure event deduplication or spend endless hours on tagging. It allows you to send user parameters and events directly from a server. Plus, it supports multiple Pixels within a single instance, even if different Business Managers manage their accounts. Overview of Snapchat Conversions API Gateway The environment is a crucial feature of the Snapchat CAPI Gateway. Each Snapchat Conversions API Gateway instance operates on a cloud server, which manages all communication between the Snapchat Pixel and the Conversions API. Once the Snap Pixel is linked to the Conversions API Gateway environment, it uses web events to track data from the server. Before implementing the Snapchat Conversions API Gateway, it is crucial to ensure that web events are accurate and contain all the necessary user and product information. While server-side tracking offers significant benefits, setting up the Snap Conversions API can be time-consuming and often requires technical expertise, which can be challenging for some advertisers. But! Snapchat Conversions API Gateway addresses this by providing the fastest solution for implementing Snapchat server-side tracking without requiring specialized skills. Pricing You can try Snapchat CAPI Gateway for free for 7 days without providing any billing details. There are two plans: Pay as you go. $10 per month per Pixel. Ultimate. $100 per month for 100 Pixels. Snapchat CAPI Gateway benefits Low price Stape’s Snapchat CAPI Gateway is the most straightforward and cheapest way to set up and host Snap CAPI. Start with a free plan and then proceed with only $10 per month per Pixel! Easy setup You don't need to hire developers or tracking specialists to set up the Snapchat CAPI Gateway. The setup process is much simpler than a standard Conversions API implementation. No maintenance required Updates are automatic, so no manual adjustments to settings or servers are needed. When adding a new event, just set up web tracking, and the Conversions API Gateway will automatically start tracking from the server. How to set up Snapchat Conversions API Gateway How to set up Snapchat Conversions API Gateway https://www.youtube.com/watch?v=O2lP6b5pLQc&ab_channel=Stape Before you begin, ensure that Snapchat web tracking is configured on your site, whether implemented through a GTM container, embedded directly in the website code, or integrated via a plugin. This setup allows you to use existing web events. 1. Create a Snap CAPI Gateway on Stape 1.1. [Create an account](https://stape.io/sign-up) or [log in](https://stape.io/login) to Stape. In the Snapchat section, click Create Gateway. ![Click "Create Gateway"](https://cdn.stape.io/i/674d8d7c0b597554431516.jpg) 1.2. Write in the gaps: Gateway name. You can create a random name. Admin email. This email will manage your Snap Conversions API Gateway and can differ from your Stape account email. It should be unique for each Gateway. Server location. Select a location closer to your website visitors. Click Create Snapchat CAPI Gateway. ![Click "Create Snapchat CAPI Gateway"](https://cdn.stape.io/i/674d8d961a7bb035241116.jpg) 1.3. Choose a subscription plan. Stape offers: 7-day free trial. Pay-as-you-go plan - 10/month per Pixel. Ultimate plan - 100/month for 100 Pixels. ![Pricing plans](https://cdn.stape.io/i/674d8da355455415042067.jpg) 1.4. Wait till the status of your gateway is Running. ![Status 'Running" in Snap Gateway](https://cdn.stape.io/i/674d8daf9bc94461111308.jpg) 2. Connect your Pixel 2.1. Click Finish Snapchat Gateway setup. You will be redirected to the login interface of Snapchat Gateway. ![Click "Finish Snapchat Gateway setup"](https://cdn.stape.io/i/674d8dc4b8d9a156874126.jpg) ![Log in with Snapchat](https://cdn.stape.io/i/674d8dcd88ad5153432152.jpg) 2.2. Click Add data source on the left in the Conversions API Gateway hub. ![Click "Add data source"](https://cdn.stape.io/i/674d8dd8bfd85296695746.jpg) 2.3. Choose the account and the Pixels you want to connect and confirm your choices. ![Choose the account and the Pixels you want to connect](https://cdn.stape.io/i/674d8df33cfc8669554371.jpg) 2.4. You will see the added Pixel in your dashboard. ![Added Pixel in the dashboard](https://cdn.stape.io/i/674d8dff5e7a1075736247.jpg) 3. [Recommended] Add a custom domain 3.1. Click Data Routing on the left menu. ![Click "Data Routing"](https://cdn.stape.io/i/674d8e125e3a0746313549.png) 3.2. Click Add Subdomain. Enter your custom domain. ![Click "Add Subdomain"](https://cdn.stape.io/i/674d8e358038e422254081.png) ![Subdomain setup for Conversions API Gateway](https://cdn.stape.io/i/674d8e4098c9e565417891.png) 3.3. Log in to your DNS provider and set records (if you use Cloudflare, the settings should look like on the screenshot). ![Set DNS records](https://cdn.stape.io/i/674d8e5495491087344524.png) 3.4. And that’s it! You’ve successfully set up your subdomain. ![Subdomain set up successfully](https://cdn.stape.io/i/674d8e630547b644975867.png) 4. [Recommended] Load Snap js from your subdomain This will help you increase the protection of your events from ad blockers. After validating your Data routing domain, you will see a link that you can use to download Snap js on your site: ![Pixel code](https://cdn.stape.io/i/674d8e7488ea9544409181.png) You can add this to your site's code or change it in the default Snap js snippet: ![Add to your site's code or change it in the default Snap js snippet](https://cdn.stape.io/i/674d8e835f24e212202621.png) 5. [Optional] Add new Pixels You can use a single Snapchat CAPI Gateway to set up multiple Snapchat Pixels. Additionally, Pixels from various Snapchat Business Accounts can be connected to the same CAPI Gateway, provided you have admin access to all the Pixels. The process is straightforward: configure your Snapchat CAPI Gateway, then add new Pixels through the hub interface. Simply click Add data source. ![Click "Add data source"](https://cdn.stape.io/i/674d8e968c27a127559385.png) 6. Test your setup As mentioned before, Snap CAPI Gateway uses web events to track data from the server. 6.1. Within 30 minutes of connecting your Pixel to the Snap CAPIG hub, you should notice that the event count is no longer zero, and you should also see the names of the events that have been received. ![Test Snapchat pixel](https://cdn.stape.io/i/674d8eaa26517168323176.png) 6.2. You can also verify that events are sent correctly to the Snap CAPIG hub by checking the website console: Open your browser developer network tab on your site. Check that events were sent to your Conversions API Gateway URL (see the screenshot below). ![Check that events were sent to your Conversions API Gateway URL](https://cdn.stape.io/i/674d8ebc91b02336557185.png) Conclusion We hope this guide has helped you understand Snapchat tracking and the options available to improve your ad performance. Whether you're looking to dive into the more advanced Snapchat Conversions API (CAPI) through Google Tag Manager for complete control and customization or prefer the more straightforward and faster route with the Snap CAPI Gateway, both methods have their strengths. The Snapchat CAPI offers more profound insights into user behavior, [better ad optimization](https://stape.io/blog/benefit-from-snapchat-ads-for-businesses), and more accurate conversion tracking. If you want more flexibility and are comfortable with technical setup, using Google Tag Manager can give you a highly customized tracking experience. On the other hand, if you're looking for something quick and easy with minimal setup, the Snap CAPI Gateway offers a streamlined solution without needing to be a tech expert. No matter your chosen path, we’re here to make it easier for you. If you have any questions or need help with setup, don’t hesitate to reach out—we’re always happy to assist. And if you're ready to test out the Snap CAPI Gateway, you can start with a 7-day free trial to see how easy it is to implement and track your events. Remember, tracking your ads effectively is critical to getting better results and improving your campaigns. So, take your time to explore both options and reach out if you need any guidance along the way. We're here to help! Considering server-side tracking? We're so happy to hear that! Click Try for free and explore Stape benefits at your own haste. --- # SendGrid tag for server Google Tag Manager Source: https://stape.io/blog/sendgrid-tag-for-server-google-tag-manager Use the SendGrid tag for sGTM to send emails and manage contacts. Learn the setup process, from SendGrid configuration to tag implementation. SendGrid is an excellent choice for those looking to send large volumes of emails. It started initially as an email SMTP and API service, but recently they began to implement features for email marketing. SendGrid is also one of the cheapest services for sending emails. They have a free that includes up to 40,000 emails and 100 emails/day. Stape created a Sendgrid tag for the server Google Tag Manager container that simplifies Sendgrid integration. In this blog post, I want to show how to use the Sendgrid tag for sGTM. What do you need to send SendGrid emails using sGTM 1. Sendgrid account Create a SendGrid account if you do not have one yet. A free account also works. 2. Set up Your Domain or Email with SendGrid You should configure the SendGrid email you want to send emails from. To do that, click "Settings" from the main menu -> select "Sender Authentication" from the dropdown. There are two types of Sender Authentication: Domain Authentication and Single Sender Verification. SendGrid recommends using Domain Authentication. For this type, you should verify your domain. Single Sender Verification requires email ownership verification. Sender identity type depends on email deliverability, so I recommend using Domain Authentication. 3. Sendgrid API Key Create an API Key. We will need it later when setting up the SendGrid sGTM tag. From the dashboard, click “Settings” -> Click “Create API Key.” 4. Set up server Google Tag Manager container Create and set up an sGTM container if you do not yet have one. Follow the steps from this blog post [on setting up sGTM](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container#lets-start-setting-up-server-google-tag-manager). How to set up sGTM SendGrid tag 1. Send data to the server GTM container. You can do it by [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 2. Download [SendGrid tag from GitHub](https://github.com/stape-io/sendgrid-tag) or add it from the [sGTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/sendgrid-tag) -> Open templates sections in the Google Tag Manager container -> Click New. 3. Click three dots in the top right corner -> Click Import -> Select SendGrid tag template you’ve recently downloaded from GitHub -> Click save. ![sendgrid tag sGTM](https://cdn.stape.io/i/623b410eb7bf7446020203.png) 4. Create a new tag -> Select SendGrid tag -> There are two actions that this tag can do: Send an email and Add or Update a Contact. -> Add necessary fields and set up the trigger. ![add or update contact sendgrid tag sGTM](https://cdn.stape.io/i/623b410fb58f9917680385.png) ![send email sendgrid tag sGTM](https://cdn.stape.io/i/623b410f68c36082941555.png) 5. Open sGTM preview mode and test that SendGrid tag triggered and email received. You can also check the SendGrid activity feed to ensure that the email was sent. ![testl sendgrid tag sGTM](https://cdn.stape.io/i/623b410ee0bfd221239626.png) ![test sendgrid tag server Google Tag Manager](https://cdn.stape.io/i/623b410f2b5c1064068952.png) 6. Once done, publish the sGTM container. Conclusion Hope stape’s SendGrid tag will help you set up SendGrid integration using sGTM, and this guide made the steps of this integration clearer. If you need help setting up server-side tagging, feel free to contact us at [care@stape.io](mailto: care@stape.io), we will be happy to assist. --- # How to send Twilio SMS using server Google Tag Manager Source: https://stape.io/blog/how-to-send-twilio-sms-using-server-google-tag-manager Learn how to use the Twilio tag for the server Google Tag Manager to send SMS. There's no better way than SMS when you need to reach someone quickly and consistently. It has been proven that 98% of all SMS are opened within minutes. Twilio is one of the leading SMS providers. That is why stape created a Twillio tag for the server Google Tag Manager that helps to send SMS using sGTM. In this blog post, I will show how to use it. How to set up Twilio tag for sever Google Tag Manager 1. First, create a new Twilio account if you do not have one yet. We will need Twilio Account SID and Auth Token. You should also set up a Twilio phone number with SMS functionality. ![twilio sms tag](https://cdn.stape.io/i/6234c180bd37f162047747.png) 2. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 3. Send data to the server GTM container. The two most popular sending data to sGTM are [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) and [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 4. Download [Twilio SMS tag from GitHub](https://github.com/stape-io/twilio-tag) or add it from [sGTM template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/twilio-tag) -> Open templates sections in the server Google Tag Manager container -> Click New. 5. Click three dots in the top right corner -> Click Import -> Select Twilio tag template you’ve recently downloaded from GitHub -> Click save. ![twilio sms tag google tag manager](https://cdn.stape.io/i/6234c18106f59285706907.png) 6. Create Twilio SMS tag in the server GTM -> Add Account SID and Auth Token (you can find these values in [Twilio Console](https://www.twilio.com/console)) -> Add Your Twilio phone number with SMS functionality to the field From -> Add a phone number to which you want to send an SMS to the field “To”. You can use either static numbers or variables. -> Add SMS text -> Set trigger. ![set up twilio sms tag google tag manager](https://cdn.stape.io/i/6234c18160ec6106238918.png) 7. Once done, open sGTM preview mode and test the Twilo SMS tag. Make sure that the Twilio SMS tag is Fired in the sGTM debugger. ![test twilio sms tag google tag manager](https://cdn.stape.io/i/6234c1814756b785904115.png) 8. You can also check Twilio logs to ensure that the Twilio SMS tag worked or simply send SMS to your phone number. ![twilio sms logs](https://cdn.stape.io/i/6234c1815ccfc546294420.png) Conclusion With Twilio SMS tag for server Google Tag Manager, you can send SMS notifications about user actions on your site any activity in the CRM. Basically, you can use any request that is sent to sGTM. This is way easier and cheaper than using tools like Zapier or asking your developers to create this type of integration. If you need help setting up server-side tracking on your site or implementing the Twilio SMS tag, don’t hesitate to contact us. Our team of experts will be more than happy to assist you in getting set up and started with server-side tagging. Thanks for reading! Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Consent mode in server Google Tag Manager Source: https://stape.io/blog/consent-mode-server-google-tag-manager In this guide, learn what consent mode is, why it’s crucial to implement it, and how to use consent mode in the server Google Tag Manager container. The changes in privacy requirements made it strictly necessary for websites to receive user consent for using cookies and tracking scripts related to advertising or analytics. To help website owners comply with these requirements, Google has introduced Consent Mode. Using Consent Mode in web GTM, you can adapt tags behavior based on user consent. Not sure if Consent Mode is set up on your site? Check it for free with Stape’s [Website Tracking Checker](https://stape.io/website-tracking-checker?cta=blog_article) and find out in seconds. The tool shows you how well your website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for your analytics systems and ad platforms. Digital marketers and agencies can run fast tracking audits, use the report as a checklist to double-check implementations, and win more clients with proof of server-side tracking value. In this guide, we want to talk about consent mode, why it’s crucial to implement it, and how to use consent mode in the server Google Tag Manager container. GDPR and Cookies Privacy regulations, mainly European Union's GDPR and California Consumer Privacy Act, restrict websites from collecting data about website visitors without their consent. Users can choose whether or not sites can gather information and use cookies using cookie banners. Cookies can be differentiated by the purpose: Strictly necessary cookies - there is no need to obtain user consent for this type of cookie since these are necessary for websites to work correctly. They usually have 1st party concept. Preferences cookies - These types of cookies allow websites to remember system preferences that users previously set. It can be product cart, language, location, etc. Consent is required. Statistics cookies - are usually aggregated anonymized cookies that help improve website performance. Usually, it tracks what pages users clicked, and pages visited, etc. Consent is required. Marketing cookies - used to collect personal information to deliver more relevant personalized ads. In most cases, these are 3rd party cookies. Consent is required. There is also a list of requirements on how cookie banners should look and what information contain. Below is the list of crucial GDPR requirements for cookie banners, but some countries have their own requirement as well: Provide clear information using non-technical language on what data each cookie collects and how it is used. Store and log consent received from users. Allow users to interact with the site even if they do not allow cookies or didn’t select anything on a cookie banner. Allow users to withdraw their consent. Do not use cookies or collect data unless the user is allowed to. Find out more about [compliant cookie banners](https://stape.io/blog/cookie-banner-all-in-one-guide) in our guide. Consent mode in web GTM Google introduced a Consent Mode in the web Google Tag Manager container. Consent mode is a new setting in the web GTM tags that allows managing statistics and marketing cookies. This setting helps respect user decisions and customize tags behavior based on the consent status. When implementing consent mode in Google Tag Manager, you might want to trigger consent settings only in countries or regions where consent is required. This will help track a higher percentage of users who visit your site. There are some tags with built-in consent checks. These are primarily Google’s Tags like Google Ads, Google Analytics, Floodlight, Conversion Linker. Setting up consent settings is more straightforward for these tags, while tags without consent require additional configuration. Web GTM only is not enough to set up consent mode. You will also need a Consent Management Platform. The primary purpose of CMP is to show a cookie banner on your site. Most Consent Management Platforms can integrate with Consent Mode in the Google Tag Manager. [Google has a list of CMPs that can combine with the consent mode](https://support.google.com/tagmanager/answer/10718549?hl=en#cmp-integrations). Some CMPs created tags for the web GTM, making integration way easier. Each CMP has its documentation on integrating GTM consent mode. We highly recommend configuring consent mode based on their instructions. How to configure consent mode in the server GTM https://youtu.be/UUbkYisa7-g Server GTM doesn't yet have a Consent Mode similar to web GTM. If you want to implement consent mode for the server Google Tag Manager, it’s necessary to implement consent mode in web GTM first. This guide will use a cookiebot CMP as an example since we use it for Stape. 1. The first step is to enable a consent overview in the web GTM container settings. ![Enable a consent overview](https://cdn.stape.io/i/6750157205d9f496871877.png) 2. Add your Consent Management Platform tag to the web GTM container. This tag should trigger Consent initialization - All pages. You may want to modify the Default Consent State for each type of cookie. ![Consent Management Platform tag in the web GTM container](https://cdn.stape.io/i/6230880689553488138622.png) 3. In most cases, there is no need to configure any additional changes for tags like Google Ads, Analytics, Floodlight, and Conversion Linker because they have built-in consent checks. But we highly recommend checking your CMP documentation on setting up consent mode for Google Products since it may vary. On the other side, you need to configure additional settings for the tags that do not have a built-in consent check. I will use the Facebook pixel as an example. 4. When a user allows cookies, our CMPs send a custom event cookie_consent_update. I will remove the existing "all pageviews" trigger and replace it with the custom event cookie_consent_update to trigger the Facebook pageview tag. ![Event name](https://cdn.stape.io/i/6230880649bde152834131.png) ![Consent settings](https://cdn.stape.io/i/6230880643b19410215970.png) 5. Update trigger for all your tags. To see the consent setting for all of them, you might want to open Consent Overview in the web GTM. ![Consent settings](https://cdn.stape.io/i/62308806caee2038744938.png) 6. Once you’ve set up consent mode for GA and FB tags in web GTM, you need to ensure that server GTM tags trigger only when consent is granted. There are two ways how to use consent mode in sGTM: Using custom events that CMP sends to the dataLayer. (recommend using this method) Using GA parameters that determine consent state. 7. First, let me show how to set up consent mode in sGTM using a custom event. Create a new UA or GA4 tag that sends an event consent granted to the sGTM. It should trigger on a custom event cookie_consent_update (in my case). ![tag configuration](https://cdn.stape.io/i/623088076eafc478650008.png) 8. In server GTM, modify the trigger for the Facebook pageview tag. In my case, it’s a custom event cookie_cosent_update claimed by the GA4 client. ![tag configuration](https://cdn.stape.io/i/6230880731edd355106124.png) 9. This section shows how to set up consent mode in sGTM using the GA4 consent state parameter GCS. The value of the GCS parameter depends on user consent: gcs=G100 means consent not granted gcs=G111 means consent granted Create a new event data variable in the sGTM container that captures the GSC parameter. ![tag configuration](https://cdn.stape.io/i/6863cc82da39e402093179.png) 10. Create a trigger for the page_view Facebook Conversion API tag in the sGTM container. I will trigger the FB CAPI pageview tag when the client name equals GA4, the event name is page_view, and GSC equals G111. ![tag configuration](https://cdn.stape.io/i/623088075704d177105208.png) From my experience, this method is less reliable than using the custom events in the web GTM. When a user lands on the page the first time, GA sees that consent is not granted, and FB pageview is not triggered. If a user stays on the same page and allows cookies, GA won't send updated GSC value. Thus, GA and FB tags in sGTM won’t fire, and you will miss some page view events. 11. The last step would be to test the sGTM consent mode in the preview mode and publish the container if everything is correct. Useful links: [How to manage consent using iubenda CMP and GTM](https://stape.io/blog/set-up-consent-management-gtm-iubenda) [How to set up consent management with server GTM and Axeptio](https://stape.io/blog/consent-management-gtm-axeptio) Challenges of implementing consent mode in server GTM The first thing we need to discuss is that checking the consent status for server tags is obligatory, the same as for web tags. 1. How to deliver consent state to server Google Tag Manager 1.1 When configuring the advanced implementation of Google Analytics 4, you can use the anonymized pings that GA4 sends. To enable advanced consent configuration in GA4, simply access the web GTM and update the Consent Settings to “No additional consent required.” No configuration is necessary for sGTM. ![Consent settings](https://cdn.stape.io/i/675015fe1add3054056194.png) 1.2 The second option is to use the [Stape Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag). It allows you to pass the consent state from the web to the server GTM. To retrieve the Data Tag’s requests in the server GTM, you should use [Data Client.](https://github.com/stape-io/data-client) Once the “Add consent state” is enabled in the Data Tag, it adds consent_state object to the request, including the following properties: ad_storage analytics_storage functionality_storage personalization_storage security_storage ![Add consent state](https://cdn.stape.io/i/67501619488f4477236363.png) 2. How to modify server GTM tags behavior based on consent status? 2.1 Stape modified its tags to automatically change tags’ behavior based on the consent state that was passed from web GTM either by GA4 or Data tag. These are the Stape sGTM tags that support consent mode in server GTM: [Facebook Conversion API](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) [TikTok Events API](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/tiktok-tag) [Snapchat Conversion API](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/snapchat-tag) [Pinterest Conversion API](https://github.com/stape-io/pinterest-tag) All you need to do is expand ​​Consent Settings and enable the checkbox Send data if marketing consent is given. Once done, tags will trigger only when GA4 GSC=G110 or GSC=G111 or when the Data Tag sends status ad_storage. ![Send data if marketing consent is given](https://cdn.stape.io/i/67501639354ab349131219.png) 2.2 Manually create triggers that will check GSC, Data Tag, or any other tag parameters that carry information about the consent state and modify each tag’s behavior manually. ![Trigger configuration](https://cdn.stape.io/i/675016513f28d964032682.png) Conclusion While consent mode in web GTM is a good step by Google, it’s only the start of what needs to be done to have a good privacy and consent framework on your website. There are several ways to use consent mode in the server Google Tag Manager, but unfortunately, sGTM does not have a built-in consent mode yet, making this process more time-consuming. However, our tags that support consent mode are a particularly effective solution. It’s the best and most convenient way for you to stay ahead in consent management. Ensure you meet the current and future demands of both data privacy regulations and consumer privacy expectations, maintaining trust and integrity. And if you need the help with the setup up - don’t hesitate to contact us! Our team of experts will do the configuration just right for you. Need help with setting up server-side tagging? All it takes is a few simple questions. Click Get A Quote , fill-up the form, and we will send you a quote. --- # Extend cookie lifetime using server-side Google Tag Manager Source: https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager Learn how to use server Google Tag Manager to extend cookie lifetime. This will help you with tracking restrictions that affect 3rd party cookies. Cookies are a cornerstone of marketing, and they cause many disputes and unrest in the industry. Growing user privacy concerns, [data regulation policies](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive) like CCPA, and the GDPR make it challenging to take full advantage of cookies. Intelligent Tracking Prevention and other anti-tracking mechanisms also restrict cookies. These factors challenge businesses that rely heavily on online marketing, especially third-party data collection for targeting ads. It makes advertisers look for ways to [target their audience without cookies](https://stape.io/blog/cookieless-targeting-how-does-it-work) and get the most out of them they can still use. One way to get the most out of cookies is to extend their lifetime. This post will show you how tracking restrictions affect cookies, how they influence marketing, and how to use Google Tag Manager and GTM server to extend cookie lifetime. Want instant insight into the cookie lifetime of your analytics and ad trackers? → [Scan your site for free](https://stape.io/website-tracking-checker?cta=blog_article) with Stape’s Website Tracking Checker. The tool shows you how well your website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for your analytics systems and ad platforms. Digital marketers and agencies can run fast tracking audits, use the report as a checklist to double-check implementations, and win more clients with proof of server-side tracking value. 3rd party cookies and privacy concerns Many browsers are blocking third-party cookies these days. The two most popular browsers that restrict third-party cookies are Safari and Firefox. Let’s discuss the difference between first-party and third-party cookies. To simplify, the main difference is that first-party cookies are set from your site to your domain, while third-party cookies are set from your site to other domains. Third-party cookies gained a bad reputation because of cross-site tracking. Advertisers use this type of cookie to track users across different domains and to profile users. With the help of third-party cookies, big platforms can follow you around the internet and see what sites you are visiting. In the end, they use this information to show you personalized ads. How cookies affect analytic and marketing campaign Intelligent Tracking Prevention algorithms used in Firefox and Safari limit the cookie lifetime to 7 days (when cookies are set with JavaScript) or 24 hours (when all of the following conditions are met: cookies are set with JavaScript, link decoration is used, and referring to a website is a ´known tracker´). Tapping server URLs is crucial in cookie management, affecting attribution and reporting within marketing and analytics platforms. Attribution and reporting All marketing and analytics platforms store in cookies Click ID and other parameters by which ad attribution and reporting work in analytics platforms. The shortened lifetime of these cookies critically affects the [results of attribution](https://stape.io/blog/marketing-attribution-models), your ad campaigns, and the data in analytics. Analyzing user journey Since cookies are deleted in 1 or 7 days, a user who visited your site seven days ago will be considered a new one. It will have a massive effect on the customer journey. You won’t be able to see the complete picture of what traffic sources affected a customer's purchase decision. Personalization Personalization frequently provides customers a seamless experience by showing relevant offers, content, products, etc. However, with the decreased cookie lifetime, personalization might have a negative impact. A user will be assigned to a new audience pool whenever the cookie expires. Affiliate marketing Each affiliate offer has a cookie lifetime. Suppose the user visited your site in Safari via a referral link today and covered it in 10 days. In that case, this conversion won’t be credited to the affiliate, and the affiliate will not receive the commission. Remarketing audience When cookies reset every seven days or one day, it negatively affects the size of the remarketing audience and ad frequency. Platforms will also have less data to create lookalike or similar audiences. How to extend cookie lifetime using the server Google Tag Manager There is a website where you can [check how cookies work in each browser.](https://www.cookiestatus.com/) Cookie lifetime has been changed a few times over the past few years, and the restrictions on third-party and event first-party cookies are worsening. The recent changes in Safari are now limiting the lifetime of cookies set by [third-party IPs](https://stape.io/blog/safari-itp). Using a custom domain only for sGTM is no longer enough to prolong the cookie lifetime. The main reason is that the IP of the tagging server URL will be different from the leading website IP. With Stape, you have four options for prolonging your cookie lifetime. The table below compares the four available options. After this table, you will find more information about each one. | Same origin | Own CDN | Cookie Keeper | Cookie extender tag How it works | First-party serving. | Proxy a server GTM container URL from the same IP as a website domain. | It uses master cookies to store and restore cookies. | Designed to extend certain cookies using sGTM. Technical requirements | Configure a CDN or load balancer to forward requests. May need to update DNS entries. | Configure a page Rule. | Use the Stape plugin for your CMS or manually configure the master cookie in the Stape interface to store and restore cookies for each user. | Configure a tag inside the server Google Tag Manager. Advantages | Google recommended a way of configuring a custom domain for sGTM. Prolong cookie lifetime in all browsers. | Prolongs cookie lifetime in all browsers; no additional costs. | Easy to configure for standard CMS like WP, Shopify, Magento, Big commerce, etc. | It is helpful in cases when other methods of extending cookie lifetime do not work. For example, the native tag does not extend cookies, needs to extend cookies set by JS, etc. Disadvantages | Complex setup may require additional costs for each request to the worker. | Some technical knowledge is required to configure a page rule. | For custom websites, a user needs to specify the master cookie manually. | Works in specific [use cases.](https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager#extend-cookie-lifetime-using-cookie-extender-tag-in-s-gtm) How to configure | [Link](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container#how-to-add-a-custom-domain-inside-the-server-google-tag-manager-container) | [Link](https://stape.io/solutions/own-cdn) | [Link](https://stape.io/solutions/cookie-keeper) | [Link](https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager#extend-cookie-lifetime-using-cookie-extender-tag-in-s-gtm) [Same origin custom domain](https://stape.io/news/a-new-way-to-set-up-a-custom-domain-in-server-gtm) [Own CDN](https://stape.io/blog/safari-itp-update-limits-cookies-to-7-days-for-responses-from-3rd-party-ips#about-own-cdn) [Stape’s Cookie Keeper power-up](https://stape.io/blog/safari-itp-update-limits-cookies-to-7-days-for-responses-from-3rd-party-ips#cookie-keeper) [Cookie extender tag](https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager#extend-cookie-lifetime-using-cookie-extender-tag-in-s-gtm) Own CDN Stape's Own CDN solution allows you to host tracking scripts and files on your own content delivery network, giving you greater control over speed, security, and data privacy. By using your own CDN, you can improve the performance of server-side tracking and reduce dependency on third-party providers. For more information, visit the [Own CDN](https://stape.io/blog/safari-itp-update-limits-cookies-to-7-days-for-responses-from-3rd-party-ips#about-own-cdn) setup. Same origin custom domain for transport URL With Stape, you can set up a custom domain in the Google Tag Manager server. This allows you to use the same origin as your website, making tracking more reliable and improving data privacy. This setup ensures that your transport URL matches your website’s domain, reducing issues with cross-origin requests and providing a seamless tracking experience. For more information, visit this [article on setting up a custom domain](https://stape.io/news/a-new-way-to-set-up-a-custom-domain-in-server-gtm). Cookie Keeper power-up The Cookie Keeper power-up from Stape helps ensure cookies are not lost due to browser restrictions by storing and restoring their values on the server side. It keeps your cookies active, making tracking more reliable even when browsers limit cookie lifespan. For more details, visit [Cookie Keeper](https://stape.io/blog/safari-itp-update-limits-cookies-to-7-days-for-responses-from-3rd-party-ips#cookie-keeper) setup. Cookie Extender tag The Cookie Extender tag for server Google Tag Manager allows you to extend the lifespan of cookies, ensuring they last longer even with tracking restrictions. It can also create backup cookies to restore values if the original cookie expires. This tool is especially helpful for managing cookies on platforms that don't automatically extend them. For more information on the Cookie Extender tag, check the next point. Extend cookie lifetime using Cookie Extender tag in sGTM Stape created an sGTM [Cookie Extender tag](https://github.com/stape-io/cookie-extender-tag) designed explicitly to extend cookies. There might be multiple situations when you need to use this tag to extend cookies; some of the most popular scenarios from our experience are: A native tag does not extend cookies. Extend the validity of a cookie set by JS (e.g., by a tag on a web container). Cross-site tracking using web-generated cookies. It is necessary to use web-generated cookies to identify users on other platforms. Multiple times, we needed to extend the cookie for platforms like affiliate networks and email services, which their native tags cannot do. Or maybe you need to extend web cookies since server cookies, the ones with Httponly, can’t be accessed by JavaScript. And you can’t use these cookies in web GTM. In all these situations, a Cookie Extender can help. So, how can we extend cookies using the Cookie Extender tag in such cases? Let's look at two popular platforms that do not support server-side tracking and can only be used on a web container (so their cookies are set via JS): Hotjar and Microsoft (Bing) ADS. Let’s see how to use the Cookie Extender tag to extend the lifetime of these platforms' cookies. 1. Identify the names of the cookies you want to extend In our example, we look at Hotjar and Microsoft ADS. Microsoft sets quite a few cookies, but the most important one is usually the click ID, which is used for attribution. In Microsoft's case, this is the cookie named '_uetmsclkid'. We need to extend this one. It's also important to know a cookie's life. In the case of click ID, it is usually set to the duration of the maximum available attribution window on the platform, which is usually 90 days. However, the lifetime of cookies like user ID should be 400 days max. Often, the platform's official complete documentation describes what cookies are set, their lifespan, and their uses, which makes it very easy to set this up. Such [documentation is available for Hotjar](https://help.hotjar.com/hc/en-us/articles/6952777582999-Cookies-Set-by-the-Hotjar-Tracking-Code). From this documentation, we can easily understand that we need to extend the '_hjSessionUser_{site_id}' cookie for 365 days, which is actually the user ID. Now that we know which cookies to extend, all that's left is to configure the Cookie Extender tag. 2. Add Cookie Extender tag In your server GTM container, find the [Cookie Extender tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/cookie-extender-tag) in the gallery and add it. ![cookie keeper tag](https://cdn.stape.io/i/66f2aa5eadecc260957633.png) 3. Configure Cookie Extender tag cookie extender https://youtu.be/9lG8WINeOCk?si=J1mZPuHPpdPwqgDB Create a new tag with the Cookie Extender type you added to your container in the last step. This setting creates backup cookies and restores them if the main cookies are not found. For example, for _uetmsclkid, it will create _uetmsclkid_backup. This backup cookie will be used to restore the original cookie if it is deleted. You can always leave this option enabled. Add a new row for each cookie you want to extend and specify the desired lifetime for the cookie. Lifetime is set in seconds. In our example, we extend _uetmsclkid to 7776000 seconds (90 days) and _hjSessionUser_55576969 to 31536000 (365 days). Add a trigger. Depending on what you use, it is better to use either the GA4 trigger with all hits or the Data Client trigger with all hits. ![tag configuration](https://cdn.stape.io/i/66f2aaae01888951453431.png) 4. Test the setup Since you can't run GTM container previews in Safari, the changes you make need to be published, and then the cookie extension needs to be checked afterward. Publish the changes in your containers and make sure that the cookies for which you have configured Cookie Extender in Safari have the lifetime you specify: ![test the setup](https://cdn.stape.io/i/66f2aaee4da61661030439.png) Conclusion By implementing ITP's cookie and data collection restrictions, Safari has positioned itself as a leader in the push for online privacy. However, different browsers, including Chrome, which has more than 50% of the browser market, have also started implementing anti-tracking mechanisms. Using Cookie Extender will help you enjoy the advantages of server-side tracking even for platforms that do not support server-side tracking or cannot technically be used on the server. Cookies considerably impact campaign performance, attribution, conversion tracking, etc. That is why you might want to implement server-side tracking to extend the cookie lifetime. Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # Server-side tracking use cases Source: https://stape.io/blog/server-side-tagging-use-cases Server-side tagging boosts tracking accuracy, extends cookie lifetimes, and enhances data privacy. Improve analytics, ad performance, and compliance with ease. Since Google released server container for Google Tag Manager (sGTM), it became possible to replace client-side tracking with server-side one. Replacing client-side tracking with server-side tracking is highly recommended based on recent changes in [third-party cookies](https://stape.io/blog/third-party-cookies) and [tracking restrictions](https://stape.io/blog/safari-itp). Alternatively, you can use web and server tracking in parallel. This post describes the potential and most common [server-side tagging](https://stape.io/blog/server-side-tagging) use cases. What is server-side tagging, and how does it work? The main attribute of server-side tracking is a cloud server that acts as an intermediary between your data source and third-party tracking platforms. Let's discuss server-side tagging using the Google Tag Manager server. The first step is to set up a cloud server that hosts a container. Then, create a data stream for sGTM and distribute the data to your tracking tools. ![How server-side tracking works - Stape](https://cdn.stape.io/i/646b3b34b2d84939243851.png) The significant advantage of server-side tagging is the ability to set first-party cookies. Browsers with [Intelligent Tracking Prevention](https://stape.io/blog/safari-itp) mechanisms (like Safari and Firefox) have already limited the use of third-party cookies. In Google Chrome, the most widely used browser with over half of web traffic, [third-party cookies will be phased out of Google Chrome in 2024](https://stape.io/blog/third-party-cookies). With the help of server-side tagging, you can set first-party cookies and extend their lifetime. The second significant advantage of server-side tagging is loading scripts from your domain. For example, you can load gtm.js or gtag.js from your domain. You can even [replace gtm.js with random symbols, making tracking even more accurate](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers). It helps make tracking resistant to tracking prevention mechanisms, adBlockers, etc. We also wrote about [how client-side tracking differs from the server-side](https://stape.io/blog/server-side-tagging-versus-client-side-tagging) and covered [server-side tagging benefits](https://stape.io/blog/benefits-server-side-tagging) in our blog. What are the most common use cases of server-side tracking? Set up Facebook Conversion API Facebook Conversion API allows you to send any event (standard and custom) from your server to the Facebook server. Facebook recommends using both web and server-side tagging. To prevent overreporting, you should set up [event deduplication](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager) if sending events from both the web and the server. You should send user data to help Facebook match users on your site with users in their database. Facebook asks you to send as much user data as you have. Each event gets an event match quality score from 0 to 10. This score depends on the number of user parameters and the parameter's quality. Before sending any users' data to Facebook, ensure it complies with the privacy policy and that you received user consent to share data with third-party networks. The most significant push FB CAPI received was when Apple implemented web app tracking transparency. Facebook conversion API helps track users who have opted out of tracking on iOS devices. If you are interested in the detailed guide on how to set up FB CAPI using the server Google Tag Manager, please follow this blog post on setting up [Facebook conversion API using server Google Tag Manager](https://stape.io/blog/how-to-set-up-facebook-conversion-api). Server-side Google Analytics 4 Google explains the need to implement the Google Analytics server slightly differently than Facebook. The technology behind server GA 4 also differs from that of FB CAPI. Google says that server-side GA helps increase cookie lifetime. Since GA does not have event deduplication, you must use web or server tracking. If you want to use both, just use different GA properties. [Increasing cookie lifetime](https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager) might seem minor, but it may lead to inaccurate attribution to the traffic source responsible for the conversion. We also have a [step-by-step guide on setting up the server Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking). Server-side Google Ads Server-side Tag Manager allows you to move your Google Ads conversion tracking tags from the webpage to server, which will help improve page load time and increase the accuracy of conversion tracking. Moving Adwords tags onto a server will reduce the amount of code that needs run in the webpages and aid with performance issues for slower internet connections as well. Google Ads conversion tracking is a must if you want to have enough data to analyze your ad campaign results and give Google machine learning algorithms more information about your business goals. If you want to learn more about configuring [server-side Google Ads tracking](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords), please check our blog post. TikTok events API The TikTok events API technology is similar to Facebook's conversion API. It lists recommended events, event parameters, and user data that should be sent to TikTok servers. You can also use a test ID to test TikTok server events in real-time. TikTok also supports event deduplication. A hybrid approach—web and server tracking—is possible. If you do so, remember to set event_id from both browser and server to let TikTok know about redundant events. We have instructions on how to [set up the TikTok events API using Google Tag Manager](https://stape.io/blog/tiktok-server-side-tracking). Track offline data Server-side tagging enables tracking of offline conversions, such as phone orders, in-store purchases, and data from the CRM. It also lets you see leads progress through the sales pipeline. This way, you get better insight into the performance of paid campaigns on social media or search platforms. It is particularly important for businesses with significant offline sales or longer conversion funnels. With Stape sGTM Preview header config, configuring and testing offline data in sGTM is simple. We’ve got blog post on [debugging offline data in sGTM](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) and [using webhooks to send data from your CRM to the Facebook conversion API](https://stape.io/blog/send-data-from-crm-to-facebook-conversion-api-using-webhooks) if you need more info on the topic. Server-side email software integration Unlike web tracking, server integration lets you integrate email software entirely with your site, including creating new contacts. Server-side integration speeds up your site's work because no third-party Javascript runs in the user’s browser. Stape created server GTM tags for [Google Tag Manager ActiveCampaign](https://stape.io/blog/how-to-integrate-activecampaign-with-the-website-using-google-tag-manager-server-container), [Klaviyo server-side tracking](https://stape.io/blog/set-up-klaviyo-website-event-tracking-using-server-google-tag-manager), [Mailchimp](https://stape.io/blog/connect-your-website-to-mailchimp-using-google-tag-manager-server-container) and will be ready for more in the future. Stape also created server GTM tags for a wide range of other platforms supporting Google Tag Manager server-side tagging. Enhance data security and privacy Data security. Server-side tagging gives you fuller data control since data is processed and stored on your servers before it’s sent to third-party services. By doing so, you can achieve better compliance with data protection regulations. Privacy compliance. When you go with server-side tagging, you can ensure that only the necessary and compliant data is shared with third-party services. This helps you reduce the risk of data breaches and keep user trust. Performance optimization Improved page load times. By handling tracking and analytics on the server side, you can reduce the amount of JavaScript running in the user's browser. This results in faster page load times and improved user experience. Reduced client-side processing. Offloading data collection and processing to the server can reduce the load on the client side. This change boosts the performance of web applications, particularly on devices with limited resources. Custom data enrichment Advanced data enrichment. Server-side tracking permits the integration of additional data sources, such as internal databases or third-party APIs. This way, you can enrich event data before sending it to analytics platforms. Complex data transformation. Perform complex data transformations and calculations on the server before sending the data to third-party services, ensuring cleaner and more accurate data. Refined attribution models. When you extend cookie lifetimes and combine web and server-side data, you can achieve more accurate attribution models. This way, you can get better insights from your marketing campaigns. Bypass ad blockers. Server-side tagging is less likely to be blocked by ad blockers since the data is sent directly from your server. You get more reliable data collection. Improve integration with other systems Integration with internal systems. Server-side tracking enables straightforward integration with internal systems like ERP, CRM, and other business intelligence tools. It makes comprehensive data analysis possible. Custom workflows and automation. Based on server-side event data, you can create custom workflows and automation to trigger marketing campaigns or operational alerts. Offline Data Integration. With server-side tracking, you can integrate offline conversion data, such as in-store purchases or phone sales, with online data to create a complete view of the customer journey. This way, you finally get a complete picture without any missing puzzles. How to get started with server-side tagging? Setting up a server Google Tag Manager container is easy with Stape. 1. Open your WEB Google Tag Manager container [https://tagmanager.google.com/](https://tagmanager.google.com/). Click Admin. Under the container column, click + ![set up server gm](https://cdn.stape.io/i/668fda9d53807780905735.gif) 2. Type the container name, choose Server, and click Create. ![set up server gm](https://cdn.stape.io/i/668fdac160d42112402501.gif) 3. Choose Manually provision tagging server, copy your container config and paste it in any text editor. We will need it for the next steps. ![set up server gtm](https://cdn.stape.io/i/668fdaee3bb7a594196429.png) 4. Go to [stape.io](https://stape.io/login) and create an account or log in. ![log in or sign up to access Stape](https://cdn.stape.io/i/668fdb3be0a12398082874.png) 5. Click Create container on the top right. ![Create Container](https://cdn.stape.io/i/668fdb93aa7ca800963700.png) 6. Enter your container details: Container name. The name does not necessarily have to be the same as the container name in your server GTM. Container configuration - paste Container Config that you copied from your Google Tag Manager Server Container. Server location - select your server location based on the location of most of your clients. Location can not be changed later. Click Create Container. And you are all done! That’s how easy it is to host your server container on Stape. There is a detailed tutorial on [How to set up Google Tag Manager Server Container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) in our blog as well. ![create container on stape](https://cdn.stape.io/i/668fdc535d341399013830.png) 7. Choose a plan for your container. You can start with a Free plan. Click Continue with a Free plan. ![stape pricing plans](https://cdn.stape.io/i/668fde661680d215985384.png) 8. You will see the status of your container, container config, and plan name. It takes around 5 minutes to deploy a server container. Please reload the page to update the status. If the Google Tag Manager server-side setup was done correctly, you should see the status “Running”. ![running container on stape](https://cdn.stape.io/i/668fdefc05e33471958300.png) That's it! Your container is up and running. We have a more [detailed guide where you can learn. how to set up a custom domain, set up GA4 analytics and test your container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) on our blog. Conclusion: Server-side tagging is a powerful tool that can help you track user behavior and measure the impact of your marketing campaigns better. We’ve outlined the most common use cases for server-side tagging, but there are many other possibilities and [platforms that support server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). If you need help setting up server-side tracking, contact us. Our team is happy to help you get started. Switching to server-side? Stape has lots of tags for server GTM! Click on Try for free to register and check them all. --- # How to set up tagging server URL for server GTM Source: https://stape.io/blog/how-to-set-up-tagging-server-url-for-server-gtm Set up a tagging server URL for server Google Tag Manager with Stape. Learn how to configure sGTM, use a custom domain, and improve tracking resilience. Setting up a tagging server is the first step if you want to implement server-side tagging. Tagging server works as a proxy and communicates between the data source (website, CRM, etc.) and the analytics platform. In this blog post, I want to talk about what tagging server is and how to set up a tagging server URL for the server Google Tag Manager container. What is server-side tagging, and why is server Google Tag Manager the best way to implement it? Third-party cookies and javascripts have been used for years to track user interactions on your website, but with the rise of tracking restrictions and concerns about user privacy, these are no longer enough. To get around these problems, most platforms started to recommend switching to a server-side type of tracking. With the help of ss tagging, you can set first-party cookies, make your website work faster by removing 3rd party javascripts, and keep user data secure. Tagging server works as an intermediary between your data source (website, CRM, etc.) and tracking platforms. The data source firstly sends information about users and events to the tagging server, and then tagging server distributes information to the tracking platforms. For now, the most popular and the easiest way to integrate server-side tagging is server Google Tag Manager container. You can connect web and server GTM containers and use web GTM as a data source for the sGTM. When the tagging server URL for sGTM is located in the same domain hierarchy as the website sending the requests, it sets first-party cookies and loads scripts from your domain. It helps to reduce the impact of tracking restriction and increase cookie lifetime. Server GTM tagging uses concepts familiar to web GTM: Tags are activated by triggers and extract data from variables. Before publishing a new container version, you can test the setup in Preview mode. The template gallery is available. But there are also brand new features: Requests are handled by a new type of GTM entity: the client. Instead of trigger events, processes are triggered by incoming HTTP requests. What is tagging server URL? To get started with server-side tagging using server Google Tag Manager, you need: Create a server container in Google Tag Manager. Set up a tagging server URL. The first step is easy to do - you just need to open the Google Tag Manager and create a new container. Tagging server URL works as a proxy in-cloud environment. After tagging server receives requests it distributes them further to other platforms (like Facebook, Google Analytics, etc.). With Stape, you can create a tagging server URL for your server Google Tag Manager container in one click. When you create a server GTM container on Stape, we automatically set up a cloud server on Google Cloud. Stape sGTM hosting has [these benefits](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server): One-click setup. 6 times cheaper then GCP. Custom gtm.js loader - helps to make tracking more resistant. Preview header - helps to debug requests sent from non-web GTM. Faster gtm.js/gtag.js/analytics.js loading time - increases website pagespeed. There is no need to run scripts if you want to upgrade to the production environment - a quicker setup. No additional configuration in the server GTM container. Autoscaling - if website traffic increases, servers will scale automatically. Access and billing - easily share access with your team members and clients. Logs - helps to debug the setup with the help of logs of incoming and outgoing requests, as well as responses from Stape sGTM tags. API - automate integration with Stape. Multiple server zones. How to set up a tagging server URL using Stape 1. Open [tagmanager.google.com](http://tagmanager.google.com) → Admin → click + in the Container section → Add container name → select Server in the Target platform. 2. Choose Manually provision tagging server, copy your container config and paste it in any text editor. We will need it for the next steps. ![manually provision tagging server](https://cdn.stape.io/i/621f3c5e97fd1769892860.png) 3. Open [your Stape account.](https://stape.io/sign-up) 4. Click Create Container and add your Container Name, Container Configuration that you copied from your Google Tag Manager Server Container, and select server location. Click Create Container. ![Create container in Stape](https://cdn.stape.io/i/689d9e2ca2070363722544.png) It can take up to 10 minutes to set up a tagging server for you. Once a container status is Running, it means that tagging server for sGTM was created successfully. 5. This step is highly recommended but not required. Once the container is running, you will see the Tagging Server URL; this URL is located within the stape.io domain by default. We highly recommend setting up a custom domain located within your site domain. It will allow you to set first-party cookies and make tracking more resistant and secure. We will cover custom subdomain setup: That's it! The tagging server URL for the sGTM is set up. Now you can proceed with setting up server-side tagging in sGTM. This [list of platforms that can be moved to the server-side](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking) can help you to get started. Conclusion Stape’s hosting for Google Tag Manager is the easiest and most affordable option around. We offer many features that make your tagging experience simple straightforward - and let you get back to what really matters: having proper tracking. Need help with setting up server-side tagging? All you have to do is to click Get help, fill-up the form, and we will send you a quote. --- # How to set up server-side tracking Source: https://stape.io/blog/how-to-start-with-server-side-tracking Learn how to implement server-side tracking using Google Tag Manager and Stape. Improve data accuracy, reduce ad blocker impact, and comply with privacy regulations. Server-side tracking emerged in 2020 with the server-side Google Tag Manager release. It came as a response to growing limitations in client-side data collection. Basically, to set up server-side tracking, you should follow these steps below. Begin by creating and configuring a server Google Tag Manager container, which can be done efficiently with the help of Stape. Add a custom domain to set up first-party cookies and bypass browser cookie limitations. Configure data transfer from your web container to the server container with the help of Stape to improve conversion tracking accuracy and reduce data loss caused by ad blockers or browser privacy settings. Test, debug, and enable monitoring to ensure your setup works correctly. Extend your setup by connecting other marketing or analytics platforms that work with server-side GTM. In this blog post we will explain in detail how to implement server-side tracking with Stape. We'll also present different use cases and the advantages of server-side tracking with Stape services and briefly overview some of the most popular platforms that support [server-side tagging](https://stape.io/blog/server-side-tagging). What is server-side tracking? With [server-side tracking](https://stape.io/), your website first sends data to the cloud server. Next, the cloud server distributes the data you want to share between third-party vendors and tracking platforms according to your container settings. In other words, you control what data you send to your analytics or ad platform and what you don't. This is why setting up server-side tracking is one of the most reliable and privacy-friendly solutions for tracking user behavior without relying on cookies. Compared to client-side tracking, it provides more accurate data collection and conversion tracking, extended cookie lifetime, reduced impact of ad blockers, better control over data, improved website page load time, hiding tracking IDs and secret API keys, and more. Stape Academy If you really wish to master server-side tracking setup, check out [Stape Academy](https://stape.io/academy). In our server-side tagging course, you will learn how to configure sGTM, extend cookie lifetime, integrate other platforms, etc. You can find our webinar recordings in the Stape Academy, too. Our courses are free for [all registered users](https://stape.io/login). And if you are not a part of the Stape community yet, [it's never too late to join](https://stape.io/sign-up). How to implement server-side tracking with Google Tag Manager container There are several tools you can use for setting up server-side tagging. Our choice is the server Google Tag Manager container. The main advantages of using sGTM, in our opinion, are: Easy to use. Transparent and convenient. No additional costs. You should pay only for servers, no fees for using sGTM interface. Version control system. Any changes can be easily undone and returned to an earlier state, as well as keep track of who made the changes, where, and when. Multi-user mode. The first step when starting with server-side tagging is [configuring the sGTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). How to create server Google Tag Manager container https://youtu.be/SITX4lkvCy0?si=Xvkx9RP2HgV6EWk9 With Stape, you can set up a tagging server for your sGTM container in one click. All you need to do is: Create a Google Tag Manager server container Create a container in Stape Set up custom domain How to add custom domain in GTM container https://youtu.be/0TNJYHbXT8s?si=UB7CGiwBblD_I1wM And all is done! From our point of view, configuring a custom domain with the [same origin domain](https://stape.io/helpdesk/documentation/how-to-use-same-origin-approach-for-server-gtm) is the best option because it helps to prolong cookie lifetime in all browsers. However, this method is technically advanced and requires CDN or a load balancer. If you can't configure the same origin domain, we have solutions for prolonging cookie lifetime in Safari: [Own CDN](https://stape.io/solutions/own-cdn) and [Cookie Keeper](https://stape.io/solutions/cookie-keeper). Why Stape is the easiest and cheapest way to start with server-side tracking With Stape, you can set up server GTM in less than 1 minute, and we are the cheapest solution on the market. Stape is affordable because we buy servers in bulk and for an extended period. Plus, we optimize our servers to work only with Google Tag Manager. Besides that, we have other advantages: 1. [Custom gtm.js and gtag.js loader](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server#1-custom-loader). It helps you make Google Tag Manager and/or Analytics 4 scripts more resistant to adblockers. 2. [Global CDN](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server#2-global-cdn). Allows for faster js files serving by using a server that resides closer to your site visitor. It results in an improved page speed that might positively affect organic ranking. 3. [Logs](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server#3-logs). A handy feature when setting up or troubleshooting server-side tagging. It helps to figure out what data was sent to the server and how it got processed. For example, you can check if all purchase events had 200 status (meaning they were correctly handled) or check all requests with a 500 response code (an error occurred). 4. [Preview header](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server#7-preview-header). It helps see all of your incoming requests in the sGTM debugger when the request was sent not from web GTM. You can read about all of the [advantages of server-side tracking with Stape](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server) in our blog, as well. [Our team of experts](https://stape.io/care) is always happy to help new users get started with tracking and answer any questions. For high-volume websites, we offer custom plans. Feel free to use the [pricing calculator](https://stape.io/price-server-google-tag-manager#calculator) to estimate the best plan for your site. Set up server Google Analytics 4 In this chapter, we will briefly cover the [server-side GA4](https://stape.io/stape-gateway) setup. How to set up server-side Google Analytics 4 https://www.youtube.com/watch?v=z5jfbSB_-Ss&ab_channel=Stape If you do not have [server-side GA4 configured](https://stape.io/blog/set-up-ga4-server-side-tracking) yet, follow the steps below: 1. Inside the Web container, create a new tag of the tag type Google Tag. Add your [Google Tag ID](https://support.google.com/analytics/answer/9539598) and a trigger to GA4 tag (it usually should trigger on all page views). ![Set up Google tag](https://cdn.stape.io/i/67405e33c26b0559366074.png) 2. Go to the Tags section and create a new tag with the tag type Google Analytics: GA4 Event. Add your GA4 ID and the [event name](https://support.google.com/analytics/answer/9267735). ![Set up GA4](https://cdn.stape.io/i/66697e5848a54251953494.png) ![Set up GA4](https://cdn.stape.io/i/66697e7a43983053111766.png) 3. Go to your Google Tag Manager Server container. Click Clients and New. ![Set up GA4](https://cdn.stape.io/i/66697ec6294b9128357224.gif) 4. Choose Google Analytics: GA4 (web) and click Save. ![Set up GA4](https://cdn.stape.io/i/66697efb987c1268898885.png) 5. Go to Tags and click New. ![Set up GA4](https://cdn.stape.io/i/66697f465f1ce877570973.gif) 6. Choose Google Analytics: GA4. ![Set up GA4](https://cdn.stape.io/i/66697f7137f66405663415.png) 7. Add Measurement ID and Event Name. You can add [Measurement ID](https://support.google.com/analytics/answer/12270356?hl=en) as a variable or if the event came from a GA4 web tag or leave this field blank to inherit the measurement ID of the event. We recommend using standard [event names](https://support.google.com/analytics/answer/9267735) whenever possible, but you can use custom ones, too. If this field is blank, the value of the event_name parameter will be sent. ![Set up GA4](https://cdn.stape.io/i/66697fc70046c826573607.png) 8. Click Triggering. ![Set up GA4](https://cdn.stape.io/i/66697fe76c53f934027598.png) 9. Create triggers for the tag. Client name should equal GA4. Example: Click + ![Set up GA4](https://cdn.stape.io/i/6669802621c89370770152.png) Choose Custom type → click Some events → choose Client Name in built-in variables → set Equals GA4 (the name of your GA4 client) → click Save. ![Set up GA4](https://cdn.stape.io/i/6669806352e73958145668.png) 10. Open web and server GTM debuggers and test the setup. Open the Server container preview mode and check that you see GA4 requests. Publish updates inside server and web Google Tag Manager containers. ![Set up GA4](https://cdn.stape.io/i/6669b535d64d9680353044.png) Set up server-side tracking for Google Ads In this chapter, we will briefly cover how to set up server-side tracking for Google Ads. Set up server-side Google Ads https://youtu.be/s-R6mvpiLk4?si=aArTttJreFkqnDqJ First thing to know is that [server-side Google Ads tracking](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) can work only using server GA4 requests. It means that you must set up server-side Google Analytics 4 before proceeding to server-side Google Ads. Basically, your main setup steps are: 1. Ensure that server-side [Google Analytics 4 is set up correctly](https://stape.io/blog/set-up-ga4-server-side-tracking). 2. In the server container, set up the Conversion Linker tag. This tag should trigger on all pageviews. 3. Set up [Google Ads remarketing tag](https://support.google.com/tagmanager/answer/6106960?hl=en) in server GTM. All you need to do is add a Conversion ID and choose a trigger that must use GA4 requests. You might also decide to send [dynamic remarketing](https://support.google.com/tagmanager/answer/6106009?visit_id=638844670340338703-903812078&rd=1) event data and provide custom parameters. 4. Create a new Google Ads Conversion Tracking tag in the Server container → add Conversion ID and Conversion Label similarly to the web Google Ads tag setup. Then you have an option to add Product and User Data (similarly to how Facebook Conversions API works). If you send user and product data from the web to the server, you can enable these checkboxes and select event data as the data source. Set up server-side tracking for Facebook Ads Set up Facebook Conversions https://www.youtube.com/watch?v=ytNnSVodsA4&ab_channel=Stape Unlike Google platforms, Facebook recommends using both web and server tracking. The main advantage of the web+server method is that it still utilizes 3rd party cookies (when possible). The main benefit of the server only approach is that it reduces the number of 3rd party java scripts on your site and allows you to strictly control what data was sent to FB. So it's up to you to decide whether to use web+server FB tracking or server only. [Setting up Facebook Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api) is more complicated since it requires event deduplication (when using the web+server method), sending user parameters, such as email, phone number, first/last name, etc. Debugging and monitoring server-side tracking setup Advanced server-side tracking setup Conclusion Setting up server-side tracking is a great way to improve your website’s performance and get more accurate data. This blog post gathered general information needed to get started with server-side tracking. Here we covered setting up Server Google Tag Manager, Server Google Analytics 4, server-side Google Ads, [server-side Facebook Ads](https://stape.io/blog/facebook-ad-optimization), and other platform integrations with advanced options. Server-side tagging has many actual and potential use cases. We have a blog post covering [server-side tracking use cases](https://stape.io/blog/server-side-tagging-use-cases) in detail. So, don’t hesitate to contact us to get assistance with your server-side tracking implementation. We are experts in server-side tracking and can help you to dive into the world of tags. --- # Awin server-to-server tracking using server Google Tag Manager Source: https://stape.io/blog/awin-server-to-server-tracking-using-server-google-tag-manager Use GTM server-side tracking for Awin. Ensure accurate conversion data and fair affiliate commissions with our GTM setup and testing guide. Awin is a global leader in affiliate marketing and one of the few platforms that has made server-side tracking mandatory for all advertisers. Through server-to-server integration, they ensure the affiliates' marketing efforts are correctly attributed and paid. To simplify Awin server-to-server integration, we created the tag for the server Google Tag Manager. This blog post will discuss why server-to-server communication is necessary and how to set up Awin [server-to-server tracking](https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager) using server GTM. Why should advertisers use Awin server-to-server integration? Awin is committed to delivering advertisers and affiliates the best conversion tracking experience through its comprehensive system. As an industry leader, Awin strives for accurate data so all parties can easily see campaign success. Awin also wants to ensure that it uses the best and most reliable conversion tracking techniques since this is the key to success in affiliate marketing. They aim to ensure that advertisers see the correct conversion reporting from affiliates and that affiliates receive the proper commission for all their marketing efforts. Tracking conversion becomes challenging due to ITPs, ad blockers, and the limited use of third-party cookies. To help deal with all these browser tracking restrictions, they implemented server-to-server integration and made it mandatory for all advertisers within their platform. Advertisers should send conversion data directly to Awin’s server. HTTP requests must contain conversion data and the original click id “awc” within the “cks’’ parameter. Product-level details can be added for more robust tracking reports. Here’s a more detailed article about [how server-side tracking works](https://stape.io/blog/what-is-server-side-tracking) and the [benefits of Stape as a server-side tracking solution.](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server) Requirements for setting up the Awin tag Please ensure that you already have Google Tag Manager web and server containers, as well as a configured server container and custom domain in Stape. Please follow these guides if you don’t have any of those: [How to create a server container in Google Tag Manager](https://stape.io/helpdesk/documentation/create-server-container-in-google-tag-manager) [How to create a server container in Stape](https://stape.io/helpdesk/documentation/create-server-container-in-stape) [How to add a custom domain in Stape](https://stape.io/helpdesk/documentation/add-custom-domain-in-stape) Additionally, the Awin-recommended server-side tracking setup comprises several web and server container tags: In your web GTM container, you need to set up [Awin Advertiser Mastertag](https://tagmanager.google.com/gallery/#/owners/EdinCuturic/templates/awin-advertiser-mastertag-google-tag-manager) (to get access to the necessary functions for Awin tracking), [Awin - AW Last Click Identifier](https://tagmanager.google.com/gallery/#/owners/awin/templates/GTM_CustomTag_AwinLastClickIdentifier) (to set up Awin’s cookie and track the source of the conversion), and [Awin Conversion Tag](https://tagmanager.google.com/gallery/#/owners/EdinCuturic/templates/awin-conversion-tag-google-tag-manager) (to pass the conversion data). Awin manages these tags, so for more information, please refer to [Awin’s official guide on client-side tracking](https://help.awin.com/developers/docs/gtm-client-side#step-1-the-advertiser-mastertag). In the web GTM container, you need Google Analytics 4 or Data Tag/Data Client sending data to the sGTM container. In the server GTM container, you need a respective client. Here is a [step-by-step guide](https://stape.io/helpdesk/documentation/send-data-from-web-to-server-container-in-google-tag-manager) on sending data to sGTM. Make sure that the tag is passing the following parameters: send_page_view = true server_container_url = {{Your container URL}} In the server GTM container, you need to set up the [Awin tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/awin-tag), as described in the next section. Also in the server GTM container, once you set up the Awin tag by Stape, you will need to configure [Server Awin AW Last Click Identifier](https://github.com/awin/server-side-awin-last-click-identifier) for event deduplication. Awin manages this tag, so for more information, please refer to [Awin’s official guide to last-click deduplication](https://help.awin.com/developers/docs/gtm-s2s#:~:text=Last%20Click%20De%2Dduplication). How to set up the Awin tag 1. Add the Awin tag template in the server GTM container by importing it from the Template gallery: Search for the [Awin tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/awin-tag) in the Google Tag Manager Tag Template gallery. Click Add to workspace. ![Add the Awin tag template](https://cdn.stape.io/i/6a27f5ab66098339828506.png) 2. Create the Awin tag: Go to the Tags menu → click New. ![Create the Awin tag](https://cdn.stape.io/i/6a27f5ab9038c274729302.png) Click Tag Configuration → select Awin. ![Select Awin in Tag Configuration](https://cdn.stape.io/i/6a27f5ab53cf6226132022.png) 4. Configure the Awin tag: Merchant ID - a unique numeric code of a merchant. To find your merchant ID, [log in to your Awin account](https://ui.awin.com/idp/us/awin/login) → click the Account button → click the Overview tab. Your Merchant ID (MID) will be shown underneath your account name. Order Reference - the unique booking or order reference that identifies the transaction. Total Order Value - the total booking or order value excluding any taxes, delivery, and discounts. For a lead-based campaign or program, the value should be the number of leads. The value will be ignored if multiple commission groups are specified in the Commission Group Code field. Currency Code - a 3-letter currency code per ISO standard (e.g., GBP). Commission Group Code - the code for the commission group you want to base the commission calculation on. The value can be either a single group name (e.g., CD), or a full set of groups and the commission value for each group (e.g., CD:11.10|DVD:14.99). If you don’t have this code, enter the DEFAULT value. Discount Code - the code or name of the discount code that was applied during checkout. ![Configure the Awin tag](https://cdn.stape.io/i/6a27f5ab81a05530706285.png) Last Paid Click Referring Channel - the value utilized to determine how AWIN should process the incoming transaction requests (most often the utm_source value). After you configure the [Server Awin AW Last Click Identifier](https://github.com/awin/server-side-awin-last-click-identifier) (see [this guide](https://help.awin.com/developers/docs/gtm-s2s#:~:text=Last%20Click%20De%2Dduplication)), please add the variable with the type cookie value and the name of the cookie ServerAwinChannelCookie as the chosen variable for this parameter. Deduplication Query Parameter Name - Specify the deduplication query parameter name to be used if Last paid click referring channel doesn't exist. Customer Acquisition - either NEW or RETURNING values to identify if it’s a new customer acquisition or a returning customer. Products Override - can be used if you wish to override the default UA/GA4 item parsing format (in this case, pass the array of items in GA4 format). ![Deduplication configs](https://cdn.stape.io/i/6a27f5ab1c8ce287487727.png) Automatically detect consent from Google Consent Mode or Stape's Data Tag - if you are using Google Consent Mode or Stape's Data Tag to transmit consent to the server, then enable this setting to use the consent information from them. This field has precedence over the Awin Consent Signal below. If you aren’t using Google Consent Mode or Stape's Data Tag to transmit consent to the server, see [Awin’s official guide on Consent Signals](https://help.awin.com/developers/docs/gtm-consent). Awin Consent Signal - here you can manually supply consent information. Accepted values are: 0, 1, true, false. Enable Unconditional Cashback & Rewards Tracking - option to exempt Cashback and Rewards Journeys from consent restrictions. ![Consent configs](https://cdn.stape.io/i/6a27f5ab467ea140055686.png) Awin Click ID - can be used to override the click ID from the cookie. In test mode - check to have the tag fire in test mode and the reported conversion be ignored. Override the cookie domain - can be used to override the default domain where cookies are set (must be your website's top-level domain, e.g., example.com). If unchecked, the domain is determined automatically. Override the cookie SameSite attribute - can be used to override the SameSite attribute used by cookies (by default, no SameSite attribute is set). Use HttpOnly cookies - can be used to forbid JavaScript from accessing the cookie. ![Additional configs](https://cdn.stape.io/i/6a27f5ab7a83e610523807.png) Advanced parameters: Custom Parameters - can be used to pass additional parameters with the tag. Event Names - define the event names that will trigger the PageView functionality and Conversion functionality of the tag. Tag Execution Consent Settings - choose if you wish for the tag to wait for marketing consent from the user before firing. Logs Settings - choose if you want to log requests to your account. This feature is handy when setting up server-side tagging since it allows seeing incoming and outgoing requests and network responses. Advanced Settings (Additional Tag Metadata) - specify additional tag metadata to be included in the event data when the tag is fired. ![Advanced parameters](https://cdn.stape.io/i/6a27f5ab83fd8244963608.png) 5. Add the Trigger for the tag (All Pages and your applicable Purchase Event), give it a descriptive name, and click Save. ![Add the Trigger for the tag](https://cdn.stape.io/i/6a27f5ab8810e750809040.png) After you’ve configured the Awin tag by Stape, don’t forget to also set up [Server Awin AW Last Click Identifier](https://github.com/awin/server-side-awin-last-click-identifier) for event deduplication. Awin manages this tag, so for more information, please refer to [Awin’s official guide to last-click deduplication](https://help.awin.com/developers/docs/gtm-s2s#:~:text=Last%20Click%20De%2Dduplication). Test and troubleshoot the Awin tag setup You can test the configurations in Google Tag Manager. Click on Preview, trigger the event, and check whether the tag has fired. ![Test and troubleshoot the Awin tag ](https://cdn.stape.io/i/6a27f5aae8120524753353.png) You also can enable the “In test mode” checkbox; in this case, a conversion tag will be fired in test mode, and a reported conversion will be ignored. Once done, publish changes in the server container. Awin server-to-server tracking: real user problems solved A user faced critical issues in AWIN reporting because the server-to-server cookie (awin_awc) wasn’t being set properly, causing missing affiliate click tracking (full thread [here](https://community.stape.io/t/awin-issues-with-the-server-to-server-cookie/2060/19)). The root causes were either the server tag not triggering on page_view events with the awc parameter or the server GTM not running in a first-party context. The solution was to ensure the sGTM used a subdomain of the main domain and to let the client container assign the AWIN channel before sending events to the server container, so the server could use that value for the AWIN hit. This fixed the cookie assignment and resolved the tracking discrepancies. Conclusion Awin required all advertisers to implement server-to-server tracking as a fallback. This ensures that conversions are attributed correctly and affiliates get appropriate compensation for conversions referred by them. This article covered Awin server-to-server integration using server GTM. Please [contact us](https://stape.io/care) if you need assistance setting up your Awin integration or any other affiliate network. Thanks for reading! We can set up server-side tracking for you! All it takes is a few simple questions. Click Get A Quote , fill-up the form, and we will send you a quote. --- # Client-side vs server-side tracking compared Source: https://stape.io/blog/server-side-tagging-versus-client-side-tagging Wondering if server-side or client-side tagging is the right choice for your website? Here, we break down the pros and cons of each method. Understanding the difference between client side vs server side tracking can be the difference between success and failure when it comes to measuring user actions on your site. By analyzing users' behaviors, you will have a better idea of what they are interested in and why they are leaving. It also allows communicating more personalized offers relevant to each customer specifically. One of the most popular ways of tracking is Google Tag Manager. It lets you quickly and easily update measurement scripts and related code fragments (collectively known as tags) on your website or mobile app. To understand how these tracking methods connect, it also helps to look at web tracking as a layered system rather than a standalone implementation. From user interactions in the browser to data processing, routing, and delivery to analytics and advertising platforms, each layer plays a distinct role. This structure is visualized in detail in the [web tracking hierarchy](https://stape.io/blog/web-tracking-hierarchy), which explains how different components and tracking layers work together. ![Web tracking layers](https://cdn.stape.io/i/6970f8c1521bc969961432.png) In 2020, Google introduced a server-side container for Google Tag Manager. It can work together with the web GTM container and use web GTM as a data source; or independently and use webhooks, CRM data, or any other requests as a data source. So, is it necessary to switch to the server-side method of tracking? In this article, we will talk about how [server-side tagging](https://stape.io/blog/server-side-tagging) differs from client-side, highlight the advantages and disadvantages of each system, and explain why Stape hosting is the best solution if you want to set up server GTM. Let's start the discussion over server-side tagging vs client-side tagging. Client Side vs Server Side Tracking: The Real Difference https://youtu.be/3_TDbf5VqyY?si=So6BO2puQHgJf8Ud Client- and server-side tagging compared Metric | Client-side tagging | Server-side tagging Page speed impact | Slows down the site.Scripts load directly in the browser. | Minimal impact.Most processing happens on the server. Data accuracy | Lower.Affected by ad blockers and ITP. | Higher.Requests are harder to block or detect. Data control | Low.Vendors can collect data beyond what you configure. | High.You control exactly what data is shared. Ad blocker resistance | Low. | High, especially with [Custom Loader](https://stape.io/solutions/custom-gtm-loader). Cookie lifetime | Limited to 7 days or 24 hours. | Extendable up to 2 years with a [custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). Setup complexity | Easy.Most platforms support it natively. | Moderate.Requires hosting and configuration. Cost | Free. | Starts at $20/month with Stape. Security | Lower.Limited visibility into third-party scripts. | Higher.Full control over outgoing data. Best for | Quick setup, low-traffic sites, limited budget. | Accurate tracking, privacy compliance, scaling businesses. What is client-side tagging and why is it no longer enough? Client-side tracking is a common type of tracking where the user's browser interacts directly with analytics services. When a site page loads, the container is loaded simultaneously, tracking codes are triggered, and all interaction data is sent to analytics services. Such services can be Google Analytics as well as Google Ads and others. Client-side tagging operates by embedding small pieces of code within a webpage. When a user visits the page, these tags are activated and begin collecting data on user interactions. This data is then sent to various tracking platforms, such as Google Analytics, for analysis. Client-side tagging is straightforward to implement and widely used, but it can be affected by factors like ad blockers and browser restrictions, which can limit the accuracy and completeness of the data collected. The debate over GTM server-side vs client-side tracking is ongoing as companies look for the most effective and privacy-conscious tracking methods. Data management plays a crucial role in this context, as different methods – whether client-side vs server-side tagging impact data sovereignty and efficiency. ![client-side tracking](https://cdn.stape.io/i/64ef07842ce18934563736.png) In the last few years, client-side tracking has been failing. Namely, the speed of the page decreased sharply, problems with security and with third-party cookies appeared. All because of heavy scripts (which overload the site), unwanted data leakage, low control, and increase of ad-blockers. This is when server-side tracking comes along to deal with these issues. It is becoming more popular, transparent, and accessible. Pros and cons of client-side tracking The most extensive obstacles for client-side tracking are: The depreciation of 3rd party cookies. Increasing use of AdBlockers. Tracking restrictions on mobile devices like iOS limitations. Security regulations. Impact on the website page speed. Client-side tracking disadvantages: 1. [Cookies](https://stape.io/blog/third-party-cookies). Browsers like Safari and Firefox use Intelligent Tracking Prevention (ITP) to limit the lifetime of first-party and third-party cookies. Chrome started to phase out of third-party cookies in 2024. Cookies are crucial for accurate data collection and tracking attribution. If you still rely on client-side tracking, the event and conversion data you collect might not be relevant since advertising and analytics platforms cannot recognize returning visitors to show the entire user journey. Attributing a conversion to paid campaigns is tricky without cookies so that you might get irrelevant cost per conversion or ROAS data. Sever-side tagging can solve these issues since by using ss tagging with a custom domain, you can set long-lived first-party cookies. 2. AdBlockers and iOS tracking restrictions. The use of AdBlcokers prevents up to 40% of data collection. On the other hand, iOS tracking restrictions prevent advertising platforms like Facebook, TikTok, Linkedin, Snapchat, etc, from collecting user data, which negatively affects their advertising algorithms. All these can be solved using server-side tagging, [Stape Custom Loader](https://stape.io/solutions/custom-gtm-loader), and configuring server-side tracking like [Facebook CAPI](https://stape.io/blog/how-to-set-up-facebook-conversion-api), [TikTok events API](https://stape.io/tiktok-events-api-gateway), [Linkedin CAPI](https://stape.io/blog/linkedin-conversion-api-tag-for-server-google-tag-manager), [Snapchat CAPI](https://stape.io/blog/snapchat-capi), etc. 3. Security issues. With client-side tracking, you can’t control what data each vendor collects. Third-party Javascript can scrape PII or any other data from your site, and you won’t even know about it. With server-side tagging, you strictly control which data is sent to third-party vendors. 4. Decrease in page speed performance. Site speed is crucial for user experience. Every tracking script slows down your site, decreasing revenue from ads and organic positions. Some research shows that people will leave if the page takes too long to load - especially on mobile devices where the internet connection is slower. [We compared site page speed](https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking) with client-side tracking vs. server-side, and the results showed that moving tagging to ss can improve Google's performance score by around 40 points. Client-side tracking benefits: 1. Simplicity. Client-side tracking is older than server-side tracking. Because of that, more people are familiar with client-side tagging, meaning it is easier to find a person to implement client-side tracking on your site. It is also easier to find documentation and guides describing how to implement browser tracking. 2. Cost. In the competition of client- vs server-side tracking, the first one wins due to outlay cost. Client-side tracking is free or cheaper than the server-side since you don't have to pay for the tagging server. What is server-side tagging? Server-side tracking is a different new type of tracking that involves a server instead of a client. You create, install and manage it yourself. The working principle is the same as in client-side tracking, but with one additional step - it is a cloud server container. It is on that server that the tag manager [gets the data from the browser and then redirects](https://stape.io/blog/how-does-server-side-tracking-work) it to the analytics systems. ![server-side tracking](https://cdn.stape.io/i/64ef0796510f0226012891.png) Instead of sending event data directly to analytics services, the data is sent first to sGTM and only then to the analytics services you use. User requests go to the server, then the Client transforms them into event data handled by tags, triggers, and other variables. These advantages give it a score in the competition server-side vs client-side tagging and make it a powerful tool for companies looking to gain a deeper understanding of user behavior and optimize their digital strategies. Why is server-side tagging a success? Server-side tracking can speed up your site, handle data loss due to ITPs, iOS restrictions and reduce the impact of AdBlockers. This is all for two reasons: using a custom subdomain for server-side tracking, which sets first-party cookies and server-side data streams that can't be blocked or detected. Server-side tracking can significantly improve the page speed by replacing third-party tracking scripts with server-side integration. Check this blog post to see the [list of all platforms that support server-side tracking.](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking) SS tagging is the best way to keep your customers and event data safe. Vendors have access only to data configured in the request. They do not have any technical possibilities to see other user or event information. While with client-side tagging, scripts can collect any information they want. With server-side tracking, you can significantly ease the load of the site by reducing the number of scripts by moving some to a cloud container. To put it another way, the information from the user's browser is sent to the GTM cloud container once. It saves a lot of resources and makes uploading easier. Usually scripts connected to the site collect too much information. It can lead to unwanted leaks of personal data. With Server-side tracking, all processes take place at the cloud level, only you have access to it. The discussions about GTM server-side vs client-side often highlight these advantages, emphasizing how server-side tracking provides better data accuracy and security compared to traditional client-side methods. Differences between server-side and client-side Google Tag Manager While both methods aim to collect the same user data, they differ in where that data gets processed and how much control you have over it. Сlient-side tagging runs scripts directly in the user's browser, so every tag executes on the visitor's device. Server-side tagging moves that execution to a cloud server you control, and the browser only needs to send one request to your tagging server. With client-side tagging, third-party vendors load their own scripts into your site, so they can technically collect more than you intend to share. Server-side tagging gives you more control over what data leaves your server and reaches each platform. Client-side scripts are easy targets for ad blockers and are increasingly limited by Intelligent Tracking Prevention (ITP) in Safari and Firefox. Server-side requests, especially when paired with a custom domain, are harder to detect and block. Client-side tagging is simpler to launch, since most platforms support it out of the box. Server-side tagging requires hosting a tagging server, configuring a custom domain, and connecting each platform's server-side integration. It's a more involved setup, but one that can pay off in data quality. How can you use Stape for server-side tracking? Stape hosting for server Google Tag Manager is the cheapest and easiest way to set up a cloud tagging server for sGTM. Using Stape, you can set up an sGTM tagging server with one click. We offer a free plan for small sites and two plans for the bigger ones: [Pro ($20/month) and Business ($100/month)](https://stape.io/price). Google recommends using at least 3 cloud servers per container in the production environment for redundancy, and it will cost $120/month on Google App Engine. We offer the same setup for $20. Besides price and simplicity Stape has other benefits: Custom gtm.js Loader Preview header Faster gtm.js/gtag.js/analytics.js loading time No need to run scripts if you want to upgrade to the production environment No additional configuration in the server GTM container Autoscaling Access and billing Account sharing Logs API Conclusion Client-side tracking is a great way to get your hands on data, but it’s not reliable and secure anymore. Plus, heavy javascript files can significantly decrease your site performance. Server-side tracking is a powerful tool that has a number of advantages and eliminates all of the problems from client-side tracking. The method you choose for tag implementation – whether server-side vs client-side tagging – directly impacts the quality and reliability of your data. Stape is skilled in creating custom scripts, tags, plugins that help website owners and marketers to [set up server-side tracking](https://stape.io/blog/how-to-start-with-server-side-tracking). So, do not hesitate to contact us! --- # Common Google Tag Manager errors and mistakes (+ solutions) Source: https://stape.io/blog/google-tag-manager-errors-mistakes-solutions Do you have trouble setting up and using Google Tag Manager? Find out how to fix server-side GTM errors and avoid common mistakes. Collecting precise data is crucial for analyzing and improving online business presence, reaching users, and converting them into customers. Google Tag Manager (GTM) [Server-Side tagging](https://stape.io/blog/how-to-start-with-server-side-tracking) allows website owners to start tracking website visitors more efficiently, accurately, and securely. We at Stape understand that getting your setup 100% correct can be challenging. This new method requires more technical knowledge than what was previously used with traditional web tracking, which may seem overwhelming at first glance. That is why we’ve gathered here the most common Google Tag Manager errors and problems and tips on how to solve them. Once you've done this, you can [take advantage of all the benefits of server-side tracking](https://stape.io/blog/benefits-server-side-tagging)! Note! The Stape team created the Stape GTM Helper, a [Chrome extension to optimize the GTM preview](https://stape.io/blog/stape-chrome-extension). With it, managing Google Tag Manager becomes faster and more intuitive. [Scan your website for free](https://stape.io/website-tracking-checker?cta=blog_article) with Stape’s Tracking Checker. Instantly see what tracking tags are installed, check if server-side GTM is in place, and get a clear picture of your current setup. The tool shows you how well your website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for your analytics systems and ad platforms. Digital marketers and agencies can run fast tracking audits, use the report as a checklist to double-check implementations, and win more clients with proof of server-side tracking value. Server-side Google Tag Manager common errors 1. Error 403 There are two reasons why you see a 403 error: You used Server container GTM ID when setting up a custom loader. You did not publish the init version of the web container. Solution: 1. If you use a custom loader and see a 403 error when opening the sGTM container URL, it might be because you've used the server Google Tag Manager ID when setting up a custom loader. You must add your WEB Google Tag Manager ID. To check the custom loader setting: log in to [stape.io account](https://stape.io/login) -> open sGTM container -> click Power Ups -> open custom loader and check if you added WEB GTM ID. ![custom loader to make gtm and ga4 scripts resistant to ad blockers](https://cdn.stape.io/i/668c000409024676498531.png) ![custom loader to make gtm and ga4 scripts resistant to ad blockers](https://cdn.stape.io/i/65f01447810b9908248618.png) Change the container ID to the WEB container ID, click save, and update the GTM script on your site. To find your Web container id, you need to open Google Tag Manager and select your web container. There you will be able to see the web container id. 2. You did not publish the init version of the web container. Open your web Google Tag Manager container and ensure that it's published and running. 2. ERR_BLOCKED_BY_CLIENT ![err_blocked_by_client - stape](https://cdn.stape.io/i/663cbc4d136fe212020334.png) Usually, it occurs when a request is blocked by something, e.g. Chrome Developer Tools or an ad-blocking plugin. Try to check if error still appears in incognito mode or in another browser. Also, try to disable all extensions in your browser and check if error is still present. 3. ERR_BLOCKED_BY_ORB ![err_blocked_by_orb - stape](https://cdn.stape.io/i/663cbd1637b01125654210.png) Error usually occurs when a request is blocked by the browser’s tracking prevention. Check if you are sending request to Google Ads or any other tracking service with correct consent settings. Also check if ​dma_cps parameter is present in the request url and set to ​dma_cps=sypham. 4. Error 404 Error: Fetching container from https://www.googletagmanager.com/ failed: Received HTTP status code 404. That means we can't download the configuration of your sGTM. That can be because of: - [sGTM container is deleted](https://stape.io/blog/delete-google-tag-manager-container) - sGTM container not published - You use the wrong configuration code Solution: If none of the above issues exist, we recommend creating and using a new sGTM container. You can utilize export and import functionality to migrate your existing configuration. 5. Error 500 You can receive 500 in cases when some tag changes the response code. For example, in case there was an error in some tag. Looks like you sent requests with a preview header and tried to debug something. Also, if you see a 500 error when opening the preview mode of the server GTM container, it means that you've exceeded the limit of the Google Cloud free tier. Solution: Go to the GCP console and upgrade to the production environment to solve this issue. The minimum price of a Google Cloud production environment is $120/month. You can get the same setup on stape for only [$20/month](https://stape.io/price). If you already set Google Cloud to production mode and get a 500 error, your sGTM tagging server is down. In this case, we suggest contacting Google support. 6. 503 Service Temporarily Unavailable This error means that your tagging server is down. You should check your deployment status in Google Cloud Platform. Solution: In most cases, you can’t solve this problem independently and need to contact hosting support. If you use stape.io, then send an email to [support@stape.io](mailto:support@stape.io). 7. Error: DNS_PROBE_FINISHED_NXDOMAIN This error usually happens when you are using a custom subdomain but didn’t set up DNS records for your subdomain or set it up incorrectly. On average, you have to wait 3-4 hours before DNS changes are applied; some DNS providers ask to wait up to 72 hours. Solution: To check if DNS is set up correctly, I use[this tool](https://toolbox.googleapps.com/apps/dig/). All you need to do is paste your subdomain and check A or any other record. You should see that it points to the correct IP. If IP is not accurate, check the DNS settings of your domain again. 8. Error: 400 ![HTTP ERROR 400. This page isn’t working](https://cdn.stape.io/i/620640a4bd4f9302343456.png) 400 response for tagging server URL is correct behavior. To check if tagging server URL works correctly, you should add /healthy at the end of the URL. If the response is ok, then tagging server URL worked correctly. ![ add /healthy at the end of the tagging URL](https://cdn.stape.io/i/668c01179e501632219695.png) 9. Error: Server Error Error: Server ErrorThe server encountered an error and could not complete your request.Please try again in 30 seconds. This error usually happens when the server is down because of numerous requests sent to your server. Solution: You need to upgrade your server's resources in the GCP admin. If you use the free Stape plan, you may have exceeded the requests limit, so you need to upgrade the plan. The paid plans at Stape start at only [$20/month](https://stape.io/price), while the minimum price for Google Cloud is $120/month. So you save a lot of money. With Stape, you won’t face such a problem again because we automatically add resources (CPU, RAM) to your sGTM account when you run out of them. You don't need to take any additional actions. Google Tag Manager mistakes and best practices 1. Getting lost in Google Tag Manager containers If you have a few containers (consequently, you run a few websites) in your GTM account, you may face a problem when the tags aren’t fired in Preview and Debug mode. The reason can be a wrong container. In this case, check the container ID you are testing changes in and ensure the ID is the same as in the Javascript snippet on your website (see screenshots below). To check ID on your website, go to any page -> click Ctrl+right button -> “Inspect” -> Ctrl+F -> paste container ID. ![Container ID in GTM](https://cdn.stape.io/i/668c03e73e5dd286254510.png) ![Container ID on the website](https://cdn.stape.io/i/668c04990b27c974482987.png) 2. Skipping the Event Setting variable when creating a tag GA4 is event-based analytics, where most things that happen on your site are events. So, while setting up tracking, you often encounter event creation. Predefined Event Setting variable can make the process easier and quicker. How does it work? Instead of adding the same event parameters and values multiple times, create one variable that includes all the parameters you often use and add it to the “Event Parameters” section of the tag. ![Event variable inn GTM](https://cdn.stape.io/i/668c06ce51a44180168300.png) To create such a variable, go to “Variables” and in the User-Defined Variables, click “New”. In the “Variable Configuration” choose “Google Tag: Event Settings”. Below you can add all the parameters and values you frequently use when setting up event tracking. 3. Overloading triggers with conditions People often add many “contains” conditions to a single parameter to create a trigger that includes multiple conditions. For example, you want a tag to trigger on a few pages: Page A, Page B, and Page C. Instead of adding three “Page URLs” with the condition “contains” for each page, you can use a regular expression (RegEx). RegEx helps filter data by multiple parameters (URLs in this example) in a single condition. 4. Publishing changes in bulk When you work on setting up tracking of a bunch of features, the best thing you can do is to publish each one by one after testing. Otherwise, publishing all the changes in one container version, you always risk reverting all of them if one doesn’t work. Then, the setup starts all over again because of one thing that doesn’t work. 5. Improper Preview and Debug console use Preview and Debug mode can bring many ideas on making tag fire if appropriately used. If your setup goes wrong, find the tag you want to fire in the “Tags Not Fired” section. It will show the variables that weren’t triggered. ![Trigger parameter that didn't fired](https://cdn.stape.io/i/668c083162a68145928950.png) Then go to the tab “Variables”. It will help you find variables and their values to set up the trigger and make the tag fire. ![Variable section in Debug and Preview mode of GTM](https://cdn.stape.io/i/668c08a7bfdad715050440.png) 6. Skipping GA4 DebugView After testing tracking in GTM Preview and Debug mode, it is better to double-check whether everything works in GA4 DebugView. You will ensure the event comes to the GA4 account. Especially if you have a few GA properties, you avoid sending data to the wrong property with this check. To check if the event appears in your GA4 property, go to Admin -> Data display -> DebugView and look for the event you just set up. ![debug view in ga4](https://cdn.stape.io/i/668c30f0efd9e085360590.png) 7. Not naming versions in your container If you follow the [fourth suggestion](https://stape.io/blog/google-tag-manager-errors-mistakes-solutions#4-publishing-changes-in-bulk) and publish each change individually, adding a name to every container version will make your work with GTM easier. Naming container versions will be especially helpful for long and difficult tracking setups. This way, you can easily find what has already been done without clicking through each unnamed version. Conclusion: I hope this article will help you identify some of the most common problems with sGTM tagging servers and solutions to fix them. Some issues can be resolved immediately, and others require the help of your hosting provider. [Our team of experts](https://stape.io/for-agencies) is always happy to help new users get started with tracking and answer any questions. If you face any issues with stape.io hosting, do not hesitate to send an email to [support@stape.io](mailto:support@stape.io), we will be happy to assist. Or, if you need help with setting up server-side tracking for your site, we can also help. --- # Taboola server-side tracking using server Google Tag Manager Source: https://stape.io/blog/taboola-server-side-tracking-using-server-google-tag-manager Set up Taboola server-side tracking with server GTM for better data control, faster page speed, and secure conversion tracking, replacing the Taboola pixel. Taboola's server-side integration has several advantages over pixel integrations, including more accurate results, faster website page speed, and better data control. This blog post will talk about how you can use the server Google Tag Manager to set up Taboola s2s integration. Benefits of Taboola server-side tracking To improve marketing campaigns, it is essential to analyze conversion data. Conversion tracking allows for optimizing your ads and understanding how customers respond in different scenarios of the app or website you're targeting with them - which can lead towards areas where more improvement could take place. The standard and most frequently used method of tracking conversions is web pixels. Still, during the last couple of years, the accuracy of web tracking decreased because of Ad Blockers, VPNs, and limited use of third-party cookies. The good news is that server-side tracking technology can help fix these problems. Check this blog post to learn more about the [benefits of s2s tracking and server Google Tag Manager.](https://stape.io/blog/benefits-server-side-tagging) S2S integration is more prevalent now that Google released their server container. You can set up Taboola server-side tracking using server GTM. Taboola s2s integration can completely replace Taboola web Pixel. Taboola doesn't support event deduplication, meaning you should use either web pixel or s2s tracking. Benefits of Taboola server-side tracking: 1. Improved page speed. The fewer tracking pixels on your website, the better site performance is. Removing only Taboola pixels won’t increase page speed drastically, but if you replace web tracking with s2s tracking for more platforms, it might have a huge impact. We list[all platforms that support s2s tracking in this post](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). You can also read our [case study comparing website page speed with browser tracking vs. server-side tracking](https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking). 2. Data control. You can’t control what information 3rd party scripts collect. If you install Taboola web pixels, they can scrape any user or event data from your site. They also have access to all conversion data to your site, including the number of purchases and values users generate. 3. Cookies. Third-party cookies do not live long, primarily because browsers with Intelligent tracking prevention (like Safari and Firefox), AdBlockers, and VPNs. With the help of server-side Google Tag Manager that uses a custom domain, you can set first-party cookies. What events can you track using Taboola server-to-server integration? Taboola server-side integration can completely replace all Taboola pixel functionality. Meaning you can track any event on your website or app that you want to use for ad optimization and reporting in Taboola. Server to server conversions are also visible for reporting of ads manager. How does Taboola server-side tracking work? When a user clicks on your ad, the {click_id} parameter is generated in the URL. Our tag will store {click_id} inside the taboola_cid cookie. Using the Taboola tag for sGTM, you can set the lifetime of the taboola_cid cookie. On a conversion event, we will send a request to Taboola Postback URL with the event data you added to the sGTM Taboola conversion tag. You can add event name, revenue, and currency. How to set up Taboola server-side tracking using server Google Tag Manager? 1. [Create and set up a server Google Tag Manager container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send data to the server GTM container. You can send data by [setting up server-side tracking for Google Analytic 4](https://stape.io/blog/set-up-ga4-server-side-tracking) and [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Add [Taboola tag using sGTM template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/taboola-tag) or Download[Taboola server-side tag from GitHub](https://github.com/stape-io/taboola-tag) → Open Templates sections in the server Google Tag Manager container → Click New. 4. Click three dots in the top right corner → Click Import → Select Taboola conversion tag template you’ve recently downloaded from GitHub -> Click save. ![taboola s2s integration](https://cdn.stape.io/i/6202915c982d5075362247.png) 5. Set up Taboola pageview tag. This tag will capture the Taboola Click ID parameter from the URL and store it in cookies. Set cookie lifetime and add a URL parameter that records click_id. More info about click_id can be found in the Taboola [documentation](https://help.taboola.com/hc/en-us/articles/115006850567-How-to-Track-Conversions-Using-Server-to-Server-Integration-S2S-). ![taboola s2s integration](https://cdn.stape.io/i/66d0546da489a468954609.png) 6. Test that pageview tag works correctly. Open the preview mode, add Taboola click_id parameter to the URL and check that click_id was recorded in cookies. ![test taboola server tag manager](https://cdn.stape.io/i/62029195b94f3819658340.png) 7. Set up Taboola conversion event tag. Select event type Conversion, add event name and revenue. You can also add currency code, but the value must be a 3-letter currency code per ISO standard (e.g., "GBP"). Add a trigger. Our tag will send data to Taboola postback URL. https://trc.taboola.com/actions-handler/log/3/s2s-action?click-id=CLICK_ID&name=EVENT_NAME&revenue=REVENUE_HERE¤cy=CURRENCY_HERE&partner-name=PARTNER_NAME ![taboola s2s integration](https://cdn.stape.io/i/66d055661e3b0633801734.png) How to test Taboola server-side conversions? 8. Once you see a conversion event triggered correctly in the server GTM, you can test s2s conversion in Taboola. To do that open Taboola Pixel -> Click Server to Server Tracking -> Copy Test Link -> Past test link in your browser and complete the event that should trigger the conversion. ![taboola s2s integration](https://cdn.stape.io/i/66d069618228d631416800.png) 9. You should see test events in the Conversion Table under Events Received. It might take up to 20 minutes to show the conversion event. Conclusion: Setting up Taboola server to server tracking using server Google Tag Manager is ridiculously simple, especially if you already use server GTM for other platforms. To make Taboola s2s tracking work, all you need to do is set up a pageview tag that captures {click_id} from the URL and records it in cookies. When a conversion event happens, you should trigger a conversion Taboola tag that will send specific data to Taboola, including the {click_id} that is stored in cookies. Taboola server-to-server tracking will give you a better understanding of campaign results, speed up your site, and make user data more secure. We can set up server-side tracking for you! All it takes is a few simple questions. Click Get A Quote , fill-up the form, and we will send you a quote. --- # What is server-side tracking? Source: https://stape.io/blog/what-is-server-side-tracking Explore server-side tracking with Stape to boost data accuracy, enhance privacy, and improve performance. Learn its key benefits and setup process. Server-side tracking is an advanced method of collecting user activity data that shifts the process from the user's web browser (the client side) to a server you manage. Unlike traditional client-side tracking, where JavaScript tags send data directly from the browser to third-party platforms, server-side tracking adds an extra layer by routing data through your own server. https://www.youtube.com/watch?v=3_TDbf5VqyY Difference between client-side and server-side tracking Before getting into the details of server-side tracking, let’s briefly discuss what client-side tracking is. This way, it will be much easier to grasp the difference between the two. What is client-side tracking? Client-side tracking is the most common method for connecting websites with tracking platforms. It utilizes the user's browser (the client) to send information to a tag management system or analytics platform. One of the most popular tag management systems is Google Tag Manager. Once your site is connected to Google Tag Manager, you can use it to send information to various platforms, including Google Analytics, Facebook, TikTok, Mailchimp, etc. ![How client-side tracking works](https://cdn.stape.io/i/66587cef4f700662895423.png) How client-side tracking works To implement client-side tracking, you should add the Google Tag Manager (or any other tag management system) code to your website and, ideally, create a [data layer](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager). After that, you set up tags and triggers to send information about user activity to third-party tools. You can also learn more about [how to implement server-side tracking](https://stape.io/blog/how-to-start-with-server-side-tracking). What is server-side tracking? With server-side tracking, [your website first sends data to a cloud server](https://stape.io/blog/how-does-server-side-tracking-work), which then distributes that data between third-party vendors and tracking platforms. The most popular server-side tracking platform is [Google Tag Manager](https://stape.io/gtm-server-hosting), which introduced its server-side tagging in 2020. A cloud server acts as a proxy between the information you send to a third-party tool and your site (or any other data source). To use server-side Google Tag Manager, you need to set up a cloud server that should (but is not required to) utilize a subdomain of your website. Then, use server GTM requests to forward information to the tracking platforms. ![How server-side tracking with a cloud server works](https://cdn.stape.io/i/66587e8a87c8e394692000.png) How server-side tracking with a cloud server works Use our free [Website Tracking Checker](https://stape.io/website-tracking-checker?cta=blog_article) to get a detailed report on how to fix tracking issues and boost performance. This tool shows you how well your website analytics tracking aligns with modern best practices and highlights opportunities to improve data quality for your analytics systems and ad platforms. Digital marketers and agencies can run fast tracking audits, use the report as a checklist to double-check implementations, and win more clients by demonstrating the value of server-side tracking. Server-side tracking benefits over client-side tracking Here are the [main benefits of server-side tagging](https://stape.io/blog/benefits-server-side-tagging): More accurate data collection and conversion tracking. Server-side tagging can reduce data loss due to iOS restrictions and decrease the impact of ad blockers. This is achieved through two main methods: using a custom domain for server-side tagging that sets first-party cookies, and Stape Custom Loader power-up that enhances Google Tag Manager and Google Analytics' resistance to ad blockers. First-party cookies and extended cookie lifetime. When setting up a server container in Google Tag Manager, it is highly recommended to use a custom domain. This allows for the use of first-party cookies. The deprecation of third-party cookies affects all major browsers, including Chrome, Safari, and Firefox. If you've set up server-side GA and used a [custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) for your server GTM, cookies can last for 400 days. Reduce the impact of ad blockers. With server-side tagging configured on a custom subdomain, tracking requests originate from your primary domain, making them undetectable by ad blockers. Control what data each vendor receives. Conversely, with the help of server-side tagging, you control what data each vendor receives. They can access only the information you configured in the request. Governance and control. Since server tracking allows you to completely control data flow, each vendor will receive only the information configured in your server-side tags. Data enrichment. Server GTM and server-side tracking can enrich data. For example, you can track orders via phone in Google Ads or Facebook. Improved website page load time. Reducing the amount of tracking JavaScript on your site can have a massive impact on your organic positions. Many of Stape's clients decided to set up server-side tracking mainly for better page speed. Hide Tracking IDs and Secret API keys. Anyone can see your tracking ID in the console or using a browser plugin with web tracking. Server-side tracking has the opposite situation - your tracking IDs are hidden. This may help prevent spam hits. With Stape, you can set up tagging server URLs in just one click. It's incredibly simple and cost-effective. Stape's hosting is approximately [five times less expensive than GCP](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server). Beyond cost and simplicity, server-side tagging with Stape offers numerous advantages, including Custom Loader, Global CDN, Logs, Anonymizer Cookie Keeper, Multi Domains, Preview Header, account sharing, Autoscaling, API, server zones, and more. Most common use cases of server-side tracking Given the many benefits of server-side tracking, it's no surprise that it has [numerous use cases](https://stape.io/blog/server-side-tagging-use-cases). Here are some of the most popular ones: [Facebook Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api). It allows you to send any event (standard and custom) from your server to Facebook's server, helping track users who have opted out of tracking on iOS devices. [Server-side Google Analytics 4](https://stape.io/stape-gateway). Google states that server-side GA helps [increase cookie lifetime](https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager). Since GA lacks event deduplication, you must use either web or server tracking, or both, with different GA properties. [Server-side Google Ads](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords). Server-side Tag Manager enables you to move your Google Ads conversion tracking tags from the webpage to the server, improving page load times and conversion tracking accuracy. This also addresses performance issues for users with slower internet connections. [TikTok Events API](https://stape.io/tiktok-events-api-gateway). This technology for [TikTok server-side tracking](https://stape.io/blog/tiktok-server-side-tracking) is similar to Facebook's Conversions API and [LinkedIn Conversions API](https://stape.io/blog/linkedin-conversion-api-tag-for-server-google-tag-manager). It lists recommended events, event parameters, and user data that should be sent to TikTok servers. You can also use a test ID to test TikTok server events in real-time. TikTok also supports event deduplication. Track offline data. Server-side tagging enables tracking of offline conversions, such as phone orders, in-store purchases, and CRM data, allowing you to monitor leads' progress through the sales pipeline. Combined with [cross-device tracking](https://stape.io/blog/cross-device-tracking), this helps businesses build a more complete picture of customer journeys across devices and channels. [ActiveCampaign Google Tag Manager](https://stape.io/blog/how-to-integrate-activecampaign-with-the-website-using-google-tag-manager-server-container). Unlike web tracking, server integration allows you to fully integrate email software with your site, including creating new contacts, thereby speeding up your site's performance as no third-party JavaScript runs in the user’s browser. [Enhance data security and privacy](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive): - Data security. Server-side tagging provides greater control over data, with processing and storage occurring on your servers before being sent to third-party services. - Privacy compliance. With server-side tagging, you can ensure that only the necessary and compliant data is shared with third-party services. Performance optimization: - Improved page load times. By handling tracking and analytics on the server side, you can reduce the amount of JavaScript running in the user's browser, which results in faster page load times and improved user experience. - Reduced client-side processing. Offloading data collection and processing to the server can reduce the load on the client side. Custom data enrichment: - Advanced data enrichment. Server-side tracking allows for the integration of additional data sources, such as internal databases or third-party APIs. - Complex data transformation. The server performs complex data transformations and calculations before sending the data to third-party services, ensuring cleaner and more accurate data. - Refined attribution models. Extending cookie lifetimes and combining web and server-side data can achieve more accurate attribution models. - Bypass ad blockers. Since the data is sent directly from your server, server-side tagging is less likely to be blocked by ad blockers. Improve integration with other systems: - Integration with internal systems like ERP, CRM, and other business intelligence tools. - Custom workflows and automation to trigger marketing campaigns or operational alerts. - Offline data integration. You can integrate offline conversion data, such as in-store purchases or phone sales, with online data to create a complete view of the customer journey. Server-side tracking using server Google Tag Manager There are several tools available for setting up server-side tagging, but our preferred choice is the server Google Tag Manager container. The main advantages of using sGTM include: Ease of use. Transparency and convenience. No additional costs. You only pay for the servers, with no fees for using the sGTM interface. Version control system. Any changes can be easily undone and returned to an earlier state, and you can keep track of who made the changes, where, and when. Multi-user mode. If you want to [set up Google Tag Manager server-side tagging on your website](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container#lets-start-setting-up-server-google-tag-manager), we have a step-by-step manual on how to do it with our service. Why Stape is the easiest and most affordable way to start with server-side tracking With Stape, you can set up server GTM in less than a minute, and we are the most affordable solution on the market. Stape is cost-effective because we purchase servers in bulk and for extended periods, and we optimize our servers specifically for Google Tag Manager. Additionally, Stape offers many other advantages: 1. [Custom gtm.js and gtag.js Loader](https://stape.io/solutions/custom-gtm-loader). This helps you make Google Tag Manager and/or Analytics 4 scripts more resistant to ad blockers. 2. [Global CDN](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server#11-global-cdn). This allows for faster JS file serving by using a server that resides closer to your site visitor. This results in improved page speed, which might positively affect organic ranking. 3. [Logs](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server#9-logs). Logs are a useful feature for setting up or troubleshooting server-side tagging, helping you determine what data was sent to the server and how it was processed. For example, you can verify whether all purchase events returned a 200 status (indicating success) or identify requests with a 500 response code. 4. [Cookie Keeper](https://stape.io/solutions/cookie-keeper). This feature extends cookie lifetimes when a user accesses your site with any browser using the latest version of ITP, which shortens cookie lifespans for responses from third-party IPs. You only need to activate our Cookie Keeper power-up. 5. [Anonymizer](https://stape.io/solutions/anonymizer). With this power-up, you can remove or anonymize user data from Google Analytics. We have a dedicated blog post outlining the [benefits of Stape hosting for Google Tag Manager server](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server). Last but not least, understanding web tracking as a multi-layer structure can help clarify how different data collection methods interact. From user interactions captured in the browser to data processed on your server and finally sent to analytics platforms, each layer of tracking plays a role in accuracy, reliability, and privacy. ![Web tracking layers](https://cdn.stape.io/i/6970f8c1521bc969961432.png) Web tracking layers You can explore the entire concept in detail in our [web tracking hierarchy](https://stape.io/blog/web-tracking-hierarchy) blog post, which illustrates how client-side and server-side tracking complement each other. To sum up By mastering server-side tracking, you can gain valuable insights into user behavior that can form the basis of your marketing strategies and improve your website's performance. Our [team of experts](https://stape.io/care) is always ready to help new users get started with tracking and answer any questions. For high-volume websites, we offer custom plans. Feel free to use the [pricing calculator](https://stape.io/price-server-google-tag-manager#calculator) to estimate the best plan for your site. --- # How to use Facebook events if you cannot verify the domain Source: https://stape.io/blog/use-facebook-events-cannot-verify-domain Learn how to use server Google Tag Manager container and Facebook conversion API to modify URLs of Facebook events and optimize campaigns for events sent not from your domain. Facebook's protocol, Aggregated Event Measurement, allows tracking web and app events from iOS 14.5 or later devices. It is recommended to set up Aggregated Event Measurement to optimize ad sets for conversion events. You can configure only 8 events in the Aggregated Event Measurement (or 5 if you decide to add value optimization for purchases). Another FB requirement that became mandatory is domain verification. If you didn’t verify your domain, you can’t add events to the Aggregated Event Measurement and use them for campaigns optimization. In this blog post, I want to show how to use server Google Tag Manager container and Facebook conversion API to modify URLs of Facebook events and optimize campaigns for events sent not from your domain. How to modify a domain using Facebook Conversion API and server GTM Let’s say you are using a third-party tool to sell tickets for the online event. A user visits your site, and when they want to buy a ticket, they are redirected to the 3rd party domain where they can purchase. You are launching Facebook campaigns and want to use success ticket purchase as an optimization event for your FB campaigns. Since the purchase event happens not on your website, you won’t be able to use the purchase event for the campaign optimization because the domain is not verified in your FB Business Manager. You can’t verify the domain even if the 3rd party tool allows adding FB pixel. Here I want to show how to use Facebook Conversion API and server Google Tag Manager to modify the URL of the Facebook server events. It will allow using these events for campaign optimization. This method will work only if you can add Google Tag Manager code to the third-party tool. Facebook will track only server events.: 1. [Create and set up a server Google Tag Manager container with the configured custom domain](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Send event data from the web to server GTM. You can [configure server-side GA4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client)to send event data. Since you will track only server Facebook events, I suggest sending user data from the web to server GTM. User data will give Facebook more information about people who are converting, and it will match purchases to your campaigns more accurately. 3. Add URL builder to the server GTM container from the [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/url-builder-variable). 4. Create a new variable in the server GTM → variable type “URL Builder” → Add URL and any query parameters you want → Save. ![URL builder variable](https://cdn.stape.io/i/61ea7fb2d83f6666454376.png) 5. Set a Facebook conversion API tag in the server GTM. To change the URL, go to the Server Event Data Override section → Select Source URL and add the URL you’ve created on step 4. ![update url facebook conversion api](https://cdn.stape.io/i/61ea7fd35177f807292643.png) 6. Open the debug mode of web and server GTM containers and test Facebook server events. You should see that the URL is updated. ![test facebook conversion API](https://cdn.stape.io/i/6762ed091bac0114005403.png) ![test facebook conversion API console](https://cdn.stape.io/i/6762ed178c8d9334984644.png) 7. Open Facebook testing tool and check that you see the correct URL. In the FB event testing tool, you can see events only from the allowed domain list.: ![facebook evnt testing URL](https://cdn.stape.io/i/6762ed23ed91e167375732.png) Conclusion Facebook's domain verification policy affects a lot of advertisers, especially those who sell tickets to webinars or online conferences since most are using third-party tools for the checkout process. I hope this blog post helps you fix the problem by changing the source URL using server Google Tag Manager and Facebook conversion API. Implementing FB CAPI on your site? All it takes is a few simple questions. Click Get A Quote, fill up the form, and we will send you a quote. --- # Server-side tracking benefits: what it is and why it matters in 2026 Source: https://stape.io/blog/benefits-server-side-tagging Server-side tagging improves tracking accuracy, data control, and page speed while evading ad blockers. Keep your tracking up-to-date with first-party data. [Server-side tagging](https://stape.io/blog/server-side-tagging) is becoming more popular mainly because it is designed to improve conversion tracking accuracy while maintaining privacy regulation. Not every business needs enterprise-level infrastructure to see server-side tracking benefits in practice. Once key conversion events are moved to the server, platforms like Meta and Google Ads receive more complete data, which directly improves how their bidding algorithms perform on your campaigns. More platforms started supporting [tracking server-side](https://stape.io/), including Google Analytics, Google Ads, Floodlight, Facebook, TikTok, LinkedIn, Snapchat, Bing, etc. Server-side tagging can also send data to email and SMS platforms like Klaviyo or Active Campaign. ![What is server-side tracking](https://cdn.stape.io/i/685951e856404493129752.png) 1. More accurate data collection and conversion tracking After implementing server-side tracking, our clients see an immediate increase in their PPC campaign results. According to Google’s research, [Square has seen a 46% increase in reported conversions from Google Ads after implementing server-side tracking](https://marketingplatform.google.com/about/resources/square-improves-conversion-measurement-securely-with-server-side-tagging/). Meta reports offer 13% cost per result and 19% additional attributed purchase events for advertisers who implemented CAPI (such as the [Facebook Conversion API Magento 2](https://stape.io/blog/facebook-conversion-api-for-magento) setup) vs. those using Facebook pixel only. One of the less obvious server-side tracking benefits is how it affects automated bidding. When platforms like Google or Meta receive more complete conversion data, their algorithms can optimize campaigns more effectively, which means better results without increasing your ad spend. Adblockers, tracking restrictions like ITP, iOS 14 and higher, and broken Javascript all affect the accuracy of the data you collect about website visitors. These are the main reasons why Facebook, Google, and other platforms highly recommend that users start implementing server-side tracking. Read more on [how to implement server-side tracking](https://stape.io/blog/how-to-start-with-server-side-tracking). You most likely see different numbers of purchases in your CRM compared to GA. For example, ROI Assist, using Stape’s server-side setup, closed a 40% gap in Facebook Ads and a 30% gap in Google Ads tracking resulting in a [33.6% boost in Facebook tracking accuracy](https://stape.io/blog/roi-assist-achieves-a-thirty-three-percent-increase-in-facebook-ads-tracking-accuracy-with-stape-server-side-tracking) and 95% reliability on Google Ads & GA4. This shift happens for two reasons: using a [custom domain for server-side tagging](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) that sets first-party cookies and Stape [Custom Loader](https://stape.io/solutions/custom-gtm-loader) that helps to make Google Tag Manager and Google Analytics resistant to ad blockers. It is important to understand the difference between tracking restrictions and user consent. You should respect the user’s decision to opt out of tracking and not fire any tracking scripts or set cookies if users do not give their permission. We have a blog post describing [how to use consent status in the server Google Tag Manager](https://stape.io/blog/consent-mode-server-google-tag-manager). ![How GTM connects cookie consent to platforms](https://cdn.stape.io/i/685bde0b35963593894888.png) 2. First-party cookies and extended cookie lifetime When setting up a server container in Google Tag Manager, it is highly recommended to use a custom subdomain. With the help of a custom subdomain, you can set first-party cookies, which will improve attribution accuracy, since platforms can reliably recognize returning users across multiple sessions. Third-party cookies deprecation affects all popular browsers, Chrome, Safari, Firefox, etc. For example, when using web tracking for Google Analytics, GA sets cookies from the domain [https://www.google-analytics.com](https://www.google-analytics.com/). In this case, cookies live for 1 or 7 days. If you’ve set up [server-side Google Analytics](https://stape.io/stape-gateway)and used a custom domain for your server GTM, cookies will live for 400 days. ⚠️UPDATE: Google announced that it will [no longer pursue its plans to phase out third-party cookies](https://privacysandbox.com/news/privacy-sandbox-update/). Instead, the company will introduce a new solution: a one-time prompt that allows users to set their preferences, which will apply across all Google browsing experiences. ![Server-side tagging extended cookie lifetime](https://cdn.stape.io/i/61defb6c670de261367868.png) 3. Data control When implementing web tracking pixels, you can't control what data they scrape from your site. For example, they can collect the user's first and last name without notifying you. On the other hand, server-side tagging helps you control what data each vendor receives. They can access only the information you configured in the request. If you do not send user data in the request, you can be 100% sure they cannot access personal user data. ![Data control](https://cdn.stape.io/i/685953b9d2a18160324380.png) 4. Legal compliance With strict privacy laws like GDPR, CCPA, DORA, or CSP (depending on the country), you’re expected to manage how user data is collected, processed, and shared. Server-side tagging gives you that control. You decide what gets sent to each ad and analytics platform, and nothing leaves your server unless you allow it. For example, MecShopping used server-side tagging to manage exactly which data was shared and how. This setup helped them double their consent‑based tracking coverage from [24 % to 50 %](https://stape.io/blog/mecshopping-doubled-results-with-user-tracking-consent) by taking full control of pixel behavior and integrating Google’s Consent Mode. From a compliance standpoint, server-side tracking benefits go further than just data control. Because no third-party scripts run directly in the user's browser, vendors cannot collect data outside of what you explicitly send them, which reduces your exposure in case of a privacy complaint or regulatory review. Personally identifiable information (PII), like emails or IP addresses, can be removed, hashed, or filtered before being passed on. ![Cookie consent](https://cdn.stape.io/i/6859549262029429713528.png) 5. Better retargeting signals Platforms like Meta or TikTok rely on conversion signals to optimize ad delivery. When browser events are blocked, those platforms miss out on information. Server-side tagging helps restore those signals so retargeting and lookalike audiences are based on the real actions of your potential clients. Platforms like Meta can match events more accurately and show your ads to the right people. Collect data once, send it to multiple platforms You can collect an event once and forward it to multiple tools: analytics, ads, email, CRM. This avoids duplicate tags in the browser and keeps your setup clean. For example, one of our partners from one year saw [568% more leads, 204% more registrations, 251% more conversions](https://stape.io/blog/case-study-comparing-facebook-pixel-and-facebook-capi), with CPM dropping from $7.80 to $3.81 after switching to server-side Conversions API. ![Better retargeting](https://cdn.stape.io/i/68595574db5ea368739133.png) 6. Reduction of the impact of ad blockers There are several ways how [AdBlocker](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers) can stop tracking scripts. Server-side tracking can help with one of these methods - when adblocker detects a script identifying the domain that sends the request. If you use server-side tagging with the configured subdomain, tracking requests are sent from your primary domain, meaning AdBlocker can't detect it. For example, they check if the requested domain is google-analytics.com to detect and block GA. However, with the server-side tracking and custom subdomain, Google Analytics will send requests from your custom subdomain, such as ss.example.com, which means that Adblockers can't detect whether it's GA or not. 7. Data enrichment Server GTM and server-side tracking can enrich data. For example, you can track orders via phone in [Google Ads Offline Conversions API](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm) or [offline conversion tracking Facebook](https://stape.io/blog/facebook-offline-conversion-using-server-gtm). This may help you build custom audiences or get a full picture of where orders are coming from. Another frequent use of data enrichment is sending order information from payment systems like Stripe. It helps ensure all sales data appear in GA, FB, or other analytics tools. One of our partners, Farmasave implemented server-side tags using Stape to send both offline and cross-sell data. They achieved an [88% lift in conversion-based campaigns](https://stape.io/blog/case-study-on-increase-in-conversion-campaigns-for-farmasave), as enriched data flowed seamlessly to ad platforms. 8. Improved website page load time This benefit is significant for SEO. Third-party tracking scripts can slow down your site, which leads to two adverse effects: lower organic position and worse user experience. This is particularly important for mobile users, where even a small reduction in page weight can meaningfully improve load times and reduce bounce rates. Many studies have shown that page load time correlates with bounce rate. The longer your page takes to load, the more likely users will not wait and close your page, leading to a higher bounce rate. ![Improved website page speed server-side tracking ](https://cdn.stape.io/i/61dfd860ddeba218597565.png) Site page speed is one of the critical organic ranking factors. Especially now that Google has rolled out mobile-first indexing and core web vitals. Reducing the number of tracking javascript on your site may have a massive impact on your organic positions. Many of Stape's clients decided to set up server-side tracking mainly for better page speed. A large part of these clients contacted us because of Klaviyo javascript. It slows down the site immensely. But the good news is that the https://stape.io/blog/integrate-klaviyo-with-your-website-using-google-tag-manager-server-container[Klaviyo server-side tag](https://stape.io/blog/set-up-klaviyo-website-event-tracking-using-server-google-tag-manager) does the same thing as the web integration, and you can switch to Klaviyo server-side tagging without losing any integration feature. We also did a [small experiment](https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking) comparing the website page speed with web tags vs. server-side. Google also has an [article](https://blog.google/products/marketingplatform/360/bring-performance-and-privacy-together-server-side-tagging/) showing how Nemlig improved its page load time by 7% by moving tags to the server. 9. Hidden Tracking IDs and Secret API keys Anyone can see your tracking ID in the console or using a browser plugin with web tracking. Server-side tracking has the opposite situation - your tracking IDs are hidden. It may help to prevent spam hits. 10. Tracking offline conversions Server-side tracking allows you to track offline events like phone orders, website chats, in-store purchases and leads in the CRM. This provides more accurate tracking of your paid campaigns' results and helps create more precise custom and remarketing audiences. 11. Integration with third-party tools The most popular way to implement server-side tracking is through a GTM server container. But GTM alone isn’t enough; to get the maximum out of it you should consider tools using dedicated APIs and gateways. Stape is the largest contributor to the GTM server-side tag library, with over [80 server-side tags](https://stape.io/solutions/category/server-gtm-tags). These tags let you send clean, structured data to platforms like Google Ads, Facebook, Klaviyo, TikTok, [server-side tracking for Pinterest](https://stape.io/blog/pinterest-conversion-api), [Reddit Conversions API](https://stape.io/blog/reddit-conversion-api-tag-for-server-google-tag-manager), and more without needing extra scripts in the browser. But what if the platform you use doesn’t have a built-in tag? That’s where [Stape Gateway](https://stape.io/stape-gateway) helps. Gateways are built to simplify the connection between your GTM server and the platform’s Conversions API. Instead of building and maintaining custom HTTP requests, the Gateway handles everything for you: authentication, formatting, version compatibility, and delivery. Stape currently offers Gateways for: [Meta Conversions API Gateway](https://stape.io/fb-capi-gateway) [TikTok Events API Gateway](https://stape.io/tiktok-events-api-gateway) [Snapchat CAPI Gateway](https://stape.io/snapchat-capi-gateway) This setup gives you: Faster deployment with no code Real-time delivery of key events Reduced risk of dropped or rejected data Full compliance with each platform’s API rules ![Integration with third-party tools](https://cdn.stape.io/i/6675ee06e1a34949420500.png) 12. Stape’s Website Tracking Checker Stape’s [Website Tracking Checker](https://stape.io/website-tracking-checker) is a free tool designed to evaluate the health of your tracking setup and highlight areas for improvement. Just enter any website URL, and within minutes, you’ll get a detailed report on how your site handles analytics, advertising pixels, cookie behavior, and SEO-impacting scripts - both client- and server-side. The tool delivers a score along with clear, practical recommendations tailored to your setup. Whether it’s fixing GA4 parameters, improving Meta CAPI signals, or reducing script load, you’ll get precise actions to take. Implement the changes, rescan, and see measurable gains - including more accurate data, faster load times, and improved conversion tracking. ![Stape’s Website Tracking Checker](https://cdn.stape.io/i/685957cbd66c2281343158.jpg) 13. Setup Assistant by Stape [Setup Assistant](https://stape.io/gtm-set-up-assistant) is a free tool from Stape that takes the complexity out of data tracking setup. It reviews your tech stack and connected platforms, then builds Google Tag Manager container templates tailored to your needs. Once generated, these templates are automatically added to your web and server GTM containers. ![How Setup Assistant works](https://cdn.stape.io/i/68b554dfc5e4a763735496.png) You don’t need advanced technical skills to set up tracking on your site. With Setup Assistant, the process takes just a few minutes. Select the tools you use (such as GA4, Google Ads, Meta, Microsoft, and others), provide the required information, and test the templates directly within your GTM account. Helpful notes for your setup Server-side tracking gives you better data and more control, but there are a couple of things to plan ahead for: It takes a bit of setup. There are more steps than in-browser tracking, but once it's done, the system runs quietly in the background and requires very little maintenance. Some tools may need a Gateway. Not every platform has a native tag, but most popular ones do. For the rest, Stape provides ready-to-use gateways or flexible custom solutions. Hosting is needed. You’ll need a cloud server to run your setup. Stape takes care of this part too with a hosting that is easy to launch, affordable, and optimized for GTM. Case study: 62% more revenue for WoodUpp with server-side tracking | ASENTO Challenge: the need for a highly accurate tracking solution to feed reliable data into diverse advertising platforms, successfully scale across 17 countries, and maintain profitable campaigns. Solution: using Stape's hosting to deploy a comprehensive server-side GTM configuration across six major marketing channels, powered by an optimized DataLayer containing encrypted user data. Results: a 62% increase in measured revenue and a 56% boost in measured conversions compared to the client-side tracking during a 6-month test. Read more here: [https://stape.io/blog/asento-measuring-62-per-cent-more-revenue-for-woodupp-with-server-side-tracking](https://stape.io/blog/asento-measuring-62-per-cent-more-revenue-for-woodupp-with-server-side-tracking) FAQs What is the difference between server-side and client-side tracking? Client-side tracking means your tracking scripts run in the user’s browser. They collect data directly from the page, but this method can lose information due to browser privacy rules, ad blockers, or connection errors. Server-side tracking sends data through your cloud server instead. The browser still collects the data, but it’s passed through your server first. This gives you more control, better accuracy, and stronger privacy compliance. What are the challenges of implementing server-side tracking? The main challenge is the first setup. It usually takes more time than adding scripts to your site, but you can do it with tools like Gateways by Stape to configure a cloud server, connect it to a GTM server container, and manage DNS settings. What tools or platforms are commonly used for server-side tracking? The most common setup includes a GTM server container, connected to a custom subdomain. For sending data to ad platforms, tools like Meta Conversions API, TikTok Events API, and Pinterest API are often used. Conclusion The most important server-side tracking benefits are improved tracking accuracy, faster page load, and data control. When platforms receive cleaner and more complete event data, the custom and lookalike audiences they build are based on real user behavior rather than incomplete browser signals, which directly affects how well your retargeting campaigns perform. Since Safari and Firefox prevent third-party cookies, and Chrome allows blocking them with its new user preferences settings, it's about time to switch to server-side tracking. There are two main downsides of server-side tracking: costs and complexity. But [Stape hosting](https://stape.io/gtm-server-hosting) for server Google Tag Manager fixes those. With Stape, you can set up server-side GTM hosting in 1 click, plus we are 5 times cheaper than Google Cloud. And if you need [help setting up server-side tracking](https://stape.io/care), we can help, too! --- # How to switch server GTM hosting from Google Cloud to Stape Source: https://stape.io/blog/how-to-switch-server-gtm-hosting-from-google-cloud-to-stape In this guide, I will show you how to move your server GTM hosting from Google Cloud over to stape.io There are several reasons why you want to consider moving the hosting of your server Google Tag Manager container from Google Cloud to stape.io. Here are some benefits of using Stape: Price One-click tagging server set up Custom gtm.js loader Preview header Faster gtm.js/gtag.js/analytics.js loading time No need to run scripts if you want to upgrade to the production environment No additional configuration in the server GTM container Autoscaling Access and billing Account sharing Support We have a more detailed description of the stape benefits [here](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server). In this blog post, I want to show how to switch sGTM hosting from Google Cloud to stape.io. There are two main ways of transferring sGTM hosting from Google Cloud to stape.io: 1. Export the existing sGTM container (hosted on Google Cloud) and import it into a new container (hosted on stape.io). 1.1 Open the Admin tab of the sGTM container hosted on the Google Cloud and click Export Container. ![Export Container](https://cdn.stape.io/i/66f66390ec60f829811938.png) 1.2 Create a new server container with a manually configured tagging server. 1.3 Import container settings. ![Import Cobtainer](https://cdn.stape.io/i/66f663a00c0a5667371884.png) 1.4 Update DNS settings. When you’ve set up a custom subdomain on Google Cloud, you’ve added A and AAAA settings. For stape.io, you should set only A record. That is why when transferring sGTM from Google Cloud to stape, you need to remove the AAAA record and change the IP address for the A record. 2. Another way is to use the existing sGTM container. 2.1 Open sGTM container settings and copy Container Configuration. ![Container Configuration](https://cdn.stape.io/i/66f663af6fdbd122084399.png) 2.2 Paste Container Configuration into your stape.io sGTM container settings. ![Container Configuration](https://cdn.stape.io/i/66f663c365b17648213528.png) 2.3 Update A record for your custom subdomain and remove the AAAA record (if you set it up for Google Cloud). Do not forget to turn off the GCP project. Because otherwise, you will still be billed for the GCP. How to delete a GCP project Follow the steps to delete a Google Cloud Project: 1. Go to [console.cloud.google.com](https://console.cloud.google.com). 2. Select your project (from drop-down on top nav-bar). ![Select a project ](https://cdn.stape.io/i/66f65f636259f709332756.png) 3. Select IAM & Admin (from hamburger menu on top-left nav-bar). ![IAM & Admin](https://cdn.stape.io/i/66f65f7c283f6429571339.png) 4. Click Settings in the left-side-bar nav. ![Settings](https://cdn.stape.io/i/66f65f934f24a895915536.png) 5. Click SHUT DOWN. ![SHUT DOWN](https://cdn.stape.io/i/66f65fb07b684475800767.png) 6. Enter text per instructions to confirm project shutdown. And that's it. We can set up server-side tracking for you! All it takes is a few simple questions. Click Get A Quote, fill-up the form, and we will send you a quote. --- # Server-side tracking and GDPR Source: https://stape.io/blog/server-side-tracking-gdpr Learn how to use server-side tracking to comply with GDPR. Tips on using consent mode in the server GTM and protecting users' data included. Server-side tracking is an effective solution for handling data collection in a way that helps you stay compliant with the General Data Protection Regulation (GDPR). By moving the data collection and processing from the user's web browser to your own server, you get more control and security over personal information. However, it does not automatically exempt you from GDPR compliance. The regulation applies to all personal data processing regardless of the tracking method, which means server-side tracking must still adhere to GDPR principles, such as obtaining user consent for data collection and processing and ensuring transparency in data handling. The GDPR and the California Consumer Privacy Act (CCPA) are online privacy legislation all website owners need to know and follow. The GDPR sets out specific rules about processing personal data, including collecting, storing, and deleting it. The GDPR can heavily affect what users' data you collect on the website and how you use it. In this blog post, we want to talk about how server-side Google Tag Manager can help to adapt tracking to the GDPR requirements. What is GDPR? GDPR is a set of rules that limits what information about users websites can collect and how they should manage, store, and process it. The rules are organized in 99 individual articles of GDPR laws. GDPR came into force on May 25, 2018. However, the main principles of GDPR laws remain the same in all European countries, and each country has the right to modify them according to its needs. That is why you need to be aware of GDPR aspects in your country. It's important to understand that GDPR rules apply to businesses and websites outside the EU (in the USA or Asia). Even if a user visits your site not from a European country, you must still comply with GDPR rules. What does GDPR mean for website tracking? The critical point of the GDPR rules concerns personal data. They describe when and how website owners can collect and store personal data and whether they can transfer it to third parties. Though each country has a right to change the definition of Personal Identifiable Information (PII), a user's name, address, email, IP, or even cookies can be considered PII. More than that, data about users' health, religious, and political preferences can also be PII. Though GDPR, ePrivacy, and CCPA's primary purpose was to restrict big advertising companies (like Google or Facebook) from profiling you across different websites and protect user privacy, more often, smaller companies started to receive notifications or even fines for not complying with GDPR policy. 1. Cookie consent ![Cookie consent Stape](https://cdn.stape.io/i/61b8ded2232c6999516577.png) Web Google Tag Manager has a consent mode feature. With the consent mode enabled, Google checks users' consent status and reacts accordingly. Google will understand if GTM can set cookies depending on what the user selects on your cookie banner. Web Google Tag Manager consent mode should work with the [consent management platform (CMP)](https://stape.io/blog/set-up-consent-management-gtm-iubenda#benefits-of-server-side-consent-management). The primary purpose of CMP is to let users select what cookies they allow sites to use. Most popular CMPs integrate with web GTM consent mode, meaning they automatically block cookies and trackers until the user gives their consent. The cookie banner has several different requirements, and each country has its own adjustments. For example, some governments require you to use a single color for all buttons. You can't make the "Allow Cookie" button green while the "Block Cookie" button is white, making it more natural for the users to press the green button. Another requirement for a cookie banner is that a user should easily browse a website without clicking any button on the cookie banner. One recent update says you should keep logs of all user consent decisions. 2. Promotional email consent In most cases, there are two types of email: promotional and strictly necessary. You are not allowed to send promotional emails without user consent. For example, you can send the event to your email marketing software when an existing user agrees to receive sales and promo materials. You can utilize the web Google Tag Manager to identify users who have agreed to receive promotional emails. On the other hand, if a new user wants to receive marketing emails, web GTM won't help since most email software platforms do not allow the creation of new users in their systems from the web. You can do it only through the backend or server GTM. Server-side Google Tag Manager and GDPR Server-side GTM gives you better control over the data flow each vendor receives. The ideal scenario of how server GTM should work is having one data stream in the web GTM that delivers data to the server GTM. For example, you can use Google Analytics 4 to send data to the server container. Server GTM processes GA4 requests and maps them into the events data inside the sGTM. Many businesses use this setup as part of [Google Analytics 4 cookieless](https://stape.io/blog/cookieless-tracking-ga4) tracking, since routing requests through the server container reduces reliance on browser cookies, provides more transparency, and helps align data collection with GDPR requirements. Learn [how to implement server-side tracking](https://stape.io/blog/how-to-start-with-server-side-tracking) step by step. Then, you can use the event's data and HTTP requests to send information further to third-party tools. ![Stape server GTM](https://cdn.stape.io/i/646b3b34b2d84939243851.png) With the [EU’s Digital Omnibus initiative](https://stape.io/blog/digital-omnibus-explanation#key-changes-proposed-by-digital-omnibus) proposing modernized cookie/consent rules and automated user preferences, server‑side tracking is likely to become even more important for compliant data collection. Does server GTM have a consent mode? Server GTM does not have a consent mode, similar to the web GTM. You should set up a consent management platform and integrate it with the web Google Tag Manager. Web GTM's consent mode will control what information GA4 collects and sends, depending on user consent. If the user does not agree to use cookies, Google Analytics 4 will work in a restricted mode and not read or write marketing cookies. When a user doesn't consent to set up marketing cookies, Google Analytics will still send requests to the server GTM container, meaning your data will be delivered and processed in the server GTM. In this case, the difference is that GA will be restricted from writing, storing, or reading cookies. This type of request will have a new parameter, gcs, containing the consent status. You can use this parameter in the server GTM to record the user's consent mode. GDPR requirements for server GTM GDPR rules require all European countries to store users' visits on European servers. When you set up a Google Tag Manager server for the website where your main business is in Europe, make sure you select the European hosting region. How does server GTM help to comply with GDPR rules? ![GDPR + server-side tracking](https://cdn.stape.io/i/6895f638a8989352183499.png) 1. Control what data third parties collect When inserting third-party web tracking scripts, you can't strictly control what information they collect. They can scrape sensitive data or personal identifiers without letting you know. Server Google Tag Manager solves this problem. Let's say you want to set up [server-side tracking](https://stape.io/) for Facebook without using the web to restrict FB from collecting undesired data from your website. In this case, server Facebook tags will send only information that you specified inside these tags. FB won't be able to access any other information. You can use Outgoing HTTP requests to see what information was sent to Facebook. This will prevent Facebook from collecting any data from your website, which it is not allowed to do. 2. Remove sensitive data and PII For some countries and for some business areas (e.g. medicine) there are additional regulations that require restrictions on sending certain PII parameters to third-party platforms. Many such requirements are impossible to do with web tracking, but with server-side tracking, you have full control over payload events. With sGTM you can [either remove it before sending it to third-party platforms or hash it before sending it](https://stape.io/blog/how-to-anonymize-user-data-google-analytics-4). For example, with sGTM, you can easily remove the sending of IP address and User Agent from the Facebook event data if needed, but this cannot be done for web events. We have an extensive guide on [Personal Identifiable Information guide](https://stape.io/blog/personally-identifiable-information), and you can learn more about handling, protecting and anonimyzing PII data from it. 3. Hash user data before sending it Most platforms require hashing of some or all of the data, especially PII. Typically MD5 or SHA256 format is used. All standard popular GTM tags (FB, GA4, Google ADS, etc.) hash the data themselves before sending it to the platforms, but for some platforms it is necessary to do it yourself and it is easily available in sGTM using the template from the gallery. For example, here is a great [template for SHA256 hashing](https://tagmanager.google.com/gallery/#/owners/gtm-templates-simo-ahava/templates/sha256-hasher). Also hashing functions in different formats are available in [Data tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag). You can send data from a web container in the hashed format you need, which makes it much easier to set up in many cases. 4. Modify PII before sending it PII is not limited to user data (like email or phone number) only. We have a client who advertises medical equipment on Facebook. They have the names of medical devices and sometimes diseases in the URLs. Facebook complains that they send users' health information (considered PII) to Facebook, which is against FB policy. FB also notified us that their ad account might be restricted from advertising if they do not remove health information from the URLs. Using Server GTM, you can modify a website URL before sending it to a vendor. You can remove parameters or replace any keyword in the URL. Why you can’t use server-side tracking to bypass consent Although server-side tracking is a [method of cookieless tracking](https://stape.io/blog/what-is-cookieless-tracking), it doesn't mean you shouldn't ask for consent from your users. The GDPR requires legitimate grounds to process personal data. Both terms "process" and "personal data" have broad definitions and extend beyond just cookies. If you modify or [anonymize data](https://stape.io/solutions/anonymizer) before sending, it is still considered data processing from a legal perspective. To sum up, server-side tracking helps to comply with GDPR rules, but it doesn't mean that you can process data without consent. You still need to set up consent status (described in the next section), add a [cookie banner](https://stape.io/blog/cookie-banner-all-in-one-guide) on your website, and consult with your legal department to avoid any problems. How to use consent status in the server GTM 1. Select and set up a consent management platform. For stape.io, we use [Сookiebot](https://www.cookiebot.com/) since it has all the features that GDPR requires, a reasonable price, and integration with the consent mode in web GTM. We will use Cookiebot in this how-to. Some integration steps may differ if you use another CMP, but the logic should be the same. 2. Set up a [server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 3. [Set up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking). 4. Set up a CMP tag in the Web GTM. You will most likely find your CMP tag in the web GTM template gallery. In our example, we added a cookie bot tag from the gallery →, created a new tag →, added ID, and defined the default consent state. This tag should trigger on the Consent Initialization trigger. ![Set up a CMP tag in the Web GTM](https://cdn.stape.io/i/6675599cbaf40832480826.png) 5. The Web GTM has tags with built-in consent checks (mainly Google's products, such as Google Ads, Google Analytics, and Floodlight). The main benefit is that these tags automatically react to the consent behavior and adjust their actions. No additional configuration is needed. Please be aware that you must set up additional configurations for those tags that do not support built-in consent checks. You will most likely have to use the custom events in GTM for that. As well as set up Consent Settings. 6. The next step is to set up or modify a Google tag configuration tag in the web GTM container. To do that, go to Advanced Settings → Consent Setting → enable No additional consent required. ![Set up or modify a Google tag configuration tag in the web GTM](https://cdn.stape.io/i/66755a0b8f61f342288473.png) 7. Open Web and Server GTM previews and test GA4 as you are a user who didn't select anything on the cookie banner or denied cookies. In the server GTM, you should see gcs=G100 in the GA requests. The GCS parameter indicates consent status, and the gcs=G100 means the user didn't consent. ![Consent status](https://cdn.stape.io/i/66755a6e4d92a735651372.png) 8. Test GA4 as you are a user who allows cookies. In this case, in the server GA4 requests, you should see gcs=G111. ![Consent status](https://cdn.stape.io/i/66755aacc3cd2526141863.png) 9. Let's say you want to set a tag in the sGTM container that does not fire when a user denies cookie storage. In this case, create a new variable with the type Query Parameter and add gcs. After that, you can create a trigger that restricts the tag from firing when gcs=G100. This will mean that the user denied the consent. ![Finished setup](https://cdn.stape.io/i/66755ae4cc449475751588.png) Conclusion With the help of web Google Tag Manager, you can more easily adapt to GDPR rules. All you need to do is choose from various consent management systems or use a custom solution and then integrate it with your web GTM. This will adequately protect users' online privacy rights while still allowing the use of necessary cookies to provide a seamless experience. For now, server GTM does not have a built-in consent mode, but you can use GA requests to read the consent status from the web GTM. GTM denies setting and reading cookies in "do not allow" consent mode, while GA requests will still be processed. Server GTM enables you to control the data your vendors receive strictly. Unlike browser tracking, where you can't be 100% sure of what information the scripts collect, server-side tagging delivers only configured data to the third-party vendor. It will help protect your site from unwanted scripts and speed it up because no work will be done in the user's browser. Server-side tracking allows you to modify and hash PII before sending it to third-party tools. If you're looking for a way to streamline your website performance and secure user data, then server-side tracking should be seriously considered. We can help set up server-side tracking for any website! --- # How to set up server-side affiliate tracking using server Google Tag Manager Source: https://stape.io/blog/how-to-set-up-server-side-affiliate-tracking-using-server-google-tag-manager Learn why server-side affiliate tracking is crucial and follow our step-by-step guide to set up Google Tag Manager affiliate tracking for conversion tracking. In this article, we will show you how to configure server-side affiliate tracking via a server GTM container. Below, we cover the following points: 1. How client- and server-side affiliate tracking works. 2. What to do before configuring server-side affiliate tracking. 3. How to configure Affiliate Conversion tag. 4. How to check whether the setup works smoothly. Please note, here we don't cover the benefits of such a setup, if you would like to see the [list of advantages](https://stape.io/solutions/affiliate-conversion) and more info on Affiliate Conversion tag, see our solution page. How does client-side affiliate tracking work? All affiliates have a unique identifier in the affiliate network. They receive an affiliate link with their ID for every offer they work with. When a user clicks on the affiliate link, a cookie with the unique identifier is set in a user’s browser. This cookie stores the information about the affiliate and is responsible for reporting back if a user converted. In some cases, client-side tracking won’t set third-party cookies with the information about the affiliate. For example, if a user clicks on the affiliate link in Safari, a cookie is not created because Safari’s ITP doesn’t allow setting third-party cookies; hence, user conversion won’t be assigned to the affiliate. Even when the affiliate network uses your domain to set cookies and make it first-party, Safari will still recognize it and decrease the lifetime of such a cookie to one day. How does server-side affiliate tracking work? [Server-to-server affiliate conversion](https://stape.io/blog/affiliate-conversion-tracking) uses first-party cookies. These cookies are directly communicated from the partner server to the affiliate network server. Let’s say you use a server Google Tag Manager container with a [configured custom subdomain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). You configure affiliate tags that set first-party cookies using the server Google Tag Manager. These cookies can not be blocked because they have first-party status. Some affiliate networks don't recommend switching exclusively to server-side tracking. They argue that browser tracking is more robust but less reliable for now. That’s why a hybrid approach is the best solution. Server-side tracking is becoming more popular, and the most significant analytics and advertising platforms already support server-side tracking. We have a blog post that lists all [platforms that support server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). Improved data tracking is not the only benefit of using server-side tagging. It can also help you [increase the page speed](https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking), positively affecting organic ranking. Server-side affiliate conversion tracking using server Google Tag Manager Stape created an [affiliate conversion tracking tag for the Google Tag Manager server container](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/affiliate-conversion-tag). With the help of this tag, you can track affiliate page views and conversions on the server side. Affiliate Conversion tag configurations Type: PageView stores the URL parameter inside a cookie with the name: affiliate_{PARAMETER_NAME} Conversion sends requests to the conversion URL. You must add a URL and select a request method (GET or POST). You can select to clear stored parameters when a conversion occurs. In this case, you will see additional settings to specify what parameters you want to remove. Query parameters: you can add parameters and use any server GTM variables here. How do you set up server-side affiliate tracking using the Google Tag Manager server? 1. [Create and set up a server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Send data to the server GTM container. You can do it by [configuring server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). 3. Add the [Affiliate Conversion Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/affiliate-conversion-tag) from the Template Gallery. Go to your server Google Tag Manager container → Templates → Tag Templates. Search Gallery → Choose Affiliate Conversion Tag. Click Add to Workspace. ![Add to Workspace](https://cdn.stape.io/i/6759aad854b1c704280316.png) 4. Next, you must set cookies with the affiliate ID when the user visits your site. Create a new tag with the type Affiliate tag → Type PageView → Add URL parameter that you would like to store in cookies → Set cookie lifetime → Add trigger. ![Add trigger](https://cdn.stape.io/i/6759aaeea48d3301446251.png) 5. Test Affiliate PageView tag. You should see that this tag triggered successfully in the server Google Tag Manager Preview mode and the cookie was set. The cookie name will start with the affiliate. ![Test Affiliate PageView tag](https://cdn.stape.io/i/6759ab1395f47133371919.png) 6. The next step is to set up a conversion event. Each affiliate network lists required fields to be sent when a user converts. Create a new tag with the tag type Affiliate Conversion → Select type Conversion → Add a destination URL (you will find this destination URL in the affiliate network you are with) → Select Request method (depends on your affiliate network requirements) → Add parameters → Add trigger. ![Add trigger](https://cdn.stape.io/i/6759ab4791ded562118200.png) 7. Once you’ve done setting up and testing, do not forget to publish server container changes. Dedicated affiliate tags from Stape The Affiliate Conversion Tag, as outlined in this post, is designed to track conversions across a wide range of affiliate networks. Stape also developed tailored solutions specifically designed for the most popular affiliates: [Awin server-side tracking using server GTM](https://stape.io/blog/awin-server-to-server-tracking-using-server-google-tag-manager) [Impact tag](https://stape.io/solutions/impact-tag) [Rakuten tracking](https://stape.io/blog/rakuten-server-to-server-tracking): server-to-server method [Refersion tag](https://stape.io/blog/how-to-set-up-refersion-tag-using-google-tag-manager) Conclusion If you consider affiliate marketing one of your business's traffic and conversion sources, now is the best time to improve conversion tracking by implementing server-side integration. Third-party cookies and client-side monitoring are no longer reliable, and their effectiveness will likely decrease further. We hope this blog post helped you set up server-side affiliate conversion tracking. If you need help setting up server-side tracking for your site, our support can help. Just don't hesitate to contact [Stape's support](https://help.stape.io/). We can set up server-side affiliate tracking for you! All it takes is a few simple questions. Click Get A Quote, fill up the form, and we will send you a quote. --- # Track user source/medium flow using server Google Tag Manager Source: https://stape.io/blog/track-users-first-last-source-medium-using-server-google-tag-manager This post will cover the use of a custom tag for the Google Tag Manager server container to track users first, last, and all in between source/mediums. Google Analytics offers a variety of reports allowing you to examine user behavior. The most frequently used report when analyzing conversions is exploring source/medium. When configured correctly, this type of report gives valuable insights on which traffic sources bring in more users and conversions. Google Analytics has a lot of different models for how to attribute conversions. Still, the default model is last click non-direct traffic, which means conversion will be attributed to the most recent non-direct traffic source. Though this type of attribution model can be relevant for some websites, it may not be accurate for others (especially websites with high average order value) since users have multiple interactions before purchasing on the site. And the last traffic source may not have the most significant role in a user’s decision to buy your product. Stape created the Channel Flow tag for the server Google Tag Manager that helps track all user interactions with the site. In this post, I want to talk about using Google [Tag Manager server-side](https://stape.io/gtm-server-hosting) to track the user’s first, last source/medium, and all interactions in between. How does the Channel Flow tag for the server GTM works? The logic of our Channel Flow tag is straightforward. It records users’ first, last, and all middle interactions in the browsers’ cookies. Cookie names Channel Flow tag uses: Channel_flow - records the source/medium flow of all user interactions with the site Channel_flow_first - records the first source/medium Channel_flow_last - records the last source/medium ![ads user channel flow in cookies](https://cdn.stape.io/i/61a658cab4f69000404815.png) Channel flow tag configurations: URL Source - defines a variable that contains a URL. You can select page_location to use URL from [Common Event Data](https://developers.google.com/tag-manager/serverside/common-event-data) or provide a variable that returns a valid URL string. Referrer Source - defines a variable that contains Referrer. You can select page_referrer to use Referrer from [Common Event Data](https://developers.google.com/tag-manager/serverside/common-event-data) or provide a variable that returns a valid Referrer URL string. Search Engines Regular Expression - you can modify this reg exp to include or exclude organic traffic sources. Cookie lifetime - Channel Flow cookies expiration in seconds (set 0 for session cookie). 2 years by default. How can you use the Channel Flow tag? There might be multiple use cases for the channel flow tag, but initially, we created this tag to help measure affiliate conversions and assign affiliate commission appropriately. But then we realised that the channel flow tag could be used in several other ways, like Google Analytics and CRM. I'm sure there are tons of different use cases! Affiliate conversion win Let’s say you work with several affiliate partners or have offers in multiple affiliate networks. Who should receive a commission if two affiliates participated in one conversion flow? Should you split the commission between the two of them? How to determine whose interaction was the first one and whose the last? No matter what rules for assigning affiliate commission you have, a channel flow tag can help. You can use the channel flow tag to determine what affiliate wins the conversion based on their positions in the channel flow. Affiliate commission rate Another scenario when the channel flow tag helps is assigning commissions based on the affiliate's position in the conversion interaction path. For example, when two affiliates participate in the conversion path, you might want to assign 80% of the commission to the last interaction, while the rest of the commission should go to another affiliate. Track initial traffic source in Google Analytics The default Googles Analytics attribution assigns conversion to the last click non-direct traffic source. This information might not be enough when evaluating the effect of each channel. Using stape’s channel flow tag, you can compare the first and last interaction traffic sources. Analyzing the first attribution traffic source is essential because it helps understand how customers heard about your site and what impact each traffic source has on brand awareness. Add first/last interaction source and channel flow to the CRM Some popular CRMs like WooCommerce have plugins that help to add first/last click interactions to every order. With stape’s channel flow tag, you can add first, last, and middle attribution source/medium to the CRM. It can be a critical feature for a higher value product where you want to know each step of users’ interaction with the site before they purchase. For WooCommerce stores, [WooCommerce server-side tracking](https://stape.io/blog/woocommerce-server-side-tracking) also keeps product, cart, checkout, purchase, and refund events in the same web and server GTM flow before they reach analytics and ad platforms. How to set up the Channel Flow tag? 1. [Create and set up server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Send data to the server GTM container. You can send data by [configuring server-side GA4](https://stape.io/blog/set-up-ga4-server-side-tracking) and [Data Tag Stape](https://stape.io/solutions/data-tag-client). 3. Download [Channel flow tag](https://github.com/stape-io/channel-flow-tag) from GitHub -> Open templates sections in the server Google Tag Manager container -> Click New. Or add using [Community Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/channel-flow-tag). ![Download Channel flow tag from GitHub](https://cdn.stape.io/i/61a658cac5806327163295.png) 4. Click three dots in the top right corner -> Click Import -> Select channel flow tag template you’ve recently downloaded from GitHub -> Click save. 5. Create a new tag in the server Google Tag Manager container. Tag type should be the Channel flow tag. Make required configuration. You can modify URLs, referrals, add organic sources and set a cookie lifetime. 6. Add a trigger to this tag. I will trigger the Channel Flow tag on every request claimed by Google Analytics 4 client. ![set up channel flow tag server google tag manager container](https://cdn.stape.io/i/61a658cacb9cf239160427.png) Conclusion Channel Flow tag is an easy way to see what traffic sources drove user interactions and influenced their decisions. If you work with affiliate partners, it could help assign different commissions based on where in the journey someone has reached during your marketing campaigns or partnerships. Channel flow tag provides insight into how users interact with your site, how they get familiar with the brand, research it, and finally, what makes them buy your product. This info can help to better market your products by identifying user's interaction with the site at different points along the acquisition process. --- # How to easily maintain Facebook Test ID in your Google Tag Manager Server container Source: https://stape.io/blog/how-to-create-test-facebook-variable Use a Lookup Table variable in sGTM to manage your Facebook Test ID efficiently. This guide shows you how to set it up for easy debugging and production use. We've all faced the inconvenience of managing Facebook Test ID: you do need it for debugging and testing your setup, but it's ought to be removed from the tags once you deploy your container. So how do we address this? The answer is - lookup table. Step 1 - go to the Variables menu in your Google Tag Manager Container and make sure 'Debug Mode' is enabled in Built-in Variables. If it's not - press 'Configure' and click the checkbox right next to 'Debug Mode'. Now your GTM can reference this variable. ![create facebook test ID variable in the server GTM](https://cdn.stape.io/i/61a275a20e315999931597.png) ![enable debug mode variable in the server Google Tag Manager container ](https://cdn.stape.io/i/61a278e97ef74059261194.png) Step 2 - create a Lookup Table variable. Select {{Debug Mode}} as input. Now put true for the input and your Test ID as an output. Name your variable (we suggest a simple Facebook Test ID) and hit Save. ![create lookup table variable sGTM](https://cdn.stape.io/i/61a276d13f529033121790.png) Step 3 - Now add your new variable to a tag and it will only use Test ID if GTM is in Debug Mode, otherwise, the variable will be empty and will not cause conflicts in production. ![add facebook test ID to facebook conversion API tag](https://cdn.stape.io/i/61a276f8b1e03596522670.png) Step 4 - enjoy not having to add/remove Test ID infinite amount of times per day. Want to learn more tricks on how to work with Facebook? Check out [this article](https://stape.io/blog/how-to-set-up-facebook-conversion-api) on CAPI errors. Happy Tagging! Got confused? We can help you! Click Get A Quote, fill up the form, and we will answer you right away. --- # Benefits of Stape hosting for server Google Tag Manager Source: https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server Discover Stape's sGTM hosting advantages: power-ups for ad blocker bypass & data enrichment, auto-connect custom domains, autoscaling, API, and more. Setting up server-side tagging might seem tricky at first, but with the right tools, it becomes much easier. You’ll need time and resources to set up a cloud server and learn the basics of server-side tracking. To make things simpler, we created Stape hosting for Google Tag Manager. With Stape, anyone can quickly and easily set up server-side tagging confidently, no matter their technical skill level. With Stape, you can set up tagging server URL in 1 click - it's super simple. Plus, it's a wise financial choice. Stape’s hosting is around five times cheaper than GCP, saving you significant costs without compromising quality. Stape's sGTM hosting concerns more than just its price point and simplicity. It's about the multitude of [benefits of server-side tagging](https://stape.io/blog/benefits-server-side-tagging) it offers, which ensures that anyone, regardless of their technical knowledge, can confidently set up cloud hosting for the [Google Tag Manager server-side](https://stape.io/gtm-server-hosting). But besides its cost and simplicity, Stape has multiple other advantages. In this post, we will cover all the benefits Stape hosting for sGTM offers. Stape as an alternative to Google Cloud Platform (GCP) for server GTM hosting Regarding server-side Google Tag Manager hosting, businesses often compare Google Cloud Platform with Stape, a popular alternative that offers simplicity and cost savings. ![Stape sGTM hosting price vs Google Cloud Run Platform](https://cdn.stape.io/i/673c86bda7c1d038575035.png) Want to learn why Stape is the better choice over GCP for server-side tagging? Check out our blog post for a [detailed comparison and see the advantages Stape offers](https://stape.io/blog/stape-an-alternative-to-google-cloud-platform#pros-and-cons-of-google-cloud-platform-hosting-for-server-google-tag-manager)! More power with Stape power-ups We’re proud of our ever-growing gallery of [Stape power-ups](https://www.linkedin.com/pulse/best-power-upstools-boost-your-tracking-stape-braif/) that make server-side tracking easier and more fun. There is a detailed guide on [understanding Stape power-ups, their key features, and how to use them](https://stape.io/blog/understanding-stape-power-ups-key-features-uses). ![Stape power-ups listed](https://cdn.stape.io/i/673c86d49c6a2252985160.png) Let us give you a quick overview of Stape power-ups and the goals you can reach with them. Bypass adblockers [Custom GTM and GA4 Loader](https://stape.io/solutions/custom-gtm-loader#how-to-set-up-custom-loader) from Stape changes the loading paths of GTM and GA4 scripts to bypass ad blockers and ITPs, ensuring reliable tracking. It is available for all plans. Enrich user data and improve data quality [User ID](https://stape.io/solutions/user-id). It assigns a unique user ID to track actions across devices and sessions for more accurate data. [GEO Headers](https://stape.io/solutions/geo-headers). It adds geographical data (country, region, city, etc.) to event data in your server GTM container for better targeting and segmentation. [User Agent Info](https://stape.io/solutions/user-agent-info). It adds device, OS, and browser details to event data in your server GTM for deeper insights into user behavior. [Google Service Account](https://stape.io/solutions/google-service-account). It connects your GTM server container with Google services like BigQuery and Firestore to enrich and store server-side data. [POAS Data Feed](https://stape.io/solutions/poas-data-feed). It lets you send profit data to ad and analytics platforms, so you can switch to profit on ad spend (POAS) reporting and optimize ad campaigns towards higher-margin products. [Bot Detection](https://stape.io/solutions/bot-detection). It provides an advanced way of [filtering bot traffic](https://stape.io/blog/filtering-spam-in-ga4-with-stape-bot-detection-power-up) by giving every request a score from 0 to 100, so you see how likely it is to be a bot. Traffic between 50 and 75 is marked as suspicious, but we do not block it because not all checked parameters confirm bot behavior. Requests scoring above 75 are blocked (if blocking is enabled), as all parameters point to clear bot activity. [Ad Blocker Info](https://stape.io/solutions/ad-blocker-info). Detect whether a visitor is using an ad blocker by adding a header to each sGTM request. This helps you measure how many users block ads and analyze campaign visibility more accurately. Extend cookie lifetime [Cookie Keeper](https://stape.io/solutions/cookie-keeper). It extends the lifetime of first-party cookies, even in browsers with strict privacy settings, ensuring more reliable tracking. Keep up with privacy and compliance [Anonymizer](https://stape.io/solutions/anonymizer). It anonymizes or removes user data in Google Analytics 4 to comply with privacy regulations like HIPAA. Improve debugging and testing [sGTM Preview Header Config](https://stape.io/solutions/sgtm-preview-header#how-to-set-up-s-gtm-preview-header). It enables better visibility in the sGTM debugger for requests sent from outside web GTM, aiding debugging. Ensure data compatibility [XML to JSON](https://stape.io/solutions/xml-to-json#how-to-get-it-done). It converts XML data from webhooks into JSON format, making it compatible with server-side GTM. Get better tracking and control [Multi Domains](https://stape.io/solutions/multi-domains). It maps multiple subdomains to a single server GTM container, simplifying tracking across various websites. [File Proxy](https://stape.io/solutions/file-proxy). It routes files through your server GTM container for improved control over file hosting and security. [Request Delay](https://stape.io/solutions/request-delay). It delays server-side data requests by up to 2000 minutes, allowing for better control over data flow and timing. [Schedule](https://stape.io/solutions/schedule-requests). It sends data requests on a scheduled basis (e.g., daily or hourly), automating data collection from your server GTM container. [Dedicated IP](https://stape.io/solutions/dedicated-ip). It routes all outgoing requests from your Stape container through one fixed IP address, helpful for tracking consistency or whitelisting an IP. [Block Request by IP](https://stape.io/solutions/block-request-by-ip). Exclude internal traffic or suspicious sources by blocking requests from listed IP addresses before tags fire in the server GTM. You can add up to 30 IPs. [Click ID Restorer](https://stape.io/solutions/click-id-restorer). Bring back identifiers like GCLID (Google Ads) and MSCLKID ([Microsoft Ads](https://stape.io/blog/bing-server-side-tracking)) that may be removed from URLs in Safari and Brave Private modes. Boost SEO and manage bots [Open Container for Bot Index](https://stape.io/solutions/open-container-for-bot-index). It allows bots to access your GTM container, improving SEO by capturing valuable bot interactions. These power-ups offer greater control, data security, and customization for your server-side tracking setup. Auto-connect your custom domain After the container creation, you can easily connect your custom domains via Entri. This is the simplest way to link your custom domain. Check the full [list of supported DNS providers](https://developers.entri.com/provider-list) by Entri. Just log in with your DNS provider credentials and grant Stape one-time permission to connect your custom domain. Once authorized, Stape will handle the rest, ensuring a seamless integration without any manual configuration. This feature saves you time and effort, making the process quick, efficient, and hassle-free. [Why do I need a custom domain?](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container#benefits-of-mapping-a-custom-domain-inside-s-gtm) ![Auto-connect your custom domain](https://cdn.stape.io/i/67767402a5249022008443.png) Access and Billing Stape has two types of accounts: Personal Agency Partner Using Agency and Partner accounts, you can manage and create containers for clients. Let’s say you want to set up server-side tracking for your client and ask a client to add payment. You can do it using a Stape Agency or Partner account, just create a container and send an invite to a client via email. The client can add their billing while you still can manage and set up their container. Agencies and Partners can also opt to pay for their sub-accounts' subscriptions with Billing. To [get an Agency account](https://stape.io/helpdesk/knowledgebase/how-to-convert-standard-account-to-agency-account), you can convert your Standard account. An Agency account can further be [upgraded to a Partner account](https://stape.io/helpdesk/knowledgebase/how-to-become-stape-partner) upon meeting certain criteria. This allows you to [join the Stape partner program](https://stape.io/partner) and show your audience the new way to track users on their site or app. Give them a special link to sign up and earn up to a 40% recurring commission for life. Single Sign-On [Single Sign-On](https://stape.io/solutions/sso) lets your team use the same company login for Stape that they already use at work. Instead of creating a new password, users are redirected to an identity provider each time they sign in. To get access to SSO, simply send a request through your account settings on Stape. Once the setup is complete, Stape switches all accounts with your domain to SSO. Everyone is logged out and will need to sign in again through SSO. If someone with your domain signs in through SSO but doesn’t yet have a Stape account, one is created automatically in the same region (Global or EU) as the master account. N.B.: Shared providers like Gmail are not supported. Account Sharing You can share access to your stape.io account with other people. Once you've shared access, another person will fully access your account. They will be able to view and edit all containers. To share access, click Account Settings → Shared Access → Share Access. ![Share access in Stape account](https://cdn.stape.io/i/673c872402918222339613.png) Autoscaling A flexible Google Cloud environment will autoscale your sGTM from at least 3 to 6 servers. When Google notices that your server GTM needs more resources, it automatically autoscales. sGTM may require more resources for several reasons: traffic to your website may increase, you've updated the server-side tagging setup and are sending more events, etc. Autoscale has both pros and cons. The good thing is that sGTM will receive more space when it needs it and will continue functioning. However, there might be situations when cloud hosting stops working without autoscale, and you need to update it manually. The bad thing is that autoscale means a higher price for sGTM hosting. Three Google servers will cost USD 120, while six will cost around USD 240. On Stape, we autoscale servers when you need them. If our system notices that your server requires more CPU or memory, we add it. If you’ve subscribed to the Pro plan, you will still pay USD 20, server GTM will get more CPU and memory when needed for 3 days. Our billing is connected to requests only. API We're always looking for ways to expand our platform, so we've added [API access](https://api.app.stape.io/api/doc). Account API Key can be found in the Settings section of your account: ![API key in Stape account](https://cdn.stape.io/i/68d11f050cc3b875625716.png) If you are interested in building an integration with Stape and want more information on how it works or what the requirements might be, then just send us an email to support@stape.io No scripts are required to upgrade to the production environment By default, the GCP deployment uses just one server suitable for testing with low traffic. When you're ready to move to production, upgrade to a flexible app engine environment. After the upgrade, Google will provide at least three servers per container for better reliability. Here are two critical things to consider when upgrading from a test GCP deployment to a flexible App Engine environment: Costs. The minimum production setup on Google hosting will cost USD 120 (three cloud servers, each costing USD 40). Stape’s minimum cost is USD 20; for larger sites, we offer the Business plan that costs USD 100. [Our pricing is flexible](https://stape.io/price) to fit every need and budget. Interested in why we are cheaper? We have this blog post describing how [Stape optimizes the cost of the GTM server](https://stape.io/blog/how-much-does-server-gtm-cost). Run shell scripts to upgrade to production. When you decide to upgrade to the production environment, adding a credit card to the Google Cloud is not enough, and you need to run shell scripts manually to upgrade to the production. Plus, some other configurations are required to decrease the costs of hosting the server Google Tag Manager. Stape hosting will do the job for you in less than 30 seconds, making the cloud server upgrade streamlined. All you need to do is click one button in the [stape.io admin](https://stape.io/login). No additional configuration in the server GTM container The default configuration requires modifying Google Analytics 4 clients to load GA from your server URL. You’ll also need to add a Google Tag Manager Web Container client to load gtm.js from a custom subdomain. Loading gtag.js and gtm.js from your tagging server URL will give full advantages to server-side tracking and first-party cookies. Stape hosting does everything automatically. You must add the transport URL to the GA4 and UA tags inside the web Google Tag Manager container. Setting up additional clients or making other configurations in the server Google Tag Manager container is unnecessary. Server zones We have several hosting zones and are constantly expanding server locations. You can find [detailed information about them on our HelpDesk](https://help.stape.io/hc/en-us/articles/6092828307869-What-server-locations-zones-do-you-have). If you have users from multiple locations, you can opt for the [Global multi-zone server location option](https://stape.io/helpdesk/documentation/multi-zone-sgtm-container-hosting). This feature automatically directs incoming requests to the closest available zone determined by the user’s IP address. Faster gtm.js/gtag.js/analytics.js loading time The server GTM container is set up using automatic provision, which takes a long time to load. Stape’s hosting solves this problem by using brotli to optimize the loading speed and using Nginx instead of node.js since Nginx is faster in cached file serve. ![GCP GTM container loading time](https://cdn.stape.io/i/673c88ff1e7b9591848453.png) ![Stape GTM container loading time](https://cdn.stape.io/i/673c890991c65209433627.png) Stape Store The Store is Stape’s built-in database that allows you to write, read, and sync data within the Google Tag Manager server hosted on Stape. It is available for Pro plan users and higher. The functionality and design of the Stape Store are highly similar to Firebase. You can store JSONs of data organized in documents. One MB - the maximum size of one document. ![Stape Store image](https://cdn.stape.io/i/673c892266f24653820732.png) Monitoring Monitoring power-up lets you set custom alerts to track sGTM and server-side tag performance. Alerts notify you when certain conditions are met. Typical uses include tracking 4xx/5xx status codes and event count changes on platforms. Available for Business plans and above. Alert limits per plan: Business/Business+: 5 alerts Enterprise/Enterprise+: 10 alerts Custom: 20 alerts ![Monitoring tab in Stape container](https://cdn.stape.io/i/69bbd11106a95158382090.png) Logs Access logs show the requests received by your GTM server. If request and response logs exist, they can be queried when viewing the logs. Logs are available only for the last 10 days. ![Logs tab in Stape container](https://cdn.stape.io/i/6a01cf14d6b91257185171.png) Stape Analytics https://www.youtube.com/watch?v=4gfY61-lkZo Stape Analytics is a feature of the Stape platform designed to simplify the measurement of server-side tracking performance. The feature can be found in your container in the section Analytic" next to Power-Ups. Stape Analytics is available for everyone who uses [Stape Custom Loader](https://stape.io/solutions/custom-gtm-loader) (a free power-up by Stape that makes GTM scripts more resistant to ad blockers). Stape’s Website Tracking Checker The [Website Tracking Checker](https://stape.io/website-tracking-checker) by Stape is a free tool built to help you spot what’s wrong with your tracking setup and learn how to fix it. In just two minutes, you’ll get a full breakdown of what’s working, what’s missing, and what you can do to optimize it across both web and server-side tagging. ![Report example image](https://cdn.stape.io/i/6842f7fd6d56a875532626.jpg) You don’t need to be technical to use it - simply enter an URL, and we’ll do the rest. The checker scans your site for analytics and advertising scripts, cookie behavior, and SEO-impacting scripts. Based on what it finds, you’ll get a tracking score, categorized feedback, and clear, step-by-step recommendations on how to improve your setup. Whether you're troubleshooting GA4 setups or trying to get better data quality for Meta CAPI - this tool has your back. What the checker reviews: Analytics - checks if platforms like GA4 are implemented using the best practices for the setup. Advertising - reviews how server-side tracking can improve quality for better ad attribution and ROAS. Cookies - audits cookie lifetimes, consent mode configurations, and technical compliance. SEO - detects tracking scripts that slow your site and flags those that can be moved server-side. After the scan, you’ll receive a clear set of personalized recommendations tailored to your current tracking setup. Each recommendation includes a brief explanation and practical steps to implement. ![List of recommended actions for website tracking score improvement](https://cdn.stape.io/i/6825deb550a5c147302555.jpg) Once you’ve followed the suggested improvements, rerun the scan and track your progress. It’s that simple. Bonus? Cleaner tracking setups can lead to: 40% more conversions tracked 35% increase in data accuracy 20% faster website speed Setup Assistant by Stape [Setup Assistant](https://stape.io/gtm-set-up-assistant) is a free tool developed by Stape, designed to make data tracking setup easier. It scans your tech stack and the platforms you use, then generates ready-to-use Google Tag Manager container templates. Once created, these templates are automatically imported into your web and server GTM containers. ![How Setup Assistant works](https://cdn.stape.io/i/68b554dfc5e4a763735496.png) You don’t need to be a technical expert to configure data tracking for your website. With Setup Assistant, the configuration process can take minutes. You can select the tools you use (our solution can create a template for the most popular, such as GA4, Google Ads, Meta, Microsoft, etc.), fill in the necessary fields with data related to your tools, and test the templates in your GTM account. ![Automatically import templates ](https://cdn.stape.io/i/68b5552fb8596927460519.png) Connections The [Connections](https://help.stape.io/hc/en-us/articles/17689950895517-Connections-oAuth-tokens) tab in Container settings lets you easily manage oAuth tokens for Microsoft Advertising, Google Sheets, [Google Ads Offline Conversions](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm), Google Data Manager API, and Meta. Stape simplifies the setup for these platforms with the connections for automatic token refresh. The connections are available on Pro plans and higher. Tokens are color-coded: green for valid, red for expired. ![Connection tab](https://cdn.stape.io/i/69cb81594470d807015975.png) Team of experts Stape has [a team of experts](https://stape.io/care) in server-side tracking to help you get started. Setting up accurate and reliable monitoring can be challenging, so we’re here to help ensure your clients get the best possible results. Our staff has extensive experience creating and managing server-side tracking containers for various businesses, from small startups to Fortune 500 companies. Our support is also available 24/7. Conclusion Stape offers the most cost-effective and user-friendly hosting for Google Tag Manager. It provides a range of powerful features and server-side tagging solutions to simplify your tagging experience. While our server-side GTM hosting is powered by Google Cloud, our automated tools make setup and management a breeze. You can quickly implement server-side tagging for your website without requiring time-consuming manual configurations, allowing you to focus on what matters most. --- # How to create data layer for server-side Google Tag Manager Source: https://stape.io/blog/how-to-create-data-layer-for-server-side-google-tag-manager Learn how to create a data layer for the server-side Google Tag Manager using Google Analytics 4 tag or Data Tag + Data Client. Browser tracking protection mechanisms are getting more robust, 3rd party cookies are blocked by some browsers, Chrome plans to phase out 3rd party cookies by 2022, Apple implemented their tracking restrictions for iOS users. All these changes affected web analytics. We used to consider website tracking a front-end thing, but web tracking is getting more challenging with all the new restrictions. Some say that server-side tracking will become a new standard. One of the easiest and cheapest ways to implement ss tagging is using server Google Tag Manager. After you set up [server GTM hosting](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container), the next question would be how to deliver data to the server-side GTM. Do you need to create a data layer similar to the web container, or is there another way? In this blog post, I want to discuss creating a data layer for the server-side Google Tag Manager. Data layer and data sources for the web Google Tag Manager In the web Google Tag Manager data is collected from the client-side. You use the DOM elements or scrape data from the site using CSS selectors. But in some cases, these methods can be unstable. The golden rule of web GTM tracking is building a reliable data layer. Creating a proper data layer structure and implementing it on the website takes some time, not only for marketers but also for developers. But it’s worth the time. With the data layer, you get more data, and this data is reliable. Check our [end-to-end guide on data layer in Google Tag Manager](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager) for more details. How can you send data to server-side Google Tag Manager? There is a new object added to the server-side GTM; it’s called Client. The Client’s primary purpose is to transform request data into the event data inside the server GTM. How does the Client understand what request to claim and process? It checks the request’s path. For example, Universal analytics sends requests that contain /collect. The Client reviews the incoming HTTP requests path, and if the request path has its “key”, the Client transforms request data to the event data in the sGTM. Another essential purpose of sGTM Clients is to handle outgoing HTTP requests. Once the tag is triggered in the sGTM, the Client sends an outgoing HTTP request to summarize all requests sent by each tag. If there was an error with the tag, you would see the reason for the error if you click on the outgoing HTTP request and scroll down to the response body. Let me show an example. I will use Data Tag/Data Client for it. In the web GTM container, I configured a Data Tag that sends requests to the server container. ![add transport URL Data Tag](https://cdn.stape.io/i/672e0e8ce6193210061846.png) Data Tag requests path contains /data. ![request path data tag](https://cdn.stape.io/i/672e0eb24fa29549953547.png) In the sGTM, I have a Data Client that listens to all requests that have /data in the Incoming HTTP request. ![set up data client accepted path](https://cdn.stape.io/i/672e0ec90df1d845589583.png) There are two tags (GA4 and Klaviyo active on-site) in the server GTM that triggers whenever Data Client is claimed, and the event name is page_vew. Let’s see what happens in the server GTM when it receives an incoming request with /data and event name page_view. Both tags are triggered, and the Data Client sends an outgoing HTTP request. ![tag triggered in the sGTM container](https://cdn.stape.io/i/672e0ee415082052982689.png) ![outgoing http request](https://cdn.stape.io/i/672e0ef16a8e3792648716.png) If you click on the Incoming HTTP requests, you will see what data was sent to the server container. If you click on the Outgoing HTTP request, you will see what information Data Client sent about the execution of the triggered tags. When you click on the event data, you will see what information from the incoming HTTP requests Data Client mapped to the event data. ![event data server google tag manager](https://cdn.stape.io/i/672e0f1409dc2074961583.png) Data layer for server-side Google Tag Manager Data Layer does not exist in the server Google Tag Manager in a way we used to have it in the web Google Tag Manager. You will usually build tags in the sGTM based on the event data and the requested data. Most likely, we won’t be able to switch to server-side tracking only for the next couple of years. In the meantime, a hybrid approach will be used – combining web and server tracking. Some tags will still run on the client-side (either because platforms do not support ss tracking yet, or simply because it can’t be moved to the ss, it relates to tools like HotJar), and other tags will be set up on the server-side. There will be one Tag/Client responsible for sending specific data or the whole data layer from the web to the server GTM container. The scheme below shows how the process of delivering data to the sGTM works. Web GTM has a data layer, UA, and FB pixel use web tracking. Then we have a GA4 server-side tag that is responsible for delivering data from web to server GTM. Based on the data GA4 tag provided to sGTM, we can set up ss Adwords and FB CAPI tags in the server GTM. ![combining web and server google tag manage tagging](https://cdn.stape.io/i/61814e51185d6353403357.png) How to create data layer for server-side Google Tag Manager For me, the two most frequently used methods of sending data from web to server GTM are: Using Google Analytics 4 Using Data Tag/Data Client 1. Send data layer to server GTM using Google Analytics 4. You can send User Properties and Event Parameters from the web to server GTM using GA4. Inside the web GA4 tag, you will see predefined fields for this data, and you can add data layer variables to each parameter individually. ![send data to Server GTM using GA4](https://cdn.stape.io/i/672e0f54efef1354341876.png) Google Analytics 4 and UA have different eCommerce data layer standards ([UA data layer](https://developers.google.com/tag-manager/enhanced-ecommerce), [GA4 data layer](https://developers.google.com/tag-manager/ecommerce-ga4)). So if you have an ee data layer on the site built for UA, make sure you modify it for GA4. The good thing is that you can use variables in the GTM template gallery that convert UA events and variables to the GA4 standards. This option works best if you plan to set up server-side tracking for Google Ads or Floodlight since these two work only based on GA4 tags. 2. Use Data Tag/Data Client to send data layer from web to server GTM. The most significant benefit of using Data Tag/Data Client is that DT automatically sends data layer and other common data from web to server GTM. If you enable two checkboxes, Send common data and Send all from DataLayer, it will parse data in the web GTM and send all information it could find to the server GTM. No need to configure each parameter manually. ![send data to Server GTM using Data Tag Data Client](https://cdn.stape.io/i/672e0f7269339420069086.png) This is how you will see eCommerce data in the sGTM. You can use the event data variable to extract it and use it for server tags, and I have a more detailed post that describes [Data Tag/Data Client](https://stape.io/solutions/data-tag-client). ![data tag event data in the server container ](https://cdn.stape.io/i/61814ea35d720350973014.png) Conclusion Server GTM container does not have something similar to the data layer we used in the web container. But there are several ways of passing event and user parameters or event the whole data layer from the web to server Google Tag Manager. Something's not clear? We're here for you! All it takes is a few simple questions. Click Get A Quote, fill up the form, and we will send you a quote. --- # What platforms support Google Tag Manager server-side tagging Source: https://stape.io/blog/what-platforms-support-gtm-server-side-tracking A list of platforms that support Google Tag Manager (GTM) server-side tagging. Including requirements, documentation, and comments. Server-side tracking technology is a growing trend in website analytics. It allows for improved data analysis, faster website page loads, and more secure user information storage while maintaining accurate tracking. The most popular implementation of server-side tracking so far has been server Google Tag Manager (GTM). More and more vendors have started to support server-to-server tracking and released tags for sGTM. Using these tags, you can share website or app events and user data directly from your server GTM container to the vendor’s server. Since the number of tags for server Google Tag Manager grows fast, it has become challenging to stay updated on which platforms support sGTM. Clients often ask us what tags can be moved to the server-side. When our agency creates a plan for implementing server-side tracking for clients, we use an internal google sheet that has information about what vendors support server-side tagging and what tags exist. In this blog post, I want to share a list of all vendors that support server GTM, consolidate their requirements, instructions, and documentation. I will also share some comments about setting up ss tagging for these platforms. We will try to keep this list up to date. If you know any other vendors that support ss tagging via sGTM and are not added to this article, please let us know in the comments. What platforms support server-side GTM? Tag name | Link to tag | Doc | How to | Comment Google Analytics 4 | server GTM | [Link](https://developers.google.com/tag-manager/serverside/send-data#google-analytics-4) | [Link](https://stape.io/blog/set-up-ga4-server-side-tracking) | Google recommends using GA4 as a data source for the server GTM container. SS GA4 is required if you want to set up ss tracking for Google Ads or Floodlight. Google Ads Conversion Tracking | server GTM | [Link](https://developers.google.com/tag-manager/serverside/ads-setup) | [Link](https://stape.io/server-side-conversion-tracking-in-google-ads-adwords) | All ss measurement for Google Ads products relies on the GA4 Config tag in your web container to send data. It is required to have ss GA4 and Conversion Linker before setting up ss Google Ads. Google Ads Remarketing | server GTM | [Link](https://developers.google.com/tag-manager/serverside/ads-remarketing-setup) | [Link](https://stape.io/server-side-conversion-tracking-in-google-ads-adwords) | All ss measurement for Google Ads products relies on the GA4 Config tag in your web container to send data. It is required to have ss GA4 and Conversion Linker before setting up ss Google Ads. Conversion Linker | server GTM | [Link](https://support.google.com/tagmanager/answer/7549390) | [Link](https://stape.io/server-side-conversion-tracking-in-google-ads-adwords) | Conversion Linker is used to help measure click data so that conversions are tracked accurately. In most cases, you should use the built-in All pages trigger for this tag. Floodlight Counter | server GTM | [Link](https://developers.google.com/tag-manager/serverside/fl-setup) | | All ss measurement for Floodlight tags relies on the GA4 Config tag in your web container to send data. Floodlight Sales | server GTM | [Link](https://developers.google.com/tag-manager/serverside/fl-setup) | | All ss measurement for Floodlight tags relies on the GA4 Config tag in your web container to send data. Facebook Conversion API | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) | [Link](https://developers.facebook.com/docs/marketing-api/conversions-api/) | [Link](https://stape.io/how-to-set-up-facebook-conversion-api) | FB tag can inherit data from any server GTM client, or you can use it for setting up each event, product, and user parameter manually. With inherit option, the tag automatically parses event data and sends recognized parameters to FB CAPI. FB recommends using both web and server tracking, and in this case, [event deduplication is required](https://stape.io/how-to-set-up-facebook-event-deduplication-in-google-tag-manager). TikTok Events API | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/tiktok-tag) | [Link](https://ads.tiktok.com/marketing_api/docs?rid=q442fp0md9d) | [Link](https://stape.io/how-to-set-up-tiktok-events-api) | Sends server events to TikTok, automatically transforms required user data to lowercase and hash using SHA256. Using both web and server tracking is impossible since deduplication is not supported. ActiveCampaign | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/activecampaign-tag) | [Link](https://help.activecampaign.com/hc/en-us/articles/207317590-Getting-started-with-the-API#getting-started-with-the-api-0-0) | [Link](https://stape.io/how-to-integrate-activecampaign-with-the-website-using-google-tag-manager-server-container) | Tag connects with ActiveCampaign API and sends event and user data to your ActiveCampaign account. It allows to: track events, create or update contact, create or update contacts + track events Klaviyo | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/klaviyo-tag) | [Link](https://developers.klaviyo.com/en/docs/guide_to_setting_up_api_based_website_activity_events) | [Link](https://stape.io/set-up-klaviyo-website-event-tracking-using-server-google-tag-manager) | Klaviyo tag for sGTM communicates directly with Klaviyo API and allows: adding new contacts, tracking user activity on-site, sending events and parameters Mailchimp | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/mailchimp-tag) | [Link](https://mailchimp.com/developer/transactional/api/allowlists/) | [Link](https://stape.io/connect-your-website-to-mailchimp-using-google-tag-manager-server-container) | Mailchimp requires using the MD5 hash of the lowercase version of the contact’s email address for API calls. The tag allows: tracking events, creating or updating contacts, creating or updating contacts and tracking events Slack | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/slack-notification-tag) | [Link](https://api.slack.com/apis) | [Link](https://stape.io/send-slack-notifications-using-google-tag-manager-server-container) | Use this tag to send notifications to the Slack channel when any actions on the site trigger. Telegram | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/telegram-notification-tag) | [Link](https://core.telegram.org) | [Link](https://stape.io/send-notifications-to-telegram-using-google-tag-manager-server-container) | Sends notifications to the Telegram channel when any actions on the site trigger. Sometimes we use this tag (or slack) to test ss tracking on mobile devices. HubSpot | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/hubspot-tag) | [Link](https://legacydocs.hubspot.com/docs/overview) | [Link](https://stape.io/how-to-connect-website-with-hubspot-using-server-side-tracking) | Hubspot tag allows: creating new contacts, updating existing contacts, tracking custom behavioral events Snowplow | [Link](https://tagmanager.google.com/gallery/#/owners/snowplow/templates/snowplow-gtm-server-side-tag) | [Link](https://github.com/snowplow/snowplow-gtm-server-side-tag) | [Link](https://github.com/snowplow/snowplow-gtm-server-side-tag) | Tag forwards events to a Snowplow collector. You can use SnowPlow Client or any other client that serves the standard events model. Firestore Writer | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-writer-tag) | [Link](https://firebase.google.com/docs/firestore/quickstart) | [Link](https://stape.io/blog/write-data-to-firestore-from-server-google-tag-manager) | Firestore Writer tag allows: reading and writing data to Firestore, returning an array of Firestore documents that match specified query conditions. Snapchat Conversion API | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/snapchat-tag) | [Link](https://businesshelp.snapchat.com/s/article/conversions-api?language=en_US) | [Link](https://stape.io/blog/snapchat-capi) | Allows sending custom and standard events to Snap servers. Tag automatically normalizes and hashes user parameters (plain text email, mobile identifier, IP address, and phone number). It supports event deduplication. Stape handles Access Token refresh using Firestore. Awin | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/awin-tag) | [Link](https://wiki.awin.com/index.php/Server_to_Server_Tracking) | [Link](https://stape.io/blog/awin-server-to-server-tracking-using-server-google-tag-manager) | Set up Awin server-to-server conversion tracking. Tag allows storing the awc URL parameter inside the awin_awc cookie and firing the purchase event with all needed parameters. Twilio SMS | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/twilio-tag) | [Link](https://www.twilio.com/docs/voice/sdks/javascript/v1/quickstart#maincontent) | [Link](https://stape.io/blog/how-to-send-twilio-sms-using-server-google-tag-manager) | Helps to send SMS using sGTM. You should have an active Twilio account with SMS functionality to set up this tag. Taboola | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/taboola-tag) | [Link](https://help.taboola.com/hc/en-us/articles/115006850567-How-to-Track-Conversions-Using-Server-to-Server-Integration-S2S-) | [Link](https://stape.io/blog/taboola-server-side-tracking-using-server-google-tag-manager) | Enables more accurate results, faster website page speed, and better data control. With the help of stape's Taboola tag for the server Google Tag Manage container, you can quickly implement Taboola s2s integration. Outbrain | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/outbrain-tag) | [Link](https://www.outbrain.com/help/advertisers/server2server-integrations/) | [Link](https://stape.io/blog/outbrain-server-to-server-tracking-using-sgtm) | On Pageview event tag stores Outbrain Click ID parameter inside the outbrain_cid cookie. Conversion tag sends a request to the post back URL with specified conversion event data. Impact | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/impact-tag) | [Link](https://impact.com/partnerships/get-more-efficient-and-grow-your-business-with-impact-apis/) | [Link](https://stape.io/blog/how-to-set-up-impact-server-to-server-conversion-tracking) | On a page view event Impact server-to-server stores the {clickid} URL parameter inside the impact_cid cookie. On a conversion event tag sends request with data about the conversion to the Impact. Refersion | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/refersion-tag) | [Link](https://www.refersion.dev/reference/webhook-tracking) | [Link](https://stape.io/blog/how-to-set-up-refersion-tag-using-google-tag-manager) | Refersion s2s tag stores the rfsn URL parameter inside the refersion_rfsn cookie on a pageview event. When the Conversion Refersion tag triggers, it send a request with data about the conversion to the Refersion. Xandr | [Link](https://github.com/stape-io/xandr-tag) | [Link](https://docs.xandr.com/bundle/invest_invest-standard/page/topics/server-side-conversion-pixels.html) | [Link](https://stape.io/blog/how-to-set-up-xandr-tag-using-server-google-tag-manager) | There are two types of events that Xandr tag supports: PageView and Conversion. PageView event stores the token URL parameter inside the xandr_token cookie. Conversion event sends the HTTP request with the specified conversion data to Xandr. Twitter conversion API | [Link](https://github.com/stape-io/twitter-tag) | [Link](https://developer.twitter.com/en/docs/twitter-ads-api/measurement/web-conversions/conversion-api) | [Link](https://stape.io/blog/twitter-conversion-api-tag-for-sgtm) | Send custom or standard events and use web+server or server tracking only. Rakuten | [Link](https://github.com/stape-io/rakuten-tag) | [Link](https://rakutenintelligence-api.github.io/server-side-authorization/) | [Link](https://stape.io/blog/rakuten-server-to-server-tracking) | Rakuten s2s tag stores the siteID, ranMID, ranEAID, and ranSiteID URL parameters inside the rakuten_site_id, rakuten_time_entered, rakuten_ran_mid, rakuten_ran_eaid, rakuten_ran_site_id cookies on a page view event. On a conversion event, it sends event data together with coookies to Rakuten. Mixpanel | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/mixpanel-tag) | [Link](https://developer.mixpanel.com/reference/overview) | [Link](https://stape.io/blog/mixpanel-tag-for-server-google-tag-manager) | Mixpanel tag for sGTM can help you with these action types: Track, Alias, Reset. Each action type of the Mixpanel tag has its own set of additional settings. Attentive | [Link](https://github.com/stape-io/attentive-tag) | [Link](https://docs.attentive.com/) | [Link](https://stape.io/solutions/attentive-tag) | Track events using sGTM. You should have a message program at Attentive with SMS functionality to set up this tag. Pinterest Conversion API | [Link](https://github.com/stape-io/pinterest-tag) | [Link](https://s.pinimg.com/ct/docs/conversions_api/dist/v3.html) | [Link](https://stape.io/blog/pinterest-conversion-api) | Supports event deduplication, standard and custom events, real-time server event testing. Does not require Access Token. You should use only a Pinterest advertiser ID. You can send event and product data. Supabase | [Link](https://github.com/stape-io/supabase-writer-tag) | [Link](https://supabase.com/docs/guides/auth/server-side-rendering) | [Link](https://stape.io/blog/supabase-writer-tag-for-server-google-tag-manager) | Write any data from server GTM to Supabase. Return an array of Supabase documents that match specified query conditions. Roq.ad | [Link](https://github.com/stape-io/roq-ad-tag) | [Link](https://github.com/stape-io/roq-ad-tag) | [Link](https://stape.io/solutions/roqad-tag) | Send events to Roq.ad trough server Google tag Manager container. Sendgrid | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/sendgrid-tag) | [Link](https://docs.sendgrid.com/for-developers/sending-email/integrating-with-the-smtp-api) | [Link](https://stape.io/blog/sendgrid-tag-for-server-google-tag-manager) | SendGrid tag for sGTM allows sending messages from SendGrid using the server Google Tag Manager container interface. Mailgun | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/mailgun-tag) | [Link](https://documentation.mailgun.com/en/latest/) | [Link](https://stape.io/blog/mailgun-tag-for-server-google-tag-manager) | Send emails in bulk or deliver transactional emails. Brevo | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/brevo-tag) | [Link](https://github.com/stape-io/brevo-tag) | [Link](https://stape.io/blog/brevo-tag-for-server-google-tag-manager) | Brevo tag allows tracking page view, events, link clicking and identifying the user. Voyado | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/voyado-tag) | [Link](https://github.com/stape-io/voyado-tag#voyado-tag-for-google-tag-manager-server-container) | [Link](https://stape.io/blog/server-to-server-voyado-tracking-using-server-google-tag-manager) | You can track cart changes and product view, track purchases and identify the users by setting a cookie with ContactId or email. CJ | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/cj-tag) | [Link](https://github.com/stape-io/cj-tag) | [Link](https://stape.io/blog/cj-server-to-server-tracking-using-sever-google-tag-manager) | Enjoy all the advantages: increased pagespeed, better protection and control of the data, a better understanding of results from affiliate marketing, and much more. Adform | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/adform-tag) | [Link](https://github.com/stape-io/adform-tag) | [Link](https://stape.io/blog/adform-tag-for-server-side-google-tag-manager) | To simplify the Adform integration process, we have developed an Adform tag specifically for server-side Google Tag Manager. Piwik Pro | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/piwik-pro-tag) | [Link](https://github.com/stape-io/piwik-pro-tag) | [Link](https://stape.io/blog/how-to-set-up-piwik-pro-tag-using-server-google-tag-manager) | Thanks to Piwik Pro Tag, you can easily integrate Piwik into your server-side Google Tag Manager. The integration of Piwik Pro into server will bring a lot of benefits compared to client-side. Webgains | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/webgains-tag) | [Link](https://github.com/stape-io/webgains-tag) | [Link](https://stape.io/blog/webgains-server-to-server-conversion-tracking) | You can optimize the process of tracking conversions with unparalleled accuracy and efficiency. Microsoft Ads Offline Conversions | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/microsoft-ads-offline-conversion-tag) | [Link](https://github.com/stape-io/microsoft-ads-offline-conversion-tag) | [Link](https://stape.io/blog/microsoft-ads-bing-offline-conversion-tracking) | It can close the gap between the online and offline activities, providing valuable insights and enabling businesses to make data-driven decisions. LinkedIn | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/linkedin-tag) | [Link](https://github.com/stape-io/linkedin-tag) | [Link](https://stape.io/blog/linkedin-conversion-api-tag-for-server-google-tag-manager) | The LinkedIn Conversion API tag, developed by Stape for server-side Google Tag Manager (sGTM), provides a seamless way to enhance your LinkedIn advertising campaigns. Matomo | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/matomo-advanced-tag) | [Link](https://github.com/stape-io/matomo-advanced-tag) | [Link](https://stape.io/blog/matomo-server-side-tracking) | Using Matomo’s Tracking HTTP API, stape’s Matomo tag sends HTTP requests to your Tracking URL with the data you've specified in the tag. Reddit | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/reddit-tag) | [Link](https://github.com/stape-io/reddit-tag) | [Link](https://stape.io/blog/reddit-conversion-api-tag-for-server-google-tag-manager) | [Reddit Conversion API](https://stape.io/blog/reddit-conversion-api-tag-for-server-google-tag-manager) Tag for a server Google Tag Manager will help you gain valuable insights into your Reddit marketing efforts and optimize your strategies accordingly. Nextdoor | [Link](https://github.com/stape-io/nextdoor-tag?tab=readme-ov-file) | [Link](https://docs.metarouter.io/docs/nextdoor-capi) | [Link](https://stape.io/blog/nextdoor-server-side-tracking) | Nexrdoor CAPI tag provides precise data tracking to help you improve Nextdoor ad campaigns. It supports all the standard events, and you can also set custom ones. Quora | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/quora-tag) | [Link](https://www.quora.com/ads/conversion_api_doc) | [Link](https://stape.io/blog/set-up-quora-tag-using-server-gtm) | Quora CAPI tag developed by Stape supports the same events as Quora Pixel but provides higher data quality unaffected by ad blockers and browser restrictions. ShareASale | [Link](https://github.com/stape-io/shareasale-tag) | [Link](https://help.shareasale.com/hc/en-us/articles/14823182812567-What-tracking-solutions-does-ShareASale-offer-to-accurately-track-sales) | [Link](https://stape.io/blog/shareasale-analytics) | ShareASale tag allows you set up server-side tracking for this platform and monitor the conversions more precisely. Yelp | [Link](https://github.com/stape-io/yelp-tag) | [Link](https://docs.developer.yelp.com/docs/conversions-api) | [Link](https://stape.io/blog/yelp-gtm-tag-setup) | Yelp CAPI tag allows you to track data more precisely and gain more control over the data. It supports the same events as Yelp Pixel and you can also set the custom events tracking. PipeDrive | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/pipedrive-tag) | [Link](https://developers.pipedrive.com/docs/api/v1) | [Link](https://stape.io/blog/pipedrive-gtm-tag-setup) | Track data more accurately with the help of the PipeDrive tag for server GTM. The tag communicates with PipeDrive API to get the data about contacts and/or your leads. Salesforce | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/salesforce-tag) | [Link](https://developer.salesforce.com/docs/apis) | [Link](https://stape.io/blog/salesforce-gtm-tag-setup) | Improve data accuracy with the Salesforce tag for server GTM. This tag interacts with the Salesforce API to retrieve information about your lead events. GoHighLevel | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/gohighlevel-tag) | [Link](https://help.gohighlevel.com/support/solutions/articles/48001060529-highlevel-api) | [Link](https://stape.io/blog/gohighlevel-gtm-tag-setup) | Create new contacts with the help of the GoHighLevel tag developed by Stape. New feature coming soon: tracking events. Admitad | [Link](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/admitad-tag) | [Link](https://developers.admitad.com/knowledge-base/article/api-applications_1) | [Link](https://stape.io/blog/admitad-gtm-tag-setup) | Track conversions using Stape’s Admitad tag and take advantage of seamless server-side tracking. Adtraction | [Link](https://github.com/stape-io/adtraction-tag) | [Link](https://adtractionapi.docs.apiary.io/#introduction/response-codes-and-statuses) | [Link](https://stape.io/blog/adtraction-server-side-tracking) | Track pageviews and/or conversions using Adtraction tag for server GTM container. Sendlane | [Link](https://github.com/stape-io/sendlane-tag) | [Link](https://www.postman.com/sendlane/sendlane-s-public-workspace/documentation/xl7jbbs/sendlane-api) | [Link](https://stape.io/blog/sendlane-server-side-tracking) | Sendlane tag allows building integration between the website and the Sendlane platform. Track events and add a new contact to the list using Stape’s tag. AdRoll | [Link](https://github.com/stape-io/adroll-tag) | [Link](https://docs.sprighub.ai/etl/adroll-api-documentation/) | [Link](https://stape.io/blog/adroll-server-side-tracking) | AdRoll tag allows building website-AdRoll platform integration. Track standard events (such as pageviews, purchases) and set custom ones. Need help? Just tell us what the problem is. Click Get A Quote, fill up the form, and we will send you a quote. --- # How much does server GTM cost and why Stape is cheaper than Google Cloud Run Source: https://stape.io/blog/how-much-does-server-gtm-cost Stape offers cost-effective server-side GTM hosting, starting at $20/month. Compared to Google Cloud, it provides optimized servers, secure data handling, and easy setup. In 2020, Google released the new version of Google Tag Manager - server-side. [Server-side tracking has many advantages over client-side tracking](https://stape.io/blog/benefits-server-side-tagging), among them: more precise data (server-side tracking allows bypassing ad blockers and browser restrictions) faster website load (with sGTM, you don’t need to use third-party codes) data control (easy to comply with GDPR, CCPA, or CSP). However, Server GTM is not yet as popular as a web container. The main obstacles preventing people from implementing server GTM are that configuring sGTM requires more profound knowledge than the web and its price. In this blog post, we want to talk about the price of server Google Tag Manager hosted on Google Cloud. Why Stape’s hosting for server GTM is cheaper and how we secure our user’s data. How much does the server Google Tag Manager cost? The bad news is that Google does not yet have an online calculator that estimates prices for you. The good news is that you can use [Stape’s calculator](https://stape.io/price-server-google-tag-manager#calculator) on the pricing page. ![Calculator in Stape](https://cdn.stape.io/i/66bf462d37a40793619822.png) Our calculator will help to calculate the price if you host at Stape. What about the cost of hosting at GCP? Let’s take a step back and check Google’s official documentation on what resources Google Cloud Run requires. Google recommends having at least 3 servers in a production environment to reduce the risk of losing data due to a server outage. [Each server is a Google Cloud Run instance with 1 vCPU, 0.5 GB memory, 10 GB disk in the Flexible environment](https://developers.google.com/tag-manager/serverside/script-user-guide). In a flexible environment, Google can autoscale from 3 to more servers if they see the need. They expect that 3-6 servers will handle 50-200 requests per second. Each server costs approximately $40 / month, so the production environment’s monthly price would be a minimum of 3*$40=$120. For websites with higher traffic volume and number of tags, Google Cloud will autoscale to 5-6 servers, leading to $240-$300 a month. Additional costs may arise if you do not disable logging when deploying server GTM. By default, all requests will be recorded, and it may add around $100 for 500 000 requests. Stape | Google Cloud Platform Free plan if you have 10,000 requests per month. | Minimum price is $120/month. Wide range of plans for high-traffic websites to avoid overpaying ($20 - $300/month). | For websites with higher traffic and tags, the price will increase to $240-$300/month. No additional costs if you have a paid plan (500,000 requests cost only $20/month). | Logs will cost an additional $100 for 500,000 requests. Variety of power-ups, templates for sGTM (tags, variables). | Why is Stape’s hosting cheaper than Google Cloud Run? We host Stape.io servers on Google Cloud and on Scaleway for the EU. There are two main reasons why Stape is cheaper than Google’s Cloud Run: We pay for the Google Cloud servers in bulk and in advance. If you buy multiple servers and for a long time (more than a year), servers cost less. We optimize our servers for working with server-side GTM where Google Cloud Run servers are optimized to work with any kind of software. There are many ways to optimize the server’s costs, and most likely, sGTM users won’t bother doing it themselves. Global server locations: US Center (Iowa) US East (South Carolina) US West (Oregon) EU West (Belgium) EU North (Finland) EU North (England) EU Center (Germany) AP East (Singapore) AP South (India) SA East (Brazil) SA West (Chile) AU East (Australia) CA East (Canada) ME Center (Qatar) JP Center (Japan) EU server locations: EU South (Italy) EU North (Netherlands) EU East (Poland) EU Center (France) Can you use the testing configuration of Google Cloud in production? The default deployment or test GCP environment uses a single server and, in most cases, is free. But there are several circumstances when costs may occur: Your billing account is not new and is already linked to another project. In other words, you can have only one test GCP environment for one billing account. The number of requests exceeds the free tier limits. Users often exceed the free tier limit, and server tracking stops working. In this case, you may see a drop in analytics reports, as in the screenshot below: ![sGTM is down](https://cdn.stape.io/i/670cc985ebacf084610481.png) Google does not recommend using a Test GCP environment on production. And they even named it a Test environment and not a Free environment. What could else go wrong with the test environment? The test environment uses one instance, and the most common problem is that this instance stops working. To make it work, you should either wait or log in to the Google Cloud and fix the problem. Another reason is sGTM updates. If you use a test environment with one instance, then this instance will be down for the period when it’s running an update. On the other side, with three servers in production, they will be updated one by one, which means you won’t lose any data. One of the most widely spread misunderstandings with test GCP is that some people think that adding a credit card to Google Cloud automatically updates the setup to the production environment. But it’s not true. To upgrade from test to production, you need to run the shell script. Assuming all these reasons, I would not recommend using the test Google Cloud environment in the production of server GTM. The main reason is the chances that one server will be down is very high. And when it’s down, your tracking won’t work. How does Stape.io calculate requests? We count any request sent to your Google Tag Manager Server container. It includes all script loads like gtm.js, analytics.js, gtag.js, etc. The number of requests highly depends on your website traffic and the number of tags. We take into account the number of events in GA4 (“Event count”) and whether you use additional non-GA4 clients. To make it easy to estimate the price of server-side tracking at Stape, we created a [handy calculator](https://stape.io/price). What about Stape’s data security? Stape does not store or process any data from your containers. All we do is automatically set up a tagging server for you when you create a container in our hosting. Stapes’s physical infrastructure is hosted and managed within Google Cloud secure data centers and utilizes the Google Cloud Platform technology. GCP provides built-in protection and a global network that Google uses to protect your information, identities, applications, and devices. All GTM Server containers are isolated from one another for security purposes. Stape uses Google Kubernetes Engine with recommended security settings to ensure that access is appropriately restricted for all customers. Conclusion Server Google Tag Manager is a great way to control your data and stay compliant with regulations. But it can also be expensive, especially when you consider the hosting costs for servers that are necessary to run server Google Tag Manager. The minimum price of a production environment on Google Cloud will be $120/month, and it can grow up to $250-$300 for websites with a higher volume of traffic and tags. Stape’s hosting offers the same setup at just $20/month and has [a variety of plans](https://stape.io/price) according to your website traffic. Using Stape, you can set up a tagging server for your sGTM in a couple of minutes, and it does not require any technical skills. We can set up server-side tracking for you! All it takes is a few simple questions. Click Get help, fill up the form, and we will send you a quote. --- # How to set up Meta Conversions API Gateway Source: https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway Set up Meta CAPI quickly with the CAPI Gateway. The tool simplifies server tracking, allowing even non-technical users to connect pixels and improve measurement. Step 1. Stape account 1. Create an account at Stape: Visit our [registration page](https://stape.io/fb-capi-gateway/create). Enter your email and Conversions API Gateway name. Choose Conversions API Gateway server location. We offer several server locations: the United States, Europe, South America, and Asia Pacific, Asia Northeast. Click the button Create. ![Create Conversions API gateway in Stape](https://cdn.stape.io/i/65f17ab208dab061721326.gif) 2. But, if you already have an account at Stape: [Log in](https://stape.io/login). Click FB CAPI Gateways in the main menu and Create CAPIG on the top right. Add the Conversions API Gateway name and the email address you'd like to use for managing the Conversions API Gateway environment. Select the server location. ![Create Conversions API gateway in Stape account](https://cdn.stape.io/i/65f198dbbcd01942378298.gif) Step 2. Subscription plan Choose the Conversions API Gateway subscription you’d like: Pay as you go. $10 per month per pixel. Unlimited. $100 per month for 100 pixels. You can also start with a 7-day free trial for both subscription plans. Step 3. Finish registration Add Billing details. You should have been sent an email invitation to create an account in the CAPIG hub to the email address you provided during registration on stape. If you haven't received the email, please log in to your stape account, access CAPIG, and click on "Finish CAPIG Setup" located in the top right corner. Create an account in the Meta Conversions API Gateway hub by adding an email address and password. ![Finish registration of Conversions API Gateway in Stape](https://cdn.stape.io/i/65f1aa8b75135289566937.gif) You will see your own Conversions API Gateway environment, where you can manage Conversions API for your pixels and domains. Step 4. Connect your Pixel 1. All you have to do is click a button that says "Add data source". ![Add data source](https://cdn.stape.io/i/67d197996d81b217824350.png) 2. You have two options to add a data source to your Gateway Hub: Use Facebook Login (long) Manual connection (fast) Use Facebook Login (long) ![Use Facebook Login](https://cdn.stape.io/i/67d19577c3169412461972.png) Follow the steps: Click Connect. There will be a pop-up window where you need to proceed with the connection. Log in to your Facebook account Select “Trust this device” ![Trust this device](https://cdn.stape.io/i/67d1959170fec913585951.png) Allow Facebook to use cookies and other technologies. ![Allow Facebook to use cookies and other technologies](https://cdn.stape.io/i/67d195a56aa80715733858.png) Select your business account or the business account you have access to. ![Select your business account or the business account you have access to](https://cdn.stape.io/i/67d195bd6faad072095356.png) Select the pixel you want to add. Data source is added. Give the integration up to an hour, and you will see the first events the Gateway Hub will receive. Manual connection (fast) ![Manual connection (fast)](https://cdn.stape.io/i/67d195d9f09b2582730493.png) Fill in all the fields shown in the screenshot (use the hints if you are not sure where to get all the values). Click Connect. The data source has been added. Wait up to an hour for integration; after this, you see the first events received by the Gateway Hub. Please consider enabling Automatic advanced matching. It will increase the match quality of events. If you enable Automatic advanced matching, click Show customer information parameters and select the parameters you want to share. ![Automatic advanced matching](https://cdn.stape.io/i/66cefac5bf682945573298.jpeg) Step 5. Optional: add custom domain Using a custom domain or data routing within your CAPI Gateway hub can boost measurement performance. The data routing feature lets you specify the subdomain through which the pixel communicates with the Conversions API Gateway. Your custom domain should mirror the subdomain of the primary domain used for firing the Facebook pixel. For instance, if your website is example.com, then your CAPI Gateway custom domain should be capig.example.com. 1. Click Data Routing on the left menu. 2. Click Optimize. 3. Write down the subdomain and domain names. Click Continue. 4. Next step will require you to define DNS settings for the custom domain. Ensure you can make changes through the DNS provider before proceeding. ![Add custom domain in your CAPIG](https://cdn.stape.io/i/670e37a03c955747705152.gif) 5. Log in to your DNS provider and set records. Below is an example of DNS setup for CloudFlare. On the account home page next to your domain name click three dots and choose “Configure DNS”. ![Select Configure DNS in Cloudflare](https://cdn.stape.io/i/67d2c3702f54f662613612.png) Click "Add record". ![Click 'Add Record'](https://cdn.stape.io/i/67d2c38d5dddb570821045.png) If you use Cloudflare, the settings should look like on the screenshot. ![Example of DNS record](https://cdn.stape.io/i/670e37c856e8a142824526.png) Step 6. Optional: Add new pixels. Log in to your [Stape account](https://stape.io/login). Choose your Gateway container. Find your Conversions API Gateway URL and log in. Click Add data source and select the pixel. ![Add new pixels to your Conversions API Gateway environment](https://cdn.stape.io/i/670e3895c32d7480407592.gif) Step 7. How the finished setup looks like. You will see your Meta Pixel in the Conversions API Gateway interface. ![Meta Pixel in the Conversions API Gateway interface](https://cdn.stape.io/i/66cefaf224782453779792.jpeg) Step 8. Test your setup. Within 30 minutes of connecting your pixel to the CAPIG hub, you should notice that the event count is no longer zero, and you should also see the names of the events that have been received. ![Meta Pixel in the Conversions API Gateway interface](https://cdn.stape.io/i/66cefb191a0df124950248.jpeg) You can also verify that events are sent correctly to the CAPIG hub by checking the website console: Open your website’s console. Check that events were sent to your Conversions API Gateway URL (look at the screenshot below). If you use the default Conversions API Gateway URL, then it will be the url of CAPI GW, for example, http://capig.stape.biz/. ![Send events to your CAPIG and check website console](https://cdn.stape.io/i/6502c25963eb6825427579.png) [Video guide] How to create Meta CAPIG from scratch! Create Meta Conversions API Gateway from scratch https://www.youtube.com/watch?v=OhQpU3jOgwc Related: [Facebook Ads conversion tracking](https://stape.io/blog/facebook-tracking). Alternatively, you can set up your tracking with a server GTM container. Check out the [difference between the sGTM container and a gateway setup](https://stape.io/blog/sgtm-vs-gateways) in our blog article. Frequently Asked Questions 1. Why isn't the Conversions API Gateway seeing my events? Stape's Conversions API Gateway hosting is a server instance in the GCP cloud environment, which sends web events through a reliable server-to-server connection to Meta. Every time the Meta Pixel is fired from the browser, the events will be sent to Meta Pixel and Conversions API through a secure connection. If you see the inconsistency of web and server events, ensure no additional integration might send data to either Meta Pixel or Conversions API, such as third-party apps, plugins, integration through the Google Tag Manager, etc. 2. Are there any limits for the subscription plans you offer? You get up to 10 million events for $10/month and up to 200 million events on a $100/month plan. 3. Why am I seeing a 404 error in the console after configuring the data routing subdomain? It might take up to 30 minutes to process new DNS settings. First, please ensure that the DNS settings you've set up are correct. You can use [this tool](https://toolbox.googleapps.com/apps/dig/) to verify DNS settings. For example, if you use Cloudflare, the settings should look like the screenshot below. ![Meta Conversions API Gateway data routing settings ](https://cdn.stape.io/i/63d26f2f429f5699679048.png) Meta Conversions API Gateway data routing settings 4. Should I configure event deduplication when using Meta Conversions API Gateway? Event deduplication is set up automatically. Event_id deduplication key is automatically generated and propagated to help ensure deduplication between both channels (web and server). 5. Why does gtm-msr.appspot.com send data to my Conversions API Gateway? gtm-msr.appspot.com is a default domain of the Google Cloud Platform. After you've linked pixel to Conversions API Gateway, please make sure to stop Conversions API integration that was set up via server Google Tag Manager. 6. How to increase event match quality for Meta Conversions API Gateway? To increase the Event Match Quality score for Meta Conversions API Gateway, you should enable Automatic Advanced Matching while connecting the pixel to the CAPIG hub. To define which user parameters you want to share with Meta, click Show customer information parameters and enable those you want to share. ![Increase event match quality for Meta Conversions API Gateway](https://cdn.stape.io/i/673e08ef86c93342267838.png) 7. What CAPIG server locations do you have? We offer several server locations: the United States, Europe, South America and Asia Pacific. 8. How can I structure CAPIG? 1. Use one email for all of your clients. In this case, you must connect multiple pixels for one CAPIG hub and use one custom domain. 2. You can make an [agency account](https://help.stape.io/hc/en-us/articles/6092802128413-Agency-vs-standard-account) and create accounts for each of your clients with its own CAPIG with their email. This way, you will have a custom domain for each website or pixel. We also offer an option of private multiuser Meta Conversions API Gateway hub: - With an isolated multi-account cluster, you can ensure optimal data routing for each website, enable advanced matching, attribute more conversions, and improve ad relevance. - Predictable price. Pay flat a fee of $500 each month for up to 1 billion requests. - Select from up to 25 server locations. - Connect an unlimited number of pixels located in the different Facebook Business Managers. - Manage access for each account/website individually. Alternatively, you can set up your tracking with a server GTM container. Check out the [difference between the sGTM container and a gateway setup](https://stape.io/blog/sgtm-vs-gateways) in our blog article. Conclusion The Meta Conversions API Gateway offers a simple solution for establishing server-side tracking through Meta. Say goodbye to the hassle and expense of complicated configurations. With CAPI Gateway, you can have it up and running in under a minute, even if you're not tech-savvy. Ready to give CAPIG a try? [Start a 7-day free trial](https://stape.io/fb-capi-gateway/create) today! Start 7-day free trial The easy way to implement Meta Conversions API Gateway with no manual tagging. --- # Debug incoming webhooks in Google Tag Manager server preview Source: https://stape.io/blog/debug-webhooks-google-tag-manager-server This guide will show how you can send requests to the server GTM using webhooks, how to see and test webhook data in the server GTM debugger. One of the ways to use [server-side GTM](https://stape.io/gtm-server-hosting) tracking is to send data directly from your server endpoint — the Google Tag Manager server container. This way, you can avoid using front-end code and JavaScript. This guide will show you how to send requests to the GTM server using webhooks, how to see and test webhook data in the server GTM debugger. What are webhooks? Webhooks are one of the ways websites or apps can interact with each other. By using webhooks, you can send real-time data from one application to another whenever the event occurs. This exchange happens via webhook URL. A webhook URL is provided by the receiving application and acts as a unique identifier that the other application can call when an event occurs. Let’s say you use Stripe to accept payments on your site. Webhooks is one of the ways Stripe can interact with your CRM to send information about the new charges to the CRM. Another popular way of using webhook is to create a new user in the database when a user fills out a contact form on the website. How can you use webhook in server-side tracking? Let’s say you want to use pure server-side tracking without using the GA script as a data source for the server container. How can you do that? Where will the server container take data from? One of the ways is to send data to the SGTM directly from your CRM. To do this, you can use webhooks. The tricky part starts when you want to test and see data from incoming requests in the server preview. You can see the requests in the server preview mode either because of cookies (gtm_preview, gtm_auth, gtm_debug) or HTTP preview header. Using 3rd party cookies is not an option when you want to use webhooks. The only alternative to see incoming webhook in the server GTM is the X-Gtm-Server-Preview HTTP header. What are the main benefits of using stape.io to set up and debug webhooks to server GTM? We added a new feature to the stape.io admin console that adds Server Preview Header and helps to debug incoming HTTP requests. The logic works like this: you use your server tagging URL inside the webhook URL and add a request path. At the same time, you should add the server GTM preview header in your Stape admin console. After the preview header and webhook URL are set up, you can test incoming webhooks. You should use the data client as a processor for the incoming webhook requests. It all may sound complicated, but I have a detailed description below. It was created based on a WordPress webhook. This webhook triggers when the user fills out a contact form and sends contact form details to the server container. How to set up and debug incoming webhooks in the server Google Tag Manager 1. [Create and set up a Google Tag Manager server container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Open the GTM server preview mode and copy the X-Gtm-Server-Preview HTTP header. Click three dots in the top right corner -> Click Send requests manually -> Copy the X-Gtm-Server-Preview HTTP header. ![X-Gtm-Server-Preview HTTP header](https://cdn.stape.io/i/618a65c8c0fa1364320118.png) 3. Open your stape.io account -> Click settings on the right side of the container for which you want to set up a webhook -> Click preview header config -> Paste the X-Gtm-Server-Preview HTTP header that you’ve copied in the previous step -> Click save. Note: The X-Gtm-Server-Preview HTTP header is a dynamic value; it may be changed in a couple of days. Before testing the webhook, make sure that you’ve added an updated preview header. Once you’re done testing the webhook, make sure you remove the HTTP preview header from the stape.io admin console. ![Use sGTM Preview header config](https://cdn.stape.io/i/69f20db0a5ed1554726865.png) ![Preview token](https://cdn.stape.io/i/69f20dde312b5194944212.png) 4. Copy tagging server URL inside your stape.io account. ![tagging server url in your container](https://cdn.stape.io/i/6461fab70f5c4066441508.png) 5. Create a webhook. In this example, I will create a WordPress webhook that sends requests every time a contact form is submitted. This request contains form data. I’ve added a webhook name and webhook URL. The webhook name chooses whatever value you want. The webhook URL should contain a Tagging Server URL that you’ve copied from the Stape admin and request path. In my case, it’s /wp-contact-form. Save the webhook. For [WooCommerce server-side tracking](https://stape.io/blog/woocommerce-server-side-tracking), webhooks are also used for order events like Purchase and Refund, so the same preview logic helps check the data before publishing. ![webhook url](https://cdn.stape.io/i/618a65f77f0f9746218453.png) 6. This step will configure a client who will listen to the webhook’s incoming requests. First of all, download [Data Client from GitHub](https://github.com/stape-io/data-client?swcfpc=1) -> Open the GTM server container templates tab -> Click new in the Clients section -> Click on the three dots in the top right corner -> Click import -> Select the zip file you downloaded from GitHub. When done, publish Data Client. It needs to be published for the first time when you add it. ![webhook requests](https://cdn.stape.io/i/618a6603427e5322677340.png) 7. Create a new client -> Type Data Client -> Click More Settings -> Add additional paths. It should be the path that you’ve added to the webhook URL in step 4. In my case, it’s /wp-contact-form. ![Data Client](https://cdn.stape.io/i/6720a6e86891f872029973.png) 8. Open the preview mode of the GTM server container and test your webhook. In my case, I’ve filled out a contact form on the test site. Go back to the preview. You should see the Incoming HTTP Request with the request path you’ve added to the webhook URL. This request should be claimed by the Data client. Then, go to the events tab and check what event data you received. You can use event data in the server container. ![data client request](https://cdn.stape.io/i/618a661c72a2b958333137.png) ![event data](https://cdn.stape.io/i/618a66276a57c600556716.png) 9. When you’re done testing, do not forget to remove the HTTP preview header and publish the server container. Conclusion: Using webhooks is an excellent way to set up server-side tracking. You can utilize webhooks when other methods are impossible (like webhooks from payment processors like Stripe or PayPal)or when you want to avoid using browser tracking and utilize on-server tracing. With stape.io, using webhooks and debugging will be easier because we built a feature that allows testing webhook requests using the HTTP preview header from the GTM server. If you’re interested in setting up server-side tracking for your website, do not hesitate to contact us. --- # Avoid Google Tag Manager and GA4 blocking by ad blockers Source: https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers Discover how ad blockers interfere with Google Tag Manager and GA4, and how server-side tracking with Stape's Custom Loader ensures reliable data collection. Ad blocking is in no way a one-way street, and the impact of tracking script blocking extends far beyond just advertisements. Many have been made about ad blocking apps and extensions these days, but what do they really do for users? One reason why people might consider installing adblokers on their device or browser is because of annoying ads and pop-ups that appear on the sites. But not only ads can be affected by ad blockers. In this post, we will discuss how ad blockers can affect tracking scripts of Google Tag Manager and Google Analytics 4. We will also show how to avoid tracking scripts being blocked by ad blockers using [server GTM and GA4 server-side tagging](https://stape.io/stape-gateway). This post is not encouraging anyone to track users without their permission. You should always respect user decisions and ask for their consent before firing any tracking scripts. Some people might use GTM for non-tracking purposes (like implementing schema markup or adding a chat on the site). If GTM is blocked, it might negatively impact organic rankings or customer experience. Why are ad blockers and intelligent tracking prevention the most popular reasons for data discrepancy? Lately, the functionality of ad blockers has expanded. Now they not only block advertising banners but also the analytics scripts (including Google Analytics) and marketing (Meta, Google Ads, etc.), leading to the loss of crucial data for any business. AdBlock technology works based on shared lists called filter lists, which determine which content should be blocked or hidden and which content can be shown on the visited pages. These lists are lists of URLs that belong to either allowed lists or blocked lists. According to [PageFair Adblock Report 2020](https://f.hubspotusercontent10.net/hubfs/4682915/Adblock%20Reports/Blockthrough%20Report%202020.pdf): 527M people worldwide were using ad blockers for mobile browsers, a 64% increase from the last edition of the report (i. e. from December 2016). 236M people were blocking ads on desktop. Another study shows that in 2020 26.5% of US citizens used ad blockers. This number grows by 1% each year starting from 2017. It means that your Google Analytics is losing around 27% of data about your website users. ![Analytics on ad blocking](https://cdn.stape.io/i/6762959fb6a17127628621.png) Do ad blockers block Google Analytics and Google Tag Manager Ad blockers are software or browser extensions that can alter or remove advertising content from websites. It can block advertising, tracking, and other content using different methods. One of the methods is by targeting the URL where this content originated. By default, most ad blockers prevent only ads from being shown. It can be done either by knowing the URL of the advertising network (because of a specific database of URLs that is part of advertising networks) or using the names of tags in the code. The default setup of the ad blockers won’t hurt Google Analytics 4 or Google Tag Manager. They will block only ads on the page that the user visits. But users can adjust settings and ask ad blockers to remove any tracking scripts. In this case, Google Tag Manager won’t work. It means that all scripts added inside the Tag Manager won’t work. If you add Google Analytics 4 scripts outside of Google Tag Manager, it will be blocked as well. In the past few years, more and more people have been using ad blockers to escape advertisements. Since advanced settings of ad blocker can affect GTM, your tags will be affected too. People might not even know that when they enable the advanced setting of ad blockers, they might block, for example, the ability to contact support via chat on the site. How to avoid GTM and GA4 blocking by ad blockers One of the best ways to prevent GA4 and GTM blocking is moving to the server GTM container. We are saying “best” because, with server-side tagging, you will have many other benefits, not only ad blockers and ITP prevention. During the last several years, most people who work with the websites were using a web GTM container. The latter is well-known and is used on a significant number of websites. The [difference between server and web containers](https://stape.io/blog/server-side-tagging-versus-client-side-tagging) is in the loading method. The server container loads pixels from the server, and the web container loads pixels in the browser. The main advantages of moving from the web to the server container are: Preventing impact of ad blockers and Higher website visitors data security Greater control over data that allows adjust tracking settings to be So, to avoid GTM and GA4 blocking with the help of server-side tracking, you need to follow the steps below: Custom Loader https://www.youtube.com/watch?v=bs4wkdYtfqo Enhanced ad blocker protection is a setting inside the Custom Loader power-up, not a standalone feature. To turn it on, you'll first need to set up Custom Loader for your container — the toggle is simply one of the options you'll configure along the way. How to configure Custom Loader power-up Using Custom Loader with GTM Environments Ad Blocker Info While Custom Loader helps to minimize the impact of ad blockers and ITP, [Ad Blocker Info](https://stape.io/solutions/ad-blocker-info) power-up shows you who’s using ad blockers. It adds an X-user-adblocker header on every sGTM request and returns true if ad blockers are used and false if not. You’ll see what portion of your users hide ads so that you can adapt your marketing strategy. Note: Ad Blocker Info can only be used once the Custom Loader is set up. Conclusion Google Tag Manager is not a tracking tool by design and can be used for many other purposes other than tracking user behavior on the site. That is why blocked GTM can negatively impact not only Google Analytics 4, Facebook, or any other tracking tool but can go far beyond it. In this case, server-side tracking is a handy tool that helps avoid GTM and GA4 blocking by ad blockers. Check these blog posts if you want to implement server-side tagging for your site: 1. [How to set up Google Tag Manager server container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. [How to set up server Google Analytics 4.](https://stape.io/blog/set-up-ga4-server-side-tracking) 3. [How to set up Facebook Conversion API.](https://stape.io/blog/how-to-set-up-facebook-conversion-api) If you have any questions about setting up the server GTM container on your website, do not hesitate to contact us by [submitting a request](https://help.stape.io/hc/en-us/requests/new). --- # Send data from CRM to Facebook Conversions API using webhooks Source: https://stape.io/blog/send-data-from-crm-to-facebook-conversion-api-using-webhooks Track offline conversions by sending CRM data to Facebook Conversions API via webhooks. Easily set up with GTM server containers for accurate attribution. The Facebook Conversions API is a powerful tool that allows you to track your website's visitors and their activity on your site. This data can then be used to create custom audiences, test out different versions of ads, or even provide insights into who might be interested in the product. The Google Tag Manager server container is the most widely used method for integrating the Facebook Conversions API. However, there are other options available, such as using Zapier, direct integration, CRM integrations, and more. There are many Facebook Conversions API integration methods, each with pros and cons. You can check out our article explaining [how to set up Facebook CAPI using a GTM server container](https://stape.io/how-to-set-up-facebook-conversion-api). This blog post describes how you can send data from your CRM to the Facebook Conversions API using webhooks. The benefits of integrating CRM with the Facebook Conversions API How people interact with your business can be difficult to fully understand using just the Facebook Pixel. While the Facebook Pixel helps track user behavior and attribute more conversions to Facebook ads, it doesn't give the complete picture of the customer journey. Companies may receive a decent number of offline orders or leads. For instance, purchases may be initiated online but completed in-store or through a call center. The Facebook Pixel tracks online activity through the web browsers your customers use when they visit your website. In contrast, the Conversions API, when integrated with your CRM, allows you to send activity data directly from your CRM. This gives you greater control over the types of activity you can measure both online and offline. Most popular cases of using CRM webhooks to send data to Facebook CAPI One of the most popular use cases for integrating CRM with Facebook CAPI is tracking purchases from phone calls. Some people may see your ad on Facebook and click on the ad, but then they might have some questions about products or services. That is why they may contact your business and make purchases over the phone. In this situation, Facebook significantly impacted a user's purchase decision. But it will never be attributed to any of your campaigns. Integrating CRM with Facebook will give you more information about what campaigns and ads drive conversions, including offline conversions. The second use case involves tracking purchases that are confirmed by the client separately. In this case, you can send webhooks whenever the order status is updated to "confirmed." Another popular way of using webhooks is to track payments from PayPal or Stripe. If a purchase happened on PayPal or Stripe's domain, you can't access the user and product data, hence you can't send it to FB. The easiest way to track PayPal or Stripe transactions on Facebook is using webhooks. Stape Conversion Tracking CRM apps for sending data from CRM to Facebook The Stape Conversion Tracking CRM apps create an integration between your CRM and the Meta platform. They transmit data on lead status updates to the platforms you need through a secure, server-side connection (configured via Meta CAPI Gateway, Signals Gateway, or a server GTM container). By sharing insights into lead actions after ad interactions, Meta can better analyze user behavior and identify audiences most likely to convert into customers. In addition, the apps for HighLevel and HubSpot CRMs can create [Customer Match Lists in Google Ads](https://stape.io/blog/customer-list-google-ads). The data from the list can then be used for Smart Bidding and campaign optimization. Learn more about these apps and how to set them up in our configuration guides: [Configure Zoho CRM](https://stape.io/blog/meta-zoho-crm-conversion-tracking-app) [Configure HighLevel CRM](https://stape.io/blog/integrate-meta-highlevel-crm-conversion-tracking-app) [Configure Pipedrive CRM](https://stape.io/blog/pipedrive-crm-conversion-tracking-app) [Configure HubSpot CRM](https://stape.io/blog/hubspot-crm-conversion-tracking-app) [Configure Salesforce CRM](https://stape.io/blog/salesforce-connector)https://stape.io/blog/hubspot-crm-conversion-tracking-app How to send Webhooks from CRM to Facebook Conversions API 1. [Set up a Google Tag Manager server container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Copy the tagging server URL in the stape.io admin console. 3. Create a webhook. Paste this tagging URL in the Delivery URL of your webhook and add a path that will differentiate this particular webhook from the other webhooks. Webhooks can be set up in various ways, depending on your system. This can be done on your backend, or perhaps your CRM/CMS system supports the webhooks you need. The best approach is to reach out to your developer to help you set this up properly. The webhook should be triggered when a record in your database transitions to the desired status (e.g., purchase, or hot lead). It needs to be in JSON format and sent to the URL of your container (e.g., /data or /any_path which you add in Data Client, as described in the next section). The webhook should include as much user data as possible (such as email, phone, and other relevant details) along with conversion data that can be used for your campaigns or remarketing. At a minimum, the webhook should include the value and currency parameters to ensure accurate CPA/ROAS tracking and other similar metrics. In our case, it's: Tagging_url https://ottpwgmj.eu.stape.io Path: /order_created ![Webhook data advanced](https://cdn.stape.io/i/671a12393325d621675146.png) 4. Open the preview mode of the GTM server container → Click three dots at the top right corner → Click Send requests manually → Copy the X-Gtm-Server-Preview HTTP header. ![X-Gtm-Server-Preview HTTP header](https://cdn.stape.io/i/671a125458696724716633.png) 5 Log in to your stape.io account → Click Power-ups on the right side of the container → Click sGTM Preview header config → Paste the X-Gtm-Server-Preview HTTP header that you’ve copied in step #4. ![sGTM Preview header config power-up](https://cdn.stape.io/i/680f338caca22471605799.png) 6. In this step, we will set up a Client in the GTM server container that will listen to the requests sent by the webhook. First of all, download [Data Client from GitHub](https://github.com/stape-io/data-client?swcfpc=1) → Open Templates tag in the GTM server container → Click new → Import Data Client → Click save and publish the server container. It is required to publish a data client the first time you add it. Otherwise, you'll see a CORS error in the console. ![Import Data Client](https://cdn.stape.io/i/671a129fcfbb9107544928.png) 7. Set up a Data Client. Open a Client tab → Click New → Select type Data Client → Open More Settings → Add the webhook path that you’ve added in step 3 → Save. ![Client configuration](https://cdn.stape.io/i/671a12dd17bcc551402738.png) 8. Open the GTM server preview mode and trigger the action that sends the webhook to the URL of your container. Now you should see that Data Client claimed a webhook request. Click the Event Data tab, and you will see the webhook data. ![Request data tab](https://cdn.stape.io/i/671a130a08310455467375.png) ![Events data tab](https://cdn.stape.io/i/671a13201c1db401143651.png) 9. In preview mode, under the Event Data tab, you can see all the available data in the webhook. For each variable you want to use to set up the Facebook Conversions API, follow these steps: open the Variables tab → New variable → Variable type Event Data → Set up event variables for each variable you want to use to set up the Facebook Conversions API. ![Create variables](https://cdn.stape.io/i/671a133a981fd167780587.png) 10. Set up Facebook Conversions API for the webhook that you've created. Create a new tag → [Tag the Facebook Conversions API](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) → In the Setup Method, select override → Select the event name → Add the parameters you want to send to the FB API. ![Facebook Conversions API for the webhook](https://cdn.stape.io/i/671a135185d14857229479.png) 11. Set up a trigger for this tag. In our case, the FB purchase will trigger when the request path equals /order_created and Client Name equals Data Client. ![Trigger configuration](https://cdn.stape.io/i/671a136691293190007004.png) 12. Test Facebook CAPI tag. ![Tag details](https://cdn.stape.io/i/671a137c97243712471703.png) ![Facebook CAPI tag](https://cdn.stape.io/i/671a13997f2eb749862772.png) 13. If everything worked correctly, remove Preview Header that you've added on step #5 from the stape.io admin and publish changes you’ve made in the GTM server container. If you have any issues with the FB CAPI tag, check this blog post on [how to debug your setup](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration). Conclusion Data from your CRM system can be sent to the Facebook Conversions API using webhooks, without needing any coding skills. This is done through the Google Tag Manager server container. This means the data from your CRM can serve as a valuable source for Facebook custom audiences and conversions. With Stape.io, you can easily test webhooks in the Google Tag Manager server container. Got confused? All it takes is a few simple questions. Click Get help, fill up the form, and we will send you a quote. --- # Create a user profile and track website activity in Klaviyo using server Google Tag Manager Source: https://stape.io/blog/create-a-user-profile-and-track-website-activity-in-klaviyo-using-server-google-tag-manager This blog post will show how to create a user profile and track website activity in Klaviyo using server Google Tag Manager. Email marketing is one of the most important aspects of any eCommerce site. It’s essential to keep your database updated and track user activities on-site in order to make sure that you are targeting an accurate audience with relevant content, which will lead them back into purchasing from your online store. So how do you keep your Klaviyo user profiles updated? This guide will show how to create a new customer profile and track website activity in Klaviyo with the help of the server Google Tag Manager. What is the user profile in Klaviyo Klaviyo creates one profile for each person. If integrated into your website, you can see how each Klaviyo profile interacted with your site and their respective activity timeline, including emails, opened or clicked on, website visits, events, parameters, etc. Klaviyo also provides relevant contact information, which gives more clarity about the user. All this information can give you hundreds of angles for segmenting. You can use the profile’s website activity and event to build behavior-based email sequences and insert custom parameters into the email template. All possible only if you have robust integration with Klaviyo. ![Klaviyo user profile ](https://cdn.stape.io/i/61940888a1df8335797506.png) How to create a new profile in Klaviyo using server Google Tag Manager 1. Create and [set up a server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Send required data from the Web GTM container to the server container. It is crucial to send user emails to the server container since you must create a user profile in Klaviyo. There are two ways on how to send data to server GTM: – [Using GA 4 server-side configuration](https://stape.io/blog/set-up-ga4-server-side-tracking). – [Data Tag and Data Client](https://stape.io/solutions/data-tag-client). I’ll use a Data Tag/Data Client in this guide since Data Tag can store user data in local storage or cookies. 3. Use server GTM template gallery to add [Klaviyo server tag](https://tagmanager.google.com/gallery/?swcfpc=1#/owners/stape-io/templates/klaviyo-tag). ![Add Klaviyo tag](https://cdn.stape.io/i/692da1d3c7e29667699382.png) 4. Create a new tag in the server GTM → Tag type Klaviyo → Add your Klaviyo Private API key ([how to find Private API key](https://help.klaviyo.com/hc/en-us/articles/115005062267-How-to-Manage-Your-Account-s-API-Keys#find-your-api-keys1)) → Add variable with user email → Suggest enabling “Store email in cookies” → Add a trigger. ![Klaviyo tag configuration example](https://cdn.stape.io/i/692da1ede4abd475007100.png) 5. Test the setup. You should see that the [Klaviyo tag](https://stape.io/blog/set-up-klaviyo-website-event-tracking-using-server-google-tag-manager) fired in the server GTM, a new Klaviyo profile was added and Active on Site tracked. ![Klaviyo tag details profile](https://cdn.stape.io/i/618a612c0c617879478025.png) ![New Klaviyo profile](https://cdn.stape.io/i/618a61363bd45413336849.png) A more flexible way to connect Klaviyo to your server-side setup The guide explains how to create Klaviyo customer profiles and capture website activity using a sGTM container. However, it isn't the only way to connect Klaviyo with your server-side tracking setup. If you're using Signals Gateway or Conversions API Gateway (CAPIG), you can integrate Klaviyo with the [free Stape Conversion Tracking app](https://marketplace.klaviyo.com/en-us/apps/01jvvwp56xj2439aaw4zhsa1q4/). With this solution there is no need to configure a server GTM container. The app automatically processes CRM events from Klaviyo and sends them to your connected marketing and advertising platforms. Note: If you already use a server GTM container, the Stape Conversion Tracking app can work based on your existing implementation. Instead of replacing your setup, it routes Klaviyo CRM events through your current server-side infrastructure. To get started, follow the [setup guide for the Stape Conversion Tracking app for Klaviyo](https://stape.io/helpdesk/documentation/klaviyo-stape-conversion-tracking-app). Which server-side implementation should you choose? The right solution depends on how much flexibility you need and how you plan to use your customer data. [Signals Gateway](https://stape.io/meta-signals-gateway) – a quick way to launch server-side tracking. The solution will work best if you need to send data from Klaviyo to a few different platforms. [CAPIG](https://stape.io/fb-capi-gateway) – best for businesses that primarily rely on Meta. It provides an easy way to send server-side conversion data to Meta through the Conversions API without maintaining a server GTM environment. [Server GTM](https://stape.io/gtm-server-hosting) – the most advanced and customizable option. In addition to creating Klaviyo profiles and tracking website activity, it lets you enrich events, transform incoming data, build custom workflows, and connect multiple marketing and analytics platforms from a single server-side setup. Conclusion Using server Google Tag Manager gives you tons of benefits. If we are talking only about Klaviyo, the main advantage is using the sGTM interface to create a new Klaviyo user profile and track website activity. Though you can use web GTM to track user activity, many users complain that the Klaviyo JavaScript slows down their site. Creating a new user profile is not even possible in web GTM. If you need help setting up server Google Tag Manage, reach out to stape’s care team via [care@stape.io](mailto:care@stape.io)! We are happy to advise on best practices when it comes to using. --- # Set up TikTok server-side tracking with TikTok Events API Source: https://stape.io/blog/tiktok-server-side-tracking This article will describe how to use the TikTok events API. You will learn about what it is and why you need it for accurate event tracking. TikTok is the hottest social media app with over 1 billion monthly active users. That is why most marketers decide to bring it into their advertising strategies. People use TikTok on their mobile phones more than anywhere else. For quite a while, only Facebook was talking about Apple’s recent privacy updates. Only this time, new iOS tracking restrictions will also apply to TikTok ads. Because of the iOS restriction, TikTok custom audiences and events do not include people who opted out of tracking in iOS 14. How can you make TikTok tracking more accurate? The answer is server-side tracking. This article will describe how to set up the [TikTok events API](https://stape.io/tiktok-events-api-gateway) using Google Tag Manager. What is TikTok server-side tracking? TikTok server-side tracking is a method of sending event data from your server directly to TikTok, instead of relying on browser-based pixel tracking. Rather than firing the TikTok pixel in the user's browser, your server collects the event data and forwards it to TikTok's Events API. This makes tracking more reliable and resistant to ad blockers, browser privacy restrictions, and iOS tracking limitations. What is the TikTok Events API? TikTok Events API is a server-side integration that allows you to send website or app events from your server directly to the TikTok server. It works similarly to the TikTok pixel. You can use TikTok Events API to send conversion events, collect custom audiences, dynamic product ads, campaigns optimization. TikTok events API is a server-side integration that allows you to send website or app events from your server directly to the TikTok server. It works similarly to the TikTok pixel. You can use TikTok events API to send conversion events, collect custom audiences, dynamic product ads, campaigns optimization. How to set up TikTok Events API https://youtu.be/PNUpy8wsdeI What are the main benefits of TikTok server-side tracking? TikTok API events have the same benefits and are very similar to server-side tracking solutions from other platforms. Check our earlier posts about [FB Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api), and [server-side GA4](https://stape.io/blog/set-up-ga4-server-side-tracking). Here are the main benefits of using TikTok Events API: 1. Accurate event tracking. With server-side tracking, you will be able to collect more events. TikTok events API is resistant to ad blockers, ITPs, and other tracking restrictions. This way, you can increase the accuracy of [conversion tracking of your campaigns](https://stape.io/blog/tiktok-conversion-tracking). It will give you a better understanding of what campaigns are converting and bring more sales. 2. Better custom audience quality. Since tracking won’t be blocked, your custom audiences will include all users. 3. Data security. Server-side tracking allows you to control what data is sent and how it’s processed, helping align with privacy regulations like GDPR or CCPA.​ 4. Privacy controls. Keep your marketing efforts intact with rapidly evolving privacy requirements that let you adapt what data you share and when you share it. 5. Enriched data. You can send additional data to TikTok, for example, from your CRM. Use this data to have a better understanding of campaign performance or building custom audiences. What are the main disadvantages of TikTok server-side tagging? Even though server-side tracking is a fantastic new technology, it has its disadvantages as well. 1. More complicated integration. Server-side tracking (SST) works in a slightly different way than browser tracking. That is why it may take quite some time to integrate it with your site. The best way to set up TikTok events API or server-side tracking for any other platform is using the Google Tag Manager server container. BTW we can help. 2. It requires a cloud server and additional cost. To set up SST, you will need to configure a cloud server that you will use to send requests to different data points. 3. It is still new. TikTok Events API is a new technology, which means that we should expect more updates to come. That is why you’ll need to stay on top of all the upcoming changes. How does TikTok server-side tracking with the TikTok Events API work? TikTok Events API works similarly to Facebook Conversions API. TikTok uses Click ID and user data to match events with TikTok users. The more user data you send to TikTok, the higher the chances of attributing the events to their users. TikTok Events API has the same features and browser events. It can be used to create audiences, measure conversions, and optimize TikTok algorithms. Starting February 28, 2022, TikTok supports event deduplication. Now, you can use both pixel and Events API, similarly to Facebook CAPI. If you want to send events from both browser and server, ensure you add event_id. Every time someone clicks on the TikTok ad, a Click ID (ttclid) is added to the URL. That is a unique identifier that is valid for 30 days. You can store the TikTok click ID (ttclid) and share it back to the TikTok events API that will help to attribute events to your campaigns. To increase TikTok API events match quality score, you can send user data, such as email, phone number, user ID, user IP, and user agent. All user information should be transformed to lowercase and hashed using SHA256 on the client-side. Besides user data, you can send properties, objects and event parameters. TikTok recommends using the Pixel and Events API together. This allows for better signal quality and supports deduplication, which prevents duplicate counting of events sent from both browser and server. Ways to set up TikTok Events API There are two ways to set up the TikTok Events API: Events API Gateway and using the server GTM. In the section below, we consider both methods in detail. TikTok Events API Gateway Stape's [TikTok Events API Gateway](https://stape.io/tiktok-events-api-gateway) is the newest and simplest solution for implementing the TikTok Events API. It allows you to skip the complexities of configuring event deduplication and avoid spending excessive time on tagging. It allows you to send user parameters and events directly from the server while also supporting multiple Pixels in a single instance, even across different Business Manager accounts. ![TikTok Events API Gateway](https://cdn.stape.io/i/673f143fd70c7418569897.png) It works in minutes — set up the TikTok Events API without the need for manual server-side tagging implementation. With the TikTok eAPI Gateway, you can immediately enhance the accuracy of conversion tracking and attribution. TikTok Events API via sGTM Stape’s TikTok Events API tag allows you to send website or app events from your cloud server to TikTok’s Events API using a secure, structured connection. You can collect custom audiences, create dynamic product ads, and optimize campaigns. It requires technical knowledge for setup and configuration, including managing infrastructure such as server hosting and permissions. ![Stape’s TikTok Events API tag](https://cdn.stape.io/i/673f141f8f4b9731728224.png) Key features of TikTok Events API tag setup: Full flexibility to customize and integrate multiple server-side tags (not just TikTok). Allows advanced configurations, such as combining data from various sources and enriching event data before sending them to TikTok. Useful for businesses already using server-side Google Tag Manager for other platforms like Meta or Google Ads. Requires ongoing maintenance and monitoring. Key features of TikTok Events API Gateway setup: Fully hosted and managed by Stape. Automatically handles server-side conversion tracking and event delivery to TikTok. Provides reliability and scalability without setting up a separate GTM server container. Less flexibility compared to GTM for custom implementations or adding multiple tags beyond TikTok. Comparison table | TikTok eAPI tag | TikTok eAPI Gateway Setup complexity | More complex configuration, you need web and server GTM containers. | Easier to set up. Ability to set up server-side tracking for other platforms | More flexible, enabling setup for [various platforms](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). | Setup is possible only for TikTok. Price | Depends on the number of requests, check the [calculator](https://stape.io/price-server-google-tag-manager#calculator) to see the price for your website. | 10$/month for each Pixel or 100$/month for 100 Pixels. What tracking method should you choose? TikTok Events API tag suits best for: Businesses with in-house technical expertise or dedicated support teams. Advanced users who want full control over their tracking setup. TikTok Events API Gateway suits best for: Small to medium businesses or advertisers running TikTok ads and looking for a quick and efficient way to enable server-side tracking. Users who want a ready-to-go solution without deep technical involvement. How to set up TikTok Events API Gateway Before you begin, ensure that TikTok web tracking is already configured on your site, whether it's implemented through a GTM container, embedded directly in the website code, or integrated via a plugin. This setup allows you to use existing web events. 1. Create a TikTok Events API Gateway on Stape 1.1. [Create an account](https://stape.io/sign-up) or [log in](https://stape.io/login) to Stape. Click on “Create Gateway” in the TikTok section. ![Create an account or log in to Stape](https://cdn.stape.io/i/680b59c04ad05508242182.png) 1.2. Write in the gaps: Gateway name. You can create a random name. Admin email. This email will be used to manage your TikTok Events API Gateway and can be different from your Stape account email. It should be unique for each Gateway. Server location. Select a location closer to your website visitors. Click “Create TikTok Events API Gateway”. ![Click “Create TikTok Events API Gateway”.](https://cdn.stape.io/i/680b59ead134c351261299.png) 1.3. Choose a subscription plan. Stape offers: 7-day free trial. Pay as you go plan - 10$/month per Pixel. Ultimate plan - 100$/month for 100 Pixels. ![Choose a subscription plan. Stape offers](https://cdn.stape.io/i/680b5a1003807467154418.png) 1.4. Wait till the status of your gateway is “Running”. ![Wait till the status of your gateway is “Running”](https://cdn.stape.io/i/685e945c9842b617285972.png) 2. Connect your Pixel 2.1. Click on “Finish TikTok Gateway setup”. You will be redirected to the login interface of TikTok Gateway. ![Click on “Finish TikTok Gateway setup”.](https://cdn.stape.io/i/680b5a9950a83474657749.png) ![Click on “Finish TikTok Gateway setup”.](https://cdn.stape.io/i/680b5accecb37930110886.png) 2.2. In the Events API Gateway hub click on “View details” and then - “Connect Data Source”. ![View details in TikTok Events API Gateway hub Tenant list](https://cdn.stape.io/i/680b5aef29a13775393200.png) ![View details in TikTok Events API Gateway hub Tenant list](https://cdn.stape.io/i/680b5b1d712d3422426710.png) 2.3. Choose the account and Pixels you’d like to connect and confirm your choices. ![Choose the account and Pixels you’d like to connect and confirm your choices](https://cdn.stape.io/i/680b5b3c4dee8696746831.png) 2.4. You will see the added pixel in your dashboard. ![You will see the added pixel in your dashboard](https://cdn.stape.io/i/680b5bc64322c327240952.png) 3. [Recommended] Add custom domain Using a custom domain in your TikTok Events API Gateway can improve measurement performance. It allows you to choose the subdomain for the Pixel's communication with the Events API Gateway. This custom domain should match the subdomain used for firing the TikTok Pixel. 3.1. Click “Settings” on the menu. Push the button “Set up domain”. ![Click “Settings” on the menu. Push the button “Set up domain”.](https://cdn.stape.io/i/680b5c8a4daa5937519274.png) 3.2. Choose domain and receive DNS records to configure. ![Choose domain and receive DNS records to configure](https://cdn.stape.io/i/680b5bfd149e6792818309.png) ![Choose domain and receive DNS records to configure](https://cdn.stape.io/i/680b5c0b1687e393604571.png) 3.3. Log in to your DNS provider and set records (if you use Cloudflare, the settings should look like on the screenshot). ![Log in to your DNS provider and set records ](https://cdn.stape.io/i/680b5c2a74b3c465707279.png) 3.4. And that’s it! You’ve successfully set up your subdomain. 4. [Recommended] Load TikTok JS from your subdomain This will help you increase the protection of your events from ad blockers. After validating your Data routing domain you will see a link that you can use to download TikTok JS on your site. Click on “View base code” and copy the snippet. ![Click on “View base code” to download TikTok js snippet](https://cdn.stape.io/i/680b5d5d6bc11612506721.png) ![Click on “View base code” to download TikTok js snippet](https://cdn.stape.io/i/680b5d910eb3b921753026.png) 5. [Optional] Add new Pixels You can use a single TikTok Events API Gateway to set up multiple TikTok Pixels. Additionally, Pixels from various TikTok Business Accounts can be connected to the same Events API Gateway, provided you have admin access to all the Pixels. The process is straightforward: configure your TikTok Events API Gateway, then add new Pixels through the hub interface. Simply click on “Connect data source”. ![Connect data source](https://cdn.stape.io/i/680b5dcc03b26825162297.png) 6. Test your setup As mentioned before, TikTok Events Gateway uses web events to route them via the server. 6.1. Within 30 minutes of connecting your pixel to the TikTok eAPI Gateway hub, you should notice that the event count is no longer zero, and you should also see the names of the events that have been received. ![TikTok Events Gateway](https://cdn.stape.io/i/680b5dec702c8133142573.png) 6.2. You can also verify that events are sent correctly to the TikTok Events APIG hub by checking the website console: Open your browser developer network tab on your site. Check that events were sent to your Events API Gateway URL (look at the screenshot below). ![Check that events were sent to your Events API Gateway URL (look at the screenshot below)](https://cdn.stape.io/i/680b5e3d45a77532682437.png) How to set up TikTok events API via server GTM? Starting February 28, 2022, TikTok supports event deduplication: You can combine web and server tracking for TikTok. If you do so, please ensure to add event_id to web and server tags. Our TikTok events API supports deduplication, as well as event_id variable supports the TikTok standard of event_id. Guide bellow describes setting up only TikTok events API, without pixel events or deduplication. 1. [Create and set up Google Tag Manager server container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send required data to the server container. We have blog posts that describe two methods: [sending data using server-side GA4 configuration](https://stape.io/blog/set-up-ga4-server-side-tracking) or using https://stape.io/blog/sending-data-from-google-tag-manager-web-container-to-the-server-container[Data Tag](https://stape.io/solutions/data-tag-client). 3. Add [TikTok events API tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/tiktok-tag) from the GTM template gallery. ![GTM template gallery](https://cdn.stape.io/i/680b5e6e42226976232781.png) 4. Generate Access Token. To do that click Assets → Web Events → Open pixel → Click Settings → Click "Generate Access Token". ![Generate Access Token](https://cdn.stape.io/i/680b5e7ab1135165251722.png) 5. Create a TikTok tag in the server container. Choose event → Add TikTok API Access Token → Add TikTok Pixel ID (You can only add a single Pixel ID per tag). 6. You can add event parameters under Server Event Data Override. These parameters include event ID, referrer, timestamp, and URL. Our tag will automatically add event parameters, but you can select to override and send it manually. 7. To send user data, open the user data section. Here you can add the IP address, user agent, email, external ID, and ttclid. Ip address, user agent and ttclid will be added automatically. 8. To send product data, use properties sections. You can send content, currency, description, query, and value. 9. Add trigger. ![TikTok trigger add](https://cdn.stape.io/i/618a68ca9ce06858424150.png) ![TikTok HTTP request details](https://cdn.stape.io/i/618a68d5b4441507473911.png) ![TikTok ads manager](https://cdn.stape.io/i/618a68e066535192568788.png) Want to know [how an sGTM is different from a gateway](https://stape.io/blog/sgtm-vs-gateways)? Feel free to check out our blog. Conclusion The TikTok events API allows sending data from your server to the TikTok app. You can use it to improve the accuracy of event tracking and expand the size of your custom audiences. The events API has the same abilities as browser tracking. Still, you’ll benefit from better privacy and performance due to its ability to bypass client-side limitations and have more accurate information about user behavior. --- # How to connect your site with Hubspot using server-side tracking Source: https://stape.io/blog/how-to-connect-website-with-hubspot-using-server-side-tracking Find out how you can use the Google Tag Manager server container to add new Hubspot contacts, update existing and send behavioral events. HubSpot is an excellent tool for marketers. One of the best features I like about HubSpot is having customer data collected in a single place. It allows tracking your campaign success and customer journey without any problems. It is no secret that one of the crucial [customer data](https://stape.io/blog/customer-data-analytics) sources is the website. But creating a complete user persona one step before the purchase can be challenging, especially without the HubSpot integration. Fortunately, we can help you find a way around it. We created a Google Tag Manager server template to integrate the site with Hubspot, create new and update existing contacts, and track custom behavioral events. Here we will discuss how to use the HubSpot tag for the Google Tag Manager server container to enjoy the benefits of a marketing automation platform without sacrificing the data you need and to make informed decisions about your campaign’s success. Why should you integrate your site with Hubspot? Marketers want to increase their website conversion rates. They can do this by analyzing customer interactions with the site and tracking them before and after the purchase. This way, they can identify the factors that influence the user’s decision-making. As mentioned before, having all the relevant customer information collected in one place is one of the perks of the HubSpot integration and reasons why people tend to choose it over other tools. HubSpot has many integration options for the most popular platforms like Google Analytics, Facebook, etc. These integrations allow you to attribute ads directly to the Hubspot contacts who interact with them. But how do you add contacts to HubSpot? That’s a relatively easy task if you use HubSpot forms. But what if you have custom contact forms or a CMS that is not easy to integrate with Hubspot? One of the options is to upload contacts into HubSpot manually. However, it may lead to errors like forgetting to add important contact information. We have a solution for this — a server-side tag for HubSpot. With our tag for the Google Tag Manager server container, you can integrate your site with HubSpot. GTM server tag for HubSpot allows to: 1. Create new contacts 2. Update existing contacts 3. Add behavioral events 4. Track ecommerce events The HubSpot tag for the Google Tag Manager server container communicates with the HubSpot API and adds the information you send. That is a secure and reliable way to send user data since the communication is done on the server-side, without using the browser and JavaScript. By using the HubSpot tag for the Google Tag Manager server container, you can ensure that the information you send to HubSpot is safe and can’t be blocked. How to connect your website with Hubspot using server-side tracking 1. [Create and set up Google Tag Manager server container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Send required data to the server container. We have blog posts that describe two methods: [sending data using server-side GA4 configuration](https://stape.io/blog/set-up-ga4-server-side-tracking) or using [Data Tag](https://stape.io/solutions/data-tag-client). 3. Add the HubSpot tag to your server GTM container. In the server GTM container, go to Templates → Tag Templates → Search Gallery → search for HubSpot → add a tag to your workspace. ![Add HubSpot tag template](https://cdn.stape.io/i/693169c03f79e282004776.png) How to create or update Hubspot contact? 4. Create a new tag in the server container → Select tag type HubSpot → Select action type → If you select Create or Update a contact, add Private app access token (check [HubSpot documentation on access tokens](https://developers.hubspot.com/docs/apps/legacy-apps/private-apps/overview#make-api-calls-with-your-app%E2%80%99s-access-token)), and user email variable → You can add event information and send custom parameters. Refer to this [HubSpot documentation for assigning custom parameters](https://legacydocs.hubspot.com/docs/methods/contacts/create_or_update) → Add a trigger to this tag and save. ![Create or update contact](https://cdn.stape.io/i/69316a9521abe909170975.png) 5. Open the preview mode and test the event. Check that contact was created in HubSpot. ![HubSpot event](https://cdn.stape.io/i/618a6ccfe96e8163967570.png) ![HubSpot tag activity](https://cdn.stape.io/i/618a6cdc66429206432445.png) How to track custom behavioral events in Hubspot? 6. Create a new HubSpot tag → Select Track Custom Behavioral Event → Add Private app access token (check [HubSpot documentation on access tokens](https://developers.hubspot.com/docs/apps/legacy-apps/private-apps/overview#make-api-calls-with-your-app%E2%80%99s-access-token)) → Add a variable that contains contact email → Add Custom Behavioral Event Parameters. ![Track custom event](https://cdn.stape.io/i/69317012eb3bb811612094.png) Before adding custom behavioral event parameters, you need to create them in HubSpot. Follow these instructions on [how to create behavioral events in HubSpot](https://knowledge.hubspot.com/analytics-tools/create-custom-behavioral-events). Please note: if you opt for the “Use visualizer” option (as recommended in HubSpot documentation), you will be able to set up Visited URL or Clicked element event types only. If you need to configure other types of events, select the “Send via API” option. ![Send via API](https://cdn.stape.io/i/693179730184b557614858.png) Note that you need to add event names and property names in the Internal name format. To find an internal property name, click on the on the right side. ![Custom behavioral event parameters in HubSpot](https://cdn.stape.io/i/618a6cf39ff22510859450.png) 7. Test HubSpot behavioral event tag that you’ve recently set up. You should see that tag triggers in the GTM server container and events are associated with the contact in HubSpot. ![HubSpot behavioral event tag](https://cdn.stape.io/i/618a6cff19b81152948058.png) ![HubSpot behavioral event test](https://cdn.stape.io/i/618a6d0af3095131222012.png) How to identify logged-in users on external websites? HubSpot provides an API endpoint that can identify logged-in users on external websites. This endpoint is useful primarily for its “conversations” feature (chat). It’s available for a Professional or enterprise-level HubSpot subscription. When a user logs into a non-HubSpot site, their name and email can be sent to the HubSpot endpoint, allowing HubSpot to recognize them. This ensures that the responder knows their identity when the user starts a chat. Additionally, identified users can be used for CTA targeting - for example, displaying a pop-up only to users who are not logged in. To set up logged-in users' identification, choose “Visitor Identification” as a tag type → Add Private app access token (check [HubSpot documentation on access tokens](https://developers.hubspot.com/docs/apps/legacy-apps/private-apps/overview#make-api-calls-with-your-app%E2%80%99s-access-token)) → Add a variable that contains the contact email → Add variables with the first and last name of a visitor. ![Visitor identification](https://cdn.stape.io/i/693179fbdefd7605911980.png) How to track ecommerce events in HubSpot? Using a tag, you can track the following ecommerce events: Log in Checkout Purchase Remove from cart Add to cart To configure it, create a new tag → Add HubSpot as a tag type → Select Ecommerce Event → Add Private app access token (check [HubSpot documentation on access tokens](https://developers.hubspot.com/docs/apps/legacy-apps/private-apps/overview#make-api-calls-with-your-app%E2%80%99s-access-token)) → Add a variable that contains contact email → from the drop-down list select the ecommerce event you want to track. To identify the user who triggers the event, fill out Contact Properties and/or Deal Properties (based on what user type you’re targeting the action). Besides pre-configured properties, you can also add custom ones. Add a trigger for the tag. ![Ecommerce event configuration](https://cdn.stape.io/i/69317a606d7e7819033205.png) How to create or update a HubSpot custom object? HubSpot custom objects are helpful to store data that doesn't fit into the standard objects (Contacts, Companies, Deals, and Tickets) that HubSpot provides. The tag allows you to record new objects and update existing ones. To configure such a tracking, create a new tag → Add HuSpot as a tag type → Select Create or Update a Custom Object → Add Private app access token (check [HubSpot documentation on access tokens](https://developers.hubspot.com/docs/apps/legacy-apps/private-apps/overview#make-api-calls-with-your-app%E2%80%99s-access-token)) → Add a variable that contains contact email. Add Custom Object Parameters to identify the objects you are tracking: Custom Object Type ID - is a unique identifier found in the URL when viewing your custom object's dashboard in HubSpot. You can find it in the URL - It immediately follows /objects/ For example: in the URL https://app.hubspot.com/contacts/5555555/objects/**2-1234567**/views/all/list, the Custom Object Type ID is 2-1234567. Custom Object and Contact Association Type ID - identifies the specific relationship between your Custom Object and the Contact Object. Check HubSpot’s documentation to locate the [Association Type ID](https://developers.hubspot.com/docs/api-reference/crm-associations-v4/guide). Add a trigger for a tag. ![Create or Update a Custom Object](https://cdn.stape.io/i/69317e107a977977642549.png) Conclusion Server-side tracking is a relatively new and exciting solution in the world of web analytics. It allows you to have more reliable website tracking and set up integrations to help your business work more efficiently. All you need to do is feed relevant data to the server container then use server-side tags to send these data to the endpoint you want. Interested in setting up server-side tracking on your site? Contact us today so we can get started setting up this powerful tool for your business website! Got any questions? We can provide you with assistance! Click Get help, fill up the form, and we will send you a quote. --- # Third-party cookies are about to expire. Will server-side tracking help? Source: https://stape.io/blog/third-party-cookies-are-about-to-expire-will-server-side-tracking-help Find out what a third-party cookie is, why it matters, and will server-side tracking will be able to transit the world without them. Chrome and Chrome-based browsers will be done with third-party cookies quite soon. Safari and Firefox already implemented Intelligent Tracking Algorithms that can block trackers. That leads to the next point: digital advertising methods that rely on third-party cookies to target consumers might become ineffective or even stop working altogether. ⚠️UPDATE: Google announced that it will [no longer pursue its plans to phase out third-party cookies](https://privacysandbox.com/news/privacy-sandbox-update/). Instead, the company will introduce a new solution: a one-time prompt that allows users to set their preferences, which will apply across all Google browsing experiences. Related: [3rd party cookies: detailed guide & news, insights for 2025](https://stape.io/blog/third-party-cookies) This change in how advertisers track users will hurt many publishers and ad networks that rely on these third-party companies to display ads and collect data from site visitors to understand their audience. In this blog post, we will explain what a third-party cookie is, why it matters, and how server-side tracking can help businesses transit to the world without 3rd party cookies. What are third-party cookies? Cookies allow websites to remember and track user actions. This way, they can provide a more personalized user experience and provide valuable tracking information to companies. Third-party cookies specifically are created and placed by websites other than the website you’re visiting. Let’s say that you are visiting a website called example.com. It means that cookies set by Google or Facebook will be considered third-party since they were placed by google.com or facebook.com. And the website you are currently browsing is example.com. ![third-party cookies](https://cdn.stape.io/i/662ab4ccd2c8b928321051.png) Third-party cookies are widely used for advertising and user profiling purposes. What is the difference between third-party and first-party cookies? Cookies are used to store important information about websites and how they operate. Website owners use cookies to provide personalized user experiences, such as remembering what items people have in their shopping carts or login credentials for the site. First-party cookies are generated by hosts themselves, whereas third-party ones come from external sources like advertisers, who help provide more detailed data on the browsing habits of users. ![difference between first-party cookies and third-party cookies](https://cdn.stape.io/i/662ab47153955988993092.webp) First-party cookies work best when dealing with simple interactions involving remembering things like your username and passwords. In contrast, third-party cookies can be helpful if you're looking to track specific website activity. The only problem is that they cannot identify which sites contain these sensitive pieces of personal info. So oftentimes, they end up collecting all sorts of innocent details. How are Third-Party Cookies Used? Remarketing. A third-party cookie from a retargeting ad service must be saved in your browser to find out who you are. These cookies can also tell ad platforms what websites you visited and show ads for those sites wherever you go. It is referred to as "the third party" because it is stored by the company that provides the content for these advertisements rather than where they appear. The best examples would be Facebook and [Pinterest server-side tracking](https://stape.io/blog/pinterest-conversion-api). Behavioral targeting. Third-party cookies track users across sites. With third-party cookies, the advertiser can figure out what a specific person has been viewing or reading on other sites. And then send them an advertisement about the product they might be interested in according to their browsing history. Hence, data brokers have access to information from many different sources making for a richer picture of user behavior and interests. Why are third-party cookies going away? Governments are creating laws and regulations designed to encourage tracking transparency. These laws are geared towards preventing companies from unethical or unregulated user tracking. In a nutshell, it's all for the sake of user privacy. As a result of GDPR, CCPA, and ePR, websites that don't reveal which user data is collected or how it's used can face civil penalties. ![GDPR, CCPA, and ePR are created for sake of user privacy](https://cdn.stape.io/i/662ab5087923b350177952.png) Governments want websites to be transparent about cookies and other personally identifiable information like IP addresses that may identify someone online when visiting a site with anonymous browsing enabled. What has already been done All web browsers are trying to adapt to the new standards of privacy and user data security. The ultimate goal is to prevent data breaches and misuse by third-party cookies. Unfortunately, there is no golden standard for protecting user’ data. That is why each browser has its tracking protection technologies and sets of rules. As a result, we have different features and restrictions in each browser. To be on top of all changes in the cookies world, I suggest using [this site](https://www.cookiestatus.com). It consolidates information on the most popular browsers. Though third-party cookie blocking is a hot topic during the last couple of years, it all started a long time ago. Firefox announced a third-party cookie block in 2018. And one year later, they began to block the third-party cookie by default. Safari blocked third-party cookies in 2017 by implementing Intelligent Tracking Prevention 1.0. After that, each year, Apple makes new updates and restrictions to ITP. Google Chrome - which controls two-thirds of global browsers market share - has followed the crowd and announced that it would phase out third-party cookies by the mid-2023.reviously, they promised to do it by the end of 2022.The change was delayed by a year. ![third-party cookie deprecation](https://cdn.stape.io/i/662ab44bd9ce6569418466.png) Third-party cookies and server-side tracking One of the ways that help website and advertising industries to adapt to the world without third-party cookies is server-side tracking. With server-side tracking, you can use a cloud server to send data to the advertising platforms. For now, you can set up a server-side search for Universal Analytics, Google analytics 4, Google Ads, Facebook. Many other platforms like TikTok, Snapchat, or Bing support server-side tracking but do not yet have clear guidance on how the server-side tracking works and how to set it up. The easiest way to implement server-side tracking for your site is to use the Google Tag Manager server container. Though the setup is done inside the GTM server container (that looks similar to the web container), ss tracking will require good knowledge of Google Tag Manager, development skills, and a decent number of hours. Facebook is the company that's pushing hard for server-side tracking. Facebook has been in a battle with Apple over its ongoing restriction of cookie connectors. To deal with these restrictions, [Facebook released Conversions API](https://stape.io/blog/how-to-set-up-facebook-conversion-api) (CAPI or Facebook server-side tracking). That allows advertisers to connect users and customers without restrictions from browsers or devices, which Apple policy restricts. In other words, you can send event data from your server to the Facebook server. How server-side tracking can help you adapt to the world without third-party cookies First-Party Cookies From Your Domain With server-side tracking, you don’t need to use third-party cookies and client-side JavaScript libraries that can slow down your site. Cookies are set from your cloud tagging server URL that is located with the main website domain. SS tracking is new, and realistically, it won’t altogether remove browser tracking in the next year. We will have the combination of browser and server tracking since not all platforms started developing their ss API. In theory, server-side tracking should work like this: instead of zillions of different scripts sent from the browser, you should have only one request to the tagging server with all the relevant data. Then, the tagging server will process this data and send only relevant information to each vendor. Control over the data flow You can control what data you send to each vendor. While with the browser tracking, pixels can use any user or product information they find on your site. It’s challenging to verify tracking pixels is only collecting essential information it needs and not pulling all the data they can find on your site. In browser tracking, any user information on your website may be available to other tracking scripts. Privacy is an essential issue for many of us, especially now, when we start to realize the implications of having our data shared with third parties and using it in ways that might not even come close to initial intentions. So ultimately, even if you use server-side tracking, make sure you ask for user consent before sending any user data to the third-party platform. Data accuracy Ad blockers can’t block requests you send from your domain. [The server-side tagging with configured custom URL](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) can keep all requests first-party. Let’s say that you are using Universal Analytics. With the browser tracking, all UA requests will go to https://www.google-analytics.com/j/collect. Google-analytics.com is a third-party domain. Therefore, it sets third-party cookies since it’s different from your domain. If you are using server-side tracking with the configured custom subdomain, let’s say that your website domain is example.com and the tagging URL is ss.example.com. In this case, all requests sent to the server container will load using the custom subdomain. It means that they will be considered first-party. The UA requests will be loaded from https://ss.example.com/j/collect. Ultimately, this type of request can’t be locked by AdBlockers or ITPs because it’s sent from your domain. Hence, it is not a third-party request. Conclusion Will server-side tagging fix the issues we might face when the third-party cookies go away? We do not have a solid answer yet. The technology is new but looks very promising. The browser-based way of tracking site visitors does not comply with modern policy standards and regulations. We recommend adopting server-side tracking as soon as possible because it has many advantages over the old, cumbersome browser method. Getting used to server-side tracking may take some time, but the benefits are well worth any initial adjustment period or learning curve. If you need help implementing this new technology, let us know. We have a team of experts eager to assist you with making this transition happen! Got questions about server-side tracking? We can answer them all! Click Get assistance, fill up the form, and we will send you a quote. --- # Facebook Event Match Quality – what it is and how to improve it Source: https://stape.io/blog/how-to-improve-event-match-quality-facebook Facebook Event Match Quality shows how well Meta links your events to user profiles. Learn what affects your score and how to improve it. How to improve your Facebook Event Match Quality score: Set up a custom subdomain to enable first-party cookies and correctly capture _fbp and _fbc. Build a proper data layer and send all available user information (email, phone, name) with each event. Check the Diagnostics tab in Events Manager to catch and fix any errors in your server events. Store user data in the browser so it can be sent with future events, not just at the moment it's collected. Enrich server-side events with first-party data using Firestore or Google Sheets. Enable Event Enhancement to store user data in cookies and enrich events when user data isn't available. If you ran ads on Facebook, you probably faced the fact that not all events are accurately transmitted, and the results of campaigns do not always meet expectations. One of the key indicators that you should pay attention to is Event Match Quality or the quality of event matching. Simply put, this assesses how well Meta can "recognize" your users from the data you transmit. The higher this score is, the more accurately your analytics work and the better Facebook "understands" who to show ads to. In this article, we will tell you how this mechanism works, what data should be transmitted, and how to improve the comparison quality, even if you are not a technical specialist. Let's figure it out together! What is the Facebook Event Match Quality score? The key to proper FB conversion API setup is the event match quality score. Why? Well, Facebook utilizes user data sent from your server to match event instances like adding a product to a cart to a specific FB account. In other words, events match quality grades the customer information you share. The number of the parameters sent affects the percentage of sent events. Event Match Quality (EMQ) is an essential metric that reflects the accuracy of user data parameters associated with server events transmitted to Meta. This accuracy impacts how precisely server events are matched to user profiles on Meta. Higher EMQ scores for server-side events increase the likelihood of Meta correctly linking the server event to the corresponding user profile. This linkage directly influences the conversion attribution of your Facebook ads campaigns. The higher the EMQ, the more accurate conversion attribution becomes. Having a high Event Match Quality score also helps Meta better understand what your customers like and how they behave. This means Meta's ad system can better show your ads to people who are similar to your customers and more likely to be interested in your products. Meta assigns a score ranging from 0 to 10, which reflects the quality of [customer data](https://stape.io/blog/customer-data-analytics) you send for a particular server event and how often these events are linked to Meta accounts. ![Facebook event match quality](https://cdn.stape.io/i/66f40a77a7282861581662.png) Facebook event match quality These event match quality scores are available for all standard and custom web activities, like viewing pages, adding items to a cart, or making purchases. These scores are based on the most recent 48 hours of data, so regularly sending event data is crucial to maintaining current and accurate event match quality scores. User data can be divided into the following subcategories: 1) Parameters that require hash and can be sent as is. Such parameters as zip code, email, or state need to be hashed (basically, all parameters that contain personal user information). But parameters like client user agent, IP address, or browser ID do not require a hash. 2) _fbp Facebook pixel automatically ads _fbp cookie when it is using first-party cookies. This unique identifier consists of version (always FB), subdomain index (for example, 0 for stape.com, 1 for app.stape.com, etc.), creationTime in the UNIX time standard, and it represents time in milliseconds when _fbp cookie was saved and a random number. Here is the example: fb.1.1596403881668.1116446470 When the Facebook pixel is installed on a website and uses first-party cookies, the pixel automatically saves a unique identifier to an _fbp cookie for the website domain if one does not already exist. 3) _fbc When a user clicks on the FB ad, it includes the fbclid query parameter. If they land on the site that uses a first-party cookie with enabled browser tracking, then the fbclid query parameter is saved inside the _fbc parameter. It’s important to understand that not all your events will have _fbc parameters. Traffic from organic searches, google ads, or email campaigns won’t contain _fbc since interactions with the site don't happen on Facebook. Why is Event Match Quality important? Event Match Quality helps with the following: Improved targeting. Higher match quality means that your ads reach people who are more inclined to engage with them based on previous interactions tracked through matched events. Better cost efficiency. With better targeting and attribution, you should see better ad performance, which results in a lower cost per action (CPA). Better attribution. When the events are matched to the users accurately, [Facebook can better attribute conversions](https://stape.io/blog/meta-attribution-troubleshooting) to your ads. This will give you better insights into the effectiveness of your campaigns. Enhancing the quality and completeness of the PII you provide will significantly improve Event Match Quality. This will lead to more effective and efficient ad campaigns. What does Event Match Quality depend on? Event Match Quality depends only on Personally Identifiable Information (PII). PII plays a crucial role in determining Event Match Quality. PII includes data points like email addresses, phone numbers, and other identifiers that help Facebook match the event data you send with actual user profiles. The more comprehensive and accurate the PII you provide, the higher the likelihood that Facebook can match those events to the correct users. Maintaining a high volume of rich PII sent to ad platforms often becomes difficult when users return on new devices or start fresh sessions where those parameters are temporarily missing. You can solve this by implementing deterministic server-side matching, which captures persistent identifiers and automatically enriches downstream events with the missing PII, meaning [server-side user stitching across sessions](https://stape.io/blog/cross-session-user-stitching) happens seamlessly under the hood without relying on manual tag configurations. Find out more about PII in our [PII guide](https://stape.io/blog/personally-identifiable-information). Please see the table below, which shows the PII that impacts event Parameter | Priority Email | High Click ID | High Facebook Login ID | Medium Birthdate | Medium Country | Medium Phone number | Medium External ID ( a unique ID from the advertiser) | Medium Browser ID | Medium Lead | Low First name | Low Last name | Low City | Low Zip or Postal Code | Low The parameters are described in the Meta documentation [in the Customer Information Parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters) on this page. You can click on any Customer Information Parameter to see its details. All parameter tags are hashed in GTM automatically; if they are needed for a parameter, you do not need to hash them on your own. Facebook tags automatically collect basic parameters like FBP, FBC, Client IP Address, and Client User Agent, but you must manually send the other available ones. Always send customer data when you have access to it. For example, when a user creates an account or authorizes on your website, you will get access to the user's email. In this case, you must send user emails with all the events. It will improve the match quality of events like purchases in eCommerce. How is the Facebook Event Match Quality score calculated? The maximum score you can get for the FB server event is 10. Getting to the ultimate point will be complicated. This score means that you have to send all user information parameters for your server events, and these parameters are sent on all occasions. For events such as PageView, where you do not have any user parameters, the match score will be around 4. Everything that you will be able to send is _fbp, _fbc, IP Address, and User-Agent. Ways of ensuring compliance with GDPR and other regulations Event data you need to collect to reach the optimal quality score falls under data privacy regulations. Let's look at strategies to help your user data management practices align with [GDPR, ePrivacy Directive](https://stape.io/blog/cookies-the-gdpr-and-the-eprivacy-directive), CCPA, and other applicable privacy regulations. Obtain user consent Under GDPR and other EU data protection regulations, you must obtain end-user consent before sending data via [our SDK](https://stape.io/blog/stape-sdk). Thus, you must ensure that your SDK implementation meets these consent requirements. [Implement clear and concise consent forms](https://stape.io/blog/consent-mode-server-google-tag-manager) informing users about the collected data. Inform users the purpose of data collection and how it will be used for data matching. Ensure that consent is detailed and that you give users the choice to opt in or out of specific data processing activities. Collect no excessive data Define what data you need for your event matching and avoid collecting any excessive data. Make sure each type of data you collect serves a clear purpose. When you use the FB SDK for App Events, Meta business terms require that you have an appropriate legal basis for collecting and processing users' information. Anonymize and hash user data Before you send data to Facebook for matching, use hashing algorithms to anonymize personal user information. This will help you protect user data while keeping event match quality high. By the way, the [Stape Anonymizer power-up](https://stape.io/solutions/anonymizer) is available for all Stape users. Its main goal is to remove or anonymize user data from GA4. Choose privacy-driven approach Build privacy into how you collect and handle data from the start. Regularly review your data practices to meet GDPR and other legal standards. Revise your privacy policies to clearly explain how you collect, use, and share user data for event matching. Being open about your data practices builds trust and helps you meet GDPR's rules for clear communication with users. Keep up with the regulations Privacy laws are constantly changing, so keep up with the latest updates to GDPR, the ePrivacy Directive, and other related regulations. Adjust your business processes to stay compliant and keep your event match quality on track. If you work with data that falls under privacy regulations, having a strong legal team is always safer to help you navigate the ever-evolving rules and laws. Use Facebook's Conversions API Use Facebook's tools, like the Conversions API, to better manage what data you share and ensure it meets your privacy goals. This way, you can improve event match quality without compromising user privacy. You can also explore [Shopify Facebook CAPI](https://stape.io/blog/facebook-conversion-api-and-shopify) setups to integrate directly with your store. Manage and improve Event Match quality with privacy in mind Keep an eye on your event match quality using Facebook's reports, but do it in a way that respects privacy. Check your match rates regularly and adjust to improve results while protecting user data. Tip: you can find more [tips on increasing Facebook event match quality](https://stape.io/blog/facebook-event-match-quality-what-it-is-and-how-to-increase-it#how-to-increase-facebook-event-match-quality-score) on our blog and [HelpDesk](https://stape.io/helpdesk/documentation/how-to-increase-event-match-quality-for-meta-conversions-api-getaway). These best practices will help you balance event match quality and privacy regulations. Now, let's move on to our next point: the influence of iOS privacy changes on Facebook event match quality. How to improve Facebook Event Match Quality score 1. Set up a custom subdomain If you decided to set up [Facebook Conversion API through the Google Tag Manager](https://stape.io/blog/how-to-set-up-facebook-conversion-api), we recommend using a [custom subdomain for the tagging server URL](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). This way, you can move from the 3rd party to the 1st party cookie. It will also help to increase tracking accuracy and set _fbp and _fbc correctly. 2. Use data layer Before setting up ss tracking or browser tracking, you need to have a proper data layer. This way, you can ensure that your trigger, variables, and tags will work correctly if the page URL, element ID, or CSS selector changes. 3. Make sure to send all possible user information to the data layer Here's an example. When a user logs in, you can send a data layer event that includes the user name, ID, and email. This will increase the match quality of all events with these user data. Ask developers to set up a data layer or use a plugin for your CMS that generates a data layer. 4. Check that there is no error with the server events you send Facebook will decrease event match quality if you have any errors in the server events. To find out if there is any error, open the events manager and click on the diagnostics tab. 5. Store user data Let's say users subscribed to a newsletter on your site. By default, you can send their email only when subscribe events happen. But there is a way to store user data in the browser. In this case, you can send their email as long as it’s stored in the browser. You can use data tags to store user data. Here is a more detailed explanation of what a https://stape.io/blog/sending-data-from-google-tag-manager-web-container-to-the-server-container[data tag is and how to use the store data tool](https://stape.io/solutions/data-tag-client). 6. Enrich user data There are a few ways to enrich the user data with Stape's solutions: Enricher power-up When an event is sent in your sGTM container, the Enricher checks whether first-party data has already been stored for that user having one of six supported identifiers (email, cookies such as _sbp, FPID, _ga, _dcid, and X-Stape-User-Id). If matching data is found, the Enricher automatically adds the missing information (such as hashed first name, last name, email, or phone number) before the event is sent to Meta. In this way, the Enricher helps improve the quality of data sent to advertising platforms and can help increase event match quality. https://www.youtube.com/watch?v=x-pF805KUp4 The Enricher power-up is available on Business and Enterprise plans. For Custom plans, Enricher is available at a separate price after consulting with our sales team. However, there are also alternative ways to enrich user data on lower plans. Store and retrieve user data using Firestore or Google Sheets The logic of enriching sGTM data using Firestore and Google Sheets is the following: assign a unique identifier to a user and store available user data in Firestore or Google Sheets (for example, during purchase events). Later, when another event occurs, the same identifier can be used to retrieve the stored information and enrich the event before it is sent to Meta. If you are interested in enriching sGTM data, check these articles: [Write data from server Google Tag Manager to Google Sheets](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets) [Read data from Google Sheets to server Google Tag Manager](https://stape.io/blog/read-data-from-google-sheet-to-server-google-tag-manager) [Read data from Google Sheet to server Google Tag Manager](https://stape.io/blog/write-data-to-firestore-from-server-google-tag-manager) 7. Event Enhancement You can also enable Event Enhancement to use HTTP only secure cookie (gtmeec) in order to enhance event data. ![Facebook Conversion API tag](https://cdn.stape.io/i/66f40a8c72388710407622.png) Facebook Conversion API tag When this feature is enabled tag will store user data in cookies and enrich events with user data when user data is not available. This way you can increase event match quality and as the results conversion attribution to campaigns. Conclusion We receive a lot of questions about the Facebook Event Match Quality scores. But there is no way to say if the event quality score is good or bad. If the quality score on your server events is lower than 3, then it might be a red flag. Just try to send all the user information you have when this FB event happens. Of course, sending user data to FB should comply with the privacy policy and terms and conditions indicated on your website. You should follow GDPR rules and ask for user consent before tracking them or sending their data to Facebook. A lot of people are worrying when they have a match quality around 6. It’s an astounding number. Do not worry. Facebook is sending so many suggestions on improving quality match scores because they want to collect as much user data as possible. Suppose you send the most straightforward 4 customer data parameters (_fbc, _fbp, IP address, and User-Agent). Most likely, FB already has enough data to associate this event with a real user. If you add user email, then chances are even higher. Ultimately, if your goal is to increase the event match quality score, follow the tips described in this article. --- # How to prepare your Facebook campaigns for the iOS 14 privacy update Source: https://stape.io/blog/how-to-prepare-your-facebook-campaigns-for-the-ios-14-privacy-update This blog post will explain what changed for advertisers in iOS 14 & how to prepare Facebook campaigns to the iOS 14 changes. The latest Apple announcement had many marketers worried about how to prepare their Facebook campaigns for iOS 14. The new mobile operating system limited the ability to use third-party cookies — a significant feature for most marketing and advertising campaigns. That means that marketers will have to find alternative methods for measuring conversions, tracking data, and using good old pixels on the websites. This blog post will explain what advertisers should expect from the iOS 14 update and explore how to prepare Facebook campaigns and set up tracking so that all your efforts are not in vain. What is iOS 14, and how does it influence advertisers? Apple’s new App Tracking Transparency framework was implemented in iOS 14. The policy states that if app developers engage in what Apple defines as “tracking”, they must show a prompt to the user about their data collection and ask permission to track how users engage with the app. If the user opts out of tracking, then the app no longer can track their behavior. Facebook states that since more people opt out of Facebook and Instagram, tracking, ad personalization, and campaign reporting will be limited for mobile apps and website users. In addition, it may affect campaign measurement and targeting settings that advertisers use inside the business manager. Apple has always been an advocate for privacy. And their latest update is no exception. This summer, users started seeing contextual prompts when apps engage in tracking behaviors, including everything from collecting geolocation data to accessing contact information on your device. Previously, access to this information had to be granted to the third parties by the device owner. iOS 14 changes will affect all apps, but Facebook showed a massive message in the ads manager, encouraging people to switch to a new way of tracking – [server-side](https://stape.io/blog/google-tag-manager-server-side-tracking-explained). That is why, you should consider moving your tracking to a server-side because of all the tracking rules and restrictions. Chances are it will become a new standard of tracking. You can already set up server-side tracking for: Google Analytics (Universal Analytics and GA4) Facebook and Instagram TikTok [Reddit Pixel CAPI](https://stape.io/blog/reddit-conversion-api-tag-for-server-google-tag-manager) [Pinterest server-side tracking](https://stape.io/blog/pinterest-conversion-api) Bing Snapchat How will the iOS 14 update impact Facebook advertisers? Facebook Audiences When iOS users opt out of data tracking, they become invisible to a Facebook pixel. And that means that your retargeting campaigns won’t target these users. Studies suggest that around 90% of iOS users in the US opted out of tracking. It means that you might not be able to retarget 90% of users who saw your video ad on Facebook. The good news is Facebook has a solution on how to prevent this — [Facebook conversion API](https://stape.io/blog/how-to-set-up-facebook-conversion-api). FB CAPI tracks users on the server-side and passes site visitors information (like email, first name, last name, etc.). ![facebook event match quality](https://cdn.stape.io/i/6193f68bc1fd4599874185.png) With the help of user information, FB can match users on the site to users in the database. The more user parameters you send from the server, the better match quality you will receive on Facebook. FB CAPI will also send events through the server when the pixel is blocked. ![purchase facebook conversion API match quality](https://cdn.stape.io/i/6193f6cf2c4cd454860352.png) Facebook recommends using both browser and server tracking. This way, you will have two data sources of events on your site. To prevent events from counting twice, you should set up [event deduplication](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager). ![facebook conversion API deduplication](https://cdn.stape.io/i/6193f72507f81654811041.png) Event Limits Advertisers will be limited to 8 events per domain. Each event should be added to the aggregated event measurement manually. Facebook will also ask you to set the priority of these events. If an event is not added to the aggregate event measurement, then you won’t be able to select this event for campaign optimization. There is no way to bypass this restriction. That may become a problem for the advertisers accustomed to having ad sets with a dozen website events. Oh, and one more thing about aggregate event measurement — you won’t use custom events. ![aggregated measurement events ](https://cdn.stape.io/i/6193f753c8187667532434.png) Domain Verification Domain verification is not a new thing. It has been around for a couple of years. Gone are the days when domain verification was recommended. Now, it is required. What does it mean for marketers? Well, you won’t be able to use events from non-verified domains. It may become problematic if you wish to optimize your campaigns for the event sent from outside of your domain. For example, you promote an online event and use a specific tool for selling online tickets. In this case, users will purchase them on the domain of the system that sells tickets. Even if this system allows you to add your FB pixel, you won’t be able to use the purchase event as an optimization goal for your campaigns. Attribution Window 28-day click-through, 28-day view-through, and 7-day view-through attribution windows are no longer supported. 7-day click or 1-day view attribution will become a new default option. You will no longer see the breakdown by attribution window, which makes campaign analysis more frustrating. It’s a common issue that advertisers see the different number of conversions from Facebook inside the FB ads manager and Google Analytics. Previously it was possible to compare view-through conversion with click-through and understand your campaign resultы better. Unfortunately, it’s no longer an option. Reporting Limitation FB will stop supporting real-time reporting. Data can be delayed up to 3 days. In addition, breakdowns, such as age, gender, region, and placement, will not be available. Targeting limitations Facebook says that behavioral and interest-based targeting performance will decrease since their algorithms will receive less information about user browsing history. Actions you should take to prepare Facebook and Instagram ads for iOS 14 1. You may need to verify your website’s domain. Otherwise, you won’t be able to use events from non-verified domains. 2. Use Aggregated Event Measurement tool to select and prioritize 8 events per domain. You will be able to use only these 8 events for campaign optimization. 3. [Set up Facebook conversion API.](https://stape.io/blog/how-to-set-up-facebook-conversion-api) That is the most important and the hardest step. Facebook insists that all advertisers have to start sending conversion data through the browser and the server.This way, they will track conversions, optimize campaigns, and create custom audiences more accurately. If the browser pixel is blocked, events will be sent via the server. We have a detailed blog post that explains [how to set up Facebook conversion API using the Google Tag Manager server container](https://stape.io/blog/how-to-set-up-facebook-conversion-api). Conclusion The most important thing you need to do is set up the Facebook conversion API. If you want your marketing plan to be successful and ensure that it will work with the new iOS 14 update, this aspect of your campaign must be done first. We can help you create a seamless transition from browser to browser+server tracking. Contact us today to request assistance in optimizing your campaigns before the release date! Got any questions? We can help you with anything! Click Get help, fill up the form, and we will send you a quote. --- # Facebook Conversions API for Unbounce Source: https://stape.io/blog/facebook-conversion-api-for-unbounce Learn how to set up the Facebook Conversions API for Unbounce using Google Tag Manager server container to track accurate PageView and lead events. Accurate tracking and personalization are the keys to the success of paid campaigns. Many marketers create different angles for each target audience and use landing page builders, like Unbounce, to set up a custom landing page. But it is becoming more problematic to get precise analytics for Facebook due to privacy restrictions, such as reducing the lifetime of cookies to 7 days or even 24 hours for Safari users. As a result, you will receive less accurate conversion attribution, which makes it challenging to estimate the campaign’s performance. However, there is an option that helps prolong cookies’ time and, hence, bypass these restrictions - switching to server-side tracking instead of client-side. In this article, we will describe how to set up the Facebook Conversions API for Unbounce so that tracking still works accurately. What is Facebook Conversions API? Facebook Conversions API, otherwise known as Facebook Server-Side API, is a new way of tracking from Facebook that allows sending data about user behavior on the site using a cloud server. Facebook CAPI has the same abilities as the well-known Facebook pixel. But it has utterly different technology behind it. Facebook pixel uses JS code placed on the website to send data about events on the site. Conversion API sends data from the server. These two ways of tracking (client-side and server-side) can work individually and in parallel. Facebook recommends choosing a parallel option and setting up web and server tracking to make event data more reliable. Facebook conversion API has become especially relevant now when the ability to track users has been tightened. All advertisers who use Facebook ads have already been notified about the [Safari Intelligent Tracking Prevention (ITP)](https://stape.io/blog/safari-itp). How does it work? Whenever an ITP detects that the IP address of a URL attempting to set cookies differs from your website’s domain, it reduces the cookies' lifetime to 7 days. How can Facebook Conversions API help track Unbounce events? Facebook is a great way to advertise your product using Unbounce landing pages. The best part about combining Facebook ads and Unbounce is creating customized campaigns for each customer while measuring results as it happens. One can use different images and headlines tailored toward certain demographics to target specific audiences based on previous behavior within the Facebook platform. Most Unbounce users have a Facebook Pixel installed directly into the landing page code. Others might use a web Google Tag Manager container to manage all tracking scripts. Both methods of implementing Facebook pixel will work. Facebook suggests using both browser and server tracking. When Facebook receives a server event, it checks if there is also a corresponding browser event that happened at that exact moment. Let's say that the Facebook pixel event wasn’t triggered because of the ad blocker. This means that Facebook can use the server event as an alternative data source. However, when it detects similar events in the browser and server, it will deduplicate server events if proper deduplication keys are provided. ![deduplicating server events](https://cdn.stape.io/i/666feb1be99b0583360288.png) Benefits of using Facebook Conversions API with Unbounce Before you start the setup, here’s what you get by using Stape’s pre-built solution: Pre-built templates for both the GTM web and server containers Automatic sending of user data for server-side events Easy Facebook event deduplication setup These features help you skip the manual configuration and get more accurate tracking with less effort. How to set up the Unbounce FB CAPI manually? We will describe how to set up a server container and get user data inside the web container. Then we will configure Facebook browser tracking and send data from the web Google Tag Manager container to the server. And finally, how to set up Facebook conversion tracking for Unbounce. 1. [Set up a Google Tag Manager server container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container?swcfpc=12. Add [Custom GTM and GA4 Loader](https://stape.io/solutions/custom-gtm-loader) to your sGTM container. 2.1 Open your sGTM container → Click Power Up. Find the “Custom Loader” and configure it. ![Custom Loader in PowerUps](https://cdn.stape.io/i/66ab61c34f5f2826171229.png) 2.2 Select the domain from the drop-down menu, add the web container GTM ID as the platform, and select “Other.” Click “Generate,” and you will get the codes you need to paste to Unbounce pages. ![Codes for Custom Loader](https://cdn.stape.io/i/66ab61fc8f061405272573.png) 3. Log in to the [Unbounce Conversion Intelligence™ Platform](https://unbounce.com/?_gl=1*1g3tm8g*_ga*MTAzODY4MzYyNy4xNzE0NDc4NjQ0*_ga_JHGNGKNMZM*MTcxNTc1ODcyNy4yLjEuMTcxNTc1ODc4OC41OS4wLjA.*_ga_8GFBJRYYE1*MTcxNTc1ODcyOC4yLjEuMTcxNTc1ODc4OC4wLjAuMA..&_ga=2.201649553.1260272989.1715758728-1038683627.1714478644). https://documentation.unbounce.com/hc/en-us/articles/203814014-How-Do-I-Integrate-Google-Tag-Manager-With-Unbounce- On the left-hand side menu, click "Settings". From the drop-down menu, select "Script Manager". At the top-right-hand corner, click the blue button titled "Add a Script". Select “Custom Script” from the drop-down menu: ![Add custom script in Unbounce](https://cdn.stape.io/i/66ab626623d54061110772.png) 4. Choose the placement for the script “Head” and set the “Include” value to “All.” 5. Add the script you generated in step 2.2 to the dialog box. In the “Script Usage” tab, select your domain. Click “Save and Publish Script.” The integration via Script Manager will automatically place the GTM code on your selected domain and corresponding landing page(s). Be sure to Publish or Republish your landing page(s) connected to the Google Tag Manager script for the changes to take effect. 6. Set up a Facebook page view event in the Web container. It’s important to add [unique_event_ID](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/unique-event-id-variable)to this tag to enable deduplication. ![Deduplication settings](https://cdn.stape.io/i/666ff5dfb3c87258762379.png) 7. Set up a [Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag) that will transfer the pageview event to the server container. Create a new tag → Tag type Data Tag → Event name pageview → [Add server URL](https://help.stape.io/hc/en-us/articles/6080905799453-Find-server-container-URL-for-sGTM-container). In the Event Data add unique_event_ID (the same variable that you’ve added to Facebook tag in previous step). Add a trigger. The trigger type is “Page View - DOM Ready”. ![Tag and trigger to set up Data Tag](https://cdn.stape.io/i/66ab62eeaf316469370691.png) 8. Send user parameters to increase the match quality of the Facebook server events. Initially, you do not know any user parameters on the PageView events. But when a user submits a form, there should be parameters to help Facebook match users. Web container template includes variables for the pre-defined Unbounce fields. To get these variables from Unbounce, you need to create custom JavaScript variables. If you want to create new variables, just copy the variable and update it with the Field Name and ID section in Unbounce. ![Variable](https://cdn.stape.io/i/666ff7b96891d705129645.png) ![Custom JavaScript](https://cdn.stape.io/i/666ff7f2a1b68725896468.png) function (){ if (document.querySelector('input[name = "name"]')) { var regex = /[a-z\s]/g; tmp = (document.querySelector('input[name = "name"]').value.toLowerCase()).match(regex); tmp = tmp.join(""); return document.querySelector('input[name = "name"]').value = tmp; } return ""; } 9. Set up a Facebook tag for the Lead event. Lead tags should trigger on a form submission event or the “Thank you” page after the form has been submitted. Do not forget to add the unique_event_id; it is required for deduplication and the user data for better event matching. If you trigger a lead event on the “Thank you” page, then first, you need to save users’ data locally using either a custom JavaScript or the [Data Tag](https://stape.io/solutions/data-tag-client) so that it would be available on the “Thank you” page. Find out more about how to use [Data Tag for data storage](https://stape.io/solutions/data-tag-client) here. To get stored user data from the local storage, you may use either custom JavaScript or the Data Variable available in the gallery. Event ID and user data will need to be sent via both Facebook pixel and Data Tag to Facebook CAPI tag on sGTM. ![Facebook Pixel Tag](https://cdn.stape.io/i/66ab639c14287376949097.png) 10. Set up a Data Tag that will send lead information to the server container. Do not forget to add event_id and user data (that we’ve created in step 5). This tag should fire on the same trigger you use for the FB pixel tag; thus, event_id will be identical, and events will be deduplicated. ![Data Tag configuration for a tag](https://cdn.stape.io/i/66ab63da5e283453514124.png) 11. Download [Data Client for GitHub](https://github.com/stape-io/data-client) and import it to the Server container. This client will listen to Data Tag and process its information from the web container inside the server container. To import Data Client, open sGTM container templates, click New and then Import Data client that you’ve downloaded from GitHub. Publish server container. ![Template editor](https://cdn.stape.io/i/667009572381d073905582.png) 12. Create a new client with the type Data Client. ![Data Client configuration](https://cdn.stape.io/i/6670092dc7496588569963.png) 13. Open the preview mode of the web GTM and check that pageview and lead events of Data Tag and Facebook pixel were triggered correctly. ![Google tags found](https://cdn.stape.io/i/66700a8eeabad494814627.png) 14. Add Facebook CAPI tag to your sGTM container and configure Facebook CAPI pageview event. When done, Create a new tag → Tag type Facebook conversion API → Event name Pageview → Add [API access token](https://developers.facebook.com/docs/marketing-api/conversions-api/get-started#access-token) → Add Pixel ID → Add Facebook test ID → Add event ID and User Data. This tag should trigger on a page_view event. ![Facebook CAPI pageview event](https://cdn.stape.io/i/66ab64b4e83fd624793532.png) 15. Set up a Lead event in the server container using the Facebook conversion API tag. ![Facebook CAPI Tag](https://cdn.stape.io/i/66ab6414e787f148505557.png) ![Tag configuration](https://cdn.stape.io/i/66700982c1ea5084883355.png) 16. Open the preview mode of the web and server container. Open the Facebook event testing tool and test the setup. If everything is set up correctly, you should see this: ![Setup view](https://cdn.stape.io/i/66700b54b1a81578863307.png) If you do not see server events, please make sure that the FB Test ID is correct, as it changes from time to time. Conclusion This is how you set up the Facebook conversion API for Unbounce using the Google Tag Manager server container. It tracks PageView and lead events from web and server and sends user information together with the lead event. You can use this method for setting up other events in Unbounce or any other site that allows adding Google Tag Manager code on the site. If you have any questions, feel free to reach out to our [community](https://community.stape.io/). Want to learn how to track Unbounce conversions? We can help you! Click Need assistance, and we will send you a quote. --- # Send Telegram notifications using Google Tag Manager server container Source: https://stape.io/blog/send-notifications-to-telegram-using-google-tag-manager-server-container Telegram tag for the Google Tag Manager Server container that can send notifications about user actions on the site to the Telegram channel. Let’s say that you started a new campaign or launched a website and want to receive real-time notifications about new orders. Checking conversions inside Google Analytics can be time-consuming. So what is the best way to send information about user activity on your site or orders from specific traffic sources? We created a Telegram tag for the Google Tag Manager Server container that can send notifications about user actions on the website to the Telegram channel. [We also have a similar tag for Slack notifications.](https://stape.io/blog/send-slack-notifications-using-google-tag-manager-server-container) The Telegram tag for the Google Tag Manager server container allows receiving real-time Telegram notifications on every conversion and user action on the site. The notifications can be sent to multiple recipients. You can also use the Telegram tag to send notifications about website errors. It’s an easy way to monitor user activity on the site. How does the Telegram Tag for Google Tag Manager server container work? Whenever a conversion takes place, a message gets pushed into the channel. You can send user or order details inside the Telegram notification or add any information you can get using Google Tag Manager. It can be a traffic source, product name, or category. You can also send notifications to different channels depending on what traffic source is responsible for the conversion. You, your developers, SEO managers, PPC managers, or developers can be subscribers. Telegram tag communicates with telegram API. And the setup is done inside the Google Tag Manager server container. How to send Telegram notification using Google Tag Manager server container 1. [Set up a Google Tag Manager server container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Send required data from Web to Server container. This guide will show how to use the GA4 tag to get data inside the server container. The first step would be to set up GA4 tracking inside the Web container. Add transport URL to the GA4 Configuration tag and set up GA4 event tag that will include required user and event parameters. ![Add transport URL to the GA4 Configuration tag](https://cdn.stape.io/i/618a8c43ce3c4043843350.png) ![set up GA4 event tag](https://cdn.stape.io/i/618a8c52c9b77710302029.png) 3. Go to the Server container, add a GA4 client inside the Server container, and create a GA4 tag that will trigger all requests from the GA4 client. ![  add a GA4 client inside the Server container  ](https://cdn.stape.io/i/618a8c6082609241511174.png) ![ create a GA4 tag](https://cdn.stape.io/i/618a8c6af0f44571325605.png) 4. Create variables inside the Server container that take the necessary event data. ![variables inside the Server container ](https://cdn.stape.io/i/618a8c76ac7aa361588949.png) ![event data ga4](https://cdn.stape.io/i/618a8c81297ca109789150.png) 5. Add a Telegram tag to the Server container. You can add it from the Template gallery or by clicking [this link](https://tagmanager.google.com/gallery/#/owners/gtm-server/templates/telegram-notification-tag). ![Telegram tag to the Server container](https://cdn.stape.io/i/618a8c8c8a1a8204654515.png) 6. Create a new tag inside the Server container -> Tag type Telegram Notification. 7. You will need to add an Access Token to the Telegram tag. Here is a link to a detailed description of how to [create an Access token](https://core.telegram.org/bots#6-botfather). To create a new bot click [this link](https://t.me/botfather), it will open the Telegram app -> Click start -> Type command /newbot -> Telegram will ask you to create a bot name -> In the next step, it will ask you to create a username for your bot; it should end with _bot -> You should see the message saying that your bot was created -> Access token for this bot -> Copy access token and add it inside the Telegram tag. ![bot api in telegram](https://cdn.stape.io/i/618a8c9788f52079807964.png) ![token to access the HTTP api in telegram](https://cdn.stape.io/i/618a8ca44090d720595136.png) 8. Add the channel name. To create a new channel, click on the hamburger menu on the top left corner. Please note that you need to create a public channel. ![channel in telegram](https://cdn.stape.io/i/618a8caf65d20719759445.png) 9. Open the channel that you’ve recently created and invite the bot you’ve created in step #7. To do that, click manage users -> Add a bot name -> Click add. ![add users in telegram](https://cdn.stape.io/i/618a8cbbbb380292754473.png) ![telegram tag ](https://cdn.stape.io/i/618a8cc79dad1679456632.png) 10. Add Notification Text. You can add variables inside the notification text. Add a trigger for the tag. In my case, Telegram notification will trigger after a successful purchase. ![add trigger configuration](https://cdn.stape.io/i/618a8cd22cb0e040301665.png) ![add tag configuration](https://cdn.stape.io/i/618a8cda9cbdf502991319.png) 11. Open the preview mode of the web and server container and test the Telegram tag. If everything works correctly, you will see a message in the Telegram channel, and the tag status will be Succeeded. ![telegram tag](https://cdn.stape.io/i/618a8ce51f499022342221.png) ![telegram google tag manager](https://cdn.stape.io/i/618a8cef4893e998939253.png) Conclusion: That’s about it! You’ve just finished setting up e real-time Telegram notifications. It means you will instantly know when a conversion takes place and will have access to all the user and product parameters. You can upgrade the trigger so it will work only for special products, traffic sources, or only when transaction revenue is more than X. Want to learn how to send Telegram notifications on server? Find out how much it will cost! Click Get assistance, fill up the form, and we will send you a quote. --- # Send Slack notifications using Google Tag Manager server container Source: https://stape.io/blog/send-slack-notifications-using-google-tag-manager-server-container Send Slack notifications from your GTM server container. Get alerts for purchases, abandoned carts, and more. Learn the setup with Slack app and webhooks. We created a tag for the Google Tag Manager server container that sends a notification to Slack. With the help of this tag, you can send any information about user actions on your site to the Slack channel. This tag allows adding variables, such as product and user information, inside the notification. You can notify your team about a new purchase, abandoned cart, or a new quote request from clients. One of the use cases of this tag is to send notifications to the sales team Slack channel about new orders immediately. You can also use this tag to monitor your site stability. How does the Slack tag for the Google Tag Manager Server container work? To send Slack notifications, you will need to have a configured [GTM server](https://stape.io/gtm-server-hosting) container with the user and event data you want to send inside the Slack message. You will also need to create a Slack app and generate a webhook URL for this app. It may sound complicated, but everything can be set up in a few clicks. I will cover all steps in this how-to, including creating a Slack app and webhook URL. Using Slack tag to test if Facebook tracking is blocked by iOS 14 One of the non-standard use cases of the Slack tag is to verify whether Facebook conversion tracking was blocked for iOS 14 users who opted out of tracking. Let’s say you’ve implemented Facebook conversion API, and you’re using a custom subdomain for the tagging server. It means that you can see events in the test events tool inside the Facebook business manager. But how can you verify that Facebook conversion tracking works for iOS 14 users who opted out of tracking? You can set up Slack Tags that will use the same trigger as your Facebook CAPI. Open your FB ad on the iPhone that opted out of Facebook tracking, click on the ad, and test events. If tracking works, you will see Slack notifications. Since Slack and Facebook use the same triggers, you can say that Facebook tracking works too. How to send Slack notifications using the Google Tag Manager server container send slack notifications using Google Tag Manager Server Container https://www.youtube.com/watch?v=dzgVAdY5DMg&ab_channel=Stape 1. [Set up a Google Tag Manager Server container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Open Server container and add Slack tag from the template gallery or by [clicking this link.](https://tagmanager.google.com/gallery/#/owners/gtm-server/templates/slack-notification-tag) ![slack tag in server container](https://cdn.stape.io/i/618a93a9d9401620065848.png) 3. In this example, I will show how to send a Slack notification on a successful purchase. First of all, you need to make sure that the Server container has the required purchase information. If not, you will need to configure it. Let me show you how to send data from the web to the server container. I have a data layer inside the Web container with order information. I will use the GA4 tag to send data from the web to the server container. Inside the Web container, I’ve set up a GA4 Configuration tag with the configured transport URL that sends requests to my tagging server URL. I also set up a GA4 Purchase Event with purchase details. ![ga4 tag configuration](https://cdn.stape.io/i/618a93b527cb0331395098.png) ![ga4 event](https://cdn.stape.io/i/618a93c108d07579272017.png) 4. Inside the Server container, we've added a GA4 tag that triggers every time a GA4 client is claimed. ![client configuration in ga4](https://cdn.stape.io/i/618a93cd158b8275186639.png) ![ga4 tag configuration](https://cdn.stape.io/i/618a93d77a5d5716682639.png) 5. Open the preview mode of the Web and Server container and check if the Server container sees order data. ![web and server container](https://cdn.stape.io/i/618a93e224cc7096167983.png) 6. Create variables inside the Server container that will take event data. Variable type Event Data -> Add Key Path -> Click Save. We will use these variables for the Slack notification. ![server container variables](https://cdn.stape.io/i/618a93ece9f39380445057.png) 7. Go to the Tags tab inside the Server container -> Click New -> Tag type Slack Notification. 8. We need to create a Slack App and then generate a Webhook for it. [Click this link](https://api.slack.com/apps/new) -> Click Create An App -> Select From scratch -> Name your app and select Slack Workspace. ![slack api](https://cdn.stape.io/i/618a93f8ef564840534914.png) ![slack api from scratch](https://cdn.stape.io/i/618a940559def255888050.png) ![slack api name app](https://cdn.stape.io/i/618a94107a054528252116.png) 9. Generate an incoming webhook for the app that we’ve recently created. Click Incoming Webhook -> Click the Activate Incoming Webhooks toggle to switch it on -> Scroll down and click Add New Webhook to Workspace -> Select channel you want to send notifications to and click Allow -> Copy the Webhook URL. ![slack api incoming webhooks](https://cdn.stape.io/i/618a942341cb9106004837.png) ![slack add new webhook to workspace](https://cdn.stape.io/i/618a942f831f7713107837.png) ![slack tag test ](https://cdn.stape.io/i/618a943b9cf09630260136.png) 10. Paste Webhook URL into the Slack Tag. ![webhook url copy](https://cdn.stape.io/i/618a944b00f83549547695.png) ![webhook url](https://cdn.stape.io/i/618a9456627d6684105244.png) 11. Create a Slack notification text. You can add variables here. Add a trigger and click save. ![slack notification text](https://cdn.stape.io/i/618a946269af1820925766.png) ![slack trigger configuration](https://cdn.stape.io/i/618a946e11d66296426301.png) 12. Open the preview mode of the Web and Server containers and test if notification works. ![slack tag web and server](https://cdn.stape.io/i/618a947baa42f824175439.png) 13. Publish web and server containers. Conclusion The developers and enterprises are continuously looking for new solutions to facilitate their workflow with Slack better. I hope this post will help you set up Slack notifications for the critical events on your site. Want to learn how to send Slack notifications on server? Find out how much it will cost! Click Get help, fill up the form, and we will send you a quote. --- # How to integrate ActiveCampaign with the website using Google Tag Manager server container Source: https://stape.io/blog/how-to-integrate-activecampaign-with-the-website-using-google-tag-manager-server-container Using ActiveCampaign tag for the Google Tag Manager server container you can fully integrate your website and ActiveCampaign without developers' help. We created an ActiveCampaign tag for the Google Tag Manager server container to help connect websites with ActiveCampaign. The benefit of using this tag for the server container is that you can fully integrate your website with ActiveCampaign without the help from developers. Now, you can set up the integration using the Google Tag Manager Server container. The ActiveCampaign tag for the Google Tag Manager server container allows tracking events, creating or updating contacts, or both. What is ActiveCampaign? ActiveCampaign is an online CRM with feature-rich email marketing and sales functionality. Since one of the essential features is automation, they allow an automatic transfer of all your contacts and contact information into your ActiveCampaign CRM. ActiveCampaign is a powerful email marketing and CRM software that makes it easy to cultivate and nurture relationships. You can get started right away with its easy-to-use features, such as built-in reporting and geo-tracking. ActiveCampaign allows tracking user behavior on the site and sets up email automation based on their activities. Integrating your site with ActiveCampaign Let’s say that you have an e-commerce store selling toothpaste. And you want to add every new customer to a contact list inside ActiveCampaign and send them a reminder about buying a new toothpaste. To do that, you need to send this new contact to ActiveCampaign and add a parameter that will differentiate those who purchased. Previously, it was only possible with the help of developers because ActiveCampaign allows utilizing only the API method for adding contacts. We wanted to create a more straightforward solution for integrating sites with ActiveCampaign. So now, you can do that inside the Google Tag Manager server container using our ActiveCampaigns tag. And while you do not need any help from developers, you need to understand how to set up a web and server Google Tag Manager container. If you already set up server-side Universal Analytics, GA4, or Facebook, you should have all the data ready inside the web and server Google Tag Manager container. Ok, let’s dive in. How ActiveCampaign tag for Google Tag Manager server container works ActiveCampaign tag for Google Tag Manager server container will communicate with ActiveCampaign API and send event and user data to your ActiveCampaign account. This tag allows to do the following: Track events Create or update contacts Create or update contacts and track events ![Type in Tag](https://cdn.stape.io/i/6707eaa36af07910923183.png) To do any of these events, you need to send this information to the ActiveCampaign: Email. User email. Required field. API URL. To find the API URL for your AC, go to my settings page under the “Developer” tab. API KEY. Each user inside your ActiveCampaign has their API KEY. You can find it on the settings page under the “Developer” tab. First name. User information. Not required Last name. User information. Not required Phone. User information. Not required Event Key. Required and can be found named “Event Key” on Website -> site tracking -> event tracking inside your ActiveCampaign account. Actid. Required and can be found named “actid” on Settings > Tracking > Click Event Tracking API. Event name. Event name that should be added inside the AC. Event Data. Parameters you want to add to the event. ![Event information in the tag](https://cdn.stape.io/i/6707eab78511c625599694.png) How to integrate your website with ActiveCampaign https://youtu.be/j5doZliLsxs?si=808G0GLcpkvZjSD2 1. [Set up a Google Tag Manager server container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. [Add custom subdomain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). This step is highly recommended but not required. 3. Go to server GTM → Tag Templates → add [ActiveCampaign template](https://tagmanager.google.com/gallery/#/owners/gtm-server/templates/activecampaign-tag). ![Add ActiveCampaign template](https://cdn.stape.io/i/66e43081c6f3f105172653.png) 4. Go to the “Tags” section → click “New” → choose “ActiveCampaign” as tag configuration. ![Choose “ActiveCampaign” as the tag configuration](https://cdn.stape.io/i/66e430a6716eb648710935.png) 5. We will consider how to create a contact and add a purchase event as an example. To do it follow the steps below: 5.1 Choose the third option in the tag “Create or update contact and track event”. 5.2 Add an email (we use the variable for this case). 5.3 Add API URL and API Key. You can find it in your ActiveCampaign account (Settings → Developer → copy API URL and API Key). ![API Access in ActiveCampaign](https://cdn.stape.io/i/6707eacf12644185144820.png) 5.4 Add the contact parameters - First Name, Last Name, Phone. 5.5 Add “Event key”. To find it go to your ActiveCampaign account (Website → Site Tracking → Event Tracking) ![Event Key](https://cdn.stape.io/i/66e431419c78e856646248.png) 5.6 Add “Acid”. It can be found in the same section as “Event key”, just click on “Event tracking API” → copy “Acid” from the pop-up. ![Acid](https://cdn.stape.io/i/6707eae316e36978189527.png) 5.7 Add the name of the event. Use the same you created in ActiveCampaign. In our case it is “purchase”. ![Example of ActiveCampaign tag configuration](https://cdn.stape.io/i/6707eaf58eb74626405064.png) 6. Add the trigger for the tag. In our case, it is when the Client Name contains “Data Client”. Click “Save”. ![Trigger configuration](https://cdn.stape.io/i/6707eb09d8b88518741782.png) Test the setup Using GTM Preview and Debug Mode 1. Click on “Preview” in server GTM. ![Preview in GTM](https://cdn.stape.io/i/6707eb1b621b6722078189.png) 2. Once you have triggered the event, you should see that the tag has been fired. ![AC purchase in GTM Preview](https://cdn.stape.io/i/6707eb29c7b56242385171.png) Using ActiveCampaign Go to the “Contacts” section and find the contact for which you triggered the event. You should see the event in the “Recent Activities” section. ![Recent Activities in ActiveCampaign](https://cdn.stape.io/i/66e432554dfef227125063.png) Conclusion I hope this guide helped you integrate ActiveCampaign with your website. Detailed description of the integration is a must-have for a successful email marketing campaign. It will help create personalized email campaigns, segment your contacts better, and create more detailed reports. Using ActiveCampaign tag for the Google Tag Manager server container is one of the easiest ways to integrate your site with ActiveCampaign without the help of developers, especially since ActiveCampaign accepts data only from the server. Got confused? All it takes is a few simple questions. Click Get A Quote, fill up the form, and we will send you a quote. --- # Connect your website to Mailchimp using Google Tag Manager server container Source: https://stape.io/blog/connect-your-website-to-mailchimp-using-google-tag-manager-server-container Connect your site to Mailchimp with sGTM! Add users and track events without developers. Learn how to use Mailchimp tag for automation and increased revenue. We created a Mailchimp tag for the Google Tag Manager server container to help you connect your site to Mailchimp. This tag allows you to utilize the Google Tag Manager server container to track events, create and update contacts or even do both simultaneously. The main benefit of using this tag is that you can add new users. Previously, it was only possible with the help of backend developers. It means that you can connect your site to Mailchimp using Google Tag Manager. No developers required. What is Mailchimp Mailchimp (formerly known as an email marketing service) is a popular marketing platform that’s available in 50 countries. Mailchimp web and mobile apps have integrated features such as scheduling and designing emails, audience dashboard, content studio, pre-built automation, marketing calendar, real-time analytics, and much more. Mailchimp is one of the most successful companies in the industry. Thousands of companies are using Mailchimp for their email marketing. That is why we created a tag for the Google Tag Manager server container that helps to connect your site to Mailchimp. What are the ways of Mailchimp website integration There are several ways to connect Mailchimp to your website: Embedded forms are the simplest option — you just paste a code snippet into your site. But they only work for basic email signups and don't support event tracking or contact updates. Direct API integration gives you full control, but you'll need backend developers to build and maintain it. Tools like Zapier or Make are good for simple automations. However, they quickly run out when you need to pass custom data or track specific user behavior. Client-side Google Tag Manager (Web GTM) lets you fire Mailchimp scripts based on user actions, but data sent from the browser can be blocked by ad blockers or browser restrictions. Server-side Google Tag Manager routes data through a server container, so ad blockers won't interfere. In sGTM, you can create and update contacts, track events, and add merge tags without developer assistance. Server-side tagging for Mailchimp It’s never been easier to integrate Mailchimp. All you need to do is set up the Google Tag Manager server container and configured events and parameters. If you’ve already set up Facebook Conversion API using GTM, chances are you already have all the required parameters and events inside the web and server container. You can set up Mailchimp integration in minutes without the input of developers. Mailchimp tag for Google Tag Manager can help you build an integration quickly. This automation will scale your revenue and facilitate all the related processes. It will also help you decrease the hours of manual work. With the help of the Mailchimp tag for the Google Tag Manager server container, you can integrate Mailchimp easily and eliminate time-consuming tasks. How Mailchimp tag for Google Tag Manager server container works Let me first describe all fields and features of the Mailchimp tag. You can add the Mailchimp tag to your server container from the server template gallery or just by clicking [this link](https://tagmanager.google.com/gallery/#/owners/gtm-server/templates/mailchimp-tag). Mailchimp tag for server container has the following features: Event tracking Creating or updating contact Creating or updating contact and tracking events All these options require a user email that is hashed with MD5. Mailchimp Marketing API uses the MD5 hash of the lowercase version of the contact’s email address for API calls. You can use [Data Tag and Data Client](https://stape.io/solutions/data-tag-client) to send users an email that is hashed with MD5. ![hash user data to MD5](https://cdn.stape.io/i/6193f30c7f1e5439972824.png) This tag also allows adding merge tags. You can use merge tags to send personalized emails to your audience. The merge tag looks like text wrapped in special characters: *|EXAMPLE|*. For example, you can use a merge tag to insert a user email dynamically. So when your customers open the email, they will see their name. You can also send a link to your site inside the merge tag and use it for abandoned cart emails. Such emails feature links to the products the users added to carts but ended up not purchasing. The Mailchimp tag also allows sending events together with the event parameters. With the help of events and parameters, you can segment your audience or create triggers. For instance, you can send an event when the user subscribed to the newsletter and add the preferred newsletter types to the event parameters. How to connect your website to Mailchimp using Google Tag Manager server container To connect Mailchimp to your site, you will need a configured Google Tag Manager server container. 1. [Set up Google Tag Manager server container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. [Add custom subdomain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). This step is highly recommended but not necessary. 3. Define what events, event parameters, and user parameters you want to send to Mailchimp. I will show how to send these parameters from the web to the server container using [Data Tag and Data Client](https://stape.io/solutions/data-tag-client) in the following steps. 4. To add a Data Client, [download a Zip file from GitHub](https://github.com/gtm-server/data-client) -> Click on templates inside the Server container -> Click “New” on the Client Templates section -> Click on the three dots on the top right corner -> Click import. ![add data client to the server container](https://cdn.stape.io/i/6193f490993ad056517636.png) 5. Add [Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag) to the Web container. ![add data tag to web Google Tag Manager ](https://cdn.stape.io/i/6193f429c9570598369022.png) 6. This example will show you how to add a new user to the Mailchimp list after a purchase is finalized. This user will be added to the Mailchimp list together with the product information. You can use this information, for example, to create up-sell and cross-sell campaigns. I have a data layer inside the Web Google Tag Manager container that sends purchase and user information. First of all, I need to create data layer variables that will capture the parameters I want to send to Mailchimp: user email, first name, last name, product name, ID, SKU, and category. 7. I will set up Data Tag inside the Web container to pass these variables to the Server container. Create new tag -> tag type Data to GTM Server Side -> select event type -> add GTM Server Side URL and GTM Server Preview HTTP header (you need it to see Data Tag requests inside the server container) -> add user and event parameters. Once done, click save, open Web and Server preview modes, and check that the Server container sees the information you’ve sent using Data Tag. You should send the user email in two ways: one should be hashed with MD5, add it in the User Data, and the second one should be sent inside the Event Data without any transformation. 8. In this step, I will create variables inside the Server container to capture user and event parameters sent from the Web container using a Data Tag. Create new variables -> type Event Data -> add Key Path ![create event data variable](https://cdn.stape.io/i/6193f4e9d4242015029678.png) 9. Create a new tag inside the Server container -> Add Mailchimp tag to the server container using [this link to the server template gallery](https://tagmanager.google.com/gallery/#/owners/gtm-server/templates/mailchimp-tag)-> tag type Mailchimp -> select event type -> add list ID and Mailchimp API Key -> Add Contact information and Event information -> Click save. Once done, open Web and Server preview mode and check that the Mailchimp tag worked and contact was added to the Mailchimp list. ![MailChimp track events server-side ](https://cdn.stape.io/i/6193f5f367442130624773.png) 10. Publish web and server containers. Conclusion With the Mailchimp tag for the Google Tag Manager server container, you can add new users and track events for existing users. Ultimately, it will help you to grow your subscription list and boost sales. But above all, it allows setting up the integration without the help from developers – all done inside the Google Tag Manager web and server interface. Want to connect your website to Mailchimp? We can help you to do that! Click Get help, fill up the form, and we will send you a quote. --- # Set up Klaviyo website event tracking using server Google Tag Manager Source: https://stape.io/blog/set-up-klaviyo-website-event-tracking-using-server-google-tag-manager This guide will show you how to set up Klaviyo website event tracking with server Google Tag Manager. It's all inside the GTM interface! [Klaviyo](https://www.klaviyo.com) is a marketing platform built for ecommerce businesses that want to use their customer data to send smarter emails and texts. It helps brands create personalized campaigns based on real behavior – like browsing activity, purchases, or engagement – so they can drive more sales and build stronger relationships. With Klaviyo, companies can automate key messages, track performance, and grow their audience without relying on guesswork. What is Klaviyo server-side tracking? [Klaviyo server-side tracking](https://stape.io/solutions/server-side-klaviyo-tag) is a method of sending website event data – such as product views, cart additions, and purchases – directly from a server to Klaviyo’s API, bypassing the browser. This setup is typically implemented using server-side Google Tag Manager (sGTM) and platforms like Stape. By handling data on the server, businesses avoid issues caused by browser limitations, ad blockers, and cookie restrictions, ensuring that key user actions are reliably captured and sent to Klaviyo. Unlike client-side tracking, which relies on JavaScript running in the user’s browser, server-side tracking allows for greater control over what data is sent and when. It improves event accuracy, enhances attribution, and supports better compliance with data privacy regulations. With Stape’s server-side Klaviyo tag, brands can track events without depending on Klaviyo.js, reduce frontend script load, and maintain clean, consistent data flow into their Klaviyo account. What is Klaviyo’s website event tracking? Klaviyo’s website event tracking allows you to create segments and launch automated flows based on how users behave on your site. There are many use cases – for example, if someone adds a product to their cart but doesn’t complete the purchase, you’ll want to remind them what they left behind. That’s where Klaviyo’s event tracking comes in. To trigger a personalized email for abandoned carts, you first need to send a custom event from your site that includes key product details – such as the product name, URL, image, and more. There are several ways to send website events to Klaviyo: JavaScript requests, server-side requests, or via a server Google Tag Manager container. Why do you need it? Klaviyo’s website event tracking is essential for delivering personalized, behavior-based marketing that drives revenue. By capturing user actions – like product views, add-to-cart events, and purchases – you can trigger automated emails or SMS messages tailored to where each customer is in their journey. This makes your marketing more relevant, timely, and effective. Without proper event tracking, you miss out on opportunities to recover abandoned carts, re-engage inactive users, or recommend products based on browsing behavior. Server-side tracking via sGTM ensures this data is collected reliably, even when browser-based tracking is blocked, helping you maintain performance and improve marketing results. Benefits of Klaviyo server-side tracking 1. Improved data accuracy. Server-side tracking bypasses browser limitations, ad blockers, and cookie restrictions – ensuring that important events like purchases or cart updates are reliably captured and sent to Klaviyo. 2. Better performance. Offloading tracking logic from the browser to the server reduces the impact on page load times. Unlike Klaviyo’s JavaScript library, which can be heavy, server-side tracking improves site speed and user experience. 3. Enhanced attribution. Accurate, uninterrupted event tracking helps Klaviyo correctly attribute revenue, engagement, and other actions to specific campaigns – even when client-side tracking fails. 4. Easier compliance & control. Server-side setups allow you to manage what data is collected, stored, and sent, making it easier to comply with privacy regulations like GDPR or CCPA. 5. No developer required (with sGTM). Using tools like Stape with server Google Tag Manager, you can implement server-side tracking without writing code. Everything is managed through the sGTM interface. Events you can track in Klaviyo Event Name | Type | Description Viewed Product | Ecommerce | Triggered when a user views a product page. Used for product recommendations. Added to Cart | Ecommerce | Fires when a user adds an item to their cart. Enables abandoned cart flows. Started Checkout | Ecommerce | Tracks the start of the checkout process. Used for checkout reminders. Placed Order | Ecommerce | Captures when an order is completed. Triggers confirmation and post-purchase flows. Fulfilled Order | Ecommerce | Indicates an order has been shipped or delivered. Used for shipping updates. Cancelled Order | Ecommerce | Marks when a user cancels an order. Useful for customer recovery or feedback. Opened Email | Engagement | Logged when a Klaviyo email is opened (via tracking pixel). Clicked Email | Engagement | Captures when a link in an email is clicked. Great for engagement segments. Signed Up | Custom | Tracks account or newsletter signups. Useful for welcome flows. Subscribed to SMS | Custom | Marks user opt-in for SMS marketing. Visited Pricing Page | Custom | Tracks visits to key pages like pricing or features. Often used in SaaS flows. Completed Survey | Custom | Captures post-purchase feedback or satisfaction surveys. Watched Video | Custom | Logs engagement with video content (e.g., product or onboarding videos). How to set up Klaviyo website event tracking using server Google Tag Manager Klaviyo tag setup https://youtu.be/t5fqMfJs3K8?si=CmJGCPX4ErJx43Wa 1. Check if you have already installed [Google Tag Manager server container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Make sure your Google Tag Manager web container has all the info needed about the user. Perhaps, this data will be in the GTM variables or data layer as you already set up Google Analytics or Facebook tracking inside Google Tag Manager Web container. 3. Send required data from the web GTM container to the server container. There are two ways on how to send data to server GTM: – [Using GA 4 server-side configuration](https://stape.io/blog/set-up-ga4-server-side-tracking). – [Data Tag and Data Client](https://stape.io/solutions/data-tag-client). We recommend using Data Tag/Data Client because Data Tag has a built-in feature to store user data. It will help to track Klaviyo events more accurately by storing user email. 4. Add Klaviyo tag to the server container using the server [Template Gallery](https://tagmanager.google.com/gallery/?swcfpc=1#/owners/stape-io/templates/klaviyo-tag). 5. Create a new tag in the server container → Tag type Klaviyo. 6. Configure the tag. 6.1 Type - from the drop-list select the type of action you want to track: Active on site - track contact activity on your website. Event - send events and parameters. Add to list - add a new contact to Klaviyo. Create or update profile - create a new profile or update an existing contact information. 6.2 Private API Key - the key allows reading data from Klaviyo and manipulating sensitive objects, such as lists. To find the Private API Key, please refer to [Klaviyo’s documentation on Private API Key](https://help.klaviyo.com/hc/en-us/articles/115005062267#find-your-api-keys1). This parameter will be required regardless of the action type you’ve chosen to configure the tag. 6.3 Email - add a variable with a user email. 6.4 Klaviyo User ID - is a unique identifier for the user’s profile, automatically generated by Klaviyo. 6.5 Event name (if selected “Event” action type) - specify the event type you want to track. In the previous section, we listed the events you can track with a tag. 6.6 List ID (if selected “Add to list” action type) - to get the List ID, please refer to [Klaviyo documentation on List ID](https://help.klaviyo.com/hc/en-us/articles/115005078647). 6.7 Use Optimistic Scenario - if checked, the tag will call gtmOnSuccess() immediately without waiting for the API response. While this speeds up the sGTM response time, your tag will always report a successful firing status, even if the API call itself failed. 6.8 Store email in cookies - if the email is submitted, store it in a cookie and use this stored value as a fallback when the email is missing during the current event, profile creation, or update. 6.9 Add event/customer properties that you want to send. Here is an example of tag configuration: ![Klaviyo tag configuration example](https://cdn.stape.io/i/692d5ed9db7a8144895216.png) 7. Add trigger. In our case, this tag triggers on a custom event add to cart, claimed by Data Client. ![Trigger configuration example](https://cdn.stape.io/i/692d5f08e94ad737658623.png) 8. Test the event that you’ve set up. You should see that the Klaviyo tag is triggered in the server container and the event was associated with the Klaviyo contact. A simpler way to connect Klaviyo with your server-side tracking setup This guide explains how to implement Klaviyo event tracking through a server-side GTM container. However, server GTM is not the only way to send Klaviyo data from your website to your marketing platforms. If you opt for other server-side tracking solutions, such as Signals Gateway or Conversions API Gateway (CAPIG), you can connect Klaviyo without building and managing a server GTM container setup. The [free Stape Conversion Tracking app for Klaviyo](https://marketplace.klaviyo.com/en-us/apps/01jvvwp56xj2439aaw4zhsa1q4/) is a solution for sending key customer events directly from your Klaviyo CRM. The app automatically forwards Klaviyo events, including clicking a link or unsubscribing, to your connected advertising and analytics platforms. This helps you use first-party customer data more effectively, improve campaign performance, and optimize audience targeting. To start using the app, follow the [step-by-step setup documentation on the Stape Conversion Tracking app for Klaviyo](https://stape.io/helpdesk/documentation/klaviyo-stape-conversion-tracking-app). ![Klaviyo app](https://cdn.stape.io/i/6a5f7f1e05256477241170.png) Choosing the server-side tracking solution The best approach depends on your technical requirements and marketing goals. Here is a quick overview of the main options: [Signals Gateway](https://stape.io/meta-signals-gateway) – a quick and beginner-friendly way to start sending server-side conversion data. It will work best if you need to send data from Klaviyo to a few different platforms. [CAPIG](https://stape.io/fb-capi-gateway) – a practical option for companies that mainly need Meta Conversions API integration. It focuses on sending conversion events to Meta and helps avoid the complexity of managing a full server GTM environment. [Server GTM](https://stape.io/gtm-server-hosting) – the most customizable solution for any tracking needs. It gives you complete control over data processing. It allows you to modify events, add additional parameters, connect multiple platforms, and build a flexible tracking system. Conclusion There is no need for custom code or long waiting times for the next release when using the Klaviyo tag for server Google Tag Manager to set up events tracking. The integration allows you to build advanced flows and custom emails, plus it’s quick and easy if you are familiar with server-side tracking! Setting up Klaviyo website event tracking? We can help you to do that! Click Get A Quote, fill up the form, and we will send you a quote. --- # Facebook Conversions API for BigCommerce Source: https://stape.io/blog/facebook-conversion-api-for-bigcommerce Enhance BigCommerce ad performance with Facebook CAPI via sGTM. Implement event deduplication and precise tag configurations for improved conversion tracking. Integrating Facebook CAPI could make a significant difference if you are a BigCommerce merchant looking to improve your advertising campaigns and get better results. Facebook CAPI allows you to send event and user data directly from your server to Facebook, bypassing potential data loss from browser limitations and ad blockers and adjusting to third-party cookie deprecation. This direct connection can help you better understand customer behavior, enhance ad targeting, and increase conversions. In this blog post, we will discuss the benefits of Facebook CAPI and provide a step-by-step guide on setting up Facebook CAPI for BigCommerce using the [Stape Conversion Tracking app](https://www.bigcommerce.com/apps/stape-server-gtm/). By the way, check out Stape’s [pre-configured templates for Meta CAPI](https://stape.io/gtm-set-up-assistant). Now it is easier than ever to configure your setup: everything is done and all ready for you! How does the Facebook Conversions API work with your BigCommerce pixel? Facebook recommends running browser tracking (Facebook pixel) and server-side tracking (FB CAPI) in parallel. This means you must send identical events from two sources, FB Pixel and CAPI. To prevent overreporting, setting up [event deduplication](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager) using the eventID method is required. The main idea of deduplication is if an event with the same name and event ID is sent to Facebook within 5 minutes, the server event will be deduplicated, and the web one will remain active. However, the Facebook Conversions API can work as a replacement for your standard pixel tracking. Though Facebook does not recommend using only server tracking, it may improve your site’s page speed. ![Facebook Conversions API BigCommerce](https://cdn.stape.io/i/6193f0e1c2593022861850.png) What events and parameters can you send from your BigCommerce site using Facebook Conversions API? Facebook Conversions API can support all types of FB events, including standard and custom. To help Facebook better attribute server events to users’ profiles, it's highly recommended sending user data together with server events. For each server event, Facebook will assign [event match quality](https://stape.io/blog/how-to-improve-event-match-quality-facebook) ranging from 0 to 10, which depends on the number and quality of the user data associated with the event. Here’s an example of user parameters and a difference between server and browser events: ![Facebook Conversions API event match quality](https://cdn.stape.io/i/6193f11686280428183473.png) All Facebook events that you send from the server will have an event match quality score. You can get a maximum of 10 points, and the score you get depends on the number of user parameters you send to Facebook. It is required to send at least one customer parameter like email, browser, or IP address. Facebook also recommends sending [_fbp and _fbc parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc). Benefits of Facebook Conversions API for BigCommerce Custom scripts that extract user data from BigCommerce. Pre-built web and server Google Tag Manager templates that you can effortlessly import to your account. Tracking all checkout events and pageview event. How to set up a Facebook Conversions API on your BigCommerce site 1. [Configure server Google Tag Manager container on stape.io](https://stape.io/blog/how-to-start-with-server-side-tracking). 2. Configure [Stape Conversion Tracking app for BigCommerce](https://www.bigcommerce.com/apps/stape-server-gtm/). 2.1. In the General tab are all the settings related to installing the GTM snippet on all pages of your BigCommerce website. ![General tab](https://cdn.stape.io/i/668d282450d7d943444994.png) Insert GTM snippet Here you need to specify your GTM web container ID. Custom domain It is extremely important to use your own subdomain for first party cookies to work correctly. If you do not already have a subdomain added to your sGTM container, you can [use this guide](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) to add it. Custom Loader An optional parameter, but its use is highly recommended to increase protection against ad blockers. Specify your Stape container identifier here. Follow [this guide](https://help.stape.io/hc/en-us/articles/9697466601373-How-to-find-the-Stape-container-identifier) to find Stape container identifier. Cookie Keeper You can learn more about Cookie Keeper power-up [on this page](https://stape.io/solutions/cookie-keeper). This allows you to minimize the impact of the latest Safari ITP restrictions. Before activating this feature, make sure you have it enabled in Stape admin, in your container. 2.2. Under the Data Layer tab, you may find checkboxes that enable dataLayer events. ![Data Layer tab](https://cdn.stape.io/i/692eedd3cc9d9065780148.png) You may find the list of events the app will be pushing below. The events will hold product and user information (if it is available at that point of time), so you could easily use this data to report to any advertising and/or analytics platform of your choice. view_collection view_item add_to_cart view_cart remove_from_cart begin_checkout add_payment_info purchase The Decorate DataLayer event name option lets you decide whether to add the _stape suffix to event names to avoid conflicts with your existing GTM setup; when it’s turned off, events keep their standard names. 2.3. Under the Webhooks tab, you may configure the webhooks to be sent to a specified URL for purchase and refund events. With purchase webhook you’ll also receive one of the statuses that is assigned to the order: AWAITING_FULFILLMENT, COMPLETED or AWAITING_PAYMENT. ![Webhooks tab](https://cdn.stape.io/i/668d28a11999c866302522.png) 3. Send data to the server Google Tag Manager container. There are two most popular ways to do that: [With server-side Google Analytics 4 configuration](https://stape.io/blog/set-up-ga4-server-side-tracking) [Data Tag/Data Client](https://stape.io/solutions/data-tag-client) Configure Facebook CAPI tag inside sGTM Facebook tags by Stape have two behaviors: Inherit from the client and Override. If you select the inherit option, the FB CAPI tag will listen to the event data and try to parse and map all data it can identify to send to the Meta CAPI. If you select override, then you must specify all parameters manually. Below are examples of configuring FB CAPI for each of these tag behaviors. ‘Inherit’ option: We will automatically convert your GA4 events into corresponding Facebook standard events. 1. Add a [Facebook Conversions API tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) to your server GTM container by clicking Add to Workspace. ![Facebook Conversions API tag](https://cdn.stape.io/i/668d2b82bffcf776550691.png) 2. Create a new tag and select the tag type Facebook Conversions API Tag. Select Inherit from client and add: [FB API Access Token](https://developers.facebook.com/docs/marketing-api/conversions-api/get-started#access-token) [FB Pixel ID](https://www.facebook.com/business/help/171689010314963) [Test ID](https://www.facebook.com/business/help/ServerTestEventsTool) ![Facebook Conversions API tag configuration](https://cdn.stape.io/i/668d2bd78fce3556844380.png) 3. Add a trigger. Click triggers → + in the top right corner → trigger settings and select a custom trigger → this trigger will fire on Some Events → Client Name equals GA4. Click Save. ![Facebook Conversions API tag configuration](https://cdn.stape.io/i/668d2bf2cce52337267343.png) 'Override' option: In this case you will need to manually configure each Facebook CAPI tag in server GTM. We will show the add_to_cart event as an example, the configuration of other events are similar. 1. Extract event_id variable from the sGTM event data. To do so create a new variable with the variable type Event data and add key path event_id (make sure it matches with the event parameter name that you’ve specified in the web GTM container). ![Facebook Conversions API tag configuration](https://cdn.stape.io/i/668d2c332eee5937584144.png) 2. Open server GTM container and add [FB CAPI tag template](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) from the template gallery. ![Facebook Conversions API tag](https://cdn.stape.io/i/668d2b82bffcf776550691.png) 3. Create a new tag with the tag type Facebook Conversions API → select override in the Event Name Setup Method and the event type AddToCart. Add: [FB API Access Token](https://developers.facebook.com/docs/marketing-api/conversions-api/get-started#access-token) [FB Pixel ID](https://www.facebook.com/business/help/171689010314963) [Test ID](https://www.facebook.com/business/help/ServerTestEventsTool) ![Facebook Conversions API tag configuration](https://cdn.stape.io/i/668d2cabd8743277754681.png) 4. Add a trigger. In my case it is a Custom event with the event name add_to_cart and a client name equals GA4. Click Save. ![Facebook Conversions API tag configuration](https://cdn.stape.io/i/668d2bf2cce52337267343.png) Conclusion The great thing about implementing Facebook Conversions API into your BigCommerce store is giving Facebook more reliable information about site visitors. If you need any help implementing FB CAPI into your BigCommerce store, let us know what kind of help you need. Setting up a Facebook conversion API on BigCommerce? We can do it for you! Just click Get assistance, fill up the form, and we will send you a quote. --- # Integrate Klaviyo with your website using Google Tag Manager Server container Source: https://stape.io/blog/integrate-klaviyo-with-your-website-using-google-tag-manager-server-container Using the Klaviyo tag for the Google Tag Manager server container, you can integrate Klaviyo with your site using the server container events and parameters. Klaviyo Tag for the Google Tag Manager server container is a custom tag that will help you to add new users, send events and parameters from your site to Klaviyo. With this tag, you don’t need to ask your developers to set up the integration. Using this custom tag for the Google Tag Manager server container, you can integrate Klaviyo using the server container events and parameters. The power of [Klaviyo server-side tracking](https://stape.io/blog/set-up-klaviyo-website-event-tracking-using-server-google-tag-manager) cannot be underestimated when it comes to how much revenue it can make for your business, which is why we want you to know about this latest development from us. With the help of our custom tag, there’s no need for any development work to set up the integration between your site and Klaviyo. The setup is done inside the Google Tag Manager server container interface and processed by Klaviyo tag for the Google Tag Manager server container. That is a great way to save time and money on your marketing efforts. So make sure you take advantage of it! Klaviyo JavaScript can slow down your page speed. Many users find that the new Klaviyo onsite js is large and takes a long time to load, negatively impacting their PageSpeed scores, especially on mobile devices. Setting up a server-side Klaviyo integration will help you avoid these issues while still taking advantage of all of its features. Klaviyo will facilitate every aspect from customer acquisition to conversion optimization, which means more revenue for your business. So what are you waiting for? Make the most of this latest development by setting up site integration today – everything is done inside the GTM server container UI. No developers required. How to integrate Klaviyo with your site using the Google Tag Manager server container If you have email campaigns, it’s essential to integrate your site and Klaviyo. The more information about user actions you send to Klaviyo, the more possibilities you have for segmenting lists, automating campaigns, and sending highly targeted and personalized emails. Klaviyo has some pre-built integration for sites that use standard CMS like Shopify. But what if you have a custom site or want to track additional events like add to wishlist, form submits, or site search? Or maybe you want to send other events from your Shopify, BigCommerce, or WordPress store? Klaviyo is the best way to improve your email marketing and drive up conversion rates. But bear in mind that there will be a lot of work cut out for you if you want to implement it on your site. Server-side Klaviyo integration has two main benefits over JavaScript: Server-side tags won’t overload your website. As a result, your website will have higher PageSpeed scores, which may positively affect your organic positions. Some users complain that the new version of Klaviyo JavaScript takes 9 seconds to load. SS Klaiyo tag can add new users to Klaviyo. Previously it required backend integration. Using our Klaviyo Tag for the Google Tag Manager, you can: add new users to Klaviyo track user activity on-site send events and parameters Unfortunately, this tag does not support Klaviyo Forms. Klaviyo https://youtu.be/t5fqMfJs3K8?si=CmJGCPX4ErJx43Wa 1. First of all, you need to create and set up a Google Tag Manager server container. [Follow this guide on setting up the GTM server container.](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) 2. Once you’ve set up the server container, you need to define what user data you want to send and when you want to send it. After that, make sure that the Google Tag Manager Web container has this information. Chances are you will have this information inside the GTM variables or data layer if you used the Google Tag Manager Web container to set up Google Analytics or Facebook tracking. 3. In this step, you need to pass information from the Web Google Tag Manager container to the Server container. I recommend using our [Data Tag and Data Client](https://stape.io/solutions/data-tag-client)for that. The tag and client were designed to send information from the web container to the server, including variables, data layer, events, etc. Data Tag sends information from the web container, and Data Client retrieves this data inside the server container events data. 4. Add the Klaviyo tag to the server container from the [Template Gallery](https://tagmanager.google.com/gallery/?swcfpc=1#/owners/stape-io/templates/klaviyo-tag). ![Add Klaviyo tag](https://cdn.stape.io/i/692da2a9054cd256622064.png) 5. In this example, I will show you how to send purchase events to Klaviyo, assign this event to the existing user or create a new user. Go to the tags section inside the server container → Click New → Select Klaviyo tag that you’ve recently added → Add tag name → Add your Klaviyo Private API key ([how to find Private API key](https://help.klaviyo.com/hc/en-us/articles/115005062267-How-to-Manage-Your-Account-s-API-Keys#find-your-api-keys1)). Select event and add variable that includes user email. Klaviyo tag will use email to assign events to Klaviyo profile. If there is no user with this email, it will create a new user. This tag should trigger on the purchase event. ![Purchase event setup in Klaviyo tag](https://cdn.stape.io/i/692da2f55c429208934439.png) 6. Let me also show you how to get user email using Data Tag for the Google Tag Manager Web container. After adding a tag to your workspace, select a standard event name Purchase. Add GTM server-side domain and GTM Server Preview HTTP header (preview header is required if you want to see Data Tag information inside the Google Tag Manager server preview mode) To send user email on the purchase event, click on the user data, select an email address and add a variable that has user email. This tag should trigger the purchase event. You should also add [Data Client](https://stape.io/solutions/data-tag-client) to the server container. It will listen to Data Tag and add information to the event data inside the server container. ![Data tag - Stape](https://cdn.stape.io/i/61940fdb327a8791117991.png) 8. Open Preview and Debug mode of the Server and Web containers (make sure you’ve added a GTM Server preview HTTP header, it is required to see Data Tag events inside the Server container preview more. You can find it by clicking the three dots in the top right corner of the Google Tag Manager Server container preview mode and choose “Send requests manually.” ) 9. Once you’ve verified that the Klaviyo tag triggers inside the Google Tag Manager Server container and sends all the parameters, go to your Klaviyo account and check if that event was added to the user. Don’t forget to publish your changes. A more flexible way to connect Klaviyo to your server-side setup This guide shows how to integrate Klaviyo using a server GTM container. However, if your server-side tracking is built on Signals Gateway or Conversions API Gateway (CAPIG) instead of server GTM, you can integrate Klaviyo with the website using a [free Stape Conversion Tracking app for Klaviyo](https://marketplace.klaviyo.com/en-us/apps/01jvvwp56xj2439aaw4zhsa1q4/). The app automatically sends important Klaviyo CRM events (such as clicking a link or unsubscribing) to your connected platforms. This makes it easy to activate first-party CRM data for campaign optimization. To get started with the app, follow our [step-by-step documentation for the Stape Conversion Tracking app for Klaviyo](https://stape.io/helpdesk/documentation/klaviyo-stape-conversion-tracking-app). Which server-side solution is right for you? If you're just getting started with server-side tracking, here's a quick comparison: [Signals Gateway](https://stape.io/meta-signals-gateway) – the fastest and easiest option to deploy. It doesn't require a server GTM container and is ideal if your goal is to send server-side conversion events to supported platforms with minimal configuration. [CAPIG](https://stape.io/fb-capi-gateway) – best suited for businesses focused primarily on Meta advertising. It provides a dedicated implementation of the Meta Conversions API without the complexity of managing a server GTM container. [Server GTM](https://stape.io/gtm-server-hosting) – the most flexible solution. It enables you to customize event processing, enrich and transform data, integrate with multiple analytics and marketing platforms, and maintain full control over your server-side tracking. Conclusion Having Klaviyo integrated with your site will help you utilize email marketing campaigns more efficiently. Klaviyo Tag for the Google Tag Manager server container allows you to set up the integration with no custom code required or long waiting time. If you have any questions about the Klaviyo tag or other tags, contact us at [support@stape.io](mailto:support@stape.io?swcfpc=1) --- # Sending data from the Google Tag Manager web container to the server container Source: https://stape.io/blog/sending-data-from-google-tag-manager-web-container-to-the-server-container Discover how to send dataLayer variables, custom parameters, or any other data from the web to the server container with Data Tag. Having reliable data in the server Google Tag Manager is a key to accurate [server-side GTM](https://stape.io/gtm-server-hosting) tagging. One of the most popular ways to send data from web to server GTM is by [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking). GA4 has its limitations. That is why we created [Data Tag and Data Client](https://stape.io/solutions/data-tag-client) that should work together to deliver event and user data from web to server GTM. In this article, I want to show you how to use [Data Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag). This custom tag sends parameters from the Google Tag Manager Web Container to the Server Container. When used together with the [Data Client](https://github.com/gtm-server/data-client) for the Google Tag Manager server container, it allows sending data layer variables, custom parameters, and other data from the web to the server container. As a result, Data Client retrieves information from the Data Tag into the Google Tag Manager Server Events. How to use Stape Data Tag and Data Client [Step-by-step guide] https://youtu.be/QOhvIgHU1Sg How to send data from the Google Tag Manager web to the server container Data Tag use cases 1. Data layer from the web to the server container. The first use case that comes to mind is sending a data layer from the web container to the server. With the help of this data, you can feed additional parameters to your server-side tags. On the screenshot below, I used these settings to send the data layer to the server container: Custom event: {{event}} Enabled send all from data layer Enabled send common data This data tag fires on all enhanced e-commerce events. ![send data from web gtm to Server GTM ](https://cdn.stape.io/i/618beb676ce93631394374.png) In the [server container preview mode](https://stape.io/blog/gtm-preview-mode-and-debugging), you will see that Data Tag sent requests on all e-commerce events, and Data Client received and processed these requests inside the server container. If I click on the event name and check event_data, you should see all the parameters from the web data layer. 2. Sending User Data to Facebook Conversion API. Let’s say that you want to send user data like the first name, last name, or email to Facebook Conversion API to increase your event match quality. You can use Data Tag for that. And if you are using our tag to set up a Facebook conversion API tag, the FB tag will automatically capture user data from the Data Tag. I wanted to send the user email, first name, and last name together with the checkout events in the examples below. I added the user data to the Data Tag on the Web Google Tag Manager container. I’m using static parameters for the test, but you can pass these parameters dynamically using variables. Our Facebook tag automatically captures user parameters from the Data Client and sends hashed information to Facebook. ![send user data from web to Server GTM](https://cdn.stape.io/i/618becc95bd34185329393.png) To double-check if Facebook received these parameters, you can add Facebook test ID to the Facebook server tag and check which parameters Facebook sees in the events manager testing tool. 3. Send custom data from the Web container to any other servers. You can send data from the Google Tag Manager web container to your CRM, Slack, webhooks, etc. This example shows you how to send information about a new purchase on your site to the Slack channel. 1. Make sure that you send the correct information from the Google Tag Manager web container using Data Tag. 2. [Generate a webhook on Slack](https://api.slack.com/messaging/webhooks). 3. Inside the server container, create a new tag and choose a tag type HTTP Request. 4. In the destination URL, add the URL that you’ve generated on Slack. 5. HTTP method POST. 6. In the Request body, add text and parameters that you want to send to Slack. {“text”: “New Purchase \n email: {{email}} \n transation_id: {{transaction ID}} \n purchase_value: {{transaction ID}}”} 4. Store data. If you work with Google Tag Manager quite often, then there has been a time when the data layer (or any other variable) had to be passed on from one page of your site to another. Unfortunately, Google Tag Manager doesn’t have an option to store data and pass it between site pages. For example, it’s possible to send a user email only when it exists on the page. But what if user data is not available on the thank you page, and it can be captured only from the page before the thank you page? Using a data tag, you can store any variables you want to pass to other pages. As an example, I will use an assessment built with Instapage. We needed to set up a lead event for the Facebook conversion API. While submitting the assessment, the user had to enter details like email, phone number, first name, etc. This user information was available on the assessment pages but not on the thank you page. To have a high event match quality score on Facebook, you should send user parameters together with the CAPI event. That is why I used Data Tag to store user data in the local storage. I created a Submit application Data tag that takes user parameters from the data layer and stores them in the Local Storage. This tag triggers when a user clicks on the submit assessment button. To enable data storing in the Data Tag, select the storing option next to the data you want to store. ![store user data in cookies web google tag manager](https://cdn.stape.io/i/618bedb9abf6d498787574.png) Then, I added a new variable type in the web container (you can download it [using this link.)](https://github.com/stape-io/data-variable?swcfpc=1)Create new variables for all data that you stored. And finally, I created a Lead Data Tag that sends stored data to the server container. 5. Retrieve any incoming request. You can use Data Client to retrieve any incoming requests. To do that, you need to modify Path Settings. It can be used, for example, to retrieve data from Webhooks. We have this article that describes [how to use incoming webhooks](https://stape.io/blog/send-data-from-crm-to-facebook-conversion-api-using-webhooks). ![prices incoming requests in the server container](https://cdn.stape.io/i/618bef7358368490597283.png) If you can’t see Data Tag requests inside the server container, it might be because of the following reason: Data Client is not published. Open Server container and publish Data Client. Conclusion Data Tag and Data Client will give a solid source of information to feed into the tags you use inside the server container. With the help of this tag, you can move faster in the deployment of new server-side tracking and technologies. This tag will save time and cost for both IT and marketing – a clear win-win! Want to switch to server-side? You can do it for free at Stape! Click Try for free and explore the advantages! --- # How to set up Facebook event deduplication in Google Tag Manager Source: https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager A quick guide on how to set up Facebook browser and server events deduplication inside Google Tag Manager (web and server container). Using Facebook server-side tracking ([Meta Conversion API Gateway](https://stape.io/fb-capi-gateway)) is getting more popular due to its ability to prevent tracking pixel blocking by ITPs and AdBlockers. Another massive benefit of Facebook conversion API is that it increases FB cookie lifetime. If you haven’t yet implemented FB Conversions API on your site, [follow this guide.](https://stape.io/blog/how-to-set-up-facebook-conversion-api) In this article, we will describe how to set up Facebook events deduplication if you are using both browser and server tracking methods for your site. Related: | [Facebook ad tracking](https://stape.io/blog/facebook-tracking). | [Facebook Lead generation](https://stape.io/blog/facebook-lead-ads). . Why do you need to set up Facebook event deduplication? The Facebook pixel and Conversions API lets you share standard and custom events with FB so that you can measure and optimize ad performance. The pixel enables you to share web events from a web browser, while the Conversions API lets you share web events directly from the cloud server. Both Facebook pixel and Facebook conversion API let you send events. The difference is that pixel sends events from the browser, and CAPI sends events from the server. If you tell Facebook that the browser and server method send identical events, they will accept one and discard another. There are several ways of setting up Facebook tracking, including the following: Using solely browser (pixel) method. It is not recommended by FB because of user tracking restrictions. Using only server tracking. The main benefit of having tracking only on the server is that FB pixel will not overload your website. Your site will load faster, and it will lead to a better user experience. Combine browser and server tracking. Here you have several options: “Send some events from the browser and another from server. For example, [Facebook Conversions API Shopify](https://stape.io/blog/facebook-conversion-api-and-shopify) integration will send all FB events through the browser and purchase events from the server. In this case, you do not need the deduplication.” Send all events from the browser and server. If you decide to use both browser and server events tracking for all your events, in this case, you will need to set up event deduplication. With Facebook event deduplication, FB will receive all your events, understand that events are identical, clean some of them, and keep others. If you combine the browser and server method but do not set up event deduplication, your data will not be correct because all the events will be tracked twice. Facebook requires sending two event parameters for event deduplication: its event name and event ID. You already sending the event name with the existing setup. This article will cover how to configure Facebook event ID inside the Google Tag Manager container. How does Facebook event deduplication work? Facebook has two way of identifying duplicated events that were sent from browser and server: 1. Event ID and event name Facebook recommends this method, and we will cover it in our how-to. For this method, you must use event ID for all events you send via pixel and CAPI. FB will deduplicate Facebook Pixels and Conversion API events with identical event names and event IDs. Facebook gives more credit to the browser event, and if they see similar events and come within 5 minutes difference, they will keep browser events and clean server events. 2. FBP or External ID This method exists but is not recommended by Facebook. In this case, you will need to send the event name, fbp, and/or external_id for all your browser and server events. Facebook compares all these parameters and identifies if they already have a browser event with these parameters, and if they do, they discard server events. FB does not recommend using these events since they can identify deduplication only if the browser event was sent first. It means that if you send a server event first, events will be duplicated. Facebook also can merge events. For example, if you send some enriched data from the server, you can add the missing data to the browser event. That is not a default feature. To enable it, you should contact a Facebook representative. How to set up Facebook event deduplication via Google Tag Manager? We created a [custom Google Tag Manager variable](https://github.com/stape-io/unique-event-id-variable) that generates unique event ID you can use it in your web and server Facebook events. It will allow you to track users both from browser and server and deduplicate events. This method will work if your Facebook pixel is set up inside the Google Tag Manager Web Container and if Facebook conversion API is set up via Google Tag Manager Server Container. You need to have Facebook conversion API setup via Google Tag Manager server container. Please [follow this how-to](https://stape.io/blog/how-to-set-up-facebook-conversion-api) if it’s not yet set up on your site. Note: Stape and Facebook recommend using web + server-side tracking together. Facebook recommends using both Facebook pixel and Conversion API. But if your site will send the same events using both the pixel and Conversions API, events may be duplicated since FB will receive the same information from the browser and the server. Facebook has a deduplication feature. If they know that the browser and the server events are identical, they can keep only one. Setting up event deduplication is a must if you want to send all events from both the server and the browser. Without event deduplication, your data won’t be accurate, and it may affect your Facebook campaigns. To set up FB Conversion API deduplication, you need to send unique event IDs from the browser and the server. The same events from both the browser and the server should have the same event ID. We created a custom variable that generates a unique ID for each event. You can add it to your web container using [this link to the template gallery](https://tagmanager.google.com/gallery/#/owners/gtm-server/templates/unique-event-id-variable). Use this variable to send event ID for Facebook pixel inside the web container and Facebook conversion API using server container. You can pass unique event ID from the web container to the server container using Google Analytics custom dimension or https://stape.io/blog/sending-data-from-google-tag-manager-web-container-to-the-server-container[Data Tag and Data Client](https://stape.io/solutions/data-tag-client). If deduplication is set up correctly, you should see it inside the events manager testing tool. And after you publish all changes to the production, you can click on the event details to see the number of events Facebook received from the browser and the server. How many events they processed and deduplicated. ![Facebook event deduplication](https://cdn.stape.io/i/6172b1a259875279167831.png) ![Facebook event deduplication results](https://cdn.stape.io/i/6172b1a2504bb484795605.png) Facebook event deduplication: real Stape users’ problems solved A [user](https://community.stape.io/t/deduplication-failing-in-meta-event-id-problem/2854) saw huge gaps (30–80%) between Meta lead conversions and real submissions because Facebook event deduplication wasn’t working: only ~35% of browser events had an event_id, while all server events did, resulting in 0% deduplication. The root cause wasn’t timing (Meta’s dedupe window is long enough), but parallel browser-side tracking from other sources (plugins, hardcoded Meta snippets, or tools outside GTM) that sent events without event_id. The fix was to audit and remove extra browser event sources so all browser and server events shared the same event_id, ensuring proper deduplication. [One of our users](https://community.stape.io/t/event-id-modified-when-passing-from-web-gtm-container-to-server-gtm/659) experienced a situation where event deduplication wasn’t working correctly because GTM tag sequencing generated different event IDs for tags triggered by the same event. The solution is to store the event ID in the dataLayer and reuse it across tags instead of generating it multiple times. We explain how to configure such a setup if you’re using [tag sequencing and fix inconsistent event IDs](https://stape.io/blog/gtm-tag-sequencing-event-id-fix) in our guide. Conclusion Facebook conversion API is an excellent solution if you want to track your site users more accurately, bypass ad blockers and ITPs, and extend cookie lifetime. With a combined server and browser method, you will still run Facebook pixels in the browser, making your site heavier. Using this method, you can be 100% sure that you did not miss any users or events on your site. If you have some questions or comments about implementing Facebook event deduplication, please let us know in the comments. Switching to server-side? Click Try for free and check all the solutions and benefits of Stape at no cost! --- # Set up Facebook server-side tracking with Facebook Conversions API Source: https://stape.io/blog/how-to-set-up-facebook-conversion-api This article will show you how to set up Facebook Conversions API via Google Tag Manager Server Container + Events deduplication and hash user data. Facebook Pixel lets you track user activity on your site, collect remarketing audiences, and create lookalike audiences. When implemented correctly, the Facebook Pixel feeds relevant information to Facebook's machine learning algorithms (FB ML), which use this data to show your ads to individuals most likely to convert. For several years, we have tracked events on our sites using JavaScript code, the Facebook SDK within apps, or by uploading offline events. But how do you track users with ad blockers, monitor events outside your site, or extend a cookie's lifetime? This can be achieved by implementing the Facebook Conversions API or [the Facebook Conversions API Gateway](https://stape.io/fb-capi-gateway). This article will focus on [Facebook conversion tracking](https://stape.io/blog/facebook-tracking) and guide you on setting up the Facebook Conversions API via Google Tag Manager Server Container. Additionally, check out Stape’s [pre-configured templates for Meta CAPI](https://stape.io/gtm-set-up-assistant). Configuring your setup has never been easier; everything is pre-configured and ready for you! Related: [Facebook Lead Ads](https://stape.io/blog/facebook-lead-ads). What is Facebook Conversions API? Let's take a look at what the Facebook Conversions API is and how we can use it to improve event tracking, attribution, and data collection on Facebook. The Facebook Conversions API allows you to send events directly from your server to Facebook's server. Facebook CAPI serves the same purpose as the Facebook Pixel but relies on different technology. The policies and restrictions surrounding FB CAPI make it more suited to the needs of the modern tracking environment. Unlike the Facebook Pixel, the Conversions API does not rely on the user’s browser to send tracking information; everything is processed through the cloud server, enhancing data security and accuracy. Unlike the Pixel, Facebook server-side tracking does not depend on what happens in the user's browser, meaning ad blockers, ITP, and iOS restrictions have little to no effect on data collection. This makes it a more stable foundation for conversion tracking, especially as browser privacy restrictions continue to grow. When examining the URLs of Facebook ads, you'll notice that FB appends an additional parameter, fbclid, at the end of almost any URL. The pixel code on the landing page stores this parameter's value in a cookie and sends it along with any Facebook event. In addition to the click ID (fbclid), Facebook uses the browser ID (fbp). The fbp and fbc cookies help Facebook identify the type of user who landed on your site and who converted. Facebook can match users through other parameters such as email, phone number, first/last name. The more user data you send to the Facebook Conversions API, the higher your match rate will be. 💡While most businesses focus on web events, Meta now allows you to sync a physical store with online data. Check our [Meta omnichannel ads guide](https://stape.io/blog/meta-omnichannel-ads-guide#why-does-omnichannel-matter) to learn how to combine online and offline conversions. What are the main benefits of Facebook Conversions API? Facebook server-side tagging, or the Facebook Conversions API, has been available for several years. However, starting in 2021, Facebook began to promote the Conversions API more aggressively. If you have a dedicated Facebook representative managing your ad account, they will likely recommend setting up the Facebook Conversions API. Here are the most important reasons to consider implementing the Facebook Conversions API. See the details below. ![Benefits of Facebook Conversions API](https://cdn.stape.io/i/66f55edc9cb67958979731.png) It can help you track users who have installed ad blockers, those using Safari (or any other browser with intelligent tracking prevention algorithms), or people who opted out of FB tracking in iOS 14/15. This is possible because requests are sent from the server rather than the user's browser. And third-party cookies will not be blocked. With the help of user parameters you send together with FB CAPI events, FB will match events to users in their database. As a result, you will have more reliable data. Extended cookie lifetime. With the Facebook Conversions API, you can extend the Facebook cookie lifetime to 6 months. In contrast, if you do not use the FB Conversions API, Safari limits cookie lifetime to 1-7 days. The Conversions API gives you greater control over your data and a better understanding of the customer journey. You can use the Facebook Conversions API to track events that occur off your site. For example, phone calls or offline sales. Businesses that switch to Facebook server-side tracking typically notice an improvement in reported conversions, not because more conversions are happening, but because fewer are being lost due to tracking limitations. The difference is most noticeable among audiences that heavily use Safari, Brave, or ad blockers. Real-world example of Meta Conversions API value By integrating the Conversions API alongside the Meta Pixel, Ray-Ban was able to significantly improve its advertising results. The combination led to a 36% greater reach on Facebook and Instagram compared to using the Meta Pixel alone. ![Ray-Ban case study results](https://cdn.stape.io/i/677d6ea84b8f5735418608.png) Additionally, the brand saw a 19% reduction in cost per 1,000 views and a 7% decrease in cost per conversion, demonstrating the effectiveness of the Conversions API in optimizing their campaigns and driving better performance. Source: [https://www.facebook.com/business/success/ray-ban](https://www.facebook.com/business/success/ray-ban) Ways of setting up Facebook server-side tracking Using Meta Conversions API Gateway The Meta Conversions API Gateway is the fastest solution for implementing Meta server-side tracking and does not require any specialized knowledge. How Conversions API Gateway works The key feature of the Conversions API Gateway is its environment. Each Conversions API Gateway instance requires a cloud server to manage all communication processes between the Meta Pixel and the Conversions API. For a deeper understanding, check the [Meta documentation on how the Conversions API Gateway works](https://developers.facebook.com/docs/marketing-api/conversions-api/guides/gateway). Once the Meta Pixel is connected to the Conversions API Gateway environment, it will use web events to track data from the server. Therefore, before implementing Conversions API Gateway, it's essential to ensure that web events are 100% accurate and contain all necessary user and product information before implementing the Conversions API Gateway. With Stape, setting up and hosting the Conversions API Gateway is easier than ever. Simply create a Stape account and set up the Conversions API Gateway within Stape. Then, connect the required Meta Pixels to the Conversions API Gateway environment. Conversions API Gateway pros and cons Pros: 1. [Low price](https://stape.io/price-gateway). Stape hosting for Conversions API Gateway costs $10/month per pixel or $100/month for 100 pixels. We also offer a 7-day free trial. Additionally, the Conversions API Gateway is the simplest way to implement the Conversions API, allowing you to save hundreds or even thousands of dollars compared to a manual implementation. 2. Easy setup. You don't need to hire developers or tracking specialists to set up the Conversions API Gateway. The setup process is straightforward and can take less than 1 minute, even for those without technical skills. 3. No maintenance. Updates for the Conversions API Gateway are installed automatically. There is no need to spend time manually updating settings or servers. Even when you add a new event, just set up proper web tracking, and the Conversions API Gateway will automatically start tracking events from the server. Cons: 1. New. The Conversions API Gateway is new, and Meta will likely roll out new functionalities and updates to the existing ones. Therefore, it makes sense to prepare for changes to its features. 2. No support for other platforms. If you want to take full advantage of server-side tracking, server Google Tag Manager (sGTM) might be a better solution. You will still need an instance of Google Tag Manager to manage server Google Analytics (GA), Google Ads, etc. Stape hosting for Conversions API Gateway Stape offers [hosting for the Conversions API Gateway](https://stape.io/fb-capi-gateway) at a cost of $10 per pixel per month or $100 for 100 pixels per month. Besides that, all users receive a 7-day free trial. ![Stape CAPIG pricing](https://cdn.stape.io/i/66ab397c5cfda048157781.png) Stape CAPIG pricing How to set up Meta Conversions API Gateway To set up Conversions API Gateway with Stape, all you need to do is: [Create a Stape account](https://stape.io/fb-capi-gateway/create) if you don't have one. Connect the Conversions API Gateway hub with Meta Pixel. Once you create the Conversions API Gateway container on Stape, we will set up an Amazon Web Services cloud formation stack based on Meta requirements and manage all updates. For a step-by-step guide, please refer to our post on how to [set up the Meta Conversions API Gateway](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway). Check out our article on [comparing Meta CAPI and Meta CAPIG](https://stape.io/blog/meta-conversions-api-gateway-versus-conversion-api) to choose the right solution for your needs. Using the server GTM One of the most accessible ways is to use server Google Tag Manager (sGTM). With sGTM, businesses can send customer data directly to Facebook's servers. If you already use GA4, Facebook server-side tracking via sGTM requires minimal additional configuration, as GA4 events can be reused directly as a data source for the Facebook tag. This makes sGTM the most practical starting point for most setups. Pros of setting up Facebook CAPI via sGTM: Flexible customization options Ability to implement both pure server-side and hybrid (web + server) tracking Opportunity for data enrichment Cons of setting up Facebook CAPI via sGTM: Requires technical knowledge of the server Google Tag Manager Needs cloud infrastructure to host sGTM In this article, we will focus on configuring Facebook server-side tracking via server GTM. How to set up Facebook Conversions API with server GTM? We will use the server Google Tag Manager container to set up Facebook Conversions API. You will need these things to configure Facebook Conversions API: A configured Google Tag Manager web container [A configured Google Tag Manager Server Container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) [Server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Data Tag/Data Client](https://stape.io/solutions/data-tag-client) to deliver data to sGTM. We also have a blog post about the [Tag Manager server container and its benefits](https://stape.io/gtm-server-hosting) on our blog. This video shows how to set up Facebook Conversions API using Google Analytics 4. — Facebook / Meta Conversions API setup + Event Deduplication [Step-by-step guide] https://www.youtube.com/watch?v=ytNnSVodsA4&ab_channel=Stape Steps to set up Facebook Conversions API 1. [Create and set up a server Google Tag Manager container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). 2. Send data to the server GTM container. The two most popular methods for sending data to sGTM are [Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) and [Data Client Stape](https://stape.io/solutions/data-tag-client). 3. Go to your Google Tag Manager Server Container. Add the [Facebook Conversions API tag](https://tagmanager.google.com/gallery/?swcfpc=1#/owners/stape-io/templates/facebook-tag) from the Template Gallery. ![Facebook Conversions API tag for server GTM](https://cdn.stape.io/i/66a21d715d753781989230.png) 4. Create a Facebook Conversions API Tag inside sGTM. Select Tag → Click New → Choose the Facebook Tag that you've added in the previous step. Add your Facebook Pixel ID and Facebook API Access Token (we recommend adding it as a variable since you will need these values for each Facebook event you want to track). If you don't know your Facebook API Access Token, please refer to [Meta's documentation](https://developers.facebook.com/docs/marketing-api/conversions-api/get-started#access-token). ![Facebook Conversions API inherit from client](https://cdn.stape.io/i/6189654eb05fc881008621.png) 5. You have 2 options for configuring our Facebook Conversions API tag: Override. In this case, you'll need to set up Facebook events manually. We will cover how to manually set up Facebook server events in step six. This is the preferred option, but it requires more time and knowledge to implement. This allows you full control over the event’s payload and ensures that your web Facebook events and server Facebook events are identical. Inherit from client. In this case, the tag will match your GA4/Data event's payload to Facebook standard events. If the tag can't match the GA event to the standard FB event, it will send it as a custom event. Everything will be done automatically; there's no need to set up Facebook events. 6. If you've selected the override option, you’ll need to use GA4 or Data Tag/Data Client events to trigger Facebook server events. The Facebook pageview event should trigger on a custom event page_view that was claimed by a specific client (for example, if you chose to use GA4 as a data source for the Server GTM, then you should use the page_view event when the client name equals GA4). To set up other events, go to sGTM preview mode, perform an action on your site that you want to track inside Facebook, and check the event name that GA4 or Data Tag sends to your Server Container. In the screenshot below, we want to set up a Facebook event ViewContent when someone opens the product page on our site. Ensure you also send with your GA4 event / Data Tag from the web container any additional data you want to use for the server event. The example below also uses standard Facebook eCommerce parameters and user data. To do that, we created a new tag inside the Server container, set it to override, selected the standard event ViewContent, added the API Access Token, and Facebook Pixel ID. We also added User Data and created a new trigger with the event name equal to view_item and Client Name equal to GA4. ![Tag configuration](https://cdn.stape.io/i/66a218fabb3f0786210035.png) ![Trigger configuration](https://cdn.stape.io/i/66a2191e37dd5249120404.png) 7. You can pass custom parameters using the fields Server Event Data Override, User Data, and Custom Data. You can send user data to increase the matching score on Facebook via the User Data field. Note that the user information you want to send to the Facebook Conversions API should be hashed. Our Facebook tag automatically hashes the necessary data. You can also enable Event Enhancement to use the HTTP-only secure cookie (gtmeec) in order to enhance event data. When this feature is enabled, the tag will store user data in cookies and enrich events with user data when it is not available. This way, you can increase event match quality, which can improve conversion attribution to campaigns. ![Enable Event Enhancement in Facebook CAPI tag](https://cdn.stape.io/i/64ef0ea725160445444164.png) 8. When you are done setting up all your Facebook events, open Google Tag Manager debug mode and test if Facebook events work correctly. You can also go to your Facebook tag inside the server container and add the Facebook test ID. You can find the test ID inside the Meta Events Manager under the Test Events tab. ![Test Facebook Conversions API](https://cdn.stape.io/i/6172b17968adb455386535.png) 9. Once you've set up and verified that Facebook Conversions API works correctly, you need to remove FB browser tracking or [set up event deduplication](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager). Otherwise, your events will be duplicated. Test Facebook Conversions API Use the GTM server debug tool to verify that base code and FB events are triggering correctly The first step in testing Facebook server-side tracking is the same as for Google Analytics. You need to ensure that events are firing on the correct triggers. Open the GTM debug tool, navigate through your site's pages, and perform the events you want to test. Once you've done it, go to the Tag Manager debugger tab and check the results. First, make sure that the FB base pixel is firing on a page view. If you see the tag status as Fail, check outgoing requests, which should indicate why the tag failed. ![Test Facebook CAPI in server Google Tag Manager](https://cdn.stape.io/i/618d0f76d624d925933321.png) Test Facebook CAPI in server Google Tag Manager If you are using our FB server-side tracking tag, you have two options for sending FB events: Inherit from GA client. In this case, we automatically match GA events to FB standard events. If you are using the inherit option, you will see only the FB base tag inside the GTM debug mode. Override. Selecting the override option requires setting up FB server events manually inside the server container, making them visible in the server debug mode. Facebook testing tool for Facebook Conversions API Open the Events Manager inside your Facebook Business Manager and click on Test Events. You will see a test event code that you should add to your Facebook Tag inside Google Tag Manager. This code will allow you to test Facebook server events in real time. Once you've added the test ID, open your site and perform actions that trigger your FB events. Then return to the Facebook Testing Tool and check the events displayed. In the Received From column, you should see Server. You can click on the event to view the recorded parameters. ![Facebook event deduplication testing tool](https://cdn.stape.io/i/618d18738c9b1748645711.png) Facebook event deduplication testing tool Note that the Facebook Pixel Helper Chrome plugin you used to check Facebook browser events won't work for the Conversions API. That's why you need to check everything in the testing tool. Check that Facebook cookies were extended Note: cookies will be extended only if you are using a custom subdomain inside the tagging URL. For example, your site's URL is example.com, then a custom domain for tagging URL should look like gtm.example.com. The third step is similar to what we did earlier, but with a few differences. To check the expiration date of the Facebook cookies, you first need to generate them. To do this, open your site and add fbclid. Once you've done that, open the developer tools, go to Storage, and click on Cookies. Check that _fbc and _fbp have been extended. ![Check fbp and fbc cookies](https://cdn.stape.io/i/618d193007de8978825390.png) Check fbp and fbc cookies You can also set up Facebook CAPI with GTM Templates With Stape, you can boost tracking accuracy and campaign results with server-side tagging. Based on the platform you use, you can set up tracking quickly and effectively with our custom templates. Follow the step-by-step guides to set up Meta CAPI using server GTM for: [WordPress and WooCommerce](https://stape.io/blog/facebook-conversion-api-for-wordpress) [Shopify](https://stape.io/blog/facebook-conversion-api-and-shopify) [Magento 2](https://stape.io/blog/facebook-conversion-api-for-magento) [BigCommerce](https://stape.io/blog/facebook-conversion-api-for-bigcommerce) [Custom website](https://stape.io/blog/meta-capi-for-a-custom-website-via-server-gtm) Templates and guides for Wix, Shopware, PrestaShop, and more are coming soon. Let us know if you need a [template for another CMS](https://feature.stape.io/?_gl=1*1sw7t9m*_gcl_au*MTA3NDc5NDg4MC4xNzI2MjMwNTMz). Event deduplication for Facebook pixel and Conversions API events Facebook recommends using both the Pixel and Conversions API to track events, but without event deduplication, duplicated data from the browser and server can skew results. Deduplication ensures that only one event is kept by using unique event IDs shared between both sources. Proper setup requires generating and syncing these IDs across browser and server events, which can be tested in Facebook's Events Manager. A common mistake with Facebook server-side tracking is sending events only from the server and skipping the Pixel entirely, as this reduces audience match rates since Facebook relies on browser-side signals like fbp and fbc cookies for user identification. Running both in parallel with proper deduplication gives you the best of both worlds. You get the reliability of server-side data collection combined with the browser signals that Facebook needs to build accurate audiences and optimize your campaigns effectively. Additionally, sending user data via the Conversions API improves match quality and event match scores, enhancing ad performance. User data should ideally come from a data layer and comply with privacy policies. Tools like Stape plugins simplify integrating user data for better Facebook campaign optimization. Send user parameters using Facebook Conversions API To match users who visit your site with their database, Facebook uses User Data for the Conversions API. Facebook requires you to hash some parameters before sending them, but you don't need to worry about that; Facebook's tag will automatically hash all the data before it's sent. The more user parameters you send to Facebook, the higher the chances they will match a user, resulting in a higher event match score. [Sending user parameters from your site to Facebook](https://stape.io/blog/fix-personal-data-violations-meta) is a sensitive topic since you'll be sharing user data with a third-party service. So before sending this data to Facebook, ensure it complies with your privacy policy. Ideally, you should have the user data added to the data layer. If this isn’t possible, try to collect it from the page using custom JavaScript code and send it along with the conversions or events you are interested in. For example all Stape plugins for CMS (for [Facebook CAPI for Shopify](https://stape.io/blog/facebook-conversion-api-and-shopify), [WordPress server-side tracking](https://stape.io/solutions/server-side-tracking-for-wordpress), [Magento 2 Google Tag Manager](https://stape.io/solutions/gtm-server-side-extension-for-magento-2), [GTM app for BigCommerce](https://stape.io/blog/server-side-gtm-app-for-bigcommerce)) add a data layer that also contains user data. You can easily retrieve it from the data layer and add this data to Facebook events in a web container. ![Add data to Facebook events in a web container](https://cdn.stape.io/i/66a21a2f8bffe452621345.png) Then, transfer the required data to the server container (in the payload GA4 or Data tag, depending on what you use). ![Transfer data to the server container](https://cdn.stape.io/i/66e9347d8fdbc883630653.png) Finally, add this data to your server-side Facebook event. ![Add data to the server-side Facebook event](https://cdn.stape.io/i/66a21ab8c3518682707381.png) This way, you will achieve better match quality of your Facebook events, potentially improving the performance of your advertising campaigns, as Facebook will better understand your audience and optimize your advertising campaigns. How to check if there are any Facebook Pixel or Conversions API errors Facebook's Events Testing Tool is a powerful resource that allows you to debug and resolve issues with your Facebook Pixels or server events. If there are errors, they will be displayed in the Diagnostics tab on the toolbar for closer review. Errors marked in red usually require immediate attention and should be fixed right away. Yellow errors are non-critical warnings that you should monitor and address eventually. Facebook allows you to mark issues as resolved or ignore them. If you mark an error as resolved and it recurs, Facebook will show it again in three days. In contrast, ignored problems go to the Ignored section and remain there. When you fix any issues with your Facebook tracking, we suggest marking them as resolved. This way, you notify Facebook that the problems were fixed, and the platform will alert you if these issues recur. What are the most popular Facebook pixel and Conversions API errors, and how to fix them? 1. New Domains Sending Data ![New domains sending data](https://cdn.stape.io/i/617015ca30caa246176916.png) New domains sending data You can see all domains sending data to your Facebook Pixel. If Facebook detects traffic from a new subdomain or domain, it will send you a warning. You can whitelist or blacklist domains using this feature to block traffic from your testing sites or technical URLs. Most likely, you will also see traffic from gtm-msr.appspot.com. This can happen when you run a debugging/publish container or when users visit your site with JavaScript disabled (some bots). To create domain allow or block lists, open the Events Tool in Business Manager → click Settings → scroll down to Traffic Permissions. ![Create allow block list in Facebook](https://cdn.stape.io/i/617015ca3968d086987448.png) Create allow block list in Facebook 2. Event Missing Some Deduplication Parameters ![Event missing some deduplication parameters](https://cdn.stape.io/i/617015ca36ffc158851323.png) Event missing some deduplication parameters This is the second most common Facebook CAPI error based on our experience. This error indicates that you are not sending some deduplication keys for your server events. Facebook uses these deduplication keys: event name, event ID, _fbp, and external ID. ![Event deduplication parameters](https://cdn.stape.io/i/680a56d4592cc775672602.png) Event deduplication parameters From our experience, missing Event ID parameters cause this error 80% of the time. Check if you are sending an event ID for both the Facebook Pixel and the Facebook Conversions API. This event ID should be the same for both the browser and server events, enabling Facebook to recognize the same event name and event ID for deduplication. For example, for PageView events, send the same event ID and event name from both the Facebook Pixel and Facebook CAPI. To test the event ID, open the Facebook Event Testing Tool. If everything is correct, your output should look similar to the screenshot below. That is how Facebook shows it recorded PageView events from both the browser and server, which had the same event ID, indicating that browser events were processed and server events were deduplicated. ![Event deduplication Facebook testing tool](https://cdn.stape.io/i/617015ca4188b676117718.png) Event deduplication Facebook testing tool But there may be situations where you see browser and server events triggered randomly. In this case, check the Facebook event ID; they are likely not identical. You can use our [custom variable](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/unique-event-id-variable) for the web container to configure the Facebook event ID. For more information on Facebook event deduplication, refer to the section above. Sometimes this error can occur if you did not remove the Facebook test ID and published the Facebook CAPI tags to the production environment. We recommend setting up Test ID as a lookup table variable that only functions when debug mode is enabled to resolve this issue. ![Create Facebook test ID Google Tag Manager](https://cdn.stape.io/i/618cfcb03e648255193047.png) Create Facebook test ID Google Tag Manager 3. Server Sending Invalid Match Key Parameters for PageView Event ![Server sending invalid match key](https://cdn.stape.io/i/617015ca4478d818013637.png) Server sending invalid match key Here, Facebook alerts you that the values being sent from the server are not unique or are incorrectly formatted. For example, you might be sending a user IP that includes symbols as well as numbers, or you may have selected the wrong variable, such as sending a phone number in the email field. To identify the issue, open the preview mode of the Google Tag Manager server and web container (if you used GTM to set up Facebook Conversions API). You should see what user parameters were sent to Facebook and whether they were formatted correctly. Test the event, click on the tag in debug mode, and check the values. ![userDataList in Tag Details](https://cdn.stape.io/i/680a5739ad9fd778024690.png) userDataList in Tag Details This error may also indicate that you forgot to include a parameter or that it is incorrectly formatted. For instance, there was a client who wanted to send the user's country and city based on their IP address. Facebook expected to receive actual user address details entered on the site, not those automatically extracted from the IP. This setup led to an error about invalid key parameters. 4. Potentially Violating Personal Data Sent to Facebook ![Potentially violating personal data sent to Facebook](https://cdn.stape.io/i/617015ca4bbd7130120461.png) Potentially violating personal data sent to Facebook This error typically pertains to browser events and indicates that Facebook detected user data in the URL. Some CMSs and tools, like Calendly or PayPal, send user details in the URL after registration or purchase. This error is difficult to resolve, and it requires your developers' attention. They should improve the URL query parameters and remove all user information from the URL. Alternatively, you can follow the [Personally Identifiable Information (PII) removal instructions](https://stackoverflow.com/questions/65339756/how-to-remove-pii-from-url-ga4-w-gtm) and attempt to fix the issue within GTM. Another option is to switch to server-side Facebook tracking only. This will allow you to modify the URL before sending it to Facebook. 5. Increase event match Quality ![Event match quality Facebook](https://cdn.stape.io/i/617015ca5182e371004844.png) Event match quality Facebook For each server event you send to Facebook, an event match quality score is generated. This score depends on the amount of user data you send to Facebook. If you use a custom subdomain for your tagging server, only the User IP, browser ID, _fbp, and _fbc are sent to Facebook's CAPI. Sending only these user parameters results in a match quality score of around 4 out of 10. To achieve a high-quality score, it is crucial to send as many parameters as possible. Facebook uses this data to match users on your site with those in their database. But before proceeding, ensure that sending user data to Facebook complies with your site's privacy policy and relevant regulations. Technically, sending more parameters is beneficial, as it leads to more accurate audience and conversion data, provides Facebook's algorithms with specific information about your users, and improves campaign performance. How can you increase the event match quality score? The answer is simple: send more user data. However, the implementation can be complex. First, check if the data layer is implemented on your site and whether it contains all user data. For example, if users can log in to your site, verify that user details are sent to the data layer upon login. If the [data layer](https://stape.io/blog/end-to-end-guide-on-data-layer-in-google-tag-manager) is not implemented, assign your developers to set it up. Next, ensure that you pass all user parameters from the web to the server container. Additionally, a new feature from the [Data Tag](https://stape.io/solutions/data-tag-client) can help increase match quality. We have added the ability to store user data. For instance, if a user submits a contact form on the site, you can use the Data Tag to store user data in local storage and use it on other pages. 6. Same Event ID Received for Many Event Instances When tracking Facebook events from both the browser and server, Facebook requires a unique event ID for each event. For matching events, the Facebook Pixel event name must exactly match the server event name. The same applies to the event ID; events from the Facebook Pixel should equally match Facebook server events. This process is where deduplication occurs. This error arises when you send the same event ID for multiple events. For example, when a user lands on the product page, two events should trigger: PageView and ViewContent. You must send a unique event ID for each event. The FB events and event IDs should appear as follows: FB browser: PageView, eventID: ‘69’ FB server: PageView, eventID: '69' FB browser: ViewContent, eventID: '79' FB server: ViewContent, eventID: '79' Even though these events trigger on the same page and may use the same trigger in Google Tag Manager for both the web and server container, a unique event ID should be sent for each. The error Same Event ID Received for Many Event Instances will occur in this scenario: FB browser: PageView, eventID: ‘69’ FB server: PageView, eventID: '69' FB browser: ViewContent, eventID: '69' FB server: ViewContent, eventID: '69' In this example, we are sending eventID 69 for both PageView and ViewContent events. But Facebook expects to see a unique eventID for these two events. Solution: add Facebook test ID, open the preview mode for the web and server containers, and test the setup. Once you determine when this error occurs, we can take further steps to resolve the issue. We have created a custom variable that [generates a unique event ID](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/unique-event-id-variable) and recommend using it to set up Facebook event deduplication. You can add the event name to this variable to ensure that the event ID is unique. In this case, even if your events use the same trigger, the event ID will remain unique, as it consists of event_name_eventID. You can read more about Facebook event deduplication in the section above. Event Name mapping By default, the tag attempts to map GA standard events to Facebook standard events. If it cannot match them, the raw event name from the GA client will be used. For example, if you send an event name like this: gtag(‘event’, ‘UserLikedProduct’), you will see the event UserLikedProduct in the Facebook event manager. Below is the mapping scheme from GA events to Facebook events that we use in this tag by default: page_view | PageView add_payment_info | AddPaymentInfo add_to_cart | AddToCart add_to_wishlist | AddToWishlist sign_up | CompleteRegistration begin_checkout | InitiateCheckout generate_lead | Lead purchase | Purchase search | Search view_item | ViewContent contact | Contact customize_product | CustomizeProduct donate | Donate find_location | FindLocation schedule | Schedule start_trial | StartTrial submit_application | SubmitApplication subscribe | Subscribe Google Analytics to Facebook events To simplify migrating your web Facebook GTM tag to the server-side container, we have mapped all data received by the GA client to the Facebook event without requiring additional setup on your part. This also supports GA Enhanced eCommerce events mapping, and of course, the tag can override any event parameters sent to Facebook. For example, if the tag detects that the event type is Purchase, we will determine the product list, currency, and value. In the following sections, we will describe how exactly the data is mapped in each parameter group. ![Facebook tag configuration](https://cdn.stape.io/i/6172c48835f1f716469475.png) Facebook tag configuration Default mapping and overriding Server Event Data Only a few parameters fall under the category of Server Event Data. Refer to [Facebook's documentation on the available event parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/server-event) for more details. Parameters set by default include: event_name | Event Name event_source_url | Page Location action_source | Where your conversions occurred. (For example: website, email, app) event_time | Current Time Default mapping and overriding User Data With the "User Data" tag option, you can override or add any user data that will be sent to Facebook. See [Facebook's documentation on user data parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters) for more details on what data you can add to the call. If the documentation calls for the parameter to be hashed, you must hash it with SHA256 or the hit will not be sent to Facebook. fbc | Cookie value ‘_fbc’ or ‘fbclid’ url parameter if exist fbp | Cookie value ‘_fbp’ external_id | external_id or user_id or userId subscription_id | subscription_id or subscriptionId lead_id | lead_id or leadId ln | lastName or LastName or nameLast fn | firstName or FirstName or nameFirst em | email ph | phone ge | gender ct | city st | state zp | zip country | countryCode Default mapping and overriding Custom Data You can also override any other parameters or add your own using the "Custom Data" section in the tag setup. Check [Standard parameters documentation](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/custom-data) for more details on the data parameters you can include. If the Enhanced eCommerce parameter items exists, set the content_type to product. GA product parameters item_name and item_category map to Facebook content_name and content_category, respectively. The tag also attempts to determine other product parameters, including: value | x-ga-mp1-ev or value currency | currency transaction_id | order_id If the event type is Purchase but the currency cannot be mapped, USD is used as the default value since Facebook does not accept Purchase events without the currency parameter. Facebook server-side tracking: real Stape users' problems solved 1. A user in the [Community](https://community.stape.io/t/low-facebook-audience-match-rate-w-server-side-set-up/930/2) noticed that after switching to Facebook server-side tracking, their retargeting audience was much smaller than GA4 traffic (about 15% match rate). The issue wasn’t broken tracking but unrealistic expectations: Facebook can’t reliably match users using only IP and User Agent. The solution was to follow Meta’s recommended hybrid setup(browser + server with deduplication) and send all available user data (like email or name when possible). This approach improves match quality and audience size, while pure server-side tracking alone limits retargeting potential. 2. Many users in this [thread](https://community.stape.io/t/does-facebook-gtm-template-automatically-send-fbc-and-fbp/2397/8) face issues with Facebook server-side tracking and FBP/FBC mapping, especially on third-party checkouts. Using Stape’s Facebook CAPI template on a first-party subdomain, firing key events on the main domain, implementing hybrid browser+server events for deduplication, and optionally using webhooks solves most problems. Always verify data via browser network tools rather than relying solely on Tag Assistant. Conclusion That's it. We hope you've successfully migrated Facebook tracking to the server side. The Facebook Conversions API is a powerful tool for understanding your customers, tracking their journey through conversion, and supplying more data to optimize Facebook’s machine learning algorithms. --- # Google Ads server-side tracking guide Source: https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords Boost your Google Ads with server tracking. Set up conversion tracking, enhanced conversions, and remarketing for accurate data and improved performance. Server-side tracking for Google Ads is an advanced method for measuring ad campaign performance. Instead of sending data directly from the user's browser, you send it from your own server. This approach uses Google Tag Manager's server container to manage measurement data and offers several advantages over traditional client-side tracking. By shifting data collection to a server you control, server-side tracking helps you get around ad blockers, privacy settings like Intelligent Tracking Prevention (ITP), and third-party cookie limitations. The result is more accurate and secure conversion data. Server-side tracking provides greater flexibility in routing data to multiple destinations, including Google Ads and other platforms. This ensures your data remains intact even as privacy measures become stricter across browsers. Setting up server-side tracking involves creating a server container in Google Tag Manager, configuring Google Ads conversion tags, and integrating with other platforms to centralize and secure your data flow. This setup preserves the integrity of your tracking data and makes your business resilient to upcoming changes in advertising. What is Google Ads conversion tracking? [Google Ads conversion tracking](https://stape.io/blog/google-ads-conversion-tracking) measures what happens after a user interacts with your ad, such as completing a purchase, submitting a form, or adding a product to their cart. This data helps you assess ad performance and powers Smart Bidding, enabling Google to target users more likely to convert based on your specified business goals. By tracking both primary and micro-conversions, you gain insights into which campaigns, keywords, and ads drive results. It also helps optimize ROAS, lower the cost per conversion, and adjust values post-conversion if needed (e.g., for returns), making your ad strategy more effective and data-driven. In addition to online conversions, many businesses also track sales that happen offline, such as phone orders, in-store purchases, or upsells. The [Google Ads Offline Conversion](https://stape.io/solutions/google-ads-offline-conversion-tag) tag lets you send this data directly from your server GTM container to Google Ads, so you don't have to upload files manually. This improves attribution across online and offline touchpoints and ensures Google's bidding algorithms can optimize for customers most likely to convert. Here is the official documentation on Google Ads and server-side tracking: [Google Ads conversions (Google)](https://developers.google.com/tag-manager/serverside/ads-setup). While moving to the server provides a significant boost in data accuracy, it doesn't replace the need for a solid client-side foundation. Understanding [what is an ad tag](https://stape.io/blog/ad-tag-and-click-tag) and how a click tag communicates with the server is essential for any marketing specialist auditing their setup. How to set up Google Ads server-side tracking How to set up Google Ads server-side tracking with Stape https://youtu.be/s-R6mvpiLk4?si=7291KpLQcc7CzGsa In July 2021, Google released Google Ads conversion tracking and conversion linker tags for the Google Tag Manager server container. This update to [GTM server-side tracking](https://stape.io/gtm-server-hosting) allows you to derive more value from your Ads account by providing more reliable server tracking and ensuring more accurate conversion data. Google Ads conversion tracking works exclusively with the Google Analytics 4 (GA4) tag, meaning that if you want to set up Google Ads tracking yourself, you should configure the server-side GA4 tag. Unlike Facebook, Google Ads does not support deduplication, so you should use either web or server-side conversion tracking. Follow the steps below to set up Google Ads server-side tracking. Step 1. Create and set up a Google Tag Manager server container This guide explains [how to set up and host a server container](https://stape.io/blog/how-to-set-up-ga4-tracking-using-google-tag-manager-server-side-container#step-1-create-a-google-tag-manager-server-container). We also have an article that covers the steps for [sending data from the web to the server container](https://stape.io/solutions/data-tag-client). Step 2. Set up server-side Google Analytics 4 The next step is to configure the server-side Google Analytics 4. We have a detailed user manual on [how to set up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) in our blog post. Step 3. Set up the Conversion Linker tag inside the server GTM container In the Server container, set up the Conversion Linker tag. This tag should trigger on all pageviews. ![Conversion Linker tag for Google Ads](https://cdn.stape.io/i/618bbadb343f2625448696.png) Conversion Linker tag for Google Ads Step 4. Create a new Google Ads Conversion Tracking tag inside the server GTM container Create a new Google Ads Conversion Tracking tag in the Server container → add Conversion ID and Conversion Label similar to the web Ads tag setup. Then, you can add Product and User Data (it looks very similar to [how Facebook's Conversions API works](https://stape.io/blog/how-to-set-up-facebook-conversion-api)). If you send user and product data from the web to the server, you can enable these checkboxes and select event data as a data source. Our Ads server conversion triggers on the purchase event. ![Google Ads server - see Purchase tag](https://cdn.stape.io/i/618bbb1ec2273346693499.png) Google Ads server - see Purchase tag That's it for the server container. But Google also added a bonus to the web Google Ads tag. How to set up Enhanced Conversions for Google Ads on the server side You can set up enhanced conversion tracking in the server-side Google Ads conversion tag. This means that it's possible to send user data to Google Ads. Why set Enhanced Conversions up? Improves the accuracy of conversion tracking and bidding. Ensures data security using Google’s SHA-256 algorithm. Collects first-party data (such as name, email address, home address, phone number, etc.). Step 1. Turn on Enhanced Conversions in Google Ads Log in to your [Google Ads account](https://ads.google.com/nav/selectaccount?authuser=0&pli=1&f.sid=2831223618684540017) → Tools & Settings → Conversions → check Turn on Enhanced Conversions. Step 2. Create a User-Provided Data variable inside the web GTM container In web GTM, go to Variables → in the section User-Defined Variables → click New → add the following settings: Variable Type - User-Provided Data Type - click on Manual Configuration Add to the parameters variables as shown in the screenshot below ![User-Provided Data variable in web GTM](https://cdn.stape.io/i/669a3e76917d6574651958.png) User-Provided Data variable in web GTM Step 3. Add User-Provided Data variable to GA4 tag settings Go to the Tags section and find the GA4 tag or create it (click New → Tag Type: Google Analytics: GA4 Event). Add the user-provided data using the user_data parameter, as shown in the screenshot below. Select the variable you created in Step 2 in the User Data section. ![User_data parameter](https://cdn.stape.io/i/6836f498aba9f661924243.png) User_data parameter Step 4. Set Up Conversion Tracking Tag In the server GTM container, go to Tags → New → Tag configuration Google Ads Conversion Tracking. Add triggers based on the needed conversion events. The tag will automatically process user data from GA4 requests. ![Google Ads configuration tag](https://cdn.stape.io/i/669a3f5539b23576340770.png) Google Ads configuration tag How to set up Google ads product remarketing The server Google Ads product remarketing tag works based on the Google Analytics 4 product data. Step 1. Enable Send dynamic remarketing event data inside server GTM container Open the Google Ads Remarketing tag inside the server Google Tag Manager container and enable Send dynamic remarketing event data. ![Google Ads product remarketing](https://cdn.stape.io/i/622b73d58740c264074549.png) Google Ads product remarketing Step 2. Configure product data inside the web GTM container To make dynamic product remarketing work, ensure that in the Google Tag Manager web interface, you've configured product data inside the Google Analytics 4 tags. ![Configure product data inside the web GTM container](https://cdn.stape.io/i/669683dfa7f8a904717659.png) Configure product data inside the web GTM container How to test Google Ads server-side tracking First, test that the Google Ads Conversion tag was triggered in the server container and that the request it sent was correct. ![Test Google Ads server-side tracking](https://cdn.stape.io/i/618bbc80f397a018269055.png) Test Google Ads server-side tracking Check that the FPGCLAW cookie was added. It will work if you add the gclid parameter to the URL. ![Google Ads server-side cookies](https://cdn.stape.io/i/618bbe296669d721802781.png) Google Ads server-side cookies Google Ads server-side tracking: real Stape users' problems solved 1. A user wanted to send Enhanced Conversions server-side for Google Ads, as no data was coming from the web. In the [full thread](https://community.stape.io/t/enhanced-conversion-data-for-google-ads-server-side/2089), the solution was to create a transformation that structures a user data object like the web’s user-provided-data, or to use the dedicated User-Provided Data Event tag in the server container to send the enhanced data correctly. 2. A user implementing Google Ads server-side tracking couldn’t send Enhanced Conversions because user_data from the GA4 SS Configuration tag wasn’t available on the GA4 purchase event. In the [full thread](https://community.stape.io/t/enhanced-conversions-server-side-google-ads-not-working/869), the solution was to use tag sequencing so the GA4 purchase tag fires after the GA4 SS Configuration tag, or to explicitly add the user-collected variables under the user_data key in the GA4 purchase tag. This ensures Enhanced Conversions are sent correctly. 3. A user noticed that view-through conversions were not being recorded in Google Ads when using server-side tracking with Stape, even though GA4 and standard clicks were tracked. In the [full thread](https://community.stape.io/t/google-ads-server-side-tracking-with-view-trough-conversions/1914/2), the solution was to ensure user data is sent along with conversions for Enhanced Conversions. With proper user data, server-side tracking can attribute view-through conversions correctly, improving accuracy for YouTube and display ad campaigns. 4. A user noticed a spike in unassigned traffic after implementing Google Ads server-side tracking via Google Tag Manager. In the [full thread](https://community.stape.io/t/unassigned-traffic-from-google-ads-server-side-tracking/776/2), the main causes were identified as misconfigured UTM tags in ad campaigns and potential double redirects that strip UTM parameters before GA4 can register them. The solution is to verify UTM tagging in ads and check for redirects, ensuring server-side tracking accurately attributes traffic. Conclusion Setting up server-side tracking in Google Ads isn't difficult, but it does require some time and careful configuration. You can implement this type of tracking by using the Google Ads tag for the server container or server-side Google Analytics. If you need help setting up either option, don't hesitate to [submit a help request](https://stape.io/helpdesk/submit-request). We have experience with both methods and would be happy to provide a cost estimate for our services. Do any of these solutions sound right for you? Reach out and let us know which approach fits your needs, or share your challenges so we can help you find the best path forward. --- # Improving website page speed with the help of server-side Google Tag Manager Source: https://stape.io/blog/improving-website-page-speed-with-the-help-of-google-tag-manager-server-side-tracking Server-side GTM PageSpeed improvements are real: moving tags off the browser reduces load time, improves Core Web Vitals, and gives you cleaner data. Website page speed optimization was one of the essential benefits marketers and web developers saw when the first version of [Google Tag Manager server-side](https://stape.io/gtm-server-hosting) was released. It was supposed to happen because tracking scripts would no longer be hardcoded but would be added through Google Tag Manager. In this article, we'll show you how moving tags from the GTM web container to a server container affects your GTM PageSpeed, what the data actually looks like, and which approach makes more sense depending on your setup. Note: You won't see PageSpeed improvements if you run browser and server tracking in parallel. For example, if you use both Facebook Pixel and Conversions API simultaneously, the pixel will still load in the user's browser and slow your site down. This kind of partial setup is one of the most common reasons behind GTM slowing down a site even after teams believe they've already migrated. Why does page speed matter? As early as 2016, [Google established](https://www.thinkwithgoogle.com/marketing-strategies/app-and-mobile/mobile-page-speed-new-industry-benchmarks/) that the ideal website loading time is 3 seconds. At the same time, on average, it takes 22 seconds to load the mobile page fully. We live in a time when people use watch phones more than desktop devices, and smartphones account for more than 50% of all Internet traffic. However, according to Google, mobile phone conversion rates are lower than desktops. That is why the website loading speed plays an essential role in meeting performance standards. It is no secret that users expect a fast site experience. If the landing page is too slow, they’ll close the page or abandon the cart and move on to the competitors’ site. Today, in the mobile-first world, creating fast-loading sites is critical. Users want to have the ability to open any blog quickly and read articles, buy new clothes, check hotel reviews, and so on. According to Amazon’s research, a 1-second delay in page response results in a 1% loss in conversions. That is equivalent to a loss of $1.6 billion in annual revenues for them. As you can see, waiting for heavy pages to load can cost a lot for any company. How does GTM implementation impact PageSpeed? Every tag you add through Google Tag Manager runs as JavaScript in the user's browser. Each script needs to be downloaded, parsed, and executed before or after the page loads, and that takes time. Not every GTM setup behaves the same way, and this is where most of the confusion comes from. How the container is implemented — web or server — decides whether GTM adds load to the browser or takes it away. In the web container, every tag you add (analytics, ad pixels, chat widgets, heatmaps) is a script that loads and executes directly in the visitor's browser. Each one competes for the same limited resources: the main thread, bandwidth, and rendering time. The more tags you stack, the more Google Tag Manager's performance impact compounds, even though GTM itself is a lightweight container. Server GTM vs. web GTM for PageSpeed Server-side GTM changes where the tag execution happens. Instead of dozens of third-party scripts running client-side, your server container receives the data and forwards it on to your marketing and analytics platforms from the cloud. The browser only has to talk to your own server, not to a dozen different third-party domains. That's the core reason the Google Tag Manager PageSpeed gap between web and server setups tends to be so wide. How can Google Tag Manager server-side tagging speed up your website? 2020, Google released a server container for Google Tag Manager and Tag Manager 360. It enables advertisers to move third-party tags from their sites to a new server container hosted in the сloud servers. This way, the website can load faster, tracking can be more accurate, and data can be safer. Moving tags to the server container can help solve this Google PageSpeed error: "Reduce the impact of third-party code — Third-party code blocked the main thread for 550 ms". ![Reduce the impact of third-party code](https://cdn.stape.io/i/6193e3f51e536863130138.png) If you move tags from the web to the server container, tags will be loaded directly into the server container, not inside the browsers. This way, the page will load faster, and it will have a positive effect on the user experience. As you see, it can provide faster page load times, more security for your customer data, and more data management tools. This is one of the clearest examples of how server-side Google Tag Manager can improve website performance without sacrificing tracking accuracy. Tags in the server container only have access to information sent to the server. They cannot access other information that users enter on the site. And since these tags are placed in your server container, you can understand which data tags are collecting information and where the information is sent. Do Google tags impact PageSpeed? Not all tags impact pagespeed equally, and this is an important nuance to keep in mind before assuming a migration will fix every performance issue. A lightweight analytics snippet and a heavy ad-retargeting pixel don't cost the same in load time, even though both are "just a tag." The tags with the biggest footprint tend to be the ones firing multiple network requests, loading additional scripts, or running on every page load rather than on specific events. The most reliable way to see this for yourself is checking your Google Tag Manager PageSpeed Insights report before and after a migration, comparing the third-party code section of the results directly. What is the difference in page speed when tags are placed inside the GTM web container vs. server-side? For this experiment, I used a demo website and compared Google PageSpeed results when tags were added via the GTM web container vs. the GTM server container. Not all tags have the same impact on Google PageSpeed. While doing this experiment, I decided to choose the most popular tags used by my client and the tags that can be moved to the server container: Facebook, Bing, and Active Campaign. GTM server container has native tags for GA4. Here you can find detailed information on [how to set up GA4 tracking using GTM server-side container](https://stape.io/blog/set-up-ga4-server-side-tracking). We also created a custom template to help you [move Facebook pixel to the server environment](https://stape.io/blog/how-to-set-up-facebook-conversion-api). Below are the results of the Google Speed Test. Google page speed showed 95 points on mobile and 100 on the desktop. ![google tag manager website pagespeed ](https://cdn.stape.io/i/6193e45b9cd45414471695.png) We have these tags installed on the server container: GA4, Facebook (base and conversion tracking), Hubspot, and Klaviyo tag. When we moved the pixel to the web container, Google PageSpeed results decreased to 56 points. ![Google PageSpeed results decreased](https://cdn.stape.io/i/6193e9bad8449346579841.png) ![moved pixel to the web container](https://cdn.stape.io/i/6193e92838eb7866256966.png) FAQ Does Google Tag Manager slow down a site? GTM itself is a small, lightweight container and isn't the source of slowdowns. What actually affects speed is the tags running through it. If those tags execute in the browser, as they do in a standard web container setup, they can meaningfully slow a page down. Move the same tags to a server container, and most of that impact disappears. How can server-side Google Tag Manager improve website performance? By shifting tag execution from the visitor's browser to a server you control, the browser has far less third-party code to load and run. This reduces main-thread blocking, cuts the number of external requests the browser has to make, and typically results in higher PageSpeed scores, faster perceived load times, and better data security as a side benefit. How do you test GTM's impact on pagespeed? Run your site through Google PageSpeed Insights before making any changes and note the score, then check the report's third-party code section for tags that are blocking the main thread. After migrating those tags to a server container, run the same test again and compare the two reports directly. The difference in score and in blocked main-thread time will show you exactly how much impact the migration had. Conclusion If you move tags to the Google Tag Manager server container, it will speed up your site. The level of its impact will depend on the tags you are using. In this test, the most popular tags among clients (GA4, Facebook, and Active Campaign ) showed a clear, measurable difference once they were moved server-side. --- # How to export Google Analytics 4 raw data to BigQuery Source: https://stape.io/blog/how-to-export-google-analytics-raw-data-to-bigquery Export GA4 raw data to BigQuery using GTM server: set up GCS, Cloud Function, and BigQuery for data querying. Follow our step-by-step guide. If you use GA4, you can follow official documentation from Google on [how to set up BigQuery Export](https://support.google.com/analytics/answer/9823238?hl=en&ref_topic=9359001). For Google Analytics 4, Google still has not provided free options to export raw data to BigQuery or any other database for that matter. But what if you don’t have plans to migrate to GA4 and want to get the benefits of BigQuery raw data? I decided to solve this question with GTM Server Side tagging and created this how-to article for you. How I send GA4 events from browser to BigQuery table 1. gtag.js sends GA4 event to Google Tag Manager Server container. 2. GA4 client gets the request and triggers JSON HTTP Request Tag. 3. JSON HTTP Request Tag sends data to the URL of the Request To Google Cloud Storage function. 4. GCS function saves data on your GCP Storage bucket. 5. Use BigQuery GCP table type to perform data querying. Things that you should know before you start 1. BigQuery can use Google Cloud Storage bucket as a table. More info about this feature can be found in this [official documentation](https://cloud.google.com/bigquery/external-data-cloud-storage). 2. You can store on GCS 5 GB of data for free. One GA4 request is near 1 KB, so that’s 5 242 880 requests. More details about GCS pricing can be found on the [pricing page](https://cloud.google.com/storage/pricing). 3. The First 2 million requests to Cloud Functions are free, so that’s more than enough for our task. But bear in mind that you need to check [usage and pricing](https://cloud.google.com/functions/pricing) if you already use it. I decided to divide this how-to into two parts. First, I will tell you how to save data that came in request on GCS. And in the second part, I will tell you how to query this data with BigQuery. I hope this helps, and you will get the desired result faster. How to store data from Google Analytics 4 client inside Google Cloud Storage Using this how-to, you can store data from any GTM Server Side client, not only Google Analytics 4. 1. We will start by creating a Google Cloud Storage bucket that will contain our raw event data. Search for Storage product in GCP search prompt. Then click on “Create Bucket” ![google cloud platform storage](https://cdn.stape.io/i/6172bfe196e30811157773.png) ![google cloud platform create bucket](https://cdn.stape.io/i/6172bfe1a2f2a636945170.png) 2. Choose a name for your bucket, click “Continue” and choose region “us-central1”. Leave other options with default values. 3. Now you need to create a Google Cloud function that receives data from Google Tag Manager Server Side Container. To do this, go to Google Cloud Developer Console and open the Cloud Function section. Then, click “Create Function”. ![google cloud platform create function](https://cdn.stape.io/i/6172bffeb8a3f051457132.png) 4. Fill in the name of the function and select the “Allow unauthenticated invocations” Authentication option. Copy “Trigger URL” because we will use it in the next steps. Click on the Next button at the bottom of the page. ![google cloud platform configuration](https://cdn.stape.io/i/6172c0102e5d1406032653.png) 5. Set “Entry point” field to “init”. Also, copy the content of [this file](https://github.com/stape-io/request-to-gcs-function/blob/main/init.js) and paste it into the code window. You need to change ‘your-bucket-name’ to the bucket name you’ve created in the previous steps. Also, change ‘very-secret-random-key’ to some random key. We will need it in the future. The runtime needs to be set to Node.js 10. One more thing, you need to edit the package.json file. [Put this file content](https://github.com/stape-io/request-to-gcs-function/blob/main/package.json) into it. ![google cloud configuration index](https://cdn.stape.io/i/6172c0212fea6603049372.png) ![google cloud configuration package](https://cdn.stape.io/i/6172c01f80deb777478140.png) 6. Now you can click on the deploy button. Google Cloud needs a few minutes to create the function for the first time so wait a little bit before deploying. ![cloud functions](https://cdn.stape.io/i/6172c02d588cc816837522.png) 7. Time to create a tag inside the GTM Server container. Also, you need to have a JSON HTTP request tag template installed on your GTM Container. If you don’t have it,[follow this instruction for adding](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container). Create a new JSON HTTP request tag and fill “Destination URL” with the URL you got when creating Cloud Function in step 4 and add to the end of it your secret key like this “?key=your-secret-key”. Don’t forget to add the trigger you use to determine Google Analytics 4 (check my screenshots for this step). ![json http request](https://cdn.stape.io/i/6172c03b8e418079388952.png) ![json http request](https://cdn.stape.io/i/6172c03b6bac7593478021.png) ![trigger configuration custom](https://cdn.stape.io/i/6172c03b8ca01116680202.png) 8. Publish GTM Server container changes and generate test requests to GA Tag. You can simply open your website. If you did everything right, you will see files generated on the Google Cloud Storage bucket. ![gtm-bigquery](https://cdn.stape.io/i/6172c0485bb85935316142.png) If you set up storing raw events on GCS correctly, I salute you! The hardest part is done. Let’s follow a few more steps before you can start query data. How to query data to Google Cloud Storage using BigQuery 1. Go to BigQuery product in GCP and click on the “create dataset” button. ![gtm bigquery](https://cdn.stape.io/i/6172c05730a82578435192.png) ![create dataset](https://cdn.stape.io/i/6172c05710a3e644585868.png) 2. Leave all options by default just fill the name field. 3. Now let’s create a table in this dataset. Click on “create table”. In the source selector, choose “Google Cloud Storage”. Field “Select file from GCS bucket” has to look like this: “your-bucket-name/*.json”. Table type set to “External table”. Choose any table name you want. Check the “Auto detect” option. At the end of this form, click on the create table button. 4. Now you can query your data. Click on the query table data button and set “*” as the field name. Run query. If you did everything right, you will see raw GA data in query results. Please feel free to ask any questions about GA4 events export in the comments or our customer support channels. Got problem with exporting data? Just tell us where you are stuck. Click Need assistance, fill up the form, and we will send you a quote. --- # How to send all GA event data to your URL/Site/CRM Source: https://stape.io/blog/how-to-send-all-ga-event-data-to-your-url-site-crm Use GTM Server Side's JSON HTTP Request tag to send GA event data to your CRM or URL. Avoid insecure methods & improve site performance. A common issue for data analytics and sales managers is the accurate tracking of user behavior and conversions. And often, they might face a problem that seems to have no solution. Or alternatively, there are no developers who can do this, and the next update of the site is planned only for next month. If you are familiar with the Google Tag Manager, you can send events to your CRM using Сustom HTML, but this is a very insecure method because anyone can see the requests data and where they are going. Also, you can’t use API keys for sending data to secure webhooks. Besides, it slows down your site performance because you add additional requests that the browser must handle. So what is the correct solution? Use GTM Server Side to securely send event/conversion data from any source (site, mobile, other services) to your CRM or any other URL. We have many requests from our clients to send event data on conversion to their in-house CRM. And we started using the standard “HTTP Request Tag” for that purpose. After some time, we understood that in most cases, it is enough. That is if all data from the event can be sent in JSON Body to the desired URL. And that is why we created a JSON HTTP request tag. JSON HTTP Request tag for GTM Server Side It sends a POST request to your URL with a JSON body with all event data that came to the GTM client. We also implement the ability to add your custom request headers and data. Where I can get it You can [find the tag on GitHub](https://github.com/stape-io/json-http-request-tag) and of course, we submit it to the Community[Template Gallery](https://tagmanager.google.com/gallery/#/) and expect that it will be shown on it after Google turns on Template Gallery for GTM Server Side. How the request body will look like For example, “pageview” event data that comes to the destination URL will look like this: { "x_ga_protocol_version": "1", "x_ga_system_properties_v": "j86", "x_ga_system_properties_u": "YEBAAEABAAAAAC~", "x_ga_system_properties_gid": "958953488.1603993537", "x_ga_system_properties_r": "1", "x_ga_page_id": 618701935, "x_ga_request_count": 1, "page_location": "https://stape.io/", "language": "ua-ua", "page_encoding": "UTF-8", "page_title": "GTM Server Side - GTM Server", "x_ga_mp1_sd": "24-bit", "screen_resolution": "1920x1080", "x_ga_mp1_vp": "1920x866", "x_ga_mp1_je": "0", "x_ga_mp1_jid": "75289892", "x_ga_mp1_gjid": "2061012404", "client_id": "RQqpiKuM+uSEmRZWY8CJcMC0+90vEmBUdzTJRyMXlM=.1603993594", "x_ga_measurement_id": "UA-111147971-1", "x_ga_gtm_version": "2wgae3PDXX4BG", "x_ga_mp1_z": "2079427983", "event_name": "page_view", "ip_override": "1.2.3.4", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36", "x_ga_path": "j", "x_ga_js_client_id": "796605102.1603993594" It is important to know that the tag flattens all nested objects with “_” that came from the client. For example: { 'test': { 'gtm': 'tag' } } Will send in a request like this: { 'test_gtm': 'tag' } Also, tag changes “-” symbol in keys to “_”. That is done because many systems do not work with nested objects and our tag tries to work with all systems out of the box. These transformations apply only to event data that comes from the client. If you use the “Additional Options” setting of the tag, the keys that you fill in will be used without any modification. How-to use JSON HTTP Request tag 1. Add custom tag template from the [Server template gallery](https://tagmanager.google.com/gallery/#/owners/gtm-server/templates/json-http-request-tag). 2. Choose the desired GTM Server Side Container and add it to the workspace. ![json http reuqest tag](https://cdn.stape.io/i/6193edcf1917d860171470.png) 3. Another option is to click templates inside the server container -> Search Gallery -> addJSON HTTP request by stape.io. 4. After tag installation, create a new tag and choose “JSON HTTP request” 5. Choose a trigger for firing this tag (when you need to send a request). For example, you can choose the trigger that you use for firing the GA tag. 6. Fill “Destination URL” field in tag configuration with the URL your request will be sent to and save your newly created tag. ![json http request create tag](https://cdn.stape.io/i/6193eeacb7f91685186108.png) 7. After publishing your tag, data will be sent to the URL you set, when the trigger applies. Feel free to tell about the issues on GitHub or in the comments to this post with feature requests and questions. Got confused? Just tell us what the problem is. Click Get help, fill up the form, and we will send you a quote. --- # How to set up GA4 server-side tracking Source: https://stape.io/blog/set-up-ga4-server-side-tracking Check out the advantages of using GA4 and GTM server tagging and a step-by-step guide on how to send events to GA4 using the GTM server. In this blog post, you will explore some advanced features of Google Analytics 4 and compare two methods to configure server-side GA4 - using Google Tag Manager and Stape Gateway. You will learn how to make it resistant to AdBlockers and tracking restrictions with the help of [Stape Custom Loader power-up](https://stape.io/solutions/custom-gtm-loader). Introduction to server-side tracking Server-side tracking collects data from a website or app by sending it to a server. The server processes and sends the data to Google Analytics. This approach offers several benefits, including improved data accuracy, enhanced data protection, and better performance. Businesses that want to reduce the impact of client-side tracking on page loading speed while still collecting valuable data benefit from server-side tracking. Unlike client-side tracking, where data is collected and processed directly on the user’s device, server-side tracking shifts the data collection and processing to a server. This improves data security and ensures that the data collected is more accurate. By implementing server-side tracking, businesses can gain deeper insights into user behavior, optimize their marketing strategies, and comply with data privacy regulations. ![How server-side tracking works](https://cdn.stape.io/i/665706020c0a5790234051.jpeg) [Server-side tracking has many benefits](https://stape.io/blog/benefits-server-side-tagging), including a prolonged cookie lifetime, increased tracking accuracy, improved page speed, better data security, [bypassing ad blockers](https://stape.io/blog/bypass-adblock-detection) and [ITPs](https://stape.io/blog/safari-itp), and many more. How to set up Google Analytics 4 (GA4) server-side [Step-by-step guide] https://youtu.be/z5jfbSB_-Ss Related: [Facebook tracking](https://stape.io/blog/facebook-tracking). Overview of Stape Gateway and server GTM container Server GTM container is a tool used to set up server-side tracking. With its help, you can configure tracking for Google Analytics 4, server-side Google Ads tracking, and various other platforms on the server side. [Stape Gateway](https://stape.io/stape-gateway) is another data tracking tool that eases the setup of server-side tracking for GA4 and Google Ads. How does it work? It captures data from the user's browser and sends it to a server. ![How Stape Gateway works](https://cdn.stape.io/i/686391b404b8a013420014.webp) What's in common for both? Both the server GTM container and the Stape Gateway are used to track and collect data on the server side. Each of them provides enhanced data quality and protection. Each approach includes setting up a custom domain and a Custom Loader that help achieve the following benefits: More accurate data collection compared to client-side tracking; Higher data security and control; Lower impact of ad blockers and browser restrictions on data quality. What's the difference between Stape Gateway and server GTM container setup? Verstability Stape Gateway can be used for Google Analytics and/or Google Ads (for conversion tracking and remarketing), while the server GTM container is more versatile and can be set up for a [wide range of platforms](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). Setup prerequisites To start using Stape Gateway, you only need a configured web Google Tag Manager container. For server GTM, the setup prerequisites are a bit more complicated - besides the web GTM container, you will also need to set up a server Google Tag Manager container. Configuration complexity Stape Gateway is easier to set up as it consists of three steps: [Registration and choosing a subscription](https://stape.io/stape-gateway/create) plan (we offer a 7-day free trial); [Adding a custom domain](https://stape.io/blog/what-is-stape-gateway#3-recommended-configure-custom-domain); Setting up [Custom Loader](https://stape.io/blog/what-is-stape-gateway#4-configure-custom-loader). Given the greater flexibility of server GTM, it requires more technical skills to set up. Besides [registration](https://stape.io/sign-up), adding a custom domain and Custom Loader, you will also need to[create a server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) and do additional configurations based on the platforms you use. Stape offers a wide range of [power-ups, tags, variables, and clients](https://stape.io/solutions) to make configuration easier for you. Stape Gateway vs. Server GTM container setup: comparison table For your convenience, we provide a comparison table to highlight the main differences between the two ways of setting up server-side tracking: | [Stape Gateway](https://stape.io/stape-gateway) | [Server GTM container](https://stape.io/sign-up) Setup complexity | Easier to set up; you only need to have a web GTM container | More complex configuration, you need web and server GTM containers Ability to set up server-side tracking for other platforms | Setup is possible only for GA4 and Google Ads | More flexible, enabling setup for various platforms Price | 10$/month for each domain or 100$/month for up to 20 domains | Depends on the number of requests, check the [calculator to see the price](https://stape.io/price-server-google-tag-manager#calculator) for your website What tracking method should I choose? Although the final result is similar for Stape Gateway and the GTM server container, each may work better for different cases. Choose the server GTM implementation if you: ✅ Want to [improve data quality](https://stape.io/blog/improve-data-quality-and-integrity) for Google Analytics, Google Ads, and/or any other platform; ✅ Need to set up complicated tracking infrastructure that involves various platforms and analytics tools; ✅ Have a higher marketing budget and can invest in high-quality data tracking.* *Please note: If your website doesn't have high traffic volume, you can use Stape for server-side tagging for free. To see whether it's your case, check [our pricing page](https://stape.io/price). Choose [Stape Gateway](https://stape.io/stape-gateway/create) if you: ✅ Need to enhance data quality for Google Analytics and/or Google Ads; ✅ Look for a quick and hassle-free way to improve the data you get; ✅ Have a lower marketing budget and need a cheaper solution. If the Stape Gateway looks like a great option for you, check our [setup guide to start using it](https://stape.io/blog/what-is-stape-gateway). In this article, we focus on the configuration process for the server GTM. If you want to reduce reliance on browser cookies while keeping the server-side benefits, consider [GA4 cookieless](https://stape.io/blog/cookieless-tracking-ga4) methods alongside the step-by-step server GTM setup below. How to set up GA4 server-side tracking using server GTM Advanced GA4 Features 1. Event-driven data model The event-driven data model allows you to create an event for any website activity you want to record inside GA4. You can also use parameters that add more value and description to each event. Google prepared the list of [recommended event names](https://support.google.com/analytics/answer/9267735?hl=en&ref_topic=9756175) to use inside GA4, but you can also create custom events and custom parameters. 2. Cross-device reporting When it comes to traffic and sales analysis, cross-device user/conversion tracking is the main point. Let’s say a user saw your Adwords ad on the mobile and clicked on it. For some reason, they decided to proceed with the checkout on the desktop. The user, however, did not log into any of the Google services. So, Google cannot recognize them and give credit to that particular Adwords click. As a result, the conversion source is lost, and the information for Adwords optimization is incomplete. To solve this problem, Google released Signals. Google integrated Signals functionality into GA4 and added machine learning. It is designed to identify users who are not logged into any Google services. Machine learning fills all the gaps if a user is not logged into the Google services or their device cannot be identified via fingerprinting. By default, Google signals data collection is not enabled inside GA4. You need to enable it manually by going into Settings → click Data Settings → Data Collection. Another essential setting (and a new one) that you should consider checking is how GA4 identifies users. They have two options: by device only by user-id, Google Signals, then device 3. Predefined events Google identified the most commonly used events that marketers and business owners track inside Google Analytics and GTM and added them to the enhanced measurement functionality. Now, page views, scrolls, outbound link clicks, site searches, video engagement, and file downloads are tracked by default. This feature is typically enabled for all GA4 properties. But you need to ensure it’s turned on for your account. To do that, go to Data Streams → choose Webstream details, and check if all events are enabled. 4. Analysis Hub and integration with BigQuery Google completely redesigned the analytics/reporting hub inside GA4. It allows users to create pivots, tables, and filters easily. There is also a template gallery, similar to what they have in DataStudio. So you will be able to analyze data more efficiently and spend less time creating custom reports. BigQuery export is available to all GA4 users. In a nutshell, you can export GA4 data to BigQuery, which can be integrated with other sources like your CRM. 5. Limit of Custom dimension and Custom metric In GA4, the limit of custom dimensions and metrics increased. Google Analytics 4 allows to have 25 user scoped, and 50 events scoped custom dimensions. Custom metrics increased to 50. An increased number of custom metrics and dimensions gives more flexibility for the customization of GA4. 6. GA4 debug view The GA4 debugger is extremely helpful for people setting up Google Analytics 4. The enabled preview lets you see what events, event properties, and user data GA4 processes. It makes configuring GA4 much faster and easier. In addition, for smoother GA4 property management, you can use the [GA4 MCP Server from Stape](https://stape.io/blog/mcp-server-for-google-analytics). It lets you write requests in simple, natural language while your AI agent handles the work for you. 7. Other advantages You might be already tired of reading about why GA4 is so cool. So here’s a quick round-up of other benefits: audience evaluation based on their probability of buying in the next several days, a combination of web and app analytics, and lots more. GA4 server-side tracking: real Stape users' problems solved 1. In this [thread](https://community.stape.io/t/ga4-server-side-setup-multiple-markets-and-a-single-spa/2943), a user setting up GA4 server-side tracking for a multilingual SPA wasn’t sure whether to keep multiple GA4 properties or move to a single one with market parameters. The clarification was that from a GTM server-side perspective, both approaches work the same - the server container simply inherits what comes from the client-side setup. The decision should be based on reporting and maintenance needs, since custom dimensions don’t appear in all GA4 reports. The takeaway: choose the GA4 property structure that best fits your analytics strategy, not server-side limitations. 2. In this [thread](https://community.stape.io/t/ga4-server-side-tagging-only/2247/2), a user tried to send GA4 events only from the server, without using client-side GA4 or cookies. The problem was that GA4 relies heavily on client-side data (like client_id and browser signals collected by gtag.js), so full server-only tracking isn’t practical. The conclusion was that GA4 works best with a hybrid setup - client-side GA4 for core data and server-side tracking for selected events - while fully server-side analytics is better handled by tools built for it, like Matomo or Piwik. 3. In this [thread](https://community.stape.io/t/ga4-server-side-30-less-purchase-conversions/2045/2), a user compared GA4 server-side tracking with client-side GA4 and noticed large data gaps in events and revenue. The issue wasn’t a tracking error, but a misleading comparison - GA4 isn’t designed to run multiple properties in parallel (client-side and server-side). Server-side GA4 acts as a proxy and doesn’t change the data by default, so comparing properties leads to inconsistent results. The recommended solution was to use a proper migration approach (JS-managed cookies → server-managed cookies) or GA4 roll-up properties, instead of running parallel setups. 4. A user noticed that running GA4 server-side tracking alongside the client-side setup caused inflated “direct/none” and “not set” metrics, even with identical GA4 property settings. In the [full thread](https://community.stape.io/t/discrepancies-in-ga4-metrics-server-side-vs-client-side-tagging/2456), the explanation was that parallel use of server-side and client-side GA4 often leads to discrepancies, as server-side acts as a proxy. The recommended approach is to use server-side tracking carefully, avoiding parallel properties, or consider GA4 Rollup properties for proper aggregation. 5. A common question when implementing GA4 server-side tracking is whether data is being sent twice and if separate streams or properties are needed. In [this case](https://community.stape.io/t/clarification-on-google-analytics-server-side-setup/2428), the issue came from confusion around parallel client-side and server-side GA4 setup. The clarification: GA4 server-side tagging works as a proxy - data should be sent once from the browser to the server container, and then forwarded to GA4. You should not send events directly from both browser and server in parallel, as GA4 does not handle deduplication. If events appear to fire twice, it usually means there’s an extra gtag snippet or duplicate setup in the web container. The fix is to use a single GA4 web tag with server_container_urlcorrectly configured, remove duplicate tags, and let the server container forward data to GA4. Conclusion GA4 and GTM server tagging was created to fit current world tracking rules, web technologies, restrictions, and data security. You’ll need time to get used to the new interface and features and understand how they can better suit your website and business needs. In the long run, server-side tracking in Google Analytics 4 can significantly improve data accuracy and give you greater control over what data is collected and how it's shared with third-party platforms. If migrating to the GA4 and GTM server containers is complex or you realize that you need assistance, feel free to contact us. We can answer your questions and help you make sure your Google Analytics 4 server-side tracking is implemented correctly, efficiently, and is aligned with your goals. --- # Google Tag Manager server-side tracking as an alternative to Zapier Source: https://stape.io/blog/google-tag-manager-server-side-tagging-as-an-alternative-to-zapier How you can use Google Tag Manager Server-Side container to replace Zapier automation - send a notification in Slack on different interactions on your website. Zapier is the most popular software that helps connect your apps and automate workflow. It became the number one tool in this niche, but using Zapier may be too expensive for some businesses since it limits the number of tasks and events you can send in each plan. This article will review how to automate workflows and use the Google Tag Manager server-side container to replace the popular Zapier features such as automatic Slack notifications and Google Sheets integration. We also consider Generic API Call, a solution for those who need to create specific automation cases and don’t want to be restricted by templates. What is Google Tag Manager server-side tracking? Server-side container is a feature from Google Tag Manager that moves third-party pixel execution into the cloud server. A server GTM container is part of Google Tag Manager's server-side tracking framework. It runs on a server instead of operating in the client’s browser. Processing tags and collecting data on the server side enhances performance, boosts security, and increases data accuracy. Check out [what Google Tag Manager server-side tracking is](https://stape.io/gtm-server-hosting) and how to set it up. Advantages of server-side tracking over Zapier If you want to prevent data loss inside analytics tools (like Google Analytics 4) caused by [Ad Blocker and ITPs](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers), you may be interested in switching to server-side tracking. One advantage of using GTM Server-Side is that you can use non-public keys and passwords for your services in tag configuration. This is possible because tags are not processed inside the browser; nobody can see them except you. This feature allows companies to cut expenses on Zapier and use only Google Tag Manager server-side containers. GTM server is not a free tool, though. Using native GTM server integration, you’ll pay a minimum of $120/month for Google Cloud Servers. Alternatively, using our service, you can set up a GTM server container for free. At Stape, we have free and paid plans (based on your website traffic volume). You can find more information on prices and features on the[pricing page](https://stape.io/price). Still, server-side tracking will open many new possibilities for your website. The most important are complete data inside Google Analytics, higher site page speed, and secure data. With paid plans, you’ll have additional benefits. | Server-side tracking | Zapier Flexibility | Higher flexibility, you can easily set up integrations according to your needs | You are limited by the setting of Zapier, so you can’t send specific data about users Data security | Higher data security as website visitors’ data is being proceeded on your server | Lower data security as all the requests proceeded on the client’s side (in the browser) Data quality | Enhanced data quality, as server-side tracking bypasses ad blockers and browser restrictions | No additional features to enrich and protect data Ease of setup | Requires GTM knowledge to configure | Easier to set up Cost | For low-traffic websites [(less than 100, 000 requests/month)](https://stape.io/price), you won’t need to pay | A limited number of tasks per month are free (100 tasks per month) Read more about the [benefits of server-side tracking](https://stape.io/blog/benefits-server-side-tagging) in our blog post. What you need to do to replace Zapier with sGTM To benefit from server-side tracking, you need to: 1. [Create a Google Tag Manager server container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container#step-1-create-a-google-tag-manager-server-container). 2. [Create a Stape account to host your server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container#step-2-create-a-stape-account-to-host-your-server-gtm-container). 3. [Send data from Web to Server GTM container](https://stape.io/solutions/data-tag-client). 4. [Set up Zapier features in server GTM](https://stape.io/blog/google-tag-manager-server-side-tagging-as-an-alternative-to-zapier#how-to-setup-popular-zapier-features-in-server-gtm). How to setup popular Zapier features in server GTM Send Slack notifications There are specific actions on your website that require your team to react immediately. These can be new orders, user registrations, helpdesk tickets, etc. Slack notifications about these activities may streamline your business process, document all events in one place, and make your team members react quickly. Please note:: The instructions below assume that the server GTM container has the required event information; if not, check our article on sending Slack notifications to server GTM and follow steps 3-6. 1. Add the [Slack Notification tag](https://tagmanager.google.com/gallery/#/owners/gtm-server/templates/slack-notification-tag) to your GTM workspace. ![Add Slack Notification tag to workspace](https://cdn.stape.io/i/66e94fb770647222965454.png) 2. Go to the Tags section in server GTM and click "New". ![Add new tag in server GTM](https://cdn.stape.io/i/66e94feabd9ef226082754.png) 3. Choose "Slack Notification" as the Tag Configuration. ![Slack Notification tag in server GTM](https://cdn.stape.io/i/66e950132eec4021650973.png) 4. Go to[Slack App](https://api.slack.com/apps?new_app=1) → Create an App → From scratch → Name your app and select Slack Workspace. ![Create app from scratch](https://cdn.stape.io/i/66e95044c5729110325208.png) 5. Click on the "Incoming Webhooks" section → Activate the Incoming Webhooks toggle to switch it on. ![Incoming webhooks in Slack](https://cdn.stape.io/i/66e9506d76b3b325735017.png) 6. Click "Add New Webhook to Workspace" and select the channel to which you want to send notifications. ![Add new webhook to workspace](https://cdn.stape.io/i/66e9509287e95517422472.png) 7. Copy Webhook URL. ![Copy webhook URL](https://cdn.stape.io/i/66e950b9f3fe1164411246.png) 8. Paste the Webhook URL and add the notification text (text that will be sent to Slack). ![Webhook URL in Slack tag](https://cdn.stape.io/i/66e950dfd3e67382624805.png) 9. Add the trigger for a tag, as shown in the screenshot below. ![Trigger for Slack tag](https://cdn.stape.io/i/66e951039849e603433642.png) 10. Open the Preview and Debug mode of the Web and Server containers and test if the notification works. ![Preview and Debug Mode in GTM](https://cdn.stape.io/i/66e951250f1a8222591152.png) Google Sheets integration Google Sheets is an easy-to-use platform for tracking complex business processes. You can record sales or leads from your website into Google Sheets. You can also enrich data with additional parameters, such as UTM tags, traffic sources, order information, etc. Note:: You need to have a Firestore account to set up a Google Sheets tag Step 1: Google Service Account power-up 1.1 In the server GTM container, go to the power-ups section → click "Configure" next to "Google Service Account". ![Google Service Account power-up in Stape](https://cdn.stape.io/i/66e951934ab8d630655548.png) 1.2 Login to Google Cloud account → click IAM & Admin → Service Accounts → Create service account. ![Create a service account in the Google Cloud Platform](https://cdn.stape.io/i/66e951b986b47907153481.png) 1.3 Add account → click Next → select Cloud Datastore User role for Firestore. ![Cloud Datastore User role for Firestore](https://cdn.stape.io/i/66e951d7d6452936466099.png) 1.4 Open Google Service Account → Keys tab → Add key → select JSON type → Create. ![Key type JSON](https://cdn.stape.io/i/66e9520439e04573423562.png) 1.5 Upload a Key to the Google Service Account power-up. ![Google Service Account power-up in Stape](https://cdn.stape.io/i/66e952295c7c9428068189.png) Step 2: Google Sheets Connection You can find the Google Sheets Connection in the Connections tab of your Stape admin account. Click “Sign in” for Google Sheets and authorize with your Google account. Once connected, Stape will handle all OAuth tokens automatically - no need to set up Google Sheets authentication. This makes it easy to send data from your server GTM container directly to Google Sheets. ![Connections tab](https://cdn.stape.io/i/689c96b678cb9436635157.png) Step 3: Firebase account 3.1 Login to Firebase → Create Project → select the same project you’ve used to create Google Service Account → Continue → Add Firebase. 3.2 Click Build → Firestore Database. ![Firestore Database](https://cdn.stape.io/i/66e953b365a12366240783.png) 3.3 Click Create Database → Start in production mode → Next. ![Start in production mode](https://cdn.stape.io/i/66e953d58f65f373880853.png) 3.4 Select Cloud Firestore location, and make sure it matches sGTM server location (you can check server location in your GTM container in Stape admin). 3.5 Click Start a Collection → set Firebase Path → click "Save". ![Firebase Path](https://cdn.stape.io/i/66e9540db9089629658676.png) Step 4: Google Sheets tag 4.1 Add[Google Sheets tag from GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/spreadsheet-tag). ![Google Sheets tag in GTM Template Gallery](https://cdn.stape.io/i/66e954505bfda663087825.png) 4.2 Go to "Tags" section → click "New" → add "Spreadsheet" as tag configuration. ![Spreadsheet as tag configuration](https://cdn.stape.io/i/66e95495da2f8149926464.png) 4.3 Configure the tag. This tag allows Adding a row or Updating cells → Select Rows range → Add Sheets URL → Add API Refresh Token, Client ID, and Client Secret. ![Spreadsheet tag configuration](https://cdn.stape.io/i/66e954ca0f12e936219255.png) 4.4 Add cell value that should be sent to Google Sheets. Add Firebase Path. You can check how to do it in [Step 3: Firebase account](https://stape.io/blog/google-tag-manager-server-side-tagging-as-an-alternative-to-zapier#step-3-firebase-account) section above. 4.5 Add a trigger for a tag. Generic API Calls for workflow automation If you don’t want to be limited by templates, you can do custom HTTP requests on server-side GTM the same way you do on Zapier. Such requests enable you to speak to most APIs out there, including your internal ones. To create complex workflow automation, you can use our [JSON HTTP Template](https://stape.io/solutions/json-http-request-tag). Once configured, the tag sends an HTTP request to your URL with the payload you can configure off of Event Data. Tag allows you to send POST/PUT/PATCH requests and customize the body and headers. Check out our blog post on [how to use the JSON HTTP Request tag](https://stape.io/blog/how-to-send-all-ga-event-data-to-your-url-site-crm). Conclusion Server-side tracking is among the alternatives to Zapier. This type of tracking has many advanced features that will help obtain more precise data, provide higher data protection, and more. With the help of tags available for server GTM, you can create automated workflows and automate routine tasks (e.g., tracking events on the website, receiving notifications in Slack or collecting data in Google Sheets). This tool is not one of the free alternatives since you’ll use Google Cloud Servers to send events. However, using the GTM server will help you cut down on the cost of other services. Ultimately, the cost savings are greater than the cost of Google Cloud, which makes it particularly appealing to companies. And the fact that it offers first-party cookies is the icing on the cake. Got any questions? We can help you right away! Click Get assistance, fill up the form, and we will send you a quote. --- # Server-side tagging for WordPress Source: https://stape.io/blog/wordpress-server-side-tracking Set up accurate, privacy-friendly tracking on your WordPress site with Stape's Conversion Tracking app. Are you looking to try server-side tagging for your WordPress website? A server-side Google Tag Manager container is the best solution if you want to track data accurately and report it to analytics or marketing platforms. This article will explain how to set up Google Tag Manager server-side container in WordPress using the [Stape Conversion Tracking app](https://wordpress.org/plugins/gtm-server-side/). What is WordPress server-side tagging? Server-side tagging is a new method of implementing tracking that takes place on a cloud server instead of the user's browser. For WordPress sites, this means moving your tracking scripts off the visitor's device and onto a server you control, which makes the website load faster and reduces the chances of data loss due to ad blockers or network errors. With [server-side tagging](https://stape.io/blog/server-side-tagging), all tags and scripts are managed and executed on a separate server, which sends back the necessary data to advertising or marketing instead of requiring the browser to load and execute each script individually. This approach allows for greater control over the tag management process and can help to improve website performance, increase data accuracy, and ensure compliance with data privacy regulations. As web analytics adapt to modern restrictions and ever-evolving rules, server-side tracking methods are quickly becoming the new standard for user identification. This technology has grown exponentially in popularity over recent years as companies seek more reliable data collection tactics. Main benefits of server-side tracking for WordPress 1. Increased cookie lifetime Safari and Firefox's Intelligent Tracking Prevention (ITP) restricts cookie lifetime. Previously, your cookie could live up to 2 years, and now its lifespan is limited to 7 days or even 24 hours. You can extend the cookie lifetime by implementing tracking on the server environment, which is currently the most straightforward way to reach this goal. If you don't, users who return to your WordPress site after seven days (or, in some cases, 24 hours) will be considered new users. As a result, data quality inside your analytics platform will decrease. 2. Improved data accuracy Most WordPress site owners see discrepancies between the number of transactions in analytics platforms and their CRM. This happens because of ad blockers and errors inside client browsers with third-party pixels. You can reduce this problem by moving tracking to the server-side with the [Custom Loader](https://stape.io/solutions/custom-gtm-loader) power-up enabled. With Custom Loader, you can [make tracking scripts invisible](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers) to ad blockers. 3. Faster page load speed Heavy JavaScript is one of the most common reasons for decreased site speed. With server-side tagging, you remove third-party pixels from the browser and move them to cloud servers. Google has released a study showing that every 0.1-second reduction in mobile website speed, on average, increases order value by nearly 10%. For WordPress sites that often run multiple plugins and scripts already, this speed gain can make a noticeable difference. If you're impressed by what a server Google Tag Manager container offers, you'll be happy to hear that adding it to your WordPress website is effortless with our [plugin](https://wordpress.org/plugins/gtm-server-side/). The plugin is free, though we also offer several [pricing plans](https://stape.io/price) for our hosting services. 4. Reduced risk of data privacy violations By managing all tags on the server-side, marketers can ensure that user data is collected and processed in compliance with data privacy regulations, reducing the risk of data privacy violations. WordPress Conversion Tracking app by Stape Conversion Tracking app by Stape https://www.youtube.com/watch?v=d-fo7U3pOEo&t=6s&ab_channel=Stape Note: Stape has ready-made GTM templates for WooCommerce. They're easy to set up and don't require any coding skills. Check out our [guide](https://stape.io/gtm-set-up-assistant) to get everything up and running fast. You can also try the Setup Assistant feature, which lets you select the platforms you use and generates pre-built templates for both your web and server GTM containers. The templates are then automatically imported into your container. Stape has developed a Conversion Tracking app to make it easier for WordPress website owners to use the power of server-side tagging. With this app, you can take advantage of features that previously required extensive technical knowledge. Here's what the [Stape Conversion Tracking app](https://wordpress.org/plugins/gtm-server-side/) for WordPress can do. 1. Inserts the Google Tag Manager script on your website The Stape Conversion Tracking app can either insert the GTM script on all website pages or work alongside other WordPress plugins that already insert the GTM script. The second option becomes active only when the Stape plugin detects a GTM snippet added via another plugin – in that case, the Stape plugin won't add the GTM script again but will still add all the configured features. Same-origin proxy - normally, the GTM web loader is served from the customer's Stape subdomain (for instance, xxxx.stape.io). With same-origin on, that same loader is served from Stape but routed through the customer's own WordPress site. Add web GTM script onto every page of your website - select this if you want to add web GTM to all site pages. Make sure you are not using any other plugins that insert GTM script on the site to avoid conflicts or event duplication. Load GTM with consent - select this and GTM will wait for information about the user’s marketing consent before tracking any data. Exclude GTM for user roles - select user roles whose activities will not be tracked by GTM. Disable - select this to only add plugin functionality without adding GTM script (for example, if you are using another plugin that inserts GTM script on the site). Web Google Tag Manager ID - make sure to add your [web Google Tag Manager ID](https://support.google.com/tagmanager/answer/6103696). If you add a server GTM ID instead, it will cause [403 errors](https://help.stape.io/hc/en-us/articles/6092824106653-I-see-403-error-What-to-do-). Server GTM container URL - enter your tagging server URL. If you are using Stape’s sGTM hosting, read [how to find your sGTM container URL on Stape](https://stape.io/helpdesk/knowledgebase/how-to-find-server-container-url-for-sgtm-container). Otherwise, it can be found in your [server GTM container’s settings](https://developers.google.com/tag-platform/tag-manager/server-side/app-engine-setup#4_add_the_server_url_to_google_tag_manager). Stape container identifier - enter the [Stape container identifier](https://stape.io/helpdesk/knowledgebase/how-to-find-the-stape-container-identifier) if you want to use a [Custom Loader](https://stape.io/solutions/custom-gtm-loader) (highly recommended to improve the accuracy of conversion tracking). Cookie Keeper - this [power-up](https://stape.io/solutions/cookie-keeper) is available only if you have a container hosted on Stape. With it, you can continue using the full cookie duration. ![Setup with Same-origin proxy enabled](https://cdn.stape.io/i/6a50dbd05604e279600296.png) 2. Sends dataLayer events to the web GTM container This option allows you to send eCommerce data and user data to the data layer. Note that it works only with [WooCommerce server-side tracking](https://stape.io/blog/woocommerce-server-side-tracking). [Data Layer events](https://help.stape.io/hc/en-us/articles/13788796631837-Wordpress-Plugin-dataLayer): - Select item - View item list - Add to cart - Remove from cart - Begin checkout - Purchase User data: - Name - Surname - Email - And more. Add ecommerce Data Layer events - add basic ecommerce events and their data for shops built with WooCommerce. Add user data to Data Layer events - add data with personal details of authorised users to Data Layer events. Decorate dataLayer event name - add _stape to Data Layer event names. Advanced Data Layer settings - fine-tune your Data Layer event values. ![Data Layer tab](https://cdn.stape.io/i/6a50ca720f9c9924521812.png) 3. Sends webhooks The app can send Purchase and Refund webhooks to the server GTM container. To enable [webhooks](https://stape.io/blog/webhook-server), add your server GTM container URL and select the events you want to send to sGTM. ![Webhooks tab](https://cdn.stape.io/i/6a50ca720456a006857619.png) 4. Creates Customer Match lists The app can create and fill the [Customer Match list in Google Ads](https://stape.io/blog/customer-list-google-ads) automatically. It allows you to choose which customer data to upload, establish consent status, and update existing contacts or create new ones. ![Customer Match tab](https://cdn.stape.io/i/6a50ca720ecbf752012699.png) How to set up WordPress server-side tracking 1. Log into your WordPress admin panel and go to Plugins → Add New → search for "Stape Conversion Tracking" → select the [Stape Conversion Tracking app](https://wordpress.org/plugins/gtm-server-side/) → click Install Now. Once installed, click Activate. ![Conversion Tracking app for WordPress by Stape](https://cdn.stape.io/i/68e673697e5ef415750373.png) 2. Create a Google Tag Manager Server container if you don’t have one. Go to [https://tagmanager.google.com/](https://tagmanager.google.com/) and choose the account where you want to create a container. Then, click Admin. 3. Under the container column, click +. ![Set up server GTM](https://cdn.stape.io/i/668fda9d53807780905735.gif) 4. Type a container name, choose Server as the target platform, and click Create. ![Set up server GTM](https://cdn.stape.io/i/668fdac160d42112402501.gif) 5. On the install pop-up, choose Manually provision tagging server, copy your container config, and paste it into a text editor. You'll need this for the next steps. ![Set up server GTM](https://cdn.stape.io/i/668fdaee3bb7a594196429.png) 6. Sign up for an [account on Stape](https://stape.io/sign-up).https://stape.io/sign-up 7. Once you receive the confirmation email and set your password, create a container. Enter your container name and paste the container config you copied from your Google Tag Manager server container, then click Create Container. ![Create Container](https://cdn.stape.io/i/668fdb93aa7ca800963700.png) ![Create container on Stape](https://cdn.stape.io/i/668fdc535d341399013830.png) 8. After clicking Create, you'll see the status of your container, container config, and plan name. It takes around five minutes to deploy a server container – reload the page to update the status. If the setup was done correctly, you should see the status Running. ![Running container on Stape](https://cdn.stape.io/i/668fdefc05e33471958300.png) If you see Error, check that you've copied and pasted the correct container configuration. If the error persists, contact our [support team](mailto:support@stape.io). 9. Inside your Google Tag Manager server container, click Admin → Container Settings and paste the domain URL you see inside your Stape container. Using a custom domain is highly recommended. ![Paste tagging server URL](https://cdn.stape.io/i/668fe2dc09fdf536853044.png) ![Add custom domain](https://cdn.stape.io/i/66a10c6289f68783892204.png) 10. Open the Stape Conversion Tracking plugin you installed in the first step and configure it. General tab: Same-origin proxy. Normally the GTM web loader is served from the customer's Stape subdomain (for instance, xxxx.stape.io). With same-origin on, that same loader is served from Stape but routed through the customer's own WordPress site. To the browser, it looks first-party, helping the loader work reliably in Safari and pass ad blockers. Note: it's still Stape's loader and Stape's container doing the work; WordPress is just the pass-through that makes it first-party. Setup with Same-origin proxy enabled Web Google Tag Manager ID - be sure to add your web GTM container’s ID. Read [how to find the web GTM container ID](https://stape.io/helpdesk/knowledgebase/how-to-find-web-google-tag-manager-gtm-id). Proxy path - enter a proxy path for requests, such as /gtm. Once you save the setup, click Test connection to confirm the path responds. Container API key - enter your container API key, located in your Stape account container settings. Read [how to find the container API key](https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key). Add web GTM script onto every page of your website - select this if you want to add web GTM to all site pages. Make sure you are not using any other plugins that insert GTM script on the site to avoid conflicts or event duplication. Load GTM with consent - select this and GTM will wait for information about the user’s marketing consent before tracking any data. Exclude GTM for user roles - select user roles whose activities will not be tracked by GTM. Disable - select this to only add plugin functionality without adding GTM script (for example, if you are using another plugin that inserts GTM script on the site). ![Setup with Same-origin proxy enabled](https://cdn.stape.io/i/6a50ca0277d2b842584277.png) Setup with Same-origin proxy disabled Add web GTM script onto every page of your website - select this if you want to add web GTM to all site pages. Make sure you are not using any other plugins that insert GTM script on the site to avoid conflicts or event duplication. Load GTM with consent - select this and GTM will wait for information about the user’s marketing consent before tracking any data. Exclude GTM for user roles - select user roles whose activities will not be tracked by GTM. Disable - select this to only add plugin functionality without adding GTM script (for example, if you are using another plugin that inserts GTM script on the site). Web Google Tag Manager ID - be sure to add your web GTM container’s ID. Read [how to find the web GTM container ID](https://stape.io/helpdesk/knowledgebase/how-to-find-web-google-tag-manager-gtm-id). Server GTM container URL - enter your tagging server URL. If you are using Stape’s sGTM hosting, read [how to find your sGTM container URL on Stape](https://stape.io/helpdesk/knowledgebase/how-to-find-server-container-url-for-sgtm-container). Otherwise, it can be found in your [server GTM container’s settings](https://developers.google.com/tag-platform/tag-manager/server-side/app-engine-setup#4_add_the_server_url_to_google_tag_manager). Stape container identifier - enter the [Stape container identifier](https://stape.io/helpdesk/knowledgebase/how-to-find-the-stape-container-identifier) if you want to use a [Custom Loader](https://stape.io/solutions/custom-gtm-loader) (highly recommended to improve the accuracy of conversion tracking). Cookie Keeper - select this if you wish to enable [Cookie Keeper](https://stape.io/helpdesk/documentation/cookie-keeper-power-up) and prolong cookie lifetime. ![Setup with Same-origin proxy disabled](https://cdn.stape.io/i/6a50ca49cd6b2485090165.png) Data Layer tab: Add ecommerce Data Layer events - add basic ecommerce events and their data for shops built with Woocommerce. Add user data to Data Layer events - add data with personal details of authorised users to Data Layer events. Decorate dataLayer event name - add _stape to Data Layer event names. Advanced Data Layer settings - fine-tune your Data Layer event values. ![Data Layer tab](https://cdn.stape.io/i/6a50ca720f9c9924521812.png) Webhooks tab: Send webhooks to server GTM container - enable sending webhooks to your server GTM container. Be sure you understand [what webhooks are and how to use them](https://stape.io/blog/webhook-server). Server GTM container URL - enter the URL of the server container where webhooks will be sent. If you are using Stape’s sGTM hosting, follow [this guide to locate it](https://stape.io/helpdesk/knowledgebase/how-to-find-server-container-url-for-sgtm-container). Otherwise, it can be found in your [server GTM container’s settings](https://developers.google.com/tag-platform/tag-manager/server-side/app-engine-setup#4_add_the_server_url_to_google_tag_manager). Purchase webhook - send a purchase event when a new order is created. Order paid webhook - processing - send an order_paid event when an order is paid. Order paid webhook - completed - send an order_completed event when an order is completed. Refund webhook - send a refund event when an order is refunded. Send test webhook - troubleshoot your webhook setup by sending a test webhook. ![Webhooks tab](https://cdn.stape.io/i/6a50ca720456a006857619.png) Customer Match tab: Container API Key - enter your container API key, located in your Stape account container settings. Read [how to find the container API key](https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key). Google Ads Operating customer ID - enter the destination account ID for Customer Match upload. Read [how to find your operating customer ID](https://stape.io/helpdesk/knowledgebase/how-to-find-customer-id-operating-customer-id#how-to-find-the-operating-customer-id). Google Ads customer ID - enter your Google Ads account ID (NOT the operating one). Read [how to find your customer ID](https://stape.io/helpdesk/knowledgebase/how-to-find-customer-id-operating-customer-id#how-to-find-the-customer-id). User data - select which user data to share with Google Ads’ Customer Match functionality. Consent - select one of the options if you wish to define the consent status of the user data. Backfill - select to update existing contacts using the settings above, or leave blank to synchronize only new contacts. ![Customer Match tab](https://cdn.stape.io/i/6a50ca720ecbf752012699.png) 11. Save your changes, open the browser console, and check that the web GTM script is being served through your tagging server URL. ![Tagging server URL](https://cdn.stape.io/i/6406f7598f478601987558.png) 12. Once your server GTM container for WordPress is up and running, you can start configuring server-side tagging for the platforms you need. We have separate guides on [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking), [Facebook](https://stape.io/blog/how-to-set-up-facebook-conversion-api), [TikTok](https://stape.io/blog/tiktok-server-side-tracking), [Snapchat Conversions API](https://stape.io/blog/snapchat-capi), [etc](https://stape.io/blog). Conclusion Server-side tagging is a powerful tracking solution, and with the Stape Conversion Tracking app, you can implement it on your WordPress website with relative ease. Now that you know what's involved in setting up a Google Tag Manager server container for WordPress and how it can benefit your site, it's worth taking the time to put it into practice. Keep an eye on any platform changes and adjust your setup as needed to maintain a reliable tracking experience. If you have questions or need assistance, don't hesitate to reach out – we'd be glad to help. --- # How to add a custom domain to the Google Tag Manager server container Source: https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container Add a custom domain to your GTM server container. Step-by-step guide for subdomain & same-origin methods to improve tracking. In this article, we will describe how to set up a custom domain within the server Google Tag Manager container. The main advantage of using a custom domain for sGTM is that it helps increase cookie lifetime by setting first-party cookies instead of third-party cookies. How to add a custom domain inside the server Google Tag Manager container Using the same origin Conclusion Adding a custom domain to a Google Tag Manager (GTM) server container can significantly impact the effectiveness and flexibility of your server-side tracking. In this article, we have provided two methods of custom domain implementation. A same-origin approach offers increased security and simpler cookie management, ideal for singular, focused domains. A subdomain setup provides flexibility and performance optimization, suitable for complex or multiple domain structures. Each has its trade-offs in complexity, performance, and management. Carefully consider your technical requirements, security needs, and tracking objectives to select the most appropriate configuration for your server-side tracking. If you have any questions, visit our [helpdesk](https://stape.io/helpdesk) or write a [ticket](https://stapehelp.zendesk.com/hc/en-us/requests/new). Our team of experts will be happy to help you with any questions regarding Stape’s hosting and server-side tracking. --- # How to set up Google Tag Manager server container Source: https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container Server-side GTM moves tracking from clients' browsers to a cloud server. Learn how to set up GTM server-side tagging on your website with this guide. To set up a GTM server container, do the following steps: Create a Google Tag Manager server container Create a Stape account to host your server GTM container Configure a custom tagging server URL Create a Google Tag inside the Web GTM container Create Google Analytics: GA4 Event tag Create GA4 client inside server GTM container Check and debug your setup Set up a Custom GA4 Loader By the end, you’ll have a fully functional GTM server-side container, capable of bypassing ad blockers, increasing cookie lifetimes, and much more. Step 1: Create a Google Tag Manager server container There are many common elements between web and server containers, like tags, triggers, variables, preview mode, etc. However, the setup of the [GTM server-side](https://stape.io/gtm-server-hosting) container is more complex than that of the standard Google Tag Manager web container. The main complexity of setting up a GTM server container is configuring the cloud environment to run the sGTM container. With the help of Stape, configuring cloud servers for sGTM will take only 5 minutes, and there is no need to hire developers. Besides that, Stape offers additional features on top of the Google Tag Manager server, like [bypassing adblockers](https://stape.io/solutions/custom-gtm-loader), [increasing cookie lifetime](https://stape.io/solutions/cookie-keeper), [sending offline data](https://stape.io/solutions/sgtm-preview-header), etc. This video shows how to set up a GTM server-side container — Setting up server Google Tag Manager https://youtu.be/SITX4lkvCy0 Below is the step-by-step guide on how to set up GTM server-side container. Step 2: Create a Stape account to host your server GTM container Step 3: Configure a custom tagging server URL Step 4: Create a Google Tag inside the web GTM container Open your Web container, create a new tag - Google Tag. Add your [Google Tag ID](https://support.google.com/analytics/answer/9539598). In the section Configuration settings add the following parameters: Name: server_container_url. Value: Enter the URL you've created. Add trigger to GA4 tag. Normally it should trigger on all page views. ![Add trigger GA4 tag](https://cdn.stape.io/i/668fe3ec7b3fc187432286.png) Optional: You can also create a Google tag: Configuration settings variable that will predefine Google Tag settings if you need to use multiple Google Tags on your website and do not want to add settings for each of the tags manually. ![Create a Google tag: Configuration settings variable](https://cdn.stape.io/i/668fe4492eb31005297789.png) These parameters can be, for example, a setting that defines whether you want to send a page view event every time a Google Tag triggers, set UTM parameters, client ID, etc. There is [a list of standard Google Tags configuration parameters](https://support.google.com/tagmanager/answer/13438166). Step 5: Create Google Analytics: GA4 Event tag To set up the GA4 event, go to the tags section and create a new tag with the tag type Google Analytics: GA4 Event. Add your GA4 ID and the event name; there is a [list of standard event names](https://support.google.com/analytics/answer/9267735). ![Create a GA4 Event tag](https://cdn.stape.io/i/668fe4e1cdca9327818660.png) Step 6: Create GA4 client inside Server GTM container Open Google Tag Manager Server container → click Client → create GA4 client and save it → go to Tags and set up GA4 tag. Remember that GA4 automatically sends not only pageviews but also some other events. Inside Event Name, choose variable {{Event Name}} → add trigger Client Name equals GA4. ![Tag configuration](https://cdn.stape.io/i/668fe88c25a3f873987138.png) ![Trigger configuration](https://cdn.stape.io/i/668fe8b586db5913019745.png) Step 7: Check and debug your setup How to publish the GTM container that you created on the server side? Open the Web and Server container preview modes and check that you see GA4 requests. Then, publish the update inside the server and web Google Tag Manager containers. ![Check and debug your setup](https://cdn.stape.io/i/668fe913d1a6a252124758.png) Step 8: Set up a Custom GA4 Loader You can make Google Analytics 4 server-side tracking even more accurate by using a custom GA4 loader. This will allow GA4 to work around any blocking tools, such as ad blockers and other privacy-related technologies that aim to prevent trackers from gathering data about visitors' activities. As a result, you'll see the complete picture of users visiting your site and have more data for ad optimization and custom audiences. How to set up Custom Loader: 1. Log in to your [stape.io account](https://stape.io/). 2. Open the sGTM container → Click Power Up. 3. Click Config Custom loader power-up → add your WEB GTM ID → You will see updated web GTM code → Copy this web GTM script and add or replace existing web GTM script on your site. ![Custom Loader](https://cdn.stape.io/i/668fe98758a2a342652770.png) ![How to set up Custom Loader](https://cdn.stape.io/i/668fe9a95d902249569018.png) 4. Once you've updated the web GTM code and set up server-side GA4, you can check modified GTM and GA4 requests in the network. Google Tag Manager request URL should look like this: Tagging server URL/stape container identifier.js?st=web GTM ID without letters GTM. In our case, it's https://load.gtm.stape.dog/covxbvwx.js?st=PMVQSJH ![Google Tag Manager request URL](https://cdn.stape.io/i/668fea024e3e8631453772.png) GA4 request URL should look like this: Tagging server URL/gt+stape container identifier.js?id=GA4 identifier..... In our case, it's https://load.gtm.stape.dog/gtcovxbvwx.js?id=G-0SME9XLYER ![GA4 request URL](https://cdn.stape.io/i/668fea4e506be434296667.png) Google Tag Manager server container: real Stape users' problems solved In [this thread](https://community.stape.io/t/sending-data-from-the-google-tag-manager-web-container-to-the-server-c/2192), a user was unsure how to configure their Google Tag Manager server container and asked whether there was a “correct” setup. The issue turned out to be a misunderstanding: there is no single right or wrong configuration - it depends entirely on what data you need to send and which platforms you’re integrating with. Because you can’t diagnose a setup from just a container ID or sGTM URL, the solution was to review the full container configuration, and the recommendation was to involve a tracking specialist if you’re unsure how to structure events. FAQ What is a GTM container? A GTM (Google Tag Manager) container is a collection of tags, triggers, and variables used to manage tracking and marketing codes on a website or mobile app. It acts as a digital workspace that helps marketers organize and control their tags without needing to modify the site’s code directly. A single container can hold multiple tags and rules that determine when and how those tags are fired. There are specific container types tailored for websites, AMP pages, Android apps, iOS apps, and server-side implementation. What is a Google Tag Manager server container? A GTM server container is a special type of container that runs on a server instead of in a browser or app. It helps move tracking tasks from the user’s device to a secure server. This gives more control over data and helps protect user privacy. GTM container vs GTM server сontainer: what’s the difference? A GTM container is used to manage tags directly in a website, AMP page, or mobile app. It runs in the user’s browser or app and helps track things like page views, clicks, and conversions. A GTM server container, on the other hand, runs on a server you control. Instead of firing tags in the browser or app, it processes them in a secure server environment. This gives you more control over your data and improves privacy. Conclusion That’s it. Now, you’ve set up a server container, and Google Analytics runs via your server container. If you want to load GA within your domain and make GA request 1st party follow these steps to use a custom subdomain. And our [team of experts](https://stape.io/for-agencies) can help! And if you also want proof of your skills, [certification](https://stape.io/blog/google-tag-manager-certification) can help you stand out. It shows clients or employers that you understand both browser and server-side setups and that you’ve learned them in depth. Want to switch to server-side? You can do it for free at Stape! Click Try for free and explore the advantages! --- # What is Google Tag Manager server-side tracking? Source: https://stape.io/blog/google-tag-manager-server-side-tracking-explained GTM server-side tagging improves data accuracy, performance and privacy by sending tracking data via your server. Key takeaways: Server-side tracking in GTM sends event data through a cloud server instead of the browser. This method improves data accuracy, gives more control, and helps meet privacy requirements. You’ll need a server container, a custom subdomain, and a tool like Stape to host it. Server-side tracking in Google Tag Manager (GTM) means your tags run through a cloud server instead of the user’s browser. This setup reduces data loss and helps you comply with privacy laws. It also improves website speed as your site isn’t slowed down by third-party scripts running in the browser, and gives you more control over what data is sent to platforms like Google Analytics, Meta, or TikTok. In this article, we’ll explain how server-side GTM works, how it compares to client-side tracking, and how to set it up. What is server-side tracking? Server-side tracking is the data collection method that captures info about user interactions on a dedicated server instead of browsers (like client-side tracking does). With server-side tracking, you can capture event data that won't be affected by ad blockers and browser restrictions, providing better data accuracy. Besides high data quality, [server-side tagging](https://stape.io/blog/server-side-tagging) also offers privacy and control over the data you track, since after capturing, you can modify it and only then send to analytics tools such as Google Analytics 4 or Google Ads. https://www.youtube.com/watch?v=3_TDbf5VqyY Check the detailed explanation of server-side tracking and how you can benefit from setting it up in our article on [what is server-side tracking](https://stape.io/blog/what-is-server-side-tracking). What is server-side tracking in GTM? Server-side tracking in GTM means user interactions are sent to a cloud server before reaching analytics or ad platforms. This setup helps you keep more data, avoid browser restrictions, and manage what’s shared with each platform. Instead of firing tags directly in the browser, you use a server container hosted on your own subdomain (like anything.yoursite.com) to collect and forward events. This setup acts as a middle layer between your site and analytics or ad platforms. Your website or app sends key interactions, such as pageviews or purchases, to the server container. From there, the data can be cleaned, enriched, and routed to different platforms depending on your configuration. You stay in control of what gets shared and when. While the browser still collects the original data, the server-side container lets you process it more securely and flexibly before sending it out. ![Stape server GTM](https://cdn.stape.io/i/646b3b34b2d84939243851.png) Server-side GTM vs Web GTM Web GTM, also called [client-side tracking](https://stape.io/blog/server-side-tagging-versus-client-side-tagging), runs directly in the user’s browser. When someone visits your site, the browser loads all tracking scripts like Google Analytics, Meta Pixel, or TikTok tags. Each script then sends data straight to its platform. This setup is quick to implement but comes with limits. Browsers now block or restrict many tracking requests, especially on iOS or privacy-first browsers. If a script doesn’t load, or if JavaScript is disabled, the data never gets sent. ![Web GTM vs. server-side GTM](https://cdn.stape.io/i/68922293418b4119284721.png) Server-side GTM handles things differently. Instead of running tags in the browser, it sends the same events to a cloud server where you host your GTM server container. From there, you can clean, filter, or enrich the data and forward it to each platform. This helps reduce data loss, avoid browser-related issues, and limit exposure to third-party scripts. You stay in control of what gets shared. You can add user IDs, campaign data, or other values before the data leaves your server. It also improves attribution accuracy since more events are captured and processed in one place. Server-side tracking doesn’t replace browser tracking entirely. Most of the data is still collected in the browser, it’s just passed through the server for better handling and delivery. Feature | Client-side (Web GTM) | Server-side (GTM server container) Where tags run | In the browser | On your cloud server Ad blocker resistance | Low | High (with custom subdomain) Data control | Limited | Full control over what’s shared Cookie lifespan on Safari | 1- 7 days | Up to 13 months (if set from your server using same-domain setup) Setup complexity | Low | Medium (simplified with tools like Stape) How does GTM server-side tracking work? GTM server-side tracking works by adding a cloud server between your website and the platforms you send data to. When someone visits your site, their actions, like a pageview, form submission, or purchase, are still captured in the browser. But instead of sending this data directly to platforms like Google Analytics or Meta, it first goes to your server container hosted at anything.yoursite.com for example. The server container runs on a cloud server, which you can set up manually or use a ready-to-launch service like Stape to simplify the process. It uses GTM’s rules like tags, triggers, and variables to handle the data and send it to the right platforms. This step lets you filter, modify, or enrich the data before it leaves your server. You can remove unnecessary fields, add campaign info, or standardize formats across tools. It also helps reduce data loss from browser restrictions or blocked scripts. To use server-side tracking, you need a cloud server to host the GTM container, a custom subdomain, a client to receive requests, and tags to forward the data. This setup gives you more control over how event data is handled and shared. What is a server GTM container? The server GTM container is a key element of the Google Tag Manager server tag environment. Instead of performing tag processing directly in the user's browser, as a traditional client GTM does, this container runs on the server. This greatly improves performance as the load on the user's device is reduced, allowing web pages to load faster. In traditional methods of tag processing, the user's browser spends resources on executing JavaScript code, which can slow down the site, mainly when a large number of third-party scripts or analytical tools are used. Server-side tagging eliminates these problems because most processes run outside the browser. A popular use case for a server GTM container is working with analytics tags. Instead of loading Google Analytics tags directly on the client's browser, the website sends data to the server GTM container. ![Server-side tracking benefit](https://cdn.stape.io/i/669159a5a0454098806905.png) Server-side Google Tag Manager hosting Hosting server-side GTM manually on Google Cloud or AWS requires technical setup, custom configurations, scaling rules, SSL and DNS setup, and ongoing monitoring. It’s time-consuming and usually needs a developer. Stape solves this by offering [container hosting designed for server-side GTM](https://stape.io/gtm-server-hosting). It includes: Auto-provisioned servers on Google Cloud, globally distributed across the US, EU (including Paris, Belgium, Finland), Asia, and South America. Scaling infrastructure that adjusts automatically when your site gets a high number of visitors, so all events are still processed without delays or data loss. Enterprise-grade security: isolated Kubernetes containers, ISO 27001, SOC 2, GDPR, and HIPAA-ready. Thanks to this setup, you can go live without touching code or managing the server yourself. On top of that, Stape includes tools that improve how tracking works and what data you can collect: [Custom Loader](https://stape.io/solutions/custom-gtm-loader) for GTM, gtag.js or analytics.js to bypass ad blockers and Safari’s tracking restrictions. [Cookie Keeper](https://stape.io/solutions/cookie-keeper) to set first-party cookies from the server, which helps extend cookie lifespan and capture more returning users for attribution even under recent ITP updates from Apple. There are also many other advantages to using [Stape hosting for server GTM](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server), like faster load times or cleaner DNS setups that help avoid browser-level issues. What are the benefits of server-side GTM tracking? Below are the top five benefits of SGTM: With server-side tracking, the tracking code is executed on the server rather than the user's browser. This means the user's device does not need to store any tracking data, which is done entirely on the server side, reducing the load on the user's browser. Website speed boost. Heavy third-party codes and JavaScript execution in user browsers are usually the biggest problems causing low website speed. Fixing them requires a lot of developers’ time. Moving JavaScript execution to the server side will make your website load faster and rank higher. More accurate data collection and conversion tracking. Server-side tagging can help reduce data loss due to ITP and iOS restrictions and may also decrease the impact of AdBlockers. Data control. Server-side tagging helps you control what data each vendor receives. They can access only the information you configured in the request. Compliance and control. Server tracking ultimately allows you to control data flow, each vendor receives only information configured in your server-side tags. These are only the top advantages of the GTM server container. We have a blog post on our blog covering [all the benefits of server-side tracking in detail](https://stape.io/blog/benefits-server-side-tagging). How to set up a Google Tag Manager server container? https://www.youtube.com/watch?v=SITX4lkvCy0&t=1s Setting up server-side tracking in GTM requires two GTM containers: a web container to collect data from the browser and a server container to process that data and send it to platforms like Google Analytics or Meta. If you use Stape, you don’t need to manage the server manually through Google Cloud or AWS. Stape handles provisioning, domain setup, scaling, and SSL so you can launch a working server container without a lot of coding. You can host the container on your own subdomain (like anything.yoursite.com), which helps avoid being blocked by ad blockers and keeps tracking requests first-party. Stape also includes a Preview mode to test events and make sure everything is working correctly before publishing. Here’s how to [get started with Stape](https://stape.io/blog/how-to-start-with-server-side-tracking): 1. Create a Stape account. 2. [Set up a Server GTM container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) and host it using your or Stape’s subdomain. 3. Configure [data transfer from your web container to the server container](https://stape.io/solutions/data-tag-client) with the help of Stape to improve conversion tracking accuracy and reduce data loss caused by ad blockers or browser privacy settings. Then, you have different options: 4. Connect integrations [depending on your goals](https://stape.io/apps). 5. Add analytics tags like [Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) or [Matomo](https://stape.io/solutions/matomo-tag). 6. Add advertising tags like [Meta (Conversions API)](https://stape.io/solutions/facebook-capi-tag), [TikTok](https://stape.io/solutions/tiktok-events-api), [Snapchat](https://stape.io/solutions/snapchat-capi-tag), [Microsoft Ads](https://stape.io/solutions/microsoft-advertising-connection), or [Google Ads server-side conversion tracking](https://stape.io/solutions/adwords-server-side-tracking). 7. Check [which platforms support server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). 8. Use [pre-built GTM templates to speed up your setup](https://stape.io/gtm-set-up-assistant). How much does a server-side container cost? Google Cloud Platform offers a free test environment that effectively manages server-side tagging. However, to integrate it into production, you must pay a minimum of $120/month + additional fees that depend on the website traffic. Stape has a [range of pricing plans](https://stape.io/price?utm_source=google&utm_medium=cpc&utm_campaign=GA_Search_DACH_Brand&utm_content=183357785265&utm_term=stape&pt=tedmfmwx&rs=22910694841&gad_source=1&gad_campaignid=22910694841&gbraid=0AAAAA93X2JLCSwF8WVReXAssTyGTWIsF7&gclid=CjwKCAjwmdLSBhANEiwAkREMNzqpoKD2-R67hp66GBz1Vb1Cd4XKkDHBbsTrPFBKv6xWbHNjzU2NmBoCwzUQAvD_BwE) to choose from: free, pro, business, enterprise and custom. Our free plan lets you get up to 10,000 requests per month. ![Stape pricing](https://cdn.stape.io/i/67f916686b183774492176.png) There is also a [pricing calculator](https://stape.io/price-server-google-tag-manager#calculator) on our website that lets you figure out which plan is right for your site. ![Pricing calculator](https://cdn.stape.io/i/67f9167a1a14c434807929.png) Conclusions Is server-side tracking worth trying? We believe the answer is absolutely YES if you want to collect data about your website visitors using advanced technology in a privacy-compliant way. When it comes to GTM server-side vs. client-side, the server-side option has numerous advantages at the onset of the cookieless era. With server-side tracking, you get more accurate data collection and conversion tracking, complete data control, and faster website load. You can gather more data efficiently and get insights client-side tracking could never provide. Most importantly, server-side GTM helps you stay compliant and treat customer data responsively. Arguably, compliance is a very important aspect of a business's reputation in customers' eyes. If you have any questions about sending data to the server side in GTM, our [team of experts](https://stape.io/for-agencies) can help! --- # Custom GTM and GA4 Loader Source: https://stape.io/solutions/custom-gtm-loader Set up the Custom Loader power-up to minimize the impact of ad blockers on your GTM/GA4 scripts. The Custom Loader power-up minimizes the impact of ad blockers on your GTM and GA4 scripts by routing them through a path that turns all cookies into first-party cookies. Custom Loader is available on the Free subscription plan and higher. To check your current plan or upgrade, go to your sGTM container settings. How to set up Custom Loader 1. Log in to your [Stape account](https://stape.io/login) and select your sGTM container from the dashboard. ![Log in to your Stape account and select your sGTM container from the dashboard](https://cdn.stape.io/i/69df4f709908c686294564.png) 2. Go to Power-ups and click Use next to the Custom Loader panel. ![Go to Power-ups and click Use next to the Custom Loader panel](https://cdn.stape.io/i/69df4face0d7c646620298.png) 3. Toggle the Custom Loader switch to enable it and click Save changes. ![Toggle the Custom Loader switch to enable it and click Save changes](https://cdn.stape.io/i/69df4ff0eadbb012377998.png) 4. In the Code & Setup information section, configure the following settings: - Domain - select one of the domains linked to your container. - Web GTM ID - enter your [web Google Tag Manager ID](https://stape.io/helpdesk/knowledgebase/how-to-find-web-google-tag-manager-gtm-id). - Enhanced ad blocker protection - when enabled, all requests to your sGTM server are encrypted so ad blockers can’t block them based on request patterns. Learn more about the [enhanced ad blocker protection](https://stape.io/helpdesk/knowledgebase/ga4-ad-block-bypass-in-custom-loader). - Same Origin Path - if you use the [same-origin approach](https://stape.io/helpdesk/documentation/how-to-use-same-origin-approach-for-server-gtm), enter the path here so both GTM and gtag.js load through it. - Platform - here you can either: Select your CMS platform (such as Shopify, Wordpress, etc.). In this case, you’ll be required to install and configure a Stape app. Select Other to receive a JS snippet in case you’re using another platform or a custom website. Setup for a listed platform Select your platform and click Generate. You’ll get configuration and app installation instructions in the Configuration panel for your selected platform. Follow the app installation guide. Note: Some platforms may require you to tick the Custom Loader checkbox for the power-up to be enabled. ![Select your platform and click Generate](https://cdn.stape.io/i/69df528f252db045805254.png) Setup for other platforms 1. Select Other. You can also configure Advanced settings: Data Layer variable name - specify only if you use a non-standard dataLayer. Generate with Cookie Keeper - includes Cookie Keeper logic in the generated code. This checkbox appears and is automatically enabled when you have the Cookie Keeper power-up. User identifier type - appears together with Generate with Cookie Keeper. Choose how to identify users - cookie is the recommended option. When selected, enter the name of the first-party cookie to use as the identifier. For more information read [How to choose user identifier type in Cookie Keeper](https://stape.io/helpdesk/knowledgebase/how-to-choose-user-identifier-type-in-cookie-keeper). 2. Click Generate and add the provided code to your website. Note: Remove the standard GTM loader from your site if you have one - running both simultaneously will cause conflicts. ![Click Generate and add the provided code to your website](https://cdn.stape.io/i/69df62b00e166337736673.png) Testing To verify the setup is working: Open any page on your website. Right-click → Inspect → open the Network tab. Filter requests by your custom subdomain or same-origin path. Look for the GTM request URL - it should return a 200 OK status code. ![Network tab](https://cdn.stape.io/i/69df62f23e185225928723.png) Note: With Custom Loader and enhanced ad blocker protection enabled, GA4 request URLs will appear encrypted. Use case A sample scenario is an eCommerce store that sees significant data loss because a large share of its users have ad blockers installed. By enabling Custom Loader, all GTM and GA4 scripts load from a first-party domain, so ad blockers no longer recognize and block them. You can spot the data loss this way: Compare the order count in your backend against Purchase events in GA4 for the same period. If your backend shows 500 purchases but GA4 only reports 380, the gap could be caused by ad blockers preventing the GTM script from loading in users' browsers entirely. Enable Custom Loader. This reroutes GTM and GA4 scripts through your first-party domain, so ad blockers can no longer identify and block them by URL pattern. Monitor your GA4 Purchase event count over the same time window and compare it against your backend again. If the gap persists after enabling Custom Loader, turn on the Enhanced ad blocker protection as well. This encrypts the request URLs so that blocking rules can't match them. --- # Cookie Keeper Source: https://stape.io/solutions/cookie-keeper Cookie Keeper by Stape restores selected marketing cookies, helps recognize returning visitors, and supports more complete tracking. Cookie Keeper is a power-up by Stape that helps cookies last longer in browsers with strict cookie limits, including Safari 16.4+. After you enable it, cookies that would expire after 7 days can keep working up to 13 months, which helps keep attribution, reporting, and retargeting more stable. Get started now (https://stape.io/sign-up) How to access Cookie Keeper Cookie Keeper is available for Stape users on Pro plans and higher. You can find Cookie Keeper in the Power-Ups tab in your [Stape account](https://stape.io/login). ![Cookie Keeper in the Power-Ups tab](https://cdn.stape.io/i/69c50b4764d70181341597.png) How Cookie Keeper works Cookie Keeper uses a first-party master cookie stored on your website to remember the user’s ID. If one of the supported marketing cookies you selected is missing, Cookie Keeper restores it from the master cookie. This means returning visitors can still be recognized. How Cookie Keeper works https://www.youtube.com/watch?v=n-CtX-uieTQ Benefits of Cookie Keeper Longer attribution window. When cookies do not disappear too early, platforms and analytics tools can connect conversions to earlier visits over a longer period, not just a few days. Accurate customer journey and multi-channel reporting. Longer-lasting cookies make it easier to recognize the same visitor across different visits and traffic sources. This helps connect actions that happen before a purchase or another conversion and keeps reporting accurate across channels. More relevant retargeting and personalization. Retargeting depends on recognizing a visitor who came to your site before or took a specific action. When the cookie lasts longer, you can keep showing ads and content based on that earlier visit for a longer time. Keep your tracking more complete If browser limits are cutting cookie duration, Cookie Keeper gives you a way to keep supported cookies working longer. Get started now (https://stape.io/sign-up) Useful links [Safari ITP - everything you need to know](https://stape.io/blog/safari-itp). [Extend cookie lifetime using server-side Google Tag Manager](https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager). [How to set up Cookie Keeper](https://stape.io/helpdesk/documentation/cookie-keeper-power-up). --- # Data Tag/Data Client Source: https://stape.io/solutions/data-tag-client Use Data Tag and Data Client to transfer data from Google Tag Manager web container to server container with data layer variables or custom parameters. Data Tag and Data Client were created to send data from the Google Tag Manager web container to the server container. There are two ways to use this tool: send data layer variables or send any other information via custom parameters that exist on your website. Besides, Data Client can retrieve and store all of this information on its server container event data. Try for free (https://stape.io/sign-up) How to use Stape Data Tag and Data Client [Step-by-step guide] https://youtu.be/QOhvIgHU1Sg Data Tag/Data Client benefits: Sending arrays of data from web to server container Automatically detecting and sending dataLayer Storing variables Transforming data by using hash or modification functions Send dataLayer push from server GTM to web GTM Useful links 1. [Data tag template](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/data-tag). 2. [Data Client template](https://github.com/stape-io/data-client). 3. https://stape.io/solutions/data-tag-client[How to use Data Tag/Data Client](https://stape.io/blog/sending-data-from-google-tag-manager-web-container-to-the-server-container). 4. [Avoid Google Analytics blocking by Ad Blockers or Brave](https://stape.io/blog/avoiding-google-tag-manager-blocking-by-adblockers). 5. [Send data from server to web GTM container.](https://stape.io/blog/send-datalayer-push-from-server-gtm-to-web-gtm) --- # Anonymizer Source: https://stape.io/solutions/anonymizer Anonymizer removes or anonymizes selected parameters before the data is sent to GA4, helping you keep a privacy-focused analytics setup. Anonymizer is a free power-up that helps you remove or anonymize user data before it reaches Google Analytics 4 (GA4). This gives you more control over what GA4 receives and helps keep your analytics setup privacy-focused. Get started now (https://stape.io/sign-up) Anonymizer is available for all Stape users. You can find it in the Power-Ups tab in your Stape account. ![Anonymizer](https://cdn.stape.io/i/69cfc347053d3995884823.png) How Anonymizer works Anonymizer applies the rules set in its settings before data is sent to GA4. Most parameters can be kept, removed, or anonymized. There is an extra anonymization option for IPs called the Smart option. It replaces the visitor’s IP address with a static IP from the same country. How Anonymizer works https://www.youtube.com/watch?v=EHsNpSddScY Benefits of Anonymizer More control over what is sent to GA4. Anonymizer helps limit what GA4 receives by removing or anonymizing selected data before it is sent. Easier privacy updates. Anonymizer settings can be changed later in the Power-Ups tab, which helps when privacy requirements change. Make GA4 tracking more privacy-focused If some user details should not be shared with Google Analytics 4, Anonymizer helps remove or anonymize them before they are passed on. Get started now (https://stape.io/sign-up) Useful links [How to set up the Anonymizer power-up](https://stape.io/helpdesk/documentation/anonymizer-power-up) [How to anonymize user data in Google Analytics 4](https://stape.io/blog/how-to-anonymize-user-data-google-analytics-4) --- # Multi Domains Source: https://stape.io/solutions/multi-domains How to map several custom domains to a single server-side Google Tag Manager container using stape.io Server Google Tag Manager allows only one custom subdomain to be set per container. This happens due to a technical limitation as you can add only one Tagging Server URL in the GTM interface. Stape.io Business Plan users can map several subdomains to one server container. This can be extremely useful if you have a separate website for each country or language, or maybe have a set of sites in one niche and use one sGTM for all of them. To set up a multi-domain, go to your container settings, click Power-ups, choose Multi Domains, and add your domain names - it's that simple. For Business plan users the limit is 20 domains, for Enterprise - 50 domains, and for Custom - the domain limit is determined by individual arrangement. Map multiple domains inside sGTM container https://www.youtube.com/watch?v=zrLjb_C-wZs Use cases of the power-up [Server-side GTM with multiple domains](https://stape.io/blog/server-side-gtm-with-multiple-domains) Upgrade to Business (https://stape.io/sign-up) --- # sGTM Preview Header config Source: https://stape.io/solutions/sgtm-preview-header Set up the Preview Header power-up to view data sent to sGTM from outside your website's GTM, letting you inspect these requests. You can send requests to the server GTM container from any data point outside of web GTM. Due to technical limitations, you can only see web GTM requests in the server GTM preview mode. But do not worry, we have a Preview Header power-up that fixes this problem. Stape's Preview Header is available to all users. It will be beneficial if you send requests to sGTM from elsewhere outside the Web GTM and want to see them in the sGTM debugger. To set up Stape's Preview Header, all you need to do is open the sGTM preview mode, click three dots in the top right corner, click send request manually, copy the Preview Header, and paste it into your Stape's container settings. Since the Preview Header is a dynamic value, removing the Preview Header from your stape.io account after you are done with testing is essential. Otherwise, you won't see any requests in the sGTM debugger the next time. Try for free (https://stape.io/sign-up) How to set up sGTM Preview Header 1. Open sGTM preview mode -> Click three dots in the top right corner -> Click Send requests manually -> Copy X-Gtm-Server-Preview HTTP Header. ![Send requests manually sGTM](https://cdn.stape.io/i/66c85c538dd07798647286.png) 2. Go to your [stape.io account](https://stape.io/sign-up) → Open sGTM container → Click Power-ups → Click sGTM Preview Header config → Paste GTM Server Preview HTTP Header that you've recently copied in sGTM preview. → Click Save ![image](https://cdn.stape.io/i/69f06dc5f3392334443717.png) ![image](https://cdn.stape.io/i/69f06e089f025171845479.png) 3. HTTP Header in sGTM is a dynamic value; make sure to remove the Preview Header in sGTM power-up once you've done with testing. Use cases of the power-up [Guide to debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) [Send data from CRM to Facebook conversion API using webhooks](https://stape.io/blog/send-data-from-crm-to-facebook-conversion-api-using-webhooks) --- # User ID Source: https://stape.io/solutions/user-id User ID power-up adds a user ID to the sGTM event data. User ID consists of... This power-up adds a user ID to the sGTM event data. User ID consists of a hash of: user IP User-agent string Hostname TLS settings In order to enable it, all you need to do is log in to your [stape.io account](https://stape.io/sign-up), open container, choose power-ups and click "Use" button. ![Locating user id power-up](https://cdn.stape.io/i/66f665bda672f939882718.png) ![Turning on user id power-up](https://cdn.stape.io/i/66f665cab8455045872165.png) How to enrich user data in your server-side GTM [User Agent Info, User ID, Bot detection power-ups] https://www.youtube.com/watch?v=bRKSQqUUlvs&ab_channel=Stape Use cases of the power-up [Add user IDs to the sGTM events data with Stape’s power-up](https://stape.io/blog/add-user-ids-to-the-sgtm-events-data-with-stape-power-up)https://stape.io/blog/add-user-ids-to-the-sgtm-events-data-with-stape-power-up Try it out (https://stape.io/sign-up) --- # Stape Analytics Source: https://stape.io/solutions/stape-analytics Find out how you can measure the impact and effectiveness of your server-side tracking setup with Stape Analytics. Stape Analytics visualizes how server-side tracking improves your data quality. See how bypassing ad blockers and browser restrictions helps you recover lost events and get more data for ad and analytics platforms. Try for free (https://stape.io/sign-up) https://www.youtube.com/watch?v=4gfY61-lkZo Stape Analytics is a tool available to all Stape users. You can access the feature directly within your Stape container under the Analytics tab. ![Analytics tab](https://cdn.stape.io/i/695ceb4630352991196444.png) Stape Analytics offers a dashboard that categorizes various request types, so you can view a breakdown of total versus recovered requests by the client (such as GA4, Data Client, etc.) and by event names. Stape Analytics benefits See the impact of server-side tracking. Use Stape Analytics charts to see the percentage of restored data so you can quantify the real influence on your traffic. Get transparency into bot activity. See the statistics on non-human traffic on your website. Understanding your bot-to-human ratio allows you to clean your datasets and be sure you aren't paying for (or analyzing) fake engagement. Ensure tracking accuracy across all platforms. Break down performance by specific Clients (GA4, Data Client, etc.) and individual event names. This helps you verify that every conversion and pageview is captured correctly across all platforms. Measure how much data you save from browser restrictions. See what browsers your visitors use and how many requests were restored for each. Use these insights to understand where browser restrictions (like ITP) hit your data collection harder and how much data your server-side tracking configuration is saving. Marketers can't afford to be blinded by browser restrictions. Use Stape Analytics to gain transparency over your data flow and take control of your tracking accuracy! Try for free (https://stape.io/sign-up) Useful link [Stape Analytics: measure the impact of your server-side tracking](https://stape.io/blog/stape-analytics-measure-the-impact-of-your-server-side-tracking) --- # Facebook CAPI tag Source: https://stape.io/solutions/facebook-capi-tag Stape created a tag for the server Google Tag Manager container that helps to set up the Facebook Conversion API. Facebook CAPI tag helps to set up Facebook Conversion API. The benefit of using our tag is that it works with Google Analytics 4, and Data Tag as data sources. Ultimately, it allows extracting conversion data from any client you want. Facebook CAPI Tag https://www.youtube.com/watch?v=ytNnSVodsA4&ab_channel=Stape Try for free (https://stape.io/sign-up) Benefits of Stape's Facebook Conversion API tag: Works with Google Analytics 4, and Data Tag. Extracts event data from any client. Parses server client and automatically adds necessary parameters to the request. Sends user data to increase the match quality score. Sets up event deduplication. Supports Request/Response logging to BigQuery — get full visibility, easier debugging, and richer data for analytics. Useful links 1. [Facebook CAPI tag template](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag). 2. [Facebook unique event ID variable template.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/unique-event-id-variable) 3. [How to set up Facebook Conversion API tag - guide.](https://stape.io/blog/how-to-set-up-facebook-conversion-api) 4. [How to set up Facebook event deduplication](https://stape.io/blog/how-to-set-up-facebook-event-deduplication-in-google-tag-manager). 5. [Facebook Conversion API errors and how to fix it.](https://stape.io/blog/facebook-conversion-api-errors-and-how-to-fix-it) 6. [How to improve FB server events match quality score](https://stape.io/blog/facebook-event-match-quality-what-it-is-and-how-to-increase-it). --- # Stape Conversion Tracking Hubspot app Source: https://stape.io/solutions/hubspot-meta-leads-api Discover how to integrate HubSpot CRM with Meta CAPI to send lead statuses, optimize ad campaigns, and track online and offline conversions. The Stape Conversion Tracking HubSpot app connects HubSpot CRM with ad platforms like Meta and Google Ads, as well as server-side tracking tools. It tracks Contact progress and sends conversion events to your CAPI Gateway, server GTM container, or Signals Gateway. You can also sync data with Google Ads Customer Match or automatically update Meta Custom Audiences. Try for free (https://ecosystem.hubspot.com/marketplace/apps/meta-leads-api-by-stape) How to access the Stape Conversion Tracking app for HubSpot CRM You can install the app directly by using the [direct app link](https://ecosystem.hubspot.com/marketplace/apps/meta-leads-api-by-stape). The app is designed to reduce manual work and make conversion tracking from CRM data reliable, automated, and easy to manage. ![HubSpot CRM](https://cdn.stape.io/i/6a27eaa97dead856807626.png) How it works The app monitors Contacts in HubSpot CRM and tracks changes to their lifecycle stages and statuses. When a Contact reaches a specific stage or meets defined conditions, the app automatically creates a corresponding conversion event. These events are sent through your preferred integration method – server GTM container, Meta Conversions API Gateway, or Signals Gateway – and then forwarded to advertising platforms such as Meta and Google Ads. Depending on your setup, you can connect one or multiple destinations. Once configured, the app continuously sends conversion data without any manual input. Benefits of the Stape Conversion Tracking app for HubSpot CRM Improve Meta Ads performance with CRM data. The app sends Contact and lifecycle stage updates from HubSpot back to Meta. It helps Meta's algorithms understand which leads become qualified opportunities and customers. In this way, Meta can optimize campaign delivery toward users who are more likely to generate revenue. Optimize Google Ads campaigns with real conversion data. The app sends Contact stage updates and conversion events to Google Ads and automatically creates/updates Customer Match audiences. This allows Google Ads to optimize campaigns based on actual sales outcomes instead of only website conversions or lead form submissions. Track offline conversions without manual uploads. Many conversions happen through sales calls, demos, consultations, or offline interactions. Once these activities result in a Contact update inside HubSpot, the app can automatically send conversion data to Meta or Google Ads without requiring CSV uploads or manual imports. Automatically update Meta Custom Audiences. The app integrates with the Meta Marketing API to add or remove contacts from Custom Audiences in real time based on HubSpot data. This ensures your audiences remain accurate, up-to-date, and aligned with the current customer journey. Send HubSpot data to multiple platforms. After connecting the app with a server GTM container, you can route CRM conversion data to any platform that supports server-side tracking. This gives you flexibility beyond Meta and Google Ads and allows you to build a centralized conversion tracking infrastructure. Ready to improve your tracking? Install the Stape Conversion Tracking app for HubSpot CRM to transform your CRM pipeline into reliable conversion data that helps improve marketing performance and get better advertising results. Try for free (https://ecosystem.hubspot.com/marketplace/apps/meta-leads-api-by-stape) Useful links [HubSpot app by Stape: report data from CRM to the platforms you need](https://stape.io/blog/hubspot-crm-conversion-tracking-app) [Meta Custom Audiences guide: how to create and automate](https://stape.io/blog/facebook-custom-audiences) [Set up automatic Google Customer Match Lists](https://stape.io/blog/customer-list-google-ads) --- # Pipedrive | Stape Conversion Tracking app Source: https://stape.io/solutions/pipedrive-meta-leads-api Track precise conversion events with the Stape Conversion Tracking Pipedrive app. Integrate your CRM and send Deal stage data to server GTM or CAPI Gateway. Enjoy precise conversion tracking with the Stape Conversion Tracking Pipedrive app. The app tracks and reports your Deals' progress as conversion events to your CAPI Gateway, server GTM container, or Signals Gateway. Then the data can be forwarded to the desired destination (e.g., Meta Ads). The setup and conversion tracking management are straightforward and efficient. You need to configure the Stape Conversion Tracking Pipedrive app once, and Deals' stages will be reported to your destination automatically unless you make changes in the app configuration. Benefit from seamless integration with existing Pipedrive CRM workflows and precise data tracking in your destination. Install for free (https://oauth.pipedrive.com/oauth/authorize?client_id=cc435d5629297210&redirect_uri=https%3A%2F%2Fpipedrive.stapecdn.com%2Fpipedrive%2Fcallback) Useful links [How to set up Stape Conversion Tracking Pipedrive app](https://help.stape.io/hc/en-us/articles/21007970318365--Pipedrive-Meta-Leads-API-by-Stape) --- # Stape Conversion Tracking Salesforce app Source: https://stape.io/solutions/salesforce-meta-leads-api Find out the benefits of Stape Conversion Tracking Salesforce app and how it can report your leads' statuses to the platforms you need. The Stape Conversions Tracking app for Salesforce is a solution for marketers looking to connect Salesforce with major advertising platforms like Meta, Google Ads, or any other platform that supports server-side tracking. The app automatically collects and sends updates about your Leads' status from Salesforce to your selected platforms. As a result, these platforms receive real-time data, which can be used to improve campaign performance and target high-intent audience segments. The Stape Salesforce app includes a 1-day free trial, after which an active license is required to continue using the app. Try now (https://appexchange.salesforce.com/appxListingDetail?listingId=20bda0b1-fdc1-4ba4-ac41-2156880a3ffe) Benefits ● Data automation. The app automatically transfers conversion data from Salesforce to platforms that support server-side tracking, so you don't need to upload CSV files manually. ● Offline conversion tracking. Send offline conversion data (such as in-store purchases or phone call conversions) from Salesforce to your desired platform. ● Data enrichment. With server-side GTM as the setup method, you can send CRM data to any platform compatible with this tracking approach. ● Flexible integration options. Choose from multiple integration methods to match your setup, such as Meta Conversions API Gateway, Signals Gateway, or server-side Google Tag Manager. Useful links [How to set up Stape Conversion Tracking Salesforce app](https://stape.io/helpdesk/documentation/salesforce-stape-conversion-tracking-app) [Stape Conversion Tracking Salesforce app on the marketplace](https://appexchange.salesforce.com/appxListingDetail?listingId=20bda0b1-fdc1-4ba4-ac41-2156880a3ffe) --- # Stape Conversion Tracking Zoho CRM app Source: https://stape.io/solutions/zoho-crm-meta-leads-api Stape Conversion Tracking Zoho CRM app. The app reports your Leads' progress as conversion events to the platform you need. The Stape Conversion Tracking app for Zoho CRM helps businesses connect their CRM data with advertising and server-side tracking platforms, including Meta Ads, Google Ads, and other destinations. The app can also synchronize audiences with Google Ads Customer Match and Meta Custom Audiences. It allows marketers to use CRM data for more accurate campaign optimization. Try for free (https://marketplace.zoho.com/app/crm/stape-meta-leads-for-zoho-crm) How to access the Stape Conversion Tracking app for Zoho CRM You can install the app directly using a [link to the Zoho CRM marketplace installation](https://marketplace.zoho.com/app/crm/stape-meta-leads-for-zoho-crm). The app is built to simplify CRM-based conversion tracking by eliminating manual processes and ensuring that customer journey data is consistently shared with your marketing platforms. ![How to access the Stape Conversion Tracking app for Zoho CRM](https://cdn.stape.io/i/6a2ac26ac0d03824034762.png) How it works The app continuously monitors records in Zoho CRM, when a record reaches a selected stage, status, or other predefined condition, the app automatically generates a conversion event. These conversion events are then sent through your chosen destination, such as a server GTM container, Meta Conversions API Gateway, or Signals Gateway. From there, the data is forwarded to advertising platforms like Meta Ads and Google Ads. You can connect a single destination or build a multi-platform setup based on your tracking requirements. After setup, the process runs automatically in the background. In this way, your conversion data remains accurate and up to date without any manual work. Benefits of the Stape Conversion Tracking app for Zoho CRM Improve Meta Ads optimization with CRM conversion signals. The app sends lead data from Zoho CRM back to Meta. This gives Meta more visibility into which leads become qualified opportunities and paying customers. With such info, Meta can focus on users who are more likely to convert and generate business value. Enhance Google Ads performance using sales pipeline data. After sharing CRM conversion events and stage changes with Google Ads, the app allows campaigns to optimize toward actual business outcomes. It can also automatically create and maintain Google Ads Customer Match audiences for more precise targeting. Track offline conversions automatically. Many conversions happen outside of your website through phone calls, meetings, or sales conversations. When these interactions result in updates within Zoho CRM, the app can automatically send the corresponding conversion events to Meta or Google Ads. So no need for manual imports or spreadsheet uploads from your end. Keep Meta Custom Audiences synchronized in real time. The app can automatically add or remove contacts from Meta Custom Audiences based on CRM activity and customer status changes. This helps maintain audience accuracy and ensures advertising campaigns use the latest customer data. Connect Zoho CRM data to multiple marketing platforms. When connected through a server-side GTM container, the app allows you to send CRM conversion data to different platforms that support server-side tracking. This creates a flexible and scalable tracking infrastructure. Ready to improve your conversion tracking? Install the Stape Conversion Tracking app for Zoho CRM and turn your CRM records into conversion data. By automatically sharing customer journeys with your advertising platforms, you can improve campaign optimization, increase data accuracy, and achieve better results. Try for free (https://marketplace.zoho.com/app/crm/stape-meta-leads-for-zoho-crm) Useful links [Send data to the required platform from Zoho CRM with Stape's app](https://stape.io/blog/meta-zoho-crm-conversion-tracking-app) [Meta Custom Audiences guide: how to create and automate](https://stape.io/blog/facebook-custom-audiences) [Set up automatic Google Customer Match Lists](https://stape.io/blog/customer-list-google-ads) --- # Odoo CRM app Source: https://stape.io/solutions/stape-conversion-tracking-odoo-crm-app Find out the benefits of the Stape Conversion Tracking Odoo CRM app and how it can improve your data tracking. The Stape Conversion Tracking app for Odoo CRM is a free solution that simplifies reporting your CRM pipeline activity as conversion events to other platforms like Meta. It connects your Odoo CRM with a server-side tracking solution (sGTM container, Meta CAPIG, or Signals Gateway), so you can collect accurate conversion data and improve the performance of your marketing efforts. Try for free (https://apps.odoo.com/apps/modules/19.0/stape_crm) How to access the Stape Conversion Tracking app for Odoo CRM You can install it directly from your Odoo Apps marketplace by searching for “Stape Conversion Tracking” or by [following the direct app link](https://apps.odoo.com/apps/modules/19.0/stape_crm). The app is designed to minimize manual configuration and make conversion tracking from CRM data reliable and easy to manage. ![Stape Conversion Tracking app for Odoo CRM](https://cdn.stape.io/i/69fb170ba39d6591773100.png) How it works The app monitors your Opportunities inside Odoo CRM and tracks their progress across different stages. When a stage changes or a defined condition is met, it automatically generates a corresponding conversion event. These events are structured and sent to your chosen destination - CAPI Gateway, Signals Gateway, or server-side GTM, and then forwarded to the required platforms. You can configure each integration separately or run them together, depending on your tracking setup. After initial configuration, the conversion data is sent without any additional manual work. ![How Stape Conversion Tracking app for Odoo CRM works](https://cdn.stape.io/i/69fb1724b4378101317729.png) Benefits of the Stape Conversion Tracking app for Odoo CRM Improve Facebook Lead Ads performance with CRM data. Facebook Lead Ads capture leads directly on Meta and send them to your CRM. The app then updates the Meta Dataset as a lead stage change (for example, when a lead becomes qualified or converted). Meta uses this enriched data to better optimize your campaigns and improve targeting. Automatically track Opportunity progress as conversion events. The app continuously monitors Opportunity stages and sends events based on their status changes. This removes the need for manual reporting, so you can be sure that your conversion data shows real customer journey progress. Track offline conversions without manual uploads. When a purchase or deal is recorded in your CRM, the app automatically sends this data to your selected platform. This eliminates the need to upload CSV files manually or rely on webhooks, saving time and making your tracking process more efficient. Improve the accuracy of your conversion data. The app reduces data loss caused by browser limitations, since events are sent directly from your CRM via server-side solutions like CAPI Gateway, Signals Gateway, or server GTM. Send conversion data from CRM without a complex setup. The app provides a user-friendly interface where you can configure all tracking settings. You can map CRM fields to event parameters and start sending conversion data without custom development or complicated integrations Ready to improve your tracking? Install the Stape Conversion Tracking app for Odoo CRM and start turning your CRM pipeline into accurate conversion data to optimize marketing efforts and get better results! Try for free (https://apps.odoo.com/apps/modules/19.0/stape_crm) Useful links [How to track Odoo CRM conversions with Stape's app](https://stape.io/helpdesk/documentation/odoo-crm-stape-conversion-tracking-app) [Integrate Facebook with Odoo for automated lead tracking](https://stape.io/blog/odoo-facebook-integration)https://stape.io/helpdesk/documentation/odoo-crm-stape-conversion-tracking-app --- # Stape Conversion Tracking HighLevel app Source: https://stape.io/solutions/highlevel-meta-leads-api Conversions API for CRM app by Stape. The app reports your Opportunities' progress as conversion events to your Meta Dataset. Stape Conversion Tracking HighLevel app helps marketers integrate HighLevel CRM with major ad platforms, including Meta, Google Ads, and other server-side tracking-compatible platforms. Track your Opportunities’ progress and report those as conversion events to your CAPI Gateway, server GTM container, or Signals Gateway with the Stape Conversion Tracking HighLevel app. You can also opt for Customer Match to synchronize Opportunities to Google Ads Customer Match audiences or for Meta Custom Audience to automatically update the audience data. Try for free (https://marketplace.gohighlevel.com/integration/6698b5f4887d5c2f8125ddb1/versions/6989db4d08a4031639ea3fc0) How to access the Stape Conversion Tracking app for HighLevel CRM You can install the app directly from the HighLevel marketplace by searching for “Stape Conversion Tracking” or by using the [direct app link](https://marketplace.gohighlevel.com/integration/6698b5f4887d5c2f8125ddb1/versions/6989db4d08a4031639ea3fc0). The app is created to reduce manual work and make conversion tracking from CRM data reliable, automated, and easy to manage. ![Stape Conversion Tracking app for HighLevel CRM](https://cdn.stape.io/i/6a0588bf1e5c5380780859.png) How it works The app monitors Opportunities inside HighLevel CRM and tracks their progress across different stages. When an Opportunity status changes or meets a defined condition, the app automatically generates a corresponding conversion event. These events are sent through your selected integration method - server GTM container, Meta Conversions API Gateway, or Signals Gateway - and then forwarded to platforms like Meta or Google Ads. You can configure one or multiple integrations depending on your tracking setup. Once configured, the app continuously sends conversion data without any manual input. Benefits of the Stape Conversion Tracking app for HighLevel CRM Improve Facebook Lead Ads performance with CRM data. Facebook Lead Ads collect leads directly on Meta and transfer them to HighLevel CRM. The app sends updates on Opportunity statuses back to Meta, helping its algorithms better understand which users convert and optimize campaign targeting for higher-quality leads. Optimize Google Ads campaigns with real conversion data. The app sends Opportunity status updates to Google Ads and automatically creates Customer Match audiences. This allows Google to optimize campaigns based on actual CRM outcomes, not just initial clicks or form submissions. Track offline conversions without manual uploads. If conversions happen via phone calls, meetings, or in-store visits, the app captures these once they are recorded in HighLevel CRM and sends them to Meta or Google Ads. No need for CSV uploads or manual syncing. Automatically update Meta Custom Audiences. The app integrates with the Meta Marketing API to add or remove users from Custom Audiences in real time based on CRM data, ensuring your audiences are always accurate and up to date. Send HighLevel data to multiple platforms. By connecting the app with a server GTM container, you can route CRM data to any platform that supports server-side tracking, giving you flexibility beyond Meta and Google Ads. Improve campaign performance with better data. When ad platforms receive enriched CRM data, they can better understand which users are more likely to convert and optimize targeting accordingly. Ready to improve your tracking? Install the Stape Conversion Tracking app for HighLevel CRM and start turning your CRM pipeline into accurate conversion data to optimize marketing performance and get better results. Try for free (https://marketplace.gohighlevel.com/integration/6698b5f4887d5c2f8125ddb1/versions/6989db4d08a4031639ea3fc0) Useful links [How to set up Stape Conversion Tracking HighLevel app](https://stape.io/blog/integrate-meta-highlevel-crm-conversion-tracking-app) [Automatically create and fill Customer List in Google Ads](https://stape.io/blog/customer-list-google-ads) --- # Unique event ID variable Source: https://stape.io/solutions/unique-event-id-variable This variable for the Google Tag Manager web container generates a unique event ID. This variable for the Google Tag Manager web container generates a unique event ID. It’s versatile and works across any platform—not just Facebook. Use it to set up the Facebook Conversion API and event deduplication, ensuring you can share the same event IDs seamlessly between the web and server containers. Try for free (https://stape.io/sign-up) Benefits of Unique event ID variable: Ability to create a variable that generates a unique event ID Reducing any risk of duplicating Facebook events Sending the same events IDs from the web and server container Useful links 1. [How to easily maintain Facebook Test ID in your Google Tag Manager Server container](https://stape.io/blog/how-to-create-test-facebook-variable) 2. [How to set up Facebook Conversions API.](https://stape.io/blog/how-to-set-up-facebook-conversion-api) --- # Access and billing Source: https://stape.io/solutions/access-billing Share access to Stape accounts and transfer ownership of your sGTM containers. This guide explains account types and how to manage user access. Stape has two types of accounts: Personal - works best if you want to manage your sGTM container. Agency - fits those who set up sGTM for clients. With the help of an agency account, you have access to and can manage the client's container while your client is responsible for billing. If you would like to use an agency account, please send an email to [support@stape.io](mailto:support@stape.io), and we will create one for you. Or you can create an agency account on your own just following [this guide.](https://help.stape.io/hc/en-us/articles/8251340776733-How-to-convert-standard-account-to-agency-account) You can easily share access and transfer ownership of your sGTM containers using Stape admin. To share access to your Stape account click Account Settings -> Shared access -> Add Stape user email -> Click Share Access. Once done, a user will have access to all containers in your account. ![image](https://cdn.stape.io/i/66c7407f174aa185584733.png) To transfer ownership of the container, open the sGTM container -> Click three dots in the top right corner -> Click Transfer ownership -> Add user email. Note: once ownership is transferred you will lose access to this container. ![transfer ownership of the container](https://cdn.stape.io/i/66c74096d4882990435389.png) --- # Cookie reStore tag Source: https://stape.io/solutions/cookie-restore-tag Set up Cookie reStore tag to make the process of cross-domain tracking simple and quick! Stape created Cookie reStore tag for server Google Tag Manager to pass cookies from domainA.com to domainB.com. When you need to store user identifiers and their cookies in Firebase and restore them - our tag might be the best solution. There are no restrictions on the type of user identifier and it's number. It could either be an email address or some other kind of unique identifies, like user ID in the CRM, cookie, etc. Try for free (https://stape.io/sign-up) Cookie reStore tag benefits: Can be used for cross-domain and cross-browser tracking. Setting correct UTM tags It helps to store and extract cookies of the same user Useful links 1. [Server-side cross-domain tracking using Cookie reStore tag](https://stape.io/blog/server-side-cross-domain-tracking-using-cookie-restore-tag) 2. [Third-party cookies are about to expire. Will server-side tracking help?](https://stape.io/blog/third-party-cookies-are-about-to-expire-will-server-side-tracking-help) 3. [Extend cookie lifetime using server-side Google Tag Manager](https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager) --- # Data variable Source: https://stape.io/solutions/data-variable Data variable helps to extract data that was stored by the data tag If you are using Data Tag to store user data between the site pages, this custom variable will help to extract data that was stored by the data tag. Try for free (https://stape.io/sign-up) Benefits of using Data variable: Store user or event data in a local storage Extracted stored data on any website page Use this variable to send user data to Facebook, Google Analytics, etc. Useful links 1. https://stape.io/blog/sending-data-from-google-tag-manager-web-container-to-the-server-container[Sending Data From the Google Tag Manager Web Container to the Server Container](https://stape.io/solutions/data-tag-client) 2. [How to set up Facebook Conversion API.](https://stape.io/blog/how-to-set-up-facebook-conversion-api) --- # API Source: https://stape.io/solutions/api Stape API: automate account, sGTM container, & partner management. Edit accounts, control power-ups/domains, get logs/stats, manage sub-users/payouts. Stape API allows automating account and container management: Account: editing (changing email, changing password, billing information, setting up 2fa), converting to an agency, receiving invoices, receiving notifications, deleting an account. sGTM container / CAPI Gateway container: create, edit, change plan, cancel/reactivate subscription, delete, transfer. sGTM container: enable/disable all power-ups, add/remove/revalidate domains, get logs, get statistics of request by day and by domain. Partners: adding a sub-user, receiving statistics on commissions and payments, creating/editing a payout schedule. You can access Stape API here: [https://api.app.stape.io/api/doc](https://api.app.stape.io/api/doc) Container API Key can be found in the Settings section of your account: ![image](https://cdn.stape.io/i/68d11bb3e35aa802414456.png) --- # Lookup Table variable Source: https://stape.io/solutions/lookup-table-variable Use the Advanced Lookup Table variable in server GTM to return values based on conditions. Ideal for multidomain setups and custom parameters. Using the [Advanced Lookup Table variable](https://github.com/stape-io/advanced-lookup-table-variable) for server Google Tag Manager, you can return values depending on the specified conditions. The main advantage is that you can set conditions using different parameters like equals, start with, contain, RegEx, etc. You can use either constant or variable. Advanced lookup table variable (internally, we also call it If/Else variable) can be helpful, for example, when setting up server-side tracking for multidomain, when you need to fire pixel or transport URL depending on the hostname. Or maybe you want to send custom parameters for your FB events depending on the product name. Another widespread use case is creating ecomm_pagetype type for Google ads remarking tags. You can set page type depending on page URL, event type, etc. ![Advanced lookup table variable](https://cdn.stape.io/i/6335cee10604a100351113.png) Try for free (https://stape.io/sign-up) --- # Google Ads (Adwords) server-side tracking Source: https://stape.io/solutions/adwords-server-side-tracking Move your Google Ads conversion tracking tags from the webpage to the server. Server-side Google Tag Manager can help you move your Google Ads conversion tracking tags from the webpage to the server. It can also reduce code on a page, improve load times, and enhance the accuracy of conversion tracking, which may lead to advanced campaign performance. https://youtu.be/s-R6mvpiLk4?si=XSlMjo0R7AVLMVL_ Try for free (https://stape.io/sign-up) Benefits of Google Ads (Adwords) server-side tracking: Increased accuracy of conversion tracking Improved PageSpeed Useful links 1. [Server-side conversion tracking in Google Ads (Adwords)](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) 2. [How to Set Up GA4 Tracking Using Google Tag Manager Server-Side Container](https://stape.io/blog/set-up-ga4-server-side-tracking) --- # Google Sheets tag Source: https://stape.io/solutions/google-sheet-tag How to use Stape's Google Sheets tag for server Google Tag Manager to write data from the server to Google Sheets. Stape created a Google Sheet tag for the server Google Tag Manager container that helps write data from sGTM to Google Sheet. With the help of this tag, you can add raw or update cell inside Google Spreadsheet. To set up a Google sheet tag, you need to have a Firestore account and set up Google Authorization. Try for free (https://stape.io/sign-up) Benefits of Stape's Google Sheet tag: Write any data from server GTM to Google Sheet. Use stape's Google Auth Tool to set Google sheet authentification. Useful links 1. [Write data from server Google Tag Manager to Google Sheets](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets) 2. [How to connect Google Service Account to stape](https://stape.io/blog/how-to-connect-google-service-account-to-stape) 3. [Google Sheet tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/spreadsheet-tag). --- # Outbrain s2s tag Source: https://stape.io/solutions/outbrain-s2s-tag Outbrain server-to-server tag for server Google Tag Manager container Outbrain s2s tag can simplify Outbrain server-to-server tracking setup and help overcome scenarios when Outbrain pixel fails. For example, when a user enables AdBlocker or modifies privacy settings in the browser. Outbrain sGTM tag sets 1st party cookies with a unique user identifier when pageview event triggers. Once a user converts tag sends a postback URL back to Outbrain with conversion events data. Try for free (https://stape.io/sign-up) How Outbrain s2s tag works: On Pageview event tag stores Outbrain Click ID parameter inside the outbrain_cid cookie. Conversion tag sends a request to the post back URL with specified conversion event data. Useful links: 1. [Outbrain s2s tag template](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/outbrain-tag) 2. [How to set up Outbrain server-to-server tracking using sGTM](https://stape.io/blog/outbrain-server-to-server-tracking-using-sgtm) --- # Facebook Conversion API for Unbounce Source: https://stape.io/solutions/facebook-conversion-api-for-unbounce The Facebook Conversion API for Unbounce is a new way to add advanced conversion tracking features to your landing pages. The Facebook Conversion API for Unbounce is a tool that allows marketers to have more control over the conversion tracking process. It can be used in conjunction with the browser tracking or on its own. Try for free (https://stape.io/sign-up) Benefits of Facebook Conversion API for Unbounce: Pre-built templates for the GTM web and server container Sending user data for the server events Facebook event deduplication setup Useful links 1. [Facebook Conversion API for Unbounce](https://stape.io/blog/facebook-conversion-api-for-unbounce) 2. [How to set up Google Tag Manager Server Container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) --- # Global CDN Source: https://stape.io/solutions/global-cdn Global CDN by Stape loads key tracking scripts from servers closer to visitors, helping web pages load faster. Global CDN loads gtm.js and gtag.js from servers closer to visitors, which makes your website load faster and supports its ranking in Google Search. Get started now (https://stape.io/sign-up) How to access Global CDN Global CDN is free to use and is one of the options you can choose when setting up a custom subdomain. Remember to check your country's privacy regulations before enabling CDN. ![Stape Global CDN](https://cdn.stape.io/i/69e5e8470927b532411163.png) How Global CDN works Global CDN uses Cloudflare, a service that stores and delivers files, to load [gtm.js](http://gtm.js/) and gtag.js from a server closer to the visitor. This helps these files load faster for people in different regions. Benefits of Global CDN Faster delivery of tracking files. Global CDN serves tracking scripts from a location closer to the visitor, which reduces delay and helps gtm.js and gtag.js load faster. It is useful when your visitors come from different regions. Makes pages load faster and supports SEO. When tracking files load faster, the browser spends less time waiting for them, which improves page speed and makes Google rank the page higher in search. No separate CDN setup to manage. Global CDN is built into Stape account. You turn it on in the container or gateway settings when adding a custom domain, and Stape handles the CDN side for you. This keeps setup and maintenance lighter than adding a separate tool just for these script files. Speed up script delivery inside your Stape setup If you want gtm.js and gtag.js scripts to load from a location close to each visitor, Global CDN gives you that in your server container dashboard. You keep all your setup in one place and do not need a separate CDN service. Get started now (https://stape.io/sign-up) Useful links [How to set up Global CDN](https://stape.io/helpdesk/documentation/stape-global-cdn) [How to add a custom domain to the Google Tag Manager server container](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) --- # GEO Headers Source: https://stape.io/solutions/geo-headers Enrich server GTM data with location info. Use the GEO Headers power-up to include country, region, city, IP address, and postal code in your event data. With the new power-up GEO Headers you can add X-GEO-Country, X-GEO-Country-Name, X-GEO-Region, X-GEO-City, X-GEO-Ipaddress, X-GEO-PostalCode in event data inside your server Google Tag Manager. This product includes GeoLite2 data created by MaxMind, available from [https://www.maxmind.com](https://www.maxmind.com) GEO Headers power-up is available on any plan. In order to enable it, all you need to do is log in to your [stape.io account](https://stape.io/sign-up), open container, choose power-ups and click "Use" button. ![GEO Headers power-up from Stape](https://cdn.stape.io/i/69f0737494ab9696518282.png) ![Enable GEO Headers](https://cdn.stape.io/i/69f073e528009789749621.png) Try for free (https://stape.io/sign-up) Use cases of the power-up [How to easily add user agent and geo data to server Google Tag Manager](https://stape.io/blog/how-to-easily-add-user-agent-and-geo-data-to-server-gtm) [The smart way to anonymize user data and use consent mode in Google Analytics 4 using GEO headers](https://stape.io/blog/smart-way-to-anonymize-user-data-and-use-consent-mode-in-google-analytics-4) [Region-specific tags behavior in Google Tag Manager](https://stape.io/blog/region-specific-tags-behaviour-in-google-tag-manager) --- # WordPress app Source: https://stape.io/solutions/server-side-tracking-for-wordpress Optimize server-side tracking on WordPress with Stape Conversion Tracking plugin. Easily add GTM tags, send e-commerce and user data, and improve tracking accuracy. Server-side tagging is a strong tracking solution that you can now deploy on your WordPress website thanks to the [Stape Conversion Tracking plugin](https://wordpress.org/plugins/gtm-server-side/). This app allows to quickly and easily add Google Tag Manager tags to your WordPress site without any coding knowledge or technical expertise. With its wide range of features and benefits, our GTM server-side plugin is an invaluable resource for anyone looking to maximize their online presence through effective marketing strategies. ![Stape Conversion Tracking plugin](https://cdn.stape.io/i/68e65fb6f1caf288645824.png) Install for free (https://wordpress.org/plugins/gtm-server-side/) Features of server-side tracking for WordPress Here are some brief possibilities of our Conversion Tracking plugin: 1. Stape Conversion Tracking plugin can either insert GTM script on all website pages or work with other WP plugins that insert GTM script on the website. It also gives you an option to set up the GTM loader through a same-origin proxy. ![Stape Conversion Tracking plugin](https://cdn.stape.io/i/6a50cd0f78cba968816899.png) 2. Include decorated event names. ![Include decorated event names](https://cdn.stape.io/i/689df7cbdf570207611494.png) 3. Sends Purchase and Refund webhook to the server GTM container. ![Sends Purchase and Refund webhook to the server GTM container.](https://cdn.stape.io/i/689df7e11c153299177584.png) 4. Creates and fills the Customer List in Google Ads automatically. ![Creates and fills the Customer List in Google Ads automatically](https://cdn.stape.io/i/689df81ea1fe0789568095.png) Benefits of server-side tracking for WordPress Increases the lifetime of cookies when using a custom domain for the server Google Tag Manager container. When the custom loader is activated, the tracking accuracy improves. Simplifies the process of installing GTM script and providing e-commerce and user data. Useful links 1. https://stape.io/solutions/server-side-tracking-for-wordpress[Server-side tagging for WordPress](https://stape.io/blog/how-to-add-google-tag-manager-server-side-container-to-wordpress) 2. [Facebook conversion API for WordPress](https://stape.io/blog/facebook-conversion-api-for-wordpress) 3. [Set up automatic Google Customer Match Lists](https://stape.io/blog/customer-list-google-ads) --- # User Agent Info Source: https://stape.io/solutions/user-agent-info Add information about the browser and device to incoming requests of your server Google Tag Manager container. User Agent Info power-up gives you an ability to add header to your server hits, and you can then access that information on your server container and use it for your reporting. X-Device-Mobile, X-Device-Os, X-Device-Browser, X-Device-Browser-Version, X-Device-Engine, X-Device-Model, X-Device-Platform, X-Device-Engine-Version header is added in event data inside your server Google Tag Manager. Try for free (https://stape.io/sign-up) ![User Agent Info power-up from Stape](https://cdn.stape.io/i/654255e3ce60d591490553.png) ![User Agent Info power-up from Stape](https://cdn.stape.io/i/66c87bee424d3341402910.png) How to enrich user data in your server-side GTM [User Agent Info, User ID, Bot detection power-ups] https://www.youtube.com/watch?v=bRKSQqUUlvs&ab_channel=Stape Useful links [Server-side GTM with multiple domains](https://stape.io/blog/server-side-gtm-with-multiple-domains) [How Chrome’s 3rd party cookies blocking impacts the future of online marketing](https://stape.io/blog/how-chrome-3rd-party-cookie-blocking-impacts-the-future-of-online-marketing)https://stape.io/blog/server-side-gtm-with-multiple-domains Use cases of the power-up [How to easily add user agent and geo data to server Google Tag Manager](https://stape.io/blog/how-to-easily-add-user-agent-and-geo-data-to-server-gtm) --- # BigCommerce app Source: https://stape.io/solutions/stape-server-gtm-app-for-bigcommerce Easily add GTM snippet to all pages of your Bigcommerce website, use Stape’s Cookie Keeper power-up, add eCommerce events to dataLayer or use webhooks. BigCommerce is an all-in-one platform for businesses to set up online shops. Its features, such as store design and product management, make it popular among entrepreneurs. Setting up tracking of the BigCommerce can be a daunting task, but with [Stape’s Conversion Tracking app](https://www.bigcommerce.com/apps/stape-server-gtm/), it's a breeze. The app will work for both client-side and server-side users, making the process significantly easier and more manageable. ![ Stape Conversion Tracking app for BigCommerce](https://cdn.stape.io/i/68f225e886fb1937316677.png) For client-side tracking, this app makes it easy to embed a web GTM snippet on every page of your site. You won’t even need the help of a developer to do it. By using server-side tracking, you'll unlock a range of benefits that can significantly enhance your online business: Precise conversion tracking. Bypass ad blockers and attribute conversions to the correct source with the help of [Custom GTM and GA4 Loader](https://stape.io/solutions/custom-gtm-loader). Ecommerce events and user data tracking. Easily create an ecommerce data layer to set up and fully control what events and user data you need to collect. Using webhooks. Make sure you don’t miss any purchases or refunds with the help of webhooks. Extension of the cookie's lifetime. Avoid the harmful impact of browser restrictions (Safari decreases cookies lifetime to 7 days) with the help of [Cookie Keeper](https://stape.io/solutions/cookie-keeper) (a feature available for Stape’s users). The app setup takes a few simple steps. Try it yourself and reap the benefits of enhanced data tracking. Install for free (https://www.bigcommerce.com/apps/stape-server-gtm/) Useful Links 1. [How to set up Stape Conversion Tracking app for BigCommerce](https://stape.io/blog/server-side-gtm-app-for-bigcommerce#how-to-set-up-big-commerce-app-for-server-gtm) 2. [Set up server-side Google Analytics 4 for BigCommerce](https://stape.io/blog/server-side-google-analytics-4-for-bigcommerce) 3. [Facebook Conversion API for Bigcommerce](https://stape.io/blog/facebook-conversion-api-for-bigcommerce) --- # Facebook Conversion API for BigCommerce Source: https://stape.io/solutions/facebook-conversion-api-for-bigcommerce Run BigCommerce tracking on the server side to improve tracking accuracy. How do I set up the Facebook Conversion API for BigCommerce? That is a question that many marketers have been asking themselves lately. If you're one of them, here is a solution that will help you set up the Facebook conversion API for BigCommerce in a simple way. Try for free (https://stape.io/sign-up) Benefits of Facebook Conversion API for BigCommerce: Custom scripts that extract user data from BigCommerce Pre-built web and server Google Tag Manager templates that you can effortlessly import to your account Tracking all checkout events and pageview event Useful links 1. [Facebook Conversion API for Bigcommerce](https://stape.io/blog/facebook-conversion-api-for-bigcommerce) 2. [How to set up Google Tag Manager Server Container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) --- # Facebook Conversions API for Shopify Source: https://stape.io/solutions/facebook-conversion-api-for-shopify Facebook Conversions API for Shopify is essential for businesses looking to increase sales with social media marketing and PPC campaigns. Facebook API allows Shopify stores to use Facebook's conversion tracking. This solution helps marketers track which marketing efforts lead to the most conversions on their websites and optimize those campaigns accordingly. Facebook Conversions API for Shopify is essential for businesses looking to increase sales with social media marketing and PPC campaigns. ![image](https://cdn.stape.io/i/67bf28ce7e27d835699529.png) Benefits of Facebook Conversions API for Shopify Precise attribution The Facebook Conversions API allows for precise attribution by using server-side tracking to capture and convey data that might be missed due to ad blockers or other client-side factors. Thanks to accurate measuring and attributing conversion events, businesses can invest in the most effective ads and channels while optimizing their campaigns for better results. Faster load times Tracking conversions using traditional client-side methods, such as JavaScript or cookies, can contribute to slower site performance, impacting the user experience and potentially leading to lost sales. With server-side tagging, the Facebook Conversions API will reduce the load on your website, leading to faster load times and a more customer-friendly experience. High data security Facebook Conversions API for Shopify also improves security by reducing the potential for third-party data breaches or manipulation. Server-side tracking restricts data access to a limited set of authenticated servers, making it more difficult for malicious actors to gain access or manipulate data for their benefit. Facebook event deduplication To set up Facebook Conversions API, you should also configure Pixel. When Facebook CAPI and Pixel are used together for tracking (as Meta recommends), the same event may be received from both sources. Configuring Stape’s Facebook Conversions API tag allows identifying these events as duplicates, ensuring that only one is retained while the others are discarded. Ways of implementing Facebook CAPI for Shopify There are three ways to set up Facebook CAPI for Shopify: Server GTM container Native Shopify integration Zapier In the table below, we compare each method. ![image](https://cdn.stape.io/i/67bf2965e6b93898557193.png) In conclusion, using a server GTM container provides higher flexibility and control over the data you collect, allowing easier compliance with data regulations. It helps achieve better match quality scores and accurate event tracking. However, the configuration process is more complex compared to other methods. Try for free (https://stape.io/sign-up) Useful links [Facebook Conversion API in GTM template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag) [How to set up Facebook conversion API for Shopify](https://stape.io/blog/facebook-conversion-api-for-shopify) [Stape’s Shopify App](https://apps.shopify.com/server-gtm) [How to set up GTM Server Side on Shopify](https://stape.io/blog/how-to-setup-gtm-server-side-on-shopify) https://apps.shopify.com/server-gtmhttps://stape.io/blog/facebook-conversion-api-for-shopifyhttps://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag --- # TikTok Events API tag Source: https://stape.io/solutions/tiktok-events-api Set up TikTok server-side tracking using Stape TikTok Evens API tag for the server Google Tag Manager container. The TikTok Events API tag for the server Google Tag Manager container allows sending standard events, event parameters, user data (email, phone number, user ID, user IP, and user agent), properties, and objects. The tag automatically transforms required data to lowercase and hash using SHA256. Also, it supports Request/Response logging to BigQuery — get full visibility, easier debugging, and richer data for analytics. It is required to have a TikTok developers account and API Access token to set up TikTok Events API. From our experience, it takes around two days to get approved for the TikTok developers account and create Access Token. How to set up TikTok Events API https://youtu.be/PNUpy8wsdeI?si=mPEDqjGSXqHKF1Xy Try for free (https://stape.io/sign-up) Supported events Add Payment Info Add to Cart Add to Wishlist Application Approval Complete Registration Contact CustomizeProduct Download FindLocation Initiate Checkout Lead Purchase Schedule Search Start Trial Submit Application Subscribe View Content Useful links 1. [Swift setup for TikTok Events API](https://stape.io/tiktok-events-api-gateway). 2. [TikTok events API documentation](https://ads.tiktok.com/marketing_api/docs?rid=959icq5stjr&id=1701890979375106). 3. [How to set up TikTok events API using sGTM](https://stape.io/blog/how-to-set-up-tiktok-events-api). 4. [TikTok events API tag in template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/tiktok-tag). --- # Awin tag Source: https://stape.io/solutions/awin-tag Stape created a tag for the server Google Tag Manager container that helps to set up Awin s2s integration. Stape created Awin s2s tag for the Google Tag Manager server container. This tag helps to set up Awin server-to-server conversion tracking. It allows storing the awc URL parameter inside the awin_awc cookie and firing the purchase event with all needed parameters. Try for free (https://stape.io/sign-up) Benefits of Stape's Awin tag: Stores the awc URL parameter inside the awin_ awc cookie. Conversion tag sends the HTTP request with the specified conversion data. Useful links 1. [Awin tag template.](https://github.com/stape-io/awin-tag) 2. [Awin server-side tracking](https://stape.io/blog/awin-server-to-server-tracking-using-server-google-tag-manager). 3. [How to use channel flow for Awin s2s tag](https://stape.io/blog/track-users-first-last-source-medium-using-server-google-tag-manager). --- # Logs Source: https://stape.io/solutions/logs Make testing and setting up server-side tagging easier by using logs of Stape server GTM tags. The Logs feature in the Stape account helps you monitor all incoming and outgoing requests within your server-side container. With its help, you can quickly identify potential errors and start fixing them before they affect your performance. ❗Note: the feature is available for the Pro or higher plans only. Get started now (https://stape.io/sign-up) To get started, [log in to your Stape account](https://stape.io/login), open your container, and navigate to the Logs tab: ![Logs feature in admin](https://cdn.stape.io/i/6a045e1755a8b153764561.png) The incoming requests are logged by default. To display outgoing requests, you will need to activate the feature. Outgoing requests may contain sensitive data, so we need your consent to log them. ![Activate outgoing requests](https://cdn.stape.io/i/6a01cbd6bbc1c682924315.png) How the Logs feature works After enabling the feature, Logs capture and display every HTTP request processed by your server GTM. The feature provides data on the following requests: Incoming (the ones that your server GTM container receives) Outgoing (the ones that are sent to third-party platforms from your server GTM container) For easier debugging, if you click on the request, the feature shows its details: ![Example of request](https://cdn.stape.io/i/69a165475185e431450788.png) You can also enable the ability to Export logs (available for Enterprise plans or higher). This will automatically export your incoming and outgoing (if configured) logs to a cloud storage of your choosing. To activate log export, toggle the switch and enter the required information to connect Stape Logs to your cloud storage. Benefits of the Logs feature Identify and fix tracking issues before they affect performance. Use detailed request and response logs to monitor events sent through your server container so you can quickly detect errors. This reduces incorrect reporting that can impact campaign optimization. Make a server-side tracking setup troubleshooting easier. Use logs to inspect payloads, headers, and platform responses at every step of configuration. This reduces guesswork, shortens testing cycles, and helps your team launch tracking faster with fewer errors. Detect vendor or network issues early. Use response codes and error messages in logs to identify delays, rejections, or processing issues from connected platforms. This allows you to quickly address misconfigurations or optimize requests when needed. Check your data flow in action now! Get started now (https://stape.io/sign-up) Useful links [Troubleshooting server-side tagging using server GTM logs](https://stape.io/blog/troubleshooting-server-side-tagging-using-server-gtm-logs) [Guide to debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) [Data discrepancies explained: causes, how to identify with Stape Logs](https://stape.io/blog/data-discrepancies-troubleshooting) [Meta attribution inaccuracy troubleshooting and fixing](https://stape.io/blog/meta-attribution-troubleshooting)https://stape.io/blog/data-discrepancies-troubleshooting --- # Impact tag Source: https://stape.io/solutions/impact-tag Set up an Impact tag to get your affiliate tracking to work correctly. The greatest time to start implementing server-side integration to improve conversion tracking is right now if you consider affiliate marketing to be one of your company's traffic and conversion sources. Stape created an Impact tag for the server Google Tag Manager to track pageviews and conversions from affiliate partners. You configure the Impact tag that sets first-party cookies. These cookies can not be blocked because they have first-party status. It results in more accurate data. But it's not the only benefit of configuration. Try it yourself and take advantage of the server-side Impact tag. Try for free (https://stape.io/sign-up) Useful Links 1. [How to set up Impact server to server conversion tracking](https://stape.io/blog/how-to-set-up-impact-server-to-server-conversion-tracking). 2. [Third-party cookies are about to expire. Will server-side tracking help?](https://stape.io/blog/third-party-cookies-are-about-to-expire-will-server-side-tracking-help) --- # Spreadsheet Reader variable Source: https://stape.io/solutions/spreadsheet-reader-variable How to read data from Google Sheet and use it inside server Google Tag Manager. Stape created a Spreadsheet Reader variable with which you can read values from cells or ranges in your sheet and use it as an input into Server GTM. The ability to read data from Google sheet to server Google Tag Manager gives an excellent opportunity to enrich sGTM data. Try for free (https://stape.io/sign-up) Benefits of Stape's Spreadsheet Reader variable: Reads and returns data from one Google Sheet cell. Reads any field range within Google Sheet. Variable returns arrays of values. You can add a range that includes two columns. Variable returns an object that consists of these two columns. The first column is used as a name, and the second - correspondent value. Useful links 1. [Write data from server Google Tag Manager to Google Sheets](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets) 2. [Read data from Google Sheet to server Google Tag Manager](https://stape.io/blog/read-data-from-google-sheet-to-server-google-tag-manager) --- # Cookie Extender tag Source: https://stape.io/solutions/cookie-extender Learn how to use the cookie extender tag for sGTM to extend specific cookies. This will help improve web analytics and advertising. Cookie Extender tag for server Google Tag Manager is designed to extend cookies using sGTM. To set up a tag you need to add: Cookie Name - names of cookies that need to be extended. Lifetime in seconds - time in seconds to which cookies need to be extended. Create backup cookies and restore them in case main cookies are not found - enable this if you need to create backup cookies. If you enabled a checkbook that creates backup cookies, in this case, when the cookie expires Cookie Extender tag will look at backup cookies and restore the same cookie value for the same user. cookie extender https://youtu.be/9lG8WINeOCk?si=J1mZPuHPpdPwqgDB Try for free (https://stape.io/sign-up) Cookie Extender tag use cases: Manually extend cookies for platforms that do not extend cookies automatically. Web tag can override server tag. Platforms sets server cookies with different names and standards. No need to set up event deduplication or send user data. Useful links 1. [Cookie Extender tag template](https://github.com/stape-io/cookie-extender-tag). 2. [How to set up the Cookie Extender tag](https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager#extend-cookie-lifetime-using-cookie-extender-tag-in-s-gtm). --- # Stape Conversion Tracking app for Shopify Source: https://stape.io/solutions/shopify-app Easily add GTM to Shopify & improve tracking! The Stape Conversion Tracking app offers Cookie Keeper, dataLayer events, webhooks, and custom domain support. https://apps.shopify.com/server-gtm?search_id=8437a83b-dd0a-42bd-b4c4-f03af608e620&surface_detail=stape&surface_inter_position=1&surface_intra_position=2&surface_type=search[The Stape Conversion Tracking app](https://apps.shopify.com/server-gtm?search_id=8437a83b-dd0a-42bd-b4c4-f03af608e620&surface_detail=stape&surface_inter_position=1&surface_intra_position=2&surface_type=search) allows you to easily add GTM snippet to all pages of your Shopify shop, use Cookie Keeper power-up, add dataLayer for your eCommerce events and use webhooks for purchase or refund events. ![Stape Conversion Tracking app in Shopify ](https://cdn.stape.io/i/68f633278155b328543344.png) Install for free (https://apps.shopify.com/server-gtm?search_id=8437a83b-dd0a-42bd-b4c4-f03af608e620&surface_detail=stape&surface_inter_position=1&surface_intra_position=2&surface_type=search) Features of Stape Conversion Tracking app Insert GTM snippet on all website pages In the Generate tab are all the settings related to installing the GTM snippet on all pages of your Shopify shop. !["Inject GTM" tab](https://cdn.stape.io/i/6a28162588ab4351227864.png) Transfer eСommerce and user information to the data layer In the Data Layer tab, you can view the events available for activation and configuration. The second box gives you control over whether event names get the _stape suffix to prevent any clashes in GTM. If it’s off, events keep their normal names. ![Data Layer tab](https://cdn.stape.io/i/692da86571f4b344899234.png) Send webhooks to the server GTM container Configure sending purchase and/or refund webhooks. ![Webhooks tab](https://cdn.stape.io/i/689df97aa638c759041380.png) Automatically create and fill the Customer List in Google Ads Configuring the Customer Match tab will create a new Customer List in Google Ads. ![Customer Match tab](https://cdn.stape.io/i/689df9a7c1ad7425653818.png) Benefits of Stape Conversion Tracking: Increases cookie’s lifetime. Makes tracking script invisible to ad blockers. Enriches data layer with eCommerce events and user data. Sends webhooks to server Google Tag Manager container. Adds web Google Tag Manager script to your site in no time. Useful links 1. [Server-side tagging for Shopify](https://stape.io/blog/server-side-tagging-for-shopify) 2. [Facebook Conversions API for Shopify](https://stape.io/blog/facebook-conversion-api-and-shopify) 3. [Server-side Google Analytics 4 for Shopify](https://stape.io/blog/server-side-google-analytics-for-shopify) 4. [How to achieve 100% accurate tracking on Shopify with sGTM and Stape Store](https://stape.io/blog/accurate-shopify-tracking-stape-sgtm) 5. [Set up automatic Google Customer Match Lists](https://stape.io/blog/customer-list-google-ads) --- # LinkedIn Conversions API tag Source: https://stape.io/solutions/linkedin-conversion-api-tag LinkedIn Conversions API tag from Stape allows sending the event data from GA4/Data client to LinkedIn Conversion API. The LinkedIn Conversion API tag, developed by Stape for server-side Google Tag Manager (sGTM), provides a seamless way to enhance your LinkedIn advertising campaigns. This tag enables you to send conversion data directly from your server to LinkedIn, improving data accuracy, privacy compliance, and campaign optimization. Whether you want to track leads, purchases, or other key metrics, the LinkedIn Conversion API tag ensures reliable data transmission, reducing discrepancies caused by browser limitations or ad blockers. It also facilitates sending event data from GA4 or a data client to the LinkedIn Conversion API. Perfect for marketers looking to maximize the effectiveness of their LinkedIn ads. linkedin https://youtu.be/u3HhXsQ24Ec?si=4AAQwHMltqgFs4NC Try for free (https://stape.io/sign-up) Useful links [LinkedIn CAPI tag on GitHub](https://github.com/stape-io/linkedin-tag) [​​LinkedIn CAPI tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/linkedin-tag) [Video: How to set up LinkedIn Conversions API [Step-by-step guide]](https://www.youtube.com/watch?v=u3HhXsQ24Ec) Use cases of the power-up [LinkedIn Conversion API tag for server GTM detailed article](https://stape.io/blog/linkedin-conversion-api-tag-for-server-google-tag-manager) --- # Klaviyo tag Source: https://stape.io/solutions/server-side-klaviyo-tag The Klaviyo server-side tracking tag in GTM makes it easy to sync user data, send events, and add contacts without coding - all while improving automation and performance. Setting up the Klaviyo server-side tag allows you to integrate your site with Klaviyo easily. With Klaviyo server-side tagging, you will be able to update user data, send events, and most importantly add new contacts to Klaviyo (previously, it could only be performed by the backend developers). You don't need to worry about the coding experience - Klaviyo integration can be easily set up in the Google Tag Manager server container, helping businesses [improve email performance and boost revenue](https://stape.io/blog/case-study-scandinavian-biolabs-amplifies-klaviyo-revenues-with-server-side-tracking). How to set up Klaviyo for your sGTM container https://youtu.be/t5fqMfJs3K8?si=CmJGCPX4ErJx43Wa Try for free (https://stape.io/sign-up) Benefits of server-side Klaviyo tag: Klaviyo integration without the assistance of developers — all inside the GTM server container. Time and money saved. Automated emails based on user data. No heavy Klaviyo JavaScripts - better PageSpeed. Useful links 1. [Set up Klaviyo website event tracking using server Google Tag Manager](https://stape.io/blog/set-up-klaviyo-website-event-tracking-using-server-google-tag-manager) 2. [Create a user profile and track website activity in Klaviyo using server Google Tag Manager](https://stape.io/blog/create-a-user-profile-and-track-website-activity-in-klaviyo-using-server-google-tag-manager) --- # Twilio SMS tag Source: https://stape.io/solutions/twilio-sms-tag Stape created a tag for the server Google Tag Manager container that helps to send Twilio SMS using server GTM. We created a Twilio tag for the server Google Tag Manager that helps to send SMS using sGTM. You should have an active Twilio account with SMS functionality to set up this tag. Try for free (https://stape.io/sign-up) Benefits of Stape's Twilio SMS tag: Sends Twilio SMS using server Google Tag Manager. Useful links 1. [Twilio SMS tag template.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/twilio-tag) 2. [How to use Twilio SMS tag.](https://stape.io/blog/how-to-send-twilio-sms-using-server-google-tag-manager) --- # Shopware extension Source: https://stape.io/solutions/stape-conversion-tracking-shopware-extension Find out the benefits of the Stape Conversion Tracking Shopware extension and how it can improve your data tracking. The Stape Conversion Tracking extension for Shopware is a solution that simplifies the connection of your Shopware store with Google Tag Manager and Stape’s server-side infrastructure. It helps you collect and send accurate conversion data, improving ROAS from paid ads. Try for free (https://store.shopware.com/en/stape94182518191/stape-conversion-tracking.html) How to access the Stape Conversion Tracking extension for Shopware You can find it on the Shopware Store by searching for “Stape Conversion Tracking” or by following the [link to Shopware directly](https://store.shopware.com/en/stape94182518191/stape-conversion-tracking.html). The extension is created to reduce manual setup complexity and improve tracking reliability across your marketing stack. ![Shopware Store](https://cdn.stape.io/i/69e8a37711cbb046925192.png) How it works The extension installs a tracking layer on your Shopware store that automatically detects key ecommerce events (like product views, add-to-cart actions, checkout steps, and purchases). These events are formatted into a standardized structure and sent to Google Tag Manager and to Stape’s server-side GTM setup (if you configure server-side tracking). In this way, data is processed server-side, and you get better accuracy and consistent tracking. Benefits of the Stape Conversion Tracking extension for Shopware Simplify both client-side and server-side tracking without complex manual setup or development. The extension automatically pushes standardized ecommerce events to GTM and provides a ready-to-use connection to Stape’s server-side GTM hosting, so you don’t need to configure data layers, tracking scripts, or maintain your own server tracking infrastructure. Extend cookie lifetime and improve attribution accuracy. The extension enables server-side tracking that allows cookies to last longer compared to browser-based limitations. This helps you maintain user journeys over a longer period and results in more accurate attribution across your channels. Recover more conversions and increase ROAS from your paid advertising. The extension sends key ecommerce events such as purchases and checkouts through server-side tracking infrastructure. In this way, it helps you capture more conversions that would otherwise be missed. This leads to better optimization of ad campaigns and stronger return on ad spend. Make your data more complete by sending webhooks. The extension supports webhook-based data collection, so you can enrich your tracking with backend and offline data sources. In this way, you get a more comprehensive dataset for analysis. Ready to improve your tracking? Install the Stape Conversion Tracking Extension from the Shopware Store and recover more conversions from your paid ads to boost ROAS with more accurate and complete ecommerce data! Try for free (https://store.shopware.com/en/stape94182518191/stape-conversion-tracking.html) Useful links [How to track Shopware conversions with Stape's extension](https://stape.io/blog/shopware-conversion-tracking) --- # Stape Store Source: https://stape.io/solutions/stape-store Try out the Stape Store database to write, read, and enrich data of your server Google Tag Manager container. Store is a Stape’s built-in database that allows you to write, read, sync, and manage data within the server Google Tag Manager hosted on Stape. The store is available for Pro plan users and higher. The functionality and design of the Stape Store are highly similar to Firebase. You can store JSONs of data organized in documents. 1mb - the maximum size of one document. Three templates help to operate with data in the Stape Store: Write data. [Stape Store Writer tag](https://github.com/stape-io/stape-store-writer-tag). Read data. [Stape Lookup Variable](https://github.com/stape-io/stape-store-lookup-variable). Enrich sGTM requests using data in the store. [Stape reStore variable](https://github.com/stape-io/stape-store-restore-variable). Stape Store API: Would you like to set up your interactions with Stape Store (write to it, read from it, etc.) directly via API instead of utilizing Stape’s interface and/or tags? We prepared comprehensive documentation to help your developers integrate the Stape Store API in your environment. To access it, click [Stape Store API](https://api.store.stape.io/store-api/v2/doc) in the Stape Store menu, and you will be redirected to the database. ![Stape Store API link](https://cdn.stape.io/i/68edfffd7dd77233823770.png) Stape Store API link Benefits of Stape Store Simple setup - there’s no need for complicated integrations or third-party credentials. Stape Store is ready to use immediately within your account, right away. Centralized data management - manage all essential data (e.g., API keys, user details, product information) directly in one place. Fewer errors, faster and more consistent data access, and no need to switch between multiple tools. Advanced functionality - Stape Store offers features designed for flexibility and control. You can combine multiple files into collections, apply filters to search through your data, define a TTL (time-to-live) for records that you wish to make temporary, and more. Built-in and cost-efficient — Stape Store is included in all plans, so you don’t need to pay for separate hosting or third-party database services. You only pay for requests, just like with other Stape features. Use cases of Stape Store Save user data. Stape Store keeps details like email, user ID, or phone number to use across sessions and improve event tracking. Cache data. You can temporarily keep info from third-party APIs (like product details or currency rates) to streamline your setup. Keep setup settings. You can store campaign parameters, tracking rules, or other configuration data in one easy-to-manage place. Handle temporary info. You can use Time-to-Live (TTL) to automatically delete short-term data like consent choices, promo codes, or session info. Share data between tags. You can write data with one tag and read it with another to keep everything consistent inside your sGTM container. Connect with other systems. You can use the Stape Store API to send or pull data from your CRM, backend, or analytics platforms. Organize and manage data. You can group related documents into collections, and edit or delete them in bulk for easier data management. Useful links 1. [How to configure and use Stape Store](https://stape.io/helpdesk/documentation/stape-store-feature). 2. [Building a custom CDP and enriching event data using server-side GTM](https://stape.io/blog/building-a-custom-cdp-and-enriching-event-data-using-server-side-gtm). 3. [Stape Store use cases: how it supports your tracking needs](https://stape.io/blog/stape-store-use-cases). 4. [Profit tracking with sGTM and Stape Store: a complete guide.](https://stape.io/blog/profit-tracking-sgtm-stape-store) 5. [New customer tracking with sGTM and Stape Store: a complete guide.](https://stape.io/blog/customer-tracking-stape-store) Check it out (https://stape.io/sign-up) --- # Mailchimp tag Source: https://stape.io/solutions/server-side-mailchimp-tag Server-side Mailchimp tag allows GTM containers to send events to your mailing list and create or update contacts We created a Mailchimp tag for the Google Tag Manager server container to simplify Mailchimp integration. This tag allows GTM containers to send events to your mailing list, create or update contacts. The main benefit of this tag is that it's simpler than previous iterations because all the work is done through the Google Tag Manager server container. No coding needed. Try for free (https://stape.io/sign-up) Benefits of server-side Mailchimp tag: Effortless Mailchimp integration — all inside the GTM server container No need to rely on developers Automated emails based on user data Useful links 1. [Connect your website to Mailchimp using Google Tag Manager server container](https://stape.io/blog/connect-your-website-to-mailchimp-using-google-tag-manager-server-container) 2. [How to set up Google Tag Manager Server Container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) --- # Refersion tag Source: https://stape.io/solutions/refersion-tag Want to improve your affiliate tracking? Learn how to set up Refersion tag using Google Tag Manager to get the most accurate conversion tracking. We developed the tag for the server Google Tag Manager to make the Refersion s2s integration process simpler. Refersion is dedicated to giving advertisers and affiliates the greatest possible conversion tracking experience. Refersion is constantly concerned with using the finest and most dependable conversion monitoring systems, since this is essential for success in affiliate marketing. Due to ITPs, adBlockers, and the limited usage of third-party cookies, conversion tracking becomes difficult. With the help of our tag you can easily implement Refersion tracking in server Google Tag Manager. By doing that you will receive lots of advantages, such as increased pagespeed, better protection and control of the data, a better understanding of results from affiliate marketing, etc. Try for free (https://stape.io/sign-up) Useful Links 1. [How to set up Refersion tag using Google Tag Manager](https://stape.io/blog/how-to-set-up-refersion-tag-using-google-tag-manager) 2. [Extend cookie lifetime using server-side Google Tag Manager](https://stape.io/blog/extend-cookie-lifetime-using-server-side-google-tag-manager) --- # Magento 2 extension Source: https://stape.io/solutions/gtm-server-side-extension-for-magento-2 Stape Conversion Tracking extension for Magento 2 simplifies server-side tracking, enhances data accuracy, and improves marketing insights. Free and easy to integrate. [The Conversion Tracking extension for Magento 2](https://commercemarketplace.adobe.com/stape-gtm-server-side-magento-module.html) by Stape is a valuable tool for any business that has their store on Magento 2 and is interested in setting up server-side tracking on their website. This extension not only simplifies the server-side tagging process but also provides insights into how customers interact with your website, enhancing their experience and helping to optimize your marketing strategies. Our extension supports two most popular themes on the market - Luma and Hyva. ![Stape's Conversion Tracking extension for Magento 2](https://cdn.stape.io/i/68fb5e82d60b0871127138.png) Features of Stape Conversion Tracking extension for Magento 2 Free of charge. Integration of the Google Tag Manager script on every page of your website. Compatibility with other extensions that insert GTM script on your website. Load a GTM container from your subdomain. Inclusion of a Custom Loader to render Google Tag Manager and Google Analytics tracking invisible to ad blockers and various tracking prevention mechanisms. Extend cookie lifetime! Useful links 1. [Server-side Google Analytics 4 for Magento 2](https://stape.io/blog/server-side-google-analytics-4-for-magento) 2. [Facebook conversion API for Magento 2](https://stape.io/blog/facebook-conversion-api-for-magento) --- # Channel Flow tag Source: https://stape.io/solutions/channel-flow-tag Record the source/medium of the first, last, and all in between users' interactions with the site in cookies using server Google Tag Manager. Channel flow tag for the server Google Tag Manager container records users first, last, and all in between source/medium into the browser cookies. You can use the Channel Flow tag to determine affiliate conversion win or conversion rate. It can also be helpful to enrich data in Google Analytics, Facebook. etc. Try for free (https://stape.io/sign-up) Benefits of Channel Flow Tag: 1. Helps to track affiliate conversion win. 2. Affiliate commission rate. 3. Enrich Analytics and CRM data with user channel flow. Useful Links 1. [How to use channel flow tag](https://stape.io/blog/track-users-first-last-source-medium-using-server-google-tag-manager). 2. [Channel flow tag template](https://github.com/stape-io/channel-flow-tag). --- # Google Service Account Source: https://stape.io/solutions/google-service-account With the help of a Google Service Account connected to Stape, you can integrate server Google Tag Manager with BigQuery and Firestore. You can use Google Service Account to integrate server Google Tag Manager container with BigQuery and Firestore. With the help of these integrations, it's possible to enrich server data using Firestore, store data in BigQuery, read or write to Google Sheet, or set up Snapchat Conversion API. Integration with Google Service Account gives numerous opportunities for enriching server-side data using Google Sheet or Firestore. You can easily store any data available in server GTM to Google Sheet or Firestore, and extract it when need to add to sGTM tags. ![Create Google service account to connect BigQuery with sGTM](https://cdn.stape.io/i/66c8554296ef0317081777.png) ![Create Google service account to connect BigQuery with sGTM](https://cdn.stape.io/i/66c85565bfe6a569995319.png) Try for free (https://stape.io/sign-up) Benefits of Google Service Account integration Enrich server data with the help of Firestore or Google Sheet. Store data into BigQuery. Write data to Google Sheet. Use cases of the power-up [Read data from Google Sheet to server Google Tag Manager](https://stape.io/blog/read-data-from-google-sheet-to-server-google-tag-manager)https://stape.io/blog/write-data-to-bigquery-from-google-analytics-4 [Write data to BigQuery from Google Analytics 4](https://stape.io/blog/write-data-to-bigquery-from-google-analytics-4) [How to connect Google Service Account to Stape](https://stape.io/blog/how-to-connect-google-service-account-to-stape) [Write data to Firestore from server Google Tag Manager](https://stape.io/blog/write-data-to-firestore-from-server-google-tag-manager) [Write data from server Google Tag Manager to Google Sheets](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets)https://stape.io/blog/write-data-to-bigquery-from-google-analytics-4 --- # Reddit CAPI tag Source: https://stape.io/solutions/reddit-capi-tag Reddit has emerged as a prominent platform for driving valuable conversions. With the Reddit Conversion API Tag, you can effectively track... [Reddit Conversion API Tag](https://github.com/stape-io/reddit-tag) for a server Google Tag Manager will help you gain valuable insights into your Reddit marketing efforts and optimize your strategies accordingly. Now you can send conversion data from server Google Tag Manager to Reddit servers. With the Reddit CAPI tag you can also edit and send the fields Common Event Data Override, Server Event Data Override and User Data by simply specifying which parameters you want to exclude or override. Try for free (https://stape.io/sign-up) Useful links 1. [Reddit Conversions API Tag for server Google Tag Manager](https://stape.io/blog/reddit-conversion-api-tag-for-server-google-tag-manager). 2. [Reddit CAPI tag on GitHub](https://github.com/stape-io/reddit-tag). 3. [Reddit CAPI tag in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/reddit-tag) --- # Snapchat CAPI tag Source: https://stape.io/solutions/snapchat-capi-tag Snapchat Conversions API tag for server Google Tag Manager that uses sGTM and Firestore integration Snap Conversion API tag for server Google Tag Manager container allows sending custom and standard events to Snap servers. Tag automatically normalizes and hashes user parameters (plain text email, mobile identifier, IP address, and phone number). It supports event deduplication. Stape handles Access Token refresh using Firestore. Snapchat CAPI tag https://youtu.be/24x_A5fO5ug?si=XG7QqAznPMvDyazh Try for free (https://stape.io/sign-up) Benefits of Stape's Snapchat Conversion API tag: Works with any client (Google Analytics 4, Data Client, etc). Automatically normalizes and hashes user parameters. Supports event deduplication. For Stape customers, we will handle API Access Token refresh for you. Supports Request/Response logging to BigQuery — get full visibility, easier debugging, and richer data for analytics. Useful links 1. [How to set up Snapchat CAPI with server Google Tag Manager](https://stape.io/blog/snapchat-capi). 2. [Snapchat CAPI tag template](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/snapchat-tag). 3.[Snapchat CAPI Gateway](https://stape.io/snapchat-capi-gateway). 4. [Brevo tag](https://stape.io/blog/brevo-tag-for-server-google-tag-manager). --- # Rakuten s2s tag Source: https://stape.io/solutions/rakuten-server-to-server-tag-solution Keep track of your affiliate marketing performance with Rakuten's server-to-server tracking. Rakuten is an affiliate marketing leader and is among the first ones who started to support server-to-server tracking. When using a custom domain, s2s tagging relies on first-party cookies, which live longer than third-party cookies. Increasing cookie lifetime considerably affects affiliate marketing results and affiliate commission. When a customer clicks on an affiliate link, their click is tracked and stored as a first-party cookie in the user’s browser. When the customer completes a purchase, the order information is passed back to the Rakuten server, with the click ID from cookies and order parameters configured in sGTM. So if you're looking for a more accurate and reliable way to track your sales, you should consider using Rakuten's server-to-server tracking. Try for free (https://stape.io/sign-up) Useful Links 1. [Rakuten server-to-server tracking](https://stape.io/blog/rakuten-server-to-server-tracking) 2. [How to set up server-side affiliate tracking using server Google Tag Manager](https://stape.io/blog/how-to-set-up-server-side-affiliate-tracking-using-server-google-tag-manager) --- # Firestore Writer tag Source: https://stape.io/solutions/firestore-writer-tag Use the Firestore Writer tag and Firestore Lookup variable to enrich server-side data. With the newest release of server-side GTM API, it’s now possible to build integration of Firestore and sGTM. Stape used this API to create the Firestore Writer tag. The best thing you can do with this combination is to enrich server-side data. Also, you can quickly get data from Firestire using a new Firestore Lookup variable. It’s a native variable and available for everyone in sGTM. Try for free (https://stape.io/sign-up) Benefits of Firestore Writer tag: Write any data from server GTM to Firestore. Returns an array of Firestore documents that match specified query conditions. Connect Firebase account to stape. Useful links 1. [Write data to Firestore from server GTM](https://stape.io/blog/write-data-to-firestore-from-server-google-tag-manager) 2. [How to connect Google Service Account to stape](https://stape.io/blog/how-to-connect-google-service-account-to-stape) 3. [Firestore writer tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-writer-tag). --- # Mixpanel tag Source: https://stape.io/solutions/mixpanel-tag Stape created a tag for the server Google Tag Manager container that helps to set up Mixpanel integration. Mixpanel is a popular analytics platform that allows you to measure user engagement and track conversions on your website or mobile app. Stape created a Mixpanel tag for the Google Tag Manager server container. This tag helps to measure user engagement and track conversions on your website or mobile app. Mixpanel integration is a good solution if you want to increase page speed and set cookies more accurately. ![image](https://cdn.stape.io/i/67bf2c4270e3f663120083.png) Benefits of Stape's Mixpanel tag Avoid the harmful impact of ad blockers Ad blockers can detect scripts aimed at data collection and block their loading. Mixpanel tag works on the server GTM, and server-side tracking can help bypass the impact of ad blockers. Here is how it works: the tracking requests for data collection originate from your custom domain, making them harder for ad blockers to detect. Measure users correctly with first-party cookies Thanks to server-side tracking required for Mixpanel tag configuration, you can set first-party cookies, which allows data to be tracked more precisely and avoids browser restrictions that limit the lifespan of cookies. High customization With the Mixpatel tag, you can accurately track events across both your website and app. It communicates with the Mixpanel server API for efficient user and event tracking, allowing you to customize data collection to fit your needs. Increase page speed Third-party tracking scripts can negatively impact your site's speed, resulting in two key issues: a lower organic ranking and a worse user experience. With the help of server-side tracking, you can reduce the page load time as all the tags will be loaded on the server instead of the user’s browser. Try for free (https://stape.io/sign-up) Useful links [Mixpanel tag in GTM template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/mixpanel-tag) [How to set up Mixpanel tag for server Google Tag Manager](https://stape.io/blog/mixpanel-tag-for-server-google-tag-manager) --- # GA4 Advanced tag Source: https://stape.io/solutions/ga4-advanced-tag Google Analytics 4 Advanced Tag for Google Tag Manager server-side will help you to improve tracking accuracy and optimize your campaigns. Stape's [GA4 Advanced tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/ga4-advanced-tag) for server Google Tag Manager (GTM) is a powerful tool that allows you to track and override advanced metrics and parameters that are not available in the default GA4 tag. ![ga4 advanced tag for google tag manager server side](https://cdn.stape.io/i/643e5c5d5ad81832787775.png) The GA4 Advanced tag provides the ability to override all parameters, including _gcs and cid, which are not available in the default GA4 tag. Additionally, you can leverage Data Source settings to build requests to Google Analytics using eventData properties. Furthermore, the GA4 Advanced tag is compatible with Google Analytics 4 Measurement Protocol, which allows for the collection of custom event data that can be used for advanced analysis and optimization. This feature can help businesses get more granular data and insights from their tracking efforts. Try for free (https://stape.io/sign-up) Benefits of GA4 Advanced tag by Stape: Ability to override any user or event parameter. Works based on incoming GA4 requests or Event Data. Compatible with Google Analytics 4 Measurement Protocol. Useful links 1. [Google Analytics 4 Advanced tag for sGTM](https://stape.io/blog/google-analytics-4-advanced-tag-for-server-gtm). 2. [How to anonymize user data in Google Analytics 4](https://stape.io/blog/how-to-anonymize-user-data-google-analytics-4). --- # Attentive tag Source: https://stape.io/solutions/attentive-tag Stape created an Attentive tag for the server Google Tag Manager container that helps to track events. We created an [Attentive tag](https://github.com/stape-io/attentive-tag) for the server Google Tag Manager that helps to track events using sGTM. You should have a message program at Attentive with SMS functionality to set up this tag. Try for free (https://stape.io/sign-up) Benefits of Attentive tag by Stape: Tracks events in Attentive using server Google Tag Manager. Useful links: 1. [Attentive tag for Google Tag Manager Server Side](https://github.com/stape-io/attentive-tag) 2. [How to use the Twilio SMS tag.](https://stape.io/blog/how-to-send-twilio-sms-using-server-google-tag-manager) --- # Hubspot tag Source: https://stape.io/solutions/hubspot-tag Use the Google Tag Manager server container to add new Hubspot contacts, update existing and send behavioral events. HubSpot tag for server GTM is a valuable tool that allows businesses to integrate their website with HubSpot, one of the most popular customer relationship management (CRM) platforms available. ![HubSpot tag by Stape](https://cdn.stape.io/i/645228893c19c245547578.png) By collecting all relevant customer information in one place, businesses can streamline their sales and marketing efforts, improving efficiency and driving growth. HubSpot offers a wide range of integration options, including popular platforms like Google Analytics and Facebook, making it a versatile solution for businesses of all sizes. With the HubSpot tag for server GTM, integrating your website with HubSpot is easier than ever before. Simply install the tag in your Google Tag Manager server container, and you'll be up and running in no time. The [HubSpot server-side tracking](https://stape.io/blog/how-to-connect-website-with-hubspot-using-server-side-tracking) tag allows you to track and analyze user behavior on your website, providing valuable insights into your customer's needs and preferences. With this information, businesses can create targeted marketing campaigns that are more likely to resonate with their target audience. Additionally, the HubSpot tag for server GTM allows businesses to create custom audiences based on specific user behaviors, such as page views or form submissions. Try for free (https://stape.io/sign-up) Benefits of HubSpot tag by Stape: 1. Create new contacts. 2. Update existing contacts. 3. Add behavioral events. 4. Track ecommerce events. Useful links: 1. https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag[How to connect your site with Hubspot using server-side tracking](https://stape.io/blog/how-to-connect-website-with-hubspot-using-server-side-tracking). 2. [Hubspot tag on GitHub.](https://github.com/stape-io/hubspot-tag)https://github.com/stape-io/hubspot-tag --- # Matomo tag Source: https://stape.io/solutions/matomo-tag Learn more about Matomo server-side tag work and how to set it up in server Google Tag Manager container. Matomo, a free and open-source digital analytics platform, offers a comprehensive set of tools for tracking and analysing user activity on your website. In contrast to other analytics systems, Matomo's fundamental asset is its dedication to customer privacy. It enables organisations to collect and manage user data in a secure, self-hosted environment, reducing the need for third-party data sharing. Using Matomo’s Tracking HTTP API, stape’s Matomo tag sends HTTP requests to your Tracking URL with the data you've specified in the tag. Tag automatically parses event data in the server Google Tag Manager container and tries to map it to standard events or e-commerce tracking. The tag will prioritize the parameters which are manually specified in the tag settings. Types of actions that server-side Matomo tag supports: pageview event tracking e-commerce tracking Try for free (https://stape.io/sign-up) In Matomo tag choose: Inherit from client. The tag will automatically parse event data and map available data. Custom. With the help of this method, you can track pageviews and other custom events by adding event category, event action, and event name. ![image](https://cdn.stape.io/i/64db61f5e96cd382763176.png) Useful links 1. [Matomo Advanced tag](https://github.com/stape-io/matomo-advanced-tag). 2. Article on how to set up [Matomo tag for server Google Tag Manager.](https://stape.io/blog/matomo-tag-for-server-google-tag-manager) 3. [Matomo Advanced tag in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/matomo-advanced-tag) --- # ActiveCampaign tag Source: https://stape.io/solutions/server-side-active-campaign-tag Server-side ActiveCampaign tag allows for more accurate tracking of information and optimization of the sequence of emails you send out. Server-side ActiveCampaign tag is an excellent way to tag users in your database. It allows for more accurate tracking of information and optimizing the sequence of emails you send out. You can easily integrate ActiveCampaign and your website by using only Google Tag Manager server containers. activecampaign tag https://youtu.be/j5doZliLsxs?si=808G0GLcpkvZjSD2 Try for free (https://stape.io/sign-up) Benefits of server-side ActiveCampaign tag: Effortless ActiveCampaign integration — all inside the GTM server container. No need to rely on developers. Automated emails based on user data. Useful links 1. [How to integrate ActiveCampaign with the website using Google Tag Manager Server container](https://stape.io/blog/how-to-integrate-activecampaign-with-the-website-using-google-tag-manager-server-container) 2. [ActiveCampaign tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/activecampaign-tag) --- # Pinterest tag Source: https://stape.io/solutions/pinterest-tag Set up Pinterest CAPI using Stape tag for server Google Tag Manager container. Pinterest tag for server Google Tag Manager allows businesses to integrate their website with Pinterest, one of the most popular social media platforms for visual content. Pinterest Conversions API (CAPI) can help companies increase the accuracy of their conversion tracking and improve the return on investment (ROI) for their paid advertising campaigns. By implementing Pinterest CAPI, you can get more granular data about user behavior on their website, enabling them to make better marketing decisions. The logic of Stape's Pinterest CAPI tag is similar to that of Facebook CAPI or TikTok events API tag, making it easy for businesses to set up if they already have experience with these tools. With the Pinterest tag for server GTM, you can track a wide range of user behaviors, including page views, button clicks, and form submissions. This information can be used to create custom audiences and target users with more relevant content, improving the effectiveness of marketing campaigns. Try for free (https://stape.io/sign-up) Benefits of Pinterest tag by Stape: 1. Supports event deduplication. 2. Supports standard and custom events. 3. Supports real-time server event testing. 4. Does not require Access Token. You should use only a Pinterest advertiser ID. 5. You can send event and product data. Useful links: 1. [Pinterest Conversions API tag template in the Google Tag Manager Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/pinterest-capi-tag). 2. [Pinterest conversion API blog post.](https://stape.io/blog/pinterest-conversion-api) --- # File proxy Source: https://stape.io/solutions/file-proxy File proxy power-up is used to proxy any file through the server Google Tag Manager. It helps to load files from your domain... With the power-up File proxy you can proxy any file through the server Google Tag Manager. Now you can load files from your domain instead of using third-party domains. File proxy power-up is available to Business and higher plans. In order to enable it, all you need to do is log in to your [stape.io account](https://stape.io/sign-up), open container, choose power-ups and click "Use" button. ![file proxy power-up](https://cdn.stape.io/i/66c88e894046b192296600.png) Then you have to Add the URL of the file that you want to proxy. Specify the sGTM path that should be used to proxy the file through the tagging server URL. For example, if your tagging server URL sgtm.example.com, and the sGTM path is /file.js. Then the file will be loaded from sgtm.example.com/file.js. And finally, set maximum cache age. Don't forget to push the Save changes button. ![file proxy power-up](https://cdn.stape.io/i/66c88eaeabba0096386208.png) Use cases of the power-up [File Proxy for higher data control](https://stape.io/blog/file-proxy-for-higher-data-control) Try it out (https://stape.io/sign-up) --- # Drupal module Source: https://stape.io/solutions/drupal-module Set up server-side tracking on a Drupal website with the Stape Drupal module. Find out more about the module’s benefits on our solution page. Drupal is a free, open-source CMS that allows you to create new websites, from simple promo pages to complex digital platforms. It also features specialized modules that you can enable to customize your site’s features. [Stape’s Drupal module](https://www.drupal.org/project/stape_conversion_tracking_drupal) is one of such add-ons, focused on simplifying and optimizing the server-side Google Tag Manager tracking on your Drupal websites. It offers several unique benefits and can be enhanced with some of Stape’s power-ups. ![Stape Conversion Tracking Drupal module](https://cdn.stape.io/i/69e5d5384471d395485418.png) Check it out (https://www.drupal.org/project/stape_conversion_tracking_drupal) What this module does: Installs the GTM snippet on your website’s pages. Automatically generates e-commerce conversion tracking events. Sends purchase and refund webhooks to your sGTM container. Utilizes existing Stape solutions to recover more conversion data, extend first-party cookie lifetime, and avoid browser ITP restrictions. Useful links [How to configure Drupal module for server GTM](https://stape.io/blog/drupal-server-side-tracking) --- # Telegram tag Source: https://stape.io/solutions/server-side-telegram-tag Set up a Telegram tag for the Google Tag Manager server container to send the information straight from your site to the Telegram channel. We got what you need to understand how your website is performing. If you are looking for real-time notifications but can't afford the time required for checking conversions inside Google Analytics, set up a Telegram tag for the Google Tag Manager server container. This way, you will be able to send the information straight from your site to the Telegram channel. No manual input required. Try for free (https://stape.io/sign-up) Benefits of server-side Telegram tag: Real-time website performance Real-time notifications in the Telegram channel Simple integration with the Google Tag Manager server container Useful links 1. [Send Telegram notifications using Google Tag Manager Server container](https://stape.io/blog/send-notifications-to-telegram-using-google-tag-manager-server-container) 2. [How to set up Google Tag Manager Server Container](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container) --- # Supabase Writer tag Source: https://stape.io/solutions/supabase-writer-tag Set up Supabase Writer tag for Google Tag Manager server-side container. Supabase Writer tag for server GTM is a tool that allows businesses to integrate their website with Supabase, an open-source alternative to Firebase. Supabase offers a range of features and benefits for businesses, including the ability to enrich server-side data, making it a popular choice for developers and businesses alike. With Supabase Writer tag you can choose a a Mode: Insert or Upsert. Project URL - A RESTful endpoint for querying and managing your database. Project API key - Use service_role API key. This key can bypass Row Level Security or create custom for your needs. Table Name - the name of the table you want to write data to. Try for free (https://stape.io/sign-up) Benefits of Supabase Writer tag by Stape: Write any data from server GTM to Supabase. Return an array of Supabase documents that match specified query conditions. Useful links: 1. [Supabase writer tag on GitHub](https://github.com/stape-io/supabase-writer-tag). 2. [Supabase Writer tag for server Google Tag Manager](https://stape.io/blog/supabase-writer-tag-for-server-google-tag-manager). --- # Affiliate Conversion tag Source: https://stape.io/solutions/affiliate-conversion Increase the accuracy of affiliate converversuion tracking with the Affiliate tag for the server Google Tag Manager container. Due to tracking restrictions and the unstable work of the client-side tracking, your affiliates can lose up to 40% of the commission. It happens because browser tracking is no longer reliable. Apple’s Intelligent Tracking Prevention (ITP), Firefox's Enhanced Tracking Protection (ETP), and ad blockers restrict the use of third-party cookies. It can be fixed by setting up server-side affiliate conversion tracking. Stape created an Affiliate Conversion tag for the server Google Tag Manager to track pageviews and conversions from affiliate partners. By setting up an affiliate pageview event, you take the URL parameter (in most cases, it's either affiliate ID or click ID) and store it in the browser's cookie. You can set the lifetime of this cookie. When a conversion event triggers, you can fire the affiliate conversion event that sends requests with the configured URL and required parameters. ![When a conversion event triggers, you can fire the affiliate conversion event that sends requests with the configured URL and required parameters.](https://cdn.stape.io/i/67bf2ed1730e8823605349.png) Benefits of server-side affiliate tracking For affiliates More conversions will be tracked, meaning more revenue for affiliates. [Awin's research](https://www.awin.com/us/affiliate-marketing/server-to-server-tracking) analyzed 150,000 tracking calls and saw that 12,6% more cookies were set with the server-side implementation. Most of the time, client-side cookies were blocked by browsers that restrict the use of third-party cookies (like Safari or Firefox) and the rest by ad blockers. Related: Set up [Awin server-to-server tracking](https://stape.io/blog/awin-server-to-server-tracking-using-server-google-tag-manager) to ensure reliable conversion attribution and improve tracking accuracy. For companies Improved page speed Imagine you have offers in three affiliate networks, each requiring its tracking code. This means adding three separate JavaScript tags to your site, which can slow down its performance. Higher data security When you add affiliate JavaScript to your site, you can't control what data it collects. It may capture more information than you’ve agreed to, such as users’ PII, potentially violating your privacy policy or GDPR. You can control the data sent to the affiliate network with server-side tracking. A better understanding of results from affiliate marketing With server-side tracking, you can track all conversions from affiliates. This brings two key benefits: A clear understanding of where your conversions are coming from. More attractive offers for affiliates. When affiliates see that your offer generates higher earnings, they’ll drive more traffic to your site, leading to more sales. Try for free (https://stape.io/sign-up) Useful Links [Affiliate conversion tag in GTM template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/affiliate-conversion-tag) [How to set up an affiliate conversion tag](https://stape.io/blog/how-to-set-up-server-side-affiliate-tracking-using-server-google-tag-manager) --- # Roq.ad tag Source: https://stape.io/solutions/roqad-tag Set up Roq.ad tag for Google Tag Manager server-side container. Roqad is helping revolutionize digital advertising through actionable insights about anonymized users. They equip companies with the specific knowledge and tools required to overcome these challenges and achieve their business objectives while respecting the strictest privacy regulations around the world. Try for free (https://stape.io/sign-up) Useful links: [Roq.ad tag on GitHub](https://github.com/stape-io/roq-ad-tag). --- # XML to JSON Source: https://stape.io/solutions/xml-to-json This power-up is used when you need to get XML data inside the server Google Tag Manager. For instance, some platforms can send... The power-up XML to JSON can convert XML to JSON format in the server Google Tag Manager. How to get it done: 1. Set webhook to send data to the URL https://ss.example.com/stape/xml/ 2. https://ss.example.com should be the tagging server URL you use for the sGTM container. 3. Add any path after /stape/xml/, for example, https://ss.example.com/stape/xml/data, and this path will be used to send a request to your sGTM. In this case, we will send JSON to /data. This webhook will convert XML to JSON format. [To retrieve information from the webhook, use Data client.](https://stape.io/blog/debug-webhooks-google-tag-manager-server) In order to enable it, all you need to do is log in to your [stape.io account](https://stape.io/sign-up), open container, choose power-ups and click "Use" button. ![xml to json power-up from stape.io](https://cdn.stape.io/i/6542577483845742933111.png) ![xml to json power-up from stape.io](https://cdn.stape.io/i/66c889c8075a5187589636.png) Use cases of the power-up [Auto convert of webhook’s data in XML to JSON with Stape’s power-up](https://stape.io/blog/auto-convert-of-webhooks-data-in-xml-to-json-with-stapes-power-up) Try it out (https://stape.io/sign-up) --- # Request Delay Source: https://stape.io/solutions/request-delay Request Delay power-up allows you to delay requests from 1 minute to 2000 minutes. To create a delay for the request, you should send... Request Delay offers an effective way to manage timing within server-side Google Tag Manager. The power-up Request Delay can delay requests from 1 minute to 2000 minutes. Key Benefits of Request Delay Precise control over data timing Delaying event triggers ensures that data is sent exactly when you need it, improving the reliability of attribution models and conversion tracking. More flexibility for scheduling Not all events should fire in real time, especially during off-hours or low-traffic periods. The Request Delay power-up allows you to schedule data submissions according to your needs. Minimized duplication and premature event firing Events can sometimes trigger too early, before all relevant data is available, or while users are still engaging with the page. Stape’s power-up helps prevent sending duplicate or incomplete information, resulting in cleaner, higher-quality data. Useful links [Use cases of Request Delay power-up](https://stape.io/blog/delay-requests-with-stape-power-up). [How to set up and test the Request Delay power-up](https://stape.io/helpdesk/documentation/request-delay-power-up). Try it out (https://stape.io/sign-up) --- # Taboola tag Source: https://stape.io/solutions/taboola-tag Stape created a Taboola tag for the the server-side Google Tag Manager container that helps to set up server-side Taboola integration. Taboola's server-side integration enables more accurate results, faster website page speed, and better data control. With the help of stape's Taboola tag for the server Google Tag Manage container, you can quickly implement Taboola s2s integration. Try for free (https://stape.io/sign-up) Useful links 1. [Taboola tag template](https://github.com/stape-io/taboola-tag). 2. [How to use Taboola sGTM tag](https://stape.io/blog/taboola-server-side-tracking-using-server-google-tag-manager). --- # SendGrid tag Source: https://stape.io/solutions/sendgrid-tag Set up SendGrid tag for Google Tag Manager server-side container. SendGrid is an excellent option for people who have to send massive amounts of emails. It began as an email SMTP and API service, but they have lately begun to integrate email marketing services. Stape developed a SendGrid tag for the server Google Tag Manager container to make SendGrid integration easier. Try for free (https://stape.io/sign-up) Benefits of SendGrid tag by Stape: Send arrays of emails. Add or update contacts. Useful links: 1. [SendGrid tag on GitHub](https://github.com/stape-io/sendgrid-tag). 2. [SendGrid tag for server Google Tag Manager article](https://stape.io/blog/sendgrid-tag-for-server-google-tag-manager). --- # Mailgun tag Source: https://stape.io/solutions/mailgun-tag Set up Mailgun tag for Google Tag Manager server-side container. Mailgun is a mail delivery service that uses SMTP to send and track emails from a website or application. It includes an intelligent inbound routing system that tells you where every email you send will end up, providing the business more control over what is sent on its behalf. To simplify Mailgun integration with your website, we created a Mailgun tag for the server Google Tag Manager container that enables you to send transactional emails using customer actions on your site. Try for free (https://stape.io/sign-up) Useful links: 1. [Mailgun tag on GitHub.](https://github.com/stape-io/mailgun-tag) 2. [Mailgun tag for server Google Tag Manager.](https://stape.io/blog/mailgun-tag-for-server-google-tag-manager) --- # Multiple server locations Source: https://stape.io/solutions/multiple-server-locations Stape offers several sGTM server locations and constantly expands the list to make sure it fits customers' needs. Stape offers multiple server Google Tag Manager hosting locations to make sure it fits our customer's needs. Some countries or regions require business owners to host their sGTM containers in a particular area. For example, companies within European Union must host sGTM on servers located in the EU. Also, hosting sGTM closer to your website visitors increases GTM response time. Stape sGTM global server locations: US Center (Iowa) US East (South Carolina) US West (Oregon) EU West (Belgium) EU North (Finland) EU North (England) EU Center (Germany) AP East (Singapore) AP South (India) SA East (Brazil) SA West (Chile) AU East (Australia) CA East (Canada) ME Center (Qatar) JP Center (Japan) Stape sGTM EU server locations: EU South (Italy) EU North (Netherlands) EU East (Poland) EU Center (France) If your traffic is spread across different regions, you also have a [Global multi-zone server option](https://stape.io/helpdesk/documentation/multi-zone-sgtm-container-hosting). This feature automatically routes incoming requests to the nearest available zone based on the user’s IP address. Try for free (https://stape.io/sign-up) Why server location is important: Using a server that is closer to your website visitors helps to decrease GTM response time. Helps comply with tracking regulations. Useful links 1. [Benefits of Stape hosting for Google Tag Manager server.](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server) 2. [Multi-zone sGTM container hosting.](https://stape.io/helpdesk/documentation/multi-zone-sgtm-container-hosting) --- # Schedule Source: https://stape.io/solutions/schedule-requests Use this power-up to send a request on a defined schedule. Request can be sent: once a day at a specified time once an hour... If you want to send a request on a defined schedule, we created a power-up Schedule just for your need! How it works: In the path field, you should specify the request path that should be sent on schedule. Request can be sent: once a day at a specified time once an hour In order to enable it, all you need to do is log in to your [stape.io account](https://stape.io/sign-up), open container, choose power-ups and click "Use" button. ![Send requests on a defined schedule with Stape](https://cdn.stape.io/i/66cd7d0f88e2e858768003.png) Send requests on a defined schedule with Stape ![Send requests on a defined schedule with Stape](https://cdn.stape.io/i/66cd7d2f06753932674103.png) Send requests on a defined schedule with Stape Use cases of the power-up [Schedule requests](https://stape.io/blog/schedule-power-up-handy-way-to-collect-data-from-the-database) Try it out (https://stape.io/sign-up) --- # Slack tag Source: https://stape.io/solutions/server-side-slack-tag Server-side Slack tag allows you to send any information about user actions on your site to a channel in Slack. With the help of this tag, you can send any information about user actions on your site to a channel in Slack. It allows adding variables like product and customer info inside notifications. This way, you'll be able to notify team members about new purchases or abandoned carts, etc quickly with this Slack tag for the Google Tag Manager server container. Try for free (https://stape.io/sign-up) Benefits of server-side Slack tag: Notifying your team about website activity Real-time Slack notifications Prompt response to website events and activities Useful links 1. [Send Slack Notifications Using Google Tag Manager Server Container](https://stape.io/blog/send-slack-notifications-using-google-tag-manager-server-container) 2. [How to set up Facebook Conversion API.](https://stape.io/blog/how-to-set-up-facebook-conversion-api) --- # Brevo tag Source: https://stape.io/solutions/brevo-capi-tag The Brevo tag for the server Google Tag Manager container allows tracking page view, events, link clicking, and identifying the user. With [Brevo tag](https://github.com/stape-io/brevo-tag) for the server Google Tag Manager container you can leverage the data to better understand customer behavior and to optimize marketing efforts for increased conversions. Brevo tag allows tracking page view, events, link clicking and identifying the user. Try for free (https://stape.io/sign-up) Useful links 1. [Brevo Tag for server Google Tag Manager.](https://stape.io/blog/brevo-conversions-api-tag-for-server-google-tag-manager) 2. [Brevo tag in GitHub.](https://github.com/stape-io/brevo-tag) 3. [Brevo tag in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/brevo-tag) --- # Leadfeeder IP-enrich variable Source: https://stape.io/solutions/lead-feeder-ip-enrich-variable Uncover company information related to an IPv4 or IPv6 address with our variable - Leadfeeder IP-Enrich. Uncover company information related to an IPv4 or IPv6 address with our variable - Leadfeeder IP-Enrich. Now it is possible to find out about the company’s entire profile information: its industry, number of employees, its revenue, social media URLs, etc. Be sure to have an API key generated in order to use the variable in your server Google Tag Manager container. ![Leadfeeder IP-enrich by Stape](https://cdn.stape.io/i/64ef2e52b4490031702747.png) Useful links: 1. [Leadfeeder IP-Enrich Variable for server Google Tag Manager.](https://stape.io/blog/leadfeeder-ip-enrich-variable-for-server-google-tag-manager)2. [Leadfeeder variable on github](https://github.com/stape-io/leadfeeder-variable). Try for free (https://stape.io/sign-up) --- # Autoscaling Source: https://stape.io/solutions/autoscaling Stape's server Google Tag Manager hosting infrastructure scales and adapts to your traffic volume. Stape's server Google Tag Manager hosting infrastructure scales and adapts to your traffic volume automatically. When our monitoring systems see spikes in traffic we autoscale servers and add more CPU or memory. We automatically scale sGTM servers up and down with your needs. If you've subscribed to the Pro plan, you will still pay USD 20 per month and receive more CPU/Memory for 3 days in a row. Try for free (https://stape.io/sign-up) Autoscaling benefits: Makes sGTM hosting redundant to spikes in traffic. Useful links [Benefits of stape hosting for Google Tag Manager server](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server) --- # Type Convertor variable Source: https://stape.io/solutions/type-convertor-variable Type Convertor Variable for server Google Tag Manager is useful when you need to convert your data from one type to another (e.g., integer to string). When you have data in one type but need it in another type, Type Convertor variable might be just what you need. The variable supports the following type conversions: Integer Number String ![type convertor variable](https://cdn.stape.io/i/64c771f15fda9793756569.png) Useful links 1. [Type Convertor variable for Google Tag Manager server container](https://stape.io/blog/type-convertor-variable-for-google-tag-manager-server-container) 2. [Type Convertor variable on GitHub](https://github.com/stape-io/type-convertor-variable) 3. [Type Convertor variable in Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/type-convertor-variable) Try it out (https://stape.io/sign-up) --- # Open Container for Bot Index Source: https://stape.io/solutions/open-container-for-bot-index By default, gtm.js is blocked for bots. If you enable this power-up, your GTM script will be opened for the bots index. By default, the gtm.js (Google Tag Manager script) is blocked for bots. This means search engine robots and other automated services can't see or interact with the scripts you've integrated via GTM, potentially leading to missed opportunities in understanding and leveraging bot interactions. However, with Stape's new power-up, this changes. Once you enable "Open Container for Bot Index", your GTM script becomes accessible for bot indexing. This small yet impactful feature can significantly enhance your data collection strategies, ensuring you don't miss out on any valuable interactions, even from bots. ![Open Container for Bot Index - Stape power-up](https://cdn.stape.io/i/66f6675f31e6f737906732.png) Open Container for Bot Index - Stape power-up ![Open Container for Bot Index - Stape power-up](https://cdn.stape.io/i/66f667e34c947839391235.png) Open Container for Bot Index - Stape power-up Use cases of the power-up [Open Container for Bot Index power-up](https://stape.io/blog/open-container-for-bot-index-power-up-from-stape) Try it out (https://stape.io/sign-up) --- # Own CDN Source: https://stape.io/solutions/own-cdn Own CDN helps increase cookie lifetime in Safari 16.4 and other browsers with ITP by making your tracking domain use the same IP as your website. Own CDN helps first-party cookies last longer by making the custom subdomain used for sGTM hosting by Stape or Stape Gateway use the same IP as your website. Get started now (https://stape.io/sign-up) How to access Own CDN Own CDN is available on all Stape plans. You can enable it in the Stape app in your container or gateway settings. ![Own CDN](https://cdn.stape.io/i/69e9bcbe5dcd7477471363.jpg) How Own CDN works Own CDN lets your server-side tracking custom subdomain use the same IP address as your website. It helps Safari and other browsers with ITP avoid shortening first-party cookie lifetime because of an IP mismatch. Configure Own CDN Using Stape https://youtu.be/Ag4ODuOnMzw?si=3Mm9jZtguoG2x7qM Benefits of Own CDN Longer first-party cookie lifetime. Own CDN helps first-party cookies last longer, which is important in browsers with ITP, where cookies can be cut to 7 days. Stable attribution and conversion tracking. When cookies stay active for longer, your setup can connect conversions to earlier visits across a longer period. This helps you see a complete path to conversion and reduce unattributed results. Make your cookies last longer If browsers shorten the cookies' lifespan because your tagging subdomain uses a different IP than your website, Own CDN fixes that. It makes your tracking subdomain use the same IP as your site, which helps first-party cookies last longer. Get started now (https://stape.io/sign-up) Useful links [How to set up Own CDN](https://stape.io/helpdesk/documentation/own-cdn) [Safari ITP: everything you need to know](https://stape.io/blog/safari-itp) [Chrome disables third-party cookies for 1% of users in 2025](https://stape.io/blog/third-party-cookies) [Accessing original user IP when using Own CDN](https://stape.io/blog/accessing-original-user-ip-when-using-own-cdn) --- # Voyado tag Source: https://stape.io/solutions/voyado-tag Find out how to benefit from the server-side integration and how to set up a Voyado tag in your server Google Tag Manager container. The [Voyado](https://voyado.com/) platform now [supports server-side cookies](https://developer.voyado.com/en/web-activity-tracking/support-for-server-side-cookies), which are beneficial in scenarios like dealing with [Safari's Intelligent Tracking Prevention](https://stape.io/blog/safari-itp-update-limits-cookies-to-7-days-for-responses-from-3rd-party-ips) that caps the lifetime of client-side cookies at 7 days. We, at Stape, created a [Voyado tag](https://github.com/stape-io/voyado-tag#voyado-tag-for-google-tag-manager-server-container) for the server Google Tag Manager container, which can help you to harness the full potential of Voyado's capabilities. With our Voyado tag, you can track cart changes and product view, track purchases and identify the users by setting a cookie with ContactId or email, for later use in tracked events. Try for free (https://stape.io/sign-up) Useful links: 1. [Voyado Tag for server Google Tag Manager.](https://stape.io/blog/server-to-server-voyado-tracking-using-server-google-tag-manager) 2. [Voyado tag in GitHub.](https://github.com/stape-io/voyado-tag#voyado-tag-for-google-tag-manager-server-container) --- # CJ tag Source: https://stape.io/solutions/cj-tag Stape created a CJ tag for the server Google Tag Manager container that helps with accurate affiliate tracking. CJ focuses on marketing where performance determines success, using a network of affiliates. Their system helps brands, publishers, and creators grow effectively and sustainably by working together in a marketing partnership network. And we made the CJ server-to-server integration now simpler than ever. We created a CJ tag for server Google Tag Manager, so that you could enjoy all the advantages: increased pagespeed, better protection and control of the data, a better understanding of results from affiliate marketing, and much more. Try for free (https://stape.io/sign-up) Useful links [CJ server-to-server tracking using server Google Tag Manager.](https://stape.io/blog/cj-server-to-server-tracking-using-sever-google-tag-manager) [CJ tag on GitHub.](https://github.com/stape-io/cj-tag) [How to increase first-party cookie lifetime set by a third-party IP (Safari 16.4 and ITP update).](https://stape.io/blog/increase-first-party-cookie-lifetime-set-by-a-third-party-ip) [CJ tag in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/cj-tag) --- # iOS SDK Source: https://stape.io/solutions/ios-sdk IOS SDK from Stape allows sending events from iOS apps to server-side Google Tag Manager containers. Integrate server-side Google Tag Manager functionality into iOS applications with Stape sGTM iOS SDK. You can send data from your iOS apps to a server-side GTM container, facilitating advanced data processing and management. In the result, get more flexible tracking and analytics implementations! This approach can enhance data privacy, improve performance, and provide more control over data collection and usage in iOS applications. The Stape sGTM iOS SDK offers two key functionalities: it can create and dispatch events to a Data Client, with the SDK's API providing a simplified response model containing the Data Client's response. it integrates with Firebase, allowing for Firebase events to be converted into server-side Google Tag Manager events. Try for free (https://stape.io/sign-up) Useful links [Stape sGTM iOS SDK on GitHub.](https://github.com/stape-io/stape-sgtm-ios) --- # Stape Store Lookup variable Source: https://stape.io/solutions/stape-store-lookup-variable Quickly get data from the database with Stape Store Lookup Variable. You can use Stape Store Lookup variable to quickly get data from the database. Document path: look up a document by specifying the document ID. Query: look up a document within a store where the document meets the specified query criteria. If multiple documents are returned from the query, only the first document is used. ![Store Lookup variable](https://cdn.stape.io/i/65de04564b755144881652.png) Try for free (https://stape.io/sign-up) Useful links [Stape Store Lookup variable on GitHub.](https://github.com/stape-io/stape-store-lookup-variable) [Stape Store Writer tag for server GTM on GitHub.](https://github.com/stape-io/stape-store-writer-tag) [Stape Store reStore variable on GitHub.](https://github.com/stape-io/stape-store-restore-variable) [Stape Store.](https://stape.io/solutions/stape-store) [Stape Store Lookup variable in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/stape-store-lookup-variable) --- # Android SDK Source: https://stape.io/solutions/android-sdk Android SDK from Stape allows sending events from Android apps to server-side Google Tag Manager containers. Stape sGTM Android SDK enables the integration of server-side Google Tag Manager into the Android apps. It can help with efficient tracking and data collection capabilities, improving the analytics and marketing strategies within the application. Android SDK from Stape has these features: it enables the creation and dispatch of events to a Data Client. The SDK's API then returns a response from the Data Client, which is organized into a simple model with serialized response fields. it integrates with Firebase to facilitate the conversion of Firebase events into server-side Google Tag Manager events. Try for free (https://stape.io/sign-up) Useful links [Stape sGTM Android SDK on GitHub.](https://github.com/stape-io/stape-sgtm-android) --- # PHP SDK Source: https://stape.io/solutions/php-sdk PHP SDK from Stape allows sending events from PHP to server-side Google Tag Manager containers. Send tracking events to server-side Google Tag Manager containers with Stape sGTM PHP SDK. It's particularly useful if you want to implement advanced tracking solutions in PHP-based applications. The SDK allows for the creation and dispatch of events to the Data Client. After sending an event, the PHP SDK receives a response from the Data Client, which is then converted into a straightforward model comprising serialized fields from the response. In this way it's easier to handle and understand data in apps by effectively processing responses from events. Try for free (https://stape.io/sign-up) Useful links [Stape sGTM PHP SDK on GitHub.](https://github.com/stape-io/stape-sgtm-php) --- # Stape Store reStore variable Source: https://stape.io/solutions/stape-store-restore-variable Write and get data at the same time with the Stape Store reStore Variable. Stape Store reStore variable can write and get data at the same time. ![Stape Store reStore variable](https://cdn.stape.io/i/65de05783168c721217043.png) You can choose “Only to restore data” and it will prevent writing data to the Stape Store. Useful if you want to only get data by identifiers. And then you need to add the list of data that needs to be restored. Try for free (https://stape.io/sign-up) Useful links [Stape Store reStore variable on GitHub.](https://github.com/stape-io/stape-store-restore-variable) [Stape Store Writer tag for server GTM on GitHub.](https://github.com/stape-io/stape-store-writer-tag) [Stape Store Lookup variable on GitHub.](https://github.com/stape-io/stape-store-lookup-variable) [Stape Store](https://stape.io/solutions/stape-store)[.](https://stape.io/news/stape-store) [Stape Store reStore variable in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/stape-store-restore-variable) --- # Node.js SDK Source: https://stape.io/solutions/node-js-sdk Node.js SDK from Stape allows sending events from Node.js to server-side Google Tag Manager containers. With Stape sGTM NodeJS SDK you can implement server-side Google Tag Manager into the Note.js applications. It includes easy settings adjustments, the ability to send specific event data, and the option to modify this data through actions like trimming and encoding. Also, you can create an event and send it to the Data Client. SDK API provides a response from the Data Client mapped to a simple model that contains serialized response fields. Try for free (https://stape.io/sign-up) Useful links [Stape sGTM NodeJS SDK on GitHub.](https://github.com/stape-io/stape-sgtm-nodejs) --- # GTM Sandboxed API IntelliSense Source: https://stape.io/solutions/gtm-sandboxed-api-intellisense Find out the GTM Sandboxed API IntelliSense package - a developer tool that adds autocompletion and hover documentation for GTM APIs directly in your code editor. The Google Tag Manager Sandboxed API IntelliSense package developed by the Stape team is a handy solution for developers building GTM custom templates. It provides autocompletion for Google Tag Manager APIs directly in your code editor, which helps you write code faster and more accurately. The package features hover documentation for the APIs, which gives you information about what each function does. As well as code autocompletion. These features help you build custom templates faster and prevent errors. Useful links [GTM Sandboxed API IntelliSense on GitHub](https://github.com/stape-io/google-tag-manager-apis-intellisense) [How to set up GTM Sandboxed API IntelliSense](https://stape.io/helpdesk/documentation/gtm-sandboxed-api-intellisense) --- # Stape Store Writer tag Source: https://stape.io/solutions/stape-store-writer-tag With Stape Store Writer tag you can easily store your authorization keys and other useful data for tracking in just a few clicks. We created a Stape Store Writer tag so that you could easily add it to your container and store your authorization keys and other useful data for tracking in just a few clicks. ![Stape Store Writer tag](https://cdn.stape.io/i/65de02aba0638581845365.png) If the key is empty, a document will be created with a randomly generated ID. If the key is to a document and it does not exist, it will be created. With Stape Store Writer tag you can: Add all Event Data to the document. If Event Data and Custom Data have the same field, the Custom Data value will be used for that field. In other words, you can override Event Data values with Custom Data. Merge documents keys from the input into the document, otherwise the method will override the whole document. Add Timestamp and it will add the millisecond timestamp to the document. Skip items from customDataList with undefined or null values. Stape Store Write tag reads the request headers, query parameters, body, path, or remote IP address: trace-id x-gtm-identifier x-gtm-default-domain x-gtm-api-key It also logs to the developer console and Tag Manager's preview mode, reads data about the container, reads data from the event and sends an HTTP request to a specified URL. Try for free (https://stape.io/sign-up) Useful links [Stape Store Writer tag for server GTM on GitHub.](https://github.com/stape-io/stape-store-writer-tag) [Stape Store reStore variable on GitHub.](https://github.com/stape-io/stape-store-restore-variable) [Stape Store Lookup variable on GitHub.](https://github.com/stape-io/stape-store-lookup-variable) [Stape Store.](https://stape.io/solutions/stape-store) [Stape Store Writer tag for server GTM in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/stape-store-writer-tag) --- # Bot detection Source: https://stape.io/solutions/bot-detection Bot detection power-up checks if each Incoming Request inside the server Google Tag Manager is from a bot or not. This power-up checks each incoming request and looks at signs that point to bot activity. It adds two headers to every request so you can see the result: X-Device-Bot (true or false) X-Device-Bot-Score (a score from 0 to 100) The score helps you understand how suspicious the request is. A score between 50 and 75 means some signals look unusual, but we do not block the request because the checked parameters do not fully confirm bot behavior. A score above 75 means all parameters match bot activity, and the request is blocked if blocking is enabled. You can also use these headers inside your server Google Tag Manager container to filter out unwanted [bot traffic](https://stape.io/blog/bot-filtering-blocking). For example, you can stop GA4 or other tags from firing when the request looks like bot traffic. Note: this filtering can now be done either by using a variable in sGTM (as before) or directly within the Stape account by enabling power-up features. Try for free (https://stape.io/sign-up) How to enrich user data in your server-side GTM [User Agent Info, User ID, Bot detection power-ups] https://www.youtube.com/watch?v=bRKSQqUUlvs&ab_channel=Stape Benefits of Bot Detection power-up ​​1. More accurate analytics data Bots can create fake visits to your website. This can: Make your traffic numbers look higher than they are. Show incorrect conversion rates and user behavior. Mislead your marketing decisions. When you filter out bot traffic, your reports show data from real people, so you can trust your analytics. 2. Better security and protection from fraud Some bots are harmful. They can click on your ads to waste your budget, overload your server with fake traffic, and try to access your data. Bot Detection helps you detect these harmful requests early, so that you can plan your website and marketing spend safer. 3. Easy to set up and manage Many bot detection tools need complex code, extra software, and ongoing maintenance. The Bot Detection power-up works directly with Stape’s server-side GTM container. You can: Turn it on easily. Adjust settings in one place. Keep things running without extra tools. How to set up the Bot Detection power-up 1. Log in to your [Stape account](https://stape.io/login). 2. Select your sGTM container on the dashboard. 3. Click Power-ups, then click the Use button next to the Bot Detection panel. 4. Toggle the Bot Detection switch. ![Toggle the "Bot Detection" switch](https://cdn.stape.io/i/6a5f4f31559f0658286959.jpg) 5. Select one of the options: Add request headers - the power-up will add bot detection request headers to incoming HTTP requests. Block requests from bots - the power-up will block bot requests to /collect (GA4) and /data (Data Tag) paths. Click Save changes. ![Select "Add request headers" or "Block requests from bots" and save your changes](https://cdn.stape.io/i/6a5f4f7a6ff9a455618919.png) 6. The Bot Detection power-up has been configured on Stape. Here is an example of how to use the power-up’s data to filter the bot traffic in Google Tag Manager: 1) Create a Variable on the sGTM container with the type Request Header and enter the name X-Device-Bot. ![Configure a Request Header type variable](https://cdn.stape.io/i/66055a085ece8803453461.png) 2) Use this variable as an additional condition in your GA4 trigger configuration on the server (or any other triggers where you want to limit the impact of bot traffic). ![Use the Request Header type variable as an additional trigger condition](https://cdn.stape.io/i/66055a2556c97527945927.png) Use cases of the power-up [Filtering spam in GA4 with Stape's Bot detection power-up](https://stape.io/blog/filtering-spam-in-ga4-with-stape-bot-detection-power-up) --- # Dedicated IP Source: https://stape.io/solutions/dedicated-ip Get a dedicated IP for all outgoing requests: use a unique, static IP address to send data while maintaining security and consistency. The Dedicated IP power-up for server-side Google Tag Manager hosting on Stape provides a unique, static IP address for all outgoing requests, which can help you send data to the required destinations. See this article to learn [how to get your own Dedicated IP](https://stape.io/helpdesk/documentation/dedicated-ip-power-up). Why you should consider a Dedicated IP address: You can prevent potential malicious activities or interference from neighboring accounts. Switching to a Dedicated IP adds an extra layer of security by ensuring that your data is sent from a trusted and consistent source. Consistency in API requests. Some platforms use IP whitelisting for protection purposes. A dedicated IP ensures that your requests always come from the same trusted source rather than varying shared IPs. If you use webhooks or API keys that require an IP whitelist, a dedicated IP is essential to ensure uninterrupted data flow. Dedicated IP helps with high-volume data sending. When you’re sending a large volume of requests (e.g., millions of conversions, events, or API calls), a dedicated IP prevents rate limits imposed on shared IPs. This power-up is offered for custom payment depending on your needs. While it does come with an additional fee, the benefits far outweigh the costs for those aiming to improve their digital marketing performance. Contact sales (https://calendly.com/stape-sales/custom-solution) Useful links: [Benefits of Stape hosting for server Google Tag Manager](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server) [Understanding Stape power-ups: key features and how to use](https://stape.io/blog/understanding-stape-power-ups-key-features-uses) --- # Block Request by IP Source: https://stape.io/solutions/block-request-by-ip Exclude unwanted traffic in server GTM with Block Request by IP. Block up to 30 IPs to keep analytics clean and focus only on real users. Block Request by IP is an important power-up to keep your data clean. You can define up to 30 IP addresses to block, so everything coming from those addresses is automatically excluded from your server GTM events and analytics. You can also block loading of all requests containing ‘.js?’ or ‘.html?’ or ’/gtag/js?id=’ from your sGTM container (for requests originating from the IP addresses you’ve defined in the block list). This power-up is a great solution for eliminating internal traffic or suspicious sources from your analytics. ℹ️ Requires Business plan or higher. ![Block Request by IP interface](https://cdn.stape.io/i/6a3ba4573617c315113195.png) Benefits Cleaner analytics. Removes internal or irrelevant traffic, ensuring your stats reflect real customer behavior. Better decision clarity. Filtered data helps your team with planning targeting, budget, or creative moves. Use cases [How to set up Block Request by IP power-up](https://stape.io/helpdesk/documentation/block-request-by-ip-power-up).https://stape.io/blog/filtering-spam-in-ga4-with-stape-bot-detection-power-up [Filter spam traffic in GA4 with bot detection](https://stape.io/blog/filtering-spam-in-ga4-with-stape-bot-detection-power-up). --- # Ad Blocker Info Source: https://stape.io/solutions/ad-blocker-info Mark events from visitors using ad blockers with Ad Blocker Info. Segment this data in your analytics platforms to see the impact on conversions. The Ad Blocker Info power-up lets you know when users are blocking ads by adding a special header to your server GTM (sGTM) events. When active, each request includes a field called X-user-adblocker that returns true if an ad blocker is detected and false if not. With the information gathered, you can understand how ad blockers affect your campaigns and plan your marketing budgets accordingly. ℹ️ Note that it only works if you’ve already configured the [Custom Loader power-up](https://stape.io/helpdesk/documentation/custom-loader-power-up). Benefits of Ad Blocker Info Identify users with ad blockers. The power-up adds a header to each request, so you can capture who is using an ad blocker and process this data in your reports. Optimise campaigns. Use the data to adjust placements, experiment with alternative channels, or offer ad‑free experiences. Use cases of the power‑up [How to set up Ad Blocker Info power-up](https://stape.io/helpdesk/documentation/ad-blocker-info-power-up).https://stape.io/blog/bypass-adblock-detection [Avoid the harmful impact of ad blockers on your website tracking code](https://stape.io/blog/bypass-adblock-detection). [Avoid Google Tag Manager and GA4 blocking by ad blockers](https://stape.io/blog/avoiding-google-tag-manager-ga4-blocking-by-adblockers). [How to improve web analytics data quality: challenges and solutions](https://stape.io/blog/how-to-improve-web-analytics-data-quality-challenges-and-solutions). --- # Click ID Restorer Source: https://stape.io/solutions/click-id-restorer Recover lost ad click IDs in browsers Safari and Brave with the Click ID Restorer power-up. Keep sGTM conversion tracking and attribution seamless and accurate. Click ID Restorer is a must-have power-up if you want to keep your ad tracking accurate in Safari and Brave. With recent browser updates removing identifiers like GCLID (Google Ads) and MSCLKID (Microsoft Ads) from URLs in Safari and Brave Private modes, conversions risk going unattributed. This power-up solves the issue by automatically replacing custom click ID query parameters with the standard ones before they reach sGTM. This allows native methods of setting click ID cookies to function properly. That way, your campaigns keep the tracking data they need to function properly. ℹ️ Available to all Stape users for Free. ![Click ID Restorer power-up](https://cdn.stape.io/i/68d548a42765f108904335.png) Benefits of Click ID Restorer Accurate conversion tracking. Keeps Safari and Brave-driven conversions from being lost by recovering click IDs, meaning that your reporting reflects true ad performance. Smarter campaign optimization. Ensures Smart Bidding and automated strategies receive correct data and helps maintain full audience sizes for retargeting and lookalike campaigns. Use cases of the power‑up [Safari click ID removal: recover attribution with server-side tracking](https://stape.io/blog/safari-removes-click-identifiers-solution) [Documentation on Click ID Restorer](https://stape.io/helpdesk/documentation/click-id-restorer-power-up) --- # Adform tag Source: https://stape.io/solutions/adform-tag We created the Adform tag to make the Adfrom integration process simpler. Adform specializes in providing solutions for digital advertising. Their services primary focus lies in leveraging data for a competitive edge, gearing up for a future without cookies, and offering strategies for sustainable trading. To simplify the Adform integration process, we have developed an [Adform tag](https://github.com/stape-io/adform-tag) specifically for server-side Google Tag Manager. These are the advantages you can get: Lower quantity of tracking scripts on advertiser websites (as users' browsers may block numerous scripts, possibly causing longer load times). Increased data collection control for Adform. No effect on the speed of advertiser websites since tracking scripts are not loaded in the user’s browser. Try for free (https://stape.io/sign-up) Useful links 1. [Adform tag for server-side Google Tag Manager](https://stape.io/blog/adform-tag-for-server-side-google-tag-manager). 2. [Adform tag on GitHub.](https://github.com/stape-io/adform-tag) 3. [Adform tag in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/adform-tag) --- # Array Builder variable Source: https://stape.io/solutions/array-builder-variable Construct array data structures within server Google Tag Manager with Array Builder Variable. Array Builder Variable allows you to construct array data structures within server Google Tag Manager. It's particularly useful for organizing and structuring data in a format that can be easily manipulated and passed to tags or other variables within your server-side GTM setup. Try for free (https://stape.io/sign-up) Useful links: [Array Builder Variable on Github](https://github.com/stape-io/array-builder-variable#how-to-use-array-builder-variable). --- # HTTP Lookup variable Source: https://stape.io/solutions/http-lookup-variable Use HTTP Lookup Variable for making HTTP requests. This enables server GTM to retrieve data from external APIs... HTTP Lookup variable can be used for making HTTP requests. This enables server GTM to retrieve data from external APIs or other web services as part of its processing. Try for free (https://stape.io/sign-up) Useful links 1. [HTTP Lookup variable on GitHub](https://github.com/stape-io/http-lookup-variable#http-lookup-variable-for-google-tag-manager-server-side). 2. [How to set up HTTP Lookup variable for server Google Tag Manager](https://stape.io/blog/http-lookup-variable-for-server-google-tag-manager#how-to-set-up-http-lookup-variable) --- # Object Builder variable Source: https://stape.io/solutions/object-builder-variable Use the Object Builder variable in server GTM to create JavaScript objects. Structure data for tracking, data layer manipulation, and passing info to tags. The Object Builder variable is used to create objects. This type of variable allows you to construct and structure data in the form of JavaScript objects within the GTM environment. Using the Object Builder variable, you can define properties and their respective values to create a structured data object. This is particularly useful for organizing data and creating complex data structures that can be used for tracking, data layer manipulation, or passing structured information to tags and other variables within your server-side GTM setup. Try for free (https://stape.io/sign-up) Useful links: [Object Builder variable on GitHub](https://github.com/stape-io/object-builder-variable#object-builder-variable-for-google-tag-manager-server-container). --- # File Proxy Client Source: https://stape.io/solutions/file-proxy-client Use File Proxy Client in server-side GTM to serve files via your domain, enhancing control and security. Ideal for consistent branding and improved load times. File Proxy Client can be used for proxying file downloads. This client is particularly useful when you want to serve files, such as libraries or other resources, through your server-side GTM setup, potentially using your subdomain. The primary purpose of File Proxy Client is to have better control over file hosting and to potentially improve trust and security by serving files from a domain you control. And this is important for maintaining consistent branding, improving load times through server proximity, or adhering to specific security policies. When using sGTM for proxying file downloads, the server-side GTM container handles requests for certain files and serves them as if they were originating from your own domain. So if you wish to ensure that all external resources are loaded on your webpages and are from your own controlled domains - feel free to use this client. Try for free (https://stape.io/sign-up) Useful links: [File Proxy Client on Github](https://github.com/stape-io/file-proxy-client). --- # Object Property Extractor variable Source: https://stape.io/solutions/object-property-extractor-variable Extract object properties by key. This variable helps retrieve specific values from JavaScript objects, simplifying data access. The Object Property Extractor Variable is used to extract a property from an object by specifying its key. This variable type is particularly useful when you have a JavaScript object and you need to retrieve a specific value from it. For instance, if you have an object with various properties, and you need to extract and use one of those properties in your GTM setup (like in tags, triggers, or other variables), the Object Property Extractor Variable allows you to do so easily by specifying the key associated with the property you want to retrieve. It’s a valuable tool for data manipulation and retrieval in GTM, especially when dealing with complex data structures. Try for free (https://stape.io/sign-up) Useful links: [Object Property Extractor variable on Github](https://github.com/stape-io/object-property-extractor-variable#object-property-extractor-variable-for-google-tag-manager-server-container). --- # Google Ads Offline Conversion tag Source: https://stape.io/solutions/google-ads-offline-conversion-tag It lets you send offline conversion data from a server GTM container directly to Google Ads. The Google Ads offline conversions tag lets you send offline conversion data from a server GTM container directly to Google Ads. This means you can automatically send information about offline sales (like phone or in-store sales, upsells, and cross-sells) to Google Ads. You don't need to manually upload files or use other tools. This is useful for tracking sales that happen outside the internet and for using Google's tools to find customers who are more likely to buy something, whether the sale is online or offline. The Google Ads offline conversions tag supports Request/Response logging to BigQuery — get full visibility, easier debugging, and richer data for analytics. Try for free (https://stape.io/sign-up) Useful links [Google Ads Offline Conversion Tag on Github](https://github.com/stape-io/gads-offline-conversion-tag). [Google Ads offline conversion using server GTM article](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm). --- # GTM standards Source: https://stape.io/solutions/gtm-standards Guidelines developed by the Stape team to address certain limitations in GTM's functionality. GTM (Google Tag Manager) standards are guidelines developed by the Stape team to address certain limitations in GTM's functionality. We propose workarounds to achieve desired functionalities in a way that ensures the GTM solutions provided are easy to understand and maintain. These standards cover various aspects: Server Templates Logging [(GTMS-3)](https://github.com/stape-io/gtm-standards/blob/main/standards/GTMS-3.md): guidelines for logging within server templates. Template Code Formatting [(GTMS-4)](https://github.com/stape-io/gtm-standards/blob/main/standards/GTMS-4.md): standards for the formatting of template code to ensure consistency and readability. Template Repository File Structure [(GTMS-5)](https://github.com/stape-io/gtm-standards/blob/main/standards/GTMS-5.md): recommended file structure for template repositories. Firebase Settings [(GTMS-6)](https://github.com/stape-io/gtm-standards/blob/main/standards/GTMS-6.md): standards for setting up and managing Firebase within the GTM context​​​​. Try for free (https://stape.io/sign-up) Useful links: [GTM standards on Github](https://github.com/stape-io/gtm-standards). --- # JSON HTTP Request tag Source: https://stape.io/solutions/json-http-request-tag Sends a POST request to your URL with a JSON body with all event data that came to the GTM client. JSON HTTP Request tag sends a POST request to your URL with a JSON body with all event data that came to the GTM client. There is also an ability to add your custom request headers and data. Also, tag changes “-” symbol in keys to “_”. That is done because many systems do not work with nested objects and our tag tries to work with all systems out of the box. These transformations apply only to event data that comes from the client. If you use the “Additional Options” setting of the tag, the keys that you fill in will be used without any modification. Try for free (https://stape.io/sign-up) Useful links: 1. [JSON HTTP Request tag on Github](https://github.com/stape-io/json-http-request-tag). 2. [JSON HTTP Request tag use case article](https://stape.io/blog/how-to-send-all-ga-event-data-to-your-url-site-crm). --- # JSON Response tag Source: https://stape.io/solutions/json-response-tag JSON Response tag can be used to modify HTTP responses, customize data, control data flow and enhance performance. Turn your server-side container into a flexible JSON response engine. This sGTM tag generates JSON objects or arrays based on configurable fields. With its help, you can return the real user values (like IP address and country), easily build lightweight APIs, webhook responses, validation endpoints, or structured data outputs directly inside sGTM. Try for free (https://stape.io/sign-up) How to start using the JSON response tag? The tag is free to use for all users. Assuming that you already have a [server GTM container configured](https://stape.io/blog/how-to-set-up-google-tag-manager-server-side-container), you can add it to your sGTM container workspace by going to the Templates section → Search Gallery → search for JSON Response → add to your workspace. ![JSON Response tag in the Template Gallery](https://cdn.stape.io/i/6a19a7906adeb483455230.png) How it works The tag generates a JSON response dynamically from configured key/value pairs. When the Do not use dot notation setting is enabled, fields are converted directly into flat JSON properties. When the setting is disabled, dot notation like user.name or order.total.value creates nested JSON structures automatically. There's optional array wrapping, which allows the response to return either an object or an array containing the object. The tag automatically: sets the response content type to JSON converts the generated object into a JSON string returns it as the HTTP response body completes the request inside sGTM Output example: {   "user": {     "name": "Jane",     "email": "jane.doe@gmail.com"   } } The template automatically sets the correct response headers and outputs the payload as a server response from sGTM. Benefits of the JSON response tag Return the real user values. The tag can return any values you pass into the table. Create lightweight endpoints like /country that respond with structured JSON, making it easier to personalize experiences, validate traffic sources, and enrich server-side integrations without additional backend services. Build structured JSON responses directly inside sGTM. With this approach no need for using external middleware, cloud functions, or additional backend infrastructure. This keeps implementations simpler, faster to deploy, and easier to maintain. Generate consistent payloads automatically. It reduces formatting mistakes, malformed requests, and integration issues across APIs, webhooks, and server-side platforms. No need for writing custom backend code. Create nested JSON objects using simple dot notation, and easily support advanced schemas and complex payload structures. Speed up testing and troubleshooting. Mock API responses and custom JSON endpoints from your server container, which will help you validate integrations and debug tracking setups faster. Come up with standardized response formatting. The standardized response formatting across the server-side environment improves payload consistency, data quality, and downstream processing reliability. Note: the tag works with the [Data Client](https://stape.io/solutions/data-tag-client). So, while configuring the client, you need to enable a box next to Send Response Body for GET request. It works like a connection to the Response JSON tag. ![“Send Response Body for GET request” checkbox](https://cdn.stape.io/i/6a19aa38174f8764540986.png) Start building JSON responses in sGTM Use the tag template to create lightweight APIs, structured payloads, and dynamic server responses without adding backend infrastructure. Configure it now and simplify how your server container handles custom JSON generation. Try for free (https://stape.io/sign-up) Useful links [JSON Response tag in sGTM template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/json-response-tag) [How to send all GA event data to your URL/Site/CRM](https://stape.io/blog/how-to-send-all-ga-event-data-to-your-url-site-crm) --- # Firestore ReStore variable Source: https://stape.io/solutions/firestore-restore-variable ReStore Variable for server GTM helps to search for document records in Firebase based on the list of identifiers and restore required data. The Firestore reStore variable allows you to create a custom variable within GTM that connects to a Firestore database and retrieves specific documents or collections. It’s useful for dynamically fetching data stored in Firestore and using it in various GTM tags, triggers, and variables. The variable searches for the record inside the Firestore based on the list of identifiers and restores parameters specified in the section’s list of data that needs to be restored. ![firestore restore variable](https://cdn.stape.io/i/663c9bee8e9b8147284651.png) Benefits of Firestore reStore variable Easy integration of Firestore with server GTM. Suitable for both small and large datasets. Fetch and display dynamic content based on user attributes or preferences, which can improve user experience. Pull user-specific data from Firestore to personalize user interactions. Useful links 1. [Firestore reStore in Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-restore-variable). 2. [Firestore reStore on GitHub](https://github.com/stape-io/firestore-restore-variable). 3. [Building a custom CDP and enriching event data using server-side GTM](https://stape.io/blog/building-a-custom-cdp-and-enriching-event-data-using-server-side-gtm). --- # Microsoft Ads Offline Conversion tag Source: https://stape.io/solutions/microsoft-ads-offline-conversion-tag Closes the gap between online and offline activities, providing valuable insights and enabling businesses to make data-driven decisions. Microsoft (Bing) Offline conversion tag can close the gap between the online and offline activities, providing valuable insights and enabling businesses to make data-driven decisions. This tag uses Firebase for authentication and Microsoft developer token. We simplified the process of creating these two entities for Stape users, which is why the list of needed things to set up Bing offline conversions depends on whether you are a Stape user. microsoft ads https://youtu.be/sITyV--tIh4?si=XzVmPMRR7AAe9ZCO Try for free (https://stape.io/sign-up) Useful links 1. [Microsoft Ads Offline Conversion tag on Github](https://github.com/stape-io/microsoft-ads-offline-conversion-tag). 2. [Microsoft Ads Offline Conversion tag step-by-step guide](https://stape.io/blog/microsoft-ads-bing-offline-conversion-tracking). 3. [Microsoft Ads Offline Conversion tag in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/microsoft-ads-offline-conversion-tag) --- # Timestamp Converter variable Source: https://stape.io/solutions/timestamp-converter-variable Use it when you have timestamp data that needs to be formatted or converted for tracking, reporting, or other data processing purposes. The Timestamp Converter variable is designed to convert timestamps into different formats or values. This variable is particularly useful in scenarios where you have timestamp data that needs to be formatted or converted for tracking, reporting, or other data processing purposes. Try for free (https://stape.io/sign-up) Useful links [Timestamp Converter variable on GitHub](https://github.com/stape-io/timestamp-converter-variable). --- # Universal Conversions variable Source: https://stape.io/solutions/universal-conversions-variable Universal Conversions Variable for Google Tag Manager container can map your product array into formats required by platform destinations. Universal Conversions variable for Google Tag Manager container can map your product array into formats required by platform destinations. Try for free (https://stape.io/sign-up) Useful links [Universal Conversions variable in the Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/universal-conversions-server-variable) --- # URL Builder variable Source: https://stape.io/solutions/url-builder-variable Dynamically create URLs with query parameters using GTM's URL Builder variable. Simplify complex URL construction for tracking and analytics. The URL Builder variable is designed to facilitate the construction or modification of URLs by adding query parameters. This variable is particularly useful in scenarios where you need to dynamically generate URLs with specific parameters based on certain conditions or data available within your GTM setup. Try for free (https://stape.io/sign-up) Useful links [URL Builder variable](https://github.com/stape-io/url-builder-variable). --- # URL Parser variable Source: https://stape.io/solutions/url-parser-variable The URL Parser Custom Variable breaks down URLs into components like protocol, domain, path, and query parameters, simplifying URL analysis. The URL Parser Custom Variable can parse URLs, which means it can analyze and break down a URL into its components, such as the protocol, domain, path, and query parameters. For instance, if you want to track how users arrive at your website (like through specific campaign links), this tool can dissect the URLs to extract the relevant campaign parameters. It's a useful resource for advanced web analytics and data tracking, particularly in more complex or customized setups where detailed URL information is required​. Try for free (https://stape.io/sign-up) Useful links [URL Parser on Github](https://github.com/stape-io/url-parser). --- # Monitoring Source: https://stape.io/solutions/monitoring The new monitoring feature from Stape will allow you to be notified of any anomalies or tracking issues as soon as possible. Monitoring is a Stape’s feature that tracks the health of your server-side setup. It provides real-time alerts when errors and performance dips are detected. In this way, you can quickly get down to fixing them and prevent incorrect data tracking. ❗Note: the feature is available for the Business, Enterprise, and custom plans only. Start monitoring now (https://stape.io/sign-up) To use it, [log in to your Stape account](https://stape.io/login), open the required container, and go to the Monitoring tab. ![Monitoring tab](https://cdn.stape.io/i/69bbcc1509c26078239799.png) As the Monitoring feature outgoing analyzes the requests to detect the problems, you will need to activate Outgoing requests in the [Logs tab](https://stape.io/solutions/logs). ![General logs tab](https://cdn.stape.io/i/69baa89a2acbf489530673.png) How Monitoring works Monitoring automatically scans server container logs and key activity signals, identifying patterns such as status errors, failed requests, or unusual drops. You can define custom alert rules based on specific log types and dimensions. When tracking issues are detected, the system sends alerts to your email. So, you can take immediate action before data tracking issues affect reporting. ![Alerts in Monitoring feature](https://cdn.stape.io/i/69bbcdf6d5547022713982.png) Benefits of Monitoring Early issue detection to protect the data quality. Monitoring’s real-time alert system immediately notifies you about errors or unusual behavior, allowing you to fix problems before they escalate. As a result, you reduce downtime, prevent loss of tracked data, and maintain consistent reporting accuracy. Customization and flexibility to meet your setup needs. With the Monitoring feature, you can configure alerts based on specific log types and dimensions. Receive the alerts only for the required conversion events that matter to your business. Such an approach reduces unnecessary noise and increases operational efficiency. Time and cost savings through automation. Troubleshooting tracking issues manually can be time-consuming and expensive, especially if problems are discovered too late. With instant alerts, you can identify the problems faster and significantly reduce troubleshooting time. This allows your team to proactively optimize tracking setup. Always be sure that your tracking is accurate and fix the errors immediately after they arise. Start monitoring now (https://stape.io/sign-up) Useful links [How to Monitor Website Tracking Before It Breaks Analytics](https://stape.io/blog/monitor-website-tracking) [Server GTM container is not receiving requests - reasons and fixes](https://stape.io/blog/server-gtm-container-is-not-receiving-requests-solution) [Guide to debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) --- # Google Data Manager API Connection Source: https://stape.io/solutions/data-manager-api-connection Find more about Google Data Manager API Connection in the Stape admin account and connect it in a few minutes. Google Data Manager API Connection is a solution that allows you to access Data Manager API via Stape. Data Manager API simplifies the process of configuring customer lists in Google Ads and sending audience data. Using the Google Data Manager API Connection along with the [Customer Match tag for server GTM](https://github.com/stape-io/google-customer-match-tag) or [CRM/CMS app](https://stape.io/apps) for WooCommerce, Shopify, HighLevel CRM, or HubSpot, you can easily send audience data to Google Ads/Display & Video 360. Google Data Manager API Connection can be found in the “Connection” tab of your Stape admin. Click “Sign in” for Google Data Manager API and use a Google account with access to the Google Ads account for which you want to configure the Customer List. ![Connections](https://cdn.stape.io/i/68fb3a5a94998894060651.png) Connections For EU users: please check the [Stape DPA](https://stape.io/dpa), as activating the connection may transfer data outside the EU via Stape Inc. ![Data transfer notice](https://cdn.stape.io/i/689dc92699715646907209.png) Data transfer notice Useful links: [How to set up automatic Google Customer Match Lists](https://stape.io/blog/customer-list-google-ads). [Track Google Ads Conversions using Data Manager API](https://stape.io/blog/google-ads-conversions-tracking-with-data-manager-api). [Customer Match tag for server GTM](https://github.com/stape-io/google-customer-match-tag). --- # Single Sign-On (SSO) Source: https://stape.io/solutions/sso Single Sign-On by Stape lets teams log in with company credentials, removing extra passwords and giving admins secure access control. Single Sign-On (SSO) makes it easier and safer for the teams to access their accounts. When it’s enabled, anyone with your domain email can log in through SSO instead of managing separate Stape passwords. This way, access is managed at the company level, and logins stay secure. SSO is a paid feature available for all Stape accounts. Benefits of Single Sign-On Centralized access. Your team uses one login across all tools, including Stape. Better security. When employees leave, their access is automatically revoked through your identity provider. Lower support load. No need to reset forgotten passwords for every account. Compliance ready. Keep access control aligned with company security policies and audits. Note:: SSO is not supported for general domains like @gmail.com. How to enable SSO on Stape? Go to your account settings and open the Security tab. Scroll down to the Single Sign-On (SSO) section and click Request SSO. Our team will contact you to confirm the details and connect Stape with your company’s identity provider. ![How to enable SSO on Stape?](https://cdn.stape.io/i/68d8e7a95b896025315617.png) After setup, everyone with your domain email can log in through SSO without creating separate Stape passwords. --- # Piwik Pro tag Source: https://stape.io/solutions/piwik-pro-tag Stape has created a Piwik Pro Tag for the server container. Integrate Piwik Pro to your container easily. Piwik has already gained significant popularity thanks to its robust data control and high privacy compliance. It’s a reliable alternative to common analytics tools like Google Analytics 4 (GA4) or Mixpanel. Thanks to Piwik Pro Tag, you can easily integrate Piwik into your server-side Google Tag Manager. The integration of Piwik Pro into server will bring a lot of benefits compared to client-side: More accurate data. The tag is independent of third-party cookies, so any limitation (ad blockers, browser restrictions) won’t affect the data you get. Higher data security. You control all the data that is being collected from your website visitors, so you can be sure you won’t break any data protection laws like GDPR. Faster website load. With server-side tracking you don’t need any JavaScript codes on your webside (as client-side requires). These codes make pages load slower, their removing can speed up the website load up to 72%. Piwik Pro Tag installation is easy as a breeze. Try it yourself to reap the benefits of next-level data tracking. Try for free (https://stape.io/sign-up) Useful Links [How to set up Piwik Pro Tag using server Google Tag Manager](https://stape.io/blog/how-to-set-up-piwik-pro-tag-using-server-google-tag-manager) --- # Webgains tag Source: https://stape.io/solutions/webgains-tag-for-server-to-server-conversion-tracking Set up Webgains tag to improve your online performance and maximize your ROI with a seamless server-to-server conversion tracking. [Webgains](https://www.webgains.com/public/en/) is a prominent affiliate marketing network, facilitating online revenue growth through affiliate partnerships. With our [Webgains tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/webgains-tag), you can optimize the process of tracking conversions with unparalleled accuracy and efficiency. Obtain the ability to precisely monitor user interactions, track sales, and attribute conversions across various touchpoints. Try for free (https://stape.io/sign-up) Useful links [Webgains tag on GitHub.](https://github.com/stape-io/webgains-tag) [Webgains tag in the Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/webgains-tag) [Webgains server-to-server conversion tracking detailed article.](https://stape.io/blog/webgains-server-to-server-conversion-tracking) --- # Weather variable Source: https://stape.io/solutions/weather-variable Use the Weather variable by Stape to get the air temperature in your city. Set up a Weather variable by Stape to monitor the air temperature in the specific city on any analytics platform (like Google Analytics 4). The variable operates with an OpenWeather API key, which you can obtain for free. The OpenWeather service, along with Weather variable, allows you to monitor the weather in your city efficiently. Try for free (https://stape.io/sign-up) Useful links [How to set up Weather Variable for server Google Tag Manager](https://stape.io/blog/weather-variable-for-server-google-tag-manager) [Weather variable in Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/weather-variable) [Weather variable on GitHub](https://github.com/stape-io/weather-variable) --- # Days In Seconds variable Source: https://stape.io/solutions/days-in-seconds-variable The Days In Seconds variable allows you to easily convert days into seconds for more accurate time calculations in server-side tracking setups. [Days In Seconds variable](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/days-in-seconds-variable) for Google Tag Manager (GTM) provides a simple yet powerful way to convert a given number of days into seconds. This is particularly useful for scenarios where time-based calculations are needed, and GTM operates using time in seconds as the standard unit for many server-side configurations. ![Days In Seconds variable](https://cdn.stape.io/i/66d85914923ee593385015.png) Try for free (https://stape.io/sign-up) Useful links: [Days In Seconds variable in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/days-in-seconds-variable) [Days In Seconds variable in the GitHub](https://github.com/stape-io/days-in-seconds-variable) [Step-by-step guide on how to add Days In Seconds variable](https://stape.io/blog/days-in-seconds-variable-for-google-tag-manager-server-container) --- # TikTok Pixel tag Source: https://stape.io/solutions/tiktok-pixel-by-stape-tag Find out what the TikTok Pixel by Stape tag is and its benefits. Get useful links to learn more and install it. The [TikTok Pixel by Stape](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/tiktok-web-tag) tag is designed to simplify TikTok Pixel implementation while improving tracking reliability and privacy compliance. Instead of manually installing base scripts and custom code, the tag allows you to configure TikTok tracking directly inside Google Tag Manager with support for advanced matching, consent handling, and server-side integrations. The tag automatically maps popular GA4 and Data Layer events to TikTok standard events like Purchase, AddToCart, Lead, CompleteRegistration, and ViewContent. It also supports sending custom events and additional metadata for more advanced use cases. Try now (https://stape.io/sign-up) Benefits of the TikTok Pixel by Stape tag Simplified TikTok Pixel setup: the tag fully handles SDK loading and event tracking directly from GTM. Better conversion tracking: supports both standard and custom TikTok events with automatic Data Layer mapping for GA4 and eCommerce events. Improved match quality: Advanced Matching securely enriches events with user identifiers like email, phone number, and external ID to improve attribution and campaign optimization. Consent-aware tracking: built-in support for TikTok Consent Mode, Google Consent Mode, Limited Data Use (LDU), and manual consent settings. More reliable server-side tracking: supports deduplication between browser events and TikTok Events API events using Event ID synchronization. Useful links [TikTok Pixel by Stape tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/tiktok-web-tag) [How to set up the TikTok Pixel by Stape tag](https://stape.io/helpdesk/documentation/tiktok-pixel-by-stape-tag) [TikTok Ads conversion tracking: cost and conversion rate insights](https://stape.io/blog/tiktok-conversion-tracking)https://stape.io/helpdesk/documentation/tiktok-pixel-by-stape-tag --- # Google Merchant Center Lookup variable Source: https://stape.io/solutions/google-merchant-center-lookup-variable Use the Google Merchant Center Lookup variable to enrich product data from Google Merchant Center for Google Ads and Analytics via server-side GTM. [Google Merchant Center Lookup variable](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/merchant-center-variable) retrieves and enhances product data by querying a Google Merchant Center account. It's especially useful for adding product details like categories or attributes when sending data to other systems, such as Google Ads or Google Analytics, through a server-side GTM container. ![Google Merchant Center Lookup variable](https://cdn.stape.io/i/66d95da726567754200721.png) Google Merchant Center Lookup variable Try for free (https://stape.io/sign-up) Useful links [Google Merchant Center Lookup variable in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/merchant-center-variable) [Step-by-step guide on how to configure Google Merchant Center Lookup variable](https://stape.io/blog/google-merchant-center-lookup-variable-for-google-tag-manager-server-container) --- # Omnisend tag Source: https://stape.io/solutions/omnisend-tag Find out what the Omnisend tag is and what its benefits are. Get useful links to learn more and install it. The [Omnisend tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/omnisend-tag) by Stape is designed to simplify server-side event and contact tracking for Omnisend. Instead of relying only on browser scripts, the tag sends data directly from your Google Tag Manager server container to the Omnisend API. This helps improve tracking reliability and ensures customer and conversion data reaches Omnisend more consistently. The tag supports sending standard and custom events, as well as creating and updating contacts. It can automatically map GA4 event names to Omnisend events or store contact identifiers for future requests. Try now (https://stape.io/sign-up) Benefits of the Omnisend tag Reliable event tracking: send contact and conversion data directly from server-side GTM to Omnisend. Simplified Omnisend integration: a single tag can perform event tracking, contact creation, or contact updates. Better eCommerce automation: connect purchases, checkout actions, and customer activity with Omnisend workflows and segmentation. Flexible event mapping: map GA4 events to Omnisend standard events automatically or use custom event names. Improved customer data management: create or update Omnisend contacts directly from your server-side tracking setup. Useful links [Omnisend tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/omnisend-tag) [How to set up the Omnisend tag](https://stape.io/helpdesk/documentation/omnisend-tag)https://tagmanager.google.com/gallery/#/owners/stape-io/templates/omnisend-tag --- # Shopify Customer Privacy API tag Source: https://stape.io/solutions/shopify-customer-privacy-api-tag Learn how to use the Shopify Customer Privacy API tag to sync customer consent preferences from Google Tag Manager to Shopify. The [Shopify Customer Privacy API tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/shopify-customer-privacy-tag) by Stape is a free web GTM tag designed to pass consent preferences from your consent banner or GTM setup to Shopify’s Customer Privacy API. It comes in handy when your consent management platform does not natively integrate with Shopify, or doesn’t support the options you need. Instead, the tag sends consent preferences directly from your Google Tag Manager web container to Shopify's Customer Privacy API, helping ensure customer choices are consistently respected. The tag supports both Google Consent Mode and manually configured consent states for analytics, marketing, and personalization. It also supports custom metafields and headless Shopify storefronts, making it a flexible solution for both standard and custom Shopify implementations. Try now (https://stape.io/sign-up) Benefits of the Shopify Customer Privacy API tag Reliable consent synchronization: automatically keeps Shopify's consent preferences aligned with your GTM consent settings. Flexible consent configuration: use Google Consent Mode mappings or manually define consent states for analytics, marketing, and preferences. Support for headless Shopify stores: configure consent for custom storefronts using checkout and storefront domains together with the Storefront API access token. Custom metafield support: send additional consent-related data to Shopify through metafields available in Checkout UI extensions. Useful links [Shopify Customer Privacy API tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/shopify-customer-privacy-tag) [How to set up Shopify Customer Privacy API tag](https://stape.io/helpdesk/documentation/shopify-customer-privacy-api-tag) [Consent mode in server Google Tag Manager](https://stape.io/blog/consent-mode-server-google-tag-manager) --- # Duplicate Transaction Checker variable Source: https://stape.io/solutions/duplicate-transaction-checker-variable The Duplicate Transaction Checker variable prevents duplicate transactions from being tracked in conversion tracking setups, such as Google Ads or Analytics. [Duplicate Transaction Checker](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/duplicate-transaction-checker-variable) is set up to detect and block transactions that have already been processed to avoid duplication in analytics platforms, which can lead to inflated conversion metrics. It’s indeed very useful for platforms like [server side tagging Google Ads](https://stape.io/blog/server-side-conversion-tracking-in-google-ads-adwords) and [Google Analytics](https://stape.io/blog/how-to-set-up-ga4-tracking-using-google-tag-manager-server-side-container). Here’s why: Accurate metrics: it helps ensure that each transaction is only counted once, preventing inflated conversion metrics. Improved attribution: it ensures that attribution models (which determine how credit for conversions is assigned across different channels and touchpoints) are more accurate. This helps in understanding which channels or campaigns are genuinely driving conversions. Better budget allocation: accurate conversion data allows for better budget decisions. With clear insights into what’s working and what isn’t, you can allocate your advertising budget more effectively. Try for free (https://stape.io/sign-up) Useful links [Duplicate Transaction Checker variable on GitHub](https://github.com/stape-io/duplicate-transaction-checker-variable) [Duplicate Transaction Checker in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/duplicate-transaction-checker-variable) [Duplicate Transaction Google Analytics](https://stape.io/solutions/duplicate-transaction-checker-variable) --- # User Data Collector tag Source: https://stape.io/solutions/user-data-collector-tag Learn how to use the User Data Collector tag for web GTM to collect user data from forms and web pages. Automate and simplify your tracking. The [User Data Collector](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/user-data-extractor-web-tag) is a free web GTM tag designed by Stape to simplify capturing user information directly from your website and making it available for tracking and analytics. Instead of manually handling form parsing or custom scripts, the tag automatically scans your page DOM, extracts user data, and prepares it for use in Google Tag Manager workflows. The tag supports automatic detection of key user attributes such as email, phone number, name, and location details. It can push this data to the dataLayer, store it in browser storage for reuse across sessions, or trigger collection based on user interactions like form submissions or button clicks. Try now (https://stape.io/sign-up) Benefits of the User Data Collector tag Automatic data capture: extracts user information directly from forms and page elements without custom coding. Improved tracking accuracy: ensures user data is consistently available for analytics and advertising tags. Flexible data handling: push data to the dataLayer or store it in Session or Local Storage for later use. Event-based collection: automatically triggers data extraction on form submissions or selected user interactions. Customizable setup: limit scanning scope, choose specific data fields, and control override behavior for maximum flexibility. Useful links [User Data Collector tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/user-data-extractor-web-tag) [How to use User Data Collector tag](https://stape.io/helpdesk/documentation/user-data-collector-tag) --- # Firestore Request Delay tag Source: https://stape.io/solutions/firestore-request-delay-tag The Firestore Request Delay tag in Google Tag Manager server container controls event timing by delaying, storing, or replaying events with Firebase Firestore. [Firestore Request Delay tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-request-delay-tag) lets you control the timing of event processing in Google Tag Manager (sGTM) by delaying, replaying, or storing events in Firebase Firestore. Delay event firing: if you need to delay sending an event for a specific period, for example, to wait for other user actions or to comply with backend processing times. Replay events: useful in cases where certain events need to be replayed, such as debugging or re-sending information to third-party systems when there’s a failure. Store data for later: helps in scenarios where you want to store data and then process it at a later time, such as for campaign analytics, error recovery, or session restoration. Try for free (https://stape.io/sign-up) Useful links [Firestore Request Delay tag on Github](https://github.com/stape-io/firestore-request-delay-tag) [Firestore Request Delay tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/firestore-request-delay-tag) [Step-by-step guide on how to configure Firestore Request Delay tag](https://stape.io/blog/firestore-request-delay-tag-for-google-tag-manager-server-container) --- # User Data Extractor variable Source: https://stape.io/solutions/user-data-extractor-variable User Data Extractor Variable for sGTM pulls personal info like emails and phone numbers from server-side events, enhancing marketing and tracking. User Data Extractor variable allows you to extract specific pieces of personal user information from incoming events on a server-side tag, such as email addresses, phone numbers, names, or addresses. This can be highly useful for marketing and tracking purposes when trying to enrich event data and improve targeting and attribution. Try for free (https://stape.io/sign-up) Useful links [User Data Extractor variable on GitHub](https://github.com/stape-io/user-data-extractor-variable) [User Data Extractor variable in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/user-data-extractor-variable) [Step-by-step guide on how to set up the User Data Extractor variable.](https://stape.io/blog/user-data-extractor-variable-for-google-tag-manager-server-container) --- # Facebook Leads API tag Source: https://stape.io/solutions/facebook-leads-api-tag Find out what Facebook Leads API tag is and how you can benefit from it. Bonus: check the useful links section to install the tag in a few simple steps. Facebook Leads API tag will be a helpful solution for those looking for a way to directly integrate Facebook's advertising services with a company's CRM system. Using this template, you will reduce manual data entry and bring the process of lead collection and organizing data about them to the next level since it will be done automatically. The Facebook Leads API tag can help you optimize lead response time and improve marketing campaign tracking. The setup process is quick and easy - it takes just 8 easy steps to complete! Try for free (https://stape.io/sign-up) Useful links 1. [How to set up Facebook Leads API](https://stape.io/blog/facebook-leads-tag-for-server-gtm#how-to-set-up-facebook-leads-tag). 2. [Facebook Leads API tag on GitHub](https://github.com/stape-io/facebook-leads-tag). 3. [Facebook Leads API tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-leads-tag). --- # Pub/Sub Publish tag Source: https://stape.io/solutions/pub-sub-publish-tag Explore the benefits of the Pub/Sub Publish tag in server GTM, allowing you to send purchase data to Google Cloud for analytics and workflow automation. Integrate Google Tag Manager with Google Cloud using the Pub/Sub Publish tag to enable efficient event tracking and cloud data processing. If you're tracking events such as purchases or sign-ups, you might want to send this data to Google Cloud for additional processing, analysis, or integration with other systems. With Pub/Sub, you can direct these events to Google Cloud services like BigQuery for analytics or to a Google Cloud Function for customized processing. Try for free (https://stape.io/sign-up) Useful links [Pub/Sub Publish tag on GitHub](https://github.com/stape-io/pub-sub-publish-tag) [Pub/Sub Publish tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/pub-sub-publish-tag) [Step-by-step guide on how to set up Pub/Sub Publish tag](https://stape.io/blog/pub-sub-publish-tag-for-google-tag-manager-server-container) --- # Bloomreach tag Source: https://stape.io/solutions/bloomreach-tag Bloomreach tag is a powerful solution for building a complex data-tracking infrastructure for the Bloomreach website in a web GTM container. Google Tag Manager is one of the most handy and popular tag management systems; setting up basic data tracking and collection is pretty straightforward with the help of GTM. However, if you need some complex data-tracking infrastructure for your Bloomreach website, you will like the Bloomreach tag created by Stape. Bloomreach tag has the following features that will bring your data tracking to the next level: Initialise Exponea - Exponea allows you to collect and manage customer data from multiple sources. The Bloomreach tag helps you track sessions, page visits, GA Cookies, and set up the use server GTM. Track Event - set up tracking of the standard events, enhanced ecommerce events, or custom events. Advanced settings - Update Customer Attributes, Indentify Customer - for profound tracking users’ data. Also, you can use the Bloomreach tag as part of the server-side setup for your Bloomreach website. The tag is created for technically advanced customers. The Bloomreach platform is challenging itself, but with knowledge of the templates' underlying code, you can build complex and detailed data-tracking infrastructure. Try for free (https://stape.io/sign-up) Useful links 1. [Bloomreach tag on GiHub](https://github.com/stape-io/exponea-web-tag?tab=readme-ov-file) (for web GTM container). 2. [How to configure Bloomreach tag for web GTM container](https://stape.io/blog/server-side-tracking-for-bloomreach#configure-tag-for-the-web-container). 3. [Bloomreach client solution](https://stape.io/solutions/bloomreach-client). 4. [Bloomreach client on GitHub](https://github.com/stape-io/exponea-client?tab=readme-ov-file) (for server GTM container). --- # Math variable Source: https://stape.io/solutions/math-variable The Math Variable lets you perform basic math (e.g., add, subtract, multiply, divide) directly in a server-side container. Math Variable is a custom variable that allows you to perform basic mathematical operations, such as multiplication, division, addition, and subtraction, directly in their server-side container setups. Ad spend calculations: easily calculate the POAS by finding the ratio of revenue to ad spend. Conversion adjustments: adjust conversion values using factors or percentages. Custom metrics: create new analytics metrics by combining or multiplying data values. Try for free (https://stape.io/sign-up) Useful links [Math variable on GitHub](https://github.com/stape-io/math-variable) [Math variable on the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/math-variable) [Step-by-step guide on how to configure Math variable in server GTM](https://stape.io/blog/math-variable-for-google-tag-manager-server-container) --- # Bloomreach client Source: https://stape.io/solutions/bloomreach-client Boost Bloomreach eCommerce data accuracy with server-side GTM. Configure advanced tracking for personalized experiences via Bloomreach client & web tag. Setting up tracking on a server-side GTM container has many benefits for your Bloomreach website. Among them: higher data accuracy (as server-side tracking helps bypass ad blockers) and enhanced security (visitor data is more protected by distributing it in a server-side environment). You can configure server-side tracking by using the Bloomreach client (for server GTM container) combined with the Bloomreach tag (for web GTM container). The setup process for Bloomreach is more challenging than that of other platforms. However, if you are a technically advanced GTM user who understands the underlying code of the templates, you will be able to set up complex data collection for the server GTM container. Try for free (https://stape.io/sign-up) Useful links 1. [Bloomreach client on GitHub](https://github.com/stape-io/exponea-client?tab=readme-ov-file) (for server GTM container). 2. [How to set up server-side tracking for Bloomreach](https://stape.io/blog/server-side-tracking-for-bloomreach#how-to-set-up-server-side-tracking-for-bloomreach). 3. [Bloomreach tag on GiHub](https://github.com/stape-io/exponea-web-tag?tab=readme-ov-file) (for web GTM container). 4. [Bloomreach tag solution](https://stape.io/solutions/bloomreach-tag). --- # Consent Parser variable Source: https://stape.io/solutions/consent-parser-variable Learn about the Consent Parser settings, decode Consent Mode v2 strings on your server, ensure privacy compliance, and accurately respect user privacy choices. The [Consent Parser variable](https://github.com/stape-io/consent-parser-variable), developed by Stape, helps you decode and understand the complex consent strings used in [Google Consent Mode v2](https://stape.io/blog/google-consent-mode-v2-prepare-for-the-year-2024). By translating these encoded signals on your server, you can ensure that your tracking tags accurately reflect user choices in real time. This variable performs one essential action: Consent Decoding. It automatically captures the “gcd” parameter from incoming web requests or event data and decodes it into a clear, readable format that other tags in your server container can understand. Try for free (https://stape.io/sign-up) Benefits of the Consent Parser variable Stay compliant with ease. Consent Parser variable makes sure that your website follows privacy laws like GDPR and CCPA by letting you collect only the data users have actually agreed to share. Simpler tag control. Easily manage which server-side tags, like analytics or ads, are allowed to fire based on the user's current consent preferences. Build user trust. Respect your visitors' privacy choices while still gathering important data when consent is granted, showing your users that you take their preferences seriously. Useful links: [Consent Parser variable in the Community Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/consent-parser-variable). [How to install the Consent Parser variable](https://stape.io/blog/consent-parser-variable-for-google-tag-manager-server-container#how-to-install-consent-parser-variable). --- # Klaviyo Lookup variable Source: https://stape.io/solutions/klaviyo-lookup-variable Learn how to use the Klaviyo Lookup variable in your GTM server container to effortlessly extract user data from Klaviyo. Klaviyo Lookup variable checks for the 'kx' cookie in the user's browser, which links to their Klaviyo profile. If found, it makes an API call to retrieve user data such as email, phone number, and names. This enriched data can then be used in server-side tags to enhance targeting and user profile alignment across marketing platforms, improving cross-channel personalization and coordination of marketing efforts. Try for free (https://stape.io/sign-up) Useful links: [Klaviyo Lookup variable on GitHub](https://github.com/stape-io/klaviyo-lookup-variable) [Step-by-step guide on how to set up Klaviyo Lookup variable](https://stape.io/blog/klaviyo-lookup-variable-for-google-tag-manager-server-container) [Integrate Klaviyo with your website using Google Tag Manager Server container](https://stape.io/solutions/server-side-klaviyo-tag) --- # Wix app Source: https://stape.io/solutions/wix-app Conversion Tracking app for Wix developed by Stape helps set up server-side tracking on the Wix website. Find out more about the benefits of the app for Wix on our solution page. Wix is a popular cloud-based platform for creating websites without needing advanced technical skills. It provides a drag-and-drop editor, a wide range of customizable templates, and tools for creating blogs, online stores, portfolios, and more. Given its widespread use and the added benefits of server-side tagging, we decided to create the [Stape's Conversion Tracking app for Wix websites](https://www.wix.com/app-market/stape-server-gtm) to empower users. ![Stape's Conversion Tracking app for Wix websites ](https://cdn.stape.io/i/69257e0337ca4826524067.png) Try for free (https://www.wix.com/app-market/stape-server-gtm) Overview of Stape's Conversion Tracking app for Wix Add web Google Tag Manager script automatically. Integrate server Google Tag Manager container, configure [custom domain](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container) and [Custom Loader](https://stape.io/solutions/custom-gtm-loader) for sGTM. Enrich data layer with e-commerce events and user data. Send webhooks to server Google Tag Manager container. The app is available at no cost and its features are designed to improve tracking accuracy by extending how long cookies last, keeping browser tracking working despite tracking blockers, and sending data reliably to advertising and marketing platforms through the server. Useful links [Stape's Conversion Tracking app for Wix](https://www.wix.com/app-market/stape-server-gtm) [How to set up Stape's Conversion Tracking app for Wix](https://stape.io/blog/wix-app-for-server-google-tag-manager) [How to use pre-built GTM container templates for Stape's Conversion Tracking app for Wix](https://stape.io/blog/how-to-use-pre-built-gtm-container-templates-for-wix)https://stape.io/blog/wix-app-for-server-google-tag-manager --- # Phone Number Formatter variable Source: https://stape.io/solutions/phone-number-variable Learn how to standardize phone numbers in your Google Tag Manager setup with the Phone Number Formatter variable. You might collect phone numbers in various formats from different sources (e.g., user input on a website, CRM data, etc.). To ensure data consistency and compatibility with external services that require a specific phone number format (like E.164), you can use Phone Number Formatter variable to standardize the phone numbers before processing or sending them out. Try for free (https://stape.io/sign-up) Useful links [Phone Number Formatter variable for web GTM container on GitHub](https://github.com/stape-io/phone-number-formatter-web-variable) [Phone Number Formatter variable for web GTM container on the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/phone-number-formatter-web-variable) [Phone Number Formatter variable for server GTM container on GitHub](https://github.com/stape-io/phone-number-formatter-variable) [Phone Number Formatter variable for server GTM container on the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/phone-number-formatter-variable) [Step-by-step guide on how to add Phone Number Formatter variable to your container](https://stape.io/blog/phone-number-formatter-variable-for-google-tag-manager-container) --- # PrestaShop module Source: https://stape.io/solutions/prestashop-module Set up server-side tracking on a PrestaShop website with the Stape PrestaShop module. Find out more about the module’s benefits on our solution page. PrestaShop is a popular platform for creating an ecommerce website. It is very flexible and offers a high level of customization. Users can choose themes and modules that enable them to tailor the design and functionality of online stores. If you are looking for a handy solution to track online store performance on server-side Google Tag Manager, you will like Stape’s [PrestaShop module](https://addons.prestashop.com/en/analytics-statistics/95017-stape-server-gtm.html). For a decent price, it offers multiple benefits that allow you to take data analytics to the next level. ![image](https://cdn.stape.io/i/6706952ec8bf8878299244.png) Check it out (https://addons.prestashop.com/en/analytics-statistics/95017-stape-server-gtm.html) Originally designed for server-side GTM, the module also makes it easier to add GTM snippets for web GTM - that will be added to website pages automatically. By using the PrestaShop module for server-side tracking, you'll unlock a range of benefits that will enhance your online store data collection: Prolong cookies’ lifetime. Once you add [Cookie Keeper](https://stape.io/solutions/cookie-keeper) free power-up (available for Stape users), you can bypass browser restrictions (such as Safari ITP) and prolongcookies’ lifetime. Enrich the dataLayer. While configuring the module, you can add event or user data parameters to the report, enriching the data you get. Send webhooks to the server GTM. Seamlessly track offline conversions, such as purchase and/or refund events. Useful links [Google Tag Manager Prestashop module free](https://stape.io/blog/prestashop-module-for-server-google-tag-manager). --- # Microsoft Advertising Connection Source: https://stape.io/solutions/microsoft-advertising-connection Check out the benefits of Microsoft Advertising Connection in the Stape admin account and find out how to connect it in a few minutes. Microsoft Advertising Connection is the solution that allows Stape to handle your oAuth tokens for the Microsoft platform. With its help, Microsoft authentication is fully managed on the Stape side, which significantly eases the process of setting the [Microsoft Ads Offline Conversion tag](https://stape.io/solutions/microsoft-ads-offline-conversion-tag). Additionally, with Microsoft Advertising Connection, there is no longer a need to create an app in Azure. You can find the Microsoft Advertising Connection in the “Connections” tab of your Stape admin account. Click “Sign in” for Microsoft Advertising and use a Microsoft account with access to the Microsoft Ads account for which you want to configure the Bing Ads Offline conversion tag. ![image](https://cdn.stape.io/i/6900b7c037059495994364.png) Try for free (https://stape.io/sign-up) Useful links 1. [Microsoft Ads Offline Conversion tag step-by-step guide](https://stape.io/blog/microsoft-ads-bing-offline-conversion-tracking). 2. [Microsoft Ads Offline Conversion tag on GitHub](https://github.com/stape-io/microsoft-ads-offline-conversion-tag). 3. [Microsoft Ads Offline Conversion tag in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/microsoft-ads-offline-conversion-tag) --- # Google Sheets Connection Source: https://stape.io/solutions/google-sheets-connection Learn about the advantages of Google Sheets Connection in the Stape admin account and how to connect it in a few minutes. Google Sheets Connection is a handy solution for writing data from server GTM to Google Sheets. After connecting Stape’s feature, all the oAuth tokens will be handled on our side. So, in your configuration process, you will be able to skip the steps of Google Sheets Authentication and create a Firebase account. You can find the Google Sheets Connection in your Stape admin account's “Connections” tab. Click “Sign in” for Google Sheets and use your Google account. ![image](https://cdn.stape.io/i/6900b7920353e178109844.png) Try for free (https://stape.io/sign-up) Useful links [How to set up Google Sheets tag](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets) [Google Sheets tag on GitHub](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets) [Google Sheets tag in Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/spreadsheet-tag) --- # Google Ads Connection Source: https://stape.io/solutions/google-ads-connection Find out a new feature developed by Stape - Google Ads Connection. See how you can benefit from it and how to implement it to ease server-side tracking setup. Google Ads Connection, developed by Stape, is an easy-to-use feature that simplifies the setting up of [Google Ads offline conversions tag](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm). With the help of Google Ads Connection, the oAuth tokens will be processed on our side. So, your configuration process will include only connecting this feature and setting up a tag according to your needs. You can find the Google Ads Connection in your Stape admin account's “Connections” tab. Click “Sign in” for Google Ads and use your Google account that has access to the Google Ads account you do the setup for. ![image](https://cdn.stape.io/i/6900b772cfaf1491392356.png) Try for free (https://stape.io/sign-up) Useful links [How to set up Google Ads offline conversions tag](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm) [Google Ads offline conversions tag on GitHub](https://github.com/stape-io/gads-offline-conversion-tag) [Google Ads offline conversions tag in Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/gads-offline-conversion-tag) --- # GoHighLevel tag Source: https://stape.io/solutions/gohighlevel-tag Build GTM integration for GoHighLevel CRM using Stape’s server-side tag to improve tracking accuracy, control data and unlock server-side benefits. The GoHighLevel tag developed by Stape allows GTM integration with this popular CRM and enables server GTM communication with the GoHighLevel API. So far, you can create new contacts with the help of this tag, but in the future, another feature will be added - tracking events. Since the tag works on the server-side GTM, you can immediately take advantage of its benefits: Precise data - bypass ad blockers and browser restrictions to ensure reliable data collection. High data security & control - maintain complete control over your collected data. Make the website load faster - since tags run on the server instead of users’ browsers, page load times are significantly reduced. Try for free (https://stape.io/sign-up) Useful links [GoHighLevel tag on GitHub](https://github.com/stape-io/gohighlevel-tag) [GoHighLevel tag in the GTM template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/gohighlevel-tag) [How to set up GoHighLevel tag](https://stape.io/blog/gohighlevel-gtm-tag-setup) --- # Admitad tag Source: https://stape.io/solutions/admitad-tag Integrate Admitad with GTM using Stape’s Admitad tag. Track conversions accurately, improve data security, and boost performance with server-side tracking. Admitad is a global affiliate marketing network which connects advertisers with publishers to promote products and services in exchange for commissions. The platform became popular for anyone who wants to monetize traffic or run marketing campaigns. Stape has developed the Admitad tag to allow GTM integration to be set up. With its help you can configure tracking conversions. The tag works on server GTM providing numerous benefits: Accurate data collection - collect reliable data overcoming ad blockers and browser restrictions. Data security and control – get complete control over your collected data and comply more easily with data regulations. Improved website performance - offloading tag running on the client side to the server will significantly reduce page load time. Try for free (https://stape.io/sign-up) Useful links [Admitad tag on GitHub](https://github.com/stape-io/admitad-tag). [Admitad tag in the GTM template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/admitad-tag). [How to set up Admitad tag](https://stape.io/blog/admitad-gtm-tag-setup). --- # Salla app Source: https://stape.io/solutions/salla-app Set up server-side tracking on a Salla website using Stape’s Conversion Tracking app. Check out more about the app’s benefits. Stape’s Conversion Tracking app for Salla is an effective solution to track Salla store performance on the server GTM. It offers a range of features designed to upgrade your data tracking. → [Go to the Salla marketplace](https://apps.salla.sa/en/app/1927252358) ![Stape Conversion Tracking app in Salla marketplace](https://cdn.stape.io/i/691335bc57f42859666656.png) While the app is primarily built for server-side GTM, it also simplifies the implementation of web GTM snippets by automatically injecting them into your website pages. By using the Conversion Tracking app for server-side tracking, you get benefits that improve your data tracking process: Extend cookie lifespan. With the free Cookie Keeper power-up (exclusive to Stape users), you can bypass browser limitations like Safari’s ITP and extend cookie duration. Enrich the dataLayer. During setup, you can include ecommerce events and user data parameters, providing deeper insights. Send webhooks to the server GTM. Effortlessly track offline events, such as purchases or refunds, by sending webhooks directly to your server container. Try for free (https://stape.io/sign-up) Useful links: [How to set up the Stape Conversion Tracking app for Salla](https://stape.io/helpdesk/documentation/how-to-set-up-salla-app-for-sgtm) [How to set up Meta CAPI for Salla via the server GTM](https://stape.io/blog/meta-capi-for-salla-via-server-gtm) --- # Stape GTM Helper Chrome Extension Source: https://stape.io/solutions/stape-gtm-helper Stape GTM Helper is a free Chrome extension designed to make GTM debugging easier. Quickly navigate fired tags, identify failed ones, focus on specific tags, and more. A free Chrome extension designed for agencies and Google Tag Manager experts. It transforms GTM's preview mode into a clear, structured view of tags, network requests, and consent data. The extension will be helpful for debugging both client-side and server-side GTM container setups. Try for free (https://chromewebstore.google.com/detail/stape-gtm-helper/ipjcocdbbjgkailaejllpnmeliblbimn) How to access the Stape Chrome extension To start using the extension, just add it to Chrome from the Chrome Web Store and activate it during debugging via GTM, or use it to estimate the tracking setup effectiveness on the website with the Scanner feature. To use the extension, you don't need registration or an active Stape subscription. ![Stape GTM Helper in Chrome web store](https://cdn.stape.io/i/69e9efdbf0c74387783105.png) How it works When you run Google Tag Manager Preview Mode or use the Tag Assistant window. The Stape extension improves debugging experience by visually highlighting GTM entities (clients, tags, triggers, and variables). This makes navigation significantly easier and helps you quickly identify what is firing and what failed. You can enable or disable individual functionalities from the browser interface. For example, you can turn on tag highlighting for better visibility or activate JSON formatting to make data layers and event payloads easier to read. In addition to debugging, the extension can also be used to evaluate the effectiveness of a website's tracking setup. By clicking the Scan me button within the extension, you can generate a report that analyzes the current implementation. After the scan is complete, selecting View detailed report provides actionable insights. ![GTM Preview Mode with Stape's extension](https://cdn.stape.io/i/69e9f05531467062336106.png) GTM Preview Mode with Stape's extension Benefits of the Stape GTM Helper Filter to focus only on relevant tracking entities. While debugging tracking setups, you want to focus only on the tags or entities you are currently testing. The entities filter feature allows you to filter the preview so that only selected tags or entities are shown. It helps resolve issues faster by narrowing down relevant data. Make JSON readable for faster debugging. The feature automatically formats incoming and outgoing JSON into a structured and readable layout, improving clarity of complex data structures. This reduces cognitive load and speeds up request debugging. Get a structured view of URL parameters. The Request URL Formatter converts query parameters into structured tables or JSON views, so the request data becomes easier to interpret. This improves accuracy in debugging configuration and reduces misinterpretation of parameters. Instantly recognize the tag sources with color coding. When you work with multiple tracking tags from different platforms, you may need to quickly identify the source of each tag. The "Tag Type Coloring" feature adds color coding and platform logos such as Meta, GA4, Google Ads, and Microsoft. This improves speed and accuracy in tag identification. Get immediate visibility of failed entities. The Tag Status Coloring feature highlights successful and failed requests (including 4xx and 5xx errors) using color indicators. The feature improves error detection speed and debugging efficiency. See consent status while debugging sGTM setup. By default, you can't view the consent status in sGTM. The feature allows you to check whether consent is granted or denied directly in the server GTM preview. This simplifies compliance verification and improves debugging of consent-related behavior. Debug Shopify checkout tracking without limitations. Due to the sandbox on the checkout page in Shopify, you can struggle with troubleshooting this part of the setup. The extension's feature bypasses Shopify's limitations. You get full visibility into checkout tracking implementations for easy and complete troubleshooting. Edit bulk GTM entities in one action. The Bulk GTM Container Entities Selection feature allows you to select and modify multiple entities in a single action. This reduces manual effort and speeds up container management. Get the website tracking health report. The Scanner feature analyzes the website and generates a report covering both web and server-side tracking. With this feature, you can quickly identify gaps and improve tracking quality. You also get detailed step-by-step instructions on how to fix tracking issues. Add to Chrome — free for everyone No sign-up, no lengthy setup. Just install and start debugging right away. Try for free (https://chromewebstore.google.com/detail/stape-gtm-helper/ipjcocdbbjgkailaejllpnmeliblbimn) Useful link [Chrome extension GTM Helper by Stape: key features and use cases](https://stape.io/blog/stape-chrome-extension) --- # Google Analytics MCP Server Source: https://stape.io/solutions/mcp-server-ga4 Run an MCP server that connects your AI app and Google Analytics 4. Analyze reports from your GA4 account, without opening the dashboard. Google Analytics 4 (GA4) MCP Server lets your AI application communicate directly with GA4, allowing the AI app to query dimensions and metrics, run commands, and return reports via the MCP Protocol. This solution, developed by Stape, turns your AI client (like Claude) into a tool for analytics and administrative tasks. Try for free (https://stape.io/sign-up) Benefits of the MCP Server for GA4 The GA4 MCP server supports nearly all GA4 reporting and administrative operations, including: Reporting. Run GA4 reports to access historical and segmented data, including metrics such as conversion rates and traffic source performance. Real-time analytics. Retrieve views of user activity and event data to identify operational issues and trends. Account management. Generating summaries detailing all accessible GA4 properties. Retrieve property notes. Fetch annotations associated with specific dates within a GA4 property. Useful links [How to configure the MCP Server for Google Analytics 4](https://stape.io/blog/mcp-server-for-google-analytics) [MCP Server GA4 on GitHub](https://github.com/stape-io/google-analytics-mcp) --- # Nextdoor CAPI tag Source: https://stape.io/solutions/nextdoor-capi-tag Check the Nextdoor CAPI tag and see the benefits of the tag for ad campaign tracking. The Nextdoor Conversions API tag provides insights into your Nextdoor advertising campaigns. The tag allows for more precise data, which is not affected by ad blockers and browser restrictions since setting up the tag requires configuring server-side tracking. In addition, you will get higher control over the data you track, allowing easier compliance with data regulations. The tag configuration process is quick and smooth; it supports all Nextdoor Pixel's parameters, and you can set up additional custom parameters for tracking. Try for free (https://stape.io/sign-up) Useful links [Nextdoor CAPI tag on GitHub](https://github.com/stape-io/nextdoor-tag?tab=readme-ov-file) [Nextdoor CAPI tag in template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/nextdoor-tag). [How to set up Nextdoor CAPI tag.](https://stape.io/blog/nextdoor-server-side-tracking) --- # Quora CAPI tag Source: https://stape.io/solutions/quora-capi-tag Find out the Quora CAPI tag developed by Stape and set up Quora integration with server GTM. The Quora conversions API tag developed by Stape for server GTM will help you gain deep insights into Quora marketing campaigns. With accurate data, you will be able to optimize the campaigns to target the right audience. An additional perk of using the Quora conversions tag and server-side tracking is higher control over data since the data is processed on your server. Quora conversions API supports the same events as Quora pixel and allows setting event deduplication to remove reductant events. Try for free (https://stape.io/sign-up) Useful links [Quora CAPI tag in server GTM template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/quora-tag). [Quora CAPI tag on GitHub](https://github.com/stape-io/quora-tag?tab=readme-ov-file). [How to set up Quora CAPI tag](https://stape.io/blog/set-up-quora-tag-using-server-gtm). --- # Affiliate Future tag Source: https://stape.io/solutions/affiliate-future-tag Learn the Affiliate Future Server tag setting, get control over conversion data, and simplify your postbacks. The Affiliate Future tag, developed by the Stape team, helps you track sales for the Affiliate Future partner network. This tag supports two primary actions: Page View. Captures the Affiliate Future Click ID from the URL and saves it as a cookie for later use. Conversion. Sends a server-to-server request (postback) with conversion data to Affiliate Future. Try for free (https://stape.io/sign-up) Benefits of Affiliate Future tag Maximum sales reliability. The Server-to-Server (S2S) method for sending conversion data directly to Affiliate Future prevents ad blockers and browser limits from hiding your sales. Extended attribution time. You can customize the cookie's lifespan, so your partner link remains valid for longer, even with strict browser limits. Full data control and compliance. You control exactly which sale details are sent through settings for managing user consent and advanced reporting fields like Product Tracking and Payout Codes. Useful links: [Affiliate Future API tag in the Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/affiliate-future-server-tag) [How to set up the Affiliate Future API tag](https://stape.io/helpdesk/documentation/affiliate-future-tag). --- # ShareASale tag Source: https://stape.io/solutions/shareasale-tag Try ShareASale tag for the server GTM container for accurate data tracking and enhanced control over the data collection. The ShareASale tag is an easy-to-set-up solution developed by Stape that will allow you to improve data tracking on this platform. The configuration of a tag requires setting up server-side tracking via GTM. After configuring, you will enjoy the following benefits: Precise data tracking, which is not affected by ad blockers and browser extensions; High control over the data you collect and high data security; Faster website load, as all the tags are run on the server instead of users’ browsers. Server-side tracking provides advanced data tracking compared to ShareASale tracking pixel. Try for free (https://stape.io/sign-up) Useful links [ShareASale tag on GitHub](https://github.com/stape-io/shareasale-tag). [ShareASale tag in template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/shareasale-tag). [How to set up a ShareASale tag](https://stape.io/blog/shareasale-gtm-tag-setup). --- # Google Ads Conversion Adjustments tag Source: https://stape.io/solutions/google-ads-conversion-adjustments-tag Check how Google Ads Conversion Adjustments tag developed by Stape can help you track data more precisely and its use cases. The Google Ads Conversion Adjustments tag is a handy option if you run Google Ads campaigns and would like to adjust the conversion data after the initial conversion. For example, the order was canceled or returned after the conversion was recorded. With the help of Stape’s tag, you can modify the conversion data later using the Google Ads API. This tag enables you to adjust the conversion value and/or count for a specific Google Ads conversion action. Try for free (https://stape.io/sign-up) Useful links [Google Ads Conversion Adjustments tag on GitHub](https://github.com/stape-io/gads-conversion-adjustments-tag). [Google Ads Conversion Adjustments tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/gads-conversion-adjustments-tag). [How to set up Google Ads Conversion Adjustments tag](https://stape.io/blog/google-ads-conversion-adjustment). --- # PipeDrive tag Source: https://stape.io/solutions/pipedrive-tag Try PipeDrive tag for the server GTM container and track data accurately, gain control over the data collection, and unlock even more benefits. The PipeDrive tag allows communicating with the PipeDrive API. The tag, developed by Stape, requires setting up a server GTM container, which provides the following benefits: Accurate data tracking. The data is not affected by ad blockers and browser extensions; High control over the data collected and high data security; Faster website load - all the tags run on the server instead of users’ browsers. Tag lets you track new leads and contacts; the tag is pretty flexible in its configurations, and with its help, you can set custom fields to track the specific data about leads and/or contacts. Try for free (https://stape.io/sign-up) Useful links [PipdeDrive tag on GitHub](https://github.com/stape-io/pipedrive-tag). [PipeDrive tag in GTM template gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/pipedrive-tag). [How to set up PipeDrive tag](https://stape.io/blog/pipedrive-gtm-tag-setup). --- # Yelp CAPI tag Source: https://stape.io/solutions/yelp-capi-tag Check the Yelp CAPI ta, which will help you set up server-side tracking. Track data more precisely and securely with Stape’s tag. The Yelp Сonversions API tag developed by Stape for server GTM is a handy option if you want to gain more insights into Yelp marketing campaigns. Thanks to server-side tracking, Yelp tag provides the following benefits: More precise data tracking that is not affected by ad blockers and browser extensions; Higher control over the data, which allows you easier comply with data regulations; Faster website load, as you won’t need to run numerous tags on the client-side. Yelp Conversions API supports the same events as Yelp pixel and allows setting custom events tracking. Besides, with the help of a tag, you set up event deduplication. Try for free (https://stape.io/sign-up) Useful links [Yelp CAPI tag on GitHub](https://github.com/stape-io/yelp-tag). [Yelp CAPI tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/yelp-tag). [How to set up Yelp CAPI tag](https://stape.io/blog/yelp-gtm-tag-setup). --- # Effinity tag Source: https://stape.io/solutions/effinity-tag Learn about the Effinity tag settings, move your affiliate tracking to a secure server environment, protect data integrity, and bypass modern browser restrictions. The Effinity tag, developed by the Stape team, helps you track sales and leads for the Effinity partner network. By moving your affiliate tracking from the user's browser to a secure server environment, you know that every conversion is correctly attributed, regardless of browser restrictions. This tag supports 2 primary actions: Page View. Automatically captures tracking parameters from the URL and saves them in a first-party cookie for later use. Conversion. Sends a secure server-to-server request with detailed conversion data directly to Effinity. Try for free (https://stape.io/sign-up) Benefits of Effinity tag Maximum sales reliability. The server-to-server method bypasses ad blockers and intelligent tracking prevention that often hide sales in traditional browser tracking. Extended attribution window. Affect the amount of time for attributing events to a specific affiliate partner - customize how long a visitor is "remembered" (30 days or else). For example, if a user clicks an affiliate link and completes a purchase 30 days later, the conversion is still credited to the partner who brought them to your site. Full data control and compliance. Manage exactly what data is shared with Effinity through built-in consent settings. The tag supports advanced reporting via auto-mapping, which pulls order values, currencies, and product details from your event data. Precision auditing. With integrated BigQuery and console logging, you can monitor every request and response in real-time to ensure your affiliate pipeline is performing at its peak. Useful links: [Effinity tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/effinity-tag). [How to set up the Effinity tag](https://stape.io/helpdesk/documentation/effinity-tag). --- # Customer.io tag Source: https://stape.io/solutions/customer-io-tag Boost tracking accuracy with Customer.io tag by Stape. Send events directly from server-side GTM to bypass ad blockers and browser restrictions. The Customer.io tag, developed by the Stape team, helps you send user data and events directly to your Customer.io account. By using a server-side connection, you can manage user profiles and track interactions without relying on the customer's browser. This tag supports 5 primary actions: Track Event. Sends custom or standard events, like purchases or sign-ups. Identify User. Updates user profiles with new traits and information. Track Page. Records when users visit a specific page. Screen View. Records when users visit a specific app screen. Add User to Group. Assigns users to specific teams or organizations. Try for free (https://stape.io/sign-up) Benefits of Customer.io tag Reliable data delivery. Sending data from your server prevents loss caused by ad blockers or privacy settings. Your marketing automation always has the latest info. Better privacy control. You decide exactly what data reaches Customer.io. Built-in features let you redact IP addresses and easily manage user consent. Automatic user tracking. The tag can automatically handle anonymous IDs and enrich events with technical details like device type and location. Global compliance. You can choose US or EU server regions to match your account settings and stay compliant with local data laws. Useful links: [Customer.io tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/customer-tag). [How to set up the Customer.io tag](https://stape.io/helpdesk/documentation/customer-io-tag). --- # Salesforce tag Source: https://stape.io/solutions/salesforce-tag Give the Salesforce tag for the server GTM container a try and start tracking data precisely, take control of data collection, and unlock even more advantages. The Salesforce tag allows seamless communication with the Salesforce API. This tag requires a server GTM container setup, offering several key benefits: Precise data tracking - ad blockers and browser extensions won't affect the data you collect. Data control and security - gain complete control over collected data and provide high data security. Improved website performance - tags run on the server rather than users’ browsers, reducing page load times. The tag allows you to track lead events, and in the future, we are going to add the ability to create new contacts! Try for free (https://stape.io/sign-up) Useful links [Salesforce tag on GitHub](https://github.com/stape-io/salesforce-tag). [Salesforce tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/salesforce-tag). [How to set up Salesforce tag](https://stape.io/blog/salesforce-gtm-tag-setup). --- # Adtraction tag Source: https://stape.io/solutions/adtraction-tag Find out how Stape’s tag will help you create smooth Adtraction integration with your website. Adtraction is a popular platform that offers a wide range of partner marketing services, such as affiliate marketing and performance-based marketing. Integration Adtraction with your website will be beneficial and allow for creating a unified system for complex data tracking. To integrate, pay attention to Stape’s tag. Adtraction tag setup is fast and smooth. After the configuration, you can start tracking page views and/or conversions. The tag works on the server GTM container, so you can benefit from the list of benefits from server-side tracking, such as improved data quality, high data control, and faster website load. Try for free (https://stape.io/sign-up) Useful links [Adtraction tag on GitHub](https://github.com/stape-io/adtraction-tag). [Attraction tag in Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/adtraction-tag). [How to set up Adtraction tag](https://stape.io/blog/adtraction-server-side-tracking). --- # Sendlane tag Source: https://stape.io/solutions/sendlane-tag Check the benefits that Stape's Sendlane tag offers for server GTM and start building integration with the Sendlane platform. Sendlane became a robust email and SMS marketing automation platform, driving many users to seek seamless integrations with their websites to enhance data tracking and analysis. Sendlane tag for server GTM, developed by Stape, allows integration between your website and Sendlane's platform. The tag is a handy solution for efficiently adding new contacts to the lists, tracking user events, and sending crucial customer data directly to Sendlane's API. As the tag works on the server GTM container, you will benefit from improved data security, higher data control, and more accurate data recorded. Try for free (https://stape.io/sign-up) Useful links [Sendlane tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/sendlane-tag). [How to set up a Sendlane tag](https://stape.io/blog/sendlane-server-side-tracking). --- # Query Replacer variable Source: https://stape.io/solutions/query-replacer-variable Find out how the Query Replacer variable can help avoid the removal of UTM parameters in the URL. Query Replacer variable, developed by Stape, allows parameters to be replaced in the URL location. Designed for server-side GTM containers, this variable fills a gap in Google Tag Manager, which doesn’t have a built-in solution for replacing parameters. The variable will be helpful if you need to replace UTM parameters in the URL. Since ad blockers and browser restrictions can remove UTM parameters from URLs, this variable allows you to mask and preserve them, ensuring accurate tracking. Try for free (https://stape.io/sign-up) Useful links [Query Replacer variable on GitHub](https://github.com/stape-io/query-replacer-variable). [Query Replacer variable in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/query-replacer-variable). [How to avoid UTM parameters removal](https://stape.io/blog/avoid-utm-parameter-removal). --- # JSON Converter variable Source: https://stape.io/solutions/json-converter-variable Discover JSON Converter variable by Stape. Easily configure it to stringify or parse data for smooth integration with Google Tag Manager. The JSON converter created by Stape is a variable for the server GTM container. Since JSON is natively compatible with JavaScript, it seamlessly integrates with server GTM. The variable will help achieve better compatibility with GTM by converting data to JSON. Besides, it can convert data from JSON to other formats to meet your needs. The configuration process is straightforward. You will need to choose the needed action: Stringify - convert data to string. Parse - parse string to JSON format. And specify the format of the value that will be output by this variable. Try for free (https://stape.io/sign-up) Useful links [JSON Converter variable in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/json-converter-variable). --- # AdRoll tag Source: https://stape.io/solutions/adroll-tag Discover how the AdRoll tag by Stape will help you integrate AdRoll with your website. Start tracking standard events and set up custom ones with our tag. The AdRoll platform provides marketing services for its clients that aim to optimize marketing strategy across different channels. If you use AdRoll for business needs, you would want to integrate the platform with your website. Such an integration will let you track data more effectively using only GTM. Check out Stape’s AdRoll tag that provides seamless integration and allows you track standard events such as pageviews, adding to cart, purchases and setting up the custom events to meet your needs. In addition, you can configure the receiving server, app/device data, and/or custom data parameters along with the event. As the tag works on the server GTM container, you will benefit from precise data tracking, high data control, and faster page load! Try for free (https://stape.io/sign-up) Useful links [AdRoll tag in Tag Manager Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/adroll-tag). [How to set up the AdRoll tag](https://stape.io/blog/adroll-server-side-tracking). --- # Facebook Pixel tag Source: https://stape.io/solutions/facebook-pixel-tag Start benefiting from Facebook Pixel and GTM integration using Stape’s Facebook Pixel tag. Enjoy convenient setup and easy configuration in just a few simple steps. Stape created the Facebook Pixel tag for the web GTM container. That handy solution allows you to configure Facebook Pixel and GTM integration. Stape’s tag offers two options: Inherit data from DataLayer is a hassle-free option that automatically extracts data from the DataLayer, parses, and maps event information. Override the data to set up sending standard or custom events. Try for free (https://stape.io/sign-up) Benefits of Facebook Pixel tag by Stape 1. GA4 data layer support. Stape’s Facebook Pixel tag fully supports the GA4 data layer. It automatically reads key parameters, such as event_name and items, directly from the data layer, without requiring manual data extraction. Stape’s tag can parse both GA4 and EEC formats, whereas Meta’s tag requires custom code to pull GA4 data and pass it to the Pixel. 2. Event Pushing with Unique IDs. Stape’s Meta Pixel tag allows you to push new events to the data layer with a unique event ID. This is especially useful in advanced GTM setups involving trigger groups or tag sequencing, where unique event IDs may resolve inconsistently even for tags firing on the same event. By pushing a new event name with a consistent, unique event ID, you ensure all tags reference the same identifier. 3. Local Storage and cross-session Reuse. With the Enable Event Enhancement option, Stape’s tag can store user data in Local Storage (available only when Advanced Matching is enabled). This ensures that stored user information, such as unique IDs or other identifying details, persists across sessions. The data is automatically included in every event payload sent to Meta, improving Event Match Quality and enabling accurate multi-session tracking. You can choose to store either plain or pre-hashed data locally. Additionally, you can use a standard user-provided data variable to populate user data parameters within the tag. 4. GTM Consent Mode compatibility. Stape’s tag can adjust its behavior based on user consent preferences communicated through your consent management platform (CMP), ensuring compliance with GTM’s Consent Mode. Useful links [Facebook Pixel tag by Stape in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/fb-tag). [How to set up the Facebook Pixel tag](https://stape.io/blog/add-facebook-pixel-gtm). --- # MCP Server for GTM Source: https://stape.io/solutions/mcp-server-for-gtm Check out the benefits of configuring the MCP Server for GTM and find the links to the detailed setup guide. The MCP Server creates a seamless coordination between AI models and platforms. For the users, this means smooth command execution and easy access to data without the need to write API requests manually. At Stape, we've developed the MCP Server specifically for Google Tag Manager, making it easier to manage and execute necessary actions directly within the platform. The MCP Server supports a wide range of GTM-related commands, including: Accounts, workspaces, containers, and environments creation, modification, and deletion. Clients, tags, triggers, variables, folders, and templates management. Handling user permission management. Try for free (https://stape.io/sign-up) Useful links [GTM MCP Server on GitHub](https://github.com/stape-io/google-tag-manager-mcp-server). [How to set up the MCP Server for GTM](https://stape.io/blog/mcp-server-for-google-tag-manager). --- # Stape MCP Server Source: https://stape.io/solutions/stape-mcp-server Explore the advantages of setting up Stape MCP Server and simplifying the management of your sGTM containers on Stape. With the Model Context Protocol (MCP) Server for Stape, you can more easily manage your sGTM containers on Stape, with no coding skills required. Simply describe what you want to do, and the MCP Server takes care of it. The Stape MCP Server allows users to list, create, or delete containers and container zones by typing natural language commands into the AI app, instead of manually writing API requests. Try for free (https://stape.io/sign-up) Useful links [Stape MCP Server on GitHub](https://github.com/stape-io/stape-mcp-server). [How to set up the Stape MCP Server](https://stape.io/blog/stape-mcp-server-configuration). --- # Spotify Conversions API tag Source: https://stape.io/solutions/spotify-conversions-api-tag Set up Spotify Conversions API for precise data tracking using the Spotify tag developed by Stape. Spotify Tag for server GTM container allows users to set up integration between Spotify and Google Tag Manager on the server side. With the help of Stape’s tag, you can track conversion data more precisely, minimizing the impact of ad blockers and browser restrictions. The tag includes automatic mapping of event names and formatting of parameters, simplifying the process of sending Spotify events. Benefits Improved data accuracy. Server-side tracking reduces issues commonly faced with client-side tracking, such as ad blockers and browser privacy restrictions, resulting in more precise data. Better website performance. The tracking scripts are loaded on the server instead of users’ browsers, which allows for loading website pages faster, delivering a smoother customer experience. Simplified privacy compliance. Switching to server-side tracking provides higher control over the data collection process, making it easier to comply with data regulations requirements such as GDPR and CCPA. Useful links: [Spotify Conversions API tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/spotify-tag) [How to set up the Spotify Conversions API tag](https://stape.io/helpdesk/documentation/spotify-tag) --- # Tradedoubler tag Source: https://stape.io/solutions/tradedoubler-tag Learn about the Tradedoubler tag, its benefits, how to configure it, what setup requirements there are, and how to test your tracking setup. The [Tradedoubler tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/tradedoubler-tag) for the server GTM container enables direct integration between your sGTM setup and [Tradedoubler](https://www.tradedoubler.com/)’s affiliate tracking system. With this tag, you can send key events such as page views, user identifiers, and conversions via server-to-server (S2S) tracking. It also supports Product-Level Tracking (PLT) for sending detailed purchase information. The tag simplifies setup with built-in options for Click ID persistence, hashed user data, and flexible conversion parameters, helping you maintain a robust and reliable affiliate tracking setup. Try for free (https://stape.io/sign-up) Benefits Reliable conversion tracking. Server-side tracking is more resistant to browser restrictions and ad blockers, ensuring accurate reporting. Click ID persistence. Automatically stores and reuses Tradedoubler click identifiers in server cookies, keeping attribution intact. Improved match rates. Support for hashed user identifiers (such as email, user ID, device ID) allows for better user-based attribution. Detailed reporting. With PLT enabled, you can send product-level data for more granular conversion insights. Useful links: [Tradedoubler tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/tradedoubler-tag) [How to set up the Tradedoubler tag](https://stape.io/helpdesk/documentation/tradedoubler-tag) --- # Awin Conversion API tag Source: https://stape.io/solutions/awin-conversion-api-tag Learn about the Awin Conversion API tag, its benefits, how to configure it, what setup requirements there are, and how to test your tracking setup. [Awin](https://success.awin.com/) is an affiliate marketing network that links publishers with advertisers, helping you earn commissions by promoting brands, products, and services you trust. The [Awin Conversion API tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/awin-conversion-api-tag) is designed to make affiliate conversion tracking more accurate, reliable, and privacy-friendly. Instead of relying only on browser-based scripts, it sends conversion data directly from your server to Awin. It also captures important details like click IDs and traffic sources. This ensures that your sales are recorded correctly even when cookies or ad blockers get in the way, and keeps your reports consistent and your partnerships fairly rewarded. Try for free (https://stape.io/sign-up) Benefits More reliable tracking. Keeps conversion data accurate, even if cookies are blocked or removed. Better data accuracy. Tracks conversions directly from your server, reducing the risk of data loss caused by cookies or browser limitations. Privacy-first setup. Works with consent-aware tracking for GDPR and CCPA compliance. Improved affiliate insights. Gives marketers and analysts cleaner, more dependable data for decision-making. Useful links [Awin Conversion API tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/awin-conversion-api-tag) [Documentation on how to set up the Awin Conversion API tag](https://stape.io/helpdesk/documentation/awin-conversion-api-tag) --- # Stape Conversion Tracking Klaviyo app Source: https://stape.io/solutions/stape-conversion-tracking-klaviyo-app Find out how to integrate Klaviyo with server-side tracking solutions to send profiles' statuses, optimize ad campaigns, and track offline conversions. The Stape Conversion Tracking Klaviyo app connects Klaviyo with marketing and advertising platforms that support server-side tracking. It tracks customer activity and lifecycle changes inside Klaviyo and sends conversion events to your CAPI Gateway, server GTM container, or Signals Gateway. Then, these events are forwarded to the platforms you need. Try for free (https://marketplace.klaviyo.com/en-us/apps/01jvvwp56xj2439aaw4zhsa1q4/) How to access the Stape Conversion Tracking app for Klaviyo You can install the app directly from the marketplace by following the [Klaviyo app link](https://marketplace.klaviyo.com/en-us/apps/01jvvwp56xj2439aaw4zhsa1q4/). The app is built to avoid manual reporting and make CRM conversion tracking from Klaviyo accurate, automated, and easy to maintain. ![Stape Conversion Tracking Klaviyo app](https://cdn.stape.io/i/6a4232946b193228232162.png) How it works The app monitors profile statuses inside Klaviyo. When a profile reaches a status stage or meets specific conditions, the system automatically generates a conversion event. These events are sent through your selected setup (server GTM container, Meta Conversions API Gateway, or Signals Gateway) and then forwarded to ad platforms such as Meta Ads, Google Ads, or any other platform that supports server-side tracking. Depending on your configuration, you can route data to one or multiple destinations at the same time. Once configured, the app sends conversion data without any manual uploads required from your side. Benefits of the Stape Conversion Tracking app for Klaviyo Automatically sync conversion and engagement signals. When customers interact with your emails (such as clicking a link or unsubscribing), those events are reflected in Klaviyo and automatically shared with your connected ad platforms. No need for manual CSV uploads. Improve campaign performance with higher-quality data. By providing ad platforms with enriched CRM data, they can better identify users who are most likely to convert and optimize targeting accordingly. Send Klaviyo data to multiple destinations. After connecting the app to a server GTM container or Stape infrastructure, you can send conversion data across multiple platforms and tracking endpoints. Ready to improve your tracking? Install the Stape Conversion Tracking app for Klaviyo to turn your email and customer data into conversion signals that improve ad performance and campaign optimization. Try for free (https://marketplace.klaviyo.com/en-us/apps/01jvvwp56xj2439aaw4zhsa1q4/) Useful links [Stape Conversion Tracking app on the Klaviyo marketplace](https://marketplace.klaviyo.com/en-us/apps/01jvvwp56xj2439aaw4zhsa1q4/) [How to configure the Stape Conversion Tracking app for Klaviyo](https://stape.io/helpdesk/documentation/klaviyo-stape-conversion-tracking-app) --- # POAS Data Feed Source: https://stape.io/solutions/poas-data-feed POAS Data Feed tracks profit on ad spend in a server GTM, so you can send actual profit instead of revenue to analytics and ad platforms. POAS Data Feed is a power-up that helps you track Profit on ad spend (POAS). After you enable it, you can send profit or margin values to analytics and ad platforms instead of only revenue. This helps you evaluate campaign performance based on profit and helps ad platforms optimize toward products with higher profitability. Get started now (https://stape.io/sign-up) How to access POAS Data Feed POAS Data Feed is available on Stape Pro plans and higher. You can find it in the Power-Ups tab in your Stape account. ![POAS Data Feed](https://cdn.stape.io/i/69d50b66943df313613574.png) How POAS Data Feed works POAS Data Feed keeps product cost and profitability data in Stape’s secure storage. When a purchase event reaches your server Google Tag Manager container, it takes the product ID from the event and finds the same product in your catalog. Then it uses the fixed costs or percentages you set to calculate the final profit and sends that number to the platform you use. If you enable auto sync, POAS Data Feed updates this data from your feed on a daily or weekly schedule. This means you can manage product cost data in one place and keep it ready for use in tracking. https://www.youtube.com/watch?v=6qO-O_M8a2E Benefits of POAS Data Feed Report profit instead of only revenue. ROAS shows revenue compared with ad spend, but it does not include product costs, discounts, shipping, or other transaction-related costs. POAS gives a more useful picture because it focuses on profitability after all expenses are taken into account. Easier product value updates. Margin values are stored in a product catalog, which can be managed in any external tool, and then connected to POAS Data Feed. With the auto sync function, the power-up refreshes these values when changes are made in the catalog. Keep product profitability data connected to product IDs. POAS Data Feed is built to match each product ID with its cost value inside your server Google Tag Manager setup to calculate the profit and send that number to your platforms. Use profit data across ad platforms. POAS Data Feed can be used with Google Ads, Meta, TikTok, and other advertising platforms. This helps ad platforms optimize campaigns toward products that sell with higher profit. Protect product data during tracking. Profit values never appear in the browser, data layer, or network requests. All calculations happen server-side. Start using profit-based reporting If you want to measure more than revenue, POAS Data Feed helps you send profit values so you can evaluate campaign performance using the final amount after expenses. Get started now (https://stape.io/sign-up) Useful links [How to set up the POAS Data Feed power-up](https://stape.io/helpdesk/documentation/poas-data-feed-power-up) [Profit on Ad Spend: why it matters and how to set it up via Stape](https://stape.io/blog/profit-on-ad-spend-why-it-matters-and-how-to-set-it-up-via-stape-store)https://stape.io/blog/profit-on-ad-spend-why-it-matters-and-how-to-set-it-up-via-stape-store [Profit tracking with sGTM and Stape Store: a complete guide](https://stape.io/blog/profit-tracking-sgtm-stape-store) --- # Amazon Conversions API tag Source: https://stape.io/solutions/amazon-conversions-api-tag Find out what the Amazon Conversions API tag is and its benefits. Get links to how-to guides for smooth Amazon server-side tracking implementation. The Amazon Conversions API (CAPI) tag, developed by the Stape team, allows you to send conversion events directly from your server to Amazon’s servers. It supports the same event types and parameters as the Amazon Ad Tag, Amazon’s client-side tracking solution. Additionally, the Stape’s tag supports multiple event types, advanced user identity enrichment, regional consent frameworks, and provides detailed logging to both the Console and BigQuery. Try for free (https://tagmanager.google.com/gallery/#/owners/stape-io/templates/amazon-tag) Benefits More accurate conversion tracking. Server-side tracking reduces data loss caused by ad blockers and browser restrictions. Reliable data for campaign optimization. Proper data tracking and targeting allow advertisers to collect more info on user behavior, making Amazon’s advertising algorithms more efficient. High privacy. Unlike client-side tracking, server-side tracking lets you fully control what data is shared with each network, ensuring only the information defined in your server requests is transmitted. Useful links: [Amazon Conversions API tag in the GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/amazon-tag) [Documentation on how to set up the Amazon Conversions API tag](https://stape.io/blog/amazon-server-side-tracking-conversions-api) --- # Piano Analytics Client Source: https://stape.io/solutions/piano-analytics-client Improve data privacy and tracking accuracy. Learn how the Piano Analytics Client for GTM processes events and secures Visitor IDs. The Piano Analytics Client processes incoming requests formatted in the Piano Analytics schema. It transforms web and app tracking data into a structure compatible with tags running on the server GTM. It's created to integrate with the [Piano Analytics tag by Stape](https://stape.io/blog/piano-analytics-server-side-tracking-guide#server-side-tracking-solutions-for-piano-analytics). Features of Piano Analytics Client Reliable event processing. The Client accepts GET or POST requests, converts Piano Analytics events into a GTM server-compatible format, and processes each event independently for accurate tracking. Data consistency and privacy. It rewrites client-side Piano cookies and stores the Visitor ID in HTTP-only, server-side cookies, respecting user consent requirements. SDK Hosting (Web Only) hosting. Optionally hosts the piano-analytics.js SDK on your server with 12-hour caching, automatic refresh, and origin allowlisting for secure distribution. Try for free (https://github.com/stape-io/piano-client) Useful links: [Piano Analytics Client on GitHub](https://github.com/stape-io/piano-client) [How to configure Piano Analytics server-side tracking](https://stape.io/blog/piano-analytics-server-side-tracking-guide#server-side-tracking-solutions-for-piano-analytics) --- # RevContent tag Source: https://stape.io/solutions/revcontent-tag Enhance RevContent tracking with Stape’s server-side GTM tag. Send reliable S2S postbacks, reduce data loss, and bypass browser limits and ad blockers. [RevContent](https://www.revcontent.com/) is a native advertising platform that allows displaying content recommendations as ads. The platform offers targeting capabilities, including behavioral, geographic, and interest-based targeting, allowing advertisers to reach specific audiences. RevContent also provides tracking and analytics tools to measure the effectiveness of these campaigns. With the help of Stape’s [RevContent Tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/revcontent-tag) for GTM server-side, you can track conversion data more precisely, minimizing the impact of ad blockers and browser restrictions. It operates by sending postback conversion data directly to RevContent’s API. The tag supports tracking two types of events: Page View and Conversion. Try for free (https://stape.io/sign-up) Benefits Reliable conversion tracking. Server-to-server calls bypass client-side blockers and limitations. Improved data privacy. Allows you to redact or override user IP and user agent. Faster response times. The Optimistic Scenario option allows faster tag execution by skipping API wait. Useful links [RevContent tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/revcontent-tag) [How to set up the Awin Conversion API tag](https://stape.io/helpdesk/documentation/revcontent-tag) --- # Piano Analytics tag Source: https://stape.io/solutions/piano-analytics-tag Improve site performance and tracking accuracy with the Piano Analytics GTM server-side tag. Auto-map GA4 events and take full control of your server-side data. The Piano Analytics Tag for the server GTM container allows you to send events from your server container to Piano Analytics’ server. It supports both Piano Analytics and GA4 schemas, automatically mapping event names and formatting parameters as needed. The tag is created to be used along with the [Piano Analytics Client](https://stape.io/solutions/piano-analytics-client). Benefits of using the Piano Analytics tag Improved data accuracy. Switching to the server-side tracking allows you reduce the impact of ad blockers and browser restrictions. In this way, you can receive a more complete event capture. Better site performance. Offloading tracking scripts from the client reduces browser workload, speeds up page loads, and creates a smoother experience for visitors. Easier privacy compliance. Sending data directly from your server to Piano Analytics gives you higher control over what data is collected and how it’s processed. Try for free (https://tagmanager.google.com/gallery/#/owners/stape-io/templates/piano-tag) Useful links: [Piano Analytics tag by Stape in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/piano-tag) [How to configure Piano Analytics server-side tracking](https://stape.io/blog/piano-analytics-server-side-tracking-guide#server-side-tracking-solutions-for-piano-analytics)https://tagmanager.google.com/gallery/#/owners/stape-io/templates/logger-tag --- # Logger tag Source: https://stape.io/solutions/logger-tag Track and debug requests sent to your server container with Logger tag. Log event data, request details, and custom information to Stape, GCP, BigQuery, etc. The Logger tag for server-side Google Tag Manager (sGTM) helps track and debug requests sent to your server container. It allows you to log event data, request details, and custom information to Stape, GCP, BigQuery, or other cloud platform logs. This tag also allows logging of POST request bodies, which are not included in logs for GCP or Stape by default. With the Logger tag, you can: Log all Event Data. Log the Request URL. Log the Request Body. Parse Request Body as JSON. Add Custom Information. Choose a logging destination: Console, BigQuery, or Stape Store. Try for free (https://tagmanager.google.com/gallery/#/owners/stape-io/templates/logger-tag) Useful links: [Logger tag by Stape in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/logger-tag) [How to configure Logger tag](https://stape.io/helpdesk/documentation/how-to-configure-logger-tag) --- # Google Customer Reviews tag Source: https://stape.io/solutions/google-customer-reviews-tag Learn about the Google Customer Reviews tag settings – automate post-purchase feedback, gather verified ratings, boost credibility in Google Shopping. The Google Customer Reviews tag from Stape helps you display Google's opt-in survey banner to customers when they finish checkout. By integrating this tag into your Google Tag Manager web container, you can automatically capture high-quality feedback without manual code changes or complex scripts. This tag supports 2 primary actions: Survey Opt-in Display. Triggers the Google survey banner on your thank-you page, inviting customers to share their shopping experience while it’s still fresh in their minds. Product Review Collection. Captures specific product identifiers (GTINs) to gather detailed feedback on individual items. It helps you build a stronger reputation for your catalog. Try for free (https://stape.io/sign-up) Benefits of the Google Customer Reviews tag Valuable feedback collection. Up-to-date user feedback is key to improving your products and services. This tag makes it easier to get more reviews by showing the survey naturally as the final step of the customer journey. Credibility boost. Verified Google reviews increase transparency and build customer trust. Positive ratings and reviews displayed in Google Search and Google Shopping ads improve your brand’s reputation and influence purchases. Streamlined automation. Easily configure when the opt-in banner appears via GTM. Make sure the survey is delivered consistently, saving you time and reducing the risk of errors. Customizable UX. Take full control of the customer journey by adjusting the banner position and display language. In this case, the survey feels like a native part of your website, wherever your customers are located. Precision auditing. With integrated BigQuery and console logging, you can monitor every request and response in real-time to make sure your feedback pipeline is performing at its peak. Useful links: [Google Customer Reviews tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-customer-reviews-tag). [How to set up the Google Customer Reviews tag](https://stape.io/helpdesk/documentation/google-customer-reviews-tag). --- # Meta Connection Source: https://stape.io/solutions/meta-connection Send first-party data to Meta automatically, boost audience match rates, and save hours on manual CSV uploads. The Meta Connection is a solution that automates data flow between your sGTM container and Meta Custom Audiences. It is designed to work with the Meta Custom Audiences tag by Stape. Sync your audiences effortlessly and stop relying on static CSV lists! Try for free (https://stape.io/sign-up) To get started, [log in to your Stape account](https://stape.io/login), open your container, navigate to the Connections tab, and click Sign in next to Meta using an account with the appropriate Ads permissions. ℹ️ Available to all Stape users with a Pro plan or higher. ![Sign in Meta Connection](https://cdn.stape.io/i/698f399544f5e273252905.png) How it works Once connected, Meta Connection automatically syncs your first-party data from your Stape container to Meta Ads in real time. No CSV uploads or manual steps are needed - data is sent or removed instantly, keeping your audiences up-to-date. Benefits of Meta Connection Eliminate manual work with CSV files. Automate data sending to your Meta Custom Audiences. Ensurethat data is sent or removed instantly, providing an automated synchronization and freeing up hours of manual work, which could be spent on formatting and uploading CSV files. Keep your Meta Custom Audiences up-to-date. With real-time syncing between your Stape container and Meta Ads accounts, your audiences show the latest user data. This ensures your ads are targeting the right users, improving campaign performance. Improve Audience Match Rate. By using the Meta Connection to send first-party data directly from the server, you reduce the impact of browser limitations and ad blockers that often impact user identifiers. Using precise user IDs results in a higher Audience Match Rate within Meta Ads. Use a simple, no-code setup. Instead of hiring a developer to build a custom API integration, you can sign in to Meta directly through the Stape interface. This OAuth connection allows you to reduce the time and money spent on processing the automation. Ready to scale your retargeting? Sign in to your Meta Connection in the Stape admin panel now - it’s free and takes less than five minutes! Useful links: [Meta Custom Audiences guide: how to create and automate](https://stape.io/blog/facebook-custom-audiences). [Meta Customer Match tag by Stape](https://stape.io/solutions/meta-custom-audience-tag). [Meta/Facebook Custom Audiences by Stape in the GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/meta-custom-audiences-tag). --- # Meta Custom Audiences tag Source: https://stape.io/solutions/meta-custom-audience-tag Automatically add or remove users from Meta Custom Audiences using Stape’s server-side tag. Improve match rates, scale faster, and stay privacy-compliant. The Stape team has developed the Meta Custom Audiences tag, which automates the adding or removal of users from your Meta audiences based on real-time site events. The tag communicates directly with the Meta API, ensuring your lists stay accurate without relying on manual uploads. Add this tag to your server container to start optimizing your reach in Meta! Try for free (https://stape.io/sign-up) How it works The tag collects user identifiers from your website or app and securely transmits them to Meta Ads. It can update, add, or remove users from your custom audiences in real-time, ensuring your marketing campaigns target the right people at the right time. ![Tag config](https://cdn.stape.io/i/69cb95b40a5fb428786398.png) Benefits of the Meta Custom Audiences tag Easily manage Meta Custom Audiences. Add or remove users from specific or all audiences automatically to save time and reduce manual work in audience management. Increase Audience Match Rate. By sending first-party data directly from your server, you can bypass browser restrictions and ad blockers that can interfere with user identifiers. This ensures more accurate user IDs and a higher Audience Match Rate in Meta Ads. Send large batches of audience data efficiently. Upload up to 10,000 users per request to Meta audiences so you can scale marketing campaigns quickly without system bottlenecks. Secure user data during transmission. Automatically hash user identifiers with SHA256 if they aren’t pre-hashed, so you can protect personally identifiable information and stay compliant with privacy regulations. Start automating your Meta audiences - configure Stape’s tag! Useful links: [Meta/Facebook Custom Audiences by Stape in the GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/meta-custom-audiences-tag). [Meta Custom Audiences guide: how to create and automate](https://stape.io/blog/facebook-custom-audiences). [Meta Connection by Stape](https://stape.io/solutions/meta-connection). --- # Google Data Manager API Conversion Events tag Source: https://stape.io/solutions/google-data-manager-api-conversion-events-tag Find out the benefits of the Google Data Manager API Conversion Events tag and how it can send conversion data to Google’s ad platforms. With the Google Data Manager API Conversion Events tag, you can send conversion data directly to Google’s advertising platforms (such as Google Ads) through the Data Manager API. It supports transmitting one or many conversion events in a single request. The tag includes tools for handling user data, consent signals, advertising identifiers, and custom parameters. Benefits of using the Google Data Manager API Conversion Events tag Accurate click attribution. The tag supports all key ad identifiers (including gclid, gbraid, and wbraid) along with the landing-page user agent and IP address, ensuring precise attribution for ad clicks. Data enrichment. It allows you to send data sets such as conversion details (value, currency, transaction ID), user information (email, address, phone), device data, user properties (e.g., customer type), and rich eCommerce cart information (items, merchant ID). Batch processing. With the Multiple Conversion Events mode, you can upload a preformatted JSON array containing up to 2,000 conversions in a single request, making it ideal for high-volume websites or bulk data processing. Reliable data tracking. By sending data server-to-server, the tag delivers more accurate conversion measurement and minimizes the effects of client-side restrictions like ad blockers and browser privacy features such as Apple’s Intelligent Tracking Prevention (ITP). Useful links: [How to configure the Google Data Manager API Conversion Events tag](https://stape.io/helpdesk/documentation/configure-google-conversion-events-tag#how-to-configure-the-google-conversion-events-tag-by-stape) [Google Data Manager API Conversion Events tag in Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-conversion-events-tag) [Track Google Ads Conversions using Data Manager API](https://stape.io/blog/google-ads-conversions-tracking-with-data-manager-api) [Google Data Manager API Connection](https://stape.io/solutions/data-manager-api-connection) --- # Enricher power-up Source: https://stape.io/solutions/enricher-power-up Identify users across sessions, enhance attribution accuracy, and improve event match quality by enriching requests with the Enricher power-up. Enricher is a Stape power-up that stores data from incoming requests and uses it to enrich future requests with missing or incomplete information. It helps you get a more complete user profile, improve event data match quality score, and link user actions between devices or with offline data sources. Try now (https://stape.io/sign-up) How to activate Enricher power-up Enricher power-up is available on the Business plan or higher. You can access and activate the power-up directly within your Stape container. Navigate to the Power-ups section → next to Enricher, click Use. ![Power-ups section](https://cdn.stape.io/i/6a3915e8e6e73203698477.png) How it works Enricher automatically saves selected datapoints (first-, last-names, address, email, etc.) from incoming requests. When a new request comes in with missing fields, Enricher checks its stored dataset and fills in the gaps using previously collected data. This process happens in the background and requires minimal configuration. https://www.youtube.com/watch?v=x-pF805KUp4 Benefits of Enricher power-up See a complete user journey by storing and reusing previously collected data. Enricher automatically eliminates data gaps by enriching events with historical information. It results in more complete, consistent event data and a clearer view of the customer journey. Improve event match quality across platforms. When your goal is to increase match rates for platforms like Meta or Google, Enricher power-up enriches incoming events with known user identifiers, even if they are missing in the current request. As a result, you get better identity matching and improved attribution accuracy. These factors impact the data match quality score. Improve the attribution of online activities to offline sales. Enricher connects online interactions with offline conversions by filling in missing user data and linking fragmented touchpoints. This helps you understand which digital actions actually drive in-store or CRM-recorded sales. Get more accurate cross-device tracking. The power-up unifies user activity across devices by enriching requests with known identifiers. This allows you to recognize the same user on mobile, desktop, and tablet. Ready to improve your data quality? Improve your data quality and get better insights with Enricher. Activate it in just a few clicks and start building a complete user journey without gaps! Try now (https://stape.io/sign-up) Useful links [How to configure Enricher power-up](https://stape.io/helpdesk/documentation/enricher-power-up) --- # Odoo CMS app Source: https://stape.io/solutions/stape-conversion-tracking-odoo-app Find out the benefits of the Stape Conversion Tracking Odoo CMS app and how it can improve your data tracking. The Stape Conversion Tracking extension for Odoo makes it easy to integrate your Odoo website with Google Tag Manager and Stape’s server-side setup. It allows you to accurately track and send conversion data, including purchases, checkouts, and other key events. Try for free (https://apps.odoo.com/apps/modules/19.0/gtm_server_side) How to access Stape Conversion Tracking for Odoo You can find it on the Odoo Store by searching for “Stape Conversion Tracking” or by following the [link to Odoo directly](https://apps.odoo.com/apps/modules/19.0/gtm_server_side). ![Odoo Store](https://cdn.stape.io/i/6a0ef9763e902124064840.png) The app is created to minimize the complexity of manual setup and make server-side tracking implementation easier. How it works The app adds a tracking layer to your Odoo website that automatically captures key ecommerce events, such as product views, add-to-cart actions, checkout steps, and purchases. These events are then structured in a standardized format and sent to Google Tag Manager, as well as to Stape’s server-side GTM setup (if server-side tracking is configured). With a server-side approach, data is processed on the server side, and you receive better accuracy and more consistent tracking. Benefits of the Stape Conversion Tracking app for Odoo Simplify your Google Tag Manager setup without complex manual configuration. The app automatically sends ecommerce events to GTM and standardizes their structure. So you don’t need to manually configure data layers or tracking scripts. Implement server-side tracking without custom development. The app offers a ready-to-use integration with Stape’s server-side GTM hosting, so you don’t have to build or maintain your own tracking infrastructure. Recover more conversions and increase ROAS. The app sends key ecommerce events through a server-side tracking setup. This approach helps capture conversions that might be lost. As a result, you get more accurate data, improved campaign optimization, and higher return on ad spend. Build a more complete user journey with webhooks. The app allows you to send data via webhooks. In this way, you can incorporate backend and offline sources into your tracking. This results in a more comprehensive dataset for analysis and decision-making. Ready to improve your tracking? Install the Stape Conversion Tracking app for the Odoo website and send more reliable and precise ecommerce data! Try for free (https://apps.odoo.com/apps/modules/19.0/gtm_server_side) Useful links [How to track Odoo CMS conversions with Stape's app](https://stape.io/helpdesk/documentation/how-to-set-up-odoo-app-for-sgtm) --- # Event Generator tag Source: https://stape.io/solutions/event-generator-tag Discover the Event Generator tag settings – rename server events, add custom data parameters, and achieve cleaner tracking logic with advanced options. The Event Generator tag, developed by the Stape team, acts as a powerful data editor for your server-side container. It lets you catch events, add or fix details, and send a cleaner version to your marketing platforms. By moving this logic to the server, your tracking remains clean, and your external tags receive only properly formatted information. This tag supports 2 primary actions: Event Renaming. Generates a new version of an event with a custom name (e.g., changing client_order to purchase_enriched) so you can precisely fire specific tags. Data Merging. Adds extra parameters into your events – like User IDs, profit margins, or CRM data – by pulling from your server-side variables and merging them into the existing event data. Try for free (https://stape.io/sign-up) Benefits of the Event Generator tag Smart event enrichment. Ensure every downstream tag – whether for Google Ads, Meta, or TikTok – has access to the most complete information. The setup allows you to "fill in the blanks" for events that arrived from the web with missing details. Event standardizing. You don't need to manage dozens of different triggers for similar actions. Just use this tag to unify various web events – like buy_now or checkout_success - into a single, standardized event name. Safe re-triggering. Built-in safeguards let you re-run events safely within the same container execution. So, your data is ready for activation without accidentally breaking your tracking setup. High-efficiency processing. Use transformed data in other variables and triggers without creating additional network requests. It keeps your server container running at peak performance while your marketing tags fire with the exact data they need. Full pipeline visibility. With integrated BigQuery and console logging, you can monitor exactly how your events are being transformed in real-time. Your data pipeline is accurate, and your transformations are working exactly as intended. Useful links: [Event Generator tag in the Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/event-enricher-tag). [How to set up the Event Generator tag](https://stape.io/helpdesk/documentation/event-generator-tag). --- # Microsoft UET Conversion API tag Source: https://stape.io/solutions/microsoft-uet-conversion-api-tag Set up the Microsoft Ads server-side tracking for precise data tracking using the Microsoft UET Conversion API tag developed by Stape. The Microsoft UET Conversion API tag developed by the Stape team creates a smooth integration between Microsoft Ads and the server Google Tag Manager. This server-to-server setup ensures more accurate and reliable conversion tracking. The tag can automatically inherit and map events from a Google Analytics 4 (GA4) data stream. Key benefits Higher data accuracy - server-side tracking minimizes common issues with client-side methods, such as browser privacy restrictions and ad blockers, ensuring more reliable data. Better website performance - since tracking scripts run on the server rather than in users’ browsers, web pages load faster, creating a smoother customer experience. Simplified privacy compliance - server-side tracking gives you greater control over data handling, making it easier to meet regulatory requirements like GDPR and CCPA. Useful links: [Microsoft UET Conversion API tag in GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/microsoft-capi-tag) [Step-by-step guide on Microsoft Conversion API integration](https://stape.io/blog/guide-microsoft-conversion-api-integration) --- # Google Data Manager API Customer Match tag Source: https://stape.io/solutions/google-data-manager-api-customer-match-tag Check out the Google Data Manager API Customer Match tag – how it sends audience data to Google advertising products and builds Customer Match lists. With the Google Data Manager API Customer Match tag, you can send audience data to Google advertising platforms via the Data Manager API. With this tag, you can efficiently manage your Customer Match lists by adding or removing users. Benefits of the Google Data Manager API Customer Match tag Automated Customer List management. The tag allows you to create and update Customer Match lists in Google Ads/Display & Video 360 automatically. No need for repeated manual uploads of CSV files containing audience data. Improved ad targeting. By providing first-party data to Google Ads/Display & Video 360, the platform can analyze it and generate audience lists, helping you reach high-intent users more effectively. Detailed audience segmentation. Advertisers can use the tag to convert first-party customer data into precise audience segments, which can be included or excluded in campaign targeting. Useful links: [How to Configure Google Data Manager API Customer Match tag](https://stape.io/helpdesk/documentation/configure-google-customer-match-tag) [Google Data Manager API Customer Match tag in Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-customer-match-tag) [Set up automatic Google Customer Match Lists](https://stape.io/blog/customer-list-google-ads) [Google Data Manager API Connection](https://stape.io/solutions/data-manager-api-connection) --- # How to restore access to the Stape account Source: https://stape.io/helpdesk/knowledgebase/restore-account-access Section: Knowledgebase Learn how to restore access to your Stape account. Fix login issues with password recovery, 2FA, SSO, or passkeys, and get back into your account quickly. Forgot password If you forgot your password, visit the [login page](https://stape.io/login) and click Forgot password (you first need to enter your account email for the button to appear). You can also visit the [password recovery page](https://stape.io/forgot-password) directly. ![Forgot password](https://cdn.stape.io/i/69f8479318a12970725822.png) Two-Factor Authentication (2FA) issues If you enabled [2FA](https://stape.io/helpdesk/knowledgebase/how-to-enable-two-factor-authentication-2fa), you selected the device to use for authentication (through services like Google Authenticator) and were provided with backup codes. To restore account access: Open the authenticator app on the device you chose and use the randomly generated codes it provides to access the account. If you no longer have access to that device, use the backup codes to restore account access. Single Sign-On (SSO) issues If your company has enabled [SSO](https://stape.io/helpdesk/knowledgebase/single-sign-on), you will be required to log in to your Stape account using your corporate email. Instead of entering your Stape password, you will be redirected to your company account authorization. ![Continue with SSO](https://cdn.stape.io/i/69f847cec033f484656350.png) If your workspace moves away from SSO (e.g., Google SSO is disabled), your workspace administrator should provide you with new access rights. Passkey issues Stape supports Passkeys (WebAuthn) as a secure and passwordless way to sign in to your account. If you encounter issues with logging in via Passkey, you can choose an alternative login method. ![Log in with passkey](https://cdn.stape.io/i/69f84875b27ee336885665.png) Also, you can use a different device or browser, as Passkey is only set up for a specific browser. Other issues If you encounter other issues with accessing your account, or the methods above do not work for you (e.g., you’ve lost your 2FA backup codes, or lost access to Stape’s SSO admin space), please [submit a ticket](https://stape.io/helpdesk/submit-request) or reach us directly at [support@stape.io](mailto:support@stape.io). Our support team will be happy to help you regain access to your account. --- # Who is Stape for? Source: https://stape.io/helpdesk/knowledgebase/who-is-stape-for Section: Knowledgebase Stape helps improve data collection and analysis with accurate tracking, strong security, and campaign insights to boost ROI and marketing performance. For marketers Stape — is an all-in-one solution for server-tagging. The company helps marketers improve the quality of data and the effectiveness of their [marketing campaigns](https://stape.io/blog/digital-marketing-data-trends). The main advantage of Stape is server tracking, which allows marketers to bypass the limitations of browsers (for example, ad blockers) and get more accurate data about the interaction of users with advertising materials. [Server-based tracking](https://stape.io/blog/server-side-tagging-use-cases) with Stape does more than just collect conversion data. It transforms how marketers understand their campaigns. Capturing accurate information behind the scenes gives a clearer picture of what's actually working, rather than relying on partial or fragmented data. Marketers stop guessing and start knowing when they see the real customer journey. This means that ad budgets go toward what genuinely drives results instead of what merely looks good in incomplete reports. Stape simplifies server-side tracking for various platforms, including e-commerce ([Shopify](https://stape.io/blog/conversion-tracking-on-shopify-upsell-page-with-server-gtm), [WooCommerce](https://stape.io/blog/how-to-use-pre-built-woocommerce-gtm-templates-from-stape), [Magento](https://stape.io/blog/meta-capi-for-magento-via-server-gtm)), website builders ([WordPress](https://stape.io/blog/facebook-conversion-api-for-wordpress), Webflow, [Wix](https://stape.io/blog/wix-app-for-server-google-tag-manager)), and ad analytics ([Meta CAPI](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway-from-stape), [Google Ads](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm), [TikTok Events API](https://stape.io/tiktok-events-api-gateway)). It continuously introduces the latest updates, ensuring businesses get accurate, reliable data without complex setups. Stape provides marketers with the following benefits: Ability to customize server-side tracking without ad blockers or browser restrictions. Improved accuracy of conversion data collection. Easy to set up and update tags, triggers, and variables. Easy integration with other platforms for marketing campaigns. Increase the effectiveness of advertising campaigns and ROI. For tracking specialists Stape is not just another tracking tool — it's the helping hand that tracking specialists have been waiting for. Working with Google Tag Manager can feel like navigating a maze, but Stape cuts through that complexity, giving you a straightforward path to set up server tracking. Stape offers an intuitive design that allows users to set up a server in just a few minutes, saving them hours of configuration time. With Stape, users can forget about the ongoing need to maintain and update their server, making their workflow smoother and more efficient. Every tracking specialist knows the feeling of sinking when something breaks after deployment. [Stape's power-up features](https://stape.io/blog/understanding-stape-power-ups-key-features-uses) simplify the setup of various functions, such as data monitoring, allowing users to quickly identify and resolve issues. These tools streamline the process, making it easier to manage and track the performance of data in real-time, reducing stress and downtime. Stape provides tracking specialists with the following benefits: Easily configure server tracking without the need for complex technical settings. Intuitive interface for tracking management. Support for integrations with popular platforms. For developers Stape is a tool for developers that simplifies the configuration of [server-side tracking](https://stape.io/blog/server-side-tracking-tools). It takes the mind-numbing complexity out of server-side tracking setup, letting you get back to the code that actually matters. The platform allows users to quickly configure servers for [Google Tag Manager](https://stape.io/blog/what-are-clients-requests-transformations-tags-triggers-variables-server-gtm), making the tracking process much more efficient and accessible. Setting up Google Tag Manager servers used to be a day-long ordeal. Now? You can knock it out during your morning coffee. The platform strips away unnecessary complications, making tracking implementation feel refreshingly straightforward. Stape offers free, open-source integrations for seamless server-side tracking, giving users full control over their setup. It provides CMS plugins for platforms like [Shopify](https://stape.io/solutions/shopify-app)and [WordPress](https://stape.io/solutions/server-side-tracking-for-wordpress), CRM integrations with tools like [HubSpot](https://stape.io/blog/meta-capi-for-hubspot-crm-stape-app), and SDKs for mobile tracking on [iOS](https://stape.io/solutions/ios-sdk), [Android](https://stape.io/solutions/android-sdk), and more. Additionally, Stape now manages and enhances [GTM Tools](https://gtmtools.com/), ensuring easier and more secure Google Tag Manager configurations. Stape provides developers with the following benefits: Quickly configure servers for tracking without complex infrastructure settings. Support for flexible settings for different projects. Easily integrate tracking into any system. Time savings thanks to convenient customization tools. Intuitive documentation for customization. For business owners Business owners can use Stape to improve the collection and analysis of user behavior data on their platforms. Thanks to accurate server tracking, Stape allows you to get more precise data on conversions and the effectiveness of marketing campaigns. It enables business owners to better appreciate the ROI from advertising investments and make their campaigns more effective. When regulations and privacy requirements keep shifting, Stape remains a steady business foundation. The platform's robust security architecture means you're not just collecting data more efficiently — you're doing it responsibly, with confidentiality baked into every step of the process. For business owners, Stape offers something invaluable: confidence. Knowing that your customers' information remains shielded from prying eyes lets you focus on growth rather than risk management. With flexible customization options, business owners can streamline workflows and make more informed decisions based on accurate campaign performance data and user interactions. Stape provides business owners with the following benefits: Accurate conversion data and effectiveness of marketing campaigns. [Increase ROI](https://stape.io/blog/improve-google-ads-performance) from advertising investments. High level of data security and protection of personal information. Easy to configure and manage data. Convenience in making business decisions based on accurate data. Stape is compliant with [ISO 27001, HIPAA, SOC 2, and GDPR](https://stape.io/news/stape-has-iso-hipaa-gdpr-compliance), demonstrating its commitment to strict data security, privacy, and quality management standards. These certifications ensure it securely handles sensitive data, follows global best practices, and provides transparency and trust for businesses that prioritize data protection. Stape is suitable for companies of all sizes and industries, providing reliable hosting for server tracking. Its solutions are ideal for companies in healthcare, finance, banking, gambling, and casinos that require a high level of security and compliance with standards. Stape is also an excellent choice for small businesses, particularly online stores, blogs, and small sites that need an affordable and easy-to-use solution without complex technical settings. For large companies and the Enterprise sector, Stape offers scalable solutions that deliver high performance, stability, and security compliance. --- # Can I Use single sign-on (SSO)? Source: https://stape.io/helpdesk/knowledgebase/single-sign-on Section: Knowledgebase Learn how to log in to Stape’s services with your company email domain through Google Workspace or other providers. Secure and simplify logins with Stape’s SSO. Stape supports Single Sign-On (SSO), making it easier and safer for teams to access their accounts. With SSO, users can log in using their company email domain, eliminating the need to manage multiple usernames and passwords. Setup is simple: send a request for SSO and our managers will contact you shortly to complete the configuration. Once activated, all team members with the company domain can sign in through Google Workspace or another supported provider. Also, you can request to disable SSO at any time, and we’ll guide your team through a smooth transition back to Stape’s built-in login system. Availability SSO is available for all Stape accounts, regardless of plan type. This is a paid feature. You can request activation directly in your account settings. SSO is not available for accounts using general email domains like @gmail.com. Benefits of single sign-on Simplified access: no need to remember separate credentials, just log in with your existing company account. Stronger security: reduces the risks tied to weak or reused passwords, ensuring safer access to your data. Centralized management: IT teams can manage all user access from one system, saving time on onboarding and offboarding. Seamless experience: switching between tools and accounts becomes faster and more efficient. How to enable SSO 1. Log in to your [stape.io](https://stape.io/login) account. 2. Click on your account name in the top right corner → select Account settings. ![Select Account Settings](https://cdn.stape.io/i/68c7b61acd49b705139185.png) 3. In your account settings, open the Security tab and scroll down to the Single Sign-On (SSO) section. Click Request SSO. ![Click the Request SSO button](https://cdn.stape.io/i/68c7b64aaf067879228220.png) 4. Our team will contact you to gather the specifics about your request, create a custom plan tailored to your needs, and instruct you on the next steps. Supported authorization providers Stape’s SSO is powered by [Workos.com](http://workos.com), which ensures enterprise-grade reliability and wide compatibility. We support the following providers: Google SAML Okta SAML Microsoft Entra ID (Azure AD) SAML ADP OpenID Connect Auth0 SAML CAS SAML ClassLink SAML Cloudflare SAML CyberArk SAML Duo SAML Microsoft Entra ID OpenID Connect Google OpenID Connect JumpCloud SAML Keycloak SAML LastPass SAML Login.gov OpenID Connect Microsoft AD FS miniOrange SAML NetIQ SAML Okta OpenID Connect OneLogin Oracle PingFederate PingOne Rippling Shibboleth Generic SAML SimpleSAMLphp SAML VMware Workspace One --- # What is a webhook in server-side tracking? Source: https://stape.io/helpdesk/knowledgebase/what-is-a-webhook Section: Knowledgebase Learn what webhooks are in server-side tracking, how they work, and why they enable real-time, accurate, and automated event data delivery. Webhooks are lightweight, event-driven code snippets that enable real-time communication between applications. In the context of server-side tracking, webhooks provide a reliable way to send data from external systems (such as CRMs or CMSs) to server environments like Google Tag Manager (sGTM), allowing for more accurate and flexible event tracking. How do webhooks work? A webhook’s code typically consists of: Webhook URL: specifies the endpoint where your data should be delivered. Payload (body): contains the core information you want to transmit to the receiving application. Headers: provide metadata about the request, like the content format (commonly JSON or XML), to ensure the receiving system understands how to interpret the data. Request method: usually set to POST, though other HTTP methods like GET, PUT, or DELETE may be used depending on the type of action being performed. Webhooks operate on a simple principle: A predefined event occurs in a system, e.g., a new user registers or a purchase is made. The system sends an HTTP request, typically a POST, to a designated URL (webhook endpoint). This URL belongs to a webhook server that listens for such requests. Webhook endpoint processes the payload data to trigger appropriate actions like updating databases, firing tags, or sending data to analytics platforms. Benefits of webhooks Unlike APIs, which require constant polling to check for updates, webhooks push data as soon as an event happens. This push-based communication model makes webhooks ideal for server-side tracking, especially when tracking events outside the web browser, such as phone orders, offline sales, or CRM updates. Real-time event delivery: instantly receive data without delays. Reduced load: eliminate the need for continuous API polling. Automation: seamlessly trigger downstream processes, such as updating CRMs or sending offline conversions to ad platforms. Improved attribution: track conversions that originate offline or outside the browser. Security: server-side webhooks reduce reliance on client-side scripts, offering greater control over data flow. How to set up webhooks Specific webhook setup depends on your tracking configuration. If you want to learn more, see this article for an example of [how to set up webhooks for event tracking](https://stape.io/blog/webhook-server#how-to-set-up-webhooks-for-event-tracking). --- # What types of assistance and learning resources does Stape offer? Source: https://stape.io/helpdesk/knowledgebase/how-to-get-help-from-stape Section: Knowledgebase Discover all the ways to get help from Stape, including Stape Community, Helpdesk, Support, Stape Academy, Tracking Care, and Personal Manager. Stape strives to make server-side tracking simple, clear, and accessible for everyone. To that end, we provide various types of assistance and learning materials: [Stape Community](https://stape.io/helpdesk/knowledgebase/how-to-get-help-from-stape#stape-community) [Helpdesk](https://stape.io/helpdesk/knowledgebase/how-to-get-help-from-stape#helpdesk) [Support](https://stape.io/helpdesk/knowledgebase/how-to-get-help-from-stape#support) [Stape Academy](https://stape.io/helpdesk/knowledgebase/how-to-get-help-from-stape#stape-academy) [Stape Care](https://stape.io/helpdesk/knowledgebase/how-to-get-help-from-stape#stape-care) [Personal Manager](https://stape.io/helpdesk/knowledgebase/how-to-get-help-from-stape#personal-manager) Let’s take a look at each and see which of the ways to get help from Stape works best for you. Stape Community ![Stape Community page](https://cdn.stape.io/i/68a421f47b8f9997547106.png) [Stape Community](https://community.stape.io/) is a forum for discussing and sharing experiences in server-side tracking. It brings together professionals and beginners who want to improve their knowledge and skills in server Google Tag Manager (sGTM) for different platforms, integration with analytical tools, management of consent and privacy, etc. Stape Community is divided into several categories covering various tracking-related topics, making it easier for you to find the answers you’re looking for. Something unclear about GTM server containers? Wish to discuss Meta Conversion API? Have questions about server tags for email software? Stape Community has a discussion for you! [Learn more about Stape Community here](https://stape.io/helpdesk/documentation/stape-community). Helpdesk ![Helpdesk page](https://cdn.stape.io/i/68a42592d0458318931997.png) [Helpdesk](https://stape.io/helpdesk) is a trove of articles, guides, and FAQs about all things server-side tracking, Stape services, sGTM, tags, integrations, APIs, and more. Helpdesk consists of several sections, such as: Knowledgebase - short FAQ-style answers to simple or highly-specific questions. Documentation - thorough setup instructions and guides on complex topics. GTM container templates - a collection of ready-to-use GTM templates for various services and platforms (e.g., Shopify, Wix, WooCommerce, etc.) that are developed by Stape and are available publicly and for free. API - a tool for account and container management automation for users of Stape’s sGTM containers and Gateways. Release notes - the place to stay ahead of the curve and be the first to learn about Stape’s updates and developments. Support ![Support ticket page](https://cdn.stape.io/i/68a4275c1ca55376642486.png) Have questions about Stape products or sGTM hosting that you can’t figure out on your own or with our published materials? Feel free to contact us via [support@stape.io](mailto:support@stape.io) or [submit a ticket](https://ticket.stape.io/hc/en-us/requests/new)! Stape Academy ![Stape Academy page](https://cdn.stape.io/i/68a427f02f069383452142.png) Stape Academy is a curated collection of course modules, webinar recordings, and other learning materials. It’s designed to introduce newcomers to the world of server-side tagging, though even tracking pros will find it useful for a refresher or figuring out Stape-specific nuances. The course is split into modules covering a variety of topics to make it easier for you to find the information you’re looking for. In addition to the modules and study materials, Stape Academy has its own community forum. It’s called the Discussion space - there, you can ask questions, see what other students are discussing, or share your knowledge and experience with others. Check out this article to [learn more about Stape Academy and how to access it](https://stape.io/helpdesk/documentation/stape-academy). Stape Care ![Stape Care page](https://cdn.stape.io/i/68a4289f7585a805961469.png) [Stape Care](https://stape.io/care) is an optional, ongoing assistance service providing initial setup, monitoring, maintenance, troubleshooting, expert consultation, and more. Our Google Tag Manager specialists are here to help you maintain an accurate tracking setup. They can assist with configurations or even build custom solutions for your specific needs. [Learn more about Stape Care here](https://stape.io/helpdesk/documentation/tracking-care-service). To get access to Stape Care, [submit your request](https://stape.io/quote/setup) and our managers will contact you with a quote. Please keep in mind that other Stape Care services will become available only after the initial setup/audit is completed by the Stape team. Personal Manager ![Personal Manager menu](https://cdn.stape.io/i/68a5734679478736404079.png) The Personal Manager service provides every eligible client with a dedicated account manager, easily reachable directly from the User Space. Depending on your account type, you’ll be paired with: Account Manager - for customers with an active sGTM Enterprise plan or higher. Partner Manager - for Partner account owners and their users. To access your Personal Manager, [log in to](https://stape.io/login)[stape.io](http://stape.io) → click the question mark icon in the upper-right corner, and you will see the information about your Manager. If your manager is out of office, you’ll see their return date and have the option to contact support directly. Managers are carefully assigned based on account criteria, availability, and workload, ensuring prompt and tailored assistance. Every time a manager is assigned or changed, you’ll receive an email with their details, so you always know exactly who’s there to help you. --- # How to find the Customer ID and Operating Customer ID? Source: https://stape.io/helpdesk/knowledgebase/how-to-find-customer-id-operating-customer-id Section: Knowledgebase Learn the difference between Google Ads Customer ID and Operating Customer ID, and how to find both in your account quickly. It can be somewhat puzzling to figure out the difference between Google Ads Customer ID and Operating Customer ID, and how to locate them. Here’s an easy way to distinguish between them: Customer ID - the ID of the account that you’re using to authorize for the [Google Ads Offline Conversion tag](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm) or [Google Ads Customer Match API](https://developers.google.com/google-ads/api/docs/remarketing/audience-segments/customer-match/get-started). If you’re using your customer account, the Customer ID is the ID of this account. If you access the customer account through a manager account, the Customer ID must be set to the ID of the manager account. Operating Customer ID - the ID of the Google Ads account that will receive conversions or customer data. This should be set to the ID of the customer account. How to find the Customer ID? Sign in to your [Google Ads account](https://ads.google.com/home/). Click your profile picture in the top right corner. If you’re using your customer account, use the customer account ID. If you access the customer account through a manager account, use the manager account ID. ![How to find the Customer ID](https://cdn.stape.io/i/6891bbc04ddda432220507.png) Be sure to remove hyphens before using the string as the Customer ID for the tag. How to find the Operating Customer ID? Sign in to your [Google Ads account](https://ads.google.com/home/). Click your profile picture in the top right corner. Use the customer account ID. ![How to find the Operating Customer ID](https://cdn.stape.io/i/6891bc3376229590842187.png) Be sure to remove hyphens before using the string as the Operating Customer ID for the tag. --- # How can tracking be improved with Custom Loader? Source: https://stape.io/helpdesk/knowledgebase/tracking-can-be-improved-with-custom-loader Section: Knowledgebase The "Tracking can be improved" message is a helpful heads-up that your tracking setup might be missing some data due to Custom Loader setup issues. When you open the Analytics section in the User Space, you might come across this message: ![The "Tracking can be improved" pop-up](https://cdn.stape.io/i/686f5e3a43641285589851.png) This message is shown when Stape detects an unusually low number of users with ad blockers or tracking prevention in your Analytics. While that may sound like a good thing, in most cases it actually points to a potential issue with your Custom Loader configurations. Here are the most common reasons for this warning: 1. Outdated or missing Custom Loader If your Custom Loader is outdated or not installed, Stape Analytics may not be detecting users with ad blockers properly. Check that your [Custom Loader is in place](https://stape.io/helpdesk/documentation/custom-loader-power-up). Even if you're already using it, we recommend reinstalling it, just to be sure. 2. App not updated (if you're using one) If you're using one of [Stape’s apps](https://stape.io/helpdesk/documentation/integrations) (like for WordPress or Magento) that install the Custom Loader, make sure the app is also up to date. Some platforms don’t update apps automatically, and an outdated app might cause tracking issues. 3. Using a common or obvious subdomain If your server-side GTM container is hosted on a common subdomain like sgtm.example.com or gtm.example.com, it may be automatically blocked by ad blockers. These subdomains are often included in public filter lists. If that’s the case, change your sGTM subdomain to something unique and less obvious to avoid detection. 4. Your domain actually has few users with ad blockers If you've checked all the above and everything looks correct, the low ad blocker detection could simply mean your site’s visitors don’t use them. That’s perfectly fine. In this case, you can safely ignore the warning. 5. Can be used with GTM Environments GTM Environments let you load a specific version of your container (e.g., staging or development) instead of the published version. If you use environments, you need to manually add the environment parameters to your Custom Loader code. See our [documentation on Custom Loader with GTM environments](https://stape.io/helpdesk/documentation/custom-loader-power-up#how-to-use-custom-loader-with-gtm-environments) to learn more. --- # Why use both client-side and server-side tracking simultaneously? Source: https://stape.io/helpdesk/knowledgebase/why-use-both-client-side-and-server-side-tracking Section: Knowledgebase Combining client-side and server-side tracking helps you capture more data and enrich it with external sources. Be sure to configure event deduplication. Tracking user actions on your website is essential to understanding what’s working in your marketing and where conversions are coming from. Client-side tracking (like a browser pixel) and server-side tracking (like Conversion APIs) each offer benefits, but using them together gives you the most accurate picture. Here’s why combining both is smart. 1. Utilizing the client side for cross-site tracking Client-side tracking allows cross-site tracking in browsers that still support third-party cookies (mainly Chrome, which remains the most widely used browser.) This means you can collect more detailed user data across different websites, which helps advertising platforms better understand user behavior and optimize ad performance. 2. Server-side tracking catches what client-side misses Client-side tracking relies on users’ browsers to send data. It works well most of the time, but it’s vulnerable to ad blockers, browser restrictions, and iOS limitations. That means lost data and missed conversions. Server-side tracking sends data directly from your server to platforms like Google Ads, Facebook, or Pinterest, so it’s not affected by these blockers. In this setup, server-side acts like a safety net, catching the conversions that client-side may miss. 3. Using both tracking methods improves redundancy If one fails, the other might still work. It also future-proofs your setup, considering that privacy regulations and browser changes are happening quickly. Server-side tracking gives you more control over how data is handled and shared, helping with compliance and data consistency across platforms. 🚨Important: Set up event deduplication When using both client-side and server-side tracking, always configure event deduplication. Without it, the same event might be counted twice - once from the browser and once from the server. Platforms like Facebook and TikTok support deduplication through unique event IDs. However, not all platforms offer this (e.g., Google Ads.) If that’s the case with your platform, you’ll need to choose one tracking method (client or server) to avoid overcounting. 4. Enriching your data with server-side tracking Client-side tracking can collect much information about the user. However, server-side tracking is more reliable and lets you enrich the data for a clearer picture. For example, you can add data about orders via phone and other offline conversions, or include order information from payment services like Stripe. --- # How does subscription Auto-upgrade work? Source: https://stape.io/helpdesk/knowledgebase/how-billing-autoupgrade-works Section: Knowledgebase Learn how Stape’s subscription Auto-upgrade works to keep your server-side GTM or Signals Gateway running smoothly and avoid service interruptions. Subscription Auto-upgrade is a billing feature in Stape’s user office. Normally, each subscription plan has a limited number of requests available. For instance, a Business-tier subscription to server-side GTM provides up to 5,000,000 requests per month. So, normally, once you exceed this limit, you will not be able to use the product until the next billing cycle. That’s where the Auto-upgrade feature comes in. If you enable it, Stape will upgrade your subscription plan as soon as the number of requests exceeds your current plan’s limit. This ensures seamless performance of your containers or Signals Gateway, preventing service disruptions and loss of analytical data. How to use Auto-upgrade? There are two ways to enable Auto-upgrade for your subscription: Option 1. Allow Auto-upgrade when choosing a subscription plan. Create a new sGTM container or Signals Gateway, and toggle the switch to upgrade it automatically. ![auto-upgrade stape](https://cdn.stape.io/i/682d79f8e5b31887052680.png) Option 2. Upgrade an existing subscription to allow Auto-upgrade. Open an existing sGTM container or Signals Gateway → click the Change Plan button or open the Subscription tab → toggle the switch to allow the subscription to be upgraded automatically upon reaching the request limit. ![auto-upgrade stape](https://cdn.stape.io/i/682d7b26cb6de590193383.png) --- # What’s the difference between Signals Gateway and Meta CAPI Gateway? Source: https://stape.io/helpdesk/knowledgebase/difference-between-signals-gateway-and-meta-capi-gateway Section: Knowledgebase Learn the main differences and similarities between Signals Gateway and Meta Conversions API Gateway (CAPIG). Meta Conversions API Gateway and Signals Gateway have a lot of similarities, so it’s no wonder that users may find it unintuitive which one to choose. Let’s identify their main differences. What is Meta Conversions API Gateway? Meta Conversions API Gateway (CAPIG) is Meta’s “plug-and-play” bridge between your website and Facebook Ads. You connect a Pixel, and the Gateway starts sending the same purchase, lead, or add-to-cart events to Meta’s servers. It requires no extra tagging or code. Pricing is low (starting from $10 per Pixel/month) and setup takes under a minute on Stape. [Learn more about Meta Conversions API Gateway](https://stape.io/helpdesk/documentation/meta-conversions-api-gateway-overview). What is Signals Gateway? Signals Gateway is a newer, bigger hub for first-party data. It pulls events from Pixel, SDKs, offline files, or Stape CRM apps, then pushes them to Meta, Google BigQuery, or (with some coding) to endpoints of your choosing, such as TikTok, Snapchat, or even your own API. The idea behind Signals Gateway is: one place to collect, clean, and route data. Plans start at about $17 for one million events, with a free tier for smaller sites. [Learn more about Signals Gateway](https://stape.io/helpdesk/documentation/signals-gateway-overview). How Meta CAPIG and Signals Gateway differ Key difference | Meta CAPIG | Signals Gateway Where data can go | Only to Meta Dataset. | To Meta, BigQuery, and (with extra coding) custom endpoints, such as TikTok, Snapchat, your own DB, etc. Feature overlap | You cannot run a Signals Gateway pipeline inside Meta CAPIG; you're limited to Meta-only connections. | You can create a Meta CAPIG-like pipeline in Signals Gateway, since Signals Gateway supports connecting to Meta and other destinations. Attention of ad blockers | Widely used, so more often listed in popular ad-block filters. | Still new and rare. Fewer blocklists target its domains and script names, for now. Cost | Generally cheaper. Starts at $10 per Pixel or $100 for 100 Pixels. | More expensive. Starts at $17 per 1 million events; total cost is higher for the same traffic volume. What Meta CAPIG and Signals Gateway have in common Basically, everything else! Meta CAPIG and Signals Gateway operate very similarly outside of the four differences listed above. Some of the biggest similarities are: Server-side by default - both move conversion data from the browser to a cloud server first, cutting signal loss. Better attribution - because events come from the server, ad platforms see more conversions and optimize faster. Custom domains - each tool lets you use your own sub-domain to improve match rates and bypass some tracking blocks. Bottom line Pick Meta CAPIG if you only need Facebook data, want the cheapest option, and value a two-click setup. Choose Signals Gateway if you need one hub to feed Meta and other platforms, and don’t mind a slightly higher bill and setup complexity. --- # How to become a Stape partner? Source: https://stape.io/helpdesk/knowledgebase/how-to-become-stape-partner Section: Knowledgebase Learn how to join the Stape Partner Program today! It’s easy to get started, and the more value you bring, the more you earn. To become a Stape partner, you must: Have an [Agency account](https://stape.io/helpdesk/documentation/stape-agency-account). Have 5+ paid products on your dashboard or get $50+ in monthly referral value. Sign the Partnership documents. …and that’s it! See the step-by-step guide to becoming a Partner below, along with all the requirements. Guide to becoming a Stape Partner 1. Log in to your existing Stape Agency account or [create a new one](https://stape.io/sign-up/agency). You can also [convert your existing Standard account](https://stape.io/helpdesk/knowledgebase/how-to-convert-standard-account-to-agency-account) into Agency account. ![Log in to your existing Stape Agency account](https://cdn.stape.io/i/680a37adadfe7839565190.png) 2. Get 5+ paid products on your dashboard or reach $50+ in potential monthly referral value. You can add clients to your account through: Referral link “Add user” button “Create sub-account” button See more information on how to add a client to your account in [our guide](https://stape.io/helpdesk/knowledgebase/how-to-add-a-client-to-your-agency-account). 3. Open the Partner program tab. If you are eligible for Level 1 partnership (see the requirements in next section), the Next button will be active. Click on it. ![Open the Partner program tab](https://cdn.stape.io/i/69983f0b191c2696774938.png) 4. Follow the on-screen instructions to complete the application and convert your Agency account into Partner account: Fill in the form on the Partner info screen to provide us with your legal information. Tell us where to transfer your commissions on the Payouts info screen. 5. After you complete the Partnership application, it will take the Stape team up to 3-5 business days to review it. ![After you complete the Partnership application](https://cdn.stape.io/i/680a392ec60ec968237917.png) If everything is correct, we will approve your application, and you will be able to Sign the Partnership agreement to become Stape’s Partner. ![Sign the Partnership agreement](https://cdn.stape.io/i/680a3968b57f1970475969.png) If there are issues with the data you provided, we will reject it and inform you of the necessary corrections. You can then update and re-submit the application. ![If there are issues with the data you provided](https://cdn.stape.io/i/680a398fdb3b1092488554.png) 6. Once everything is signed and approved, your account will be automatically upgraded to a Partner account. We will then send you an email with the signed documents from our side. ![Everything is signed and approved](https://cdn.stape.io/i/680a39bdb417e911529848.png) What is the Stape Partner program? The Stape Partner Program is a great way to monetize your audience by referring new users to Stape’s tools and services. When someone signs up using your referral link, they become your client, showcased on your Partner account dashboard. You'll earn a commission every month they renew their subscription. The commission rate depends on the type of product that the user purchases. For more information about Partner accounts, follow [this link](https://stape.io/helpdesk/documentation/stape-partner-account). For more information about Partner commission, follow [this link](https://stape.io/blog/would-you-like-to-become-a-stape-partner#how-stapes-partner-program-works). Who is eligible for Stape Partnership? There are several levels of Partnership with Stape. Once you meet the initial eligibility requirements, you become a Level 1 Partner and get access to commission payments. Next, by meeting additional criteria, you will progress to Level 2 to earn extra. Level 1 Partner requirements To become a Level 1 Partner, you need to have an [Agency account](https://stape.io/helpdesk/documentation/stape-agency-account) with 5+ products paid by users OR $50+ in potential monthly referral value (% of your users’ plan value [depending on the type of product](https://stape.io/blog/would-you-like-to-become-a-stape-partner#for-s-gtm-hosting-and-signals-gateway) they use). Level 2 Partner requirements To become a Level 2 Partner, you need to have a Level 1 Partner account with $500+ in potential monthly referral value (% of your users’ plan value [depending on the type of product](https://stape.io/blog/would-you-like-to-become-a-stape-partner#for-level-2-partners) they use). Once you meet the requirements to become a Level 2 partner, a widget will appear in the Payouts section of your admin account. ![Apply for the Level 2](https://cdn.stape.io/i/694923ce45950200765175.png) Apply for the Level 2 partner program and complete the required documentation. ![Apply for the Level 2](https://cdn.stape.io/i/694923efd55bf265662417.png) --- # How to upgrade my Partner account to Level 2? Source: https://stape.io/helpdesk/knowledgebase/how-to-upgrade-partner-account-to-level-2 Section: Knowledgebase Learn how to upgrade your Stape Partner account from Level 1 to Level 2, and what requirements you should meet to be eligible. Our Stape Partnership Manager will contact you once you reach monthly referral value higher than $500. Also, you can write to [support@stape.io](mailto:support@stape.io) once you notice that your monthly referral value is higher than $500. Either way, you will have to sign an additional agreement that indicates the upgrade (similar to the one you signed when creating the Partner account). And after that, you’ll be able to earn up to 40% commission for life! After you qualify for a Level 2 partner, a widget will be displayed in the “Payouts” section of your admin account. ![image](https://cdn.stape.io/i/6949244a11e8e961448896.png) You can then apply for the Level 2 partner program and sign the documents. ![image](https://cdn.stape.io/i/694924ad6e239137026153.png) --- # Is there a Stape Partner badge? Source: https://stape.io/helpdesk/knowledgebase/stape-partner-badge Section: Knowledgebase The Stape Partner badge is an icon you can place on your website to show you're an official partner of Stape. Yes! You can embed the Stape Partner badge on your website to proudly display our cooperation, easily funnel prospects to registering as clients within your Partner account via referral link, and earn a commission for them. What is the Stape Partner badge? The Partner badge is a small “Stape Partner” graphic plus a bit of HTML code where you can embed your unique referral link. Drop it into your website footer, sidebar, or “Tools We Use” page and it instantly tells visitors: Credibility - you’re recognized by Stape as a trusted partner. Expertise - you can set up or manage Stape’s services for clients. Easy next step - one click on the badge sends prospects to Stape. If you use your Stape referral link, once they create an account, they will automatically appear in your partner dashboard, and potentially earn you a commission. Where do I find my Stape Partner badge code? Stape Partner badge is only available to users with [Partner level](https://stape.io/helpdesk/documentation/stape-partner-account) accounts. You can find your Partner badge HTML code inside your Stape Partner account. Open the Partner info tab and you will see the code under the Partner badge section. ![Where to find Stape Partner badge code](https://cdn.stape.io/i/699848a15072c737706836.png) --- # How to migrate to Stape? Source: https://stape.io/helpdesk/knowledgebase/migration-to-stape Section: Knowledgebase By migrating to Stape, you’ll enjoy an easier workflow, better data accuracy, and significant cost savings. Moving your server-side tracking setup to Stape means adopting a simpler, faster, and more cost-efficient way to run Google Tag Manager. Instead of maintaining complex server configurations on your own, you hand over the heavy lifting to Stape’s automated tools. This transition involves exporting or recreating your existing server-side GTM container and directing your tracking scripts to use Stape’s infrastructure. Once that’s done, you can enjoy reliable performance and enhanced tracking features, all while saving time and money. Benefits of migrating to Stape Cost-effective - Stape is times cheaper than traditional providers. You can maintain robust server-side tracking without breaking your budget. Easy setup & maintenance - swift server creation and straightforward container configurations eliminate the need for technical deep dives, allowing you to focus on your marketing and analytics. Reliable support & expert guidance - Stape’s team of server-side tracking specialists can help with advanced setups, ensuring your container meets complex tracking needs. And much more! Check out the whole [list of Stape benefits](https://stape.io/blog/benefits-stape-hosting-google-tag-manager-server). How to migrate to Stape To ensure a seamless switch from your previous provider to Stape and to avoid disruptions or downtime, follow these steps. 1. Create a new server-side GTM container in Google Tag Manager. This fresh sGTM container will serve as your new tracking environment. In case you need a refresher, we have a [guide on creating an sGTM container](https://stape.io/helpdesk/documentation/create-server-container-in-google-tag-manager). ![Create a new server-side GTM container in Google Tag Manager](https://cdn.stape.io/i/67f66bd14b359742579758.png) Create a new server-side GTM container in Google Tag Manager 2. Export your old sGTM container, then import it into the new one. This will preserve your existing tags and triggers. ![Export your old sGTM container, then import it into the new one](https://cdn.stape.io/i/67f66c00262b4372624292.png) Export your old sGTM container, then import it into the new one 3. [Create a Stape account](https://stape.io/sign-up). 4. Set up a new Stape sGTM container and add to it your new Google Tag Manager container’s configs. See our [detailed guide](https://stape.io/helpdesk/documentation/create-server-container-in-stape) on creating a new container in your Stape account. Stape automates the essential configurations so you can get started quickly, even if you don’t have deep technical knowledge. ![Set up a new Stape sGTM container](https://cdn.stape.io/i/67f66c5b2290e282506197.png) Set up a new Stape sGTM container 5. Create a new subdomain (don’t reuse the old one!), verify it on Stape, and update DNS records. This approach is vital to ensure no downtime. Point your new subdomain to Stape and finalize any required DNS changes. See our [detailed guide](https://stape.io/helpdesk/documentation/add-custom-domain-in-stape) on creating a new custom domain. ![Create a new subdomain ](https://cdn.stape.io/i/67f66cba6a458754489523.gif) Create a new subdomain 6. In your web container’s tag settings (e.g. Google tag) and webhooks, or other places where you send data to sGTM, replace the server container URL with the new one you verified on Stape. Check that everything is working by testing the new setup in Preview mode. ![Replace the server container URL ](https://cdn.stape.io/i/67f66cf9ce940406441507.gif) Replace the server container URL 7. Publish your changes in each container once testing looks good. 8. Replace the default GTM loader script with Stape’s Custom Loader. This makes your tracking scripts more resistant to ad blockers and improves data accuracy. See our detailed [guide on configuring Custom Loader](https://stape.io/helpdesk/documentation/custom-loader-power-up). ![Replace the default GTM loader script with Stape’s Custom Loader](https://cdn.stape.io/i/67f66d36edaba681752092.png) Replace the default GTM loader script with Stape’s Custom Loader 9. You’re all set! Once you’ve published all the changes, check that everything is working correctly and the data flows. Also, don’t forget to disable your old hosting and sGTM environment to avoid data duplication or extra charges. 10. Optimize your setup with Stape’s [features and power-ups](https://stape.io/solutions). You may find that some of them greatly benefit your particular business and setup. Stape handles scaling, caching, and specialized functions behind the scenes. For some ideas on what to do next, check out [this article](https://stape.io/helpdesk/documentation/everything-is-set-up-what-to-do-next). --- # What's Stape Community? Source: https://stape.io/helpdesk/knowledgebase/stape-community Section: Knowledgebase Join the Stape Community to connect with experts, share insights, and stay updated on the latest in server-side tracking, analytics, and digital marketing. [Stape Community](https://community.stape.io/?_gl=1*1j4fujo*_gcl_au*MjA3Njc3ODM5Ny4xNzM4NjgyNjgy) is a space for discussing and sharing experiences in server tracking. It brings together professionals and beginners who want to improve their knowledge and skills in setting up and using server tags. Main categories of discussions Server-side tagging for different platforms. In this category, community members discuss setting up server tracking for WordPress, Shopify, Magento, BigCommerce, and other platforms. Integration with analytical tools. This category is dedicated to discussing issues related to using Google Analytics 4, Facebook Conversion API, and other services. Manage consent and privacy. There are discussions on regulatory compliance and setting up consent regimes. Benefits of community participation Exchange of experience. Stape Community provides an opportunity to receive expert advice and share best practices. Current information. One of the community's main advantages is access to new trends and solutions in server tracking. Support. Participants can get help in solving technical issues and setting up tools. How to join the Stape Community? To join the Stape Community, follow these steps: Step 1. Go to the [official website](https://stape.io/). Step 2. Find the community section: Learn → Community. ![Find Community Section](https://cdn.stape.io/i/67e54dee137f6636116293.png) Step 3. Create an account: Sign up with your email and password or login via Google or social networks. ![Create an account](https://cdn.stape.io/i/67e54e5cb2e9b688654799.png) Step 4. Choose a category and start communication (ask questions, discuss cases, share experiences, and stay tuned). ![Create a new topic](https://cdn.stape.io/i/67e54e98a6c1b657606464.png) After registration, you will be able to receive support from experts, learn about new trends, and participate in the development of server tracking. --- # What to do if custom subdomain is not verified for Snapchat Conversions API Gateway? Source: https://stape.io/helpdesk/knowledgebase/custom-subdomain-is-not-verified-for-snapchat-conversions-api-gateway Section: Knowledgebase Learn what to do if custom subdomain is not verified for Snapchat Conversions API Gateway. Domain verification takes up to 72 hours, although it often happens within a few hours if your DNS records are correct. How to check my DNS records You can check what DNS records you have by using this service: [https://toolbox.googleapps.com/apps/dig](https://web.archive.org/web/20250422063933/https://toolbox.googleapps.com/apps/dig) Using it is super easy: 1) Specify your subdomain that you created for Snapchat CAPI Gateway (without https:// and extra characters). 2) Select the desired record type you want to check. Example: ![Checking DNS records using Dig](https://cdn.stape.io/i/67c089f228e5f047467763.png) Main reasons why a subdomain is not verified 1. Missing DNS records Make sure that all required records are added. They may have been accidentally deleted by someone else. 2. Incorrect DNS records If entries exist, make sure their values match those specified in your Gateway on Stape. 3. Extra DNS records Make sure there are no extra DNS records for your Snap CAPIG subdomain, only those specified in your Gateway on Stape. If, for example, you have extra AAAA records - this can interfere with domain verification, so you should remove them and leave only those specified in the 'Domains' section of your Stape Gateway. --- # How to cancel a subscription to Snap CAPIG? Source: https://stape.io/helpdesk/knowledgebase/how-to-cancel-a-subscription-to-snap-capig Section: Knowledgebase Learn how to cancel a subscription to Snap CAPIG. 1. Log into your [Stape account](https://stape.io/login). 2. Go to your Snap CAPIG. 3. Click on three dots next to Snap CAPIG and click Cancel subscription. ![Click Cancel subscription](https://cdn.stape.io/i/67c08951998c6146666738.png) 4. Please specify the reason you cancel your subscription and click Confirm. ![Specify the reason you cancel your subscription](https://cdn.stape.io/i/67c0895169a7e878457868.png) --- # How to add custom domain for Snapchat Conversions API Gateway? Source: https://stape.io/helpdesk/knowledgebase/add-custom-domain-for-snapchat-conversions-api-gateway Section: Knowledgebase Learn how to use a custom domain or data routing in your Snap CAPI Gateway to improve measurement performance. Using a custom domain or data routing in your Snap CAPI Gateway can improve measurement performance. The data routing feature allows you to choose the subdomain for the pixel's communication with the Conversions API Gateway. This custom domain should match the subdomain of the main domain used for firing the Snapchat pixel. 1. Click Data Routing on the left menu. ![  Click Data Routing on the left menu  ](https://cdn.stape.io/i/67c088b0beffd812019210.png) 2. Click Add Subdomain. Enter your custom domain. ![Click Add Subdomain](https://cdn.stape.io/i/67c088b0b871f368056350.png) ![Enter your custom domain](https://cdn.stape.io/i/67c088b09e61f542884467.png) 3. Log in to your DNS provider and set records (if you use Cloudflare, the settings should look like on the screenshot). ![Log in to your DNS provider and set records](https://cdn.stape.io/i/67c088b0d8062737552933.png) 4. And that’s it! You’ve successfully set up your subdomain. ![You’ve successfully set up your subdomain](https://cdn.stape.io/i/67c088b0c9150060363482.png) [Recommended] Load Snap js from your subdomain. This will help you increase the protection of your events from ad blockers. After validating your Data routing domain you will see a link that you can use to download snap js on your site: ![Link that you can use to download snap js](https://cdn.stape.io/i/67c088b0d4488106774158.png) You can add this to your site's code or change it in the default Snap js snippet: ![Add link to your site's code or change it in the default Snap js snippet](https://cdn.stape.io/i/67c088b100a2f147873157.png) --- # How to add custom domain for TikTok Events API Gateway? Source: https://stape.io/helpdesk/knowledgebase/add-custom-domain-for-tiktok-events-api-gateway Section: Knowledgebase Learn how to use a custom domain in your TikTok Events API Gateway to improve measurement performance. Using a custom domain in your TikTok Events API Gateway can improve measurement performance. It allows you to choose the subdomain for the Pixel's communication with the Events API Gateway. This custom domain should match the subdomain used for firing the TikTok Pixel. Click Settings on the menu. Push the button Set up domain. ![Set up domain button](https://cdn.stape.io/i/67c08903e06d0824760555.png) Choose domain and receive DNS records to configure. ![Choose a domain](https://cdn.stape.io/i/67c089042df00111216428.png) ![DNS records to configure](https://cdn.stape.io/i/67c08903e8ac4204848694.png) Log in to your DNS provider and set records (if you use Cloudflare, the settings should look like on the screenshot). ![Log in to your DNS provider and set records](https://cdn.stape.io/i/67c089039343b682761063.png) Save all the changes. --- # What to do if custom subdomain is not verified for Stape Gateway? Source: https://stape.io/helpdesk/knowledgebase/custom-subdomain-is-not-verified-for-stape-gateway Section: Knowledgebase Learn what to do if custom subdomain is not verified for Stape Gateway and what might cause it. Domain verification can take up to 72 hours, but usually completes within a few hours when your DNS records are properly configured. How to verify your DNS records You can view your DNS records by using the following service: [https://toolbox.googleapps.com/apps/dig](https://toolbox.googleapps.com/apps/dig) Using the service is simple: 1. Enter the subdomain you set up for Stape Gateway (omit https:// and any extra characters). 2. Choose the record type you wish to verify. For example: ![Checking DNS records using Dig](https://cdn.stape.io/i/67c089f228e5f047467763.png) Common causes for subdomain verification failure 1. Missing DNS records Ensure all necessary DNS records are present. Sometimes they might be accidentally removed by others. 2. Incorrect DNS records If records exist, verify that their values exactly match those provided in your Stape Gateway settings. 3. Extra DNS records Check that there are no additional DNS records for your Stape Gateway subdomain beyond those listed in your Gateway configuration. For instance, extra AAAA records can disrupt domain verification. Remove any unnecessary entries and keep only the records specified in the ‘Domains’ section of your Stape Gateway. Where to find the required DNS records The DNS records required for verification are shown in the ‘Domains’ section of your Stape Gateway. To complete verification, make sure to add every record listed there. --- # Certificate Authority Authorization (CAA) records Source: https://stape.io/helpdesk/knowledgebase/certificate-authority-authorization-caa-records Section: Knowledgebase Learn more about the CAA (Certificate Authority Authorization) DNS resource record type and what Certificate Authorities Stape uses. There is a DNS resource record type - CAA (Certificate Authority Authorization) - that allows to indicate which CAs are allowed to issue certificates for domains. Stape uses the following Certificate Authorities: digicert.com, letsencrypt.org, pki.goog, sectigo.com. ![Error if you use the Stape CDN functionality](https://cdn.stape.io/i/69ae878ae7fa5193766133.png) Error example without adding these records If you are using CAA records for your own domain, please make sure that you added these records: If you do not use the [Stape CDN](https://stape.io/solutions/global-cdn) functionality: gtm.example.com. IN CAA 0 issue "letsencrypt.org" ![ If you do not use Stape CDN functionality](https://cdn.stape.io/i/69a980afcf69c691315076.png) If you use the [Stape CDN](https://stape.io/solutions/global-cdn) functionality: gtm.example.com. IN CAA 0 issue "digicert.com"gtm.example.com. IN CAA 0 issue "letsencrypt.org"gtm.example.com. IN CAA 0 issue "pki.goog"gtm.example.com. IN CAA 0 issue "sectigo.com" ![If you use the Stape CDN functionality](https://cdn.stape.io/i/6a13f433e6a09712600978.png) If you use the [Disabled CDN](https://stape.io/helpdesk/documentation/disabled-cdn) functionality: gtm.example.com. IN CAA 0 issue "sectigo.com" ![If you use the Disabled CDN functionality](https://cdn.stape.io/i/69ae7e5852e40841929106.png) --- # I need a custom plan, what can you offer? Source: https://stape.io/helpdesk/knowledgebase/i-need-a-custom-plan-what-can-you-offer Section: Knowledgebase Learn how you can get a custom subscription plan instead of our main plans. We have [several subscription plans](https://stape.io/price-server-google-tag-manager) that you can choose from. But for your convenience, we also offer Custom plans. Please [contact our sales team](https://stape.io/contact-sales) for a personal quote. If you want to change your plan, reach us at [support@stape.io](mailto:support@stape.io) and we will be happy to help. --- # How to choose a CDN? Source: https://stape.io/helpdesk/knowledgebase/how-to-choose-a-cdn Section: Knowledgebase Learn how to choose the best CDN for speed, security, and reliability with Stape's expert guide. Whichever CDN you use, you must point to that subdomain to the Stape IP listed in your container. You can take general concepts from the Cloudflare example. If you don’t know [how to use Own CDN on Stape](https://help.stape.io/hc/en-us/articles/12348841204125-How-to-use-Own-CDN-on-Stape), we have a detailed article. Stape validates the domain and passes through the hits; everything else is to be done on the CDN provider's side. We can’t cover all of the specific CDN providers out there (in terms of instructions), but you shouldn’t have any limitations on using KeyCDN. --- # What is Enhanced ad blocker protection in Custom Loader, and how does it work? Source: https://stape.io/helpdesk/knowledgebase/ga4-ad-block-bypass-in-custom-loader Section: Knowledgebase Discover how Enhanced Ad Blocker protection in Custom Loader works, helping you track data even when ad blockers are active. While configuring the Custom Loader power-up in your server GTM container on Stape, you can activate the “Enhanced ad blocker protection” toggle. ![Example of toggle](https://cdn.stape.io/i/69bd3095780e2259268577.png) Enhanced ad blocker protection encodes all requests sent to the server-side GTM. It helps prevent ad blockers from detecting and blocking the requests. How does Enhanced ad blocker protection work? Let’s consider, as an example, the GA4 requests. Such requests have an exact URL pattern which looks like '/g/collect?v2&tid=.....'. Ad blockers are designed to detect this pattern and block any matching requests. If you use Custom Loader with activated Enhanced ad blocker protection, all requests are encoded. As a result, they have no such pattern and can’t be blocked by ad blockers. Before the request reaches the GTM server, it is decrypted, so in the sGTM preview, you can see the original request without encryption. Below is an example of encrypting the GA4 request with the Enhanced protection option: ![example of encrypting the GA4 request with the Enhanced protection](https://cdn.stape.io/i/69bd31bc7e6b3551626717.png) And here is what it looks like without the Enhanced protection option configured: ![without the Enhanced protection option](https://cdn.stape.io/i/69bd31e426f89181056313.png) --- # How to delete an sGTM container? Source: https://stape.io/helpdesk/knowledgebase/how-to-delete-sgtm-container Section: Knowledgebase Learn how to delete sGTM container on Stape. 1) To delete the container open your server GTM container, click three dots on the top right corner, click Delete container. 2) In the pop-up, click Delete container. ![Deleting sGTM container on Stape](https://cdn.stape.io/i/67dbdfd56806f048212431.gif) --- # How to fix problems with SSL certificate or Your connection is not secure? Source: https://stape.io/helpdesk/knowledgebase/problems-with-ssl-certificate-or-your-connection-is-not-secure Section: Knowledgebase Learn what might cause problems with SSL certificate or the message that your connection is not secure, and how to fix it. Once you've added a custom domain to the sGTM container and opened this URL, you might see an error your connection is not secure. This error indicates issues with the SSL certificate. ![Error Your connection is not secure](https://cdn.stape.io/i/67dbcd94c5708673745408.png) There might be three reasons for this error to appear. 1. Custom domain is not verified on Stape. To check it, log in to your [stape.io account.](https://stape.io/login)Open sGTM container settings and check if the tagging server URL status is Ready. If the status is Verifying, follow the steps [from this article](https://help.stape.io/hc/en-us/articles/6531071164061). ![Tagging Server URL on Stape](https://cdn.stape.io/i/67dbcdbc88c2b935812486.png) 2. It usually takes 30 minutes to issue an SSL certificate for your domain. If there were less than 30 minutes, please wait and check the status after. 3. If non of the two options above apply to your situation, [contact support](https://help.stape.io/). --- # Is it possible to add Meta CAPI Gateway in Signals Gateway? Source: https://stape.io/helpdesk/knowledgebase/how-to-add-meta-capi-gateway-in-signals-gateway Section: Knowledgebase Create and manage a Conversions API Gateway pipeline in Signals Gateway. Connect automatically with Facebook Login or manually via Meta Pixel settings. In your Signals Gateway environment there is a possibility to create Conversions API Gateway pipeline. 1. Click on “Create data pipeline”. ![image](https://cdn.stape.io/i/67d937d70d14a498739259.png) 2. Choose “Conversions API Gateway pipeline”. ![image](https://cdn.stape.io/i/67d937e3791c2158524835.png) 3. You can use Facebook Login to connect automatically. ![image](https://cdn.stape.io/i/67d937f012cb7014266473.png) Or you can Manually connect your Meta Pixel by filling out the fields using the information from the pixel’s dataset in Events Manager. Meta Business ID - the unique number used to identify a groupd of Meta business assets, such as ad account, managed by a business. Dataset ID - the unique number associated with a dataset in Meta Events Manager. The Meta Pixel associated with the dataset will share the same ID. Access Token - the code which is generated automatically to help establish a secure connection with your dataset. ![image](https://cdn.stape.io/i/67d9380bc71b4481056331.png) 4. On the dashboard, you will see an overview of your Pipeline. ![image](https://cdn.stape.io/i/67d93814e8f0f951345463.png) 5. When you click on your current Data source, Pipeline filter and Data destination, you will be able to to adjust any settings according to your preferences. 6. In your general dashboard, you can see current Signals Gateway and Conversions API Gateway pipelines. ![image](https://cdn.stape.io/i/67d93820c5d0a640991151.png) --- # Where can I find your Data Processing Agreement? Source: https://stape.io/helpdesk/knowledgebase/data-processing-agreement Section: Knowledgebase Guide to finding Stape's Data Processing Agreement via Account settings. 1. Open [your account](https://stape.io/login) and click Account settings. 2. Under Profile settings you will see Data Processing agreement. Click Read. 3. You will be redirected to the page with the agreement. ![Finding Stape's Data Processing Agreement](https://cdn.stape.io/i/67c089af7a6e2636225247.gif) --- # How to change my password? Source: https://stape.io/helpdesk/knowledgebase/change-password Section: Knowledgebase Guide to changing your Stape login password via Account settings. 1. Open [your account](https://stape.io/login) and click Account settings. 2. Choose Security. And paste the passwords in the fields. Do not forget to click the Update button to save the changes. ![Changing your Stape login password](https://cdn.stape.io/i/67c0895ddd207758389637.gif) --- # How to change my login email? Source: https://stape.io/helpdesk/knowledgebase/change-login-email Section: Knowledgebase Guide to changing your Stape login email via Account settings. 1. Open [your account](https://stape.io/login) and click Account settings. 2. Scroll down to the bottom of the page and change the Email. Do not forget to click Update to save the changes. ![Changing your Stape login email](https://cdn.stape.io/i/67c088b6e48c8991283762.gif) --- # How to find Container Configuration for sGTM? Source: https://stape.io/helpdesk/knowledgebase/how-to-find-container-configuration-for-sgtm Section: Knowledgebase Learn how to find Container Configuration for sGTM in Stape with this knowledgebase guide. 1. [Log in](https://tagmanager.google.com/) to the server Google Tag Manager container → click Admin → click Container Settings. ![sGTM Container Settings](https://cdn.stape.io/i/6a59f434bd4f9130061179.png) 2. Scroll down to the Tagging server section and find your Container Configuration string. ![Container Configuration](https://cdn.stape.io/i/6a59f49d5ad35005842033.png) 3. To use your Container Configuration for Stape container setup, [log in to your Stape account](https://stape.io/login) → open your existing sGTM container or create a new one. ![Open your sGTM container](https://cdn.stape.io/i/6a59e3897564f874291288.png) If it's an existing container, click Edit next to the Container settings section. ![Edit container settings](https://cdn.stape.io/i/6a59e43842bec892586914.png) 4. Paste your Container configuration string and click Save. ![Paste your Container Configuration](https://cdn.stape.io/i/6a59e69f67aac206530199.png) --- # How to transfer ownership of your sGTM container? Source: https://stape.io/helpdesk/knowledgebase/transfer-ownership Section: Knowledgebase Learn how to transfer ownership of your sGTM container. 1. Open the sGTM container or Gateway. 2. Click three dots in the top right corner -> Click Transfer ownership. 3. Add an email address that you want to transfer ownership -> click Transfer. ![Transferring ownership of your sGTM container](https://cdn.stape.io/i/67c087ae9f123645311775.gif) Note: After you change container ownership, you will immediately lose access to this container. The subscription will be automatically canceled and will work only until the end of the current billing period. When you entered the email which doesn't exist on Stape - we will create an account with that email automatically. The invite email will be sent to the user to access Stape and the shared instance. Information for a new owner The new owner of the container will receive a notification and must create a new subscription before making the first payment with their own card. This is because the payment information used to pay for the subscription on the previous account cannot be transferred to the new owner along with the container. To create a new subscription, click the Change plan button, choose a subscription that suits you, add billing information, and make a payment. After that, each subsequent payment will be made automatically until you cancel your subscription. --- # How to delete your account? Source: https://stape.io/helpdesk/knowledgebase/delete-account Section: Knowledgebase Guide to deleting your Stape Account via Account settings. 1. Open [your account](https://stape.io/login) and click Account settings. 2. On the right click on three dots and choose Delete Account. 3. Confirm the changes. ![Deleting your Stape Account](https://cdn.stape.io/i/67c0879d97d63503621366.gif) --- # How to connect new pixels to existing Conversions API Gateway? Source: https://stape.io/helpdesk/knowledgebase/connect-new-pixels-to-existing-conversions-api-gateway Section: Knowledgebase Learn how to connect new pixels to your existing Conversions API Gateway for improved tracking and performance. Follow our guide to streamline integration. Log in to your Conversions API Gateway hub. You can find the Conversions API Gateway hub URL in your [stape.io account.](https://stape.io/login) ![Example](https://cdn.stape.io/i/67c08787b0cea290130804.png) Once logged in to the Conversions API Gateway hub, click Add data source and select the required pixel. ![Add data source](https://cdn.stape.io/i/67c08787ac89d728595666.png) You have two options to add a data source to your Gateway Hub: Use Facebook Login (longer). Manual connection (faster). Use Facebook Login (long option) ![Use Facebook Login (long)](https://cdn.stape.io/i/67d7d65b64a65645436675.png) Follow the steps: Click Connect. There will be a pop-up window where you need to proceed with the connection. Log in to your Facebook account. Select Trust this device. ![Select Trust this device](https://cdn.stape.io/i/67d7d6ac99922324200977.png) Allow Facebook to use cookies and other technologies. ![Allow Facebook to use cookies and other technologies](https://cdn.stape.io/i/67d7d6ebd00a8886362511.png) Select your business account or the business account you have access to. ![Select your business account](https://cdn.stape.io/i/67d7d71a2fd56183318826.png) Select the pixel you want to add. Data source is added. Give the integration up to an hour, and you will see the first events the Gateway Hub will receive. Manual connection (fast option) ![Manual connection (fast)](https://cdn.stape.io/i/67d7d777bec92594108362.png) Fill in all the fields shown in the screenshot (use the hints if you are not sure where to get all the values). Click Connect. The data source has been added. Wait up to an hour for integration; after this, you see the first events received by the Gateway Hub. --- # What is the list of standard cookies that Cookie Keeper prolongs? Source: https://stape.io/helpdesk/knowledgebase/list-of-standard-cookies-that-cookie-keeper-prolongs Section: Knowledgebase Check out the list of standard cookies that Cookie Keeper prolongs. When set to extend, Cookie Keeper extends the list of cookies below and according to the specified details. Name | Cookie | Time Stape | _dcid | 13 months | stape | 13 months Google Analytics | _ga | 13 months | FPID | 13 months Google Ads | FPAU | 90 days | FPGCLAW | 90 days | _gcl_au | 90 days | FPGCLGB | 90 days | _gcl_aw | 90 days | _gcl_gb | 90 days | FPGCLGS | 90 days | _gcl_gs | 90 days | FPGSID | 90 days Facebook | _fbp | 90 days | _fbc | 90 days TikTok | _ttp | 13 months | ttclid | 1 month Affiliates | awin_awc | 400 days | awin_sn_awc | 365 days | awin_source | 400 days | rakuten_site_id | 400 days | rakuten_time_entered | 400 days | rakuten_ran_mid | 400 days | rakuten_ran_eaid | 400 days | rakuten_ran_site_id | 400 days | outbrain_cid | 400 days | taboola_cid | 400 days | cje | 400 days Klaviyo | stape_klaviyo_kx | 400 days | stape_klaviyo_email | 400 days Snapchat | _scclid | 90 days | _scid | 90 days LinkedIn | li_fat_id | 90 days Microsoft ads (Bing) | uet_vid | 90 days Microsoft Bing | _uetmsclkid | 90 days Pinterest | _epik | 90 days Google Display & Video 360 | FPGCLDC | 90 days | _gcl_dc | 90 days --- # How to share account access? Source: https://stape.io/helpdesk/knowledgebase/share-access Section: Knowledgebase Guide to sharing access to your Stape Account with other users via Account settings. Before you start, please note: you can only grant access to your account to other standard accounts. It is not currently possible to give access to agency accounts. you can only grant access to your account to users within your Stape branch. For example, if you have a Stape Global account, you can only grant access to other Stape Global users. Similarly, if you have a Stape EU account, you can only grant access to other Stape EU users. It is not possible to grant access across different branches. 1. Open [your account](https://stape.io/login) and click Account settings. 2. Go to Shared Access. 3. Enter the email of a user with whom you want to share your account. Do not forget to click Share access to save the changes. ![Sharing access to your Stape Account](https://cdn.stape.io/i/697729dd11b8c258260292.gif) Important! The invited user will have full access to your container. 4. For invited users to see or edit the shared container, they need to log in to their account, click on their email at the top right corner and select Workspace. ![Invited users can see and edit the shared container](https://cdn.stape.io/i/69772aaf579be852298268.gif) How to revoke shared account access? In the Shared Access menu, you can Remove access that you've previously shared with other users. Alternatively, users can also Retire themselves from having shared access to other accounts. ![Revoking shared account access](https://cdn.stape.io/i/69738dade38a0131351025.png) Troubleshooting There are two most common issues with account sharing: 1. You are trying to share access with an Agency or Partner account. The Shared access menu only allows you to share your account with another Standard account. Solution: if you need to add your account to the list of accounts managed by an Agency or Partner, the owner of that account can add your account on their dashboard. We have dedicated guides on how to do that: [How to add a client to an Agency account](https://stape.io/helpdesk/knowledgebase/how-to-add-a-client-to-your-agency-account) [How to add a client to a Partner account](https://stape.io/helpdesk/knowledgebase/how-to-add-a-client-to-your-partner-account)https://stape.io/helpdesk/knowledgebase/how-to-add-a-client-to-your-partner-account This way, your Agency / Partner will be able to see your Stape products on their dashboard. Please keep in mind that you won't be able to view your Agency's / Partner's account through your Standard account. 2. You are trying to share access with an account registered in a different Stape region (Global or EU). It's only possible to share access with accounts registered in the same Stape branch. Solution: unfortunately, due to privacy concerns and to ensure full GDPR compliance, the only solution for this problem is to create a new account in the same branch as the one you wish to share access with. --- # How to find Web Google Tag Manager (GTM) ID? Source: https://stape.io/helpdesk/knowledgebase/how-to-find-web-google-tag-manager-gtm-id Section: Knowledgebase Learn how to find your Web Google Tag Manager (GTM) ID with this simple guide for efficient tag management. 1. Log in to your [Google Tag Manager account](https://tagmanager.google.com/). 2. Open the required web GTM container. ![Select a web GTM container](https://cdn.stape.io/i/6a38ffadbe338987801473.png) 3. In the top right corner (next to the Submit and Preview buttons) you’ll see some short text that starts with GTM- and then contains some letters/numbers. That’s your Google Tag Manager ID. ![GTM ID](https://cdn.stape.io/i/6a38fff3df885302252208.png) --- # Should I configure event deduplication when using Meta Conversions API Gateway? Source: https://stape.io/helpdesk/knowledgebase/should-i-configure-event-deduplication-when-using-meta-conversions-api-gateway Section: Knowledgebase Configuring event deduplication for Meta Conversions API Gateway. Event deduplication is set up automatically. Event_id deduplication key is automatically generated and propagated to help ensure deduplication between both channels (web and server). --- # How to use the Pricing Calculator? Source: https://stape.io/helpdesk/knowledgebase/how-to-use-pricing-calculator Section: Knowledgebase The Pricing Calculator is a neat handy feature designed to assist you with selecting the perfect subscription plan based on your needs and expected traffic. 1. Go to [pricing page](https://stape.io/price), select the service you're interested in and click Learn More, and then scroll down to Pricing calculator. 2. Answer the questions under it. If you click Yes, enter the number of monthly pageviews and events. 3. After that you will see the Plan that you should begin with. ![Pricing calculator](https://cdn.stape.io/i/67d93c8a64a6b097720053.png) --- # Can Stape help me with setting up server-side tagging? Source: https://stape.io/helpdesk/knowledgebase/server-side-tagging-set-up-help Section: Knowledgebase Learn how you can utilize Stape's Agency service to request help with server-side tracking setup, audit, and more. We have the Stape Care service that can help you configure, audit, and consult on tracking and data transfer issues [https://stape.io/care](https://stape.io/care). Please feel free to submit a quote request for the service that you feel will suit you best. You can also schedule a call with us via [https://stape.io/quote/setup](https://stape.io/quote/setup). --- # Do you use an additional non-GA4 client? Source: https://stape.io/helpdesk/knowledgebase/do-you-use-an-additional-non-ga4-client Section: Knowledgebase Find out if an additional non-GA4 client is needed for your setup and how it can enhance tracking and data management. Select yes if you use any additional Clients to deliver data from web Google Tag Manager to server Google Tag Manager. It can be, for example, stape’s [Data Client.](https://github.com/stape-io/data-client) --- # Where can I connect other events to fire? Source: https://stape.io/helpdesk/knowledgebase/connect-other-events-to-fire Section: Knowledgebase Connecting other events to fire in Meta Pixel. Meta’s Conversions API Gateway automatically detects event configured with FB pixel and sends through server. Deduplication is set up automatically. This documentation explains how Meta’s Conversions API Gateway works - [https://developers.facebook.com/docs/marketing-api/conversions-api/guides/gateway/setup](https://developers.facebook.com/docs/marketing-api/conversions-api/guides/gateway/setup) --- # What if I accidentally paid for the wrong plan? Source: https://stape.io/helpdesk/knowledgebase/accidentally-paid-for-the-wrong-plan Section: Knowledgebase Find out what happends if you accidentally paid for the wrong plan and what you can do. Write to - [support@stape.io](mailto:support@stape.io). You should expect money to return up to 10 business days, but usually, this happens in 3 business days. --- # How to check container usage? Source: https://stape.io/helpdesk/knowledgebase/check-container-usage Section: Knowledgebase Learn how to check sGTM container usage statistics on Stape. 1. Open your sGTM container. 2. Click Subscription and scroll down to the Usage statistic section. ![  Click Subscription and scroll down to the Usage statistic section  ](https://cdn.stape.io/i/67c08a5703ad2166611797.gif) --- # How to check events in Meta Pixel? Source: https://stape.io/helpdesk/knowledgebase/how-to-check-events-in-meta-pixel Section: Knowledgebase Checking events in Meta Pixel. Go to Events Manager in your Facebook Business Manager account. Select the Pixel you want to check. You will see a list of recent events with details on each, including event names and the parameters sent with them. ![Data sources](https://cdn.stape.io/i/67c08a3946a1b357372062.png) --- # Does Stape store data of clients' visitors? Source: https://stape.io/helpdesk/knowledgebase/does-stape-store-data-of-clients-visitors Section: Knowledgebase Learn if Stape stores your visitors' data and how you can handle such data processing. Stape hosts and processes whatever data you send to the server. Our clients are data controllers who determine the purposes and means of processing personal data. Clients themselves define the scope of user databases and the scope of personal data those databases comprise. In other words, our clients are solely responsible for what personal data they submit to us, and we store only the personal data of users that our clients submit to us. Stape undergoes scheduled audits, that is confirmed by the received certificates: HIPAA, ISO27001. Based on these certificates, Stape has rights proceeding all types of data. The above-mentioned information is public; you can investigate it by following this link: [https://app.vanta.com/stape/trust/q4enx4q7gch43uflljd8](https://app.vanta.com/stape/trust/q4enx4q7gch43uflljd8) Please follow our [DPA](https://stape.io/dpa) for more information. --- # How to connect new pixels inside the CAPIG hub? Source: https://stape.io/helpdesk/knowledgebase/how-to-connect-new-pixels-inside-the-capig-hub Section: Knowledgebase Connecting new pixels inside the CAPIG hub. Log in to your [Stape account](https://stape.io/login). Choose your Gateway container. Find your Conversions API Gateway URL and log in. Click Add data source and select the pixel. ![How to add data source](https://cdn.stape.io/i/67c08a2c93941418061217.gif) Take a look at how to create Meta Conversions API Gateway from scratch: [Meta's Conversions API Gateway in 60 seconds](https://www.youtube.com/watch?v=OhQpU3jOgwc&t=5s) --- # Is Stape able to handle any updates that happen on the CAPIG side to avoid having developers troubleshoot connections? Source: https://stape.io/helpdesk/knowledgebase/stape-handle-updates-on-the-capig-side-to-avoid-troubleshooting-connections Section: Knowledgebase Stape handles all the CAPI Gateway updates, there is no need to run any updates. Stape handles all the CAPI Gateway updates, there is no need to run any updates. --- # What is the difference between Agency vs Partner account? Source: https://stape.io/helpdesk/knowledgebase/agency-vs-partner-account Section: Knowledgebase Article answering your questions about the difference between Stape's Partner and Agency accounts. There are two key differences: 1. As an Agency account you don't receive any [commission from Stape](https://stape.io/blog/would-you-like-to-become-a-stape-partner) yet. This type of account is used solely to manage multiple [Standard accounts](https://stape.io/helpdesk/documentation/stape-standard-account). 2. Consequently, you don't have the Commissions and Payouts section in the account's menu. --- # Is the CAPI Gateway feature available for Stape EU? Source: https://stape.io/helpdesk/knowledgebase/is-the-capi-gateway-feature-available-for-stape-eu Section: Knowledgebase CAPI Gateway feature availability for Stape EU If you are a Stape Europe user, you can create a CAPI Gateway on your account on a European server. However, please note that The CAPI Gateway relies on Google Cloud servers in the EU region, which may involve data transfers outside the European Union. Please consider your country's privacy regulations when setting up the Conversion API Gateway. You can find all necessary information about [setting up your CAPIG in our guide](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway). --- # What if I forgot to enter my VAT? Source: https://stape.io/helpdesk/knowledgebase/what-if-i-forgot-to-enter-my-vat Section: Knowledgebase Find out what happens if you forget to enter your VAT. You can enter your VAT/GST number at any time in your Billing. If you add it before the next recurring payment, Stape will not charge VAT/GST on the next invoice or future invoices issued to you, as long as the number is valid. If you add a valid VAT/GST number and VAT/GST has previously been charged on your account, please reach out to our Customer Support team via [support@stape.io](https://help.stape.io/) regarding the taxes paid. --- # Can I capture a purchase value via Shopify, Woocommerce, Clickfunnels, etc.? Source: https://stape.io/helpdesk/knowledgebase/can-i-capture-a-purchase-value-via-shopify-woocommerce-clickfunnels-etc Section: Knowledgebase Capturing purchase value via Shopify, WooCommerce, and ClickFunnels Yes. If you have this event setup via FB pixel, then you can capture any purchase value. --- # How to trigger server Tags based on user consent? Source: https://stape.io/helpdesk/knowledgebase/how-to-trigger-server-tags-based-on-user-consent Section: Knowledgebase Learn how to trigger server tags based on user consent to ensure compliance and optimized tracking. You must trigger tags in sGTM depending on user consent. The implementation of consent in server GTM highly depends on your consent management platform and how you deliver data to sGTM. Don't hesitate to contact your CMP support for more information on how to implement consent in sGTM. This stape blog post gives a general description of setting up consent in sGTM[https://stape.io/blog/consent-mode-server-google-tag-manager](https://stape.io/blog/consent-mode-server-google-tag-manager) --- # What does 3 cloud servers or 5 cloud servers per container mean? Source: https://stape.io/helpdesk/knowledgebase/what-does-3-cloud-servers-or-5-cloud-servers-per-container-mean Section: Knowledgebase Learn what 3 cloud servers or 5 cloud servers per container means. Google recommends using at least 3 cloud servers in the production environment for redundancy. That is why Stape set up 3 servers for Pro plan users and 5 cloud servers for Business plan users. This way, we ensure your tagging server infrastructure is stable and scalable. The multi-cloud server setup is required for redundancy and stability of the sGTM container. Please note that 3 cloud servers do not mean you can use the Pro container for 3 websites. One container should be used for one site (unless you need a multi-domain feature). --- # Do you provide consulting? Source: https://stape.io/helpdesk/knowledgebase/do-you-provide-consulting Section: Knowledgebase Learn how to request a consultation from Stape using our Care service. Yes, we do. Please, visit - [https://stape.io/care](https://stape.io/care) - for detailed information. We can offer a set-up, audit and a consultation. --- # Where can I find your Terms and Conditions? Source: https://stape.io/helpdesk/knowledgebase/where-can-i-find-your-terms-and-conditions Section: Knowledgebase See how to find Stape's Terms and Conditions in the footer of the site, and the list of this documentation. You can find our terms and conditions in the footer of the site. Here is a list of our documentation: Cookie Notice - [https://stape.io/eu-cookie-notice](https://stape.io/eu-cookie-notice) GDPR Statement - [https://stape.io/eu-gdpr](https://stape.io/eu-gdpr) Terms of Use - [https://stape.io/eu-terms-conditions](https://stape.io/eu-terms-conditions) Privacy Notice - [https://stape.io/eu-privacy-notice](https://stape.io/eu-privacy-notice) Data processing agreement and standard contractual clauses - [https://stape.io/eu-dpa](https://stape.io/eu-dpa) Service Level Agreement - [https://stape.io/eu-sla](https://stape.io/eu-sla) --- # If we implement the API Gateway we won't need Facebook on web/server-side with GTM? Source: https://stape.io/helpdesk/knowledgebase/facebook-web-or-server-side-gtm-with-implemented-api-gateway Section: Knowledgebase Implementing API Gateway eliminates the need for Facebook on web/server-side with GTM CAPI Gateway sends Meta Pixel events through a server connection. When you use CAPI Gateway, you must have the correct Meta Pixel tracking setup. However, there is no need to use server GTM since server events are handled through the CAPIG. --- # Is it possible to exclude the root domain and only configure event publishing for a subdomain with Meta Conversions API Gateway? Source: https://stape.io/helpdesk/knowledgebase/exclude-the-root-domain-and-configure-event-publishing-for-a-subdomain-with-meta-conversions-api-gateway Section: Knowledgebase Excluding the root domain and configuring event publishing for a subdomain with Meta Conversions API Gateway When you configure CAPI Gateway, it uses pixel data to track FB events from the server side.Inside the Meta’s Conversions API Gateway Hub, website configuration allows you to manage domains that send events to CAPIG. Using this setting, you can limit domains that send data to the CAPIG and allow only required subdomains. So using this tool you can configure the CAPI Gateway Hub to send server-side events for blog.example.com but not for example.com. --- # How can I request a new feature on Stape? Source: https://stape.io/helpdesk/knowledgebase/how-can-i-request-a-new-feature-on-stape Section: Knowledgebase Want to request a new feature from us? See how you can ask Stape to add new features! You can use [this page](https://feature.stape.io/) to request any missing features or bug reports for Stape. You can also ask for any missing client, tag, or variable template for web or server Google Tag manager. We'll do our best work in order to make stape and server-side tagging even better! --- # What are differences of using Meta Conversions API Gateway over FB CAPI? Source: https://stape.io/helpdesk/knowledgebase/meta-conversions-api-gateway-vs-facebook-capi Section: Knowledgebase Differences between Meta Conversions API Gateway and FB CAPI Three main advantages of Meta Conversions API Gateway over FB CAPI: easy setup; works for multiple pixels/domains in one BM; may be cheaper than using sGTM for all sites (but it depends on the number of sites). --- # How to find your Stape Container/Gateway ID? Source: https://stape.io/helpdesk/knowledgebase/how-to-find-your-stape-container-gateway-id Section: Knowledgebase Guide to finding your existing Stape GTM container's or CAPI Gateway's ID. Each server GTM container and CAPI Gateway on Stape has its own unique ID. To find it: 1. Log in to your Stape account. 2. Choose your sGTM Container or Gateway. 3. Right in its settings you will be able to see the required field. ![sGTM Container identifier](https://cdn.stape.io/i/67c0899064bbb270779637.png) ![CAPI Gateway identifier](https://cdn.stape.io/i/67c0899030f77604808446.png) When opening a support ticket, always include your Container or Gateway ID. This will speed up communication and help our support team find the right product in question. --- # Do you have any yearly plans? Source: https://stape.io/helpdesk/knowledgebase/do-you-have-any-yearly-plans Section: Knowledgebase Check out if we have yearly plans. Yes, we offer yearly plans for all our products: [Server-side GTM](https://stape.io/price) [Meta Conversions API Gateway](https://stape.io/price-gateway) [Stape Gateway](https://stape.io/price-gateway?product=stape-gateway) [TikTok Events API Gateway](https://stape.io/price-gateway?product=tiktok-eapig) [Snapchat Conversions API Gateway](https://stape.io/price-gateway?product=snap-capig) [Signals Gateway](https://stape.io/price-meta-signals-gateway) --- # Why do you only accept payments from European residents in Stape Europe? Source: https://stape.io/helpdesk/knowledgebase/why-do-you-accept-only-payments-from-european-residents-in-stape-europe Section: Knowledgebase Find out why we only accept payments from European residents in Stape Europe. We accept payments from EU OSS member countries, along with Switzerland, the United Kingdom, and Norway. According to EU VAT regulations, the Stape Europe OU must collect VAT on payments of customers consuming our service within the European Union. Stape Europe OU cannot collect VAT or other taxes from residences of other countries at this moment. If you are a tax resident in a non-European Union country (individual or company), please select Global on the [sign-up page](https://stape.io/sign-up). ![Selecting Global on the sign-up page](https://cdn.stape.io/i/67c08989011a2470555608.png) --- # Does Stape offer any trial period? Source: https://stape.io/helpdesk/knowledgebase/does-stape-offer-any-trial-period Section: Knowledgebase Learn if Stape offers a trial period and its terms. Yes, we do: sGTM hosting is available for free with a limit of 10,000 requests per month (up to 5 free containers per Stape account). Meta Conversions API Gateway, Stape Gateway, TikTok Events API Gateway, and Snapchat Conversions API Gateway have a 7-day trial. Signals Gateway is available for free with a limit of 10,000 events per month (up to 5 free gateways per Stape account). --- # How to change invoice details? Source: https://stape.io/helpdesk/knowledgebase/how-to-change-invoice-details Section: Knowledgebase Find out how to change your invoice details in Stape. 1. Open [your account](https://stape.io/login) and click Billing. 2. Change your payment details or billing information. ![Change your payment details or billing information](https://cdn.stape.io/i/67c089625eb0d191376455.gif) Please keep in mind that updating your payment or billing information will only affect future invoices - any invoices that have already been issued will remain unchanged. --- # How to find Stape container API Key? Source: https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key Section: Knowledgebase Learn how to find Stape container API Key. To find the Stape container API Key: [Log in](https://stape.io/login) to your Stape account. Select sGTM container. In the Settings section, you will see the API Key. ![  In the Settings section, you will see the API Key](https://cdn.stape.io/i/67c08959effdf052686184.png) --- # What to do if custom subdomain is not verified for TikTok Events API Gateway? Source: https://stape.io/helpdesk/knowledgebase/custom-subdomain-is-not-verified-for-tiktok-events-api-gateway Section: Knowledgebase Fix custom subdomain verification issues for TikTok Events API Gateway. Domain verification takes up to 72 hours, although it often happens within a few hours if your DNS records are correct. You can check what DNS records you have by using this service: [https://toolbox.googleapps.com/apps/dig](https://toolbox.googleapps.com/apps/dig) Using it is super easy: 1) Specify your subdomain that you created for TikTok Events API Gateway (without https:// and extra characters). 2) Select the desired record type you want to check. Example: ![Example](https://cdn.stape.io/i/67c0894a75c4a947261753.png) Main reasons why a subdomain is not verified 1. Missing DNS records Make sure that all required records are added. They may have been accidentally deleted by someone else. 2. Incorrect DNS records If entries exist, make sure their values match those specified in your Gateway on Stape. 3. Extra DNS records Make sure there are no extra DNS records for your TikTok Events APIG subdomain, only those specified in your Gateway on Stape. If, for example, you have extra AAAA records - this can interfere with domain verification, so you should remove them and leave only those specified in the 'Domains' section of your Stape Gateway. --- # Is the same admin email used for Meta Conversions API Gateway? Source: https://stape.io/helpdesk/knowledgebase/same-admin-email-for-meta-conversions-api-gateway Section: Knowledgebase Same admin email used for Meta Conversions API Gateway. If you plan to create several CAPI Gateways on your Stape account on the same server, you need to use different admin emails when creating a Gateway. If you try to create a new CAPI Gateway with the same email, you will receive an error: "CAPI Gateway for this email already exists". When you create a new CAPI Gateway, you create a new account to log in to your Gateway Hub, so no two Gateway Hub login emails can be the same. *You can use the same admin email only if you choose a different server than the one you are already using when creating a new CAPI Gateway. --- # Can I use one container for multiple sites? Source: https://stape.io/helpdesk/knowledgebase/can-i-use-one-container-for-multiple-sites Section: Knowledgebase Learn if you can use one container for multiple sites. You should use one container for one site. We set up 3 cloud servers for one container because [Google recommends using at least 3 servers](https://developers.google.com/tag-platform/tag-manager/server-side/app-engine-setup#recommended_production_settings) in the production environment for redundancy. --- # How to change billing country for my Stape account? Source: https://stape.io/helpdesk/knowledgebase/change-billing-country-for-your-stape-account Section: Knowledgebase Find out how to change billing country for your Stape account. If you want to change the billing country on your account, please contact [support@stape.io](mailto:support@stape.io) and our support team will help you with this. --- # Where can I find an invoice and a receipt? Source: https://stape.io/helpdesk/knowledgebase/where-can-i-find-an-invoice-and-a-receipt Section: Knowledgebase Learn where you can find an invoice and a receipt. For Standard accounts 1. Open your Standard [Stape account](https://stape.io/login) and click Billing. ![Click Billing](https://cdn.stape.io/i/69d501a3f3688722037503.png) 2. Scroll down to the Invoices section to view your invoice history, download invoices and receipts, and configure consolidated invoicing. ![Invoice history](https://cdn.stape.io/i/69d502ea0aa17506736060.png) For Agency and Partner accounts 1. Open your Agency/Partner [Stape account](https://stape.io/login) and click Billing. ![Agency/Partner billing](https://cdn.stape.io/i/69d5077fd86df017616052.png) 2. Review your invoice history and download your invoices. If you've enabled Consolidated Invocing, your sub-accounts' invoices will be presented separately from your own. ![Agency/Partner invoice history](https://cdn.stape.io/i/69d507cc73fe4401900117.png) --- # Does Stape support multiple domains and containers for sGTM? Source: https://stape.io/helpdesk/knowledgebase/does-stape-support-multiple-domains-and-containers-for-sgtm Section: Knowledgebase Find out if Stape supports multiple domains and containers for sGTM and how it's done. Yes, we have this feature. Open your Stape account and choose a container. Click Power-ups and choose Change plan in the Multi-Domains section. ![Using multiple domains and containers for sGTM with Stape](https://cdn.stape.io/i/67c0890a6748b918858303.png) Multi-domain is available for Business Plan and higher plans users. You should set up A record for all your domains and add them to the stape.io container. --- # Is there an option to select which data to exclude from the payload to Meta? Source: https://stape.io/helpdesk/knowledgebase/select-which-data-to-exclude-from-the-payload-to-meta Section: Knowledgebase Option to select data to exclude from the Meta payload You can control which events are sent to Meta inside the Conversion API Gateway hub interface. ![Meta](https://cdn.stape.io/i/67c088f808101935797733.png) When connecting Meta Pixel to Meta CAPIG hub, you can control which user data you want to share with Meta by clicking Show customer information parameters. ![Meta Pixel](https://cdn.stape.io/i/67ce0dec748a7456194817.png) --- # Where to get the total number of GA4 events? Source: https://stape.io/helpdesk/knowledgebase/where-to-get-the-total-number-of-ga4-events Section: Knowledgebase Find out where to get the total number of GA4 events. Open GA4 -> Reports -> Engagement -> Events and take a look at the total number in the row Event Count for a month. ![Total number of events in the row Event Count](https://cdn.stape.io/i/69787f3c5c2f9503261967.png) --- # How to add company info for payment? Source: https://stape.io/helpdesk/knowledgebase/how-to-add-company-info-for-payment Section: Knowledgebase Find out how to add your company info for payment. Please note that it's impossible to change invoices that were already created. All changes will apply only to future invoices. 1. Click billing in the top right menu of your Stape account. 2. Click Update information. Here you can add your Tax ID and company name. ![Adding your company info for payment](https://cdn.stape.io/i/67c088f1584b8966784687.gif) Please note that in some cases, you can only add a payment method when creating a subscription on your container. --- # How is user data protected? Source: https://stape.io/helpdesk/knowledgebase/how-user-data-is-protected Section: Knowledgebase Information about Stape security measures and precautions to safeguard user data. Stapes’s physical infrastructure is hosted and managed within Google Cloud secure data centres and utilises the Google Cloud Platform (GCP) technology. GCP provides built-in protection and global network that Google uses to protect your information, identities, applications, and devices. All GTM Server containers are isolated from one another for security purposes. Stape uses Google Kubernetes Engine with recommended security settings to ensure that access is properly restricted for all customers. [And if you are on Stape Europe:](https://stape.io/eu-hosting) Using EU-owned and hosted proxy server is a GDPR-compliant way to use Google Analytics. Stape Europe is a European company that uses a European cloud server provider to run your server GTM container. But only using Stape Europe for sGTM won't make your Google Analytics GDPR compliant. You also need to pseudoanonimize user data before sending it to GA. It needs to be done manually using the server GTM interface. --- # What if we already have another plugin for tracking or a code in the html of the website, should we remove them? Source: https://stape.io/helpdesk/knowledgebase/already-have-another-tracking-plugin-or-code Section: Knowledgebase Do I need to remove existing tracking plugins or code for integration? CAPI Gateway takes event data from Meta pixel and sends events through a server connection. So there is no need to remove Meta pixel integration. However, if you have any integration that send Meta Conversions API, then it's better to remove it. --- # Do you offer a free trial for Meta Conversions API Gateway? Source: https://stape.io/helpdesk/knowledgebase/do-you-offer-a-free-trial-for-meta-conversions-api-gateway Section: Knowledgebase Is there a free trial available for Meta Conversions API Gateway? Yes, we offer a 7-day free trial for Meta Conversions API Gateway. --- # Where can I see request usage statistics? Source: https://stape.io/helpdesk/knowledgebase/where-can-i-see-request-usage-statistics Section: Knowledgebase Find out where you can see request usage statistics. 1. Go to your account and open the container. 2. Click Subscription. 3. Scroll down. You will see your usage statistics. ![Usage statistics on the Subscription tab](https://cdn.stape.io/i/67c088db7b35f754146721.gif) --- # What is the difference between Global sGTM hosting and EU sGTM hosting? Source: https://stape.io/helpdesk/knowledgebase/what-is-the-difference-between-global-sgtm-hosting-and-eu-sgtm-hosting Section: Knowledgebase Find out the difference between Global sGTM hosting and EU sGTM hosting on Stape. EU sGTM hosting was created to help our clients use Google Analytics in a GDPR-compliant way. EU sGTM hosting uses European cloud server provider Scaleway for running sGTM containers and is owned by Stape Europe (a company registered in Estonia). Together with user data anonymization, EU sGTM hosting will help to make using Google Analytics GDPR compliant. Global sGTM hosting uses Google Cloud as a cloud server provider. --- # How to upgrade from Pro to Business plan? Source: https://stape.io/helpdesk/knowledgebase/upgrade-from-pro-to-business-plan Section: Knowledgebase Learn how to upgrade your subscription from Pro to Business plan. 1. Open your [Stape account](https://stape.io/login) and choose a container. 2. On the right, you need to click the Change plan button. 3. Choose monthly or annual Business plan (or any you'd like) and don't forget to hit the Change plan button. ![Upgrading your subscription from Pro to Business](https://cdn.stape.io/i/6a0c29bdc5652174319690.gif) --- # Are there any limits for the subscription plans you offer for Meta Conversions API Gateway? Source: https://stape.io/helpdesk/knowledgebase/limits-for-the-subscription-plans-for-meta-conversions-api-gateway Section: Knowledgebase Are there limits for subscription plans for Meta Conversions API? You get up to 10 million events for $10/month and up to 200 million events on a $100/month plan. Another option is to use stape's private multiuser Meta Conversions API Gateway hub: We create dedicated server infrastructure for your Meta Conversions API Gateway hub. Hub can handle up to 2 billion events per month. In addition, you can connect pixels from different Business Managers to this CAPIG hub. Dedicated support for questions related to setting up and managing the CAPIG hub. Private multiuser Meta Conversions API Gateway hub on stape costs $1000/month. If you are interested in private multiuser Meta Conversions API Gateway hub, please reach out to support@stape.io --- # Can I change server location for my sGTM container? Source: https://stape.io/helpdesk/knowledgebase/can-i-change-server-location-for-my-sgtm-container Section: Knowledgebase Find out if it's possibe to change server location for your sGTM container. Unfortunately, changing server location is not possible for existing containers. You need to create a new server container on Stape with the preferred location, point a new subdomain accordingly, and do minor changes in the setup for everything to work properly. You can utilize export/import functionality in Google Tag Manager to migrate your existing configuration. --- # How to choose User Identifier type in Cookie Keeper? Source: https://stape.io/helpdesk/knowledgebase/how-to-choose-user-identifier-type-in-cookie-keeper Section: Knowledgebase Learn how to choose User Identifier type in the Cookie Keeper power-up on Stape. If you choose the Other platform option while configuring the Cookie Keeper power-up, you will see different options in the User Identifier type field: cookie, local storage, DOM element, JavaScript variable, and Stape User ID. ![Different options in the User Identifier type field](https://cdn.stape.io/i/67c088c0cd24f168576403.png) All these elements are identifiers for the User ID that help restore the cookies of a specific user that was lost due to ITP browser restrictions. We recommend using Cookie in this field as it is the most reliable method. Just make sure to create a cookie that complies with the requirements we describe below. You also have alternatives such as Local Storage, DOM Elements, and JavaScript variables. However, Cookie is still preferred. If you can’t set the user identifier to comply with the requirements in the next section, you can choose [Stape User ID](https://help.stape.io/hc/en-us/articles/12353853307677-User-ID-power-up). In this case, cookies will be restored based on the user id that Stape generates. Requirements for creating a Cookie as User Identifier type You'll need a master cookie in place for Cookie Keeper to restore the user's cookies. The ideal approach is as follows: The cookie should be set from the server response, with the server's IP address differing by no more than the last two octets. On every page load, the server should set the cookie (let's call it 'user_id', for example) if it doesn't already exist: [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie). The user_id should not be changed/updated if already present in the browser (just extend, it needs to be persistent.) The value of the cookie must be unique for each user. You can use e.g. IP address + timestamp as the cookie's value. Cookie duration: 400 days. Cookie domain: .your-domain.com HTTP only: false (do not set this parameter to true) Secure: true Maximum allowed length: 48 characters --- # How to enable Two-Factor Authentication (2FA)? Source: https://stape.io/helpdesk/knowledgebase/how-to-enable-two-factor-authentication-2fa Section: Knowledgebase Guide to enabling Two-Factor Authentication (2FA) for your Stape account. 1. Open your stape account. 2. At the top right, choose Account settings. 3. Click on Security. Next to Two-Factor Authentication choose Configure. 4. Follow the instructions and don't forget to click Configure. ![Follow the instructions and don't forget to click Configure](https://cdn.stape.io/i/67c088ad5db94261601053.gif) --- # Which taxes are collected by Stape? Source: https://stape.io/helpdesk/knowledgebase/which-taxes-are-collected-by-stape Section: Knowledgebase Learn which taxes are collected by Stape. Stape is required by EU VAT legislation to collect VAT on payments of customers who use our service within the European Union. When adding your payment information to Stape, you will be asked to add billing details which indicates whether or not you are inside the EU for VAT purposes. VAT will not apply if you indicate that you are outside of the European Union. VAT will not be applied to your payment if you use our service and provide us with your valid VAT number. If you use our service and your VAT number is invalid, VAT will be charged at the rate applicable in your country of residence. Please ensure the following to avoid this: Your VAT number is entered correctly, including your country number, and is valid. You are not using your personal (individual) [VAT number](https://ec.europa.eu/taxation_customs/vat-identification-numbers_en). If you use our service and we are unable to validate the VAT number you provided, we will process your payment and charge VAT. We'll attempt to confirm it again later. If you use our service as an individual (B2C), VAT will be charged at the rate applicable in your country of residence. Also, if you update your billing by entering a new VAT number or another country or state of residence, the cost of your recurring payment may change according to possible differences in your VAT rate. For example, if a client places an order for a recurring subscription and verifies that he or she is outside the EU, but then confirms that he or she is an EU resident in the Billing information, VAT will be charged with the following payment. Instead, if a client places an order for a recurring subscription and verifies that he or she uses Stape services in Cyprus, a 19% VAT rate applies. If Greece is chosen as a country of consumption, a 24% VAT rate will be applied. --- # Where do I add my VAT number? Source: https://stape.io/helpdesk/knowledgebase/where-do-i-add-my-vat-number Section: Knowledgebase Learn how to add VAT (Valued Added Tax) for customers residing within the European Union. VAT (Valued Added Tax) is required for customers residing within the European Union. To add your VAT or GST number, please follow these steps: Sign in your [Stape account.](https://stape.io/sign-up) In the top menu you will see Billing button, click it. In Billing Information, click Update information. In Tax ID, click on ID type and add your VAT number. Click Save. ![Adding your VAT or GST number](https://cdn.stape.io/i/67c08892104b9665892987.gif) --- # Will requests be renewed in the next billing period if I exceed the free plan limit? Source: https://stape.io/helpdesk/knowledgebase/will-requests-be-renewed-in-the-next-billing-period-if-exceed-the-free-plan-limit Section: Knowledgebase Learn if requests/month will be renewed in the next billing period if you exceed the free plan limit. We offer 10 000 requests/month on a free plan. This offer is valid as long as your container doesn't exceed 10 000 requests/month. If it does, we'll have to pause and disable the service until you upgrade. Unfortunately, the container won't be enabled for the next billing period, and the requests limit will not reset. Please keep in mind that you can have up to 5 free sGTM containers per Stape account. --- # How to cancel a subscription to Stape Gateway? Source: https://stape.io/helpdesk/knowledgebase/how-to-cancel-a-subscription-to-stape-gateway Section: Knowledgebase Learn the steps to cancel your subscription to Stape Gateway quickly and easily with our simple guide. Log into your [Stape account](https://stape.io/login). Go to your Stape Gateway. Click on the three dots at the top right. Choose the option "Cancel subscription". ![Stape Gateway](https://cdn.stape.io/i/680f8227d32aa833504078.png) 4. Please add the reason for cancellation and click “Confirm". ![Cancelling Subscription](https://cdn.stape.io/i/680f8370f1446547372642.png) --- # What is the difference between Agency vs Standard account? Source: https://stape.io/helpdesk/knowledgebase/agency-vs-standard-account Section: Knowledgebase Article answering your questions about the difference between Stape's Standard and Agency accounts. The main difference between Standard and Agency accounts is billing and purpose. 1. Standard account. You can create an unlimited number of sGTM containers with a standard account. But all must use one payment method. The purpose of such an account is to use Stape's services. 2. Agency account. This type of account allows creating sGTM and Meta CAPI Gateway containers for your clients. You will be able to manage all containers under your agency account, and on the other side, each client will have a separate [stape.io](http://stape.io/) account to add billing information. The Agency account works best if you need individual billing for each container. Also, the Agency account is the first step towards the [Partner account](https://stape.io/helpdesk/documentation/stape-partner-account). To create an agency account use this link - [https://stape.io/sign-up/agency](https://stape.io/sign-up/agency) --- # How to find the Stape container identifier? Source: https://stape.io/helpdesk/knowledgebase/how-to-find-the-stape-container-identifier Section: Knowledgebase Learn how to find the Stape container identifyer. To find the Stape container identifier: [Log in](https://stape.io/login) to your stape account. Select sGTM container In the Container Settings section, you will see the Container identifier, which usually consists of 8 symbols. ![The Container identifier in the Container Settings section](https://cdn.stape.io/i/6a27dcab3106f110726238.gif) --- # Why was my container disabled? Source: https://stape.io/helpdesk/knowledgebase/why-was-my-container-disabled Section: Knowledgebase Find out why your container was disabled. There are two reasons why your container can be disabled: container exceeded the request limit. Our system automatically disables containers that exceed the request limit. But before that you will receive numerous email warnings. You can calculate requests and choose the preferred plan here: [https://stape.io/price](https://stape.io/price) container did not send requests for more than two weeks. Our system automatically disables containers that did not send requests for more than two weeks. To activate the container, open the sGTM container, click three dots in the top right corner, and click activate. If there are no requests, your container will be deactivated again. --- # Can I move Stape Global account to Stape EU account using the same email? Source: https://stape.io/helpdesk/knowledgebase/is-a-way-to-move-stape-global-account-to-stape-eu-account-using-the-same-mail Section: Knowledgebase Article answering your questions about moving from Stape Global account to Stape EU account using the same email. Yes! To do this, [create a new Stape EU account](https://stape.io/sign-up) with the same email address that you used for Stape Global. ![Moving Stape Global account to Stape EU account](https://cdn.stape.io/i/6953f7d9e3858956030821.png) Please note that you can use the same sGTM config in EU as you already have in Global. The only thing that you would need to do when transferring containers from Global to Europe is set a new DNS record for the custom domain. If you used any power-ups in Stape Global, you would need to manually configure them in Stape Europe. For Custom Loader power-up, ensure that you've updated the GTM script on your site after moving the Custom Loader from Global to EU because the GTM script will change. If you already have a subscription to Stape Global, the only way to transfer the subscription is to create the same container on Stape Europe and email [support@stape.io](mailto:support@stape.io). We will cancel your subscriptions on Stape Global and send a prorated refund, and you will be able to create a new one on Stape Europe. --- # How to convert Standard account to Agency account? Source: https://stape.io/helpdesk/knowledgebase/how-to-convert-standard-account-to-agency-account Section: Knowledgebase Guide to converting your Stape account from Standard to Agency tier. 1. Log in to [your stape account](https://stape.io/login). 2. On the top right click on your profile and choose Account settings. 3. On the top right click on three dots and choose Convert to Agency. ![Converting your Stape account from Standard to Agency](https://cdn.stape.io/i/67c08854eef66088994757.gif) Note! Please pay attention to the pop-up that appears after you click Convert to Agency. There will be your new Agency login (your email+agency) and the same password. So in the future, if you'd like to sign in to your Standard account - use your existing login email and password. If you'd like to sign in to your Agency account - use the new Agency login (email+agency) and password. --- # What's the Stape refund policy? Source: https://stape.io/helpdesk/knowledgebase/what-is-the-stape-refund-policy Section: Knowledgebase Find out about Stape's refund policy. For monthly payments, we will honor a 14-day money-back guarantee, starting from your previous date of purchase. For yearly plan users, we offer a 60-day money-back guarantee. To receive a refund, please email support@stape.io. To learn more, see Stape’s [Refund Policy in Terms and Conditions](https://stape.io/terms-conditions#6-refund-policy). --- # What happens if my container reaches the free requests limit? Source: https://stape.io/helpdesk/knowledgebase/what-happens-if-my-container-reaches-the-free-requests-limit Section: Knowledgebase Find out what to do if your container reaches the free requests limit. We have to pause your container if it reaches the free requests limit. It means that the server-side tagging that you've set up via the GTM Server will stop working. You need to switch to PRO or Business Plan (depends on your traffic). You can monitor the amount of the requests below the container name. ![The amount of the requests below the container name](https://cdn.stape.io/i/67c088389cad1817415854.png) --- # How to add a client to your Partner account? Source: https://stape.io/helpdesk/knowledgebase/how-to-add-a-client-to-your-partner-account Section: Knowledgebase Guide to adding a new client to your Partner Stape account. There are several ways to add a client to your Partner account: Option 1. In your dashboard, click Link existing account to add an existing user. You are able to add the existing user who registered on Stape not longer than 7 days ago. ![Click Link existing account to add an existing user](https://cdn.stape.io/i/69986dbacbecc302761011.png) ![Enter the user's email and product](https://cdn.stape.io/i/69986e710b6a0829397994.png) Option 2. In your dashboard, click Create sub account to create an account for the user on Stape. ![Create sub account](https://cdn.stape.io/i/69986fb3f3dde599859686.png) ![Fill in the user info](https://cdn.stape.io/i/69986f6bd477f439656104.png) Option 3. Share your unique referral link with the client. ![Adding clients using your referral link](https://cdn.stape.io/i/6998705a15330291161049.png) The user should click on it and press the Try for free button on the top right. The only thing left to do is to Sign up with the email and choose a password. The client will automatically appear in the dashboard. Adding a client from a different region There are two regions in Stape’s accounts: EU Select this option if your clients and their businesses are based in the European Union and require strict GDPR compliance. Account currency: EUR. Taxes are calculated according to EU regulations. Global Select this option if your clients and their businesses are located outside the European Union. Account currency: USD. Best suited for businesses that do not need to comply with EU GDPR rules. Please keep in mind that accounts from a different branch cannot be added to a Partner account (i.e., you can’t add clients from the EU to your Global Partner account, and vice versa). This means that, if you work with both EU and Global clients, you will need two separate Partner accounts (one per region). This ensures proper data hosting and GDPR compliance. Please note that in this case, both accounts must satisfy the Partner account requirements (both must have at least 5 paid products or $50 in monthly referral value). You can use the same email for both accounts. You can also contact Stape to get a universal link that will allow your users to select the region that they want. --- # How to downgrade my container plan? Source: https://stape.io/helpdesk/knowledgebase/how-to-downgrade-my-container-plan Section: Knowledgebase Learn how to downgrade your container plan on Stape. If you want to downgrade from your plan to a lower one, please write to our [support](https://ticket.stape.io/hc/en-us/requests/new). Your container will be downgraded to the plan you'd like. The sum of money will remain on your Stape balance and will be used for the payment in the next billing period of your container. --- # How to add a client to your Agency account? Source: https://stape.io/helpdesk/knowledgebase/how-to-add-a-client-to-your-agency-account Section: Knowledgebase Guide to adding a new client to your Agency Stape account. There are several options to add a client to your Agency account (and you can transfer ownership of a product at any moment): Option 1. You can add a new client by clicking Create sub account. You will be able to create an account on Stape for the client. To create it, you can either: Use the client's existing email address. Or use the Agency's corporate email address in the format your_Agency_account_name+client_or_company_name@stape.io, for example myagency+myclient@stape.io). ![Click Create sub account](https://cdn.stape.io/i/69971284d0161749007220.png) ![Create a Stape account for the client](https://cdn.stape.io/i/69970fd24ed61910676342.png) Option 2. You can add an existing user by clicking Link existing account. Please note that this option only allows to add accounts that were created less than 7 days ago and which are not linked to other affiliates. To add such a user to your Agency account, please enter client's login email and the name of one of the existing products to verify the request. ![Adding a user to your agency account](https://cdn.stape.io/i/699712ea717ef383211817.png) ![Enter client's login email and the name of one of the existing products ](https://cdn.stape.io/i/699713527b431496617067.png) Please make sure to use the product's correct name, i.e. the one that you assigned when creating the product such as an sGTM container. See example below: ![Use the product's correct name](https://cdn.stape.io/i/6810d0f4016d3226719751.png) Option 3. You can add clients using your referral link: ![Adding clients using your referral link](https://cdn.stape.io/i/699716305ba00003666532.png) Option 4. If for any reason you are unable to add a user who meets the requirements, you can write to [support@stape.io](mailto:support@stape.io), send us the user's email + container, and we will be able to add them manually. If you want to add a user who is no longer within the 7-day period, the only option is for the client to contact us at [support@stape.io](mailto:support@stape.io) with a request to be added to your agency. Adding a client from a different region There are two regions in Stape’s accounts: EU Select this option if your clients and their businesses are based in the European Union and require strict GDPR compliance. Account currency: EUR. Taxes are calculated according to EU regulations. Global Select this option if your clients and their businesses are located outside the European Union. Account currency: USD. Best suited for businesses that do not need to comply with EU GDPR rules. Please keep in mind that accounts from a different branch cannot be added to an Agency account (i.e., you can’t add clients from the EU to your Global Agency account, and vice versa). This means that, if you work with both EU and Global clients, you will need two separate Agency accounts (one per region). This ensures proper data hosting and GDPR compliance. You can use the same email for both accounts. You can also contact Stape to get a universal link that will allow your users to select the region that they want. --- # How to change plan? Source: https://stape.io/helpdesk/knowledgebase/how-to-change-plan Section: Knowledgebase Learn how to change your subscription plan in Stape. 1. Open your stape account and choose a container. On the right, click Change plan. 2. Then choose a plan you want to use and do not forget to click the Continue with... button. ![Changing your subscription plan](https://cdn.stape.io/i/67c087dfa855a702638380.gif) --- # How to find CAPIG API Key? Source: https://stape.io/helpdesk/knowledgebase/how-to-find-capig-api-key Section: Knowledgebase How to find your CAPIG API Key? 1. Log into your [Stape account](https://stape.io/login) → FB CAPI Gateways → choose the right CAPIG from the drop-down menu. ![Stape account](https://cdn.stape.io/i/67c087dbb0dcd436960120.png) 2. In the "CAPIG settings" see "Show CAPIG API Key". ![CAPIG settings](https://cdn.stape.io/i/67c087dbd6cfe230471175.png) --- # When should I use CNAME record instead of A records for domain verification? Source: https://stape.io/helpdesk/knowledgebase/when-should-i-use-cname-record-instead-of-a-records-for-domain-verification Section: Knowledgebase Learn when to use CNAME record instead of A records for domain verification. This can be useful when DNS providers restrict adding duplicate records. A common situation is with domains hosted on Shopify. Let's say your tagging server URL is sgtm.example.com. You should create A and AAAA DNS records to verify the domain on Stape. If Shopify manages your domain, creating both A and AAAA records for the same subdomain is impossible. Thus, you can't verify a custom domain on Stape. To handle this issue, do not enable the checkbox Use A records instead of CNAME record. --- # What happens if the container reaches the monthly request limit? And when does it reset? Source: https://stape.io/helpdesk/knowledgebase/what-happens-if-the-container-reaches-the-monthly-request-limit-and-when-does-it-reset Section: Knowledgebase Find out what happens if the container reaches monthly request limit. When a Stape sGTM container or Signals Gateway reaches its monthly request limit (requests for containers or events for gateways), we send email notifications asking you to upgrade. If the container/gateway exceeds its limit by 10% (reaching 110% of the plan's capacity), it will be transitioned to a Paused status. In this state, the container/gateway behaves as if it were disabled and stops processing all incoming requests/events. The pause logic depends on your specific plan: Pro and Pro+ plans: the container/gateway is paused immediately once the 110% threshold is reached. Business, Business+, Enterprise, and Enterprise+ plans: we provide a 30-day grace period the very first time an overlimit is detected. This allows your service to remain active while you or the account owner arrange an upgrade. If you do not upgrade within those 30 days, the container/gateway will be paused upon the next overlimit check. Note that this grace period is a one-time courtesy – in future billing cycles, the pause will be applied immediately if you exceed the limit again. Free and Custom plans: are not subject to the pause logic. For all paid plans, the container/gateway is automatically reactivated, and the pause is lifted at the start of the next billing cycle when your request/event quota resets. On the Free plan, requests/events do not renew if the limit is reached. Please keep in mind that you can have up to 5 free sGTM containers or Signals Gateways per Stape account. Example of the pause logic An account on the Business plan (limit: 5M requests) overlimits for the first time on March 28, with usage hitting 5.5M (110% of the limit). A 30-day grace period begins automatically and the container stays active. The grace period lasts until April 26. If the user doesn’t upgrade until then and hits 110% usage again after this date, the container is Paused. The container resumes the Running status immediately if the user upgrades or automatically on May 1 (the next billing cycle). Starting May 1, any future usage exceeding 110% will result in an immediate Pause with no second grace period. FAQ How can I remove a pause? If your container or Signals Gateway has been paused due to overlimit, you can restore service using one of two methods: Upgrade your subscription: switching to a higher tariff plan will automatically and immediately remove the pause. Wait for the next billing cycle: the pause is automatically removed when your next billing period begins. How do I avoid service interruption caused by reaching the usage limits? Open your Stape container or Signals Gateway and click the Subscription tab. Toggle the switch to Upgrade container to the next tier automatically. This way, you can ensure that, even if you miss a sudden spike in requests/events, your container/gateway will keep running smoothly. Note: If auto-upgrade fails to charge you 6 times, the system will treat the container as if auto-upgrade is disabled and apply the pause logic as described above. ![Upgrade container to the next tier automatically](https://cdn.stape.io/i/69eb7f4306e63135411437.png) --- # How do you calculate requests? Source: https://stape.io/helpdesk/knowledgebase/how-do-you-calculate-requests Section: Knowledgebase Find out how to calculate requests with this knowgebase article. We count any request sent to your Google Tag Manager Server container. It includes all script loads like gtm.js, analytics.js, gtag.js, etc. To simplify the calculation, you can multiply the number of pageviews in GA by 10. It will be the approximate number of requests. Pro plan includes around 50 000 pageviews/month. Business plan - around 500 000 pageviews/month. Feel free to use [Pricing Calculator](https://stape.io/price-server-google-tag-manager#calculator) to find the best plan for your site. --- # How does Pay as you go plan for Conversions API Gateway works? Source: https://stape.io/helpdesk/knowledgebase/how-does-pay-as-you-go-plan-for-conversions-api-gateway-works Section: Knowledgebase How does the Pay-as-you-go plan for Conversions API Gateway work? We charge prorated amount for all added pixels at the end of the billing period that the you can see in the Stape admin. ![Stape admin](https://cdn.stape.io/i/67c08797e3a0b111125877.png) --- # How to connect a subdomain to my Conversions API Gateway? Source: https://stape.io/helpdesk/knowledgebase/connect-a-subdomain-to-my-conversions-api-gateway Section: Knowledgebase How to connect a subdomain to Conversions API Gateway? To verify the subdomain stape.example.com for the Conversions API Gateway hub, please log in to your DNS provider and create a CNAME record: Name: stape (or any word or set of letters you like)Content/Target: you can find it in your CAPI Gateway on your Stape account(when creating a record, specify the url without https://).DNS proxy should be set to off. ![Example](https://cdn.stape.io/i/67c0879113e79905020363.png) The record should look like this (just an example): ![Example](https://cdn.stape.io/i/67c087914e9f8942302934.png) *The target url depends on the server you have chosen for your CAPI Gateway hosting and can be found in your CAPI Gateway on Stape. --- # Can I set up custom event without GTM server-side container? Only Meta Conversions API Gateway? Source: https://stape.io/helpdesk/knowledgebase/can-i-set-up-custom-event-without-gtm-server-side-container-only-meta-conversions-api-gateway Section: Knowledgebase Can I set up a custom event with only Meta Conversions API Gateway? When using Meta Conversions API Gateway, you do not need a GTM server-side container.However, you need to create Meta’s CAPIG on Stape. Meta Conversions API Gateway works based on the data that FB pixel sends. It means that every time when CAPIG sees event triggered by FB pixel, it sends server events. Meta Conversions API Gateway tracks server events using data that Meta pixel receives. Each event that Meta pixel tracks will be automatically tracked using Meta Conversions API Gateway. You can manage what events you want to send using CAPI Gateway via the hub. Just turn the on or off toggle in from of each event. ![Example](https://cdn.stape.io/i/67c0878de6a36721004356.png) Example If you want to track any new event using Conversions API Gateway, then you should set up web tracking for this event. Then, after Meta pixel detects the event, it would be automatically added to Conversion's API Gateway. --- # Why does Conversions API Gateway not see my events? Source: https://stape.io/helpdesk/knowledgebase/why-does-conversions-api-gateway-not-see-my-events Section: Knowledgebase Find out why Conversions API Gateway isn't detecting your events. The Conversion API Gateway relies on Facebook web pixel events to initiate server events. Here are some explanations for why Conversion API Gateway events could be absent from the CAPIG hub or Facebook Events Manager: Facebook web pixel is not added to your website. You did not connect the Facebook pixel inside the CAPIG hub. Facebook web pixel does not send all web pixel events you expect to see in the CAPIG hub. You are using a third-party CAPIG integration. For example, a WordPress plugin or Shopify app that sends events to the Facebook server. In some cases, if you disabled CAPIG integration through the third-party app, you need to redeploy FB pixel to make CAPIG integration work. Typically, it may take up to 30 minutes for events to appear in the CAPIG hub once you've linked your pixel to the CAPIG hub. --- # How to find server container URL for sGTM container? Source: https://stape.io/helpdesk/knowledgebase/how-to-find-server-container-url-for-sgtm-container Section: Knowledgebase Learn how to find the server container URL for your sGTM container with this quick guide. There are two options for setting up server container URL: automatically generated custom subdomain You can find an automatically generated server container URL that was created for you and is hosted on our domain (stape.io) in the container settings of the sGTM container (just scroll down to Domains). ![Container settings](https://cdn.stape.io/i/67c0877b9aa8f488393262.png) It is highly recommended to use a custom domain for accurate cookie settings and use. If you want to configure a custom tagging URL, enable "Add custom domain" -> log in to your domain name service and create a new DNS record for the subdomain you want to use. You can use any subdomain name you want. (if you are usingCloudflare, select domain -> click DNS -> Add record). Add these settings: Type: A Name: gtm (or any other subdomain name you want) IPv4 address: IP address depends on the location of the servers. You can find the custom domain IP address in your stape.io account. TTL: Auto Proxy status: disable Your settings should look like this: ![Settings](https://cdn.stape.io/i/67c0877b8d53c706216711.png) Type: AAAA Name: gtm (or any other subdomain name you want) IPv6 address: IP address depends on the location of the servers. You can find the custom domain IP address in your stape.io account. TTL: Auto Proxy status: disable Your settings should look like this: ![Example](https://cdn.stape.io/i/67c0877bc1c30121640234.png) Once you’ve done, add a subdomain inside sGTM container. Go to Admin -> Settings -> Container settings. ![Container Settings](https://cdn.stape.io/i/67c0877be4522250718301.png) Also update the web GTM code snipped that is added on your website by updating googletagmanager.com with your custom domain. --- # How to find Meta Dataset (Pixel) ID? Source: https://stape.io/helpdesk/knowledgebase/how-to-find-meta-dataset-pixel-id Section: Knowledgebase Learn how to locate your Meta Dataset (Pixel) ID easily. 1. Log into your [Facebook Business Manager](https://business.facebook.com/business/loginpage/?next=https%3A%2F%2Fbusiness.facebook.com%2F%3Fnav_ref%3Dbiz_unified_f3_login_page_to_mbs&login_options%5B0%5D=FB&login_options%5B1%5D=IG&login_options%5B2%5D=SSO&config_ref=biz_login_tool_flavor_mbs) → Click "All tools" in the left-hand menu options. 2. On the pop-up menu, find "Event Manager" → "Data Sources". ![Event manager](https://cdn.stape.io/i/67c08777aa12d447190465.png) 3. Go to the "Settings" tab and find Dataset ID. ![Settings](https://cdn.stape.io/i/67c087771e8ea482628126.png) --- # What is a request? Source: https://stape.io/helpdesk/knowledgebase/what-is-a-request Section: Knowledgebase Discover what a request is in web development: its role in data exchange, common types, and how it enables client-server communication. A request is every incoming hit your server container receives. We count any incoming requests sent to your Google Tag Manager Server container towards your subscription's request limit. This includes all script loads like gtm.js, analytics.js, gtag.js, etc. This also includes [Stape Store](https://stape.io/helpdesk/documentation/stape-store-feature) requests. Stape requests VS analytics events The number of requests that Stape receives does not equal the number of events you see in GA4 or other analytics. You can roughly estimate how many requests will come to your server container by looking at the number of your events for the past 30 days and then adding 30%. So, if you have 10000 GA4 events over a month, your Stape server container will receive 13000 requests. For precise estimations, use our [pricing calculator](https://stape.io/price-server-google-tag-manager#:~:text=Contact%20sales%20magicians-,Pricing%20calculator,-Easy). To see the number of your GA4 events, access your GA4 account and open Reports → Engagement → Events. ![Event count in GA4](https://cdn.stape.io/i/6979d3519ee3b114814097.png) Useful links: [Where can I see request usage statistics?](https://stape.io/helpdesk/knowledgebase/where-can-i-see-request-usage-statistics) [How do you calculate requests?](https://stape.io/helpdesk/knowledgebase/how-do-you-calculate-requests) [What happens if my container reaches the free requests limit?](https://stape.io/helpdesk/knowledgebase/what-happens-if-my-container-reaches-the-free-requests-limit) [What happens if the container reaches the monthly request limit? And when does it reset?](https://stape.io/helpdesk/knowledgebase/what-happens-if-the-container-reaches-the-monthly-request-limit-and-when-does-it-reset) [Will requests be renewed in the next billing period if I exceed the free plan limit?](https://stape.io/helpdesk/knowledgebase/will-requests-be-renewed-in-the-next-billing-period-if-exceed-the-free-plan-limit) --- # How to find tagging server URL? Source: https://stape.io/helpdesk/knowledgebase/how-to-find-tagging-server-url Section: Knowledgebase Check how to find tagging server URL with this stape knowlegebase article. 1. [Log in to your stape.io](https://stape.io/login) account. 2. Open sGTM container and scroll to Domains (Tagging Server URLs) section. There you will see the tagging server domain name. ![Open sGTM container and scroll to Domains](https://cdn.stape.io/i/67c0876abbd5a676764772.png) --- # How to add a promocode? Source: https://stape.io/helpdesk/knowledgebase/how-to-add-a-promocode Section: Knowledgebase Guide to adding a promocode during Stape subscription process. 1. Open your [stape account](https://stape.io/sign-up). 2. Choose a container you'd like to upgrade. Click Upgrade container. ![Choose a container you'd like to upgrade](https://cdn.stape.io/i/67c08762d1b72522309263.png) 4. Choose a subscription plan. Click the button Change billing info. ![Click Change billing info](https://cdn.stape.io/i/67c087632ea52314709507.png) 5. Click Add promo code. ![Click Add promo code](https://cdn.stape.io/i/67c08763186cd344145618.png) 6. Enter a promo code into the text bar. Click Apply. ![Enter a promo code](https://cdn.stape.io/i/67c087631ed1b164196845.png) 7. In the end, don't forget to click the Subscribe button. --- # How much does Meta Conversions API Gateway cost? Source: https://stape.io/helpdesk/knowledgebase/meta-conversions-api-gateway-cost Section: Knowledgebase Check the pricing details for Meta Conversions API Gateway. We offer two subscription plans for hosting Meta Conversions API Gateway: Pay as you go - $10/month or $100/annually for each Pixel. or Unlimited - $100/month or $1000/annually for unlimited number of Pixels. Also, we offer a 7-day free trial for Meta’s Conversions API Gateway. To get more detailed information please visit [this guide.](https://stape.io/blog/how-to-set-up-meta-conversions-api-gateway) --- # Is it possible to change hosting region for the sGTM container? Source: https://stape.io/helpdesk/knowledgebase/change-hosting-region-for-the-sgtm-container Section: Knowledgebase Learn if it's possible to change the hosting region for your sGTM container to improve performance and optimize tag management. Unfortunately, it's not possible to change the hosting region of the existing server GTM container. If you would like to use a new hosting region, please create a new container in stape.io admin. [Contact us](http://support@stape.io) if you would need to transfer an existing subscription to a new container. --- # What's Stape support policy? Source: https://stape.io/helpdesk/knowledgebase/stape-support-policy Section: Knowledgebase Learn everything you need to know about Stape's support policy, including what our support can help you with and how to contact them. 🐝 We monitor our servers and provide customer support 24/7. Support response time We always strive to assist you as soon as possible, but occasionally, wait times may increase due to high workload. In such cases, accounts with different subscription plans may experience differences in response times. In our [Service-level agreement](https://stape.io/sla), you can find more details about our support availability rules and the correlation between account level and maximum response time. Types of help that we provide Our support team can help you with GTM server hosting issues, your Stape account issues, and questions about our custom tags, but we cannot provide any support beyond that. If you need help with handling your website’s tracking setup and extended ongoing assistance, consider checking out our [Tracking Care](https://stape.io/helpdesk/documentation/tracking-care-service) service. Please feel free to use our community [https://community.stape.io/](https://community.stape.io/) who may be able to lend their knowledge or skills! Follow this link to get more information on [alternative ways to get help from Stape](https://stape.io/helpdesk/knowledgebase/how-to-get-help-from-stape). --- # How to fix MISSING_EVENT_NAME Source: https://stape.io/helpdesk/documentation/missing-event-name Section: Documentation Facing the MISSING_EVENT_NAME error with CAPI Gateway? Learn the causes and how to fix this issue. This is a Meta-side issue related to their migration to Firebase to reduce cloud monitoring costs. ![MISSING_EVENT_NAME](https://cdn.stape.io/i/6a58e141268bd965531515.png) Solution: Currently, there is no fix available. This is a temporary UI issue related to infrastructure changes on Meta’s side. It does not affect the transmission of server events to Events Manager, although the Gateway interface may temporarily display this message. --- # How to configure the same origin domain for Shopify Source: https://stape.io/helpdesk/documentation/same-origin-domain-configuration-for-shopify Section: Documentation Learn how to configure a same-origin Shopify domain using Cloudflare, set up Workers, and route server-side GTM traffic securely with a step-by-step guide. The guide explains how to configure the same origin for Shopify using Cloudflare as an example; however, the configuration can also be done through other platforms other than Cloudflare. Cloudflare supports Shopify domains through its Orange-to-Orange (O2O) integration. With this integration, the Shopify store domain is proxied through Cloudflare and is still routing traffic correctly to Shopify. When a user visits the store, requests first pass through the merchant's Cloudflare zone, and then are forwarded to Shopify through Cloudflare's SaaS infrastructure. Cloudflare preserves the hostname and SSL information required by Shopify, so Shopify can validate the domain and serve the correct storefront. How to proxy the Shopify store domain To enable the same-origin domain, the Shopify store domain must be proxied. Follow the steps below to do it using Cloudflare. 1. In the section “Domains,” select your domain. ![select your domain](https://cdn.stape.io/i/6a58e026e9477969272080.png) 2. Navigate to DNS → Records. ![Navigate to DNS → Records](https://cdn.stape.io/i/6a58e0270999a554496754.png) 3. On the list, find the domain you want to configure the same origin domain for, click Edit → Enable proxy status → Save. ![Enable proxy status](https://cdn.stape.io/i/6a58e80f6229f606663652.gif) How to configure the same origin domain for the Shopify Store --- # How to fix Response 404 (Backend NotFound) Source: https://stape.io/helpdesk/documentation/response-404-backend-notfound Section: Documentation Facing the Response 404 (Backend NotFound) error with CAPI Gateway? Learn the causes and how to fix this issue. This issue usually occurs when attempting to configure webhooks or when sending incorrect requests. ![Response 404 (Backend NotFound)](https://cdn.stape.io/i/6a58df5a2562a372264177.png) Solution: Configure and use webhooks according to the official documentation: [https://developers.facebook.com/docs/marketing-api/gateway-products/non-web-server-events](https://developers.facebook.com/docs/marketing-api/gateway-products/non-web-server-events) --- # How to fix 190~1464 error Source: https://stape.io/helpdesk/documentation/error-190-1464 Section: Documentation Facing the 190~1464 error with CAPI Gateway? Learn the causes and how to fix this issue. These errors occur when connecting affected pixels to your Gateway hub. ![Error when connecting affected pixels to your Gateway hub](https://cdn.stape.io/i/6a58dd9405cb8297347218.png) ![Error 190~1464](https://cdn.stape.io/i/6a58dd93a90df047718308.png) Solution: Facebook recommends removing the affected pixels and adding them again, which essentially means re-authorizing them. --- # How to fix the invalid account credentials error Source: https://stape.io/helpdesk/documentation/invalid-account-credentials Section: Documentation Facing the invalid account credentials error with CAPI Gateway? Learn the causes and how to fix this issue. In the Meta interface, you may try linking your CAPIG hub with Events Manager and see this error. ![Invalid account credentials](https://cdn.stape.io/i/6a58d9aa61878592318627.png) Usually, this step is unnecessary. If you created the CAPIG hub from the Meta interface, the connection is made automatically. However, if you created the CAPIG hub on Stape and try linking it to Meta Events Manager, this connection is not possible. Solution: Create a new hub directly from the Meta interface. --- # How to fix claim account 404 error Source: https://stape.io/helpdesk/documentation/404-gw-claim-account Section: Documentation Facing the claim account 404 error with CAPI Gateway? Learn the causes and how to fix this issue. On the Meta side, when you start using Stape you can claim the account connection. When you click Claim account, you should be redirected to [stape.io](http://stape.io) to log in. ![Claim account](https://cdn.stape.io/i/6a58d74a0bed5346126823.png) However, if you select the wrong platform, you may be redirected to a non-existent hub page, resulting in a 404 error. ![404 GW CLAIM ACCOUNT](https://cdn.stape.io/i/6a58d749e2c15504876803.png) Solution: Make sure you choose the correct platform when linking accounts. If you still encounter difficulties, feel free to contact support at [support@stape.io](mailto:support@stape.io). --- # How to create monitoring alerts Source: https://stape.io/helpdesk/documentation/how-to-create-monitoring-alerts Section: Documentation Learn how to create monitoring alerts in your sGTM container. Configure thresholds for logs, platforms, and events to stay informed of issues. How to create an alert 1. Log in to your [Stape account](https://stape.io/login) and select your sGTM container from the dashboard. ![Log in to your Stape account and select your sGTM container from the dashboard.](https://cdn.stape.io/i/6a561624b3e57107912211.png) 2. Click on the Monitoring tab. You’ll be asked to enable the outgoing logs, click Activate. ![Click on the Monitoring tab. You’ll be asked to enable the outgoing logs, click Activate.](https://cdn.stape.io/i/6a561624aaf4b252463195.png) 3. Click on the Alerts tab. 4. Click Create alert. ![Click Create alert.](https://cdn.stape.io/i/6a561624b3185346633664.png) In the Create alert window, select or enter the following information: General: Alert name – enter a descriptive alert name. Log type – select whether the alert should apply to incoming or outgoing logs. Domain – select the sGTM custom domain to which you want to apply alert. Period – select the frequency at which the alert should be generated. ![In the Create alert window, select or enter the following informatio](https://cdn.stape.io/i/6a561624d49dc671970260.png) Alert conditions: Applies to – choose whether the alert should target a specific Platform, Event, or Status code and define the conditions that trigger the alert. You can add more conditions by clicking +Add condition (and). Alert me when – set the trigger threshold. Specify the number of requests and choose whether the alert should fire when the actual count is higher or lower than that value. Click Create to create an alert. ![Click Create to create an alert.](https://cdn.stape.io/i/6a561624a6e99731088736.png) Your alerts appear on the dashboard in a table with the following columns: Name – the name you assigned to the alert. Description – a summary of the conditions that trigger this alert. Status – the current health state of the alert: Resolved – metrics are within normal limits, or you have manually marked the incident as resolved. Mark as resolved – an action available when an alert is Not Resolved, allowing you to acknowledge the issue and clear the alert status. Not resolved – the alert’s threshold conditions have been met, and the incident is active. Detected – the total number of times this alert has been triggered. Last detected – the timestamp of the most recent alert trigger. Edit – allows you to modify the alert settings. Enable – a toggle to activate or deactivate the alert. ![Your alerts appear on the dashboard in a table with the following columns](https://cdn.stape.io/i/6a561624d80d6641993150.png) Testing To verify that the Monitoring feature is working correctly, set up a test alert and confirm you receive notifications when it triggers. For example, create a condition that is guaranteed to be met and assign a short alert period; once that time has passed, verify that you received the notification. ![Testing](https://cdn.stape.io/i/6a561624ab34d915682938.png) Alert configuration examples Facebook purchase events If you typically track 50 Facebook purchase events daily, you might want to be notified if the count drops below 30, as this could indicate an issue. For this setup to work, make sure you have a configured [Facebook CAPI tag](https://stape.io/helpdesk/documentation/facebook-capi). ![For this setup to work, make sure you have a configured Facebook CAPI tag. ](https://cdn.stape.io/i/6a561624dd70b103205594.png) General container operation Checking your data once a day would mean that you will only know about problems with the containers after 24 hours have passed. To bypass this problem, you can make an additional small notification. For example, one that’s triggered by a small number of incoming logs for a GA4 client. ![General container operation](https://cdn.stape.io/i/6a561624ce806200311639.png) --- # How to set up Stape Analytics Source: https://stape.io/helpdesk/documentation/how-to-set-up-stape-analytics Section: Documentation Learn how to set up Stape Analytics in your sGTM container. Follow the simple, step-by-step guide to start measuring data recovery in just 48 hours. Before you begin Note the following points before you begin: Once you've activated Stape Analytics, your data will begin appearing on the dashboard within 48 hours. Stape Analytics starts collecting data from the moment it’s enabled, so historical data prior to activation will not be included. Stape Analytics is designed to measure data recovery bypassed by the Custom Loader power-up. It doesn’t track offline server-to-server data (such as webhooks from CRMs like HubSpot or Salesforce). If any issues with the Stape Analytics configuration are detected, an email notification will be sent to your account. How to set up Stape Analytics 1. Log in to your [Stape account](https://stape.io/login) and select your sGTM container from the dashboard. ![Log in to your Stape account and select your sGTM container from the dashboard.](https://cdn.stape.io/i/6a560f61d3ac4974445667.png) 2. Go to the Analytics tab, and click Turn on Analytics. ![Go to the Analytics tab, and click Turn on Analytics.](https://cdn.stape.io/i/6a560f61f0dad642608601.png) 3. You’ll see a banner telling you that the data is being collected. Wait for 48 hours and then go back to look at the metrics. ![You’ll see a banner telling you that the data is being collected.](https://cdn.stape.io/i/6a560fc7df26a268106926.png) 4. If you haven’t enabled the Custom Loader power-up yet, click Update Custom Loader. Follow the [instructions](https://stape.io/helpdesk/documentation/custom-loader-power-up) for setting up. ![Update Custom Loader](https://cdn.stape.io/i/6a560f61e9123923651792.png) How to turn off Stape Analytics Go to the Prefer not to use Stape Analytics? section at the bottom of the page and click Turn off Analytics. ![Go to the Prefer not to use Stape Analytics? section at the bottom of the page and click Turn off Analytics.](https://cdn.stape.io/i/6a560f61c3ea5851533572.png) If you use the [manual Custom Loader set up](https://stape.io/helpdesk/documentation/custom-loader-power-up#setup-for-other-platforms), complete the following additional step: Open the Custom Loader power-up, generate new custom loader code, copy the updated script (which no longer contains the analytics tracking payload), and replace the existing script on your website. ![Open the Custom Loader power-up, generate new custom loader code, copy the updated script (which no longer contains the analytics tracking payload), and replace the existing script on your website.](https://cdn.stape.io/i/6a560f6208f26590595518.png) --- # Stape Store API Source: https://stape.io/helpdesk/documentation/stape-store-api Section: Documentation The Stape Store API allows you to programmatically read, write, update, and delete documents and collections directly from your applications via HTTP requests. The Stape Store API allows you to interact with your [Stape Store](https://stape.io/helpdesk/documentation/stape-store-feature) via HTTP requests. You can read, write, update and delete documents and collections directly from your applications. To access the API documentation and playground, click the Stape Store API link in the Stape Store dashboard. This way the system automatically fetches and pre-fills your container URL and API key for use in the API playground. ![Stape Store API link in the Stape Store dashboard](https://cdn.stape.io/i/6a54f33bc7bd8299103343.png) You can access the API documentation without logging in to Stape. To use the playground without logging in, manually add your container URL and Store API key to the documentation URL in your browser's address bar. Add the following parameters to the end of the documentation URL: ?base_url=your-container-url&api_key=your-store-api-key For example, if your container domain is my-container.stape.io and your Store API key is xyz123, use: https://store-api.stape.io/v2/doc?base_url=my-container.stape.io&api_key=xyz123 For the instructions on how to find the URL, read [How to find server container URL for sGTM container?](https://stape.io/helpdesk/knowledgebase/how-to-find-server-container-url-for-sgtm-container) For the instructions on how to find the key, read [How to find Stape container API Key?](https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key) Note: Stape also provides pre-built sGTM variables and tags, so you can implement these workflows directly in your sGTM container without writing custom API code. For more information read [Stape Store templates](https://stape.io/helpdesk/documentation/stape-store-templates). Endpoints The API is organized into three groups: Documents – here you can interact with the Stape Store documents. Collections – here you can interact with the Stape Store collections. Imports – here you can import a collection from a CSV file and get information about that import. Documents The following endpoints are available to interact with Stape Store documents: Filter documents – lists and filters documents based on the provided criteria. Bulk delete documents – deletes multiple documents at once. Get a document – retrieves a document. Add or update documents – creates or overwrites an entire document. Update documents – partially updates the document. The endpoint updates only those fields that are passed in the request, the rest of the existing document fields remain unchanged. ![Documents group](https://cdn.stape.io/i/6a54f33c01e28678819116.png) Collections The following endpoints are available to interact with Stape Store collections: Create a collection – creates a collection. Delete a collection – deletes a collection. All documents inside the collection are deleted as well. Get collections – retrieves a paginated list of collections. Partial update a collection – updates collection properties (for example, Time-to-Live). ![Collections group](https://cdn.stape.io/i/6a54f33c07783045118828.png) Imports The following endpoints are available to interact with imports in Stape Store: Import a collection from a CSV file – imports a collection from a CSV file. Get imports – retrieves a paginated list of imports. Get import status – checks the status of an import. ![Imports group](https://cdn.stape.io/i/6a54f33bf39c1261254191.png) Schemas The Stape Store API describes all of its data using schemas – definitions of what each piece of data looks like: which fields it contains, their types, and which are required. In this API, the schemas fall into three broad groups: Responses – every response, success or failure, shares the same outer structure: a success flag, an optional data payload, and an optional error message. This consistency means you can always handle responses the same way: check whether it succeeded, then read either the data or the error. Entities – these show you the structure of requests for managing documents, collections, and imports. Operation inputs and helpers – these describe what you send in and reuse across endpoints. For example, the filter and condition structures used to query documents, the pagination settings for walking through large results, and small shared rules like valid collection names or TTL settings. Example Let's say you want to create a collection whose documents are automatically deleted 24 hours after they're last updated. You need to know what structure the request body should have, so you open the CreateCollectionRequest schema: ![ CreateCollectionRequest schema](https://cdn.stape.io/i/6a54f33bd2c37163578441.png) You can see that you need to pass the collection_name field and optionally ttl. If you expand both fields, you'll see the type of those fields and additional information like regex pattern: ![Additional information in CreateCollectionRequest schema](https://cdn.stape.io/i/6a54f33c01e29045282865.png) Looking at the schema, the request body will look like this: { "collection_name": "sessions",   "ttl": {     "duration_hours": 24,     "reference_field": "updated_at"   } } How to use the API playground If you expand any endpoint, you'll find a playground, where you can send real requests to your own Stape container and see the actual responses, without writing any code or leaving the browser. You'll see the request parameters that are required to enter, and request body, if applicable. You can use the provided example value for testing purposes. 1. Click the Try it out button to start: ![Try it out button](https://cdn.stape.io/i/6a54f33bc7bd8686188740.png) 2. Enter the required parameters and request body. We'll be using the same request body as in the example from Schemas chapter. 3. Click Execute. ![Parameters and request body](https://cdn.stape.io/i/6a54f33bb8b01426492547.png) 4. Under Responses, you'll get the full curl request and an applicable response. ![Response](https://cdn.stape.io/i/6a55fd6416249148167226.png) 5. Go to your Stape Store and make sure the collection is created. ![Created collection in Stape Store](https://cdn.stape.io/i/6a54f33bc7bf9478984813.png) JS example Here's a quick example in Javascript of how you can send the requests from your application. 1. Define the container URL, API key and base URL constants: const CONTAINER_URL = "https://gtm.yourdomain.com"; const API_KEY = process.env.STAPE_API_KEY; const storeBase = `${CONTAINER_URL}/stape-api/${API_KEY}/v2/store`; 2. Define the reusable request helper, where path is the part after /v2/store in each endpoint. For example, for deleting the collection, path will be /collections/{collection_name}. async function stapeRequest(path, options = {}) {   const res = await fetch(`${storeBase}${path}`, {     headers: { "Content-Type": "application/json" },     ...options,   }); 3. Define the error handling and return: if (!res.ok || (body && body.success === false)) {     const message = body?.error?.message || `HTTP ${res.status}`;     throw new Error(`Stape Store error: ${message}`);   } return body?.data ?? null; 4. Create the delete function: async function deleteCollection(collectionName) {   await stapeRequest(`/collections/${collectionName}`, { method: "DELETE" });   console.log(`Collection "${collectionName}" deleted`); } 5. Run the function: deleteCollection("sessions").catch((err) => console.error(err.message)); The full code: const CONTAINER_URL = "https://gtm.yourdomain.com"; const API_KEY = process.env.STAPE_API_KEY; const storeBase = `${CONTAINER_URL}/stape-api/${API_KEY}/v2/store`; async function stapeRequest(path, options = {}) {   const res = await fetch(`${storeBase}${path}`, {     headers: { "Content-Type": "application/json" },     ...options,   }); if (!res.ok || (body && body.success === false)) {     const message = body?.error?.message || `HTTP ${res.status}`;     throw new Error(`Stape Store error: ${message}`);   } return body?.data ?? null; async function deleteCollection(collectionName) {   await stapeRequest(`/collections/${collectionName}`, { method: "DELETE" });   console.log(`Collection "${collectionName}" deleted`); } deleteCollection("sessions").catch((err) => console.error(err.message)); --- # Stape Store templates Source: https://stape.io/helpdesk/documentation/stape-store-templates Section: Documentation Use Stape Store's GTM templates to save, retrieve, and merge tracking data effectively in your sGTM containers. [Stape Store](https://stape.io/helpdesk/documentation/stape-store-feature) is a built-in NoSQL database designed specifically for server-side Google Tag Manager (sGTM) containers hosted on Stape. To interact with it directly, Stape provides a set of custom GTM templates: Stape Store Writer tag – lets you easily write or update data in Stape Store. Stape Store Lookup variable – allows you to retrieve stored data and put it into your sGTM variables for use across your tags, such as for authentication keys, transaction details, or user attributes. Stape Store reStore variable – a versatile template that simultaneously reads and writes data, making it ideal for stitching user profiles across multiple events. It fetches existing records using identifiers from incoming events, merges them with new data, and automatically creates new documents if no match is found, ensuring your session and customer information stays current and up-to-date. Stape Store Writer tag This is the primary template used to save data to the Stape Store. It allows you to save incoming event parameters, custom fields, or timestamps into specific database collections. This makes it an ideal solution for building a centralized repository of user interactions, managing API access tokens, or logging tracking data for future use. Here's how it works: You specify a document key to update or overwrite an existing document. You either manually define custom key-value pairs to store only specific, clean data, or you select to capture the entire tracking data sent by the client. This includes standard parameters (whatever is set to receive by your trigger that fires the tag) alongside client-specific metadata (such as GA4's x-ga- parameters). When the tag fires, it automatically creates a new document with all information in a specified collection. How to configure 1. Go to the [Google Tag Manager](https://tagmanager.google.com/) and open your server container. 2. Open the Templates menu. 3. Click Search Gallery in the Tag Templates section. ![Search Gallery in the Tag Templates](https://cdn.stape.io/i/6a54cece326b0330207205.png) 4. Find the Stape Store Writer tag and click on the template. ![Stape Store Writer tag in the Template gallery](https://cdn.stape.io/i/6a54eb3a3b247997256438.png) 5. Click Add to workspace. ![Add to workspace button](https://cdn.stape.io/i/6a54eb7fae226513881675.png) 6. Open the Tags menu and click New. ![Tags menu](https://cdn.stape.io/i/6a54cecec665c467662507.png) 7. Click Tag Configuration and select the Stape Store Writer tag. ![Select the Stape Store Writer tag](https://cdn.stape.io/i/6a54ceceee4be156315586.png) 8. Open Stape Store Settings and enter the following: Stape Store Collection Name – this is the path of your collection where the documents will be stored. If this collection doesn't exist in the [dashboard](https://stape.io/helpdesk/documentation/standard-account-overview#dashboard) yet, the tag will create the collection automatically. If you won't set it, the default collection will be used. Use the Stape Store database of a different container – if you manage multiple sGTM containers but need to maintain a single, centralized database for shared authentication keys, user IDs, configuration state, etc., you can set this to true. In this case you'll be asked to enter Stape Store Container API Key. For the instructions on how to find the key, read [How to find Stape container API key?](https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key) ![Stape Store Settings in Tag Configuration](https://cdn.stape.io/i/6a54cecec7ad1003922139.png) 9. Enter a Document ID – this is the document's name (document key) in the Stape Store dashboard. A common choice is Stape's [User ID power-up](https://stape.io/helpdesk/documentation/user-id-power-up) header {{X-Stape-User-Id}}, or any other unique identifier. 10. Tick the applicable checkboxes: Add Event Data – controls whether the tag automatically includes all properties from the incoming sGTM event when saving data to your Stape Store database: When enabled – the tag automatically retrieves the entire current event data and saves all of its keys and values to the database. This is a convenient way to capture everything from the event (for example, page_location, client_id, user_data, and any custom incoming parameters) without having to map them manually. When disabled – the tag writes only the specific fields you manually define under the Custom Data section. If Add Event Data is enabled, and you also map specific fields in the Custom Data table, any custom keys you define will overwrite the automatically captured event data. Merge document keys – controls how data is written when a document with the same key already exists in your Stape Store collection: When enabled – the tag performs a partial update, meaning it only adds or updates the specific fields you're sending in the current event. Existing fields in the document that aren't part of this event remain unchanged. This is ideal for progressively building user profiles or session data. For example, adding an email address to a document that already contains a visitor ID without losing existing data. When disabled – the tag performs a full overwrite. It replaces the entire document with the new data, meaning any pre-existing fields that aren't included in the current write will be deleted. Add Timestamp – this option will add the millisecond timestamp to the document. Skip null or undefined values – determines how fields containing empty, missing, or explicitly null/undefined data are handled when writing to your Stape Store database: When enabled – any property or key in your data that has a value of null or undefined is completely excluded from the data sent to the database. This is the recommended behavior, as it keeps your database clean and avoids saving empty keys. When disabled – these fields are written to the database document with explicit null values. ![Stape Store Writer checkboxes](https://cdn.stape.io/i/6a54cecf1399b240060734.png) 11. If you don't want to enable Add Event Data, then you need to add custom fields in the Custom Data section. You can manually enter a database Field name (will appear as field key in the [dashboard](https://stape.io/helpdesk/documentation/standard-account-overview#dashboard)) and associate it with a GTM variable in the Field value (will appear as field value in the dashboard). Notes: If you have Add Event Data enabled, any keys you define in the Custom Data section will overwrite the corresponding keys imported automatically from the event. If you have Skip null or undefined values enabled, any custom data where the value is null or undefined will be excluded and won't be sent to the database at all. ![Stape Store Writer custom data](https://cdn.stape.io/i/6a54cecef1cdc163528561.png) 12. Click Triggering and choose a trigger that fits your use case. For example, the tag will fire when a site visitor purchases something. Note: We recommend you not to fire this tag on All Events or All Page Views unless you absolutely have to, as this will result in a massive number of database writes and rapidly consume your container's database write limits. ![Trigger configuration](https://cdn.stape.io/i/6a54cece888ac587568009.png) 13. Click Save. 14. Go to the container's preview mode and perform actions (like making a purchase) on your website that will fire the tag. ![Purchase preview in GTM](https://cdn.stape.io/i/6a54cece6510e454533235.png) 15. Go to your Stape Store dashboard to see your new data. ![New data in Stape Store](https://cdn.stape.io/i/6a54cecf2a3d5173370575.png) Stape Store Lookup variable This is the primary template used to retrieve and read data from the Stape Store without modifying any existing documents. It's ideal when you need to fetch previously saved user properties, configuration details, or attribution data to map directly into your tracking tags. The variable allows you to target your Stape Store collection and look up data in one of two ways: You can target a specific document directly by entering its unique document key. This way you request to retrieve that exact document. You can filter your collection using query criteria. You can specify conditions (for example, matching a user's email or phone number), and the variable returns the first matching document. By default, the variable returns the entire retrieved document object. If you only need a specific property (for example, a specific custom field like user_data.email), you can specify a key path in the variable's settings to extract and return only that field. You'll get the returned value as a variable, which you can then pass to a tag. For example, if a user makes an action on your site that triggers an event (like a webhook) where their email or phone number is missing, you can look up their details using their client_id or session_id. You can then pass this retrieved user data to your [Meta Conversions API](https://stape.io/helpdesk/documentation/overview-of-meta-conversions-api) to maximize match quality. How to configure 1. Go to [Google Tag Manager](https://tagmanager.google.com/) and open your server container. 2. Open the Templates menu. 3. Click Search Gallery in the Variable Templates section. ![Search Gallery in the Tag Templates](https://cdn.stape.io/i/6a54cece3f491991121298.png) 4. Find the Stape Store Lookup variable and click on the template. ![Stape Store Lookup variable in the Template gallery](https://cdn.stape.io/i/6a54ef163909d552848671.png) 5. Click Add to workspace. ![Add to workspace button](https://cdn.stape.io/i/6a54ef3919f46934890273.png) 6. Open the Variables menu and click New. ![Variables menu](https://cdn.stape.io/i/6a54cece8f0e3815123974.png) 7. Click Variable Configuration and select Stape Store Lookup. ![Select the Stape Store Lookup variable](https://cdn.stape.io/i/6a54ceceb5c89992475144.png) 8. Open Stape Store Settings and enter the following: Stape Store Collection Name – this is the path of your collection where the documents will be searched. Use the Stape Store database of a different container – if you want to look for data in another container, you can set this to true. In this case you'll be asked to enter Stape Store Container API Key. For the instructions on how to find the key, read [How to find Stape container API key?](https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key) ![Stape Store Settings](https://cdn.stape.io/i/6a54cece62b4c298950751.png) 9. Select a Lookup Type: Document ID – this type is used to look up a single, specific document directly by specifying its unique document key (for example, using a request header variable from the [Stape User ID](https://stape.io/helpdesk/documentation/user-id-power-up) power-up {{X-Stape-User-Id}}). Query – this type is used to search the Stape Store collection for a document that meets custom query conditions. You need to define criteria by mapping document fields to values using a comparison operator. For example, email == {{Event Data - email}}. If multiple documents match your query criteria, only the first matching document is returned and used by the variable. ![Lookup Type selection](https://cdn.stape.io/i/6a54cece3ee95799328267.png) 10. Under More settings you can find Key Path. Regardless of the lookup type, you can use this field to retrieve a specific nested property within the document (for example, event_location.country) instead of returning the entire document object. 11. For the best performance you can tick Store the result in cache. This prevents redundant network requests; if multiple tags (such as Google Analytics 4 or Facebook Conversions API) execute the same Stape Store lookup variable within a single event, the system makes only one network call. All subsequent tags will instantly retrieve the result from the cache, which minimizes server CPU usage and ensures fast container execution. ![Key path](https://cdn.stape.io/i/6a54cece64b50273328219.png) 12. Under the Format Value section you can normalize values that are sent to your tags and reports. For more information read the [Google documentation](https://support.google.com/tagmanager/answer/9121006). ![Format Value section](https://cdn.stape.io/i/6a54cecea1dc4708824724.png) 13. Click Save. 14. Open the Tags menu and select the tag you'd like to add your variable to. ![Select the tag you'd like to add your variable to](https://cdn.stape.io/i/6a54cecec18ce051264539.png) 15. Configure the event to match the type of data you're looking for with the variable you've created. 16. Click Save. ![Event configuration](https://cdn.stape.io/i/6a54cece6cb1d655023155.png) 17. Go to the container's preview mode and perform actions (like making a purchase) on your website that will fire the tag. You should see your value in the Variables tab. ![Value in the Variables tab](https://cdn.stape.io/i/6a54cece92c58610147141.png) Stape Store reStore variable The reStore variable is the most versatile template: it can write and retrieve data at the same time. It automatically fetches existing data that matches the user's identifiers while simultaneously saving any new information from the event. This makes it ideal for stitching together a user's profile across multiple events. The variable collects user identifiers from the incoming event (such as email, phone, client ID, or first-party cookies) and checks the Stape Store for a matching document that already has one of the identifiers. It then processes the data as follows: Merges incoming data with stored data. If a field (for example, phone) is missing from the incoming request but exists in the Stape Store, the stored value is used. If the incoming request has a field the Stape Store lacks (or has a different value) the request's value is written to the Stape Store. If no match is found for the user, it automatically creates a new document in the Stape Store, laying the foundation for future events. The variable returns the resulting “restored” data and it can be easily mapped into your tags. Here's a quick real world example: A user signs up for a newsletter or logs in. Your sGTM container receives their email (for example, user@example.com) along with a first-party cookie (_ga). By configuring the reStore variable to run on this event, you can define the _ga cookie as the user identifier and map the email address as data. When the event triggers, reStore automatically saves this association in the Stape Store. Two days later, the same user returns through an ad and browses product pages (view_item events). Although they remain anonymous and don't submit forms or log in, their browser still passes the first-party tracking cookie. When the view_item event triggers, the reStore variable executes. It uses the active user's tracking cookie to query the Stape Store and instantly locates the document created during their initial login. The variable automatically retrieves the stored email address and makes it available as a variable within your sGTM container. You can map this reStore variable directly to your [Meta Conversions API](https://stape.io/helpdesk/documentation/overview-of-meta-conversions-api) tag's User Data fields. This ensures Meta receives the user's email alongside the view_item event, even during anonymous sessions. This significantly boosts your Event Match Quality (EMQ) score and enhances ad performance. How to configure 1. Go to [Google Tag Manager](https://tagmanager.google.com/) and open your server container. 2. Open the Templates menu. 3. Click Search Gallery in the Variable Templates section. ![Search Gallery in the Tag Templates](https://cdn.stape.io/i/6a54cececc307019357982.png) 4. Find the Stape Store reStore variable and click on the template. ![Stape Store reStore variable in the Template gallery](https://cdn.stape.io/i/6a54ef6e54eff435278736.png) 5. Click Add to workspace. ![Add to workspace button](https://cdn.stape.io/i/6a54ef94e4344921690553.png) 6. Open the Variables menu and click New. ![Variables menu](https://cdn.stape.io/i/6a54cecf03024921367039.png) 7. Click Variable Configuration and select Stape Store reStore. ![Select Stape Store reStore](https://cdn.stape.io/i/6a54cecedeec3382731994.png) 8. Open Stape Store Settings and enter the following: Stape Store Collection Name – this is the path of your collection where the documents will be stored or read. If this collection doesn't exist in the dashboard yet, the variable will create the collection automatically. If you won't set it, the default collection will be used. Use the Stape Store database of a different container – if you need to read or write to another container, you can set this to true. In this case you'll be asked to enter Stape Store Container API Key. For the instructions on how to find the key, read [How to find Stape container API Key?](https://stape.io/helpdesk/knowledgebase/how-to-find-stape-container-api-key) ![Stape Store Settings](https://cdn.stape.io/i/6a54cecede2a7536842263.png) 9. You can disable writing entirely so the variable only retrieves data by identifiers. To do so tick the Only restore data checkbox. This is useful when you simply want to recover session or customer data without modifying the Stape Store. ![Only restore data checkbox](https://cdn.stape.io/i/6a54ceceea083685340736.png) 10 The List of identifiers section is used to search for and match user data in your Stape Store database. To maximize matching rates, you can add multiple identifiers in case some identifiers fail to fetch. Enter the following: Name – the unique field key name in the Stape Store document to search for (for example, user_id, client_id, email, phone_number). Value – value of the field key (for example, {{X-Stape-User-Id}} if you have enabled the [User ID power-up](https://stape.io/helpdesk/documentation/user-id-power-up)). ![List of identifiers section](https://cdn.stape.io/i/6a54cece8b1ed590269136.png) 11. In the List of data that needs to be restored section specify the parameters you want to retrieve from the matched document, for example, city. If you want to override the existing document field value, enter a GTM variable referencing the incoming value, for example, {{ed - city}}. For example, you want to save and retrieve a user's city, but override it if they fill out a form with a new location. If you've ticked Only restore data, then the value will be ignored and not written in Stape Store. ![List of data that needs to be restored section](https://cdn.stape.io/i/6a54cecf13524238336081.png) 12. Under the Format Value section you can normalize values that are sent to your tags and reports. For more information read the [Google documentation](https://support.google.com/tagmanager/answer/9121006). ![Format Value section](https://cdn.stape.io/i/6a54cecf04cc7226046833.png) 13. Click Save. 14. Open the Tags menu and select the tag you'd like to add your variable to. ![Select the tag you'd like to add your variable to](https://cdn.stape.io/i/6a54cecf26802688971990.png) 15. Configure the event to match the type of data you're looking for with the variable you've created. 16. Click Save. ![Event configuration](https://cdn.stape.io/i/6a54cecf1df38597694963.png) 17. Go to the container's preview mode and perform actions (like making a purchase) on your website that will fire the tag. You should see your value in the Variables tab. ![Value in the Variables tab](https://cdn.stape.io/i/6a54cece9d627108521034.png) 18. If you left the Only restore data checkbox unchecked, the same value should appear in a Stape Store document with a name that starts as restor_. For example, this particular user ID didn't exist in the collection, so you got a new document with the city. ![restor_ document](https://cdn.stape.io/i/6a54cecf2703a483255398.png) When you filled in the purchase form with a new city, the same document got updated with this city: ![Updated restor_ document](https://cdn.stape.io/i/6a54cecf3740c516460403.png) --- # Status codes Source: https://stape.io/helpdesk/documentation/status-codes Section: Documentation Understand HTTP status codes in your Stape logs. This guide breaks down 2xx, 3xx, 4xx, and 5xx codes to help you troubleshoot your tracking setup. Every incoming and outgoing request in your Logs is tagged with an HTTP status code. To make debugging easier, Stape color-codes these status categories: 2xx (Success) – the request was successfully received and processed. 3xx (Warning) – redirects. 4xx (Warning) – client-side errors (issues with the request structure, container setup, or permissions). 5xx (Error) – server-side errors (issues on Stape's end or the destination server). Here is an explanation of the most common status codes you'll encounter when troubleshooting your tracking setup. Status 2xx (Success) 200 (OK): Incoming requests – your sGTM container successfully received the event from your website. Outgoing requests – the third-party platform (such as Meta Conversions API, TikTok, or Google Analytics) received and accepted your data payload. 202 (Accepted) – the request was accepted for processing, but processing wasn’t completed. 204 (No content) – the request succeeded, but there is no body to return. Status 3xx (Redirects) 304 (Not Modified) – occurs when a web browser requests a tracking script (like your custom GTM loader) but the script hasn't changed since it was last cached, so the browser loads its cached local copy instead. 301 / 302 / 307 / 308 (Redirects) – these occur when an incoming request to your tagging server is forwarded or rewritten to a corrected destination path. Status 4xx (Warning) 400 (Bad request) – the destination platform rejected your event, which generally points to a configuration issue within your tag – such as a missing required field, an invalid API token, or improperly formatted data parameters. 403 (Forbidden) – this typically points to a permission or setup mismatch. For example, in the [Custom Loader power-up](https://stape.io/helpdesk/documentation/custom-loader-power-up), you used your server GTM container ID instead of the web GTM container ID. 404 (Not Found): Incoming requests – indicates that your tagging server can’t find or download your sGTM container configuration, which usually happens if the container is unpublished, deleted, or configured with an incorrect container ID on Stape. Outgoing requests – the platform API endpoint URL set inside your sGTM tag is incorrect or has been deprecated. Status 5xx (Server Error) 500 (Internal Server Error) – indicates that the container or destination server has encountered an unexpected issue. In sGTM container, this often happens if a tag contains execution errors or is incorrectly modifying response codes. 502 (Bad Gateway) – indicates a network connection failure. 503 (Service Unavailable) – the destination platform’s server is temporarily unable to handle the request (for example, due to overloading or maintenance). 504 (Gateway Timeout) – your server-side container attempts to send tracking data to an external platform, but the platform fails to respond within the allowed timeframe. --- # How to populate Stape Store manually Source: https://stape.io/helpdesk/documentation/how-to-populate-stape-store-manually Section: Documentation Learn how to manually populate your Stape Store by creating collections, uploading CSV files, and managing documents and fields step-by-step. 1. Log in to your [Stape account](https://stape.io/login) and select your sGTM container from the dashboard. ![sGTM container in the Stape dashboard](https://cdn.stape.io/i/6a54b2149f19d797488700.png) 2. Click the Store tab. ![Store tab](https://cdn.stape.io/i/6a54b214d16da245455033.png) How to add a collection You can start a collection manually, or upload a CSV file. Start manually 1. Click + Add collection and select Start manually. ![Start manually option](https://cdn.stape.io/i/6a54b214d0efb422591318.png) 2. In the pop-up enter the Collection name. If you wish to set up the TTL as well, click Set up TTL and enter the following values: TTL duration (num) – enter the number of duration. Unit – select whether the duration will be measured in hours or days. Reference point – define when the countdown starts: From creation date – the countdown begins from the exact date/time the document was first created. From last edit – the countdown begins from the exact date/time the document was first updated. 3. Click Add collection. ![Start manually pop-up](https://cdn.stape.io/i/6a54c71c830b0389699029.png) You'll get an empty collection which can be populated with documents. ![Empty collection](https://cdn.stape.io/i/6a54b2149f8a9419627439.png) Upload CSV You can upload a CSV file where each sheet line becomes a separate document. Note: Your CSV file should include either a comma (,) or semicolon (;) as a delimiter. To upload a CSV file: 1. Click + Add collection and select Upload CSV. ![Upload CSV option](https://cdn.stape.io/i/6a54b21506ba6763948933.png) 2. In the pop-up, from the Select collection dropdown, select whether to populate an already existing collection, or upload the file as an entirely new one. 3. Enter the Collection name. 4. Upload a CSV file from your computer. ![Start collection pop-up](https://cdn.stape.io/i/6a54c7fa9be11188086363.png) 5. After uploading the CSV file, you'll be asked to define the CSV delimiter and Select a column for document names. The CSV parser analyzes your file's header row and offers two ways to handle document keys: Autogenerated – Stape Store automatically assigns a random, unique identifier to each imported row. Custom column – you can map a specific column from your CSV file to serve as the document key. In this case, the values in that column become the unique identifiers for the corresponding documents. Important: If you select a custom CSV column for your document keys, ensure the values in that column are unique. If multiple rows share the same key value, they will overwrite each other during the import process. If you have several columns with the same name, only the last one will be used. 6. Click Add collection. ![Filled out Start collection pop-up](https://cdn.stape.io/i/6a54c8b3165e5910249456.png) You'll get a fully populated collection. ![A fully populated collection](https://cdn.stape.io/i/6a54b215019bf305386327.png) Tip: You can always upload CSV to the existing collection by clicking the three dots on the collection and selecting Upload CSV. How to add a document 1. Click on the desired collection and click + Add document. ![Click + Add document](https://cdn.stape.io/i/6a54b214cd7a3662512828.png) 2. In the pop-up enter Document name. Here you're defining a document key. 3. Click Add document. ![Add document pop-up](https://cdn.stape.io/i/6a54ca99ebf6b498232012.png) You'll get an empty document inside of the collection. ![Empty document inside of collection](https://cdn.stape.io/i/6a54b21521f24755886891.png) How to add a field 1. Click on the desired document and click + Add field. ![Click + Add field](https://cdn.stape.io/i/6a54b214cdb63426777987.png) 2. Enter the field Key and Value, and select Type. 3. Click Add. ![Add Key, Type, and Value](https://cdn.stape.io/i/6a54b214c9871826876283.png) You'll get a new field inside of a document. ![A new field inside of a document](https://cdn.stape.io/i/6a54b214ef764969400408.png) Note: You can't edit the field's key. You can edit only the type and value. How to delete a collection/document/field Warning: Once you delete a record, you won't be able to recover it. To delete a collection: 1. Hover over the collection name, click on the three dots, and select Delete. ![Delete collection](https://cdn.stape.io/i/6a54b214db37d438776484.png) 2. Confirm in the pop-up. ![Confirmation pop-up](https://cdn.stape.io/i/6a54cb045db3c135891642.png) To delete a document: 1. Hover over the document name, click on the three dots, and select Delete or Delete all fields. Delete deletes the entire document, and Delete all fields empties the document. ![Delete document options](https://cdn.stape.io/i/6a54b21500f72612066021.png) 2. Confirm in the pop-up. ![Confirmation pop-up](https://cdn.stape.io/i/6a54cb045db3c135891642.png) To delete a field hover over the field name, click on the three dots, and click on the trash icon. The field is deleted immediately. ![Delete field](https://cdn.stape.io/i/6a54b214e5cfc468714696.png) --- # User Data Collector tag Source: https://stape.io/helpdesk/documentation/user-data-collector-tag Section: Documentation Learn how to set up the User Data Collector tag in the web GTM to capture user data, push it to the dataLayer, or store it in browser storage. User Data Collector is a web GTM tag that automatically scans your webpage to identify and extract user data from forms and supported HTML elements, including email addresses, phone numbers, first and last names, cities, countries, and postal codes. The extracted information can be pushed to the dataLayer through a customizable event or stored in Session Storage or Local Storage for use across multiple pages. You can configure the tag to run automatically when users interact with specific elements, such as submit buttons, or limit the scan to a selected section of the page instead of the entire DOM. It also includes built-in debugging options with configurable console logging to make setup and troubleshooting easier. Requirements for setting up the User Data Collector tag To configure the tag, please ensure that you already have a [web Google Tag Manager container](https://support.google.com/tagmanager/answer/14847097?hl=en). How to set up the User Data Collector tag 1. Add the User Data Collector tag template in the web GTM container by importing it from the Template gallery: Search for the [User Data Collector tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/user-data-extractor-web-tag) by Stape in the Google Tag Manager Tag Template gallery. Click Add to workspace. ![User Data Collector tag template](https://cdn.stape.io/i/6a476c6a6037f960129829.png) 2. Create the User Data Collector tag: Go to the Tags menu → click New. ![Tags menu](https://cdn.stape.io/i/6a476c6a7df68712124134.png) Click Tag Configuration → select User Data Collector. ![select User Data Collector](https://cdn.stape.io/i/6a476c6a2e8d0157875148.png) 3. Configure the User Data Collector tag: User Data to be Collected - choose all types of user data you wish to extract from the page. ![User Data to be Collected options](https://cdn.stape.io/i/6a476c6a5b8b8911386511.png) Configuration: Save user_data information into the browser Storage - allows you to save the captured user information to Session or Local Storage. If you enable it, select a Storage Type and Storage Key (if not set, gtm_user_data will be used). Push an event to the dataLayer with user_data information - allows you to send an event to dataLayer, for example, to capture user_data information after a specific dataLayer event occurs. If enabled, enter a Data Layer Event Name and Data Layer Array Name. Automatically track clicks at specific type="submit" button and input HTML elements - tracks submit events at all
HTML elements by default and tries to detect user_data information. If enabled, specify a CSS selector for elements that should trigger data extraction on click (defaults to button[type="submit"] and input[type="submit"] if left blank). Automatically track submit events on form HTML elements - tracks submit events at all HTML elements by default and tries to detect user_data information. If enabled, specify a CSS selector for elements that should trigger data extraction on the submit event (defaults to form if left blank). Override the root HTML element to scan within - instead of the root HTML element, the tag will only scan the GTM variable. If enabled, provide a GTM variable that returns an HTML element. By default, it scans the entire document. Override the already captured user data with the newly captured values - existing user_data will be overridden with the newly captured data, instead of the default way of merging it with the already existing one. ![Configuration options](https://cdn.stape.io/i/6a476c6a6145b508097040.png) More Settings - enter a Script URL to load the collector script from. Default URL is [https://stapecdn.com/udc/${script-version}.js](https://stapecdn.com/udc/$%7Bscript-version%7D.js), which loads the latest script version. You can lock a specific version instead by replacing the placeholder ${script-version} with the version number (e.g., v1). Logs Settings - choose if you want to log requests to your account. This feature is handy when setting up server-side tagging since it allows seeing incoming and outgoing requests and network responses. ![More Settings and Logs Settings](https://cdn.stape.io/i/6a476c6a10807343328380.png) Advanced Settings: Tag firing priority - enter a number to assign the tag a priority (defaults to 0 if none is specified). Tags with higher numbers have a higher priority and will be fired first. Enable custom tag firing schedule - allows you to define a specific date and time to fire the tag. Only fire this tag in published containers - allows you to avoid firing the tag in testing environments (if, for instance, firing this tag results in a fee being charged). Tag firing options - choose whether you wish the tag to fire once per event, once per page, or every time it’s triggered. Tag Sequencing - you can assign specific tags to fire immediately before and after the current tag. Additional Tag Metadata - specify additional tag metadata to be included in the event data when the tag is fired. Consent Settings - choose if you wish for the tag to wait for marketing consent from the user before firing. ![Advanced Settings](https://cdn.stape.io/i/6a476c6a2e81c650480152.png) 4. Add a Trigger for the tag, give it a descriptive name, and click Save. ![Add a Trigger for the tag](https://cdn.stape.io/i/6a476c6a4f45a095414305.png) How to test and troubleshoot the User Data Collector tag setup You can test the configurations in Google Tag Manager. Click on Preview, trigger the event, and check whether the tag has fired. ![Test and troubleshoot the User Data Collector tag ](https://cdn.stape.io/i/6a476c69efcd1286364072.png) Find out more about [debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) in our guide. --- # Shopify Customer Privacy API tag Source: https://stape.io/helpdesk/documentation/shopify-customer-privacy-api-tag Section: Documentation Learn how to set up the Shopify Customer Privacy API tag in web GTM to sync customer consent preferences with Shopify and support headless stores. Shopify Customer Privacy API tag by Stape is a web GTM tag that lets you synchronize customer consent preferences from your GTM web container directly with Shopify's Customer Privacy API. It is particularly useful when your consent management platform does not natively integrate with Shopify, helping ensure that consent choices for analytics, marketing, and personalization are consistently applied across your store. The tag supports mapping consent states from Google Consent Mode or configuring them manually. It also allows you to send custom metafields to Shopify and supports headless commerce by configuring the required checkout and storefront domains, along with the Storefront API access token. Requirements for setting up the Shopify Customer Privacy API tag To configure the tag, please ensure that you already have a [web Google Tag Manager container](https://support.google.com/tagmanager/answer/14847097?hl=en). How to set up the Shopify Customer Privacy API tag 1. Add the Shopify Customer Privacy API tag template in the web GTM container by importing it from the Template gallery: Search for the [Shopify Customer Privacy API tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/shopify-customer-privacy-tag) by Stape in the Google Tag Manager Tag Template gallery. Click Add to workspace. ![Add the Shopify Customer Privacy API tag template](https://cdn.stape.io/i/6a462721dfcd7875375667.png) 2. Create the Shopify Customer Privacy API tag: Go to the Tags menu → click New. ![Tags menu](https://cdn.stape.io/i/6a462721dddb1751964022.png) Click Tag Configuration → select Shopify Customer Privacy API. ![select Shopify Customer Privacy API](https://cdn.stape.io/i/6a46272218a99478220703.png) 3. Configure the Shopify Customer Privacy API tag: Consent Source - choose how to define the consent status – either through Google's Consent Mode or Manually. ![Consent Source options](https://cdn.stape.io/i/6a462721e072f323896536.png) Consent Source - Google Consent Mode Analytics Consent - select the Google Consent Mode signal that will be mapped to Shopify's Analytics Consent properties. These are the cookies to understand how customers interact with the site. Marketing Consent - select the Google Consent Mode signal that will be mapped to Shopify's Marketing Consent properties. These are the cookies to provide ads and marketing communications based on customer interests. Preferences / Functional Consent - select the Google Consent Mode signal that will be mapped to Shopify's Preferences / Functional Consent properties. These are the cookies that remember customer preferences, such as country or language, to personalize visits to the website. ![Google Consent Mode as consent source](https://cdn.stape.io/i/6a46272212f18686780314.png) Consent Source - Manual Analytics Consent - manually define the consent status for Shopify’s Analytics Consent properties as "granted", "true", or true. Everything else will be considered "denied". These are the cookies to understand how customers interact with the site. Marketing Consent - manually define the consent status for Shopify’s Marketing Consent properties as "granted", "true", or true. Everything else will be considered "denied". These are the cookies to provide ads and marketing communications based on customer interests. Preferences / Functional Consent - manually define the consent status for Shopify’s Preferences / Functional Consent properties as "granted", "true", or true. Everything else will be considered "denied". These are the cookies that remember customer preferences, such as country or language, to personalize visits to the website. ![Manual as consent source](https://cdn.stape.io/i/6a46272218f58211872411.png) Other parameters: Metafields - allows you to save custom data to the Shopify Customer Privacy API using [metafields](https://shopify.dev/docs/api/customer-privacy#metafields), available through checkout UI extensions. Custom Storefront Settings - when using a [custom storefront (headless commerce)](https://shopify.dev/docs/api/customer-privacy#installation-on-a-custom-storefront), you need to provide certain details required for the Shopify Customer Privacy API to function correctly: Checkout Root Domain - the domain of your checkout page. Storefront Root Domain - the domain of your custom storefront. Storefront API Access Token - your public Storefront API access token. Logs Settings - choose if you want to log requests to your account. This feature is handy when setting up server-side tagging since it allows seeing incoming and outgoing requests and network responses. ![Other parameters](https://cdn.stape.io/i/6a46272227da8045133901.png) Advanced Settings: Tag firing priority - enter a number to assign the tag a priority (defaults to 0 if none is specified). Tags with higher numbers have a higher priority and will be fired first. Enable custom tag firing schedule - allows you to define a specific date and time to fire the tag. Only fire this tag in published containers - allows you to avoid firing the tag in testing environments (if, for instance, firing this tag results in a fee being charged). Tag firing options - choose whether you wish the tag to fire once per event, once per page, or every time it’s triggered. Tag Sequencing - you can assign specific tags to fire immediately before and after the current tag. Additional Tag Metadata - specify additional tag metadata to be included in the event data when the tag is fired. Consent Settings - choose if you wish for the tag to wait for marketing consent from the user before firing. ![Advanced Settings](https://cdn.stape.io/i/6a4627222a820246644132.png) 4. Add the Trigger for the tag, give it a descriptive name, and click Save. ![Add the Trigger for the tag](https://cdn.stape.io/i/6a4627223b6d8397293408.png) How to test and troubleshoot the Shopify Customer Privacy API tag setup You can test the configurations in Google Tag Manager. Click on Preview, trigger the event, and check whether the tag has fired. ![How to test and troubleshoot the Shopify Customer Privacy API tag](https://cdn.stape.io/i/6a4627221afea753509935.png) Find out more about [debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) in our guide. --- # How to export Logs to AWS bucket and connect BigQuery Source: https://stape.io/helpdesk/documentation/export-logs-to-aws-bucket-connect-bigquery Section: Documentation Step-by-step guide on how to create an AWS S3 bucket, configure access for Stape, and export logs to BigQuery using external tables. This guide describes the process of setting up an AWS S3 bucket and integrating it with Stape for automated log exports. It also explains how to connect the bucket to BigQuery using external tables, so as to get close to real-time access to your logs without requiring manual imports. How to create an AWS S3 Bucket and set up an export to it from Stape Step 1. Create the AWS S3 Bucket Create an empty bucket to store your logs. 1.1 Log in to your [AWS Management Console](https://aws.amazon.com/console/). 1.2 At the top of the screen, use the search bar to find S3 and click on it. 1.3 Click the Create bucket button. Specify the following: Bucket name - choose a globally unique name (e.g., your-company-stape-logs). Save this name - you will need it for configuration within Stape UI. AWS Region - choose the region closest to you or your servers (e.g., eu-central-1 for Frankfurt). Save this exact region code, as you will need it for Stape. Object Ownership - leave ACLs disabled (recommended). Block Public Access settings for this bucket - ensure the box for Block all public access is checked (this is the default and is best for security). 1.4 Click Create bucket. Step 2. Create an IAM user 2.1 In the top search bar of the AWS Console, type IAM and click on it. 2.2 On the left-hand menu, click Users, then click the Create user button on the right. 2.3 As User name, type something obvious, like stape-logs-exporter, and click Next. Step 3. Provide the user permissions 3.1 On the Permissions page, select the Attach policies directly option. 3.2 In the search box below, type AmazonS3FullAccess. 3.3 Check the box next to AmazonS3FullAccess when it appears in the list. Note: This gives Stape access to your S3 buckets. Since this user is only for Stape, this is the easiest way to ensure the connection works. 3.4 Click Next, review the setup, and click Create user. Step 4. Generate the Access keys 4.1 You will be taken back to the list of Users. Click on your newly created user (stape-logs-exporter). 4.2 Click on the Security credentials tab → scroll down to the Access keys section → click Create access key. 4.3 Select a Third-party service as the use case. Check the confirmation box at the bottom and click Next → click Create access key. 4.4 Copy Access key ID and Secret access key. AWS will now display the Access key ID and Secret access key values. Copy both of these and save them somewhere secure. You will never be able to see the Secret key again after you click Done. Step 5. Configure the Stape Logs export 5.1 Open your Stape container → navigate to Logs → Export logs tab → enable Log export. ![Open your Stape container → navigate to Logs → Export logs tab → enable Log export.](https://cdn.stape.io/i/6a42329881d4b903832574.png) 5.2 As Destination, select AWS bucket. 5.3 In the Bucket name field, enter the exact name of the bucket you created in Step 1 (e.g., your-company-stape-logs). Do not add any slashes here. 5.4 In the Prefix / Folder, enter the folder structure where you want the logs to go. Do not start with a slash (no /incoming/); otherwise, you will create a blank folder, and BigQuery will struggle. Format example: incoming/ or logs/incoming/ 5.5 In the Region field, enter the exact region of your bucket from Step 1 (e.g., eu-central-1). 5.6 Paste the AWS Access Key ID and Secret Key you generated and copied earlier. 5.7 Click the green Connect button. Stape will verify the connection. Once successful, your logs will be sent to the AWS S3 bucket. ![Stape will verify the connection. Once successful, your logs will be sent to the AWS S3 bucket.](https://cdn.stape.io/i/6a423298c915a880130605.png) Exported logs structure ![Exported logs structure](https://cdn.stape.io/i/6a423298c4fb5015056311.png) How to export logs to BigQuery BigQuery can query data stored in Amazon S3 using a BigLake connection and an external table. The feature is required to connect both platforms. As the last step within the configuration, you need to create an External Table in BigQuery to ensure the data updates in real time without manual input. This configuration allows BigQuery to query data from your storage bucket and reflects any new files added by Stape. Step 1. Set up the AWS IAM Role Create the Policy 1.1 Log in to your AWS Management Console, search for IAM, and click on it. 1.2 On the left menu, click Policies → click the Create policy button. 1.3 Click the JSON tab and paste the following code: Note: Be sure to replace your-company-stape-logs with your exact bucket name { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::your-company-stape-logs" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::your-company-stape-logs/*" ] } ] } 1.4 Click Next until you reach the review page and name the policy BigQuery-S3-Read-Policy and click Create policy. Create the Role 1.5 In the IAM left menu, → click Roles, → Create role. And specify the following: Trusted entity type - select Web identity. Identity provider - select Google. Audience - type exactly 00000 (this is a temporary placeholder we will change later). 1.6 Click Next. 1.7 On the Permissions page, search for the BigQuery-S3-Read-Policy you just made, check the box next to it, and click Next. 1.8 Name the role BigQuery-Omni-Role and click Create role. 1.9 Find your new role in the list, click on it, and copy the ARN (Amazon Resource Name) at the top. It looks like arn:aws:iam::123456789:role/BigQuery-Omni-Role. Update the IAM Role Session Duration 1.10 Go back to your AWS Management Console, search for IAM, and click on it. 1.11 In the left-hand menu, click Roles → search for and click on the role you created for this connection (e.g., BigQuery-Omni-Role) → on the role's Summary page, click the Edit button. 1.12 In the Maximum session duration section, change the dropdown value from 1 hour to 12 hours → click Save changes. Step 2: Create the connection 2.1 Open BigQuery in your Google Cloud Console. 2.2 In the Explorer pane on the left, click + Add Data near the search bar and select Connections to external data sources (or search for Amazon S3). 2.3 Select Amazon S3 → Lakehouse as the connection type. Specify the following: Connection ID - name it aws_stape_connection. Location - select the AWS region that matches your S3 bucket, prefixed with aws- (e.g., if your S3 bucket is in eu-central-1, select aws-eu-central-1). AWS role ID - paste the ARN you copied at the end of Step 1. 2.4 Click Create connection, → click Go to connection. 2.5 In the Connection details pane, find the BigQuery Google identity. Copy this identity. Step 3: Take Google Identity back to AWS 3.1 Go back to your AWS IAM Console, find your BigQuery-Omni-Role, and click on it. 3.2 Click the Trust relationships tab, → click Edit trust policy. 3.3 Find the line that says "accounts.google.com:aud": "00000" and replace 00000 with the Google identity you just copied from BigQuery. 3.4 Click Update policy. Step 4: Create the External Table 4.1 In BigQuery, create a new Dataset. Note: The Data Location must be the AWS region (e.g., aws-eu-central-1). Name it something like aws_stape_logs. 4.2 Hover over your new dataset, click the three dots, and select Create table. Set it up the following way: Create table from - Amazon S3 Select S3 path - s3://your-company-stape-logs/test/incoming/* File format - JSONL (Newline delimited JSON) Connection ID - select the aws_stape_connection you made earlier. Source Data Partitioning - check this box. Select Source URI Prefix - s3://your-company-stape-logs/test/incoming/ Table name - aws_incoming_logs Schema - check Auto detect 4.3 Click Create table. --- # How to export Logs to GCP bucket and connect BigQuery Source: https://stape.io/helpdesk/documentation/export-logs-to-gcp-bucket-connect-bigquery Section: Documentation Get a step-by-step guide on how to create a Google Cloud Storage bucket, configure access for Stape, and export logs to BigQuery using external tables. This guide explains how to set up a Google Cloud Storage bucket and connect it with Stape for automated log export. It also shows how to connect your bucket to BigQuery using external tables so your logs are always available for real-time querying and analysis without manual imports. How to create a Google Cloud bucket and set up an export to it from Stape Step 1. Create the Google Cloud Storage Bucket Create an empty bucket to store your logs. 1.1 Log in to your [Google Cloud Console](https://console.cloud.google.com/). 1.2 Navigate to Cloud Storage → Buckets. 1.3 Click the Create button. 1.4 Name your bucket. Choose a unique name (e.g., your-company-stape-logs). 1.5 Select location type. Choose Region and select the region closest to you or your servers (e.g., us-central1). Note the exact region (for example, us-central1). You’ll use it later when configuring Stape and BigQuery. 1.6 Keep the rest of the settings as their defaults and click Create. Step 2. Create a Service Account and HMAC keys Stape needs permission to write files into your new bucket. You can provide access by creating a Service Account and generating specific "HMAC" keys. 2.1 Navigate to IAM & Admin → Service Accounts. 2.2 Click Create Service Account. Give it a name (e.g, stape-logs-export), click Create and Continue. 2.3 Under Role, search for and select Storage Object Admin. This permits it to save files to your bucket. Click Done. 2.4 Navigate back to Cloud Storage → Settings and click the Interoperability tab at the top of the page. 2.5 Scroll down to the Service account HMAC section and click Create a key for a service account. 2.6 Select the stape-logs-export service account you created in step 2.2. 2.8 Google will generate an Access Key (starts with GOOG...) and a Secret Key. Be sure to copy both of these values (Access Key and Secret Key) and paste them in a safe place. You cannot view the Secret Key again once you close the window. Step 3. Configure the Stape Logs export 3.1 Open your Stape container → navigate to Logs → Export logs tab → enable Log export. ![Open your Stape container → navigate to Logs → Export logs tab → enable Log export.](https://cdn.stape.io/i/6a422f94b9b8f307173907.png) 3.2 As Destination, select the GCP bucket. 3.3 In the GCS destination path, enter your bucket name and optionally a top-level folder. Do not put a slash at the end. Format example: your-company-stape-logs or your-company-stape-logs/test 3.4 As Prefix / Folder, enter the folder structure where the logs should go. Do not put a slash at the beginning. Format example: incoming or logs/incoming 3.5 In the Region field, enter the exact region of your bucket from Step 1 (e.g., us-central1). 3.6 Paste the Access Key and Secret Key you generated in Step 2. 3.7 Click Connect. Once the connection is verified, Stape will automatically export new log files to your Cloud Storage bucket. ![Click Connect. ](https://cdn.stape.io/i/6a422f93ef802163561102.png) Exported logs structure ![Exported logs structure](https://cdn.stape.io/i/6a422f94ca721867744906.png) How to export logs to BigQuery To ensure the data updates in real time without manual input, you need to create an External Table in BigQuery. This configuration allows BigQuery to query data from your storage bucket and reflects any new files added by Stape. Below is a step-by-step guide using the new BigQuery Studio interface: Step 1: Create a BigQuery dataset If you already created a dataset in the correct region earlier, you can skip this step. If not, follow the instructions below: 1.1 Open the BigQuery page in your Google Cloud Console. 1.2 In the left-hand Explorer panel, click on your Project ID (e.g., logs-test-496008). 1.3 In the large main workspace area on the right, click the Create dataset button near the top. 1.4 Specify the following: Dataset ID - name it stape_logs. Location type - you must select the same region where you created your GCS bucket (e.g., us-central1). 1.5 Click Create dataset. Step 2: Create the External Table External tables allow BigQuery to read files directly from Cloud Storage without copying or importing the data. 2.1 In the Explorer panel on the left, find your new stape_logs dataset. 2.2 Hover your mouse over the dataset name, click the three vertical dots that appear, and select Create table. 2.3 Fill out the slide-out panel as follows: Create a table from - select Google Cloud Storage. Select a file from the GCS bucket - type your exact clean bucket path ending with a wildcard. Format example: your-company-stape-logs/test/incoming/* (Make sure there are no double slashes). File format - select JSONL (Newline-delimited JSON). Check the box “Source Data Partitioning” (this tells BigQuery to read your year=... folders). Select Source URI Prefix - type the exact path up to the word incoming/. It must end with a single slash. Format example: gs://your-company-stape-logs/test/incoming/ Partition Inference Mode - leave as Automatically infer types. Table - name it incoming_logs. Table type - select External table. Schema - check the Auto detect box. 2.4 Click the Create table button at the bottom. 2.5 Repeat Step 2 for your outgoing logs, just changing the word incoming to outgoing in the paths and table name. --- # How to delete a Standard account Source: https://stape.io/helpdesk/documentation/how-to-delete-a-standard-account Section: Documentation Learn how to permanently delete your Stape Standard account, and what happens to your containers and billing after. Warning: Deleting is irreversible. Once the account is gone, it's impossible to get it back. How to delete 1. In the top right corner, click your profile and select Account settings. ![Account settings](https://cdn.stape.io/i/6a3d02abadb42380980703.png) 2. In the top right corner, click the three dots and select Delete Account. ![Select "Delete Account"](https://cdn.stape.io/i/6a3d02abb7a28641019511.png) 3. Type in the password and click Delete account. ![Deletion confirmation](https://cdn.stape.io/i/6a3d02aba6b43858687766.png) Note: The account is deleted immediately. However, in some cases the process can take up to two hours. --- # How to convert a Standard account to Agency account Source: https://stape.io/helpdesk/documentation/how-to-convert-a-standard-account-to-agency-account Section: Documentation Turn your Stape Standard account into an Agency account to manage clients, and learn how your new Agency login works. What happens when you convert your account A new Agency login is created. It's your email with +agency added before the @. For example, youremail+agency@example.com. The password stays the same as your Standard account. Your Standard account stays as it is. You can still sign in to it with your original email and password. The account and its products are automatically added under the new Agency account. From then on, you choose which one to sign in to: Standard account - your original email and password. Agency account - the new email+agency login and the same password. Notes: You can't convert your account if you log in with Google or Facebook. You need to switch to email login first. For more information on how to change your authentication, read [Sign-in methods](https://stape.io/helpdesk/documentation/profile-and-security#sign-in-methods). Your account can't be a sub account of any other agency. You have to remove the Agency accounts' access to your Standard account first. If you've converted your account by mistake, you can contact the [support team](mailto:support@stape.io) and they'll help you undo the changes. How to convert an account 1. In the top right corner, click your profile and select Account settings. ![Account settings](https://cdn.stape.io/i/6a3cf28ea6b1b453529426.png) 2. In the top right corner, click the three dots and select Convert to Agency. ![Convert to Agency](https://cdn.stape.io/i/6a3cf28e9a0c4247918889.png) 3. Read the pop-up that appears. It shows your new Agency login (your email+agency) and confirms the password is the same as before. 4. Click Create to finish. !["Create Agency account" pop-up](https://cdn.stape.io/i/6a3cf28e9a087793460887.png) Your Agency account is ready, and you can start adding clients to it. For more information on how to use an Agency account on Stape see [Agency account overview](https://stape.io/helpdesk/documentation/agency-account-overview). --- # Standard account overview Source: https://stape.io/helpdesk/documentation/standard-account-overview Section: Documentation See what a Standard account does in Stape, where to create containers and gateways, manage billing, and find account settings. With the Standard account you can: Create sGTM containers. For more information read [Get started with sGTM hosting](https://stape.io/helpdesk/documentation/sgtm/get-started). Create gateways. For more information read [Dedicated Gateways](https://stape.io/helpdesk/documentation/gateways). Manage billing. For more information read [Billing](https://stape.io/helpdesk/documentation/billing). EU vs Global When signing-up, you have to choose your platform, and it can't be changed later. Platform affects where billing is handled, so make sure to pick the one that fits your client base. EU (Stape Europe) – invoicing in EUR, GDPR-aligned data handling. invoicing in EUR, GDPR-aligned data handling. Select if you have clients based in the EU, or if you have clients that require the GDPR-aligned data handling. For more information see [Payment country restrictions on Stape Europe](https://stape.io/helpdesk/documentation/payment-country-restrictions-on-stape-europe). Global – invoicing in USD. Select if your clients are spread across the rest of the world. Navigating the account Dashboard This is your home page. It sums up what's happening across the account: Recent sGTM containers – click one to open it, or click Create sGTM container to create a new one. Recent gateways – click one to open it, click Create gateway and choose a type to add one. Latest articles – fresh how-tos and product news from Stape. ![Stape dashboard](https://cdn.stape.io/i/6a3bec79f09cd489285738.png) sGTM This is home for all your sGTM containers. Every container you've created is listed here. You can click a container's name to open its settings, or click Create sGTM container to add a new one. ![sGTM section](https://cdn.stape.io/i/6a3bec7a10bf5225118952.png) Signals Gateway This is home for all your Signals Gateways. Every Signals Gateway you've created is listed here. Click a Gateway's name to open its settings, or click Create Signals Gateway to add a new one. ![Signals Gateways section](https://cdn.stape.io/i/6a3bec7a2d7cd872402938.png) Gateways This tab groups Stape's gateway types. They all behave the same way: each type has its own page, you click a gateway's name to open its settings, and you add a new one with the Create gateway button. The gateways are: Meta CAPIG Stape Gateway TikTok eAPIG Snap CAPIG ![Gateways section](https://cdn.stape.io/i/6a3bec7a4a72f270949919.png) Billing Here you can find everything money-related for the account: View and edit your billing details. See information about your subscriptions. See your [invoice history](https://stape.io/helpdesk/documentation/how-to-find-your-invoices-and-receipts). Generate [payment link](https://stape.io/helpdesk/documentation/share-payment-link). Turn on [Consolidated invoicing](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-standard-accounts) to get a single invoice across multiple products. ![Billing section](https://cdn.stape.io/i/6a3bec7a23eee092780690.png) Support center Click the question mark, and it'll open you a menu with: Help desk – here you can read the documentation about Stape and its products, also frequently asked questions are answered here. Community – a public forum for server-side tracking discussions. Questions are answered by both Stape staff and other server-side tracking experts in the community. Status page – shows the health of Stape's services. Check it first if something that was working suddenly stops. Contact support – the button opens the request form to contact support. ![Stape support center](https://cdn.stape.io/i/6a3bec7a1ff5d208387261.png) Notification center Click the bell icon in the top right corner, and the Notification center panel slides out, listing your most recent product related events, each with a date and time. ![Notification center](https://cdn.stape.io/i/6a3bec79e784f890461608.png) You'll see different types of notifications, like payments, deployment issues, domain verification, etc. If you click on the notification, it'll take you to the related container/gateway page. ![Notifications list](https://cdn.stape.io/i/6a3bf1bed529d004649868.png) Account menu Click your account name in the top right corner to access the account settings: API – explains how to use the [Stape API tool](https://stape.io/helpdesk/documentation/stape-api). [Account settings](https://stape.io/helpdesk/documentation/account-management/accounts-settings) – allows you to: Edit your password, email, and personal info Set up two-factor authentication Share access to your containers and gateways Review your activity history Convert or delete your account Stape Academy – a free online training platform dedicated to server-side Google Tag Manager and tracking. It offers video modules and short quizzes designed for marketers and analysts to master tracking setups without touching backend code, and provides an official certification upon completion. ![Account settings](https://cdn.stape.io/i/6a3bec7a5a662696344255.png) --- # Notifications Source: https://stape.io/helpdesk/documentation/account-notifications Section: Documentation Learn how to manage your Stape email alerts and notifications. Customize your marketing preferences while keeping essential account updates active. Notification settings let you manage which emails and alerts Stape sends you. To find notifications, at the top menu click on your profile icon → Account settings → Notifications tab. !["Notifications" tab in Account settings](https://cdn.stape.io/i/6a3be4c750b64561904502.png) Essential notifications Essential notifications provide you with the most important updates regarding your account and services. Because these alerts contain critical information to keep your account secure and running smoothly, they remain active at all times. Account & Billing – you automatically receive important account-related emails, including: Billing and payment notifications (e.g. failed payments, invoices). Service limit and product status updates. Account security changes – password changes, two-factor authentication (2FA) status, and email address updates. System notifications. Note: These notifications can be turned off by unsubscribing from them via email when you receive one of these messages. Once turned off, you need to [contact support](http://support@stape.io) to turn them back on. ![Essential notifications](https://cdn.stape.io/i/6a3e2fdf0fc83290895660.png) Marketing preferences Marketing preferences are entirely optional. Check each one on or off to choose whether Stape sends you marketing materials, non-essential product updates, and promotional content. New Features & Product News – get notified about our latest product launches, features, improvements, and major updates. Exclusive Offers & Tips – get personalized recommendations, time-sensitive discounts, special offers, and tips to maximize your experience. Event Invitations – don't miss Stape webinars, conferences, product demos, and special events. Stape Digest – receive a monthly email with product news, expert insights, and the latest industry trends. After ticking the checkboxes, click Update. ![Marketing preferences](https://cdn.stape.io/i/6a3be4c74c89e839152975.png) --- # Account API keys Source: https://stape.io/helpdesk/documentation/api-keys Section: Documentation Learn how to generate and manage Stape API keys to automate your workflows, for your Stape account. The account API key is used as the authorization token for Stape API requests. With it, you can interact with the Stape API programmatically and automate tasks such as managing container settings, accounts, and subscriptions directly from your scripts, services, or integrations. Read more about [how to use the Stape API](https://stape.io/helpdesk/documentation/stape-api). Note: Stape allows a maximum of 10 active API keys per account. If you reach the limit, you'll need to delete an existing key before you can create a new one. How to create an API key 1. At the top menu click on your profile icon → Account settings. ![Account settings](https://cdn.stape.io/i/6a3bdbaae0193203231396.png) 2. Go to the API keys tab. 3. In the Create API key section, enter an API key name. Choose something you'll recognize later, such as the integration or script that will use the key. 4. Click Create API key. !["API keys" tab](https://cdn.stape.io/i/6a3bdbab1c889192232638.png) 5. Copy the full key token immediately and store it somewhere secure. ![Copy API key token](https://cdn.stape.io/i/6a3bdbaadec85804421351.png) Important: The full key token is shown only once, at the moment you create it. After you close or leave the page, the dashboard masks the key and displays only the last few characters for identification. If you lose the token, you can't recover it – you'll need to delete the key and create a new one. To delete a key, click the Delete icon: !["Delete" icon](https://cdn.stape.io/i/6a3bdbaade9a5276153121.png) --- # Shared access Source: https://stape.io/helpdesk/documentation/shared-access Section: Documentation Learn how to grant other users full control over your Stape account, allowing them to view and manage containers and billing settings. Shared access allows you to grant another Stape user partial control (such as access to products or billing) over your account. Once access is granted, the user can view and manage the products you have shared within your account. Because this provides full administrative privileges, please only grant access to individuals you trust; you can revoke this permission at any time. Notes: You can only grant access to [Standard accounts](https://stape.io/helpdesk/documentation/standard-account-overview). It isn't possible to grant shared access to Agency and Partner accounts with this feature. To allow Agency/Partner account access to a Standard account, the Standard account must first be added as a client within that Agency/Partner account. Once this is done, the Agency/Partner account can request access and log in as a user. For more information read the [Agency account overview](https://stape.io/helpdesk/documentation/agency-account-overview) or [Partner account overview](https://stape.io/helpdesk/documentation/partner-account-overview). To ensure compatibility, you can only share access with users in the same region. For example, Stape Global users can share access with other Global users, while Stape EU users can share with other EU users. If your goal is to manage multiple clients with individual billing, an [Agency account](https://stape.io/helpdesk/documentation/agency-account-overview) is the recommended solution. How to share access 1. At the top menu click on your profile icon → Account settings. ![Account settings](https://cdn.stape.io/i/6a3bd022db453457755313.png) 2. Go to the Shared access tab. 3. Under Share my workspace, enter the Stape user email of the person you want to share access with. 4. Choose what to include: Containers & Gateways you want to share – tick the Share all current and new checkbox to grant access to all existing and newly created containers and gateways. Billing – tick the Allow view and edit billing information checkbox if the user should also be able to view and manage billing. 5. Click Share access to confirm. !["Shared access" tab](https://cdn.stape.io/i/6a3bd022f3001111848515.png) The account with whom you shared the access will be displayed in the Already shared with section. !["Already shared with" section](https://cdn.stape.io/i/6a3bd02305d55131760875.png) How to revoke shared access There are a couple of ways to revoke the access: Remove access (as the account owner) – go to the Shared access tab and click the Remove icon next to the user you wish to remove. !["Remove" icon](https://cdn.stape.io/i/6a3bd02357d20883635340.png) Retire access (as the user who was granted access) – if you have been granted access to another account, you can step away at any time by clicking the Retire icon in the Shared access tab. !["Retire" icon](https://cdn.stape.io/i/6a3bd022f3a88410085947.png) --- # Profile and security Source: https://stape.io/helpdesk/documentation/profile-and-security Section: Documentation Learn how to manage your Stape personal details, update passwords, enable 2FA, choose from various secure sign-in methods and recover your account. Your Profile and Security settings allow you to update your personal details, manage how you sign in, and enhance your account protection through tools like two-factor authentication. To access these pages, at the top menu click on your profile icon → Account settings. ![Account settings in profile menu](https://cdn.stape.io/i/6a3bb601b35d7761818840.png) Profile Here you can change your personal details: Avatar – click Change photo to upload a profile picture. Allowed file types are PNG, JPG, and JPEG. Your avatar appears next to your account across Stape and helps your teammates recognize you when [access is shared](https://stape.io/helpdesk/documentation/shared-access). First name and Last name – both are required. They appear on your account, in shared-access invitations, and in communications from Stape. Data processing agreement – the note links to the [data-processing regulations](https://stape.io/dpa) Stape applies to your account. Click Read to review them at any time. ![Profile settings](https://cdn.stape.io/i/6a3bb60235614388139786.png) Security On this page you can enable 2FA, change password, set up a passkey, enable SSO and look at the activity history. !["Security" tab](https://cdn.stape.io/i/6a3bb601bfdc2133753459.png) Two-Factor Authentication You can increase the security of your account by activating two-factor authentication. You can use any 2FA app, such as Google Authenticator, Authy, etc. This section is only applicable if you use the email/password authentication. To enable the 2FA, follow these steps: 1. Click Enable 2FA. !["Enable 2FA" button](https://cdn.stape.io/i/6a3bb601bfaa0958164581.png) 2. Follow the instructions in the pop-up, and click Submit. !["Submit" button](https://cdn.stape.io/i/6a3d2b012f2ad417943277.png) Important: Stape gives you a set of one-time backup recovery codes. Store them somewhere safe and separate from your phone (a password manager, for example). You can disable the 2FA any time by clicking Disable 2FA. !["Disable 2FA" button](https://cdn.stape.io/i/6a3bb6020022a985937554.png) Change password Here you can update your account password. This section is only applicable if you use the email/password authentication. Enter your Current password. Enter your New password. Re-enter it in Confirm password. Click Update. ![Change password](https://cdn.stape.io/i/6a3bb601c1f00564471518.png) Activity history The Activity history log helps you keep an eye on your account by tracking recent logins, making it easy to spot any activity that looks unfamiliar. Each entry includes: Event – the specific action (e.g., login). Source – the browser and operating system you used. IP – the session's IP address. Country – the location associated with that IP. Date and time – when the event took place. If you see activity you don't recognize, change your password and enable 2FA right away. ![Activity history log](https://cdn.stape.io/i/6a3bb6020d6a3441631231.png) Sign-in methods Stape supports several sign-in methods: Email/password – sign in with your email address + a password. Google – one-click sign-in with your Google account. Facebook – one-click sign-in with your Facebook account. Passkey – sign in with fingerprint, face, or screen lock. SSO – single sign-on via your organization's provider. Email/password sign-in To use this type of authentication, click Sign up with email during the sign-up process. You’ll be asked to enter your password as well. !["Sign up with email" option](https://cdn.stape.io/i/6a3bb60235f89653890325.png) If you log in with an email/password, you can change the email. For this go to Profile → Change email. The Change email section lets you move your account to a new login email. You need to enter: New email – the address you want to use. Current password – required to confirm it's really you. Notes: If you have two-factor authentication (2FA) enabled, you'll be asked for your 2FA verification code in addition to your password to authorize the email update. When you convert a [Standard account](https://stape.io/helpdesk/documentation/standard-account-overview) to an [Agency account](https://stape.io/helpdesk/documentation/agency-account-overview), Stape creates a separate agency login by appending +agency to your existing username. These are independent logins. If you later change the email on your Standard account, your agency login doesn’t update automatically. ![Change email](https://cdn.stape.io/i/6a3bb60208faf884064478.png) Google/Facebook sign-in To use this type of authentication, click Sign up with Google or Sign up with Facebook during the sign-up process. You’ll be guided through the process by Google or Facebook. ![Google/Facebook sign-up](https://cdn.stape.io/i/6a3bb60206308048633874.png) You can change your authentication type. For this go to Profile → Switch to email login and click switch to email link. Note: With this authentication type you won't be able to convert your [Standard account](https://stape.io/helpdesk/documentation/standard-account-overview) to an [Agency account](https://stape.io/helpdesk/documentation/agency-account-overview). ![Switch to email login](https://cdn.stape.io/i/6a3bb6025580f213002701.png) Passkey sign-in A passkey is a quick, secure way to sign in using your device's fingerprint, face, or screen lock instead of a password. Go to Security → Passkey and click Create passkey. Follow your device's prompt to set the passkey. This section is only applicable if you use the email/password authentication. !["Create passkey" button](https://cdn.stape.io/i/6a3bb60236312244550057.png) Single Sign-On (SSO) sign-in With Single Sign-On (SSO), your team can securely access Stape using your existing company email credentials, eliminating the need to manage separate usernames or passwords. If you remove an employee from your company's system, they immediately lose access to Stape. Stape's SSO is powered by [WorkOS](http://workos.com/) for enterprise-grade reliability and broad compatibility. Supported providers include: Google SAML Okta SAML Microsoft Entra ID (Azure AD) SAML ADP OpenID Connect Auth0 SAML CAS SAML ClassLink SAML Cloudflare SAML CyberArk SAML Duo SAML Microsoft Entra ID OpenID Connect Google OpenID Connect JumpCloud SAML Keycloak SAML LastPass SAML Login.gov OpenID Connect Microsoft AD FS miniOrange SAML NetIQ SAML Okta OpenID Connect OneLogin Oracle PingFederate PingOne Rippling Shibboleth Generic SAML SimpleSAMLphp SAML VMware Workspace One To request SSO, go to Security → Single Sign-On (SSO), and click Request SSO. The Stape team will take a look and contact you with further instructions. Notes: SSO isn't supported for public/free domains like @gmail.com. SSO is a paid feature available for all Stape accounts. !["Request SSO" button](https://cdn.stape.io/i/6a3bb60200f76994895709.png) Account recovery I forgot my password 1. On the Stape login page, enter your email address, and click Continue. ![Enter your email address and click "Continue"](https://cdn.stape.io/i/6a3bb601b4daf980419340.png) 2. Click Forgot Password. ![Click "Forgot Password"](https://cdn.stape.io/i/6a3bb6020a348562533715.png) 3. Enter your email and click Request. ![Click "Request"](https://cdn.stape.io/i/6a3bb60224fcd894142829.png) 4. Check your inbox for a password reset email from Stape. 5. Click Restore Password and enter a new password. ![Click "Restore Password"](https://cdn.stape.io/i/6a3d231032b47032420834.png) Your new password is now active, and you can sign in with it right away. I lost access to my 2FA If you saved your backup codes: when you set up 2FA, Stape gives you a set of one-time backup recovery codes. If you lose access to your authenticator app or device, enter any one of these codes at the 2FA prompt to sign in. Each code works only once. ![Enter 2FA backup code](https://cdn.stape.io/i/6a3bb601baaf4146905819.png) If you've lost both your authenticator and your backup codes: you won't be able to bypass 2FA on your own. Please contact [support@stape.io](mailto:support@stape.io) to request manual recovery. I lost access to my passkey Don't worry if you lose the device or browser where your passkey is stored – you won't be locked out. Since a passkey is just one of your sign-in options, you can still access your account by: Signing in with your email and password, or Using the [I forgot my password](https://stape.io/helpdesk/documentation/profile-and-security#i-forgot-my-password) instructions above to restore access. Once you're back in, you can set up a new passkey from the Security tab. Contact support If none of the above works and you can't recover access yourself, contact the Stape team at [support@stape.io](mailto:support@stape.io). The team will verify that you own the account and help restore your access. --- # How to delete a Partner account Source: https://stape.io/helpdesk/documentation/how-to-delete-a-partner-account Section: Documentation How to Delete a Partner Account | Stape Warning: Deleting is irreversible. Once the account is gone, it's impossible to get it back. Additionally, your earned commissions will be gone without the possibility to get them back. How to delete 1. In the top right corner, click your profile and select Account settings. ![Select "Account settings"](https://cdn.stape.io/i/6a3933e1a5d99959413970.png) 2. In the top right corner, click the three dots and select Delete Account. ![Select "Delete Account"](https://cdn.stape.io/i/6a3933e16eefe163288773.png) 3. Type in the password and click Delete account. ![Delete account confirmation](https://cdn.stape.io/i/6a3933e16f987855733645.png) Note: The account is deleted immediately. However, in some cases the process can take up to two hours. --- # Partner program levels Source: https://stape.io/helpdesk/documentation/partner-program-levels Section: Documentation Partner Program Levels | Stape The [Stape partner program](https://stape.io/helpdesk/documentation/partner-account-overview#about-the-stape-partner-program) has two tiers – Level 1 and Level 2. Both levels let you monetize your audience by introducing them to server-side tracking, but they differ in commission rates and the requirements you need to meet. Level 1 partners Every partner begins from Level 1. As a Level 1 partner you get: A unique referral link. A page in our [Partner Directory](https://stape.io/partner-directory). Up to 30% of the lifetime revenue share. Access to [resources & marketing materials](https://stape.io/helpdesk/documentation/resources-available-to-partners). Dedicated partner manager. The partner program lets you earn a monthly commission on every client you bring to Stape, for as long as the client's product subscription is paid. Commission rates for sGTM hosting and Signals Gateway Subscription Plan | Rate, % Pro, Pro+ | 10 Business, Business+ | 20 Enterprise, Enterprise+ | 30 Custom | 30 Commission rates for Gateways Gateway | Rate, % Meta CAPI Gateway | 10 Stape Gateway | 10 Snapchat CAPI Gateway | 10 TikTok Events API Gateway | 10 Level 2 partners Level 2 is the next tier, designed for partners who consistently drive significant referral revenue. To qualify, you need to be earning at least $500 in monthly referral commission. As a Level 2 partner you get: Up to 40% lifetime revenue share. Direct Slack channel access. Co-marketing opportunities. Partner merch pack (available on request). Dedicated partner manager & monthly Q&A call. Early access to betas, playbooks, and materials. Commission rates for sGTM hosting and Signals Gateway Subscription Plan | Rate, % Pro, Pro+ | 20 Business, Business+ | 30 Enterprise, Enterprise+ | 40 Custom | 40 Commission rates for Gateways Gateway | Rate, % Meta CAPI Gateway | 10 Stape Gateway | 10 Snapchat CAPI Gateway | 10 TikTok Events API Gateway | 10 How to upgrade from Level 1 to Level 2 After you qualify for a Level 2 partner, the Apply for Level 2 button will be displayed on the Earnings → Payouts page. !["Apply for Level 2" button](https://cdn.stape.io/i/6a39319ca39d5716220878.png) You can then apply for the Level 2 partner program and sign the documents. ![Level 2 partner program application](https://cdn.stape.io/i/6a39319cd01ad730138994.png) --- # How to use AI Assistant Source: https://stape.io/helpdesk/documentation/how-to-use-ai-assistant Section: Documentation Learn how to use Stape’s AI Assistant to manage containers, answer tracking questions, and access insights from your connected GTM and GA4 accounts. AI Assistant is Stape’s proprietary AI tool that can answer your questions about Stape and connected properties or perform basic actions, such as creating Stape containers or providing information about your sGTM container usage. AI Assistant is currently in Beta and has certain limitations: Only available on the [Stape Global zone](https://stape.io/helpdesk/knowledgebase/what-is-the-difference-between-global-sgtm-hosting-and-eu-sgtm-hosting). Only available once you’ve added [billing information](https://app.stape.io/billing) on the account. You have a limit of 100 messages per month. AI Assistant is available to accounts with Pro subscriptions and higher. Don’t hesitate to contact Stape support at [support@stape.io](mailto:support@stape.io) if you have any questions, issues, or suggestions regarding the feature. How to use AI Assistant 1. Log in to your [Stape account](https://stape.io/login). 2. Click on the AI Assistant tab. ![ AI Assistant tab](https://cdn.stape.io/i/6a3921880e439106639420.png) 3. Type your questions or requests in chat or try one of the suggested options. ![AI Assistant interface](https://cdn.stape.io/i/6a392188052c7027729734.png) 4. If you connect Google Tag Manager and Google Analytics 4 accounts to AI Assistant, it will be able to answer your questions about your GTM containers and GA4 properties or perform other requested actions. Just click Connect and follow the on-screen instructions. In the bottom left corner, you’ll find information about your monthly message limit. ![Google connections and message limit](https://cdn.stape.io/i/6a392187ef90d850521306.png) --- # How to enter billing information via a payment link Source: https://stape.io/helpdesk/documentation/responsible-for-payment Section: Documentation Learn how to securely submit billing details and a payment method for a Stape account using a payment link. Using a payment link, you will be able to provide payment information for a Stape account’s current billing and future subscriptions. The account owner will be able to edit this information in the future, but they will not be able to view your payment credentials. 1. Click on the payment link or copy it into your browser. You will be directed to Stape’s page (you don’t need to have a Stape account yourself). 2. First, select your billing country. This option can not be changed later. ![select your billing country](https://cdn.stape.io/i/6a38d683e3113702637769.png) 3. Next, enter your Billing information - payer/company name and billing address. The account owner will be able to view and edit this information in the account’s settings. ![enter your Billing information](https://cdn.stape.io/i/6a38d683e5c24782768639.png) 4. Then, select a Payment method. If you choose Card, enter your card credentials. The account owner will be able to edit this information in the account’s settings, but they will not be able to view the card credentials. ![select a Payment method](https://cdn.stape.io/i/6a38d68405a99577505683.png) Be sure to add info in the Save my information for faster checkout box to keep your card for future renewals. ![Save my information for faster checkout](https://cdn.stape.io/i/6a38d684111bc665483251.png) If you’ve entered all the information correctly, you will see a confirmation screen. It means that your payment information has been successfully saved for this Stape account. ![confirmation screen](https://cdn.stape.io/i/6a38d683e174e929805380.png) --- # How to create a payment link to add billing information Source: https://stape.io/helpdesk/documentation/share-payment-link Section: Documentation Generate a secure payment link in Stape and share it with your billing contact to collect payment information without giving them account access. The payment link is a secure, temporary link that lets another person add or update billing and payment details for your Stape account. You can generate a payment link from your Standard Stape account and share it with the person responsible for payments, such as your finance or accounting manager. The recipient does not need a Stape account. The link is valid for up to 5 days. Once the payment details are submitted, they are saved to your account and used for future subscription payments. How to generate a payment link 1. Log in to your [Stape account](https://stape.io/login). 2. Click on the Billing tab. ![Click on the Billing tab](https://cdn.stape.io/i/6a38d5120f622888231896.png) 3. Open the Payment link menu. ![Open the Payment link menu](https://cdn.stape.io/i/6a38d51234ad4616836904.png) 4. Click the Generate payment link button. ![Click the Generate payment link button](https://cdn.stape.io/i/6a38d511ccd6e323455128.png) 5. You will see a generated payment link. You can copy it, or click three dots to regenerate or revoke the link. ![generated payment link](https://cdn.stape.io/i/6a38d511ed33d763750150.png) Once the link is generated, send it to your billing contact in your organization, and they will be able to enter all the necessary payment information. They don’t need to have a Stape account to do that. Please keep in mind that the link auto-expires after 5 days or once a payment method is added. After that, you will be able to view and edit it under Billing information. ![Billing information](https://cdn.stape.io/i/6a38d511d4d3c632592657.png) Learn more about how to [pay through the payment link](https://stape.io/helpdesk/documentation/responsible-for-payment) or how to [edit your payment information](https://stape.io/helpdesk/documentation/how-to-update-your-payment-method). --- # Resources available to partners Source: https://stape.io/helpdesk/documentation/resources-available-to-partners Section: Documentation Discover the core joint marketing resources available to Stape partners, from partner directory pages to media kits and badge assets. As a Stape partner, you gain access to core joint marketing activities designed to boost visibility, credibility, and early results. These activities are available to every partner and ensure your brand is featured across our channels from the start. The resources include: All presentations and PDF materials that you can find in your Partner’s account, under the [Partner info](https://stape.io/helpdesk/documentation/partner-account-overview#partner-info) tab. Partner page published on [Partners Directory](https://stape.io/partner-directory). Partner case study. Template for the partner announcement on social media. Partner badge. Stape Media Kit. Partner manager. These resources are available from Partner program Level 1. From Level 2 you can get even more perks and resources. Read [Partner program levels](https://stape.io/helpdesk/documentation/partner-program-levels) for more information. Partner page Every Stape partner gets a dedicated profile page published on Partners Directory. This page highlights the partner company, showcases expertise, and includes a link to the partner's website so visitors can learn more about their services. The page: Is published on [Partners Directory](https://stape.io/partner-directory). Features company description, logo, and partnership start date. Contains a backlink to the partner’s website for direct traffic & SEO value. Is based on information from the partner program application – no extra work needed. How to get the partner page During the [application process for the partner program](https://stape.io/helpdesk/documentation/how-to-become-a-stape-partner), in the Partner Agreement's Website field enter your website name. The Stape team will create the partner page according to the queue. If you haven't entered your website name during the application process, you can request a page by [creating a ticket](https://stape.io/helpdesk/submit-request) or contacting your partner manager. Include your company name, logo, website URL, and description. Case study Case studies are a proven way to show measurable results and build credibility. Together with Stape, partners can publish their success stories and have them promoted across Stape's channels. The case study is published on Stape site + promoted via Monthly Digest. Flexible writing: you can draft yourself, or Stape will draft for you. The case study contains a backlink to the partner's website for direct traffic & SEO value Supports lead generation and sales enablement. How to create a case study 1. Reach out to your partner manager and receive Stape's case study questionnaire. 2. Two options available: You can draft the story using the questions as a guidance You can share only the answers, and Stape drafts the story for you 3. Stape adds final adjustments and shares the story with you for review. 4. Stape publishes the case study on the [Stape Case studies](https://stape.io/blog/category/case-studies) page and promotes it via Stape Monthly Digest. Template for the partner announcement on social media Stape provides a ready-to-use image template in Figma that partners can use to announce the partnership on social media. You can either: Copy the template in Figma and add your logo, or Share your logo with the Stape team and we'll quickly prepare the image for you. Stape Partner badge The Stape Partner badge indicates official recognition by Stape. When used with a referral link, clicking the badge directs users to Stape and automatically attributes new signups to the partner dashboard. How to get the badge 1. Open your Partner account and go to the Partner Info tab. 2. Copy the HTML snippet from the Partner badge section. ![Partner badge section](https://cdn.stape.io/i/6a355e9bcd57f227398667.png) 3. Paste the snippet wherever you want the badge to appear on your site. 4. In the pasted code, find the tag and replace placeholder with your referral link inside the quotes (""). The link in your code should end up looking like this: . Stape Media Kit The Media Kit includes everything needed for co-branded or Stape-related communications: Official logos (symbol and wordmark) for bright and dark interfaces Brand colors and fonts Founders’ bios and links Product screenshots and dashboards Approved social media hashtags and channels Co-branding guidelines for articles and posts You can explore the [Stape Media Kit](https://stape.io/media-kit) page. Partner manager Your dedicated Partner Manager at Stape is your direct point of contact for business and client-related goals. They provide prioritized assistance, ensuring you get specialized support rather than navigating general support channels. Partner managers can help with: Client product setups and tracking configuration. Managing your Partner program level, tracking your progress through tiers, and handling referral payouts. To contact your manager, click the question mark in the top menu and select the contact option. ![Contact manager](https://cdn.stape.io/i/6a3e62076e4d5055164155.png) --- # Partner commissions and payouts Source: https://stape.io/helpdesk/documentation/partner-commissions-and-payouts Section: Documentation See where to find your partner earnings, how commissions add up, when you can request a payout, and how to get paid by Stape. As a partner, you earn money every time a client pays for a product subscription. This article explains where to see what you've earned, how it adds up, and how to get paid. Commissions At the top-level menu, click Earnings → Commissions to see everything you've earned. ![Earnings → Commissions](https://cdn.stape.io/i/6a3557668f1a9182328053.png) At the top of the Commissions page you can see 3 numbers: Monthly value – the estimated total commission you can expect to receive each month. It's calculated from your clients' currently active and paid subscriptions. In review – a 14 day period for monthly subscriptions during which the commission is frozen so that Stape can confirm the client doesn't request a refund, miss a payment, or cancel their subscription early. Ready to payout – the actual balance that's available for withdrawal. You can request the withdrawal once you collect $100 or 100€. ![Commissions values](https://cdn.stape.io/i/6a355766974a5137021877.png) If you click More details, you'll get a list of how many purchased plans there are for each product. ![More details breakdown](https://cdn.stape.io/i/6a3557663d788569642303.png) The commissions table In the commissions table each row is one client, for one billing period. You can see the following columns: From date / To date – the start and end dates of the client's subscription billing cycle that this commission was calculated for. User – the email address of the referred client who owns the product and paid for the subscription. Product name – the name of the Stape product the client subscribed to. Plan – the subscription tier the client selected. Period – how often the subscription renews – monthly or yearly. Referral commission – the amount you have earned, or will earn, as your payout from this billing cycle's payment. Referral commission base – the standard cost of the subscription plan (before any discounts) that your commission percentage is applied to. Referral commission percent – the percentage you earn for this referral (usually 10-40%, depending on your [partner level](https://stape.io/helpdesk/documentation/partner-program-levels)). Discount applied – the discount applied to the client's subscription (for example, from a promo code). It reduces the commissionable base proportionally. For example, if a client has a $100 plan and uses a 20% discount coupon (paying $80): The commission base becomes $80. If your commission rate is 30%, your payout is calculated as 30% of $80, rather than 30% of $100. Referral commission status – the current stage of this commission: Pending – the commission is temporarily frozen (under review) during the 14-day period while Stape confirms there are no cancellations or refunds. Ready – the client's billing cycle has completed successfully, and the commission has been added to your main balance. Paid – the commission has been requested, processed, and paid out. Transaction refunded – the client's payment for this billing cycle was refunded, so the matching referral commission is cancelled. Payout requested – you've submitted a payout request for this commission, and it's now awaiting processing or queued to be transferred to your account. You can narrow the table with three filters: Username – filter by the client's email. Plan – filter by the plan name. Referral commission status – filter by the status. Click Apply to filter, or Reset to clear. Filters only affect the table – the three numbers at the top always show your whole account. ![Commissions table](https://cdn.stape.io/i/6a3557668f190931381227.png) Commissions for yearly subscriptions When a client pays for a yearly subscription, you don't receive your full commission as one full sum up front. Instead, it's spread out and paid to you gradually over the year. Here's how it works: The year is split into 12 monthly parts. When a yearly subscription starts or renews, Stape divides it into 12 separate monthly periods. Your commission is split evenly across those 12 months. The commission base (and any discount that was applied) is divided by 12, so each month accounts for 1/12 of the total sum. Each month’s referral commission is calculated the same way. For every monthly part, your referral percentage is applied to that month's share. Each part has its own 14-day review period. Just like monthly subscriptions, each month's commission is held for 14 days before it becomes available to withdraw. For example, one of your referred clients signs up for a yearly plan: Plan: Business Total for the year: $1,000, paid up front Your commission rate: 20% 1. The year is split into 12 months. Instead of paying you all at once, Stape divides the $1,000 into 12 monthly parts: $1,000 ÷ 12 = $83 per month (this is your commission base for each month). 2. Your rate is applied each month. Your 20% is applied to each month's $83: $83 × 20% = $17 per month. The result: instead of getting $200 in one sum, you earn $17 each month across the year. Payouts At the top-level menu, go to Earnings → Payouts to take out your money and download statements. ![Earnings → Payouts](https://cdn.stape.io/i/6a355766959df898110151.png) On the left side of the page you'll see: The amount that's ready for payout. The number of billing cycles the amount was accumulated over, along with the dates – for example, 89 billing cycles (10/02/2026 – 08/06/2026). Click the pencil icon to choose which cycles to include before you request a payout. Underneath are two buttons: Request payout – manually request a withdrawal. Setup automatic requests – you can automate your commission payout requests, saving you from having to manually request withdrawals each time you reach the payment threshold. Notes: The minimum payout amount is 100€ or $100. You’ll receive the money in 14 days after requesting the payout. You can submit no more than one payout request per month. ![Request payout options](https://cdn.stape.io/i/6a355766f11aa354518926.png) On the right side of the page you'll see every payout with a date, amount, billing cycles and status. You can download the summary by clicking Download CSV, or you can click Show transaction, and it'll take you to the Commissions page, where commissions will be automatically filtered by the transaction. Payouts can have the following statuses: Scheduled – the payout has been requested but not yet processed. Paid – the payout has been transferred to the partner successfully. Failed – the payout couldn't be processed. This usually happens when the payout details are outdated or incorrect. ![Payouts](https://cdn.stape.io/i/6a35576675c09802420933.png) How to request a payout 1. Click the Request payout button. ![Request payout button](https://cdn.stape.io/i/6a3557668f19b046628141.png) 2. In the pop-up, verify your billing info. If it needs corrections, click Edit. If everything is good, click Confirm. ![Payouts info](https://cdn.stape.io/i/6a3557663d4be278858431.png) 3. Your payment will appear in the Payout section with the Scheduled status. ![Scheduled payment](https://cdn.stape.io/i/6a35576643360266607458.png) How to set up automatic payout requests 1. Click the Setup automatic requests button. ![Setup automatic requests button](https://cdn.stape.io/i/6a35576641e88137186143.png) 2. In the pop-up, verify your billing info. If it needs corrections, click Edit. If everything is good, click Confirm. ![Payouts info](https://cdn.stape.io/i/6a3557665d31e298014782.png) 3. In the When to send box, choose frequency and minimum amount for the payout. 4. Click Turn on. Now you'll get paid automatically once you reach the minimum amount. ![When to send box](https://cdn.stape.io/i/6a3557663b809965814420.png) Statements Below your payout history, you can download a PDF showing the monthly commission balance. Note: The statement isn't an invoice – it's a summary of partner activity for the stated period. ![Statements](https://cdn.stape.io/i/6a355766f315c259302395.png) Become Level 2 Partner At the bottom left of the Payouts page, the Become Level 2 Partner box shows how close you are to Level 2 of the partner program. For more information read [Partner program levels](https://stape.io/helpdesk/documentation/partner-program-levels). ![Become Level 2 Partner box](https://cdn.stape.io/i/6a3557669940d357248800.png) --- # How to manage team members Source: https://stape.io/helpdesk/documentation/how-to-manage-team-members-partner Section: Documentation Invite teammates to your Stape Partner account, and learn what team members are allowed to do. You can add your team members to your Partner account so they can work with the clients as well. There's no restriction on how many members you can add. Your team members get the same level of access to clients as you do. Although the team members have some restrictions: They can't change the payout information and request payouts. They can't manage Partner's settings or add additional team members. How to add a team member Warning: You can only invite emails that haven't been registered on Stape before. If the account is already registered, it shouldn't have any containers/gateways. If you connect an account with products in use, the account could lose access to those products and to shared workspaces. 1. Open Partner settings → Team & access. ![Partner settings → Team & access](https://cdn.stape.io/i/6a355200cb80e529604275.png) 2. Enter the Team member email and click Add team member. ![Team member addition](https://cdn.stape.io/i/6a355200d1f6d714254292.png) 3. The team member gets an email from Stape with a link to sign in. How to remove a team member 1. Open Partner settings → Team & access. ![Partner settings → Team & access](https://cdn.stape.io/i/6a3956ff1f8a7351209849.png) 2. Find the team member in the list and click the Remove button next to their name. ![Team member removal](https://cdn.stape.io/i/6a3957169c05b618251535.png) 3. In the pop-up click Delete. ![Team member removal confirmation](https://cdn.stape.io/i/6a355200ccb44476068991.png) The team member loses their ability to sign in to your Partner account right away. Their personal Stape login still exists and can be used. --- # How to add clients to your Partner account Source: https://stape.io/helpdesk/documentation/how-to-add-clients-to-your-partner-account Section: Documentation Add a client to your Stape Partner account by creating a sub account, linking an existing user, or sharing your referral link. There are few methods to add a client to your Partner account on Stape: Create a new account for the client Link an existing Stape user Share your referral link Contact support Important: Stape has two locations: EU and Global. If you work with clients in both locations, you need two separate Partner accounts – one per location. For more information read [Partner account overview](https://stape.io/helpdesk/documentation/partner-account-overview). Create a new account for the client Use this method when the client doesn't have a Stape account yet and you want to set one up for them. The same instructions can be used both in the Dashboard and Users tab. 1. Open your dashboard. 2. Click Create sub account. !["Create sub account" button](https://cdn.stape.io/i/6a354c7daf621793972738.png) 3. Enter the client's email for the new account. If you wish to let your client change the password right after creating the account, toggle Send Email with password changing link. 4. Click Create. ![Sub account creation form](https://cdn.stape.io/i/6a3a341347d3e274723320.png) 5. The new sub account appears in your Users list and is linked to your Partner account. You're automatically granted access to the account, and you can log in as a user right away. ![Sub account in Users list](https://cdn.stape.io/i/6a354c7dbce05693598160.png) Link an existing Stape user Use this method when the client already has a Stape account and you want to add them to your Partner account. The same instructions can be used both in the Dashboard and Users tab. Important: This method only works if the client signed up less than 7 days ago and isn't already linked to another agency or partner. If the client's account is older than 7 days – they should email support and ask to be added to your partner account. 1. Open your dashboard. 2. Click Link existing account. !["Link existing account" button](https://cdn.stape.io/i/6a354c7dc6962031842527.png) 3. Enter the client's login email and the name of one of their existing products (the client should tell you the exact name of the sGTM container or a gateway). If the user has no products yet, tick the This user has no products checkbox. 4. Click Link existing account. ![Existing account linking form](https://cdn.stape.io/i/6a354c7dbf1fb302078622.png) 5. The new sub account appears in your Users list and is linked to your Partner account. To get access to that client's account, click Request access. ![New sub account in the Users list](https://cdn.stape.io/i/6a354c7de02e9386432829.png) Share your referral link Use this method when the client doesn't have a Stape account and you want them to sign up themselves. 1. Open your dashboard or Resources tab and copy your unique referral link. Inside the link, the parameter rs=site indicates the source of the incoming clients. Therefore, when you place the link on different platforms, you may want to change this parameter accordingly (e.g., rs=facebook, rs=youtube, etc.) to analyze your traffic sources. ![Referral link](https://cdn.stape.io/i/6a354c7dcb915724830404.png) 2. Send it to the client directly or add your link on the website of other resources. 3. After registration the new account appears automatically in your Users list and is linked to your Partner account. Contact support This method should be used when none of the first three methods work. The person whom you wish to add as a client should email [support@stape.io](mailto:support@stape.io) with the following information: Your Partner account email address The client's email address The name of container or gateway you want to link --- # How to become a Stape partner Source: https://stape.io/helpdesk/documentation/how-to-become-a-stape-partner Section: Documentation Apply for the Stape partner program from your Agency account, sign the agreement, and start earning monthly referral commission. Who can become a partner To become a Stape partner, you need the following: An Agency account. You can [sign up directly as an Agency account](https://stape.io/helpdesk/documentation/how-to-sign-up-as-an-agency), or [convert an existing Standard account](https://stape.io/helpdesk/documentation/how-to-convert-a-standard-account-to-agency-account). Either 5 or more paid products on your dashboard, or $50+ in potential monthly referral value. A signed Partnership agreement with Stape. These instructions allow you to apply to the Level 1 partnership. For more information on levels, see [Partner program levels](https://stape.io/helpdesk/documentation/partner-program-levels). How to apply 1. Sign in to your Stape Agency account. 2. Open the Partner program tab in the menu. When you meet the requirements, click on the Next button at the bottom of the screen. ![Partner program tab](https://cdn.stape.io/i/6a3545dfcf0f2954167497.png) 3. Fill in the Partner info form with your legal information. ![Partner info](https://cdn.stape.io/i/6a3545dfe9c4e411097308.png) 4. Fill in the Payouts info form and tell Stape where to send your commissions. 5. Click Submit application. ![Payouts info](https://cdn.stape.io/i/6a3545e008058431580058.png) What happens after you apply Stape reviews every Partner application manually. The review takes up to 3–5 business days. ![Verification in progress](https://cdn.stape.io/i/6a3545dff2dfe115793416.png) Two things can happen: Your application is approved. You'll be asked to sign the Partnership agreement online. Once you sign, the support team will review and approve the documents. After approval you automatically become a partner. ![Signed successfully screen](https://cdn.stape.io/i/6a3545dfd6a0f294436233.png) Your application needs corrections. If something in the data you submitted isn't right, Stape rejects the application and tells you what to fix. Update the form and submit it again – the review will take 3-5 business days. Your account will remain an Agency account until the agreement is signed. ![Verification failed screen](https://cdn.stape.io/i/6a3545dfdefb7151357456.png) --- # Partner account overview Source: https://stape.io/helpdesk/documentation/partner-account-overview Section: Documentation An overview of the Stape partner account, detailing the benefits, tiers, and dashboard features available to partners. A Partner account is designed for agencies and freelancers that manage clients on Stape and want to earn commission on their subscriptions. Like an [Agency account](https://stape.io/helpdesk/documentation/agency-account-overview), a Partner account doesn't host containers itself, instead you connect your clients' [Standard accounts](https://stape.io/helpdesk/documentation/stape-standard-account) to your Partner account. From there, you can manage all your clients in one place and earn a recurring commission on every subscription they pay for. About the Stape partner program The partner program lets you earn a monthly commission on every client you bring to Stape, for as long as the client's product subscription is paid. The partner program offers: [Recurring revenue](https://stape.io/helpdesk/documentation/partner-program-levels#commission-rates-for-s-gtm-hosting-and-signals-gateway) – earn up to 40% lifetime recurring commission on client subscriptions. Management tools – easily [add and manage clients](https://stape.io/helpdesk/documentation/how-to-add-clients-to-your-partner-account) and pay for them with [consolidated billing](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts). [Support](https://stape.io/helpdesk/documentation/resources-available-to-partners) – receive dedicated support, co-marketing opportunities, and early access to tools and templates. [Flexible payouts](https://stape.io/helpdesk/documentation/partner-commissions-and-payouts) – receive earnings through your preferred payout method. How much you earn depends on which Stape product the client uses and which [partner level](https://stape.io/helpdesk/documentation/partner-program-levels) you're on. There's one condition: the client has to pay Stape directly. You have three options for managing client billing: Individual billing – the client handles their subscription payments directly with Stape. This is the setup that allows you to earn a recurring commission on their payments. [Payment link](https://stape.io/helpdesk/documentation/share-payment-link) – if you manage your client's sub-account under your Partner email (that is, the client doesn't have access to this sub-account), you can generate a payment link for them to pay without logging in to the account. [Consolidated invoicing](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts) – you manage the payment for the client's subscription via a single, combined invoice. Please note that these subscriptions are processed as account expenses, and therefore don’t qualify for commissions. Who can become a partner To upgrade to a Partner account, your Agency account must meet one of the following requirements: At least 5 paid products, or $50 in monthly referral value For the enrollment instructions, see [How to become a Stape partner](https://stape.io/helpdesk/documentation/how-to-become-a-stape-partner). EU vs Global Every Stape account is hosted in one of two locations: EU or Global. The location is set when the Agency account is created and can't be changed later. When you upgrade an Agency account, your Partner account inherits that same location. You can only add clients hosted in the same location as your Partner account. If you have clients in both locations, you must maintain two independent Partner accounts. You may use the same email address for both. Both accounts must meet the Partner program requirements. If you want referred clients to select their location at sign-up, contact [support@stape.io](mailto:support@stape.io) to request a universal referral link. It lets clients choose a location, and they're connected to the matching Partner account automatically. Adding clients How you add a client depends on whether they already have a Stape account: Your client already has a Stape account. You can add them as an existing Stape user. From your dashboard, send them an invite to the email on their account. Once they accept, their account joins your Partner account and shows up in your users list. Your client doesn't have a Stape account yet. You have two options: Create a sub account for them. From your dashboard, create the account on their behalf. You set the email, password, and the new account is added to your Partner account right away. Share your referral link. Send your client the partner's referral link. When they sign up through it, their new account is added to your Partner account automatically. For more information see [How to add clients to your Partner account](https://stape.io/helpdesk/documentation/how-to-add-clients-to-your-partner-account). Managing clients Once a client is in your Partner account, there are two main things you can do: Access their account. Request access from your Partner account, and the client approves it from a notification on their side. Once you have it, you can use "Log in as user" from the Users page to open their account, so you can create containers, change settings, or troubleshoot on their behalf. Manage their billing. You can pay for your clients' subscriptions through your Partner account via [Consolidated Invoicing](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts). Alternatively, the client can pay for their subscriptions themselves. If you manage your client's sub-account under your Partner email (that is, the client doesn't have access to this sub-account), you can [generate a payment link](https://stape.io/helpdesk/documentation/share-payment-link) for them to pay without logging in to the account. Team members If you'd like to add your teammates to manage the Partner account together, you can add them in Partner settings. They’ll get access to your Partner account with few restrictions. For more information see [How to manage team members](https://stape.io/helpdesk/documentation/how-to-manage-team-members-partner). Navigating the account Dashboard This is the summary of your Partner account – current earnings, helpful articles, list of clients, recent payouts, support contacts, and your referral link. Here you can also create and link clients. ![Stape dashboard](https://cdn.stape.io/i/6a35345a59725821099113.png) Users This is the full list of your clients (sub accounts). You can: Search and filter by the plan type, server locations and container status. See detailed information about the client's containers and gateways. Request access to the users' account and log in as a user to help with setup or generate a payment link. Export the list as CSV. Create an account for your client. ![Users section](https://cdn.stape.io/i/6a35345a5d7a6880181006.png) Earnings Commissions On this page you can find your monthly commission breakdown – total value for the month, amount currently in review, and amount ready to pay out. For more information read [Partner commissions and payouts](https://stape.io/helpdesk/documentation/partner-commissions-and-payouts). ![Commissions section](https://cdn.stape.io/i/6a35345a89d77186575717.png) Payouts Here you can find your payout history, request a payout, and download statements. For more information read [Partner commissions and payouts](https://stape.io/helpdesk/documentation/partner-commissions-and-payouts). ![Payouts section](https://cdn.stape.io/i/6a35345a8198a604987736.png) Partner info Here you can find your partner ID, referral link, an HTML link of your partner badge, and a set of useful resources, such as presentations and handbooks. For more information read [Resources available to partners](https://stape.io/helpdesk/documentation/resources-available-to-partners). ![Partner info section](https://cdn.stape.io/i/6a35345ab4358325574796.png) Billing Here you can find your Partner accounts’ billing details, accounts, and invoices. Also, you can add selected sub accounts under your billing. For more information see [Consolidated invoicing for Agency and Partner accounts](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts). ![Billing section](https://cdn.stape.io/i/6a35345a7aa5c246771293.png) Partner settings This is your Partner account profile: Company & payouts info – here you can update your company info, such as name, address, country, etc. Also here you can update your payout information. Team & Access – here you can add your team members so they could also work with sub accounts. ![Partner account profile](https://cdn.stape.io/i/6a35345a8db71476157639.png) Support center Click the question mark, and it'll open you a menu with: Help desk – you can read the documentation about Stape and its products, also frequently asked questions are answered here. Community – a public forum for server-side tracking discussions. Questions are answered by both Stape staff and other server-side tracking experts in the community. Status page – shows the health of Stape's services. Check it first if something that was working suddenly stops. Personal manager – a dedicated Stape representative assigned to help you set up or troubleshoot complex server-side configurations. Click the chat button to reach out to your manager. ![Stape support center](https://cdn.stape.io/i/6a3e52b50f13e217627448.png) Account menu Click your account name in the top right corner to access the personal account settings: [Account settings](https://stape.io/helpdesk/documentation/account-management/accounts-settings) – allows you to: Edit your password, email, and personal info Set up two-factor authentication Review your activity history Delete your account Stape Academy – a free online training platform dedicated to server-side Google Tag Manager and tracking. It offers video modules and short quizzes designed for marketers and analysts to master tracking setups without touching backend code, and provides an official certification upon completion. ![Stape account menu](https://cdn.stape.io/i/6a35345a6e043274382823.png) --- # How to delete an Agency account Source: https://stape.io/helpdesk/documentation/how-to-delete-an-agency-account Section: Documentation Learn how to permanently delete your Stape Agency account, and what happens to your sub accounts and billing after. Warning: Deleting is irreversible. Once the account is gone, it's impossible to get it back. How to delete 1. In the top right corner, click your profile and select Account settings. ![Account settings](https://cdn.stape.io/i/6a3527da7d61b105141769.png) 2. In the top right corner, click the three dots and select Delete Account. ![Delete Account](https://cdn.stape.io/i/6a3527da78af5222292277.png) 3. Type in the password and click Delete account. ![Delete account confirmation](https://cdn.stape.io/i/6a3527da6defc234842874.png) Note: The account is deleted immediately. However, in some cases the process can take up to two hours. --- # How to manage team members Source: https://stape.io/helpdesk/documentation/how-to-manage-team-members-agency Section: Documentation Invite teammates to your Stape Agency account, and learn what team members are allowed to do. You can add your team members to your Agency account so they can work with the clients as well. There's no restriction on how many members you can add. Your team members get the same level of access to clients as you do. Although the team members have some restrictions: They can't interact with the Partner program for you They can't manage agency's settings or add additional team members How to add a team member Warning: You can only invite emails that haven't been registered on Stape before. If the account is already registered, it shouldn't have any containers/gateways. If you connect an account with products in use, the account could lose access to those products and to shared workspaces. 1. Open Agency settings → Team & access. ![Agency settings → Team & access](https://cdn.stape.io/i/6a3521e9287f4622959748.png) 2. Enter the Team member email and click Add team member. ![Team member addition](https://cdn.stape.io/i/6a3521e9225f6196534413.png) 3. The team member gets an email from Stape with a link to sign in. How to remove a team member 1. Open Agency settings → Team & access. ![Agency settings → Team & access](https://cdn.stape.io/i/6a3521e92444a788742175.png) 2. Find the team member in the list and click the Remove button next to their name. ![Team member removal](https://cdn.stape.io/i/6a3521e9349c4737072346.png) 3. In the pop-up click Delete. ![Team member removal confirmation pop-up](https://cdn.stape.io/i/6a3521e9287f4238906204.png) The team member loses their ability to sign in to your Agency account right away. Their personal Stape login still exists and can be used. --- # How to add clients to your Agency account Source: https://stape.io/helpdesk/documentation/how-to-add-clients-to-your-agency-account Section: Documentation Add a client to your Stape Agency account by creating a sub account, linking an existing user, or sharing your referral link. There are few methods to add a client to your Agency account on Stape: Create a new account for the client Link an existing Stape user Share your referral link Contact support Important: Stape has two locations: EU and Global. If you work with clients on both locations, you need two separate Agency accounts – one per location. For more information read [Agency account overview](https://stape.io/helpdesk/documentation/agency-account-overview). Create a new account for the client Use this method when the client doesn't have a Stape account yet and you want to set one up for them. The same instructions can be used both in the Dashboard and Users tab. 1. Open your dashboard. 2. Click Create sub account. !["Create sub account" button](https://cdn.stape.io/i/6a3518a1e3313237913348.png) 3. Enter the client's email for the new account. If you wish to let your client change the password right after creating the account, toggle Send Email with password changing link. 4. Click Create. ![Set up account](https://cdn.stape.io/i/6a479cdbf0e91589073355.png) 5. The new sub account appears in your Users list and is linked to your Agency account. You're automatically granted access to the account, and you can log in as a user right away. ![Users list](https://cdn.stape.io/i/6a3518a1ee7c8020943771.png) Link an existing Stape user Use this method when the client already has a Stape account and you want to add them to your Agency account. The same instructions can be used both in the Dashboard and Users tab. Important: This method only works if the client signed up less than 7 days ago and isn't already linked to another agency or partner. If the client's account is older than 7 days – they should email support and ask to be added to your agency. 1. Open your dashboard. 2. Click Link existing account. !["Link existing account" button](https://cdn.stape.io/i/6a3518a202745547854435.png) 3. Enter the client's login email and the name of one of their existing products (the client should tell you the exact name of the sGTM container or a Gateway). If the user has no products yet, tick the This user has no products checkbox. 4. Click Link existing account. ![Existing account linking page](https://cdn.stape.io/i/6a3518a208069328353849.png) 5. The new sub account appears in your Users list and is linked to your Agency account. To get access to that client's account, click Request access. ![New sub account in the "Users" list](https://cdn.stape.io/i/6a3518a20dd82116149869.png) Share your referral link Use this method when the client doesn't have a Stape account and you want them to sign up themselves. 1. Open your dashboard or Resources tab and copy your unique referral link. Inside the link, the parameter rs=site indicates the source of the incoming clients. Therefore, when you place the link on different platforms, you may want to change this parameter accordingly (e.g., rs=facebook, rs=youtube, etc.) to analyze your traffic sources. ![Referral link](https://cdn.stape.io/i/6a3518a228d6f197993672.png) 2. Send it to the client directly or add your link on the website of other resources. 3. After registration the new account appears automatically in your Users list and is linked to your Agency account. Contact support This method should be used when none of the first three methods work. The person whom you wish to add as a client should email [support@stape.io](mailto:support@stape.io) with the following information: Your Agency account email address The client's email address The name of container or gateway to be linked --- # How to sign up as an Agency Source: https://stape.io/helpdesk/documentation/how-to-sign-up-as-an-agency Section: Documentation Sign up for a Stape Agency account, select your location, and manage multiple client Standard accounts from a single dashboard. Note: If you already have a Standard account, you can convert it to the Agency account. For more information read [How to convert a Standard account to Agency account](https://stape.io/helpdesk/documentation/how-to-convert-a-standard-account-to-agency-account). EU vs Global When signing-up, you have to choose your location, and it can't be changed later. Location affects where billing is handled, so make sure to pick the one that fits your client base. EU (Stape Europe) – invoicing in EUR, GDPR-aligned data handling. Select if you have clients based in the EU, or if you have clients that require the GDPR-aligned data handling. For more information see [Payment country restrictions on Stape Europe](https://stape.io/helpdesk/documentation/payment-country-restrictions-on-stape-europe). Global – invoicing in USD. Select if your clients are spread across the rest of the world. Note: If you have clients in both locations, you need to have two separate Agency accounts – one in each location. You can use the same email for both accounts. You can also contact Stape to get a universal link that will allow your clients to select the location that they want. How to sign up 1. Go to the [sign up as agency page](https://stape.io/sign-up/agency). 2. Fill in the email address. 3. Choose your location: Global or EU. 4. Tick the box agreeing to Stape's Terms of Use and Privacy Notice. Optionally tick the marketing email box. Marketing emails include events, product updates and monthly digests, and you can unsubscribe from them anytime from your account. 5. Click Sign up as agency. ![Stape "Sign up as agency" page](https://cdn.stape.io/i/6a3503c2ec37b666968193.png) 6. An email is sent to your mailbox. Click Set Password to set your password and start using Stape. ![Set Password](https://cdn.stape.io/i/6a3503c32d476247219258.png) After logging in, you can change your email or password, and also set up another authentication type. For more information read [Profile and security](https://stape.io/helpdesk/documentation/profile-and-security). Note: If you didn't get an email, please check your Spam folder, or [contact support](mailto:support@stape.net). --- # Agency account overview Source: https://stape.io/helpdesk/documentation/agency-account-overview Section: Documentation A Stape Agency account lets you manage your clients' containers and gateways, handle their billing, and become a partner. An Agency account is designed for agencies and freelancers that manage Stape setups for multiple clients. The Agency account doesn't host containers itself, instead you connect your clients' [Standard accounts](https://stape.io/helpdesk/documentation/stape-standard-account) to your Agency account. From there, you can log in to each client to set things up, monitor their containers, and pay for their subscriptions in one invoice. What you can get with an Agency account: Simplified multi-client management Flexible billing options Team access and collaboration Useful agency resources A path to the Stape partner program A few important things to know: An Agency account doesn't host its own containers or gateways. Containers and gateways live on your clients' accounts (sub accounts). Your Agency account manages all sub accounts and their products from one dashboard. An Agency account doesn't earn commission. If you want a share of revenue for the clients you bring to Stape, you need a [Partner account](https://stape.io/helpdesk/documentation/partner-account-overview). You can enroll into a Partner program from your Agency account. Once you reach 5 paid products or $50 monthly referral value across your clients, you can apply for the [Partner program](https://stape.io/helpdesk/documentation/how-to-become-a-stape-partner). Getting an Agency account There are two ways to get an Agency account: Sign up as an agency from the start. Select the Agency option during sign-up. For more information see [How to sign up as an Agency](https://stape.io/helpdesk/documentation/how-to-sign-up-as-an-agency). Convert an existing Standard account. If you already have a Standard account, you can switch it to an Agency account from your account settings. This way your containers and gateways are kept in the Standard account, and the Standard account is automatically included in the new Agency account. For more information see [How to convert a Standard account to Agency account](https://stape.io/helpdesk/documentation/how-to-convert-a-standard-account-to-agency-account). EU vs Global When signing-up, you have to choose your location, and it can't be changed later. Location affects where billing is handled, so make sure to pick the one that fits your client base. EU (Stape Europe) – invoicing in EUR, GDPR-aligned data handling. Select if you have clients based in the EU, or if you have clients that require the GDPR-aligned data handling. For more information see [Payment country restrictions on Stape Europe](https://stape.io/helpdesk/documentation/payment-country-restrictions-on-stape-europe). Global – invoicing in USD. Select if your clients are spread across the rest of the world. Notes: If you have clients in both locations, you need to have two separate Agency accounts – one in each location. You can use the same email for both accounts. You can also contact Stape to get a universal link that will allow your clients to select the location that they want. In case you want to enroll into the Partner program, you need to apply for both accounts separately. For more information see [Partner account overview](https://stape.io/helpdesk/documentation/partner-account-overview). If you've created your Agency account by converting an existing Standard account, it will inherit that Standard account's location. Adding clients How you add a client depends on whether they already have a Stape account: Your client already has a Stape account. You can add them as an existing Stape user. From your dashboard, send them an invite to the email on their account. Once they accept, their account joins your Agency account and shows up in your users list. Your client doesn't have a Stape account yet. You have two options: Create a sub account for them. From your dashboard, create the account on their behalf. You set the email, password, and the new account is added to your Agency account right away. Share your referral link. Send your client the agency's referral link. When they sign up through it, their new account is added to your Agency account automatically. For more information see [How to add clients to you agency account](https://stape.io/helpdesk/documentation/how-to-add-clients-to-your-agency-account). Managing clients Once a client is in your Agency account, there are two main things you can do: Access their account. Request access from your Agency account, and the client approves it from a notification on their side. Once you have it, you can use "Log in as user" from the Users page to open their account, so you can create containers, change settings, or troubleshoot on their behalf. Manage their billing. You can pay for your clients' subscriptions through your Agency account via [Consolidated Invoicing](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts). Alternatively, the client can pay for their subscriptions themselves. If you manage your client's sub-account under your Agency email (that is, the client doesn't have access to this sub-account), you can [generate a payment link](https://stape.io/helpdesk/documentation/share-payment-link) for them to pay without logging in to the account. Team members You can add your teammates in Agency settings. They'll get access to your Agency account with few restrictions. For more information see [How to manage team members](https://stape.io/helpdesk/documentation/how-to-manage-team-members-agency). Becoming a partner When your Agency account grows to 5 paid products or $50 monthly referral value, you become eligible for the Stape Partner program. Partners can: Earn up to 40% lifetime recurring commission Get dedicated support + co-marketing opportunities Get early access to tools and templates For more information see [Partner account overview](https://stape.io/helpdesk/documentation/partner-account-overview). Navigating the account Dashboard This is the summary of your Agency account - helpful articles, list of clients, support contacts, and your referral link. Here you can also create and link clients. ![Stape dashboard](https://cdn.stape.io/i/6a340a71d8f27633379407.png) Users This is the full list of your clients (sub accounts). You can: Search and filter by the plan type, server locations and container status. See detailed information about the client's containers and gateways. Request access to the users' account and log in as a user to help with setup or generate a payment link. Export the list as CSV. Create an account for your client. ![List of clients (sub accounts) in Stape](https://cdn.stape.io/i/6a340a71d8f11097912573.png) Partner program Here you can apply to upgrade from Agency to Partner account and start earning commission. For more information read [How to become a Stape partner](https://stape.io/helpdesk/documentation/how-to-become-a-stape-partner). !["Partner program" tab](https://cdn.stape.io/i/6a340a71cac1d548970881.png) Billing Here you can find your Agency accounts' billing details, accounts, and invoices. Also, you can add selected sub accounts under your billing. For more information see [Consolidated invoicing for Agency and Partner accounts](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts). ![Agency accounts' billing details](https://cdn.stape.io/i/6a340a71d8f27824909175.png) Agency settings This is your agency's profile: Company info – here you can enter your information such as name, country, address, etc. You can also add your logo. Team & Access – here you can add your team members so they could also work with sub accounts. For more information read [How to manage team members](https://stape.io/helpdesk/documentation/how-to-manage-team-members-agency). ![Agency settings](https://cdn.stape.io/i/6a340a726920c978159167.png) Resources Here you can find sales decks, presentation materials, and referral tools that you can check and use. The same area also has your referral link. !["Resources" tab](https://cdn.stape.io/i/6a340a726c4fa867675878.png) Support center Click the question mark, and it'll open you a menu with: Help desk – you can read the documentation about Stape and its products, also frequently asked questions are answered here. Community – a public forum for server-side tracking discussions. Questions are answered by both Stape staff and other server-side tracking experts in the community. Status page – shows the health of Stape's services. Check it first if something that was working suddenly stops. Contact support – the button opens the request form to contact support. ![Stape support center](https://cdn.stape.io/i/6a340a71cd37e386134905.png) Account menu Click your account name in the top right corner to access the personal account settings: [Account settings](https://stape.io/helpdesk/documentation/account-management/accounts-settings) – allows you to: Edit your password, email, and personal info Set up two-factor authentication Review your activity history Delete your account Stape Academy – a free online training platform dedicated to server-side Google Tag Manager and tracking. It offers video modules and short quizzes designed for marketers and analysts to master tracking setups without touching backend code, and provides an official certification upon completion. ![Personal account settings](https://cdn.stape.io/i/6a340a71d3f88757616471.png) --- # Transfer consent status from Shopify storefront to checkout Source: https://stape.io/helpdesk/documentation/transfer-consent-to-shopify-checkout Section: Documentation Fix Shopify Checkout Consent Transfer Issues | Stape Some Consent Management Platforms (CMPs) don't transfer the consent status from the storefront checkout page. Usually, it happens when the CMP widget is manually added via editing the theme.liquid, but in some cases, it can also happen with the GTM or Shopify app cookie banner integrations. This guide explains how to spot the problem and how to start sending the consent status from the storefront to Shopify's checkout. Spot the problem 1. Run the preview mode in the web GTM container, and prepare for debugging the checkout page in Shopify with the [Stape GTM Helper Chrome extension](https://chromewebstore.google.com/detail/stape-gtm-helper/ipjcocdbbjgkailaejllpnmeliblbimn). In the tab Inject GTM, click Enable injection, add your domain name, and [GTM ID](https://stape.io/helpdesk/knowledgebase/how-to-find-web-google-tag-manager-gtm-id). Save changes. Stape Chrome extension also provides other benefits to make the debugging process more convenient. Its features include, but are not limited to, entity filter, request URL formatter, website tracking scanning and evaluation, and displaying consent status in server GTM. For more details on the [Stape Chrome extension's features](https://stape.io/helpdesk/documentation/stape-gtm-helper), refer to our guide. ![Enabling injection in Stape GTM Helper Chrome extension](https://cdn.stape.io/i/6a27d669a1bf6988177161.gif) 2. Interact with your cookie banner (accept or deny some cookies). 3. Trigger the event and check the cookie statuses in the second and third columns in the Consent tab. They must reflect the cookie preferences specified on the cookie banner. ![Cookie statuses](https://cdn.stape.io/i/6a2c0707e59d9545796194.png) 4. Navigate to the checkout page. If the consent isn't transfered automatically to checkout, the status Denied will be displayed as the default and current status. The Consent Update event will never fire. ![Status "Denied" as the default and current status](https://cdn.stape.io/i/6a2c0707dc428564323180.png) How to send consent status from the Shopify storefront to checkout Step 1. Configure Consent Mode tag 1.1 Add Simo Ahava's [Consent Mode (Google + Microsoft tags)](https://tagmanager.google.com/gallery/#/owners/gtm-templates-simo-ahava/templates/consent-mode) to the workspace in the web GTM container. Go to the web GTM container → click on Templates → Search gallery → find Consent Mode (Google + Microsoft tags) → Add to workspace. ![Adding "Consent Mode (Google + Microsoft tags)" to workspace](https://cdn.stape.io/i/6a2c0707e4332117401552.png) 1.2 Create a new tag. Navigate to Tags section → New → select Consent Mode (Google + Microsoft tags) as tag type. ![Setting "Consent Mode (Google + Microsoft tags)" as tag type](https://cdn.stape.io/i/6a2c0708416bb742053884.png) 1.3 As a Consent Command, select Update. ![Consent Command "Update" selected](https://cdn.stape.io/i/6a2c07086f7f2880555573.png) 1.4 Configure Consent Settings fields. There are a few ways to take the consent statuses from the storefront: From the dataLayer event, pushed by the consent management platform (CMP) From cookies Since some CMPs don't push their own event to the dataLayer, we will focus on taking the consent status from cookies. 1.4.1 On the storefront, specify the consent status via cookie banner and navigate to the checkout page. Right mouse click anywhere on the page → click Inspect → navigate to Application in dev tools→ in the Storage section, navigate to Cookies → click on the domain name → find the cookie that contains the consent status (e.g., for Iubenda, it's the cookie _iub_cs-s4546567). ![Cookie that contains the consent status in browser console](https://cdn.stape.io/i/6a2c0708741db907980209.png) 1.4.2 Check the cookie values and understand their purposes. Click on Show URL-decoded; it must reflect the consent statuses specified via the cookie banner. In the example with the consent management platform Iubenda, the cookies have different purposes and are marked with specific IDs (1, 2, 3, 4, 5). The IDs for your CMP may differ. Here, the goal is to understand what cookie type each ID stands for. It can be checked via the official CMP platform; look for cookie purposes. The explanation for the Iubenda cookie purposes is described in the [Cookie Solution guide](https://www.iubenda.com/en/help/1205-how-to-configure-your-cookie-solution-advanced-guide-2/). ![Cookie value in browser console](https://cdn.stape.io/i/6a2c07082d484722433304.png) 1.4.3 Create the Custom JavaScript variables for each cookie type. Knowing the cookie purposes, create separate Custom JavaScript variables to "read" the consent status and update it on the checkout page. Here is an example of JS code to read the consent status for the ad_storage cookie: function() { var data = (function () { var m = document.cookie.match(/_iub_cs-[^=]+=([^;]+)/); if (!m) return null; try { return JSON.parse(decodeURIComponent(m[1])); } catch(e) { return null; } })(); if (!data) return 'denied'; // iubenda: Marketing = 5 return data.purposes && data.purposes["5"] === true ? 'granted' : 'denied'; } In GTM, the variable looks the following way: ![Variable config in GTM](https://cdn.stape.io/i/6a2c0707dc65a827643860.png) 1.5 Check the box Push dataLayer Event. The tag will push an event gtm_consent_update to dataLayer, along with details about the updated consent state after "update" is fired. It's required to ensure that tags, configured on the checkout page, are fired only after consent is given. This dataLayer event will be used in step 2 of this guide to create a trigger group. !["Push dataLayer Event" checkbox](https://cdn.stape.io/i/6a2c070809d6e473941496.png) 1.6 Add a trigger for a tag. The tag must trigger on the events that take place on the checkout page; in our case, these are begin_checkout_stape ![Begin checkout trigger config](https://cdn.stape.io/i/6a2c07082dfbe399705766.png) and purchase: ![Purchase trigger config](https://cdn.stape.io/i/6a2c07082e977555665767.png) Here is an example of tag configuration: !["Consent Mode (Google + Microsoft tags)" tag configuation](https://cdn.stape.io/i/6a2c163f493e2752804320.png) Step 2. Update triggers for tags that fire on the checkout page 2.1 Create a trigger for the event that the Consent Mode tag pushes: Event name: gtm_consent_update This trigger fires on: All Custom Events ![Consent update trigger config](https://cdn.stape.io/i/6a2c070848641827362143.png) 2.2 Create a trigger group for each event that happens on the checkout page. As an example, the begin_checkout event is shown in the screenshot below. ![Begin checkout trigger config](https://cdn.stape.io/i/6a2c0707e6df0813699775.png) In the Triggers section, click New → select Trigger group → add the trigger created in step 2.1 → add a trigger that fires on the checkout page. ![Create a trigger group in GTM](https://cdn.stape.io/i/6a2c11efbf19a545190886.gif) 2.3 Update the tags that fire on the checkout page with the trigger group. Step 3. Test the configuration 3.1 Run the preview mode in the web GTM container. 3.2 Interact with the cookie banner (specify your consent preferences). 3.3 Go to the checkout page. In debug, the Consent Update event must appear as well, and the Consent Mode tag should trigger on the first event that happens on the checkout page (begin_checkout_stape). !["begin_checkout_stape" event](https://cdn.stape.io/i/6a2c070844491626664025.png) 3.4 Then, the gtm_consent_update event, along with updated statuses, is pushed to the dataLayer. 3.5 The checkout tags are fired on the "Trigger Group." ![Checkout tags fired on the "Trigger Group"](https://cdn.stape.io/i/6a2c070838b91673549504.png) In the Consent tab, the consent statuses must be updated according to the ones specified within the consent banner on the storefront. ![Updated consent statuses](https://cdn.stape.io/i/6a2c070862b62141026817.png) --- # Request limits and pause logic Source: https://stape.io/helpdesk/documentation/request-limits-and-pause-logic Section: Documentation What happens when your Stape container or Signals Gateway hits its monthly request limit, when it's paused, and how to get it running again. Every Stape container and Signals Gateway has a monthly limit on how many requests or events it can process. The limit depends on your plan. This article explains what happens when you get close to that limit, when your container or Signals Gateway is paused, and how to get it running again. How the limit works Each container or Signals Gateway is counted separately. Containers count requests, Signals Gateways count events. The counter resets at the start of each billing cycle. As you get close to your monthly limit, Stape sends you email notifications so you have time to upgrade. If your usage goes over the limit by 10% (so you hit 110% of what your plan allows) your container or Signals Gateway is paused. The product stops processing requests/events completely until you upgrade or your next billing cycle starts. What "paused" means by plan The pause rule isn't the same on every plan: Free plan. No pause logic, but if you reach the Free-tier limit, the container/Signals Gateway is disabled and stays disabled. The limit doesn't reset in the next billing cycle either, you need to upgrade to a paid plan to get it running again. Allows up to 5 free containers / Signals Gateways per Stape account. Pro and Pro+. Paused immediately when you hit 110% of your limit. No grace period. After a new billing cycle hits - the product will be unpaused and the requests/events renew. Business, Business+, Enterprise, Enterprise+. The first time you ever go over the limit, you get a 30-day grace period. Your container/Signals Gateway keeps running for those 30 days, giving you time to upgrade. If you don't upgrade and you're still over the limit when the 30 days are up, it's paused. The 30-day grace period is a one-time courtesy per container or Signals Gateway. After it's been used, future overlimits are paused immediately, with no second grace period. After a new billing cycle hits - the product will be unpaused and the requests/events renew. Custom. No pause logic. Custom plans are handled directly by Stape and don't follow the standard pause rules. Example A container on the Business plan with a 5M requests limit overlimits for the first time on March 28, with usage hitting 5.5M (110% of the limit). A 30-day grace period begins automatically and the container stays active. The grace period lasts until April 26. If the user doesn’t upgrade until then and hits 110% usage again after this date, the container is paused. The container resumes the Running status immediately if the user upgrades, or automatically upon payment for the next billing cycle. How to get a paused container/Signals Gateway running again You have two options: Upgrade to a higher plan. The pause is lifted right away as long as your usage so far this cycle fits under the new plan's limit. See [How to change a plan](https://stape.io/helpdesk/documentation/how-to-change-a-plan). Wait for the next billing cycle. The pause is lifted automatically at the start of your next cycle, when your request counter resets. If you're on the Free plan and you've hit the limit, only the first option applies. The Free-tier limit can’t be reset on its own. How to avoid being paused Turn on auto-upgrade for the container or Signals Gateway: Open the container or Signals Gateway. Click the Subscription tab. Toggle Upgrade container to the next tier automatically on. ![Auto-upgrade toggle in the "Subscription" tab](https://cdn.stape.io/i/6a22b4be5270c357870039.png) With auto-upgrade on, Stape moves the product up a subscription plan tier automatically when it goes over your current limit, so it’s never paused. You're charged for the new tier from that point. For more information see [How to use subscription auto‑upgrade](https://stape.io/helpdesk/documentation/how-to-use-subscription-auto-upgrade). --- # How to cancel a subscription Source: https://stape.io/helpdesk/documentation/how-to-cancel-a-subscription Section: Documentation Cancel the paid plan on your Stape container or gateway in a few clicks. Your container/gateway keeps running until the end of the cycle, then drops to Free. 1. Open the container/gateway you want to cancel. 2. Click the three dots at the top right of the container/gateway. 3. Choose Cancel Subscription. !["Cancel Subscription" in the menu](https://cdn.stape.io/i/6a22acc5819fc342126962.png) 4. Pick a reason for cancelling and click Cancel subscription. ![Cancellation reasons](https://cdn.stape.io/i/6a22ad17b364a148749929.png) That's it. The subscription is marked as cancelled and won't auto-renew. The product keeps running on its current paid plan until the end of the cycle you've already paid for, then drops to Free (with a limitation of up to 5 free sGTM containers / Signals Gateways per account), or gets disabled in case of a dedicated gateway. What changes after cancellation The product keeps running on its current plan until the end of the cycle you've paid for. At the end of the cycle, the container drops to Free. Free-tier limits apply from then on. Dedicated gateways (Meta/TikTok/Snap/Stape) are disabled. Your configuration on the container/gateway stays in place. Features that aren't included on Free are disabled. You aren't charged again. Auto-renewal is off. On the Pro/Pro+ plans, if the number of requests on the current plan is exceeded and the cancelled subscription hasn't yet expired, the container/gateway will be blocked in 3 days. On the Business plans and higher, there's a 30-day grace period regardless of cancellation status. If you exceed the limit, Stape sends a warning but doesn't block the product. You keep using the plan until the end of the paid billing cycle, then drop to Free as planned. You can re-subscribe any time from the dashboard. The product will move back up to the paid plan you choose, and your setup will already be there. If you're on a yearly plan and cancel within 60 days of the most recent payment, you can ask for a refund. For more information read the [Refund policy](https://stape.io/helpdesk/documentation/refund-policy) article. --- # How to use subscription auto-upgrade Source: https://stape.io/helpdesk/documentation/how-to-use-subscription-auto-upgrade Section: Documentation Auto-upgrade moves your Stape container or Signals Gateway up a plan when you hit the limit, so your service keeps running and no data is lost. Auto-upgrade moves your Stape container/Signals Gateway up a plan tier automatically when you go over your current plan's limit. By enabling the auto-upgrade your container/Signals Gateway keeps working instead of being paused, and you don't lose analytical data in the meantime. How to turn auto-upgrade on or off You can set auto-upgrade on the following pages: When you're choosing a subscription for a container or Signals Gateway: the plan selection page has the auto-upgrade toggle. ![Auto-upgrade toggle on the plans page](https://cdn.stape.io/i/6a22a77b6717c724746119.png) On an existing container or Signals Gateway: Open the container/Signals Gateway you want to change. Click the Subscription tab. Toggle Upgrade container to the next tier automatically on or off. ![Auto-upgrade toggle in the "Subscription" tab](https://cdn.stape.io/i/6a22a7ddce40a269387674.png) The change takes effect right away. You don't need to confirm anything else. Note: Auto-upgrade is set per container/Signals Gateway, not for your whole account. If you have several Stape products, set this feature on each one separately. What changes after auto-upgrade When auto-upgrade triggers, Stape charges your saved card for the new plan on the spot. See [How to add billing info to your account](https://stape.io/helpdesk/documentation/how-to-add-billing-info-to-your-account) if you haven't set one up yet. A few things to know: Your container/Signals Gateway moves to the next plan up and keeps running. It's deployed automatically. Your card is charged for the new plan. Your request or event counter isn’t reset. It keeps counting against the new, larger limit. Your billing cycle stays the same. Your next renewal is on the same date, at the new plan's price. --- # How to change a plan Source: https://stape.io/helpdesk/documentation/how-to-change-a-plan Section: Documentation Change the plan on your Stape container or gateway, move up a tier, or switch from monthly to annual billing in a few clicks. 1. Open the container or gateway you want to upgrade. 2. In the top right corner, click Change plan. !["Change plan" button](https://cdn.stape.io/i/6a229d7b21327932663967.png) 3. In the page that opens, select the tier. Also, you can select between Monthly and Annual billing. ![Select plan](https://cdn.stape.io/i/6a229e0a2ca66607834767.png) 4. Review the card listed at the bottom of the dialog, this is the card that will be charged. To pay with a different card, click Update and pick another saved card or add a new one. For more information read [How to update your payment method](https://stape.io/helpdesk/documentation/how-to-update-your-payment-method). 5. Click Subscribe now to confirm. ![Billing information screen](https://cdn.stape.io/i/6a229eece4761474430162.png) How to downgrade a plan Follow these steps to downgrade a plan: 1. Email [support@stape.io](mailto:support@stape.io) or submit a [request](http://stape.io/helpdesk/submit-request). 2. Tell support: Your Stape account email The container or gateway name or ID Your current plan The plan you want to move to (and whether you want monthly or yearly) For yearly plans only: do you want the credit on your balance or refunded to your card? 3. Wait for support to confirm. They'll downgrade the container/gateway, redeploy it automatically, and credit the unused amount to your balance (or refund to your card, if you're on a yearly plan and asked for that). After the change, check that your container/gateway is running and show the new request limit. What happens after downgrading a plan After the plan is downgraded, Stape calculates how much of your current plan you haven't used yet. That amount is credited to your Stape account balance and used to pay your next invoice. Example: you pay for a month on Business and downgrade to Pro halfway through. Roughly half the price difference between Business and Pro is credited to your balance, and the next Pro renewal is paid from that balance. For yearly plans, the credit can be large and your next renewal is far away. In that case you can ask for the money back on your card instead. Before you ask for a downgrade, three things need to be checked. Check them first so support can process the request right away: Your current usage is within the limits of the new plan. Support checks how many requests or events you've used this month. If you've already used more than the new plan allows, they can't downgrade your plan right now, as your container would be paused as soon as the change went through. If you're over the limit, just wait. Your counter resets at the start of your next billing cycle, and you can request the downgrade then. The credit you get is the same. You're not using features the new plan doesn't include. Some plans include features that lower plans don't, for example extra power-ups, features, etc. Before you ask for a downgrade, check your container and turn off anything the new plan doesn't cover. Support will tell you if you missed something. You can't downgrade straight to Free tier. If you'd like to switch to a Free plan, you can cancel your subscription. Yearly plans On a yearly plan, the leftover credit can be big and your next renewal is up to a year away. You don't have to leave the money sitting on your Stape balance. You can ask support to refund the leftover balance to your card instead. They'll downgrade your current subscription plan, then pass the refund to the finance team. The money goes back to the card you originally paid with. Refunds usually take up to 10 business days to arrive, depending on your bank. How to switch between monthly and annual billing 1. Open the container or gateway you want to upgrade. 2. In the top right corner, click Change plan. !["Change plan" button](https://cdn.stape.io/i/6a22a0b5bcaae865495454.png) 3. Select the same tier you're already on. 4. Select the Annual billing. !["Annual" billing selected](https://cdn.stape.io/i/6a22a0fed1e45191671039.png) 5. Click Continue with <...> plan to confirm. Switching from monthly to annual takes effect immediately. Note: If you'd like to switch from yearly to monthly billing, please contact our [support team](mailto:support@stape.io). --- # I paid for the wrong plan, what should I do? Source: https://stape.io/helpdesk/documentation/i-paid-for-the-wrong-plan-what-should-i-do Section: Documentation Paid for the wrong Stape plan by mistake? Contact support to get a refund to your card and switch to the plan you actually wanted. Common situations You meant to pick a Pro subscription plan but clicked Business. You meant to pay monthly but picked yearly (or the other way around). You upgraded a container/gateway you didn't mean to upgrade. How to fix it 1. Email [support@stape.io](mailto:support@stape.io)or submit a [request](http://stape.io/helpdesk/submit-request). 2. Tell support: Your Stape account email or ID The container or gateway name (or ID) the payment was made on The plan you paid for by mistake The plan you actually wanted (or "please refund and don't switch me to anything") The invoice ID or payment date, if you have it 3. Wait for support to confirm. They'll cancel the wrong plan, refund your card, and switch you to the right plan if you asked for that. The sooner you contact support after the payment, the simpler it is. If your container has already used requests on the wrong plan or a renewal has gone through, support will let you know what's possible to do. How long the refund takes The money usually arrives in your bank account in 3 business days, but it can take up to 10 business days depending on your bank. The refund goes back to the same card you paid with. You don't need to give support any new payment details. For more information about refunds, read the [Refund Policy](https://stape.io/helpdesk/documentation/refund-policy) article. --- # Refund policy Source: https://stape.io/helpdesk/documentation/refund-policy Section: Documentation Find out when you can get a full or partial refund on your Stape monthly or yearly subscription, and how to ask support for one. For the legal version of this article, read Stape’s [Terms of Use](https://stape.io/terms-conditions#6-refund-policy). When you can get a full refund The window depends on whether your container or gateway has been used in the current billing cycle. On a monthly plan: Within 3 days of the start of the new billing cycle, even if your container has received requests. Within 14 days of the start of the new billing cycle, if your container hasn’t been used (no real traffic in that cycle). On a yearly plan: Within 30 days of the start of the new billing cycle, even if your container has received requests. Within 60 days of the start of the new billing cycle, if your container has not been used. The time counting starts at the most recent payment, not at when you first signed up. Each renewal opens a new window. When you can get a partial refund If you're outside the full-refund window but still want some of your money back, you can ask for a partial refund. Monthly plan: partial refund after 14 days from the start of the billing cycle, if the container has been used normally. Yearly plan: partial refund after 30 days from the start of the billing cycle, if the container has been used normally. The partial amount is based on the unused portion of the cycle. Support calculates it when they process the request and tells you the exact amount before refunding. What you can get refunded The last payment on a subscription, in full or in part depending on the windows above. A charge from an auto-upgrade you didn't want - same windows apply, counted from the auto-upgrade charge. A payment for the wrong plan - handled case by case. See [I paid for the wrong plan, what should i do?](https://stape.io/helpdesk/documentation/i-paid-for-the-wrong-plan-what-should-i-do). Refunds and auto-upgrade If auto-upgrade upgraded your container/Signals gateway to a higher plan and the resulting charge was larger than you expected, the same windows apply, counted from the auto-upgrade charge. Refunding an auto-upgrade will result in the container being paused. If you’re on a Business plan and higher, a grace period will activate. To prevent this in the future, turn off auto-upgrade in the container/gateway’s Subscription tab. For more information read [How to use subscription auto‑upgrade](https://stape.io/helpdesk/documentation/how-to-use-subscription-auto-upgrade). How to ask for a refund 1. Email [support@stape.io](mailto:support@stape.io) or submit a [request](http://stape.io/helpdesk/submit-request). 2. Tell support: Your Stape account email or ID The container or gateway name (or ID) the payment relates to The date and amount of the payment you want refunded Whether you want a full or partial refund (or that you'd like support to tell you which is possible) A short reason for the refund - wrong plan, didn't intend to renew, auto-upgrade, changed my mind, etc. 3. Wait for support to confirm. They'll check the request against this policy, confirm the amount, and process it. How long the refund takes Once the support team approves the refund, the money is returned to the card you originally paid with. Bank refunds usually take up to 10 business days to arrive, depending on your bank. If you don't see the money after 10 business days, reply to the same support thread with the date support confirmed the refund. Support team can check the status with the finance team. Refund vs. Stape balance credit Refund - money goes back to your card. Stape balance credit - money stays on your Stape account and is applied to your next invoice automatically. Used mainly for downgrades. You usually get a refund for cases like "I paid by mistake" or "I want to cancel and get my money back." You usually get a balance credit when you're moving to a lower plan and continuing to use Stape. For yearly downgrades, you can ask for a card refund instead of a balance credit - see [How to downgrade a plan](https://stape.io/helpdesk/documentation/how-to-change-a-plan#how-to-downgrade-a-plan). --- # US sales tax Source: https://stape.io/helpdesk/documentation/us-sales-taxes Section: Documentation Find which US states Stape collects sales tax in, when it appears on your invoice, and how to request an exemption if your company qualifies. States where you may see sales tax on your invoice Stape includes sales tax on invoices in the following US states: Illinois (IL) ** - Chicago only Georgia (GA) * Kentucky Ohio Utah Maryland New York Minnesota* Michigan* New Jersey* Virginia* Nevada* California* Arkansas* Nebraska* * In these states, Stape is registered for sales tax but the products you buy from us aren't taxable. You won't see sales tax on your invoice, even though the state is on the list. ** In Illinois, sales tax applies only to customers based in Chicago. Customers elsewhere in Illinois won't see sales tax on their invoices. If your state isn't listed at all, Stape doesn't collect sales tax from you. Tax exemption If your company qualifies for sales tax exemption in your state, you can ask Stape to remove the tax from your invoices. To request an exemption: Have your current, signed tax exemption certificate ready. The certificate has to match the state where you're being charged. Contact [Stape support](http://stape.io/helpdesk/submit-request) and attach the certificate. Wait for support to confirm. Once they apply the exemption, future invoices won't include sales tax. If your exemption certificate expires or is replaced, send the new version to support so the exemption stays in place. --- # VAT for EU users Source: https://stape.io/helpdesk/documentation/vat-for-eu-users Section: Documentation See when VAT is charged on Stape invoices, how to add your VAT or GST number, and what to do if you forgot to enter it before paying. When VAT is charged Stape Europe OU is required by EU VAT rules to collect VAT on payments from customers using the service inside the EU. This also applies to a few non-EU countries that follow the same rules: Switzerland, the United Kingdom, and Norway. Whether you're charged VAT depends on what you tell Stape in your billing info: You're a company in the EU with a valid VAT number - no VAT is charged. You're a company in the EU without a VAT number, or your VAT is invalid - VAT is charged at the rate of your country of residence. You're an individual (B2C) in the EU - VAT is charged at the rate of your country of residence. You're outside the EU - no VAT is charged. If you're not in the EU, Switzerland, the UK, or Norway, you should be on Stape Global at sign-up. See Payment country restrictions on Stape Europe. How to add your VAT/GST number 1. Click Billing in the top right menu. 2. Under Billing information, click Edit. ![Under Billing information, click Edit](https://cdn.stape.io/i/6a228c44d87a4428252943.png) 3. In Tax ID, click ID type and add your VAT/GST number. Include your country code at the start (for example, DE123456789). ![In Tax ID, click ID type and add your VAT/GST number.](https://cdn.stape.io/i/6a228c780fb35825029325.png) 4. Click Save. Stape validates the number. If the number is valid, no VAT is charged on your next invoice and on future invoices, as long as the number stays valid. If validation doesn't succeed right away, Stape still processes your payment and charges VAT for that round. We try to validate the number again later and apply it from the next invoice once it's confirmed. Make sure your VAT number is correct Common reasons a VAT number is rejected: The country code at the start is missing or wrong. You're using a personal VAT number instead of a business one. See the [EU's VAT identification numbers page](https://taxation-customs.ec.europa.eu/taxation/vat/vat-directive/vat-identification-numbers_en) for what counts as a valid business number. A digit is wrong or missing. The VAT number was valid before but has since been deregistered. If your number isn't validating and you believe it should, contact [support@stape.io](mailto:support@stape.io) so the team can check. What if you forgot to add your VAT number You can add your VAT/GST number at any time in Billing. Once it's saved and valid: Future invoices - no VAT is charged on the future invoices, as long as your number stays valid. Past invoices - if VAT was already charged on previous invoices, email [support@stape.io](mailto:support@stape.io) and the team will review whether the previously charged VAT can be refunded. There's no penalty for adding the number late. The earlier you add it, the fewer invoices end up with VAT charge on them. --- # Plan tiers and limits Source: https://stape.io/helpdesk/documentation/plan-tiers-and-limits Section: Documentation Compare Stape plan tiers for sGTM hosting, gateways, and Signals Gateway - what each tier includes, how limits work, and when to upgrade. How Stape plans are structured sGTM container hosting and Signals Gateway uses one set of tier names: Free Pro/Pro+ Business/Business+ Enterprise/Enterprise+ Custom sGTM container hosting is billed per container with quota in requests, and Signals Gateway is billed per workspace with quota in events. Quota resets at the start of each billing period. Going over your tier's monthly request/event limit costs more only if auto‑upgrade is on, otherwise the container/workspace is paused until the next billing period. Each gateway product (Stape Gateway, Meta CAPI, TikTok Events API, Snapchat CAPI) is billed per gateway and doesn't have a ladder, it's billed by the amount of pixels/domains you want to use. You can buy the following plans that bill you by the set amount of pixels/domains: Ultimate Unlimited To see prices for each plan, go to the [Stape pricing](https://stape.io/price) page. See [How billing works in Stape](https://stape.io/helpdesk/documentation/how-billing-works) for the product list and billing. What changes between tiers Moving up a tier can unlock three different things: more requests/events, more pixels or domains on gateways, and access to features that lower tiers can't use. For example, you can start exporting Logs only from the Enterprise plan, or the Multi-Domains power-up unlocks after upgrading to the Business plan. Monthly vs yearly billing Yearly billing is available on all paid tiers across all products, and is priced at a discount versus the equivalent monthly subscription. For instructions on how to switch a monthly plan to the yearly one, and vice versa, read the [How to change a plan](https://stape.io/helpdesk/documentation/how-to-change-a-plan) article. What happens when you hit a limit When a quota is exhausted for the sGTM container/Signals Gateway, what happens depends on the plan: Free plan and paid plans with auto‑upgrade disabled: the container or Signals Gateway stops serving traffic until the next billing period. The quota doesn't roll over. Paid plans with auto‑upgrade enabled: the subscription is moved up one tier, and traffic continues without interruption. See [Request limits and pause logic](https://stape.io/helpdesk/documentation/request-limits-and-pause-logic) for the full rules, and [How to use subscription auto‑upgrade](https://stape.io/helpdesk/documentation/how-to-use-subscription-auto-upgrade) for how the upgrade trigger works. Custom plans Custom plans are sales‑mediated and exist for cases that the standard tiers don't fit: unlimited requests, custom DPA/SSA, contract terms, or private cluster. To enroll in a custom plan, please [contact our sales team](https://stape.io/contact-sales?product=sgtm). Free tier vs trial These aren't the same thing, even though both let you use Stape products without paying. Free tier - a recurring monthly allowance that doesn't expire as long as you don't exceed the usage limit. Applies to sGTM hosting and Signals Gateway. Allows up to 5 free containers / Signals Gateways per Stape account. Trial - free for the first 7 days, then you have to switch to a paid plan to keep using it. Applies to the Meta / TikTok / Snapchat / Stape gateways. --- # Taxes overview Source: https://stape.io/helpdesk/documentation/taxes-overview Section: Documentation Find out which taxes Stape adds to your invoice, including VAT and US sales tax, and how your billing country decides what applies. Which taxes Stape collects Stape may add one of three taxes to your invoice. Which one depends on the billing country you set on your account. VAT - for customers in the European Union, Norway, Switzerland, United Kingdom, Lichtenstein, Iceland. For more information read the [VAT for EU users](https://stape.io/helpdesk/documentation/vat-for-eu-users) article. US sales tax - for customers in US states where Stape is required to collect it. For more information read the [US sales tax](https://stape.io/helpdesk/documentation/us-sales-tax) article. How Stape decides whether to charge you tax When you add billing info, Stape uses these things from your account: Your billing country. This decides which tax applies (or none). Your tax ID (VAT number or GST number), if you have one. If you're in a VAT region and you provide a valid VAT number, VAT isn't charged. Without a valid number (or if you're an individual (B2C)) VAT is charged at your country's rate. The tax on your invoice depends on the country you choose when you add billing info. Stape uses that country for every payment until you change it. If you update your billing country later, the tax on your next invoice may change. For example: Moving from outside the EU to inside the EU means VAT will start being added. Moving between two EU countries with different VAT rates changes the rate on your invoice (Cyprus uses 19%, Greece uses 24%, and so on). Moving from the EU to a country outside the EU, UK, Switzerland, and Norway means VAT isn’t added anymore. You can't change your billing country yourself, you have to contact support. See [How to change your billing country](https://stape.io/helpdesk/documentation/how-to-change-your-billing-country). What to do if you forgot to add your tax ID VAT will be charged at the rate applicable in your country of residence. If you paid an invoice before entering your tax ID, that invoice can't be edited after the fact. Add your tax ID when you fill in your billing information, so it's included on the next invoice. For more information read the [How to add company info](https://stape.io/helpdesk/documentation/how-to-add-company-info) article. --- # How to connect billing to your Stape product Source: https://stape.io/helpdesk/documentation/how-to-connect-billing-to-your-stape-product Section: Documentation Start a paid subscription on a Stape container or gateway to upgrade beyond the Free plan when ready. Charged to the already connected card. Before you begin You should have billing info saved on your account. To add billing, see the [How to add billing info to your account](https://stape.io/helpdesk/documentation/how-to-add-billing-info-to-your-account) article. For gateways, you'll be requested to connect billing information during the purchase. Connect billing to an sGTM container 1. Open the container you want to upgrade. 2. In the top right corner, click Upgrade container. !["Upgrade container" button](https://cdn.stape.io/i/6a218428db76b305150731.png) 3. Select the plan tier you want and click Continue. ![Select pricing plan](https://cdn.stape.io/i/6a2184876543f313663242.png) 4. Review the card. It's the default card from your account billing. To pay with a different card, click Update and either pick another saved card or add a new one. If you haven't added it yet, please add the card at this step. 5. Click Subscribe now to confirm. Stape creates the subscription and starts charging the selected plan immediately. ![Click Subscribe now](https://cdn.stape.io/i/6a26ea2dbf5d3510554368.png) After you connect billing The container moves from Free plan to the paid tier you selected. A subscription is created with its own billing cycle, separate from any other containers or gateways on the same account. You'll see the new line item on your next invoice. Renewals charge automatically to the connected card. --- # How to change your billing country Source: https://stape.io/helpdesk/documentation/how-to-change-your-billing-country Section: Documentation Change the billing country on your Stape account through support, what determines if it's possible, and what changes after the update. If you want to change the billing country on your account, please contact [support@stape.io](mailto:support@stape.io) and our support team will help you with this. --- # How to add an additional billing email Source: https://stape.io/helpdesk/documentation/how-to-add-an-additional-billing-email Section: Documentation Send copies of Stape invoice emails to additional recipients, like your finance team or a shared inbox, and remove them when no longer needed. In the top menu, click Billing. In the Invoices section, scroll down to Notifications. Enter the recipient's email address. Click Save. ![Additional billing email](https://cdn.stape.io/i/6a50e55d75959726809772.png) --- # How to add company info Source: https://stape.io/helpdesk/documentation/how-to-add-company-info Section: Documentation Add or update the company name, address, and tax ID that appear on your Stape invoices, so your finance team can file them correctly. 1. In the top menu, click Billing. 2. In the Billing information section click Edit. ![Edit billing info](https://cdn.stape.io/i/6a2179b289ec0933802793.png) 3. Fill in: I'm paying as - select Company. Company name - your company's legal name as it should appear on the invoice. Tax ID - your VAT, GST, or other tax-registration number. The label and format depend on your billing country. Billing address - the registered address tied to the company name and tax ID above. 4. Click Save changes. ![Company info](https://cdn.stape.io/i/6a217ebce0824601812985.png) --- # How to edit payment information Source: https://stape.io/helpdesk/documentation/how-to-update-your-payment-method Section: Documentation Learn how to update billing information and change payment method for your Stape account. 1. Log in to your [Stape account](https://stape.io/login). 2. Click on the Billing tab. ![Billing tab](https://cdn.stape.io/i/6a38d7ea8429d731711322.png) 3. In the Billing information menu, you will see your account’s currently active payment info. Click Edit to change billing information, such as payer’s name and address, or Update to enter a new payment method. ![Billing information menu](https://cdn.stape.io/i/6a38d7ea816bb600233179.png) If you add a new card as a payment method, be sure to enter info in the Save my information for faster checkout box to keep your card for future renewals. ![Save my information for faster checkout](https://cdn.stape.io/i/6a38d7ea8429a542510175.png) --- # How to add billing info to your account Source: https://stape.io/helpdesk/documentation/how-to-add-billing-info-to-your-account Section: Documentation Add a billing address and payment method to your Stape account so you can subscribe to paid plans for sGTM hosting or Gateways. 1. In the top menu, click Billing. 2. Click Add billing info. !["Add billing info" button](https://cdn.stape.io/i/6a217032137c8590241209.png) 3. Select your billing country. Your billing country determines which legal entity (Stape Europe or Stape Global) bills you, your payment processor, and which taxes apply. You can change this later only by contacting support. ![Billing country selection](https://cdn.stape.io/i/6a21705b15593697093903.png) 4. Fill in your billing details: name or company name, address, and if applicable, your VAT or tax ID. ![Billing details](https://cdn.stape.io/i/6a21709cd1e7f896369649.png) 5. Select your payment method and enter its details. If you're an Agency or Partner account, you'll be asked to set up methods for both monthly and annual billing cycles. 6. Add info in the Save my information for faster checkout box. This is required to keep your card for future renewals. 7. Click Save changes. ![Payment method info](https://cdn.stape.io/i/6a21712b8f01a854847650.png) --- # Consolidated invoicing for Agency and Partner accounts Source: https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts Section: Documentation Pay for all your sub-accounts' Stape subscriptions on a single invoice using consolidated invoicing on Agency and Partner accounts. Consolidated invoicing groups all your active subscriptions into a single invoice per billing cycle, so you get one bill for all products instead of one per product. The feature works the same way on both Agency and Partner accounts. Anywhere this article says "your account," it applies to whichever type you have. Before you begin A few things to know first: Agency and Partner accounts are required to enable consolidated invoicing in order to use the Billing menu. Without the consolidated invoicing: you can see your sub accounts' subscriptions and invoices, but you can't pay for them. With the consolidated invoicing: you can pick which sub accounts pay through your account, and one combined invoice is charged to your card. You pay for every subscription of any sub account you add. You can't pick and choose individual subscriptions to cover. It's all or nothing per sub account. Consolidated invoicing produces one invoice per billing cycle, One invoice for everything on a monthly cycle. One invoice for everything on an annual cycle. If all your sub accounts' subscriptions are monthly, you'll see one invoice per month. If some are monthly and some are annual, you'll see two invoices, one monthly, one annual. Sub accounts can't start new Gateway trials while they're under your billing. Existing Gateway trials get auto-upgraded. If a sub account you add already has an active Gateway trial, it's automatically upgraded to the lowest paid plan as soon as you take over their billing. You'll then be charged for it on your next consolidated invoice. What happens when you add a sub account to your billing Their existing paid subscriptions are canceled and immediately recreated under your account's billing. The billing period depends on whether this is your first sub account. If this is the first sub account you add (for example, your consolidated invoice doesn't yet exist), the new invoice's billing period starts from the current date. If you already have a consolidated invoice, the sub account's subscriptions are aligned to your existing billing period. When you add a sub account in the middle of your current billing cycle, Stape doesn't wait until your next renewal date to start charging you for them. It charges you right away, but only for the portion of the cycle that's still left, not for a full cycle. From then on, you're the one being charged, not the sub account. How to turn on the consolidated invoice 1. Open Billing → Details and click Add billing info. Configure a billing method as described in [How to add billing info to your account](https://stape.io/helpdesk/documentation/how-to-add-billing-info-to-your-account). ![Open Billing → Details and click Add billing info.](https://cdn.stape.io/i/6a2177927d27d597749533.png) 2. Once a billing method is saved, Stape prompts you to set up consolidated invoicing. Click Set up now to continue, or Do it later if you want to come back to it. If you pick Do it later, you can resume the setup any time from Billing → Accounts. ![Once a billing method is saved, Stape prompts you to set up consolidated invoicing.](https://cdn.stape.io/i/6a2178f387de3192935600.png) 3. Review the terms, tick the box, and click Enable consolidated invoice. ![Review the terms, tick the box, and click Enable consolidated invoice.](https://cdn.stape.io/i/6a21792669cec065478190.png) How to add or remove sub accounts Once consolidated invoicing is on, the Accounts tab appears in your Billing menu. To add a sub account: Go to Billing → Accounts. Pick a sub account from the list. Click Add user. ![Click Add user.](https://cdn.stape.io/i/6a2179f4e08dc342611372.png) The sub account's existing paid subscription is canceled and immediately recreated under your account's billing. Below, you'll see a list of users already under your billing. ![Below, you'll see a list of users already under your billing.](https://cdn.stape.io/i/6a217b0d7f3b3444507687.png) To remove a sub account, use the same menu. Sub account owners can also remove themselves from your billing if they want to pay for their own subscriptions again. ![To remove a sub account, use the same menu.](https://cdn.stape.io/i/6a217b2380aac704217221.png) To see which subscriptions were paid through your account and which weren't, open Billing → Invoices. ![To see which subscriptions were paid through your account and which weren't, open Billing → Invoices.](https://cdn.stape.io/i/6a217b4feb6f3188757445.png) Note: For an account to appear in the list for billing, firstly you have to request an access for that account in the Users area. What happens when a sub account adds a new subscription You don't need to do anything. Any new subscription added by an existing sub account is automatically rolled into the right consolidated invoice (monthly or annual). The invoice total is recalculated for you. Example. Today is May 1. You have an annual consolidated invoice with a renewal date of June 1. You add a new sub account to your billing today. Stape charges you for that sub account's subscriptions from May 1 through June 1, the rest of the current period. From June 1 onward, those subscriptions are part of the renewed annual consolidated invoice. You're charged the updated total in one go. How to apply a promo code You can apply one promo code to everything in a consolidated invoice at once, every subscription of every sub account on that invoice. Go to Billing → Accounts. Add the promo code in the field provided. The discount applies on the next renewal of the consolidated invoice. ![Add the promo code in the field provided](https://cdn.stape.io/i/6a21803db28f1084837572.png) How to turn consolidated invoicing off You can't turn consolidated invoicing off on your own. It's locked on for Agency and Partner accounts, unless you remove all of your sub accounts. If you wish to deactivate this feature, contact the [support team](mailto:support@stape.io). --- # Consolidated invoicing for Standard accounts Source: https://stape.io/helpdesk/documentation/consolidated-invoicing-for-standard-accounts Section: Documentation Group all your Stape subscriptions into a single invoice per billing cycle on Standard accounts, with separate invoices for monthly and yearly. Consolidated invoicing groups all your active subscriptions into a single invoice per billing cycle, so you get one bill for all products instead of one per product. If you are using an Agency or Partner account, see [Consolidated invoicing for Agency and Partner accounts](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts) instead. Before you begin A few things to know first: Your active subscriptions get canceled and immediately reinstalled under a single consolidated invoice. The most recent billing period from your existing subscriptions becomes the new invoice's starting point. The leftover balance from your existing subscription payments is used to cover the new consolidated invoice. Some payment providers may block this automatic switch. If you notice anything off, contact [support](http://stape.io/helpdesk/submit-request). You can't start trial periods on Gateway products (like Meta CAPI Gateway or Signals Gateway) while consolidated invoicing is on. If you currently have an active Gateway trial, turning consolidated invoicing on will automatically upgrade them to the lowest paid plan. If your subscriptions are a mix of monthly and yearly, you'll see two invoices - one for monthly, one for yearly. That's because each billing cycle is consolidated on its own. The upgrade from a free plan to a paid plan will be included in the consolidated invoice and will have the same billing period as all other products on the consolidated invoice. How to turn on the consolidated invoicing 1. Open the Billing menu. ![Open the Billing menu.](https://cdn.stape.io/i/6a216a9563bcf641836262.png) 2. Scroll down to the Invoices section and click Settings. ![Scroll down to the Invoices section and click Settings.](https://cdn.stape.io/i/6a216aa8a6440831824334.png) 3. Toggle Consolidate subscriptions into single invoice on. The switch only appears after you've added a billing method. 4. Optionally, you can apply promo code. Click Add promo code for this. 5. Click Save. ![Toggle Consolidate subscriptions into single invoice on.](https://cdn.stape.io/i/6a216adbdcda4760697873.png) From now on, all your active paid subscriptions in the same billing cycle are processed in one invoice. Any new subscription you add later joins the consolidated invoice automatically. ![Any new subscription you add later joins the consolidated invoice automatically.](https://cdn.stape.io/i/6a216affb3ca1806028473.png) How new subscriptions are added Once consolidated invoicing is on, every new subscription joins the consolidated invoice on its own. Monthly subscriptions go on the monthly invoice, yearly subscriptions go on the yearly invoice. The total is recalculated so the new subscription is included on the next renewal. Example: today is May 1, and you have a yearly consolidated invoice that renews on June 1. You add a new subscription. Stape charges the new subscription for May 1 to June 1, then includes it in the consolidated invoice from June 1 onward at the new combined total. How to turn off the consolidated invoicing You can turn consolidated invoicing off any time: 1. Open the Billing menu. ![Open the Billing menu.](https://cdn.stape.io/i/6a216b555264f797437360.png) 2. Scroll down to the Invoices section and click Settings. ![Scroll down to the Invoices section and click Settings.](https://cdn.stape.io/i/6a216b80a081c010521943.png) 3. Toggle Consolidate subscriptions into single invoice off. 4. Click Save. ![Toggle Consolidate subscriptions into single invoice off.](https://cdn.stape.io/i/6a216bab5ea35762131595.png) Note: In some cases, turning off removes your billing info and active subscriptions from Stape. To keep your services running, check that: Your billing information is still there and accurate. Your subscriptions for the products you use (sGTM hosting, Meta CAPIG hosting, and so on) are still active. If anything is missing, add it back right away so you don't lose service. If an Agency or Partner manages your billing If your Standard account is paid through an Agency or Partner account, you'll see a note in your Billing menu that says so. While that's the case, your subscriptions appear in the Agency or Partner's invoices, not yours, so you won't see them in your own invoice list. To take over your own billing again: 1. Open the Billing menu. 2. In the Billing information section, click Change. ![In the Billing information section, click Change.](https://cdn.stape.io/i/6a216c21f1ca6519457601.png) 3. Click Switch to self-billing. ![Click Switch to self-billing.](https://cdn.stape.io/i/6a216c51e2426674358033.png) After switching, check that: Your billing information is accurate. Your subscriptions for the products you use are still active. If anything is missing, add it back right away. --- # Payment methods Source: https://stape.io/helpdesk/documentation/payment-methods Section: Documentation Which payment methods Stape accepts, how to add or update them on your account, and which currency each Stape entity invoices in. Accepted payment methods For the Free, Pro, Pro+, Business, Business+, Enterprise and Enterprise+ plans, Stape accepts: Credit and debit cards, such as Visa, Mastercard, Discover. Other payment methods depending on your country (such as PayPal or Amazon Pay). For Custom plans, arrange the payment method with the sales team before subscribing. Currency Charges are issued in the currency of the billing entity that serves your account: Stape Europe invoices in EUR. Stape Global invoices in USD. Your bank may apply its own conversion if your card is issued in a different currency. How your payment method is used Your saved payment method is charged automatically for: Each subscription renewal on its monthly or yearly billing date. Upgrades when you change to a higher plan mid‑cycle. Auto‑upgrades when a container exceeds its tier's request limit. Consolidated invoices that combine all sub‑accounts under your billing, if you're an Agency or Partner account. Important: When you enter card details for the first time, check the Save my card details option before confirming. If it's left unchecked, your card is used for the immediate charge only and isn't stored for future renewals, your next renewal will fail and the container or gateway may be paused. If you've already paid without saving your card, you can add it as a saved payment method afterwards from the Billing menu. --- # Billing for Standard, Agency, and Partner accounts Source: https://stape.io/helpdesk/documentation/billing-for-standard-agency-and-partner-accounts Section: Documentation How payments and invoices work across the three Stape account types Standard account billing A Standard account is the only account type that owns sGTM containers and Gateways, so it's the only account type with subscriptions to be paid. Each subscription is billed independently with the defined payment method unless consolidated invoicing is enabled. Consolidated invoicing A Standard account with two or more active subscriptions can switch to consolidated invoicing to receive one combined monthly invoice instead of one invoice per subscription. How it works: All active subscriptions on the account are aggregated into a single monthly invoice. The combined invoice is charged to the payment method on the consolidated billing date. Existing subscription charges are credited toward the consolidated invoice so you aren’t double-charged for the period the switch happens. For more info read [here](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-standard-accounts). When an Agency or Partner manages your billing If your Standard account is a sub account under an Agency or Partner account, you don't pay your own subscriptions and you can't enable consolidated invoicing for yourself. In your Billing menu you'll see a message indicating that an Agency or Partner account is paying for your subscriptions. To switch to self-billing, ask the agency or partner to remove your account from their billing, then add your own billing method. Agency and Partner account billing Agency and Partner accounts don't own containers or Gateways themselves, so they have no subscriptions of their own to pay. What they do is pay the subscriptions of the Standard sub accounts they manage, on a single consolidated invoice. Consolidated invoicing is automatic for sub accounts under your billing, there is no opt-out unless you remove all of the sub accounts. For more info read [here](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-agency-and-partner-accounts). What you pay for A single monthly invoice covers every active subscription on every sub account under your billing. Each line on the invoice identifies which sub account, product, and subscription it belongs to, making it easy for you to track and verify usage for your clients. How sub accounts see it A sub account under your billing: Sees its subscriptions and request usage as normal. Sees a message in Billing indicating that an Agency / Partner account is paying for them. Can't change plan tiers, payment methods, or invoice details, those actions are done from the Agency / Partner account. Receives no invoices of its own. Invoices live on the Agency / Partner account. Refund requests go through the Agency / Partner account. Invoice details (company name, tax ID, billing address) on the consolidated invoice are taken from the Agency / Partner account, not from the sub accounts. VAT / GST handling follows the billing country of the Agency / Partner account. Adding or removing sub accounts Adding. When a Standard account is added under your Agency or Partner account, its active subscriptions move onto your next consolidated invoice. Pre-existing charges to the sub account for the current period are credited so the sub account isn't double-charged. Removing. When a sub account is removed, the sub account's subscriptions return to its own billing. If the sub account has no payment method, those subscriptions won't renew at the next cycle. Disabling consolidated invoicing The only way to disable the consolidated invoicing is to remove all of the sub accounts from your account. Account region An Agency or Partner account can only manage sub accounts in the same region (EU or Global). That also determines billing currency (EUR for EU, USD for Global) and tax treatment. If you work with both EU and Global clients you need two separate Agency or Partner accounts, each with its own consolidated invoice. Examples Standard account switches to consolidated invoicing in the middle of the month A company has two subscriptions on its Standard account: sGTM container, Pro plan, $20/month - started March 5, renews monthly on the 5th. Meta CAPI Gateway, Pro plan, $30/month - started March 18, renews monthly on the 18th. When the company enables consolidated invoicing on April 10: April 18: the Gateway's renewal date arrives. Instead of a separate charge, the subscription is included in the upcoming consolidated invoice. May 5: the sGTM container's renewal date arrives. Similarly, no separate charge. May 10: the first consolidated invoice is issued, covering both subscriptions through June 10. To prevent double-charging, any prepaid amounts from before April 10 are credited. From May 10 onward, both subscriptions are combined into a single $50 invoice charged on the 10th of each month. Agency manages three sub accounts A marketing agency manages three Standard sub accounts. Sub account A: 1 sGTM container, Pro ($20/month). Sub account B: 2 sGTM containers, Pro ($20/month) and Pro+ ($50/month). Sub account C: 1 sGTM container, Pro ($20/month) + 1 Meta CAPI Gateway, Pro ($30/month). On June 1, the agency receives a single consolidated invoice for $140. It includes five line items (one for each subscription) detailing the sub account, product name, plan, and coverage period (June 1 – July 1). Individual sub accounts don't receive their own invoices. Adding a sub account mid-cycle Building on the previous example, the agency adds a new sub account (Sub D) on June 15. Sub D has an existing sGTM container (Pro plan, $20/month) with a billing cycle through July 8. June 15: sub D is moved under the agency's billing. Service continues without interruption, and the sub account is not charged again for the period of June 15 – July 8. July 1: on the agency’s next consolidated invoice, Sub D’s container appears as a new line item. The portion already paid by Sub D for July 1 – July 8 is credited, ensuring the agency is only charged for the remainder of the cycle. From August 1 onward, Sub D's subscription is fully integrated into the agency’s regular billing cycle. --- # How to update invoice details Source: https://stape.io/helpdesk/documentation/how-to-update-invoice-details Section: Documentation Change your company name, tax ID, address, or billing email on Stape invoices in a few clicks. New details apply from the next invoice. 1. Click Billing in the top menu. 2. In the Billing information section, click Edit. ![Click Billing in the top menu.](https://cdn.stape.io/i/6a215f23ebaf8288986949.png) 3. Update your billing information. 4. Save changes. ![Update your billing information.](https://cdn.stape.io/i/6a215f52c7ddc848397868.png) That's it. The new details are used on the next invoice Stape issues for your account. Note: Updates apply from the next invoice onward. Any invoices already issued (including the one for the current billing cycle if it's already been generated) stay as they are. What you can change You can update these fields yourself in the Billing menu: Company name Tax ID (VAT, GST, or local equivalent) Billing address Billing email What you can't change Billing country. Changing your country affects which Stape entity bills you and which taxes apply, so it goes through support. For more information, see [How to change your billing country](https://stape.io/helpdesk/documentation/how-to-change-your-billing-country). Invoices that have already been issued. Once an invoice is issued, the details on it are final. --- # Payment country restrictions on Stape Europe Source: https://stape.io/helpdesk/documentation/payment-country-restrictions-on-stape-europe Section: Documentation The list of countries eligible to pay Stape Europe, and what to do if yours isn't included. Stape Europe accepts payments from tax residents of the following countries: [EU member states](https://european-union.europa.eu/principles-countries-history/eu-countries_en) Norway, Switzerland, United Kingdom, Lichtenstein, Iceland. Why this restriction exists Stape Europe is operated by an Estonian legal entity. Under EU VAT rules (specifically the One Stop Shop (OSS) scheme) Stape Europe is registered to collect and remit VAT for customers in the EU and a small set of nearby countries that are part of the same regulated framework. This is a billing restriction tied to the legal entity that issues your invoice. Stape Global is a separate entity that serves customers worldwide. If your country isn't supported Stape Global accepts payments worldwide. If you're a tax resident outside the eligible list, sign up for Stape Global instead: Go to the [Stape sign-up page](https://stape.io/sign-up). Select Global. Complete the rest of sign-up as usual. ![Select "Global" on the sign-up page](https://cdn.stape.io/i/6a215e7c4cb5f545412544.png) I already signed up for Stape Europe by mistake If you created your account on Stape Europe but you're not a tax resident in an eligible country, contact support, billing country can only be changed by the support team. See [How to change your billing country](https://stape.io/helpdesk/documentation/how-to-change-your-billing-country) for the process. --- # How to find your invoices and receipts Source: https://stape.io/helpdesk/documentation/how-to-find-your-invoices-and-receipts Section: Documentation Download your Stape invoices and receipts from the Billing menu, see what each document covers, and find them on a managed account. Invoice vs receipt An invoice is the document Stape issues for a subscription payment. It lists what product subscription you bought, the price, taxes, your company info, and your tax ID. Most accounting teams need invoices for bookkeeping. A receipt is proof the payment went through. It confirms the amount, the date, and the card used. Receipts are shorter and don't include all the company-and-tax detail an invoice does. If you’re on the Stripe payment processor, both documents are available. If you’re on Paddle, you can get only the invoice. Where to find invoices 1. In the top menu, click Billing. ![In the top menu, click Billing.](https://cdn.stape.io/i/6a215bb69974a423323825.png) 2. Go to the Invoices section. 3. You'll see a list of every invoice/receipt, sorted by date. For each entry you can download the invoice as a PDF, and see whether it's paid. The matching receipt is in the same place. ![For each entry you can download the invoice as a PDF, and see whether it's paid. The matching receipt is in the same place.](https://cdn.stape.io/i/6a215bed845d2529845114.png) If your account uses consolidated invoicing With consolidated invoicing on, Stape issues one combined invoice per billing period that covers all your subscriptions, instead of a separate invoice for each one. Consolidated invoices show up in the Invoices section, you need to select the Consolidated invoice type. You can download them the same way as regular invoices. See [Consolidated invoicing for Standard accounts](https://stape.io/helpdesk/documentation/consolidated-invoicing-for-standard-accounts) for more information. ![Consolidated invoices show up in the Invoices section, you need to select the Consolidated invoice type.](https://cdn.stape.io/i/6a215c0784b22792500541.png) If an agency or partner pays for your account If your Stape account is managed by an agency or partner, you won't see invoices in your own Billing menu. The invoices are issued to the agency or partner, and they pay for your subscriptions and handle billing on your behalf. To get a copy of an invoice, ask whoever manages your billing (the agency or partner account holder). --- # How billing works Source: https://stape.io/helpdesk/documentation/how-billing-works Section: Documentation Learn how Stape billing works - what you're charged for, how plans and cycles work, who issues your invoice, and where to manage it all This page is the starting point for everything related to billing in Stape. It explains what you can be charged for, how plans and billing cycles work, who issues your invoice, and where to go for the deeper guides on each topic. What you can be billed for Product subscriptions Stape charges per product subscription. A single Stape account can hold subscriptions to sGTM container hosting or a gateway, billed independently. You can be billed for the following products: sGTM container hosting Stape Gateway Meta CAPI Gateway TikTok Events API Gateway Snapchat CAPI Gateway Meta Signals Gateway A single Stape account can hold any combination of these. To see pricing and plans for each product, go to the [Stape pricing](https://stape.io/price) page. Note: sGTM hosting and Signals Gateway have a permanent free tier (a recurring monthly allowance that doesn't expire unless you go over the limit). It allows up to 5 free containers / Signals Gateways per Stape account. The Gateway products have a 7‑day trial (free for the first 7 days, then you switch to a paid plan to keep using it). Features and power-ups Features and power-ups aren't sold as add‑ons, they unlock when you move up a plan tier on a product you already pay for. The following features are available: Analytics - free for everyone. Logs - available on the Pro plan and higher. Export logs is available on the Enterprise plan and higher. Monitoring - available on the Business plan and higher. Store - available on the Pro plan and higher. Connections - free for everyone. For the full list of power-ups and their pricing plans, go to [Power-ups from Stape](https://stape.io/helpdesk/documentation/sgtm/power-ups). Paid apps Stape has a catalog of apps and modules, such as Prestashop, Shopify, WooCommerce, HubSpot, Salesforce, and others. Some of those apps are paid and they’re priced independently of your sGTM/Gateway subscription. Installing one adds a new line to your billing alongside your existing subscriptions. See the [CMS apps](https://stape.io/helpdesk/documentation/integrations) and [CRM apps](https://stape.io/helpdesk/documentation/crm-apps) catalogs for what's available and how each is priced. Subscription model Stape subscriptions are recurring, monthly or yearly. Three things follow from that: Billing cycle. The cycle begins on the day you first subscribe, and renews on the same day each period. Quota cycle = billing cycle. Your monthly request/event quota resets at the start of each billing period, not on the 1st of the calendar month. Per‑subscription quota. Each container, gateway, or signals workspace has its own quota. Hitting the limit on one doesn’t affect the others. sGTM quota Each plan has a set amount of requests/events. When a quota is reached for the sGTM container/Signals Gateway, what happens depends on the plan: Free plan and paid plans with auto‑upgrade disabled: the container or gateway stops serving traffic until the next billing period. The quota doesn’t roll over. Paid plans with auto‑upgrade enabled: the subscription is moved up one tier, and traffic continues without interruption. Gateway quota Each gateway plan includes a fixed number of pixels (Meta / TikTok / Snapchat) or domains (Stape Gateway). You can pay as you go by adding additional pixels/domains, so a gateway with many pixels/domains is more expensive than one with a single pixel/domain. Alternatively, you can buy Ultimate and Unlimited plan tiers, which start charging every 100 pixels/20 domains. See each gateway's [pricing page](https://stape.io/price-gateway) for the exact per‑tier numbers. See [Request limits and pause logic](https://stape.io/helpdesk/documentation/request-limits-and-pause-logic) for the full rules, and [How to use subscription auto‑upgrade](https://stape.io/helpdesk/documentation/how-to-use-subscription-auto-upgrade) for how the upgrade trigger works. Account types Stape has three account types, and the type determines who pays the invoice: Standard account - pays for its own subscriptions. This is the default for most users. Agency account - can hold sub‑accounts and pay for their subscriptions on a single consolidated invoice. Partner account - same consolidated‑invoicing capability as Agency, with additional Partner Program benefits. For more information read [Billing for Standard, Agency, and Partner accounts](https://stape.io/helpdesk/documentation/billing-for-standard-agency-and-partner-accounts). Payment methods Stape accepts credit and debit cards. The payment processor used depends on your billing country. For more information read [Payment methods](https://stape.io/helpdesk/documentation/payment-methods). Where is billing located in the menu All billing actions are under the Billing tab in the top menu of your Stape account. From there you can: Add or update a payment method Add company info and a tax ID (VAT, GST) Add additional email recipients View and download invoices If an Agency or Partner account is paying for your subscriptions, your Billing menu will show a notice and the options above will be limited. ![Billing UI](https://cdn.stape.io/i/6a214cb7445b2985139709.png) Taxes Tax is calculated based on your billing country. EU customers add a VAT number in their billing settings. Stape Europe collects VAT for OSS reporting. For more information read [VAT for EU users](https://stape.io/helpdesk/documentation/vat-for-eu-users). US customers are charged sales tax in the states where Stape is registered. For more information read [US sales tax](https://stape.io/helpdesk/documentation/us-sales-tax) for the state list. Refunds and cancellations Monthly subscriptions: refundable within 14 days of the most recent charge. Yearly subscriptions: refundable within 60 days of the most recent charge. For more information read [Refund policy](https://stape.io/helpdesk/documentation/refund-policy). --- # How to debug the Shopify checkout page with GTM Source: https://stape.io/helpdesk/documentation/shopify-checkout-page-debug Section: Documentation A guide on how to debug the checkout page in Shopify using a free solution - Stape GTM Helper Chrome extension. When debugging a Shopify setup, the GTM dataLayer is not accessible on the checkout page because Shopify limits access to the checkout environment. Unlike other Shopify pages, the checkout is sandboxed and does not permit unrestricted DOM manipulation or custom script injection. But there’s a workaround to avoid the limitation and debug events on the checkout page - manually insert the GTM snippet. This guide focuses on how to debug checkout events on the Shopify website. How to debug Shopify checkout events While running the checkout of the Shopify store, users see the “No Google tags found” error. ![While running the checkout of the Shopify store, users see the “No Google tags found” error.](https://cdn.stape.io/i/6a1e8e5bce8b3466621473.png) Here is the solution: 1. Add the [Stape GTM Helper Chrome extension](https://chromewebstore.google.com/detail/stape-gtm-helper/ipjcocdbbjgkailaejllpnmeliblbimn) to your browser. 2. Run Preview Mode in your GTM container. 3. Enable events tracking on checkout. Turn on the toggle Shopify Sandbox dataLayer in the Settings tab of the extension. In the tab Inject GTM, click Enable injection, add your domain name, and [GTM ID](https://stape.io/helpdesk/knowledgebase/how-to-find-web-google-tag-manager-gtm-id). Click “Save changes”. ![Turn on the toggle Shopify Sandbox dataLayer in the Settings tab of the extension.](https://cdn.stape.io/i/6a1e8edb34178334379289.gif) 4. Check the events recording in GTM Preview. ![Check the events recording in GTM Preview](https://cdn.stape.io/i/6a1e8e7150fd3268197829.png) Now you can debug this part of your setup! Stape Chrome extension also provides other benefits to make the debugging process more convenient. Its features include, but are not limited to, entity filter, request URL formatter, website tracking scanning and evaluation, and displaying consent status in server GTM. For more details on the [Stape Chrome extension's features](https://stape.io/blog/stape-chrome-extension), refer to our guide. --- # Omnisend tag Source: https://stape.io/helpdesk/documentation/omnisend-tag Section: Documentation Learn how to configure the Omnisend tag in server-side Google Tag Manager to send contacts and event data to Omnisend. Omnisend tag by Stape allows you to send contact and event data from your server Google Tag Manager (sGTM) container directly to Omnisend using the Omnisend API. It supports event tracking, contact creation and updates, as well as mapping standard eCommerce and GA4 events to Omnisend events. The Omnisend tag supports multiple action types, including Track Event, Create Contact, and Update Contact. It also includes flexible event name mapping, optional optimistic responses for faster execution, and the ability to store Omnisend Contact IDs for future requests. Please note that the Omnisend API has a limit of 400 requests per minute. Because of this, high-volume events such as product views or add-to-cart actions are often better handled through a client-side JavaScript snippet. Requirements for setting up the Omnisend tag Please ensure that you already have Google Tag Manager web and server containers, as well as a configured server container and custom domain in Stape. Please follow these guides if you don’t have any of those: [How to create a server container in Google Tag Manager](https://stape.io/helpdesk/documentation/create-server-container-in-google-tag-manager) [How to create a server container in Stape](https://stape.io/helpdesk/documentation/create-server-container-in-stape) [How to add a custom domain in Stape](https://stape.io/helpdesk/documentation/add-custom-domain-in-stape)https://stape.io/helpdesk/documentation/add-custom-domain-in-stape How to set up the Omnisend tag 1. Configure sending data to the server GTM container. The two most popular options for sending data to sGTM are Google Analytics 4 and Data Tag/Data Client. Here is a [step-by-step guide](https://stape.io/helpdesk/documentation/send-data-from-web-to-server-container-in-google-tag-manager) on sending data to sGTM. 2. Add the Omnisend tag template in the server GTM container by importing it from the Template gallery: Search for the [Omnisend tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/omnisend-tag) by Stape in the Google Tag Manager Tag Template gallery. Click Add to workspace. ![Add the Omnisend tag template](https://cdn.stape.io/i/6a1979ff3c902125567506.png) 3. Create the Omnisend tag: Go to the Tags menu → click New. ![Tags menu](https://cdn.stape.io/i/6a197a2ba0e7f992804662.png) Click Tag Configuration → select Omnisend. ![select Omnisend](https://cdn.stape.io/i/6a197a4c3dec5260393925.png) 4. Configure the Omnisend tag: Action Type - select what kind of data you want to send to Omnisend. ![Action Type](https://cdn.stape.io/i/6a197a787b475607559378.png) If you selected Track Event as Action Type Choose an Event Name Setup Method: Standard: Predefined list (e.g., viewed product, placed order). Inherit: Maps GA4 events (e.g., purchase → placed order). Custom: Your own event name. ![Event Name Setup Method](https://cdn.stape.io/i/6a197ab6caba4016329843.png) API Key - can be found on Omnisend in [Store Settings → API → API Keys](https://app.omnisend.com/integrations/api-keys). The key must have permissions for Contacts and Events. Use Optimistic Scenario - if enabled, the tag returns gtmOnSuccess() immediately without waiting for the API response. ![API Key and Optimistic Scenario](https://cdn.stape.io/i/6a197af56be73919790234.png) For Contact Identifiers, provide: Either Omnisend Contact ID, Email Address, or Phone Number. This action creates a new contact if it doesn't exist or, if the contact exists, updates the contact information. ![Contact Identifiers for Track Event](https://cdn.stape.io/i/6a197b423af6d295825428.png) Contact Properties - provide contact information. Be sure to follow [Omnisend’s naming conventions](https://api-docs.omnisend.com/reference/contacts). When updating contact information, only provide the updated properties. You can also use the Tags section to enter string tag values for user segmentation or filtering. Contact Custom Properties - same as above, but you provide your own custom names. ![Contact Properties](https://cdn.stape.io/i/6a197c5153289123423424.png) Server Event Data (optional) - if Event ID is not set, it will be generated automatically by the API. However, you can provide a specific Event ID along with Event Timestamp to deduplicate events. Event Properties (optional) - you can provide your own event properties or choose to Automap Event Properties. Event Custom Properties (optional) - same as above, but you provide your own custom properties. ![Optional Track Event properties](https://cdn.stape.io/i/6a197ca877b02801166540.png) Advanced parameters: Tag Execution Consent Settings - choose if you wish for the tag to wait for marketing consent from the user before firing. Logs Settings - choose if you want to log requests to your account. This feature is handy when setting up server-side tagging since it allows seeing incoming and outgoing requests and network responses. BigQuery Logs Settings - allows you to configure BigQuery logging. Advanced Settings (Additional Tag Metadata) - specify additional tag metadata to be included in the event data when the tag is fired. ![Advanced parameters](https://cdn.stape.io/i/6a197cf3b6d58944309856.png) If you selected Create Contact as Action Type API Key - can be found on Omnisend in [Store Settings → API → API Keys](https://app.omnisend.com/integrations/api-keys). The key must have permissions for Contacts and Events. Use Optimistic Scenario - if enabled, the tag returns gtmOnSuccess() immediately without waiting for the API response. ![API Key and Optimistic Scenario](https://cdn.stape.io/i/6a30f60c333a5704490923.png) For Contact Identifiers, provide: Unique contact ID (either Email or Phone). The system handles partial duplicates (merges unique IDs) and rejects total duplicates or existing single identifiers. You can also choose to Store the created Omnisend Contact ID in cookie (omnisendContactID). ![Contact Identifiers for Create Contact](https://cdn.stape.io/i/6a197b905526a296513260.png) Contact Properties - provide contact information. Be sure to follow [Omnisend’s naming conventions](https://api-docs.omnisend.com/reference/contacts). When updating contact information, only provide the updated properties. You can also use the Tags section to enter string tag values for user segmentation or filtering. Contact Custom Properties - same as above, but you provide your own custom names. ![Contact Properties](https://cdn.stape.io/i/6a197c5153289123423424.png) Advanced parameters: Tag Execution Consent Settings - choose if you wish for the tag to wait for marketing consent from the user before firing. Logs Settings - choose if you want to log requests to your account. This feature is handy when setting up server-side tagging since it allows seeing incoming and outgoing requests and network responses. BigQuery Logs Settings - allows you to configure BigQuery logging. Advanced Settings (Additional Tag Metadata) - specify additional tag metadata to be included in the event data when the tag is fired. ![Advanced parameters](https://cdn.stape.io/i/6a30f6628dd4b318679140.png) If you selected Update Contact as Action Type API Key - can be found on Omnisend in [Store Settings → API → API Keys](https://app.omnisend.com/integrations/api-keys). The key must have permissions for Contacts and Events. Use Optimistic Scenario - if enabled, the tag returns gtmOnSuccess() immediately without waiting for the API response. ![API Key and Optimistic Scenario](https://cdn.stape.io/i/6a30f69cce923565847579.png) For Contact Identifiers, enter one of the following: Update Contact Search Key: Choose Omnisend Contact ID to allow email updates, or Email (ID remains unchanged). Specific fields (Omnisend Contact ID, Contact Email, or Contact Phone) if you want to update them separately. ![Contact Identifiers for Update Contact](https://cdn.stape.io/i/6a197bfb2f78f387383830.png) Contact Properties - provide contact information. Be sure to follow [Omnisend’s naming conventions](https://api-docs.omnisend.com/reference/contacts). When updating contact information, only provide the updated properties. You can also use the Tags section to enter string tag values for user segmentation or filtering. Contact Custom Properties - same as above, but you provide your own custom names. ![Contact Properties](https://cdn.stape.io/i/6a197c5153289123423424.png) Advanced parameters: Tag Execution Consent Settings - choose if you wish for the tag to wait for marketing consent from the user before firing. Logs Settings - choose if you want to log requests to your account. This feature is handy when setting up server-side tagging since it allows seeing incoming and outgoing requests and network responses. BigQuery Logs Settings - allows you to configure BigQuery logging. Advanced Settings (Additional Tag Metadata) - specify additional tag metadata to be included in the event data when the tag is fired. ![Advanced parameters](https://cdn.stape.io/i/6a30f6b973dd3988770232.png) 5. Add the Trigger for the tag, give it a descriptive name, and click Save. ![Add the Trigger for the tag](https://cdn.stape.io/i/6a197d1dc398a709077145.png) How to test and troubleshoot the Omnisend tag setup You can test the configurations in Google Tag Manager. Click on Preview, trigger the event, and check whether the tag has fired. ![Test and troubleshoot the Omnisend tag ](https://cdn.stape.io/i/6a197d45a18c8238471138.png) Find out more about [debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) in our guide. --- # TikTok Pixel tag Source: https://stape.io/helpdesk/documentation/tiktok-pixel-by-stape-tag Section: Documentation Set up the TikTok Pixel by Stape in web GTM with Advanced Matching, consent-aware tracking, server-side deduplication, and custom event support. TikTok Pixel tag developed by Stape lets you install and manage the TikTok Pixel through your Google Tag Manager (GTM) web container. It supports several features that enhance your tracking setup: standard and custom TikTok events, Advanced Matching, consent-aware tracking, event deduplication, etc. Unlike many other TikTok Pixel templates, this tag does not require installing the TikTok Base Code separately through a Custom HTML tag. Simply add the TikTok Pixel by Stape tag to your web GTM container, configure it, and start sending events to TikTok. Requirements for setting up the TikTok Pixel by Stape tag Please ensure that you already have Google Tag Manager web and server containers, as well as a configured server container and custom domain in Stape. Please follow these guides if you don’t have any of those: [How to create a server container in Google Tag Manager](https://stape.io/helpdesk/documentation/create-server-container-in-google-tag-manager) [How to create a server container in Stape](https://stape.io/helpdesk/documentation/create-server-container-in-stape) [How to add a custom domain in Stape](https://stape.io/helpdesk/documentation/add-custom-domain-in-stape) How to set up the TikTok Pixel by Stape tag 1. Configure sending data to the server GTM container. The two most popular options for sending data to sGTM are Google Analytics 4 and Data Tag/Data Client. Here is a [step-by-step guide](https://stape.io/helpdesk/documentation/send-data-from-web-to-server-container-in-google-tag-manager) on sending data to sGTM. 2. Add the TikTok Pixel by Stape tag template in the web GTM container by importing it from the Template gallery: Search for the [TikTok Pixel by Stape tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/tiktok-web-tag) in the Google Tag Manager Tag Template gallery. Click Add to workspace. ![Add the TikTok Pixel by Stape tag template](https://cdn.stape.io/i/6a19360bd3a44229228722.png) 3. Create the TikTok Pixel by Stape tag: Go to the Tags menu → click New. ![Tags menu](https://cdn.stape.io/i/6a19364378fda024279742.png) Click Tag Configuration → select TikTok Pixel by Stape. ![Select TikTok Pixel by Stape in Tag Configuration](https://cdn.stape.io/i/6a1936ced57fc223288053.png) 4. Configure the TikTok Pixel by Stape tag: TikTok Pixel ID(s) - enter one or several [TikTok Pixel IDs](https://ads.tiktok.com/help/article/how-to-create-and-access-tiktok-pixel-id). Event Name Setup Method - сhoose how the Event Name is defined: Inherit from DataLayer - maps GTM/GA4 event names to TikTok equivalents. Override - choose from a list of standard events or provide a custom event name. ![Configure the TikTok Pixel by Stape tag](https://cdn.stape.io/i/6a1937dd02b49246011769.png) Enable automatic User Data and Event Parameters mapping from the Data Layer - this is a recommended option that will automatically parse GA4, UA, and Common Event Data formats for event and user data. Use data only from the most recent Data Layer event where the data can be found - the tag will ignore recursive merges for Data Layer variables and take only the most recent value of the data. Enable Advanced Matching - this is an optional feature that allows to securely pass user data (e.g., email, phone) to TikTok for better match rates. Enable Event User Data Enhancement - this is an optional feature to store and reuse user data via localStorage across sessions. ![Automatic User Data and Event Parameters mapping and Advanced Matching](https://cdn.stape.io/i/6a193d05d467c197657231.png) Advanced parameters: Compliance Settings - configure TikTok's consent modes, Google Consent Mode, or Limited Data Use (LDU). User Data - select to use a standard User-Provided Data variable or create a variable that returns a JavaScript object containing the desired User Data parameters. Event Parameters and Additional Event Parameters - add extra metadata to your events by creating a variable that returns a JavaScript object with the desired event parameters. Server Side Tracking Settings - provide an Event ID for deduplication when you use both client-side and server-side tracking with the TikTok Events API. You can also choose to Push event to DataLayer with the Event ID for easier event deduplication. Additional Settings - you can choose to Disable History Event Tracking that TikTok Pixel automatically tracks as Pageview. If you do so, make sure to implement it manually instead. Advanced Settings - here you can establish tag firing priority, create a custom tag firing schedule, configure tag firing options, and more. ![Advanced parameters](https://cdn.stape.io/i/6a193d7e65b78503110948.png) 5. Once the tag’s configuration is completed, add a Trigger to fire the tag based on the selected action (e.g., all page views for the "Page View" action or purchase events for the "Conversion" action). Give the trigger a descriptive name, and click Save. ![Add a Trigger](https://cdn.stape.io/i/6a193db986403404636165.png) How to test and troubleshoot the TikTok Pixel by Stape tag setup You can test the configurations in Google Tag Manager. Click on Preview, trigger the event, and check whether the tag has fired. ![Test and troubleshoot the TikTok Pixel tag](https://cdn.stape.io/i/6a193dde37230447568928.png) Find out more about [debugging and monitoring server-side tracking configuration](https://stape.io/blog/guide-to-debugging-and-monitoring-server-side-tracking-configuration) in our guide. --- # Enricher power-up Source: https://stape.io/helpdesk/documentation/enricher-power-up Section: Documentation Recognize users across sessions, improve attribution accuracy, and event match quality by enriching requests with the Enricher power-up. The Enricher power-up enriches event data with user data that was collected earlier. It allows you to store datasets from each interaction to create a repository of user information that can be referenced in real time. With a power-up’s help, the system can recognize returning users and enrich events they trigger. Enricher is available on the Business subscription plan and higher. To check your current plan or upgrade, go to your sGTM container settings. How to set up Enricher power-up Use cases A typical scenario is that a business is struggling to connect user interactions across sessions because many incoming events lack identifiable data. The data enrichment works by combining available identifiers and behavioral signals to create a more consistent view of the customer journey. When some identifiers are missing, interactions can still be associated with the same user profile based on available matching identifiers. The use cases of Enricher power-up include the following: Increase event match quality for platforms Cross-device tracking and attribution Enrichment of webhooks with offline conversions, which helps to attribute online activities to offline sales. --- # How to add offline events to Signals Gateway Source: https://stape.io/helpdesk/documentation/how-to-add-offline-events-to-signals-gateway Section: Documentation Learn how to upload offline, in-store, app, or CRM events to Signals Gateway as a CSV file. File upload lets you send events to Meta that never passed through your website Pixel, such as in-store purchases, phone orders, app events, or CRM conversions. You format the data as a CSV and deliver it to Signals or CAPI Gateway, which processes and forwards it to your connected destination (e.g. Meta). There are two methods: automatic upload via a cloud storage bucket (recommended for recurring data) and manual upload. Both use the same CSV format. Create a File upload data source Note: this section is only applicable for the Signals Gateway data pipeline. 1. Create a Signals Gateway data pipeline (or open an existing one and click the + icon under Data Sources). 2. When prompted to choose a data source, select File upload and click Continue. ![File upload data source](https://cdn.stape.io/i/6a059a4cd22f1606972504.png) 3. Give the data source a name and click Continue. ![File upload source name](https://cdn.stape.io/i/6a059a8d4af30015514768.png) 4. You'll see a confirmation screen with two options: Set up or use existing automatic file upload (recommended) - you can connect a cloud bucket. Manually upload your files - upload CSVs one at a time directly from the pipeline view. Click Continue. ![Confirmation screeb](https://cdn.stape.io/i/6a05a33e9f03f711549571.png) 5. Complete the rest of the pipeline wizard. Connect your destination (e.g. Meta dataset), and click Done. ![File upload done](https://cdn.stape.io/i/6a05a3c7e9871428936733.png) Automatic upload Automatic upload connects Signals Gateway to a cloud storage bucket. Once set up, your gateway processes any CSV files it finds in the bucket, then deletes them. No manual intervention needed after the initial configuration. 1. Go to Account settings → Automatic file uploads. ![Automatic file uploads](https://cdn.stape.io/i/6a05a431717d4458364613.png) 2. Select your cloud provider - AWS S3 or Google Cloud Storage. ![Cloud provider selection](https://cdn.stape.io/i/6a05a48c01a19367817418.png) AWS S3 1. A setup modal appears with guidance on creating an S3 bucket. Complete that in AWS, then return and click Continue. ![Create S3 bucket](https://cdn.stape.io/i/6a05a4f72b59b399895152.png) 2. Provide: IAM Access Key ID IAM Secret Access Key Bucket name Hosting region Click Continue. ![Provide keys for the S3 bucket](https://cdn.stape.io/i/6a05a57126d2a237797715.png) 3. A sample CSV file is provided for reference, download it as a formatting template. ![S3 setup done](https://cdn.stape.io/i/6a05a59eea4bb142355544.png) Google Cloud Storage 1. In Google Cloud, create a service account and generate a JSON access key. The service account needs permissions to list, read, and delete files in the bucket. Refer to the setup instructions provided in the wizard UI. 2. In Signals Gateway: Enter the bucket name. Upload the generated JSON key file. Click Continue. ![Creat e GSC bucket](https://cdn.stape.io/i/6a05a6a26d9f8436343562.png) 3. A sample CSV file is provided for reference, download it as a formatting template. ![GSC setup complete](https://cdn.stape.io/i/6a05a6ed1148b775459380.png) Monitor and manage automatic uploads From Account settings → Automatic file uploads you can: View the status and timestamp of the most recent job run. Modify bucket name or credentials via the ... menu. To verify the integration, drop a sample CSV into your bucket and confirm the job completes successfully. ![S3 file test](https://cdn.stape.io/i/6a05a780cc12b701162017.png) In [this article](https://developers.facebook.com/documentation/ads-commerce/gateway-products/signals-gateway/upload-events#automatic-file-uploads), you can find a detailed header definition table to use when formatting your data files. Follow the format closely to help ensure the best results. Manual upload 1. From the pipeline, click on your data source. ![Datya source manual upload](https://cdn.stape.io/i/6a05a7d4ef737210262388.png) 2. Open the Actions menu and click Upload event data. ![Upload event data](https://cdn.stape.io/i/6a05a80aa4b82601584431.png) 3. Select your CSV file. Headers inside the file must match the field definitions described in [this article](https://developers.facebook.com/documentation/ads-commerce/gateway-products/signals-gateway/upload-events#automatic-file-uploads). Once uploaded, the filename appears along with the count of Uploaded and Excluded events. ![Select .csv file](https://cdn.stape.io/i/6a05a8739bccd201517172.png) Testing After uploading, confirm events reached Meta: Open Events Manager → your dataset → Overview. Find your manually uploaded actions. Check Event Match Quality for uploaded events. If EMQ is <6.0, add more identity fields to your CSV. ![Test manual upload](https://cdn.stape.io/i/6a05a8d0b0e53139227138.png) --- # How to improve the configuration of a LinkedIn-sponsored Stape server container Source: https://stape.io/helpdesk/documentation/configuration-for-linkedin-sponsored-accounts Section: Documentation Learn about some recommended configurations for Stape accounts created through the GTM integration for LinkedIn advertisers. Once your server container is created through LinkedIn Campaign Manager, your Conversions API connection is established. To improve data quality and make use of the features included with your LinkedIn-sponsored container offer, consider the following steps in your Stape container: Step 1. Add a custom domain When creating your Stape container, we have already provided you with a randomized technical domain (for example, wjzsdfvom.us.stape.io). You could use it as a tagging server URL, but it’s recommended to use a custom domain. When your tagging server is situated on the same domain as your business website (e.g., if your website is example.com, then your tagging server URL could be sst.example.com). In that case, your cookies will be considered first-party, which bypasses ITP limitations of browsers like Safari and significantly increases the cookie lifetime. With a LinkedIn-sponsored Stape server container, you can configure a custom domain automatically or manually. You can enter a domain name, either use the No CDN or Own CDN option (Stape Global CDN is unavailable to LinkedIn-sponsored server containers), as well as configure advanced settings. More info 1. Log in to your [stape.io](https://stape.io/login) account → choose a container → scroll down and click Add custom domain. ![click Add custom domain](https://cdn.stape.io/i/67bde58955e33497959271.gif) 2. There are two ways of adding a custom domain: ![Two ways of adding a custom domain](https://cdn.stape.io/i/67bde5e058363453137729.png) Automatically (via Entri) - the easiest way to connect domains. Log in with your DNS provider details via Entri, and give us one-time permission to connect your domain. Check the full [list of supported DNS providers](https://developers.entri.com/provider-list)by Entri. Manually - After you add a custom domain to your Stape container, you will see DNS records that should be added to your DNS provider to verify the custom domain. The DNS records depend on the server location and which [CDN](https://stape.io/helpdesk/documentation/disabled-cdn) options you choose. Here are all available configurations for your custom domain (don’t worry, we’ll cover the configuration process in later sections): Domain name - enter your tagging server domain (example: gtm.my-domain.com). Add CDN - in LinkedIn-sponsored sGTM containers, you can use either the Own CDN option or leave the switch deactivated for No CDN. Advanced settings - here you can tick the box to Use A records instead of CNAME records. If DNS providers restrict adding duplicate records, you should use CNAME record. If not, then choose A records. Please note that this setting is incompatible with the Add Global CDN setting. ![Сonfigurations for your custom domain](https://cdn.stape.io/i/67bc382a4a9e8766987847.gif) Read more in our manual on [how to set up a custom domain](https://stape.io/helpdesk/documentation/add-custom-domain-in-stape). Step 2. Set up Custom Loader It’s highly recommended to enable Custom Loader as part of your server-side tracking configuration. This power-up minimizes the impact of ad blockers on your GTM and GA4 scripts. It routes requests through a path that turns all cookies first-party, increasing their lifetime. More info 1. Log in to your [Stape account](https://stape.io/login) and select your sGTM container from the dashboard. ![Log in to your Stape account and select your sGTM container from the dashboard](https://cdn.stape.io/i/6a0ac71e54373658261307.png) 2. Go to Power-ups and click Use next to the Custom Loader panel. ![Go to Power-ups and click Use next to the Custom Loader panel](https://cdn.stape.io/i/6a0ac7694209c042611823.png) 3. Toggle the Custom Loader switch to enable it and click Save changes. ![Toggle the Custom Loader switch to enable it and click Save changes](https://cdn.stape.io/i/6a0ac7acbaf82494156274.png) 4. In the Code & Setup information section, configure the following settings: Domain - select one of the domains linked to your container. Web GTM ID - enter your [web Google Tag Manager ID](https://stape.io/helpdesk/knowledgebase/how-to-find-web-google-tag-manager-gtm-id). Enhanced ad blocker protection - when enabled, all requests to your sGTM server are encrypted so ad blockers can’t block them based on request patterns. Learn more about the [enhanced ad blocker protection](https://stape.io/helpdesk/knowledgebase/ga4-ad-block-bypass-in-custom-loader). Same Origin Path - if you use the [same-origin approach](https://stape.io/helpdesk/documentation/how-to-use-same-origin-approach-for-server-gtm), enter the path here so both GTM and gtag.js load through it. Platform - here you can either: Select your CMS platform (such as Shopify, Wordpress, etc.). In this case, you’ll be required to install and configure a Stape app. Select Other to receive a JS snippet in case you’re using another platform or a custom website. Setup for a listed platform Select your platform and click Generate. You’ll get configuration and app installation instructions in the Configuration panel for your selected platform. Follow the app installation guide. ![Listed platforms](https://cdn.stape.io/i/69eb85843ce2e518929582.png) Listed platforms Note: Some platforms may require you to tick the Custom Loader checkbox for the power-up to be enabled. Setup for other platforms 1. Select Other. You can also configure Advanced settings: Data Layer variable name - specify only if you use a non-standard dataLayer. Generate with Cookie Keeper - includes Cookie Keeper logic in the generated code. This checkbox appears and is automatically enabled when you have the Cookie Keeper power-up. User identifier type - appears together with Generate with Cookie Keeper. Choose how to identify users - cookie is the recommended option. When selected, enter the name of the first-party cookie to use as the identifier. For more information read [How to choose user identifier type in Cookie Keeper](https://stape.io/helpdesk/knowledgebase/how-to-choose-user-identifier-type-in-cookie-keeper). 2. Click Generate and add the provided code to your website. Note: Remove the standard GTM loader from your site if you have one - running both simultaneously will cause conflicts. ![Click Generate and add the provided code to your website](https://cdn.stape.io/i/69df62b00e166337736673.png) Testing To verify the setup is working: Open any page on your website. Right-click → Inspect → open the Network tab. Filter requests by your custom subdomain or same-origin path. Look for the GTM request URL - it should return a 200 OK status code. ![Network tab](https://cdn.stape.io/i/69df62f23e185225928723.png) Note: With Custom Loader and enhanced ad blocker protection enabled, GA4 request URLs will appear encrypted. --- # Overview of Google Tag Manager integration for LinkedIn advertisers Source: https://stape.io/helpdesk/documentation/gtm-integration-for-linkedin-advertisers Section: Documentation Learn about Stape accounts created through the GTM integration for LinkedIn advertisers and how to use them. LinkedIn allows eligible advertisers to set up Conversions API (CAPI) using Google Tag Manager (GTM) directly from LinkedIn Campaign Manager. As part of this flow, you can choose automatic server-side setup with Stape. Then, Stape automatically creates and hosts a server-side GTM container and connects it to your LinkedIn Campaign Manager. How the setup works: Start the conversion setup in LinkedIn Campaign Manager. Select Google Tag Manager as your source. Choose automatic server-side setup with Stape. Stape automatically creates and connects your server container. (Recommended) Review and enhance your container configuration in your Stape account. Learn [how to set up the Conversions API with GTM in LinkedIn Campaign Manager](https://www.linkedin.com/help/lms/answer/a1718034). Important LinkedIn sponsors the hosting services for eligible advertisers. This means that eligible advertisers can create and host one server-side GTM container on Stape per LinkedIn ad account. This comes at no additional cost when the container is created through the Stape setup flow embedded in Campaign Manager. Read more about the [sponsorship terms](https://www.linkedin.com/help/lms/answer/a10585114). What you need to know about the LinkedIn-sponsored server container The integration can be created only via LinkedIn Campaign Manager. The integration is sponsored by LinkedIn, meaning that it is free for eligible advertisers. You cannot upgrade or change your plan manually - it scales automatically based on your container usage. You can have 1 Stape server container per LinkedIn Ad account (and, by extension, per Stape account). You can add up to 3 custom domains per container. Your Stape container has usage limitations: It is automatically disabled if it has fewer than 2,000 incoming requests/month. It can have up to ~190M incoming requests/month. The following Stape features are not available for this type of account: Stape Store. Stape CDN. [File Proxy power-up.](https://stape.io/helpdesk/documentation/file-proxy-power-up) [Enricher power-up.](https://stape.io/helpdesk/documentation/enricher-power-up)https://stape.io/helpdesk/documentation/file-proxy-power-up You cannot transfer this container or attach it to Partner/Agency accounts. Recommended Stape account configuration Once you complete the Conversions API setup in LinkedIn Campaign Manager, your server container is created and connected through the embedded Stape flow. You can follow [LinkedIn’s setup guide](https://www.linkedin.com/help/lms/answer/a1718034) to confirm that everything works correctly. If you’d like to further improve your data quality and make use of the features included with your LinkedIn-sponsored container offer, consider these [recommended configurations in your Stape container](https://stape.io/helpdesk/documentation/configuration-for-linkedin-sponsored-accounts). What’s inside your Stape account? The [Stape account](https://stape.io/helpdesk/documentation/stape-standard-account) created through the LinkedIn integration gives you access to your LinkedIn-sponsored server-side GTM container hosted by Stape, as well as the supported Stape features available for this product type. When you open your container, you will find all the key information about it - its deployment status, activated power-ups (more on that later), number of requests sent, plan information, and tabs with additional menus. Container settings Container settings show key details about your container, including its unique ID, configuration, API key, and server location. ![Container settings](https://cdn.stape.io/i/6a0abff1a406a008134563.png) Name: this is the name of your container. It helps you identify the specific container within your Stape account. You can edit it any time. Container config: this is a configuration string that defines how your container is set up. You can edit it any time. Related: [How to find Container Configuration for sGTM?](https://stape.io/helpdesk/knowledgebase/how-to-find-container-configuration-for-sgtm) sGTM container ID: this ID uniquely identifies your server-side Google Tag Manager container. It's used to reference and manage the container. Container identifier: a unique identifier assigned to your container. This helps in distinguishing between different containers, especially if you have multiple containers in your Stape account. Container API key: this is an API key associated with your container. It allows you to interact programmatically with the container via the API. It is hidden by default for security reasons, but can be shown if needed. Server location: this indicates the geographical location where your server is hosted. Also found in the Container settings tab is the Subdomains (Tagging Server URLs) section. It allows you to manage your tagging server URLs in sGTM, including the option to configure [custom domains](https://stape.io/helpdesk/documentation/custom-domain-options-for-sgtm). ![Subdomains (Tagging Server URLs) ](https://cdn.stape.io/i/6a0194053ea15858268112.png) Please keep in mind that containers created as part of the GTM integration for LinkedIn Advertisers are limited to up to 3 custom domains and can’t use the Stape Global CDN option. Power-ups [Stape Power-Ups](https://stape.io/helpdesk/documentation/sgtm/power-ups) are additional features that you can enable to enhance and broaden the capabilities of your sGTM container. Your LinkedIn-sponsored server container allows you to use most power-ups. ![Power-ups](https://cdn.stape.io/i/6a0ac04a87af4001936744.png) File Proxy and Enricher power-ups are not available for LinkedIn-created containers. To use File Proxy or Enricher, you’ll need to create a separate Stape sGTM container outside of the LinkedIn-sponsored offer. Analytics [Stape Analytics](https://stape.io/helpdesk/documentation/stape-analytics-feature) feature allows you to monitor the effectiveness of Stape’s server-side tracking, allowing you to track its impact on data quality and verify that your setup is optimized for capturing the most accurate data possible. It showcases key metrics, including total events recovered through bypassing ad blockers, or the extended cookie lifespan in browsers that limit cookie lifetime. This feature is included with your LinkedIn-sponsored container offer. ![Analytics](https://cdn.stape.io/i/6a0ac085cc8b2371112613.png) Subscription Subscription shows information about your usage statistics across your domains. ![Subscription](https://cdn.stape.io/i/6a0ac5b260291301003729.png) Logs [Stape Logs](https://stape.io/helpdesk/documentation/logs-feature) provide real-time and historical records of the data flowing in and out of your server-side Google Tag Manager container. Logs make it straightforward to monitor and troubleshoot your server-side tracking setup so that any issues with your network or vendor don’t go unnoticed. This feature is included with your LinkedIn-sponsored container offer. ![Logs](https://cdn.stape.io/i/6a0ac5f2ef4ed339541032.png) Monitoring [Stape Monitoring](https://stape.io/helpdesk/documentation/monitoring-feature) is a tool designed to keep an eye on your server GTM container's performance and ensure that tags are working as expected. It allows you to create custom alerts that watch for anomalies in your container’s logs (spikes in errors, drops in event counts, or missing requests) and sends email notifications whenever those rules are triggered. This feature is included with your LinkedIn-sponsored container offer. ![Monitoring](https://cdn.stape.io/i/6a0ac6366bec4272822433.png) Store [Stape Store](https://stape.io/helpdesk/documentation/stape-store-feature) is a built-in NoSQL database designed to work seamlessly with Stape’s server-side Google Tag Manager (sGTM) container. Its functionality and design are extremely similar to those of Firebase. Stape Store is not available to LinkedIn-sponsored server containers. To use this feature, please create a separate Stape sGTM container outside of the LinkedIn-sponsored offer. Connections [Connections](https://stape.io/helpdesk/documentation/connections-feature) is a feature that streamlines how you authenticate and manage integrations with third-party platforms directly from your sGTM container settings. Instead of manually creating apps, handling OAuth tokens, or juggling security credentials, you can log in via Connections. This feature is included with your LinkedIn-sponsored container offer. ![Connections](https://cdn.stape.io/i/6a0ac66f11586254417193.png) --- # How to set up Odoo CRM app Source: https://stape.io/helpdesk/documentation/odoo-crm-stape-conversion-tracking-app Section: Documentation Guide on setting up the Stape Conversion Tracking app for Odoo CRM to help you easily report your Opportunities' progress status as conversion events. This Stape Conversion Tracking app for Odoo CRM allows you to track and report your Opportunity’s progress as conversion events to your Meta Dataset (formerly Pixel) using CAPI Gateway, Signals Gateway, or a server-side GTM container. After a configuration, it automatically monitors your Opportunities within Odoo CRM and sends the appropriate events without manual input. How to configure the Stape Conversion Tracking app for Odoo CRM --- # How to enroll in Stape Academy Source: https://stape.io/helpdesk/documentation/what-is-stape-academy Section: Documentation Built for marketers, analysts, and business owners who want to track better without browser privacy restrictions. [Stape Academy](https://stape.io/academy) is a free training platform for server-side Google Tag Manager and a good option if you want a Google Tag Manager course for free with certification. It's built for marketers, analysts, and business owners who want to track better without browser privacy restrictions. ![Stape Academy](https://cdn.stape.io/i/686bc2008bd46658062707.png) You'll learn to set up a tagging server, map a custom domain, and send events to GA4, Google Ads, Meta, and more. The course is ideal for anyone implementing Facebook CAPI, GA4 Measurement Protocol, or extended cookie setups and will be useful for both beginners and experienced users: Beginners will get everything explained from scratch, while no backend experience is required to follow the course. Experienced users will be able to implement advanced setups like event enrichment, GDPR filtering, or custom APIs. Stape Academy includes video modules, real examples, and short quizzes. The main course takes about 7 hours; you can pause anytime, skip ahead, or rewatch as needed. To get certified, watch 80% of the videos and pass short quizzes for each module. Everything in the course applies to real setups. Learning to use GTM on the server side gives you real control over how data is collected, stored, and sent. It helps you track what actually matters, stay compliant, and fix broken attribution. Everything in the course applies to real setups. To join, just [create a Stape account](https://stape.io/sign-up). --- # How to use GTM Tools Source: https://stape.io/helpdesk/documentation/how-to-use-gtm-tools Section: Documentation Discover how you can take advantage of GTM Tools to enhance your tracking experience. Created by Simo Ahava, [GTM Tools](https://gtmtools.com/) has already gained popularity due to its functions and ease of use. It includes many features that save time while working with GTM containers. The features include cloning the container, its visualization, and editing. Start working with GTM Tools Open [GTM Tools](https://gtmtools.com/). To start using GTM Tools, you need to sign in with your Google account credentials. ![Sign in with Google in GTM Tools](https://cdn.stape.io/i/67dc7b82df36b520127688.png) Sign in with Google in GTM Tools After the signing-in process, you need to pick the Google Tag Manager Account you want to work on - click “GTM Accounts” → from a drop-down list and choose the account (if you have access to multiple accounts). Please note: After Stape’s release, you can also modify server GTM containers. ![Accounts in GTM Tools](https://cdn.stape.io/i/67dc7bc200a59783015508.png) Accounts in GTM Tools These are all steps required to start working with GTM Tools, and the next step is to [choose what tools you need to use](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#containers-tools). Container’s tools On the Container page, you will find a list of tools for the GTM container. Below, we describe in a nutshell what each tool does. Feel free to click on the tool name to jump directly to the section with its detailed description. Tool name | What the tool does [Inspect](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#inspect) | Adds tags, triggers, and variables to the My assets to download, save, or clone to another container. [Visualize](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#visualize) | Draws paths between container nodes and visualizes the dependencies between Tags, Triggers, Variables, and Built-in Variables. [Clone](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#clone) | Clones the container’s version into the current or another account. [Workspace mode](https://stape.io/blog/how-to-effectively-use-gtm-tools-by-stape#workspace-mode) | Make changes to Tags, Triggers, and Variables in the workspace. Inspect Use cases 1. Clone only some GTM assets (Tags, Triggers, Variables). Unlike the Clone tool, with Inspect, you can see the container's contents and manage them as you need. Choose the asset you want to clone, add it to My assets, and clone it to another container or GTM account. 2. Changes to tag configurations and adding tags to a different container. If you are going to run a website with a similar structure and configuration settings but need to make some minor changes in existing tags, you can use the feature "Export overview as CSV" in the text editor, make those changes, and then upload the revised configuration to a needed container. How to use the Inspect tool Inspect is a default tool you see after choosing the container. You can choose what workspace you would like to work with. By default, GTM Tools will inspect the latest version, but you can change it from the drop-down menu. The tool shows the number of each asset in your GTM container version. ![Versions of GTM container in Inspect tool](https://cdn.stape.io/i/67dc7c4ce15c2199558612.png) Versions of GTM container in Inspect tool Inspect tool provides the following features: Note. The column shows the notes that you added to a specific tag, trigger, or variable. CSV. Click here to download all the contents of the container in CSV format. My Assets. Add or remove the specific GTM asset from the “My Assets”. Links. See the connection between tags/triggers/variables. ![Menu of Inspect tool](https://cdn.stape.io/i/67dc7cc335bea969353501.png) Menu of Inspect tool Visualize Use cases Explain the GTM ecosphere to a client. If you are a freelancer in digital marketing and/or analytics, you may have many clients who would like to know how their GTM container is built and its dependencies. How to use the Visualize tool To build a map of your GTM container, click "Visualize". No additional settings are required. ![Click "Visualize"](https://cdn.stape.io/i/67dc7d4a1bbf1743355139.png) Click "Visualize" As a result, you will get the GTM container visualization like on the screenshot below: ![Container visualization](https://cdn.stape.io/i/67dc7d646f772426838708.png) Container visualization You may use the following functions to work with the visualization: Hover the cursor on the Tag/Trigger/Variable. In this way, you will see the dependencies between assets. Search node. Just type the node name you want to see, and it will be highlighted. Highlight hermit nodes. You have two options here: select and deselect hermit nodes. This will highlight the assets (Tags/Triggers/Variables) not connected to other assets. Please note that when you hover the cursor on a specific asset, you will see detailed information about it. The information includes the Name, Asset (Tag/Trigger/Variable), and Type. ![Container visualization](https://cdn.stape.io/i/67dc7dc1e1521838145076.png) Container visualization Clone Use cases 1. Creating a new website with a similar structure. If you are running a business and want to create a project with a similar (or the same) structure as the existing one, you can clone the existing Google Tag Manager container contents into another GTM account. 2. Building a container for a new client. The clone tool is helpful for freelancers who use standard naming for common Tags/Triggers/Variables and need a solution to copy the container's template into a new account. How to use the Clone tool The Clone tool is straightforward to use. You can choose the version of the GTM container you want to clone (by default, it is the latest version) and the target GTM account. ![Clone Tool](https://cdn.stape.io/i/67dc7de3a18ea285236748.png) Clone Tool When the settings are configured, click "Clone". Workspace mode Use cases Editing multiple assets. If you need to pause/unpause a few GTM assets, edit JSON, and rename Tags/Triggers/Variables without going to the GTM account. With Workspace mode, you can edit every asset you need in GTM Tools without opening multiple tags, triggers, or variables in new tabs. How to use the Workspace mode tool The Workspace mode interface is similar to the Inspect tool. As the Workspace mode is used to edit and apply changes in the container, it takes the current version of the GTM container, and you can't choose the older version. ![Workspace mode in GTM Tools](https://cdn.stape.io/i/67dc7e187766c985231054.png) Workspace mode in GTM Tools Next to each asset (tag, trigger, variable, template) of the GTM container, you will see the following columns: Changes - changes that were applied to a specific asset. Links - connections between assets. JSON - edit JSON directly. Edit JSON is a handy tool for changing the parameters of a specific asset. Thanks to this function, you can do it directly in GTM Tools; there is no need to download JSON files, go to an editor, and change parameters. Just click "Save" after editing the parameters. ![Edit JSON](https://cdn.stape.io/i/67dc7e7c2bbdd295933890.png) Edit JSON Actions - choose from the list of options: pause (for tags only), edit folder, edit JSON, reset changes. Also, you can update Client templates (for server GTM container). To do it, go to the Templates tab → search for the Client name → click Update. ![Update Client template](https://cdn.stape.io/i/68df9b1544244007245902.png) Update Client template When you have made all the changes to Tags/Triggers/Variables/Templates, click "Update workspace" to apply them and reload the page. If you want to decline the changes to all the assets, click "Reset all changes". ![Update or reset changes in GTM Tools](https://cdn.stape.io/i/67dc7ed5a3dab336767457.png) Update or reset changes in GTM Tools My assets After Stape’s update, the Cart and Library are combined. In “My assets” you can access all your saved assets and create or manage new containers. When you select the items, you have a few options: Clone to a container - duplicate all the assets to a specific container. Save to collection - save a selection of assets into a set to be used later. Remove - delete the changes from “My assets”. ![My assets in GTM tools](https://cdn.stape.io/i/67dc7f810baaf654088811.png) My assets in GTM tools --- # Drupal module dataLayer Source: https://stape.io/helpdesk/documentation/drupal-datalayer Section: Documentation Below you can see the list of dataLayer events and their payload that the Drupal module generates. Below you can see the list of dataLayer events and their payload that the Drupal module generates. The dataLayer events are part of the Drupal module configuration - see the detailed [guide on how to set up the module](https://stape.io/helpdesk/documentation/how-to-set-up-drupal-module-for-sgtm). View item event: "view_item_stape", ecomm_pagetype: "product", ecommerce: { currency: "USD", value: "600.00", items: [ { item_id: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", price: "600.00", currency: "USD", item_category: "Gifts" } ] }, user_data: { city: "Seattle", country: "USA", customer_id: "12349878", email: "test@stape.io", first_name: "Stape", last_name: "Stape", phone: "+18012345671", region: "Washington", street: "Judkins Park", zip: "10000" } View collection event: "view_collection_stape", ecomm_pagetype: "category", ecommerce: { currency: "USD", item_list_name: "Products", items: [ { index: 0, item_id: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", price: "600.00", currency: "USD", item_category: "Gifts" }, { index: 1, item_id: "SKU-1237658", item_name: "Selling Plans Ski Wax", price: "24.95", currency: "USD", item_category: "Gifts" } ] }, user_data: { city: "Seattle", country: "USA", customer_id: "12349878", email: "test@stape.io", first_name: "Stape", last_name: "Stape", phone: "+18012345671", region: "Washington", street: "Judkins Park", zip: "10000" } Add to cart event: "add_to_cart_stape", ecomm_pagetype: "product", ecommerce: { currency: "USD", value: "600.00", items: [ { item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", item_category: "Gifts" } ] }, cart_state: { cart_id: "hWNG6ZHQzv1RzrB68CPNIQzL", cart_quantity: 1, cart_value: "600.00", currency: "USD", lines: [ { item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", line_total_price: "600.00" } ] }, user_data: { city: "Seattle", country: "USA", customer_id: "12349878", email: "test@stape.io", first_name: "Stape", last_name: "Stape", phone: "+18012345671", region: "Washington", street: "Judkins Park", zip: "10000" } Remove from cart event: "remove_from_cart_stape", ecomm_pagetype: "product", ecommerce: { currency: "USD", value: "", items: [ { item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", item_category: "Gifts" } ] }, cart_state: { cart_id: "hWNG6ZHQzv1RzrB68CPNIQzL", cart_quantity: 0, cart_value: "0.00", currency: "USD", lines: [] }, user_data: { city: "Seattle", country: "USA", customer_id: "12349878", email: "test@stape.io", first_name: "Stape", last_name: "Stape", phone: "+18012345671", region: "Washington", street: "Judkins Park", zip: "10000" } View cart event: "view_cart_stape", ecomm_pagetype: "basket", cart_quantity: 1, cart_total: "600.00", ecommerce: { value: "600.00", currency: "USD", items: [ { index: 0, item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", item_category: "Gifts" } ] }, cart_state: { cart_id: "hWNG6ZHQzv1RzrB68CPNIQzL", cart_quantity: 1, cart_value: "600.00", currency: "USD", lines: [ { item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", line_total_price: "600.00" } ] }, user_data: { city: "Seattle", country: "USA", customer_id: "12349878", email: "test@stape.io", first_name: "Stape", last_name: "Stape", phone: "+18012345671", region: "Washington", street: "Judkins Park", zip: "10000" } Begin checkout event: "begin_checkout_stape", ecomm_pagetype: "basket", cart_quantity: 1, cart_total: "600.00", ecommerce: { items: [ { index: 0, item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", item_category: "Gifts" } ], currency: "USD", value: "600.00" }, cart_state: { cart_id: "hWNG6ZHQzv1RzrB68CPNIQzL", cart_quantity: 1, cart_value: "600.00", currency: "USD", lines: [ { item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", line_total_price: "600.00" } ] }, user_data: { city: "Seattle", country: "USA", customer_id: "12349878", email: "test@stape.io", first_name: "Stape", last_name: "Stape", phone: "+18012345671", region: "Washington", street: "Judkins Park", zip: "10000" } Payment info event: "payment_info_stape", ecomm_pagetype: "basket", ecommerce: { cart_quantity: 1, cart_total: "600.00", value: "600.00", currency: "USD", items: [ { index: 0, item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", item_category: "Gifts" } ] }, cart_state: { cart_id: "hWNG6ZHQzv1RzrB68CPNIQzL", cart_quantity: 1, cart_value: "600.00", currency: "USD", lines: [ { item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", line_total_price: "600.00" } ] }, user_data: { city: "Seattle", country: "USA", customer_id: "12349878", email: "test@stape.io", first_name: "Stape", last_name: "Stape", phone: "+18012345671", region: "Washington", street: "Judkins Park", zip: "10000" } Purchase event: "purchase_stape", ecomm_pagetype: "purchase", user_data: { first_name: "Stape", last_name: "Stape", customer_id: "12349878", country: "USA", street: "Judkins Park", city: "Seattle", zip: "10000", new_customer: true, customer_lifetime_spent: "600.00" }, ecommerce: { currency: "USD", transaction_id: "5937102258459", quote_id: "1234", affiliation: "Stape Test Store", value: "510.00", tax: "0.00", shipping: "0.00", coupon: "TEST10", sub_total: "510.00", discount_amount: "90.00", items: [ { index: 0, item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", item_category: "Gifts" } ] }, cart_state: { cart_id: "hWNG6ZHQzv1RzrB68CPNIQzL", cart_quantity: 1, cart_value: "600.00", currency: "USD", lines: [ { item_id: "9143899914523", item_variant: "485646409345615", item_sku: "SKU-76543281", item_name: "The Collection Snowboard: Hydrogen", quantity: "1", price: "600.00", line_total_price: "600.00" } ] } --- # Overview of Drupal module Source: https://stape.io/helpdesk/documentation/drupal-module-overview Section: Documentation The Stape conversion tracking module for Drupal websites simplifies user and conversion tracking on your website. [Stape’s Drupal module](https://www.drupal.org/project/stape_conversion_tracking_drupal) helps you track your Drupal website using server-side Google Tag Manager. It includes a set of features that simplify setup, enhance your tracking, give you more control, and improve data quality. With this module, you can quickly add a web GTM snippet to any page and enjoy the benefits of server-side tagging for more reliable user and conversion data. ![Stape's Drupal module](https://cdn.stape.io/i/69e0d5db41b63683820383.png) What you get with the Drupal module: Extend cookie lifespan: use the [Cookie Keeper power-up](https://stape.io/helpdesk/documentation/cookie-keeper-power-up) (exclusive to Stape users) to reduce the impact of browser restrictions like Safari’s ITP and keep cookies active for longer. Enrich the dataLayer: include ecommerce events and user data parameters during setup to get more detailed insights. Send webhooks to server GTM: send events like purchases or refunds directly to your server GTM container to track offline actions more accurately. --- # How to set up Drupal module Source: https://stape.io/helpdesk/documentation/how-to-set-up-drupal-module-for-sgtm Section: Documentation Find out how to set up the Drupal module for the server GTM. 1. [Set up the server GTM container](https://stape.io/helpdesk/documentation/create-server-container-in-google-tag-manager) and host it on Stape. 2. To install the module, select the version you need from the [releases page](https://www.drupal.org/project/stape_conversion_tracking_drupal/releases) and use one of the installation options. ![Use one of the installation options for Drupal module](https://cdn.stape.io/i/69e0d71d1a394911994046.png) 3. Configure the module. You will need to configure three sections: General Settings, Data Layer, and Webhooks. 3.1. General Settings section. This section contains all the options for configuring the GTM snippet installation on every page of your Drupal site. Add the following data: Active - turn on the switch to add the GTM snippet to every page on your Drupal website. Web Container ID - add the GTM web container ID (you can find it in your GTM account in the tab Accounts). The format should be the following: GTM-XXXXXXX. Custom Domain - use the subdomain you have created for server-side tracking. It should start with https:// without any extra slashes at the end: https://gtm.example.com If you haven’t configured a custom domain yet, please check [Stape’s guide on subdomain setup](https://stape.io/helpdesk/documentation/add-custom-domain-in-stape). Custom Loader - this is Stape’s power-up used to minimize the impact of ad blockers on your tracking. This option is available only if you use Stape's sGTM hosting and set up the [Custom Loader power-up](https://stape.io/helpdesk/documentation/custom-loader-power-up). To enable this option, [specify your container identifier](https://stape.io/helpdesk/knowledgebase/how-to-find-the-stape-container-identifier) in the Stape admin panel settings. Cookie Keeper - this is Stape’s power-up used to prolong cookie lifetime in Safari and other browsers with ITP. This option is available only if you use Stape's sGTM hosting and set up the [Cookie Keeper power-up](https://stape.io/helpdesk/documentation/cookie-keeper-power-up). Please also make sure to enable [Stape User ID](https://stape.io/helpdesk/documentation/user-id-power-up) in your container power-ups. The User ID power-up creates a persistent, privacy-conscious user identifier and attaches it to each incoming request handled by your sGTM container. ![Drupal module General Settings section](https://cdn.stape.io/i/69e0db12285ac646352093.png) 3.2 Data Layer section. In this section, you can see toggles that enable Data Layer events. With their help, you can enrich the data by incorporating product and user details. You can configure event names to get the _stape suffix to prevent any clashes in GTM. If it’s off, events keep their normal names. Also in this section, you can set the Product Collection Limit. Here you can find a [list of events and their payload, which are added via the app for Drupal](https://stape.io/helpdesk/documentation/drupal-datalayer). ![Drupal module Data Layer section](https://cdn.stape.io/i/69e0db7a64402336349069.png) 3.3 Webhooks section. In this section, you can set up webhooks sending to a specified URL for various events, such as purchases and/or refunds. To enable webhook configuration, turn on the Enable Webhooks switch. After that, provide the GTM Server Container URL and /path where the webhooks should be sent in the format: https://gtm.example.com/data Turn on the appropriate toggles based on the event type - Purchase Webhook and/or Refund Webhook. If you would like to find out more about webhooks and configure them, please check our blog posts: [What are webhooks, webhook servers, and how to use](https://stape.io/blog/webhook-server) [Debug incoming webhooks in Google Tag Manager server preview](https://stape.io/blog/debug-webhooks-google-tag-manager-server) [Server-to-server tracking in server Google Tag Manager](https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager) Click Save configuration. ![Drupal module Webhook section](https://cdn.stape.io/i/69e0dc80d436c390825418.png) 4. Send data from web to server-side Google Tag Manager container. The two most common approaches to this are: [Configuring server-side Google Analytics 4](https://stape.io/helpdesk/documentation/send-data-from-web-to-server-container-in-google-tag-manager#how-to-send-data-from-web-to-server-container-via-google-analytics-4) [Using a Data Tag and Data Client](https://stape.io/helpdesk/documentation/send-data-from-web-to-server-container-in-google-tag-manager#how-to-send-data-from-web-to-server-container-via-data-tag) 5. Configure data tracking within the server Google Tag Manager container. Most popular marketing and analytics [tools offer support for server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking) and provide tags for sGTM. Test Drupal module configuration Verify your configuration on the website To confirm your setup, open any page on your website and access your browser's developer console. Navigate to the Network tab and search for your subdomain. If you see a request returning a 200 status code, your configuration is working correctly. ![Verifying Drupal module configuration on the website](https://cdn.stape.io/i/69e0deae81910097444096.png) Debugging triggered events in GTM Debugging events in GTM for a Drupal website follows the same process as with any other platform. To verify that your configured dataLayer events are being triggered, launch the GTM container in preview mode. Then, perform the necessary actions on your site (e.g., adding a product to the cart) and check if the corresponding tags are firing in GTM. ![Debugging Triggered Events in GTM](https://cdn.stape.io/i/69e0ded5d177a995367719.png) --- # Shopware extension dataLayer Source: https://stape.io/helpdesk/documentation/shopware-extension-datalayer Section: Documentation In this article, you will find the list of dataLayer events and their payload that the Stape’s Conversion Tracking extension for Shopware generates. In this article, you will find the list of dataLayer events and their payload that the Stape’s Conversion Tracking extension generates. Please note the dataLayer events are part of the app configuration - for the detailed guide, see the article on how to set up the [Stape Conversion Tracking extension for Shopware](https://stape.io/helpdesk/documentation/how-to-set-up-shopware-extension-for-sgtm). View collection event: "view_collection_stape", ecomm_pagetype: "category", ecommerce: {   item_list_id: "0189a7b1c2d34e56f7a8b9c0d1e2f3a4",   currency: "USD",   item_list_name: "Products",   items: [     {       imageURL: "https://your-shopware-store.com/media/gift_card.png",       index: "1",       item_brand: "Snowboard Vendor",       item_category: "Gifts",       item_id: "SW10001",       item_name: "Gift Card",       price: 10.00     },     {       imageURL: "https://your-shopware-store.com/media/snowboard_wax.png",       index: "2",       item_brand: "Stape Test Store",       item_category: "Gifts",       item_id: "SW10002",       item_name: "Selling Plans Ski Wax",       price: 24.95     }   ] }, user_data: {   city: "Seattle",   country: "USA",   customer_id: "12349878",   email: "test@stape.io",   first_name: "Stape",   last_name: "Stape",   phone: "+18012345671",   region: "Washington",   street: "Judkins Park",   zip: "10000" } Search submitted Fired on the search results page (Search controller, search action). event: "search_submitted_stape", ecomm_pagetype: "other", ecommerce: {   search_term: "snowboard",   currency: "USD",   items: [     {       imageURL: "https://your-shopware-store.com/media/hydrogen_snowboard.jpg",       item_brand: "Hydrogen Vendor",       item_id: "SW10003",       item_name: "The Collection Snowboard: Hydrogen",       price: 600,       quantity: 1     }   ] }, user_data: {   city: "Seattle",   country: "USA",   customer_id: "12349878",   email: "test@stape.io",   first_name: "Stape",   last_name: "Stape",   phone: "+18012345671",   region: "Washington",   street: "Judkins Park",   zip: "10000" } View item event: "view_item_stape", ecomm_pagetype: "product", ecommerce: {   currency: "USD",   value: 600,   items: [     {       imageURL: "https://your-shopware-store.com/media/hydrogen_snowboard.jpg",       item_brand: "Hydrogen Vendor",       item_category: "Gifts",       item_id: "SW10003",       item_name: "The Collection Snowboard: Hydrogen",       price: 600,       quantity: 1     }   ] }, user_data: {   city: "Seattle",   country: "USA",   customer_id: "12349878",   email: "test@stape.io",   first_name: "Stape",   last_name: "Stape",   phone: "+18012345671",   region: "Washington",   street: "Judkins Park",   zip: "10000" } Add to cart event: "add_to_cart_stape", ecomm_pagetype: "product", ecommerce: {   currency: "USD",   value: 600,   items: [     {       imageURL: "https://your-shopware-store.com/media/hydrogen_snowboard.jpg",       item_brand: "Hydrogen Vendor",       item_category: "Gifts",       item_id: "SW10003",       item_name: "The Collection Snowboard: Hydrogen",       price: 600,       quantity: 1     }   ] }, user_data: {   city: "Seattle",   country: "USA",   customer_id: "12349878",   email: "test@stape.io",   first_name: "Stape",   last_name: "Stape",   phone: "+18012345671",   region: "Washington",   street: "Judkins Park",   zip: "10000" } Remove from cart event: "remove_from_cart_stape", ecomm_pagetype: "product", ecommerce: {   currency: "USD",   value: 600,   items: [     {       imageURL: "https://your-shopware-store.com/media/hydrogen_snowboard.jpg",       item_id: "SW10003",       item_name: "The Collection Snowboard: Hydrogen",       price: 600,       quantity: 1     }   ] }, user_data: {   city: "Seattle",   country: "USA",   customer_id: "12349878",   email: "test@stape.io",   first_name: "Stape",   last_name: "Stape",   phone: "+18012345671",   region: "Washington",   street: "Judkins Park",   zip: "10000" } View cart event: "view_cart_stape", ecomm_pagetype: "basket", ecommerce: {   cart_total: 600,   currency: "USD",   cart_quantity: 1,   value: 600,   items: [     {       imageURL: "https://your-shopware-store.com/media/hydrogen_snowboard.jpg",       item_id: "SW10003",       item_name: "The Collection Snowboard: Hydrogen",       price: 600,       quantity: 1     }   ] }, user_data: {   city: "Seattle",   country: "USA",   customer_id: "12349878",   email: "test@stape.io",   first_name: "Stape",   last_name: "Stape",   phone: "+18012345671",   region: "Washington",   street: "Judkins Park",   zip: "10000" } Begin checkout event: "begin_checkout_stape", ecomm_pagetype: "basket", ecommerce: {   value: 600,   currency: "USD",   items: [     {       imageURL: "https://your-shopware-store.com/media/hydrogen_snowboard.jpg",       item_id: "SW10003",       item_name: "The Collection Snowboard: Hydrogen",       price: 600,       quantity: 1     }   ] }, user_data: {   city: "Seattle",   country: "USA",   customer_id: "12349878",   email: "test@stape.io",   first_name: "Stape",   last_name: "Stape",   phone: "+18012345671",   region: "Washington",   street: "Judkins Park",   zip: "10000" } Add shipping info event: "add_shipping_info_stape", ecomm_pagetype: "basket", ecommerce: {   value: 600,   currency: "USD",   items: [     {       imageURL: "https://your-shopware-store.com/media/hydrogen_snowboard.jpg",       item_id: "SW10003",       item_name: "The Collection Snowboard: Hydrogen",       price: 600,       quantity: 1     }   ] }, user_data: {   city: "Seattle",   country: "USA",   customer_id: "12349878",   email: "test@stape.io",   first_name: "Stape",   last_name: "Stape",   phone: "+18012345671",   region: "Washington",   street: "Judkins Park",   zip: "10000" } Purchase event: "purchase_stape", ecomm_pagetype: "purchase", ecommerce: {   coupon: "test",   currency: "USD",   discount_amount: 90.00,   shipping: 0,   sub_total: 510,   tax: 0,   transaction_id: "SW-5937102258459",   value: 510,   items: [     {       imageURL: "https://your-shopware-store.com/media/hydrogen_snowboard.jpg",       item_id: "SW10003",       item_name: "The Collection Snowboard: Hydrogen",       price: 600,       quantity: 1     }   ] }, user_data: {   city: "Seattle",   country: "USA",   customer_id: "12349878",   email: "test@stape.io",   first_name: "Stape",   last_name: "Stape",   phone: "+18012345671",   region: "Washington",   street: "Judkins Park",   zip: "10000" } --- # How to set up Odoo CMS app Source: https://stape.io/helpdesk/documentation/how-to-set-up-odoo-app-for-sgtm Section: Documentation Find out how to set up the Stape Conversion Tracking app for Odoo. This guide explains how to configure the Stape Conversion Tracking app for Odoo. The app automatically adds a web Google Tag Manager (GTM) snippet across your website, ensuring consistent tracking on all pages. It plays a key role in setting up server-side tracking for Odoo stores, helping you collect more accurate and reliable data. How to configure the Stape Conversion Tracking app for Odoo 1. Install the [Stape Conversion Tracking app for Odoo](https://apps.odoo.com/apps/modules/19.0/gtm_server_side) from the Odoo app store. Click on “Deploy on Odoo.sh” → Sign in to your GitHub account and install the app. ![Stape Conversion Tracking app for Odoo](https://cdn.stape.io/i/69de435419faf375601365.png) To configure the app after installation, open the Website module. ![To configure the app after installation, open the Website module.](https://cdn.stape.io/i/69de4398af863708604570.png) Then click on Configuration → Settings → scroll to find Stape Conversion Tracking app → click Configure Stape Conversion Tracking. ![Then click on Configuration → Settings → scroll to find Stape Conversion Tracking app → click Configure Stape Conversion Tracking.](https://cdn.stape.io/i/69de44093eac4139266864.png) 2. Configure the app. 2.1 General tab. Insert GTM snippet - check the box to add the GTM tracking snippet on all pages of your Odoo website. Specify the GTM web container ID. The format should be the following: GTM-XXXXXXX. Here’s [how to find the web Google Tag Manager (GTM) ID](https://help.stape.io/hc/en-us/articles/20770012801821-How-to-find-Web-Google-Tag-Manager-GTM-ID). Add custom domain - select this option if you’ve configured a custom domain to improve data protection against ad blockers and browser restrictions. If you don’t yet have a subdomain, follow the instructions to [add a custom domain to your sGTM container](https://stape.io/blog/how-to-add-a-custom-domain-to-the-google-tag-manager-server-container). Add the domain URL - follow the detailed instructions on [how to find the server container URL for sGTM container](https://stape.io/helpdesk/knowledgebase/how-to-find-server-container-url-for-sgtm-container) in our guide. The custom domain must be specified in the following format: https://gtm.example.com Add Custom Loader - select the option to increase protection against ad blockers. If the box is checked, add the identifier of your Stape container. For more detailed instructions, follow Stape’s guide on [how to find the Stape container identifier](https://help.stape.io/hc/en-us/articles/9697466601373-How-to-find-the-Stape-container-identifier). Cookie Keeper - select the option to prolong cookie lifetime in Safari and other browsers with ITP. The option is available if you have [Cookie power-up configured](https://stape.io/helpdesk/documentation/cookie-keeper-power-up). ![General tab](https://cdn.stape.io/i/69de45a52d58e760997109.png) 2.2 Data Layer tab. Use the check boxes in this section to enable Data Layer events. These events allow you to capture richer product and user details, resulting in more comprehensive data collection. Enable the _stape suffix when GTM triggers are configured with the _stape suffix. ![Data Layer tab](https://cdn.stape.io/i/69de47f23be84510681451.png) 2.3 Webhook tab. Set up webhooks to send event data (such as purchases and refunds) to a specified URL. Enter your server container URL and append the path for your sGTM custom domain (e.g., https://sst.example.com/data). Then, enable the toggles for the events you want to track. For more information, see the guides below: [What are webhooks, webhook servers, and how to use them](https://stape.io/blog/webhook-server) [Debug incoming webhooks in Google Tag Manager server preview](https://stape.io/blog/debug-webhooks-google-tag-manager-server) [Server-to-server tracking in server Google Tag Manager](https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager) ![Webhook tab](https://cdn.stape.io/i/69de4811345b0896921733.png) Once done, click “Save”. 3. Set up data delivery to your server Google Tag Manager container. Choose one of the two common methods: [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) [Stape Data Client](https://stape.io/solutions/data-tag-client) 4. Configure server-side tracking for the platforms you use. We’ve created a [list of supported platforms](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). You can set them up manually or [use the Setup Assistant](https://stape.io/blog/setup-assistant-by-stape) to automatically add the necessary tags, triggers, variables, and clients to your GTM containers. ![Configure server-side tracking for the platforms you use](https://cdn.stape.io/i/69de488530e43513055938.png) 5. Debug your setup to ensure everything is working correctly. To verify that your container is loading properly, open any page on your website, launch the browser console, and navigate to the Network tab. Filter requests by your subdomain or tagging server URL. You should see a request similar to the one shown in the screenshot, with a 200 status code, indicating that it loaded successfully. ![Network tab](https://cdn.stape.io/i/69de48dd0e8c5567880319.png) --- # How to set up Shopware extension Source: https://stape.io/helpdesk/documentation/how-to-set-up-shopware-extension-for-sgtm Section: Documentation Find out how to set up the Stape Conversion Tracking extension for Shopware. The guide explains how to configure the Stape Conversion Tracking extension for Shopware. The extension helps embed a web GTM snippet on every page of the site and is a significant part of server-side configuration for Shopware websites. How to configure the Stape Conversion Tracking extension for Shopware 1. Install the [Stape Conversion Tracking extension for Shopware](https://store.shopware.com/en/stape94182518191/stape-conversion-tracking.html) from the Shopware store. Click “Add to cart” → log in to your Shopware account and download the app for free. Note: the extension is currently compatible with 6.6.8.0 - 6.6.10.13 Shopware versions. ![Stape Conversion Tracking extension in Shopware store](https://cdn.stape.io/i/69dcdc61c47db823802337.png) 2. Configure the extension's settings. 2.1 Select the “Sales Channels” you need to configure the extension for from the drop-down list. By default, the extension will be configured for all the sales channels. ![Select the “Sales Channels” you need to configure ](https://cdn.stape.io/i/69dcde2e2848e850459326.png) 2.2 GTM Snippet section. Insert GTM snippet - check the box to automatically add the GTM tracking snippet on all pages of the Shopware shop. Add the GTM web container ID. The format should be the following: GTM-XXXXXXX. Here’s [how to find the web Google Tag Manager (GTM) ID](https://help.stape.io/hc/en-us/articles/20770012801821-How-to-find-Web-Google-Tag-Manager-GTM-ID). Add custom domain - check the box if you have a custom domain configured for enhanced data protection against ad blockers and browser restrictions. If you don’t have a subdomain, follow the instructions to Add the domain URL - follow the detailed instructions on [how to find the server container URL for sGTM container](https://stape.io/helpdesk/knowledgebase/how-to-find-server-container-url-for-sgtm-container) in our guide. The custom domain must be specified in the following format: https://gtm.example.com Add Custom Loader - check the box to increase protection against ad blockers. And add the identifier of your Stape container. For more detailed instructions, follow Stape’s guide on [how to find the Stape container identifier](https://help.stape.io/hc/en-us/articles/9697466601373-How-to-find-the-Stape-container-identifier). Cookie Keeper - check the box to prolong cookie lifetime in Safari and other browsers with ITP. The option is available if you have [Cookie power-up configured](https://stape.io/helpdesk/documentation/cookie-keeper-power-up). ![GTM Snippet section](https://cdn.stape.io/i/69dcdf2c89c80332990286.png) 2.3 Data Layer section. Use the toggles in this section to activate Data Layer events. These events help you capture additional product and user details for more complete data. Find a list of [Data Layer events and their payload that the Stape’s Conversion Tracking extension generates](https://stape.io/helpdesk/documentation/shopware-extension-datalayer) here. ![Data Layer section](https://cdn.stape.io/i/69dcdf7ee624c484152719.png) 2.4 Webhooks section. Configure webhooks to send data to a specific URL for events like purchases and refunds. Enter your [server container URL](https://stape.io/helpdesk/documentation/find-server-container-url) and add the path for your sGTM custom domain (e.g., [https://sst.example.com/data](https://sst.example.com/data)). Toggle the fields for the events you need to track. For more details, check our guides on using and debugging webhooks below: [What are webhooks, webhook servers, and how to use them](https://stape.io/blog/webhook-server) [Debug incoming webhooks in Google Tag Manager server preview](https://stape.io/blog/debug-webhooks-google-tag-manager-server) [Server-to-server tracking in server Google Tag Manager](https://stape.io/blog/server-to-server-tracking-in-server-google-tag-manager) ![Webhooks section](https://cdn.stape.io/i/69dce0175982a058580641.png) Click “Save”. 3. Configure sending data to the server Google Tag Manager container. Select one of the two popular ways to do it: [setting up server-side Google Analytics 4](https://stape.io/blog/set-up-ga4-server-side-tracking) [Stape Data Client](https://stape.io/solutions/data-tag-client) 4. Set up server-side tracking for the platforms you use. Configure server-side tracking for the platforms you need. We have prepared a [list of platforms that support server-side tracking](https://stape.io/blog/what-platforms-support-gtm-server-side-tracking). You can configure them manually or [use Setup Assistant](https://stape.io/blog/setup-assistant-by-stape) to automatically add all the required tags/triggers/variables/clients in your GTM containers. ![Set up server-side tracking for the platforms you use](https://cdn.stape.io/i/69dce0d741f08861100065.png) 5. Debug the configuration. Verify that your container is properly loaded on the site. To do this, open any page on your website, launch the browser console, and go to the Network tab. Then filter requests by your subdomain or tagging server URL. You should see a request similar to the one in the screenshot, with a 200 status code, confirming it loaded successfully. ![Debug the configuration](https://cdn.stape.io/i/69dce169bd59a414435233.png) --- # How to fix the ERR_NAME_NOT_RESOLVED error Source: https://stape.io/helpdesk/documentation/how-to-fix-err-name-not-resolved Section: Documentation Learn how to fix the ERR_NAME_NOT_RESOLVED error and what may cause it during container loading. This error appears only in the browser console during container loading. It usually indicates a problem with your subdomain configuration. ![ERR_NAME_NOT_RESOLVED error](https://cdn.stape.io/i/69c15d3875462146100985.png) Solution: Check whether your subdomain works correctly and verify your DNS records and domain settings. --- # How to fix the ERR_CERT_COMMON_NAME_INVALID error Source: https://stape.io/helpdesk/documentation/how-to-fix-err-cert-common-name-invalid Section: Documentation Learn how to fix the ERR_CERT_COMMON_NAME_INVALID error and what may cause it when configuring security policies. This error may appear when configuring security policies. ![ERR_CERT_COMMON_NAME_INVALID error](https://cdn.stape.io/i/69c15c5236604135599915.png) The issue is typically caused by incorrect security policy configuration. The error is visible only in the browser console, near CORS/CSP rules, and the client may fail to load due to restrictions. Solution: Check and adjust your security policy settings. --- # How to fix the ERR_CONNECTION_CLOSED error Source: https://stape.io/helpdesk/documentation/how-to-fix-err-connection-closed Section: Documentation Learn how to fix the ERR_CONNECTION_CLOSED error and what may be causing it. The ERR_CONNECTION_CLOSED error means that the connection between your browser and the website server was unexpectedly interrupted. ![ERR_CONNECTION_CLOSED error](https://cdn.stape.io/i/69c15aefedf0c219189608.png) Common causes include: Network issues. Browser cache problems. VPN or proxy usage. Aggressive firewall settings. Solution: Restart your router. Switch internet sources. Clear the browser cache. Disable VPN/proxy. --- # How to fix the ERR_CERT_AUTHORITY_INVALID error Source: https://stape.io/helpdesk/documentation/how-to-fix-err-cert-authority-invalid Section: Documentation Learn how to fix the ERR_CERT_AUTHORITY_INVALID error when configuring Own CDN subdomain, and what causes it. This error usually appears when configuring an Own CDN subdomain. It happens due to incorrect rule configuration and a missing SSL setup. ![ERR_CERT_AUTHORITY_INVALID error](https://cdn.stape.io/i/69c1597903a76086781217.png) Solution: Check your configuration and follow [the official documentation on Own CDN](https://stape.io/helpdesk/documentation/own-cdn). Alternatively, you can use [Stape CDN](https://stape.io/helpdesk/documentation/stape-global-cdn) or [Disabled CDN](https://stape.io/helpdesk/documentation/disabled-cdn). Please note that when using Own CDN, Stape does not issue certificates - it can only verify whether they exist. --- # How to fix Cloudflare 1014 and 1015 errors Source: https://stape.io/helpdesk/documentation/how-to-fix-cloudflare-1014-1015-error Section: Documentation Learn how to fix errors 1014 and 1015 in Cloudflare, and what causes errors in verification. In some cases, when adding a subdomain, verification may fail and you may see this error when opening the subdomain: ![Cloudflare 1014 error](https://cdn.stape.io/i/69c157c2af6c7844116062.png) This happens when a subdomain used with Stape CDN is blocked due to suspected violations, fraud, or phishing activity. Sometimes the issue may appear after configuring data routing for the Meta CAPI Gateway. Solution: (Temporary fix while you’re fixing the issue) For server GTM containers where this happens on a custom CDN domain (i.e., load.ss.example.com), we recommend temporarily generating the loader code using the standard custom domain without CDN (i.e., ss.example.com). Currently, you can generate and use the custom loader without the CDN loading domain part. (Real fix) The easiest solution is to create a subdomain with a different name. If that does not help, check whether your domain is blocked. If it is, contact Cloudflare support for clarification or create a new subdomain. ![Banned domain on Cloudflare](https://cdn.stape.io/i/69c1583ebb3da461318906.png) --- # How to fix the SSL error Source: https://stape.io/helpdesk/documentation/how-to-fix-ssl-error Section: Documentation Learn how to fix the Stape SSL error, causing the container to stay in the "Waiting for config" state. Sometimes, users postpone configuring their sGTM container on Stape, leaving it in the Waiting for config state. This means the container is not running yet. !["Waiting for config” state](https://cdn.stape.io/i/69c1563ccd8bf547178425.png) In this state, you may encounter the ERR_CERT_AUTHORITY_INVALID error when setting up a subdomain. Until the container status changes to Running, the SSL certificate for your subdomain will not be issued (when using Stape CDN or Disabled CDN). ![ERR_CERT_AUTHORITY_INVALID error ](https://cdn.stape.io/i/69c15691844dc242260210.png) Solution: Finish the configuration of your sGTM container on Stape so it moves to the Running state. After some time, the SSL certificate will be issued automatically. --- # How to fix NS_ERROR_FAILURE Source: https://stape.io/helpdesk/documentation/how-to-fix-ns-error-failure Section: Documentation Learn how to fix NS_ERROR_FAILURE, what causes it, and how its related to Google Ads configuration. This error is usually related to Google Ads configuration. It occurs when an invalid Google Ads ID is used in the tag, which causes a 404 error, since Google cannot find a resource with that ID. ![NS_ERROR_FAILURE](https://cdn.stape.io/i/69c146288e0e8382200268.png) Solution: Verify that you are using the correct Google Ads ID. --- # How to fix the Same-origin 404 error Source: https://stape.io/helpdesk/documentation/how-to-fix-same-origin-404-error Section: Documentation Learn how to fix the Same-origin 404 error, and what causes this type of 404 error. When configuring the same-origin setup, you may encounter this type of 404 error on your website: ![Error 404 during same-origin setup ](https://cdn.stape.io/i/69c1400e293bd307715151.png) The error may vary between sites, but it typically appears as a 404 page not found error on your domain. Solution: Сheck your same-origin configuration - thіs issue usually occurs due to incorrect worker settings or DNS rules in your DNS provider. --- # How to fix the error Loader 404 (Not Found) Source: https://stape.io/helpdesk/documentation/how-to-fix-loader-404-not-found Section: Documentation Learn how to fix the Loader 404 error while loading gtag.js, and what causes Loader 404 (Not Found) Sometimes you may see a 404 error while loading gtag.js, while GTM loads without errors. ![Loader 404 (Not Found) error ](https://cdn.stape.io/i/69c13c10e2ba7510740357.png) This may indicate: A problem with the generated code. A problem with the GA4 property. Solution: Try checking the code and testing with another GA4 ID. If the problem persists, contact Google support. --- # How to fix 500 INTERNAL SERVER ERROR on Stape Source: https://stape.io/helpdesk/documentation/how-to-fix-500-internal-server-error-stape Section: Documentation Learn how to fix 500 INTERNAL SERVER ERROR on Stape and what causes the platform to load incorrectly. Sometimes the system may experience cache issues, which can prevent the platform from loading correctly, causing a 500 error. ![500 INTERNAL SERVER ERROR](https://cdn.stape.io/i/69c1069b8093b295822122.png) Solution: First, check whether the issue is related to caching by opening the platform in incognito mode. Alternatively, wait a few minutes and try again. If the error persists, contact the [Stape support team](https://stape.io/helpdesk/submit-request). --- # How to fix error 500 (tag issue) Source: https://stape.io/helpdesk/documentation/how-to-fix-error-500 Section: Documentation Learn how to fix error 500 and what causes this tag issue. A 500 error may appear when a tag modifies the response code, for example, if there is an error in one of the tags. Like when you send requests with a preview header while debugging. ![Error 500 in GTM Preview](https://cdn.stape.io/i/69c100d62f0cb294604319.png) Solution: Review the tag settings, as this usually indicates that the platform the tag is sending data to does not accept the current configuration or cannot process the request. --- # How to fix ERR_BLOCKED_BY_ORB (network) Source: https://stape.io/helpdesk/documentation/how-to-fix-err-blocked-by-orb Section: Documentation Learn how to fix the error ERR_BLOCKED_BY_ORB in network, and why some requests get blocked by browser tracking prevention. This error occurs when a browser security mechanism prevents the GTM script from loading. The browser expects JavaScript (Content-Type: application/javascript), but the server returns non-script content (such as an HTML error page or empty placeholder), so Chrome blocks the response. With server-side GTM, this is usually caused by: 1. Ad blockers & privacy tools. DNS-level blockers intercept the standard /gtm.js request and return an empty or HTML response, which the browser then blocks as invalid script content. 2. The tagging server returning a non-script response. The server responds with an HTML page instead of JavaScript. ![ERR_BLOCKED_BY_ORB error](https://cdn.stape.io/i/69c0fed16124b218653886.png) Solution: 1. Set up a [Custom Loader](https://stape.io/helpdesk/documentation/custom-loader-power-up) by Stape. Instead of the standard /gtm.js path, the script loads through your own subdomain with a randomized path. Ad blockers no longer recognize it as a tracking script, and the ORB error is resolved. 2. Check what your tagging URL actually returns. Open the container script URL directly in the browser; if you see an HTML page or an error instead of JavaScript, check that your CDN manager isn't challenging the request. --- # How to fix ERR_BLOCKED_BY_CLIENT (network & console) Source: https://stape.io/helpdesk/documentation/how-to-fix-err-blocked-by-client Section: Documentation Learn how fix the error ERR_BLOCKED_BY_CLIENT in network and console, as well as what causes this error This error usually appears when a request is blocked by something on the client side, such as Chrome developer tools or an ad-blocking extension. ![ERR_BLOCKED_BY_CLIENT error in console](https://cdn.stape.io/i/69c0fd55efb94013309894.png) Solution: First, check whether the error appears in Incognito mode and in another browser. Also, try disabling all browser extensions and check again. In most cases, this issue is resolved by disabling the blocking plugin or clearing the browser cache. --- # How to fix the “Domain can’t be resolved” error? Source: https://stape.io/helpdesk/documentation/domain-cant-be-resolved Section: Documentation Learn how to fix the “Domain can’t be resolved” error by checking DNS records and verifying configuration with Google Dig. Sometimes, when attempting to deploy an sGTM container on Stape, you may see the error “Domain can’t be resolved”. !["Domain can't be resolved" error](https://cdn.stape.io/i/69bd4784615f1086863637.png) Most often, this is an error on the side of your DNS provider. Solution: Make sure your DNS records are added correctly in your DNS provider’s dashboard. Check if the DNS records are visible online using [Google Digtool](https://toolbox.googleapps.com/apps/dig/). If the record is not displayed, this indicates that the problem lies with your DNS provider. Contact their support service to resolve this issue. If the record is displayed but Stape still can not resolve the domain, feel free to contact [Stape support](https://stape.io/helpdesk/submit-request) and we will help you resolve this issue. --- # Meta connection Source: https://stape.io/helpdesk/documentation/meta-connection Section: Documentation Automatically send first-party data to Meta, improve audience match rates, and eliminate hours of manual CSV uploads. The Meta Connection is a solution that automates data flow between your sGTM container and Meta Custom Audiences. It is designed to work with the Meta Custom Audiences tag by Stape. Sync your audiences effortlessly and stop relying on static CSV lists! To get started, [log in to your Stape account](https://stape.io/login), open your container, navigate to the Connections tab, and click Sign in next to Meta using an account with the appropriate Ads permissions. ℹ️ Available to all Stape users with a Pro plan or higher. ![Sign in Meta Connection](https://cdn.stape.io/i/698f399544f5e273252905.png) How it works Once connected, Meta Connection automatically syncs your first-party data from your Stape container to Meta Ads in real time. No CSV uploads or manual steps are needed - data is sent or removed instantly, keeping your audiences up-to-date. Benefits of Meta Connection Eliminate manual work with CSV files. Automate data sending to your Meta Custom Audiences. Ensurethat data is sent or removed instantly, providing an automated synchronization and freeing up hours of manual work, which could be spent on formatting and uploading CSV files. Keep your Meta Custom Audiences up-to-date. With real-time syncing between your Stape container and Meta Ads accounts, your audiences show the latest user data. This ensures your ads are targeting the right users, improving campaign performance. Improve Audience Match Rate. By using the Meta Connection to send first-party data directly from the server, you reduce the impact of browser limitations and ad blockers that often impact user identifiers. Using precise user IDs results in a higher Audience Match Rate within Meta Ads. Use a simple, no-code setup. Instead of hiring a developer to build a custom API integration, you can sign in to Meta directly through the Stape interface. This OAuth connection allows you to reduce the time and money spent on processing the automation. Ready to scale your retargeting? Sign in to your Meta Connection in the Stape admin panel now - it’s free and takes less than five minutes! Useful links: [Meta Custom Audiences guide: how to create and automate](https://stape.io/blog/facebook-custom-audiences). [Meta Customer Match tag by Stape](https://stape.io/solutions/meta-custom-audience-tag). [Meta/Facebook Custom Audiences by Stape in the GTM Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/meta-custom-audiences-tag). --- # Google Data Manager API connection Source: https://stape.io/helpdesk/documentation/google-data-manager-api-connection Section: Documentation Learn about Google Data Manager API Connection that can be activated in Stape's admin. Google Data Manager API Connection is a solution that allows you to access Data Manager API via Stape. Data Manager API simplifies the process of configuring customer lists in Google Ads and sending audience data. Using the Google Data Manager API Connection along with the [Google Data Manager API Customer Match tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-customer-match-tag) or [CRM/CMS app](https://stape.io/apps) for WooCommerce, Shopify, HighLevel CRM, or HubSpot, you can easily send audience data to Google Ads. Google Data Manager API Connection can be found in the “Connection” tab of your Stape admin. Click “Sign in” for Google Data Manager API and use a Google account with access to the Google Ads account for which you want to configure the Customer List. ![Google Data Manager API Connection](https://cdn.stape.io/i/69b2bfe8846bb839873135.png) Useful links: [How to set up automatic Google Customer Match Lists](https://stape.io/blog/customer-list-google-ads) [Google Data Manager API Customer Match tag](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/google-customer-match-tag) --- # Google Ads connection Source: https://stape.io/helpdesk/documentation/google-ads-connection Section: Documentation Learn about Google Ads Connection that can be activated in Stape's admin. Google Ads Connection, developed by Stape, is an easy-to-use feature that simplifies the setting up of [Google Ads offline conversions tag](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm). With the help of Google Ads Connection, the oAuth tokens will be processed on our side. So, your configuration process will include only connecting this feature and setting up a tag according to your needs. You can find the Google Ads Connection in your Stape admin account's “Connections” tab. Click “Sign in” for Google Ads and use your Google account that has access to the Google Ads account you do the setup for. ![google ads connection](https://cdn.stape.io/i/69b2bf4685c0f824720015.png) Useful links: [How to set up Google Ads offline conversions tag](https://stape.io/blog/google-ads-offline-conversion-using-server-gtm) [Google Ads offline conversions tag in Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/gads-offline-conversion-tag) --- # Google Sheets connection Source: https://stape.io/helpdesk/documentation/google-sheets-connection Section: Documentation Learn about Google Sheets Connection that can be activated in Stape's admin. Google Sheets Connection is a handy solution for writing data from server GTM to Google Sheets. After connecting Stape’s feature, all the oAuth tokens will be handled on our side. So, in your configuration process, you will be able to skip the steps of Google Sheets Authentication and create a Firebase account. You can find the Google Sheets Connection in your Stape admin account's “Connections” tab. Click “Sign in” for Google Sheets and use your Google account. ![google sheets connection](https://cdn.stape.io/i/69b2be492782d152306014.png) Useful links: [How to set up Google Sheets tag](https://stape.io/blog/write-data-from-server-google-tag-manager-to-google-sheets) [Google Sheets tag in Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/spreadsheet-tag) --- # Microsoft Advertising connection Source: https://stape.io/helpdesk/documentation/microsoft-advertising-connection Section: Documentation Learn about Microsoft Advertising Connection that can be activated in Stape's admin. Microsoft Advertising Connection is the solution that allows Stape to handle your oAuth tokens for the Microsoft platform. With its help, Microsoft authentication is fully managed on the Stape side, which significantly eases the process of setting the [Microsoft Ads Offline Conversion tag](https://stape.io/solutions/microsoft-ads-offline-conversion-tag). Additionally, with Microsoft Advertising Connection, there is no longer a need to create an app in Azure. You can find the Microsoft Advertising Connection in the “Connections” tab of your Stape admin account. Click “Sign in” for Microsoft Advertising and use a Microsoft account with access to the Microsoft Ads account for which you want to configure the Bing Ads Offline conversion tag. ![microsoft connection](https://cdn.stape.io/i/69b2bd882eef3192184663.png) Useful links: [Microsoft Ads Offline Conversion tag on GitHub](https://github.com/stape-io/microsoft-ads-offline-conversion-tag). [Microsoft Ads Offline Conversion tag in Template Gallery.](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/microsoft-ads-offline-conversion-tag) --- # Custom domain for sGTM Source: https://stape.io/helpdesk/documentation/custom-domain-options-for-sgtm Section: Documentation Learn about domains section in Stape account and how to set tagging server URLs. Domains section allows you to manage your tagging server URLs in sGTM, including the option to configure custom domains. ![Custom domain options for sGTM](https://cdn.stape.io/i/69b2adaa6c40b243194117.png) Domain name: this is the URL used for your tagging server. It's where the container is hosted. You can set up a custom subdomain for your container here for better branding or control over your server setup. CDN: indicates whether the content delivery network (CDN) is enabled or disabled for the domain. A CDN helps improve the speed and reliability of your server by distributing content across various locations. Related: [Stape Global CDN](https://stape.io/helpdesk/documentation/stape-global-cdn) [Own CDN](https://stape.io/helpdesk/documentation/own-cdn) [Disabled CDN](https://stape.io/helpdesk/documentation/disabled-cdn)https://stape.io/helpdesk/documentation/own-cdnhttps://stape.io/helpdesk/documentation/stape-global-cdn Type: this indicates the DNS record type, for example, CNAME. CNAME records map one domain name to another, and in this case, it links the custom domain to the Stape server. Related: [How to configure DNS records](https://stape.io/helpdesk/documentation/guidelines/dns-configuration) Host: the host domain for your tagging server URL. Value: the destination domain linked to the CNAME record. This shows where your custom domain is pointing. Custom domain configuration options: ![Custom domain configuration options:](https://cdn.stape.io/i/69b2b28da91d1214068171.png) Read more on [using a subdomain.](https://stape.io/helpdesk/documentation/add-custom-domain-in-stape) Read more on [using the same origin.](https://stape.io/helpdesk/documentation/guidelines/how-to-use-same-origin) --- # Container settings and API key Source: https://stape.io/helpdesk/documentation/container-settings-and-info Section: Documentation Here you can find information on container settings in Stape admin. Container settings show key details about your container, including its unique ID, configuration, API key, and server location. ![container settings](https://cdn.stape.io/i/69b2ad03bf645491692297.png) Name: this is the name of your container. It helps you identify the specific container within your Stape account. You can edit it any time. Container config: this is a configuration string that defines how your container is set up. You can edit it any time. Related: [How to find Container Configuration for sGTM?](https://stape.io/helpdesk/knowledgebase/how-to-find-container-configuration-for-sgtm) sGTM container ID: this ID uniquely identifies your server-side Google Tag Manager container. It's used to reference and manage the container. Container identifier: a unique identifier assigned to your container. This helps in distinguishing between different containers, especially if you have multiple containers in your Stape account. Container API key: this is an API key associated with your container. It allows you to interact programmatically with the container via the API. It is hidden by default for security reasons, but can be shown if needed. Server location: this indicates the geographical location where your server is hosted. Related: [Server zones for sGTM](https://stape.io/helpdesk/documentation/sgtm-server-locations-zones) [Multi-zone sGTM container hosting](https://stape.io/helpdesk/documentation/multi-zone-sgtm-container-hosting) --- # How to debug sGTM configuration using Preview Mode Source: https://stape.io/helpdesk/documentation/preview-debugging-web-server-gtm-containers Section: Documentation Learn how to debug web and server GTM preview step by step. Understand events, requests, clients, and how to find tracking issues fast. This guide explains how to check: - Web GTM Preview: Web event exists: event data from a user’s browser reached your web GTM container. Web tag sent: web container passed event data to your server GTM container. - Server GTM Preview: Server received the request: event data reached the server GTM container. Client processed the request: the server container correctly interpreted event data. Server tag sent: the server container passed the outgoing request to the final platform (GA4, Meta, etc.) Before you start 1. Install Google Tag Assistant Google Tag Assistant is Google’s official tool that ensures smooth functioning and accuracy of tags in Google Tag Manager. How to use Google Tag Assistant: Install the [Google Tag Assistant extension](https://chromewebstore.google.com/detail/tag-assistant/kejbdjndbnbjgmefkgdddjlbokphdefk?hl=en) for Chrome. Launch the Preview mode in Google Tag Manager. Once you connect to your website with preview, Tag Assistant will launch automatically. 2. Install Stape GTM Helper If your GTM containers include multiple tags, triggers, and variables, it may be a good idea to use the GTM Helper extension. This is a free Chrome browser extension developed by Stape that makes debugging web and server-side GTM containers easy and intuitive. How to use GTM Helper: Install the [Stape GTM Helper Chrome extension](https://chromewebstore.google.com/detail/stape-gtm-helper/ipjcocdbbjgkailaejllpnmeliblbimn) for Chrome. To configure the extension, open your GTM container and click on the extension’s icon. Launch the Preview mode in Google Tag Manager. You will notice new or updated features, such as the entity filter or tag type coloring. For more information about the extension and its features, check out our [detailed guide on GTM Helper](https://stape.io/helpdesk/documentation/stape-gtm-helper). How to use Preview to debug your sGTM setup 1. Open preview mode in web and server containers Go to [https://tagmanager.google.com/](https://tagmanager.google.com/). Open your ​server GTM container​ → click Preview. In a different browser tab, open your web GTM container → click Preview → enter your website’s URL. This will start the web debug session. Your website will open in a new window with the GTM debug panel active at the bottom. ![Web debug session](https://cdn.stape.io/i/69afeed6c40c4353054706.gif) 2. Trigger a request from your website Perform actions that trigger tags. By simply loading the page, you’ve triggered the page_view event. Other simple possible actions include reloading the page or clicking a button. Such events will show in your debugger. In the web GTM Preview, click on the event. Under Tags Fired, find the tag you configured to send data to your server (e.g., Google Analytics 4 tag). If it fired, it means the tag worked. Next, select the tag and inspect the hit sent - check that it was sent to your server container URL. ![Trigger a request from your website](https://cdn.stape.io/i/69afef33753f9988707293.png) 3. Check incoming requests in the server GTM Preview Go back to the ​server GTM Preview tab​ you opened in the first step. If you see events coming from your website domain, the setup works and requests are successfully reaching your sGTM container hosted on Stape. Click on the incoming request. Check the ​Tags Fired​ tab to see that your server-side tags (like the GA4 tag) have activated. ![Check incoming requests in the server GTM Preview](https://cdn.stape.io/i/69afefa91797d599599512.png) In the fired tag, check the ​Outgoing HTTP Requests​ tab to see the request that your server container successfully sent to Google Analytics. ![Outgoing HTTP Requests​ tab](https://cdn.stape.io/i/69afefec4f28e705029161.png) If you see that outgoing request, it means that the event data has passed from your website, through your server container, and on to the final destination. Common web preview problems Summary (event timeline) The chronological sequence of events detected on the page. ![The chronological sequence of events detected on the page.](https://cdn.stape.io/i/69aff0274d542866921921.png) Common problems: Expected event is missing. Duplicate events are fired. Possible solutions: Check the event’s configuration and trigger in the web GTM container. Check for duplicate scripts or triggers on the page. Tags tab Tags that fired or did not fire for the selected event. ![Tags that fired or did not fire for the selected event.](https://cdn.stape.io/i/69aff075d1f27337759484.png) Common problems: Tags not fired. Possible solutions: Trigger conditions are wrong - check the tag’s configurations. Consent blocked it - check the Consent tab to see more details on which permissions are missing. Variables are missing (for some platforms) - click on the tag and check the section Firing Triggers to learn which. Then check its variables. It will help you find the variables and their values to set up the tag’s trigger correctly. Variables tab Shows what values your variables captured. Pro tip: while the following advice for this tab is correct, it’s best to inspect the variable values of specific tags (in the Tags tab), instead of all variables shown here. The Variables tab shows all of the variables of the container, not all of which will be relevant for each tag. ![Variables tab](https://cdn.stape.io/i/69aff0f5c0c14621264949.png) Common problems: Undefined or wrong value. Keep in mind, this doesn’t always mean there is an issue. For example, an email value will surely be undefined for the steps where the user hasn’t provided it yet, for instance, at the page_view event. So consider what type of event you’re inspecting while deciding whether the lack of value in its variables is an error or not. Possible solutions: Fix the variable’s setup in GTM. Check that the data appears in the Data Layer tab and that its key matches the variable's name. Data Layer tab Shows raw data sent by the website. ![Data Layer tab](https://cdn.stape.io/i/69aff15176dc4515109801.png) Common problems: Data is missing or wrong. Possible solutions: Tags don’t fire - if you can't fire tags in all needed locations on the website, check the variable names on different pages. Data layer push doesn’t work - if you see that variables or events fail to push, you most likely don’t use proper casing for object names or missed quotes. Troubleshooting data layer Problem 1: Data layer push doesn’t work If you see that variables or events fail to push, you most likely don’t use proper casing for object names or missed quotes. Solution: proper casing for object names and quotes Check whether "dataLayer" is in the camel case. Good example: dataLayer.push({'variable_name': 'variable_value'}); Bad example: datalayer.push({'variable_name': 'variable_value'}); Make sure all the variable names are enclosed in quotes. Good example: dataLayer.push({'variable_name': 'variable_value'}); Bad example: dataLayer.push({variable_name': 'variable_value'}); Problem 2: Tags don’t fire Problem 2: Tags don’t fire If you can't fire tags in all needed locations on the website, check the variable names on different pages. Solution: consistent variable names The most frequent mistake is inconsistent casing in the variable names on different pages, so you need to review the names. Good example: // Homepage: dataLayer.push({'variable_name': 'variable_value'}); // Product page: dataLayer.push({'variable_name': 'variable_value'}); Bad example: // Homepage: dataLayer.push({'variable_name': 'variable_value'}); // Product page: dataLayer.push({'variable Name': 'variable_value'}); Consent tab Shows the state of consent for every type of relevant tracking action. ![Consent tab](https://cdn.stape.io/i/69aff30409929209154517.png) Common problems: Consent not provided. Possible solutions: Learn more in our [guide on consent in sGTM tracking](https://stape.io/blog/consent-mode-server-google-tag-manager). Console tab This screen will show you information about any errors that occurred on the side of web GTM, which is extremely useful for debugging. ![Console tab](https://cdn.stape.io/i/69aff35fb1124252758222.png) Common server preview problems Summary (event timeline) Similar to web preview, this section shows all requests that reached your server GTM container. ![Summary (event timeline)](https://cdn.stape.io/i/69aff3942eae4971044044.png) Common problems: Expected event is missing. Possible solutions: Check the event’s configuration and trigger in the server GTM container. If the server preview doesn’t show the event that’s been successfully sent from the web container, it means [the request never reached the server](https://stape.io/helpdesk/documentation/server-gtm-container-is-not-receiving-requests-solution). Request tab This tab shows a lot of information about your request. ![Request tab](https://cdn.stape.io/i/69aff3d3ca405114620922.png) Common problems: No client claimed the request. Missing request headers. Outgoing request returns non-20X status. Request path mismatch. Possible solutions: Client - if no client claimed the request, check the Request URL in the Incoming HTTP Request menu - there may be a request path mismatch or typos in the URL. Incoming HTTP Request - the Request Headers section is useful to verify that the server GTM container correctly enriches requests with necessary data (for instance, the user’s geo data). If some headers are missing, check the tag’s settings on the server container. A good idea is to activate Stape’s [Custom Loader power-up](https://stape.io/solutions/custom-gtm-loader), as it automatically adds a number of geo parameters to the event data. Outgoing HTTP Request - if the response code for the outgoing request is different from 20X, it means there were some issues with processing the request. You can check the response body and read which error exactly stopped the request from processing. Tags tab These are server-side tags sending data to platforms. ![Tags tab](https://cdn.stape.io/i/69aff44943845800727332.png) Common problems: Tag not fired. Possible solutions: Trigger conditions are wrong - check the tag’s configurations. Variables are missing (for some platforms) - click on the tag and check the section Firing Triggers to learn which. Then check its variables to find the variables and their values to set up the tag’s trigger correctly. Variables tab This tab also works the same way as in web GTM preview - it shows what values your variables captured. Pro tip: while the following advice for this tab is correct, it’s best to inspect the variable values of specific tags (in the Tags tab), instead of all variables shown here. The Variables tab shows all of the variables of the container, not all of which will be relevant for each tag. ![Variables tab](https://cdn.stape.io/i/69aff568c6b44147639606.png) Common problems: Undefined or wrong values. Keep in mind, this doesn’t always mean there is an issue. For example, an email value will surely be undefined for the steps where the user hasn’t provided it yet, for instance, at the page_view event. So consider what type of event you’re inspecting while deciding whether the lack of value in its variables is an error or not. Possible solutions: Check the variable’s setup in the server GTM. Event Data tab This screen shows you the structured data that was created by the ​Client​ that processed the incoming request. This for the server container is the same as the Data Layer tab for the web container. ![Event Data tab](https://cdn.stape.io/i/69aff5c4b4700299496841.png) Common problems: Empty or incorrect event data. Possible solutions: You may be sending data to the wrong endpoint.​ For example, you configured your web GTM's Facebook tag to send data to the GA4 path instead of Meta. The GA4 Client will claim the request because the path matches, but it won't understand the Facebook request format, so it produces no event data. If the data exists, but the values are wrong (e.g., price is 0, or product_name is "undefined"), first of all, check your variables in web GTM - the tag in the web container may be pulling from the wrong Data Layer variable, or the variable is misconfigured. Next, check if there are any data formatting issues (the Client failing to interpret the value). For instance, you might be sending a price as a string like "$25.99" instead of a number like 25.99. Console tab This screen will show you information about any errors that occurred on the side of the server GTM. ![Console tab](https://cdn.stape.io/i/69aff682f306a548882916.png) --- # Logger tag Source: https://stape.io/helpdesk/documentation/how-to-configure-logger-tag Section: Documentation Learn how to set up the Logger tag. With it, you can log all event data, request URL and body, add custom information, choose a logging destination, etc. The Logger tag for server-side Google Tag Manager (sGTM) helps track and debug requests sent to your server container. It allows you to log event data, request details, and custom information to Stape, GCP, BigQuery, or other cloud platform logs. This tag also allows logging of POST request bodies, which are not included in logs for GCP or Stape by default. Pre-requisites The tag doesn’t log responses to requests made within sGTM, because it’s not possible for this tag to access them. To achieve this, use the logging section in the tag template. ![Logger tag pre-requisites](https://cdn.stape.io/i/69aee0cec3be6632624772.png) Logger tag setup guide 1. Go to your Google Tag Manager server Container → open the Tags section → click New. 2. In the panel that opens, click Discover more tag types in the Community [Template Gallery](https://tagmanager.google.com/gallery/#/owners/stape-io/templates/logger-tag) → search for Logger → click on the Logger tag by stape-io → click Choose template. ![Logger tag in GTM Template Gallery](https://cdn.stape.io/i/69aee11c69ef5479255171.png) 3. Create a new tag in sGTM → tag type Logger Tag → select if you want to log events only while debugging or always → add event name (static or dynamic) → select what information you want to add to logs → add custom data if needed → add a trigger. ![Create a Logger tag](https://cdn.stape.io/i/69aee1568e496023847116.png) The tag can also be used to log request data into BigQuery or Stape Store. Since the tag provides three destinations - Console, BigQuery, or Stape Store. If you are a Stape Pro or higher plan user and need to save some storage space in the container, opt for [Stape Store](https://stape.io/solutions/stape-store) as the logs destination. BigQuery as Logs Destination is more complex than Console and requires creating a table in BigQuery. Testing the Logger tag Launch the sGTM Preview debugger and test the Logger tag. Once the tag is triggered, go to your sGTM Container → click Logs tab → click Incoming logs → select event type from drop-down menu → click Show logs → click on the required log. You will see the information about requests and can troubleshoot any issues. ![Testing the Logger tag](https://cdn.stape.io/i/69aee21cbce5f532374685.png) For more detailed debugging instructions, refer to our [server-side tracking debugging guide](https://stape.io/helpdesk/documentation/preview-debugging-web-server-gtm-containers). --- # How to fix server GTM container not receiving requests Source: https://stape.io/helpdesk/documentation/server-gtm-container-is-not-receiving-requests-solution Section: Documentation Server GTM preview empty? Fix tracking issues caused by transport URL, GA4 conflicts, or CORS/CSP settings with this troubleshooting guide. When you’ve decided to try server-side tracking and chose Stape hosting (although in the context of this post - it doesn’t matter what hosting provider you have), you first create a server Google Tag Manager (sGTM) container. Next, you connect your subdomain to it. Finally, your server preview is up and running. After all this is done, all that’s left is to configure the tags. You start by studying videos and articles on configuring a platform, making changes to your configuration settings within Google Tag Manager, running the preview, and…nothing happens. Correctly configuring GTM settings is crucial for effective event tracking and data management. Your server preview is empty; the Google Tag Manager container receives no requests. What should you do now? Worry not! We have an answer for you. Spot which requests reach the server and which do not thanks to [Stape GTM Helper](https://stape.io/solutions/stape-gtm-helper?cta=blog_article), so you can find the cause and restore sending faster for your agency clients or your own large GTM containers. Reason 1. Basic issues Sometimes the problem lies in the simplest things that could easily be fixed. Review the following basic issues to check if you’re on top of everything. How to check and fix this 1. Ensure that the preview server functions properly during the setup process. It can only work correctly in the Chrome browser, so make sure you have it updated to the latest version. 2. Check that your server GTM container preview is working. When you run it, you should see something like this. ![server GTM container preview ](https://cdn.stape.io/i/670925486258f091897170.png) 3. In your browser, go to your subdomain and add /healthy to your subdomain link. Everything is set up correctly if you see ‘ok’ on display. ![/healthy in your subdomain URL ](https://cdn.stape.io/i/670925616f1d9422096352.png) 4. Start the server container preview; in the add tab, just go to your server container URL and add /test to it. If you see a ‘400’ error on the page - that’s fine. You should see this request in the preview. ![400 error in sGTM preview ](https://cdn.stape.io/i/670925cbeadf4952935887.png) If the basic checks above pass, technically, everything will be fine with your server container, and the problem with not receiving requests is one of the reasons below. Reason 2. Incorrect transport URL This may seem silly, but it’s worth checking it out first. In the server container URL, make sure to use the exact URL where you are running the sGTM preview to ensure the correct event data is being sent. ![Incorrect transport URL](https://cdn.stape.io/i/6709263c7c1fd223190783.png) How to check and fix this The straightforward solution is to send events to the correct URL or run the preview at the correct URL. It's a simple fix that can make a big difference. Reason 3. GA4 configuration is overwritten GA4 is most often used as a transport mechanism for transferring data from a web GTM container to a server container on the Google Cloud Platform. GCP is necessary for hosting server-side containers due to its robust infrastructure and scalability. The problem here may be that the GA4 measurement ID you use in your tags may already be used elsewhere and re-initialized with other settings, affecting the tagging server setup on the Google Cloud Platform. It could be, for example, some plugin integrations, inline integration of gtag in code, work of anot