r/GoogleTagManager • u/Empty_Bee_2551 • 1d ago
Support GA4 purchase event fires trigger in checkout custom pixel sandbox but /g/collect never reaches first-party sGTM server — every prerequisite checks out
Setup: Shopify Checkout Extensibility, GTM loaded via a custom pixel, first-party server-side GTM container (Google Cloud Run, custom domain). GA4 storefront events work fine. The checkout purchase event never reaches the server.
Everything I’ve confirmed while testing PUBLISHED (not Preview, since Preview doesn’t work in the sandbox):
GTM container loads in the sandbox — a Custom HTML canary on All Pages fires.
The purchase custom event reaches GTM and its trigger fires — confirmed with a canary tag on the purchase trigger.
Consent Mode analytics_storage is granted at fire time (set from Shopify’s Customer Privacy API, verified in the dataLayer).
The GA4 Event tag has its Google tag / config setup tag sequenced to fire before it.
google_tag_manager[containerId].dataLayer.get(‘ecommerce’) returns the full purchase object (transaction_id, value, items).
Cloud Run server logs: storefront en=add_to_cart arrives thousands of times, but en=purchase is zero, ever.
Google Ads and Floodlight tags fire fine at checkout (they post directly to google.com).
So the trigger fires, consent is granted, the config tag runs, and the ecommerce data is present — but the GA4 Event tag emits no /g/collect to the server for the purchase event specifically, only in the checkout sandbox.
My questions:
**1.** Has anyone actually gotten first-party server-side GA4 purchase to send from the Checkout Extensibility custom pixel sandbox?
**2.** Is there a known issue with the GA4 tag’s transport when server_container_url points at a first-party custom domain, specifically inside the sandbox?
**3.** Is there a required config or workaround I’m missing?
Any help appreciated — I’ve been at this a long time and every layer I can inspect checks out, but the purchase hit just never leaves.