SO Pixel + GTM Tracking Sandbox

Three send modes against the same SO Pixel (adv_TEST123): browser-only via otag(), server-only via dataLayer → sGTM, and dual-send with a shared event_id for dedupe.

Test product: SKU-T001 · "Anemo T-shirt" · $29.99 USD

Section 1 — Browser Only (otag direct)

Fires otag('event', name, payload) directly from the browser to the SO collector. No dataLayer push, no GTM involvement.


Section 2 — GTM Server Only (dataLayer → sGTM)

Pushes to dataLayer only. Server-side GTM forwards to the SO collector. Browser never calls otag() for these.


Section 3 — Dual-Send (otag + dataLayer, shared event_id)

Fires both paths with the same event_id so the backend can deduplicate. Use this for high-value conversions where redundancy matters.


Event Log

// events will appear here…

GTM setup: the server-side and dual-send paths require a GTM trigger matching ^(view_item|add_to_cart|begin_checkout|purchase|lead)$ and a tag forwarding the event + ecommerce + event_id to the SO collector via sGTM.

Dedupe: both legs of a dual-send carry an identical event_id (UUID). Configure the SO collector to treat duplicate event_id values within a short window as the same event.