Let's level up your eCommerce tracking setup with Stape Store - built-in database for server GTM.
In this session, we’ll show how to use Stape Store to enrich user data, measure Profit in Ad Spent, and build a smarter data setup using server GTM.
☝️ Just practical use cases and a live setup demo.
Speaker:
00:00 - Intro
02:42 - Intro to Stape Store and how it works. Stape’s prebuilt GTM variables to save time and reduce complexity
07:20 - Measure POAS and feed platforms with accurate event data
22:12 - Build your own CDP to enrich event data (bump Match Scores)
37:35 - Get 100% revenue tracking accuracy
1:01:40 - Q&A session
✨ Get the most out of your server-side tracking setup.
There’s no limit on the number of products you can upload. The only restriction is that each individual product (document) must be under 1 MB in size. This limit isn’t about how many records you have — it’s about the size of each record.In most cases, this isn’t an issue unless your product data includes very large fields (e.g. long descriptions or embedded media).
With an upcoming update in Stape Store, you'll be able to load a product feed via a link — allowing prices and profit data to be fetched dynamically. This means you can keep your tracking always up to date, even if product pricing or margins change frequently. For the moment though, you have to sync up manually or via the API.
Any generic scenario where you want to pull data from Store as well as merge it with newly provided data. The basic principle of reStore variable is to both read and right from under a single entity
Yes — you can use any value as the document key, including _fbc, gclid, event_id, or any other parameter that makes sense for your setup. Just make sure the value is unique and consistent enough to retrieve or match the correct data later.
No need to build your own — just install the Stape Shopify app. It automatically generates a complete data layer for you.
✅ And yes — the app is totally free on Shopify.
WooCommerce doesn’t have a direct equivalent to Shopify’s _shopify_y cookie, which is used for long-term user identification. If you need similar functionality (e.g. for tracking across sessions), it’s best to set a custom cookie from the server — this gives you full control and works consistently across platforms.
There’s no technical difference between the two triggers — both work the same way and don’t affect the amount of data passed. We just use the "custom event" trigger for naming clarity and consistency, especially when working with multiple platforms. You can use whichever works best for your setup.
Yes — if you’re able to generate a webhook or export with the required data (like gclid, timestamp, conversion value, etc.), then using Google Ads offline conversions is a great option. It’s especially useful for tracking CRM-based events, phone sales, or delayed purchases that don’t happen directly on the website.
Yes, as long as the gclid was captured and stored (e.g., in your CRM or backend), you can still use it to attribute the conversion via Google Ads offline conversions. Google allows you to upload offline conversions linked to a gclid within a certain attribution window (usually 90 days), even if the original event wasn't tracked on the site.
To avoid duplication, the key is to use event deduplication logic based on a shared event_id. Here’s how it typically works:
1. On the web, send the purchase event with a unique event_id.
2. When the webhook (e.g. from the backend or CRM) sends the same purchase, include the same event_id.
3. Platforms like Meta and Google Ads use this event_id to detect and deduplicate the events — only counting it once.
Best practice:
- Generate the event_id on the client and pass it through to the server/webhook.
- Ensure both web and server-side events include that same ID. If that’s not possible, consider using timing rules or flags to suppress one version (e.g. don’t send the webhook if the web event already fired within X seconds).
Please find Stape Store API details here: https://stape.io/helpdesk/documentation/stape-store-feature#stape-store-api
A webhook can get very close to 100% matching — especially when tracking backend purchase data — but to reach close to 100%, you’ll need:
- Properly storing fbc, fbp, and gclid in cookies or user meta
- Sending enriched user data (email, phone, etc.)
- Using the same event_id between client and webhook for deduplication (if both are used)
- Handling delayed conversions (e.g. status changes like processing → completed)
Happy to hear that! Just click Try for free button and see all the options!
Comments