TikTok Conversions API
The TikTok Conversions API destination sends event data directly from Chord CDP to TikTok's servers, bypassing the browser entirely. Unlike the TikTok Pixel (device mode), server-side events are immune to ad blockers and browser tracking restrictions, providing more reliable signal for attribution and optimization.
Use this destination alongside the TikTok Pixel destination for maximum data coverage. TikTok deduplicates events using the event_id field.
Getting Started
This is a cloud-mode destination. You will need:
- Access Token — generated via TikTok Ads Manager or the TikTok API. Found in Assets > Events > Web Events > Settings.
- Pixel Code — your TikTok Pixel ID, found in your TikTok Ads Manager under Assets > Events > Web Events.
Optionally:
- Test Event Code — a test event code from the TikTok Ads events manager. When set, events are tagged for test mode and will appear in the TikTok test events dashboard.
Connecting to the TikTok Conversions API CDP Destination
- Log into the Chord data platform.
- Navigate to the CDP.
- Click the "Add" button next to Destinations.
- Select TikTok Conversions API from the destination catalog.
- Enter the destination name, Access Token, and Pixel Code.
- Optionally enter a Test Event Code during initial setup.
- Click "Create" to connect.
Events
Event Mapping
Chord Event | TikTok Event |
|---|---|
page | PageView |
Order Completed | CompletePayment |
Checkout Started | InitiateCheckout |
Product Added | AddToCart |
Product Viewed | ViewContent |
Products Searched | Search |
Payment Info Entered | AddPaymentInfo |
Product Added to Wishlist | AddToWishlist |
Product Clicked | ClickButton |
Signed Up | CompleteRegistration |
Subscription Created | Subscribe |
(any other track event) | Chord event name passed as-is See Custom Events |
User Data (All Events)
All user data fields are SHA-256 hashed before sending, except where noted.
TikTok Attribute | Chord Source (Priority Order) | Notes |
|---|---|---|
external_id | userId > anonymousId | SHA-256 hashed |
properties.email > context.traits.email | SHA-256 hashed, lowercased | |
phone | properties.phone > context.traits.phone | SHA-256 hashed, E.164 format |
first_name | properties.first_name > context.traits.first_name | SHA-256 hashed |
last_name | properties.last_name > context.traits.last_name | SHA-256 hashed |
city | properties.address.city > context.traits.address.city | Lowercased, non-alphanumeric chars removed (not hashed) |
state | properties.address.state > context.traits.address.state | Lowercased, non-alphanumeric chars removed (not hashed) |
country | properties.address.country > context.traits.address.country | Lowercased, non-alphanumeric chars removed (not hashed) |
zip_code | properties.address.postal_code / properties.address.zip_code > context.traits.address.zipcode | SHA-256 hashed |
ip | context.ip | Not hashed |
user_agent | context.userAgent | Not hashed |
locale | context.locale | Not hashed |
ttclid | properties.ttclid > URL query param ttclid | TikTok click ID |
ttp | properties.ttp | TikTok cookie |
Page Data (All Events)
TikTok Attribute | Chord Source (Priority Order) |
|---|---|
url | properties.url > context.page.url |
referrer | properties.referrer > context.page.referrer |
Event Data (All Events)
TikTok Attribute | Chord Source | Notes |
|---|---|---|
event | Mapped event name | See event mapping above |
event_time | timestamp | Unix seconds; falls back to current time |
event_id | messageId | Used for deduplication with device-mode pixel |
limited_data_use | event.limited_data_use (top-level event field) | Defaults to false |
Order Properties (All Track Events)
TikTok Attribute | Chord Source (Priority Order) | Notes |
|---|---|---|
currency | properties.currency | |
value | properties.value > properties.revenue > calculated from contents (price × quantity) | |
order_id | properties.order_id | |
shop_id | properties.shop_id | |
content_type | properties.content_type | "product" or "product_group" |
description | properties.description | |
query | properties.query > properties.search_term | Relevant for Products Searched |
Multi-Product Events
For Order Completed, Checkout Started, and Payment Info Entered, products are read from properties.products[]:
TikTok Attribute | Chord Source |
|---|---|
content_id | properties.products[].product_id |
content_name | properties.products[].name |
content_category | properties.products[].category |
price | properties.products[].price |
quantity | properties.products[].quantity |
brand | properties.products[].brand |
Single-Product Events
For Product Added, Product Viewed, Product Clicked, Products Searched, and Product Added to Wishlist, product data is read from top-level properties:
TikTok Attribute | Chord Source |
|---|---|
content_id | properties.product_id |
content_name | properties.name |
content_category | properties.category |
price | properties.price |
quantity | properties.quantity |
brand | properties.brand |
Custom Events
Any track event that does not match a Chord tracking plan event name is forwarded to TikTok using the Chord event name as-is. TikTok accepts arbitrary event names for reporting and audience segmentation, though only TikTok standard event names support campaign bid optimization.
The following non-tracking-plan events have explicit TikTok standard event name mappings and will be translated automatically if your storefront fires them:
Chord Event | TikTok Event | Notes |
|---|---|---|
Form Submitted | SubmitForm | Sends form_name from properties.form_name > properties.name |
Callback Started | Contact | |
Download Link Clicked | Download | |
If the TikTok event name you want to fire does not match your Chord event name, use a property mapping in the Hub to rename the event before it reaches this destination.
Testing and Validation
After connecting the destination:
- Set a Test Event Code in the destination configuration.
- Trigger events from your storefront or use the Live Events tab in the Chord CDP.
- In TikTok Ads Manager, navigate to Assets > Events > Web Events and open the Test Events tab to verify events are received.
- Remove the Test Event Code before going live to avoid events being excluded from campaigns.
Custom Property Forwarding
Configure destination mappings in Hub with properties.* destination paths to forward additional event properties into the TikTok event's properties object (the same object that holds currency, value, contents, etc.). Only explicitly-configured non-schema fields are forwarded — nothing flows through automatically.
How to configure:
- Open the destination's Mappings tab in Hub.
- Add a mapping with source path properties.loyalty_tier and destination path properties.loyalty_tier.
- On the next event, loyalty_tier will appear in the properties payload sent to TikTok.
What is excluded:
- Schema fields already handled by the destination transform (e.g. currency, value, order_id, contents) — these flow through the structured transform
- PII fields (email, phone, first_name, last_name) — these are handled via user_data with SHA-256 hashing
When a custom mapping targets a schema field (e.g. properties.value → properties.value), the customer-configured value overrides the destination's computed default. This allows schema fields to be sourced from a different event property — for example, mapping properties.total → properties.value to use your order total as the conversion value.
Updated 27 May 2026