Settl.

Tracking / TikTok Events API · WooCommerce

The TikTok Events API for WooCommerce

TikTok buyers tap an ad in the app, browse in TikTok's in-app browser and often pay somewhere else. On WooCommerce that's on top of off-site payment pages and caching plugins. Here's how to get paid WooCommerce orders to TikTok from the server, counted once and linked to the ad.

Sent when the order is paid

From WooCommerce's own payment hooks, not from a thank-you page that may never load.

ttclid kept 90 days

Saved the moment a visitor lands from TikTok, then stored on the order at checkout.

Counted once

Pixel and server send CompletePayment with the same event id per order.

Why TikTok loses WooCommerce sales

Most TikTok ad clicks open in TikTok's in-app browser, which keeps its own cookies. A visitor who taps your ad, adds to cart, then opens your site in Safari or Chrome to pay with saved details starts a new session. The TikTok pixel in that browser has no idea the visit started with an ad.

WooCommerce adds its own weak spots. The pixel usually reports the purchase when the order-received page loads, and many payment methods send the buyer to another site first: PayPal, iDEAL through a bank app, Klarna or a hosted card page. If the buyer pays and closes the tab, the page never loads and TikTok never hears about the sale. Script-delay and cache settings in optimization plugins can hold the pixel back further.

The TikTok Events API sends the purchase from a server, based on the order itself, so none of that stops it.

Which WooCommerce orders should reach TikTok

TikTok optimizes towards the people who trigger your CompletePayment events. If unpaid orders count, it learns to find people who start a bank transfer and never finish it. Only paid orders should go through:

  • Processing or Completed after a successful payment: send it.
  • On hold (bank transfer, cash on delivery): wait until the order is actually paid.
  • Pending payment, Failed, Cancelled or a checkout draft: don't send it.
  • Refunds: they shouldn't create a new purchase.

What TikTok needs from a WooCommerce order

To link a server purchase to an ad, TikTok uses a mix of identifiers. Some come from the order, others only exist during the visit, so they have to be saved before checkout:

  • ttclid: TikTok's click id, added to the landing URL when someone clicks an ad. It's the strongest link to the ad, and it's gone once the visitor moves on unless it was saved.
  • The _ttp cookie that the TikTok pixel sets in the browser.
  • Email and phone, hashed with SHA-256 before they're sent.
  • The IP address and user agent of the visit.
  • Order value, currency, the products and the order id.

Deduplication: one purchase, not two

When the TikTok pixel and the Events API both report an order, TikTok only keeps one if both have the identical event name and event_id, within 48 hours; it keeps the first one it received (TikTok Ads help centre, checked October 2026).

On WooCommerce this breaks most often because two plugins load the same TikTok pixel, each with its own ids. The Settl plugin uses one id per order for the browser and the server purchase, so TikTok keeps one CompletePayment.

Your options on WooCommerce (checked October 2026)

TikTok's own WordPress plugin sets up the browser pixel and server connection together and supports the standard shopping events. If TikTok is your only paid channel and you don't need anything else, it's a fair place to start.

PixelYourSite Pro lists TikTok as pixel plus Events API: you paste the access token from TikTok Ads Manager and enable the Conversion API in its settings. It covers many platforms and suits stores that want lots of event options.

Datahash offers a WooCommerce to TikTok Events API connection built around order data, with field mapping and adjustable sync, aimed at teams that work with a sales contact.

Settl's WooCommerce plugin focuses on purchases that actually happened: it keeps the ad click for 90 days, sends each paid order once, and checks every hour that no paid order of the past week was missed. The same plugin covers Meta, Google, Snapchat, Pinterest, X, Microsoft Advertising and Reddit. Pick one source per TikTok pixel, whichever you choose.

What the Settl plugin sends to TikTok

Browser events, if you switch them on: page views, product views, searches, checkout starts and the purchase, sent by the TikTok pixel only after the visitor accepts marketing cookies (when your consent plugin supports the WP Consent API). Shop staff who are logged in and known bots are skipped, so your own test clicks don't train your ads.

Server events: every paid order goes to Settl and from there to the TikTok Events API as CompletePayment, with hashed email and phone, the saved ttclid and _ttp, IP, user agent, value, currency and products. Add-to-cart is sent from the server too, because the page often doesn't reload after adding a product.

How to test it in TikTok Events Manager

In TikTok Ads Manager, open Tools, then Events, then Web events, and choose your pixel. Use Test Events, place a real order with a payment method that leaves your site, and close the tab right after paying. CompletePayment should still arrive from the server.

Over the following days, check that purchases come in from both the pixel and the Events API without duplicate warnings, and look at the diagnostics for missing value, currency or match parameters.

How to set it up with Settl

  1. 1Clean up first

    List every plugin and snippet that loads your TikTok pixel and decide which one stays.

  2. 2Install the Settl Tracking plugin

    Add it in WordPress and paste your connection code from the Settl dashboard.

  3. 3Add your TikTok pixel code and token

    In TikTok Ads Manager open your pixel, copy the pixel code and generate an Events API access token under Settings, then paste both into Settl.

  4. 4Test with an off-site payment

    Pay with a method that leaves your site, close the tab, and confirm CompletePayment arrives from the server.

Pricing

Monthly, cancel any time. No contract, no fee per order from Settl.

99,9% Tracking

Keep Shopify's checkout. Every paid order sent server-side to Meta, TikTok, Google, Snapchat and Pinterest.

$44.99/ month · first 10 days free, no card needed

Start with 99,9% Tracking

Pro

Your own checkout plus 99,9% Tracking and ROAS per ad, in one plan.

$54.99/ month · first 10 days free, no card needed

Start with Pro

Questions

Does the Events API replace the TikTok pixel?+

No. Keep the pixel for browser events and add the Events API so purchases still arrive when the browser can't send them. A shared event id keeps the count right.

Can I keep TikTok's own WooCommerce plugin?+

You can, but not next to Settl on the same pixel, or purchases may be counted twice. Use one of the two for TikTok.

What about bank transfer and cash on delivery?+

Those orders go to TikTok once WooCommerce marks them paid, not when they're placed.

Does it work with caching plugins?+

Yes. The purchase is sent from the server when the order is paid, so a cached or delayed page doesn't stop it.

What if a send fails?+

Settl checks every hour for paid orders of the last week that didn't arrive and sends them, and e-mails you when sending to a platform keeps failing, for example because a token was regenerated.

What does it cost?+

€39,99 per month for 99,9% Tracking after 10 days free, with no contract and no per-order fees. TikTok, Meta, Google and the other platforms are included.

Related

All guides and comparisons →

Every sale back to your ads.

Get started
TikTok Events API for WooCommerce: server-side setup · Settl