Server-side tracking for TikTok conversions
Your conversions leave your server for the TikTok Events API, not the browser of a visitor who may be blocking the pixel. The purchase is fired by the validated order, not by a thank-you page the customer may never load.
Identifiers are normalised and then hashed before sending: TikTok receives enough to tie the conversion to a person, never the address itself.
Where a shop loses its TikTok conversions
The TikTok pixel depends on a fragile chain: the browser loads the script, runs it, and is blocked by nothing along the way.
The pixel does not load
Blockers, restrictive browsers, a mobile connection dropping mid-session: the event never exists, and TikTok optimises on what is left.
The purchase depends on a page
The pixel fires on the confirmation page. A customer who closes the tab after paying did buy, and the conversion never left.
Poor matching costs ROAS
With no usable identifier, TikTok cannot tie the conversion to a profile. The campaign looks weaker than it is, and the algorithm learns on incomplete data.
Three steps, and nothing to rewrite
The connector installs on your shop; everything else is set in the console.
1: Install the connector
The PrestaShop module, the WooCommerce plugin or the Shopware extension, downloaded from your console. No code to write.
2: Paste two values
The pixel code and the token, taken from your own TikTok account. They are encrypted at rest and never reappear in a page.
3: Check in Test Events
Your events arrive in TikTok's test screen before you switch to production.
What TikTok receives, event by event
Twelve of our events have an official TikTok name. Those that do not are not sent to this destination: they go to the others, without error or loss.
| Our name | Name at the platform |
|---|---|
page_view | Pageview |
view_content | ViewContent |
add_to_cart | AddToCart |
initiate_checkout | InitiateCheckout |
add_payment_info | AddPaymentInfo |
purchase | CompletePayment |
lead | SubmitForm |
complete_registration | CompleteRegistration |
search | Search |
add_to_wishlist | AddToWishlist |
contact | Contact |
subscribe | Subscribe |
What TikTok will not do
Every destination has a closed vocabulary, except one. Here is what that means: said before you find out.
Events with no TikTok name are not sent
TikTok has no official equivalent for a booking, a share or an application. Those events are not sent to it: they go to your other destinations, without error. We prefer to send nothing rather than force them into a near-enough name that would distort your figures.
Match quality depends on you
TikTok ties the conversion to a profile using the identifiers your shop passes us. An order with no email address still goes out, but matches less well. The console shows that coverage day by day.
What the console will show you for this destination
An argument we can make because the page exists: you do not have to take our word for it, you look.
Every event, with the platform's answer
The Inspector lists what left, what the destination made of it, and the exact reason for a refusal. An invalid identifier or an expired token reads in plain words, the same day.
Identifier coverage
How many of your events carried enough to tie the conversion to a person. That is what decides match quality, and therefore the ROAS you will read at the advertiser.
The periods when nothing left
The costliest and quietest anomaly: an empty dashboard reads like a bad week, never like an outage. The console names them.
What you need
Two values, from your own TikTok account. We never ask for your password.
The pixel code
TikTok Ads Manager → Assets → Events → Web Events → your pixel. This is the “Event Source ID”.
An access token
Generated in the Events API setup on the same screen. Encrypted at rest here and never shown in a page.
A test event code (optional)
To watch your events land in Test Events before switching to production.
What does not leave our infrastructure
A product handling customer data owes you a statement of where it stops.
Identifiers are hashed before sending
Normalised then hashed here: the destination receives a fingerprint, never the email address or the phone number.
Consent decides, server-side too
Every event carries the consent state your banner recorded. A refusal stays a refusal: going through the server bypasses nothing.
Hosted in the European Union
The dispatcher, the database and the console are in Germany. Your tokens are encrypted at rest and never reappear in a page.
Simple to install, with no cost added on top
A design decision, not a sales promise: there is nothing to host, and nothing to unlock tier by tier.
A module, like any other
The connector installs like any other extension of your shop. Nothing to host: no container to rent, no server to maintain, no subdomain to configure.
Every destination, on every plan
Including the free one. Plans differ only by the number of sites and events, no destination is reserved for a tier, which is nonetheless the norm.
Starting costs nothing
The free plan covers one site and 10,000 events a month, with no card. Nothing breaks if you go over the quota.
Questions fréquentes
Do I still need the TikTok pixel?
Yes, and that is deliberate. The pixel and the server send carry the same event id, so TikTok matches them instead of double counting. The pixel brings browser context, the server guarantees the purchase arrives even when the pixel could not run.
Will my conversions be counted twice?
No. Deduplication is based on the event id, which we pin from the order number. Two sends for the same order carry the same id: TikTok keeps one.
What personal data is sent?
Identifiers are normalised and then hashed before leaving our infrastructure: TikTok receives a fingerprint, never the address. Nothing goes out without the consent your banner recorded.
What happens if TikTok refuses an event?
Your console's Inspector shows the refusal with TikTok's exact message. An expired token is visible the same day, not at the monthly review.
The logical next step
Install the connector on your shop, know what it measures, and check what actually left.
PrestaShop module
Installing on a PrestaShop shop, step by step.
WooCommerce plugin
Installing on WordPress and WooCommerce.
Shopware extension
Installing on Shopware 6.
What we measure
The 28 events in plain words, and what a site without a shop sees.
Insights: the dashboard
Where you check what left, and what the destination made of it.
All destinations
The seven platforms one event can go to.
Connect this destination in minutes
The free plan includes every destination. No commitment, no card.