Signals Docs
Reference

GTM container templates

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

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

FileContainerWhat it does
signals-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.
signals-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.
signals-server-sgtm.jsonServerFor merchants running their own Google sGTM container elsewhere: GA4 client + GA4 forwarding tag. Add TikTok's and Meta's gallery tags after import; event_id, ttclid, ttp, fbp and fbc arrive as event parameters on every hit. If you use PixelFox sGTM hosting instead, you do not need this file.

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 sig_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.
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.

On this page