Signals Docs
Destinations

TikTok Events API

Server-side events to TikTok, deduplicated with the browser pixel.

PixelFox sends conversions to the TikTok Events API (v1.3, web events) and injects the TikTok browser pixel (unless you already run one) firing the same event_id for deduplication.

Credentials

FieldWhere to find it
Pixel codeTikTok Ads ManagerToolsEventsWeb events → your pixel → the code shown under the pixel name (starts with C…). (screenshot placeholder)
Access tokenSame pixel → SettingsEvents APIGenerate Access Token. (screenshot placeholder)
Test event code (optional)Same pixel → Test events tab. (screenshot placeholder)

Paste them under Destinations → TikTok Events API in the PixelFox dashboard.

What gets sent

Conversion events map to TikTok standard events - ViewContent, AddToCart, InitiateCheckout, CompletePayment, Search, SubmitForm, CompleteRegistration - with:

  • event_id = the SDK event UUID (dedup against the browser pixel)
  • user: SHA-256 hashed email (trimmed, lowercased), phone (E.164 digits) and external id; client IP, user agent and locale in the clear; ttclid when the visitor arrived from a TikTok ad and ttp from TikTok's _ttp cookie. TikTok's web schema has no name or address fields, so those stay with Meta.
  • properties: value, currency, contents (content_id, content_name, quantity, price) with num_items, or content_ids; content_type, search_string on Search, description, order_id; limited_data_use when you pass it
  • page: URL (required by TikTok; the store root stands in for server-side events) and referrer

TikTok deduplicates on event_source_id + event_id + event, so the browser pixel and this call must fire the same event name with the same id - which the SDK and the GTM template guarantee.

Server-side tagging with Google Tag Manager

TikTok's own guide for Events API through server-side GTM ("How to set up Events API for server-side tagging in Google Tag Manager") has three parts: a browser pixel in the web container, a server container that receives the GA4 transport, and an Events API tag in that server container that forwards each event with an event_id shared with the pixel so the two deduplicate. PixelFox gives you the same result two ways.

PixelFox is your server container. Nothing runs on Google Cloud and there is no Events API tag to configure - the TikTok credentials you pasted under Destinations are used for every event that arrives.

  1. Connect TikTok Events API under Destinations (pixel code, access token, test event code).
  2. Claim an sGTM hostname under sGTM hosting and add the CNAME - see sGTM hosting.
  3. Import signals-web-sgtm.json from the GTM templates into your web container. Set the TikTok Pixel Code and SGTM Server URL variables.
  4. Preview, fire a purchase, publish.

What the template does, mirroring TikTok's guide:

  • Pixel in the browser - TikTok Pixel - Base Code loads the pixel on every page (ttq.page()); the event tags fire ttq.track() for ViewContent, AddToCart, InitiateCheckout, AddPaymentInfo, PlaceAnOrder, Search and CompleteRegistration with contents built from the GA4 items array.
  • Deduplication - every TikTok tag passes { event_id: {{PixelFox Event ID}} }, the same id GA4 carries as the event_id parameter. PixelFox sends that id as event_id on the Events API call, so TikTok keeps one event per pair. TikTok's guide asks you to build a custom JavaScript variable for this; the template ships it.
  • Match keys - the Google Tag's shared event parameters carry ttclid (from the landing URL) and ttp (TikTok's _ttp cookie) on every hit. Push a user_data object into the dataLayer (GA4 enhanced-conversions shape: email_address, phone_number, address.first_name …) and the server-side event also carries the hashed email, phone, name and address. Keys the hit lacks are filled from the visitor's match profile.
  • Pixel-only or API-only - leave TikTok Pixel Code at its placeholder and the browser tags stay off (a blocking trigger), which is TikTok's "Events API only" setup; turn the destination off in PixelFox for pixel-only. TikTok recommends both.

Option B - your own Google sGTM container

If you already run a server container on Google Cloud, keep it and add TikTok's tag there, exactly as in TikTok's guide:

  1. Import signals-web-sgtm.json into the web container and point SGTM Server URL at your own server container URL.
  2. Import signals-server-sgtm.json into the server container - it adds the GA4 client that claims the hits.
  3. From the Community Template Gallery add TikTok Events API (by TikTok). Fire it on All Events. Set Pixel Code and Access Token.
  4. In the tag, map Event ID to the incoming event parameter event_id, TikTok Click ID to ttclid, TikTok Cookie (_ttp) to ttp, and the user fields to the GA4 user-provided data your page pushes. The tag hashes email and phone itself.
  5. Use the Test Event Code field while checking Events Manager → Test events, then clear it.

In this setup TikTok receives the event from your server container; PixelFox still receives the same hit if you also keep the PixelFox ingest tag, but disable the TikTok destination in PixelFox so the event is not sent twice.

Verify

Use the Test events tab in TikTok Events Manager with the test event code configured in PixelFox - events arrive within seconds. TikTok's Event details panel shows which matching signals were received, and Event deduplication shows browser and server events collapsing when both are on.

On this page