Marketing pixels (GA4, GTM, Meta, TikTok)
Configure supported marketing pixels to track conversions. Client + server events (CAPI) for post-iOS 14.5 accuracy.
WooshPayment supports 4 marketing integrations from the Dashboard โ Integrations page. Each sends events to its destination: some client (script), others server (CAPI/Measurement Protocol) to bypass AdBlock + Safari ITP.
Supported pixels
| Platform | Fields | Events sent |
|---|---|---|
| Google Analytics 4 | measurement_id, api_secret (opt.) | page_view, begin_checkout, purchase (client + server via MP) |
| Google Tag Manager | container_id | dataLayer.push on every event |
| Facebook / Meta Pixel | pixel_id, CAPI access_token (opt.) | InitiateCheckout, Purchase (client + server via CAPI) |
| TikTok Pixel | pixel_id, Events API access_token (opt.) | InitiateCheckout, PlaceAnOrder (client + server via Events API) |
No Klaviyo, Pinterest, Snapchat, Omnisend for now. No "custom script" (removed because it was a stored XSS vector).
1. Google Analytics 4
- Google Analytics โ Admin โ Data Streams โ Web โ your stream
- Copy Measurement ID (
G-XXXXXXXXXX) - (Optional but recommended) "Measurement Protocol API secrets" section โ create API Secret
- WooshPayment Dashboard โ Integrations โ Google Analytics 4 โ paste both โ Save
Without API Secret, events fire client-only. With API Secret, purchase also fires server-side (more accurate).
2. Google Tag Manager
- GTM โ select container โ copy Container ID (
GTM-XXXXXXX) - WooshPayment โ Integrations โ Google Tag Manager โ paste โ Save
- In GTM, create triggers based on
dataLayerevents (e.g.event: purchase)
We push dataLayer on every event. GTM handles routing to destinations.
3. Meta (Facebook + Instagram) Pixel
- business.facebook.com โ Events Manager โ Pixel
- Create pixel if you don't have one (associate with your Business Manager)
- Copy Pixel ID (15 digits)
- For server-side CAPI: Events Manager โ Settings โ "Create access token" โ copy
- WooshPayment โ Integrations โ Facebook / Meta Pixel โ paste โ Save
Events sent:
InitiateCheckoutwhen the customer arrives at checkoutPurchasewhen payment is confirmed
With CAPI Access Token, Purchase also fires server-side with unique event_id for client-side deduplication.
4. TikTok Pixel
- TikTok Events Manager โ Tools โ Pixel โ create pixel
- Copy Pixel ID (
CXXXXXXXXXXXXXXXXXX) - Same page โ "Events API" tab โ generate Access Token
- WooshPayment โ Integrations โ TikTok Pixel โ paste โ Save
Events: InitiateCheckout, PlaceAnOrder (client + server).
CAPI: why it matters
After iOS 14.5, the client pixel (fbq(), ttq()) is blocked for 30-50% of users tracked on Safari/iOS. The server-side Conversion API sends events directly from our backend, bypassing AdBlock + Safari ITP. Typical result:
- +20-40% tracked events
- More accurate ROAS
- Better ads algorithm optimization
WooshPayment always sends the conversion event server-side, with a unique event_id for dedup against the client (so you don't double-count).
Consent management (GDPR / CCPA)
- If the customer hasn't given marketing consent โ client pixels disabled
- Server-side events for
Purchasealways fire (legal basis: legitimate interest โ analytics of a transaction requested by the user) - Consent cookie banner is your store's responsibility (Shopify has a built-in cookie banner; Woo via plugin)
Testing
Meta
- Open Test Events in the Pixel dashboard
- Enter a Test Event Code (optional) โ useful to avoid polluting production data
- Open your checkout, simulate a purchase โ see events arrive in real-time
TikTok
- Events Manager โ "Test Events" tab โ see live events
GA4
- Open DebugView in Analytics โ see events in real-time (max 60s delay)
Security
Server-side keys (Meta Access Token, TikTok Access Token, GA4 API Secret) are never exposed client-side. They are encrypted at rest (AES-256-GCM) and used only by our backend to call the respective Conversion APIs.
FAQ
Do I need to configure both the client pixel and the server token?
For Meta/TikTok: ideally yes (automatic dedup via event_id, +30% accuracy). For GA4: the server-side Measurement Protocol is sufficient but client gtag also helps with engagement reports.
My events aren't arriving
- Verify the key/token is correct
- Go to Test Events on the destination platform and make a test purchase
- For Meta: verify the Pixel ID is an active pixel associated with your Business
- For TikTok: verify the Pixel ID corresponds to the account paying for ads
Can I disable a pixel temporarily?
Yes, from the Integration card click disable โ the key stays saved.
I want Klaviyo / Pinterest / Snapchat
For now they're not in the core. Write to us if you need them.