TikTok Pixel and Events API setup
Last updated: May 19, 2026
TikTok Pixel and Events API setup
TikTok has two tracking surfaces: a browser pixel (JavaScript snippet, like Meta Pixel) and an Events API (server-side, like Meta CAPI). Wevion auto-imports pixels from connected advertiser accounts and supports both surfaces via the providers/tiktok-events/ provider. Use both for the most accurate attribution.
Who is this for
Mediabuyers running TikTok conversion campaigns. Anyone whose TikTok conversion data dropped after iOS 14.5 (ATT) — Events API helps recover.
TikTok Pixel (browser)
The standard tracking snippet:
JavaScript loaded on your site (in
<head>)Fires events when users do things (page view, add to cart, purchase)
Sends events directly from user's browser to TikTok
Subject to: ad blockers, iOS ATT opt-out, browser cookie deprecation
Setup is on your site, not in Wevion. Wevion auto-discovers existing pixels.
Install a new pixel
If you don't have one yet:
TikTok Business Center → Events Manager → Web Events → Set Up Web Events
Choose installation method: Manual code (recommended) or Tag manager (GTM)
Pick base code + event codes (Page View, Click, Purchase, Add to Cart, etc.)
Install the snippet on your site (before
</head>)Test with TikTok Pixel Helper Chrome extension
Wevion picks up the pixel on next 15-min sync (visible at
/pixels)
TikTok Events API (server-side)
Server-to-server event sending, complement to the browser pixel:
Wevion sends events from its server to TikTok's Events API endpoint
Bypasses browser-side blockers entirely
Each event tagged with
event_idfor deduplication against browser pixelRequires per-pixel access token generated in TikTok Events Manager
Enable Events API per pixel
For each pixel where you want server-side coverage:
TikTok Events Manager → web pixel → Settings → Events API → Generate access token
Copy the token (long string)
In Wevion:
/connect/tiktok→ advertiser account detail → Events API section → paste tokenWevion validates by sending a test event
Wevion's
providers/tiktok-events/provider takes over server-side sending
Standard events
TikTok supports these standard event names:
Event | Use case |
|---|---|
PlacedOrder | Equivalent to Meta's Purchase |
AddToCart | Mid-funnel signal |
InitiateCheckout | Checkout started |
CompletePayment | Same as PlacedOrder in some setups |
ContactUs | Lead form submitted |
Subscribe | Newsletter / membership sign-up |
CompleteRegistration | Account creation |
ViewContent | Product / page view |
Search | Site search |
AddPaymentInfo | Payment method added |
Custom events also supported — pixel and Events API must use the same event name + event_id to dedupe.
Deduplication
Both the browser pixel and Events API can send the same event. To avoid double-counting, both send the same event_id:
Browser pixel fires:
event_id: "abc123"forPlacedOrderEvents API fires:
event_id: "abc123"forPlacedOrder(same one)TikTok matches via
event_id→ counts as 1 event
In TikTok Events Manager → Pixel → Diagnostics, you can see the deduplication rate. Healthy setup: 90%+ deduplication.
Pixel health at /pixels
/pixels shows TikTok pixels with:
Status (Active / Inactive)
Last 7d event counts per type
Events API status (Configured / Not configured)
Deduplication rate (estimated)
When to use pixel vs Events API vs both
Scenario | Recommendation |
|---|---|
Just starting | Browser pixel only (fastest setup) |
iOS-heavy audience | Add Events API (iOS ATT signed loss = 30%+ recovered via server-side) |
Privacy-conscious users | Events API essential |
High-value conversions | Always both with deduplication |
Low-value events (Search, View) | Browser pixel alone fine |
What you'll see
A healthy pixel + Events API:
/pixels: TikTok pixel Active + Events API ConfiguredTikTok Events Manager → Diagnostics: 90%+ deduplication
Campaign Creator: pixel selectable as conversion target for Sales objective
After 50+ conversions: optimization improves vs browser-only
Common issues
Pixel showing Inactive despite traffic: pixel installed after
</head>(load order) or blocked by ad blocker. Test in incognito.Events API "Invalid access token": per-pixel token wrong scope or expired. Regenerate in TikTok Events Manager.
Duplicate event counts:
event_idmismatch between browser pixel and Events API. Use the sameevent_idin both (TikTok Pixel Helper shows the browser-side value).Pixel imported but no events: pixel installed but no traffic yet, or events firing but TikTok hasn't processed them (5-10 min lag).
Events API events arriving but with $0 value: e-commerce integration not sending
valuefield. Check the payload in TikTok Events Manager Test tab.
Wevion's Events API provider details
Wevion's server-side Events API sender (apps/backend/src/providers/tiktok-events/) handles:
Event batching (multiple events per API call for efficiency)
Retry on transient TikTok API errors
Encryption of access tokens at rest
Per-pixel rate limiting
Related
Connect TikTok Ads — prerequisite
Set up your first pixel — generic pixel concept
Set up Meta Pixels and Conversions API — Meta's similar pattern