About Respivox
Respivox is an online store at respivox.com that prices its products in USD and runs a multi-step checkout with address, shipping and payment information steps.
Project overview
Respivox needed Meta, Google Ads and GA4 to see the same shopping journey, from product views and cart changes through checkout and purchase, with Meta receiving every key event from both the browser and the server.
I built the web GTM container around paired Meta Pixel and "Fb Server" GA4 event tags, routed the server copies through a server-side GTM container on Stape, and added GA4 ecommerce and Google Ads conversion and remarketing tags. Each layer was tested in GTM preview, GA4 DebugView, Meta test events and the Google Ads conversions summary.
Goals
- Track PageView, ViewContent, AddToCart, RemoveFromCart, Checkout, Add Payment Info and Purchase in Meta
- Send Meta events from both the browser Pixel and the Conversions API with deduplication
- Record GA4 ecommerce events through a server-side GA4 tag
- Set up Google Ads conversion actions for Purchase, Add to cart and Begin checkout
- Add Google Ads remarketing for product, search, cart, checkout and purchase activity
Challenges
- Browser-only Pixel events are exposed to ad blockers and browser tracking prevention
- Browser and server copies of each Meta event had to be counted only once
- Three platforms (Meta, GA4 and Google Ads) needed one consistent set of events
- A multi-step checkout with address, shipping and payment steps to follow through to purchase
Strategy
Every browser Meta Pixel tag has a matching "Fb Server" GA4 event tag that sends the same interaction to a server-side GTM container on Stape, served from a custom tagging subdomain. In the server container, incoming GA4 requests feed a Conversions API tag, a GA4 ecommerce tag and server-side Google Ads conversion, remarketing and user-provided data tags, while a shared event ID lets Meta deduplicate the browser and server copies.
What I implemented
Web GTM container
- Fb - Browser Meta Pixel tags for PageView, ViewContent, ViewItemList, AddToCart, RemoveFromCart, ViewCart, Checkout, Add Payment Info and Purchase
- Matching Fb Server GA4 event tags for the same events, plus a Fb Server Config Tag on initialization
- Google Ads Google Tag, Conversion Linker and G-Ads conversion tags for Add To Cart, Checkout and Purchase
- Google Ads remarketing tags for View Item, View Item List, Search, Add To Cart, Checkout and Purchase
Meta Pixel & Conversions API
- Fb Conversions API Tag in the server container, triggered by Fb events and the Google Analytics GA4 client
- Server events arriving in Meta as "Manual Setup" next to browser events from "Partner integration"
- PageView, View content, Add to cart, RemoveFromCart and Purchase each received from browser and server with one copy deduplicated
- Purchase carrying value, USD currency, content IDs and content type, with order ID and external ID on the server event
Google Ads conversion tracking
- Purchase, Add to cart and Begin checkout set up as account-default goals, all active
- Purchase as the primary conversion action with a 30-day click-through window
- Add to cart and Begin checkout as secondary actions with a 90-day click-through window
- Server-side G Ads conversion tags, remarketing tags and a Google Ads User-provided Data Event on purchase
GA4 ecommerce tracking
- GA4 Config Tag in the web container and a Google Analytics GA4 - Ecommerce Tracking tag on the server
- Ecommerce events including add_to_cart, RemoveFromCart, begin_checkout and purchase
- Purchase verified in GA4 DebugView during a test order
Stape server infrastructure
- Stape sGTM container running in US Center (Iowa) on the free plan
- Custom analytics subdomain connected through a CNAME record to Stape and marked Ready
Tools used
Results
- Meta, GA4 and Google Ads tags fired on the purchase step in the web GTM preview
- Server GTM preview showed the Conversions API, GA4 ecommerce and Google Ads conversion tags fired on purchase
- PageView, View content, Add to cart, RemoveFromCart and Purchase received in Meta from browser and server, with the server copy deduplicated
- Server Purchase events sent external ID, IP address and user agent as user data keys
- GA4 DebugView recorded the purchase event alongside add_to_cart and begin_checkout
- Google Ads Purchase, Add to cart and Begin checkout goals showing as active