Skip to main content

TikTok Pixel

Web Source code Package

The TikTok Pixel forwards browser conversions to TikTok Ads for optimization, audience building, and reporting. This destination wraps the standard TikTok Pixel snippet (loaded from analytics.tiktok.com/i18n/pixel/events.js); there is no npm SDK for the browser pixel. Events become ttq.track(name, params, { event_id }) calls; identity becomes ttq.identify({ email, phone_number, external_id }); consent toggles ttq.enableCookie / ttq.disableCookie.

Where this fits

TikTok Pixel is a web destination in the walkerOS flow:

Installation

Loading...
Loading...

Configuration

This destination uses the standard destination config wrapper (consent, data, env, id, ...). For the shared fields see destination configuration. Package-specific fields live under config.settings and are listed below.

Settings

PropertyTypeDescriptionMore
apiKey*stringYour TikTok Pixel ID. Find it in TikTok Ads Manager under "Assets" → "Events" → "Web Events" → select your pixel → "Setup Web Event" → "Pixel ID".
auto_configbooleanTikTok default: true. Enable automatic form field detection for Advanced Matching.
limited_data_usebooleanTikTok default: false. Restrict data use for compliance with U.S. state privacy laws.
identifyanywalkerOS mapping value resolving to an Advanced Matching object with any of: email, phone_number, external_id. All values are auto-hashed (SHA256) by the TikTok SDK before sending.
* Required fields

Mapping

Per-event rules under config.mapping. For the standard rule fields (consent, condition, data, batch, name, policy) see mapping.

PropertyTypeDescriptionMore
identifyanyPer-event Advanced Matching mapping. Resolves to an object with any of: email, phone_number, external_id. Overrides destination-level settings.identify for this rule.

Examples

Consent granted

A walker consent grant for marketing calls ttq.enableCookie so TikTok can set and read its attribution cookie.

Event
Out

Consent revoked

A walker consent revoke for marketing calls ttq.disableCookie so TikTok stops using its first-party cookie.

Event
Out

Default track

Without a mapping the walker event name is forwarded to ttq.track with an event_id for TikTok dedup.

Event
Out

Advanced matching

Destination-level identify calls ttq.identify with email, phone, and external id for TikTok advanced matching.

Event
Out

Include data

Destination-level include flattens the event data section into prefixed TikTok event parameters.

Event
Out

Complete payment

A completed order is mapped to TikTok CompletePayment with value, currency, and nested product contents.

Event
Mapping
Out

View content

A product view is renamed to the TikTok ViewContent standard event with content_type, id, value, and currency.

Event
Mapping
Out

Rule include overrides

A per-rule include replaces the destination-level include so this event forwards only globals.

Event
Mapping
Out

Search

A search submit fires TikTok Search with the query field mapped from event data.

Event
Mapping
Out

Complete registration

A user register fires ttq.identify for advanced matching and then tracks CompleteRegistration.

Event
Mapping
Out

Standard events

TikTok recognizes 14 standard events for ad optimization. Use mapping.name to flip walkerOS event names into the rigid taxonomy. Custom names still work but receive no optimization signal.

TikTok nameWhen to use
ViewContentProduct / content detail view
ClickButtonGeneric CTA click
SearchSite search
AddToWishlistItem added to a wishlist
AddToCartItem added to cart
InitiateCheckoutUser started checkout
AddPaymentInfoPayment details entered
CompletePaymentOrder successfully placed (primary conversion)
PlaceAnOrderOrder placed (alternative)
ContactLead / contact form
DownloadAsset download
SubmitFormGeneric form submission
CompleteRegistrationUser signup
SubscribeSubscription start

Advanced matching

TikTok matches conversions back to TikTok users via three optional parameters: email, phone_number, external_id. The SDK hashes them with SHA256 before sending, so it's safe to pass raw values.

settings.identify (destination-level) fires on first push and re-fires only when the resolved value changes (runtime state diffing). mapping.settings.identify (per-event) overrides for one push, which is useful for signup and checkout flows where the identity becomes available mid-session.

ttq.identify() always fires before ttq.track() so Advanced Matching is set for the conversion event.

TikTok is an advertising platform. The typical walkerOS consent key is marketing (whatever name your CMP reports). The walkerOS config.consent gate blocks unconsented events from reaching the destination in the first place; the destination's on('consent') handler then toggles TikTok's own cookie state for attribution.

Loading...

The handler iterates every key in config.consent and calls ttq.enableCookie() only when all required keys are granted. Otherwise it calls ttq.disableCookie(). This is the conservative semantic that matches walkerOS's gating model.

Auto page view

TikTok's SDK auto-fires ttq.page() once on load. The destination has no knob to suppress it. Letting the auto page view fire is the expected behavior.

💡 Need implementation support?
elbwalker offers hands-on support: setup review, measurement planning, destination mapping, and live troubleshooting. Book a 2-hour session (€399)