PixelFox Docs
Reference

GTM container templates

Import-ready GTM containers that wire the full ecommerce funnel to PixelFox - and to a PixelFox-hosted sGTM server.

Ready-to-import Google Tag Manager containers, so setup is one import instead of configuring twenty tags by hand. Download pixelfox-gtm-templates.zip from the downloads section of pixelfox.app (signed in), pick the file for your mode, and import it.

FileContainerWhat it does
pixelfox-web-proxy.jsonWebBrowser GA4 event tags, Meta pixel with eventID, TikTok pixel with event_id, Clarity, plus the PixelFox server-side tag posting every event to /v1/ingest with a shared event_id and the Meta/TikTok cookies and click ids.
pixelfox-web-sgtm.jsonWebSame events, but GA4 transports them to your PixelFox sGTM hostname first (set server_container_url) — see sGTM hosting. Derived from the proxy container at build time, so it never drifts from it; it exists only inside the download zip.
pixelfox-server-sgtm.jsonServerFor a real Google server container — a PixelFox dedicated container, or your own on Cloud Run: GA4 client, GA4 forwarding tag, and the PixelFox Forwarder tag that sends every event on to PixelFox. Add TikTok's and Meta's gallery tags after import if you want them; event_id, ttclid, ttp, fbp and fbc arrive as event parameters on every hit. A PixelFox shared container needs no server container, so it does not need this file.
pixelfox-forwarder.tplServer (tag template)The PixelFox Forwarder alone, for a server container you already have and do not want to import over: Templates → Tag Templates → New → Import, then add a tag from it firing on All Events.

Import

  1. In tagmanager.google.com, open Admin → Import Container.
  2. Choose the file and merge into a new container (never overwrite a live container).
  3. Set the placeholder variables before publishing:
VariableValue
PixelFox API KeyYour pfx_live_… key (Dashboard → Sites → Keys).
PixelFox Ingest URLhttps://api.pixelfox.app, or your first-party domain (https://t.yourstore.com).
GA4 Measurement IDYour G-… id.
Meta Pixel IDYour numeric pixel id.
TikTok Pixel CodeYour C… pixel code. Leave the placeholder and the TikTok tags stay off.
LinkedIn Partner IDYour Insight Tag partner id. Leave the placeholder and the LinkedIn tag stays off.
Clarity Project IDYour Clarity project id.
PixelFox Forward SecretServer container only. Dashboard → your site → sGTM hosting → Generate forwarding secret. Shown once.
SGTM Server URL (sgtm mode)https://ss.yourstore.com - the hostname you claimed under sGTM hosting.
  1. Preview, verify one event of each kind, publish.

How deduplication works

The PixelFox Event ID variable mints one id per GTM event and caches it for every tag that reads it during that event. The Meta pixel fires with that id as eventID, the TikTok pixel as event_id, GA4 carries it as the event_id parameter, and the PixelFox server-side tag sends it as event.uuid to /v1/ingest. The PixelFox backend fans conversions out to Meta CAPI and TikTok with the same id, so the platforms count each conversion exactly once - browser and server together.

Match keys on every hit

The Google Tag's shared event parameters add ttclid, ttp, fbp, fbc, fbclid and li_fat_id to every GA4 hit, and the PixelFox ingest tag reads the same cookies and click ids. If your page pushes a user_data object ({ user_data: { email_address, phone_number, address: { first_name, last_name, city, region, postal_code, country } } }), both paths carry the hashed match keys too - see match quality.

Event coverage

page_view, view_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_payment_info, add_shipping_info, purchase, search, select_item, view_item_list, sign_up - all triggered off standard GA4 ecommerce dataLayer pushes. If your platform already pushes these names (WooCommerce GA4 plugins, Shopify's GA4 integrations, Laravel packages), the triggers light up with no extra code.

Sanitisation

Every shipped template is passed through a sanitiser that fails the build if any real pixel id, measurement id, container id or API key appears in the JSON. The placeholders above are the only ids in the files - safe to commit and share.

The PixelFox Forwarder (server containers)

A server container sends events wherever its own tags point — which, on its own, means PixelFox never sees them. The forwarder tag closes that gap: for every event the container processes it posts the same event to https://api.pixelfox.app/g/collect, so it lands in your dashboard, joins the visitor's stitched identity, and reaches the destinations you connected in PixelFox.

It authenticates with the container's forwarding secret and states the visitor's own IP address and user agent, since PixelFox would otherwise see only the server container's address. See the header contract.

Avoiding double sends. A forwarded event can reach an ad platform twice if your server container has its own tag for a destination that is also connected in PixelFox.

  • GA4 — PixelFox never sends a forwarded event to GA4. The server container's own GA4 tag already did, and Measurement Protocol cannot deduplicate a second copy.
  • Meta, TikTok — both collapse duplicates that share an event_id. Keep event_id mapped on your server tags and the pair counts once.
  • Everything else, or if you would rather not rely on that — turn off Send forwarded events to destinations for the container. Forwarded events are then stored and stitched but sent nowhere.

On this page