TikTok Events API

Server-side conversion forwarding to TikTok Ads. AdsPing auto-loads TikTok's browser pixel for browser/server deduplication.

Prefer screenshots over text? Open the illustrated manual setup guide →

What you need

  • A TikTok Ads Manager account
  • A web pixel created under Tools → Events
  • An Events API access token (generated from the pixel page)

Find your Pixel Code

  1. Open TikTok Ads Manager Tools → Events.
  2. Web Events tab → pick your pixel (or Set Up Web Events to create one).
  3. The Pixel Code appears at the top, format D7VH38JC77U3LFDOLGRG (20 alphanumeric chars).

Generate access token

  1. Pixel detail page → Settings tab.
  2. Find Events API section → click Set Up or Manage.
  3. Click Generate Access Token. Copy immediately — shown once.

Connect in AdsPing

  1. Pixel detail → TikTok card → Manual setup.
  2. Paste both values → Save.
  3. The card turns green when validated.
AdsPing automatically loads events.js in the browser as well — you do not need to add TikTok's pixel snippet separately. Browser pixel + Events API share the same event_id, so TikTok deduplicates them.

Test with Test Events

  1. TikTok Ads Manager → Tools → Events → your pixel → Test Events tab.
  2. Copy the test event code, format TEST_ABCDEFGH.
  3. AdsPing → pixel detail → pipeline list → pencil icon on the TikTok pipeline.
  4. Paste into Test Event Code → Save.
  5. Trigger events on your site. They appear in Test Events within 2-5 seconds.

Using TikTok Event Builder

TikTok's codeless Event Builder works out-of-the-box with AdsPing. You visually click buttons in your site, TikTok stores the configuration, and at runtime events.js fires ttq.track() for those clicks. AdsPing's ttq mirror catches each call and forwards server-side with the same event_id — so Event Builder events also dedupe.

Path: TikTok Ads Manager → Tools → Events → pixel detail → Etkinlikler oluşturun → enter your site URL → click elements → save.

Event Builder needs to detect window.ttq on your site. AdsPing injects it within ~500ms of pb.js loading, so make sure pb.js is in <head>, not bottom-of-body.