TikTok Pixel
10 min
the tiktok pixel destination loads the tiktok pixel javascript sdk in the browser and forwards ecommerce and engagement events client side to tiktok ads unlike the server side tiktok conversions api destination , device mode events originate from the browser and can leverage the full tiktok pixel feature set use this destination alongside the tiktok conversions api destination for maximum signal coverage getting started this is a device mode destination the tiktok pixel sdk is loaded automatically — no manual script installation is required you will need pixel code — your tiktok pixel id, found in your tiktok ads manager under assets > events > web events optionally limited data use (ldu) — enable limited data use mode for ccpa compliance defaults to false auto page view — automatically fire a page view on pixel initialization defaults to true product content id field — which product field to use as the content id product id , sku , variant id , or id defaults to sku > product id > id fallback chain connecting to the tiktok pixel cdp destination warning before connecting destinations in the chord cdp, please verify with all destination owners that all non chord cdp configured destinations are disabled running external destinations alongside configured chord cdp destinations can result in duplicate events downstream log into the chord data platform navigate to the cdp click the "add" button next to destinations select tiktok pixel from the destination catalog enter the destination name and your pixel code configure optional settings as needed click "create" to connect events every event first calls ttq identify() with available user data before sending the conversion event event mapping chord event tiktok event notes page (auto page view on init) fires during initialization when auto page view is true ; subsequent page events send user identification only identify ttq identify() sets user data; no conversion event fired order completed completepayment multi product checkout started initiatecheckout multi product payment info entered addpaymentinfo multi product order placed placeanorder multi product product added addtocart single product product viewed viewcontent single product product clicked clickbutton single product product added to wishlist addtowishlist single product products searched search single product signed up completeregistration no product data form submitted submitform no product data callback started contact no product data subscription created subscribe no product data download link clicked download no product data (any other track event) chord event name passed as is identify sets user identity on the tiktok pixel for enhanced matching no conversion event is fired tiktok sdk call ttq identify(userdata) tiktok attribute chord source (priority order) notes email properties email > context traits email > traits email lowercased, whitespace removed phone number properties phone > context traits phone > traits phone e 164 format external id userid > anonymousid first name properties first name > context traits first name > traits first name lowercased, whitespace removed last name properties last name > context traits last name > traits last name lowercased, whitespace removed city properties address city > context traits address city lowercased, non alphanumeric chars removed state properties address state > context traits address state lowercased, non alphanumeric chars removed country properties address country > context traits address country lowercased, non alphanumeric chars removed zip code properties address zipcode > context traits address zipcode > traits address zipcode lowercased, whitespace removed identify is automatically called before every track event if any user data is available multi product events (order completed, checkout started, payment info entered, order placed) tiktok sdk call ttq instance(pixelcode) track(eventname, eventproperties, { event id messageid }) tiktok attribute chord source (priority order) notes content type (hardcoded) "product" currency properties currency defaults to "usd" value properties value > properties total falls back to sum of price × quantity across products order id properties order id shop id properties shop id description properties products\[0] description from first product contents properties products\[] mapped as below product contents — each item in properties products\[] tiktok attribute chord source content id configured field from properties products\[] > sku > 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 (product added, product viewed, product clicked, product added to wishlist, products searched) product data is extracted from top level properties (not properties products\[] ) tiktok sdk call ttq instance(pixelcode) track(eventname, eventproperties, { event id messageid }) tiktok attribute chord source (priority order) notes content type (hardcoded) "product" currency properties currency defaults to "usd" value properties value > properties total > properties price order id properties cart id / properties order id omitted if not present shop id properties shop id omitted if not present description properties description query properties query products searched only contents single element array from top level properties single product content tiktok attribute chord source (priority order) content id configured field from properties > properties sku > properties product id content name properties name content category properties category price properties price quantity properties quantity — defaults to 1 brand properties brand no product events (signed up, form submitted, callback started, subscription created, download link clicked) same event level attributes as multi product events above, but contents is an empty array initialization the plugin sets up the ttq function queue, then loads https //analytics tiktok com/i18n/pixel/events js the partner name is set to "chord" if auto page view is true (default), an initial page view is fired immediately after initialization the plugin manages sdk loading state ( fresh → loading → loaded / failed ) to prevent duplicate script loads if the script fails to load, subsequent events are silently dropped csp requirements if your site uses a content security policy, allow the following domains directive domain script src https //analytics tiktok com connect src https //analytics tiktok com updated 6 apr 2026