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:

  1. TikTok Business Center → Events Manager → Web Events → Set Up Web Events

  2. Choose installation method: Manual code (recommended) or Tag manager (GTM)

  3. Pick base code + event codes (Page View, Click, Purchase, Add to Cart, etc.)

  4. Install the snippet on your site (before </head>)

  5. Test with TikTok Pixel Helper Chrome extension

  6. 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_id for deduplication against browser pixel

  • Requires per-pixel access token generated in TikTok Events Manager

Enable Events API per pixel

For each pixel where you want server-side coverage:

  1. TikTok Events Manager → web pixel → Settings → Events APIGenerate access token

  2. Copy the token (long string)

  3. In Wevion: /connect/tiktok → advertiser account detail → Events API section → paste token

  4. Wevion validates by sending a test event

  5. 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" for PlacedOrder

  • Events API fires: event_id: "abc123" for PlacedOrder (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 Configured

  • TikTok 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_id mismatch between browser pixel and Events API. Use the same event_id in 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 value field. 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