- US device IDs in the graph
- 750M+
- Match rate on events
- 90%+
- Identity window, per customer
- Lifetime
- Most brands are live
- <20 min
How it flows
How a Funnelish event reaches the TikTok Events API. Tracked on the funnel page, resolved to a person, then sent.
01 Capture
Captured from Funnelish
Add the Upstack Pixel to your Funnelish funnels to track what shoppers do there. When Funnelish creates the order in Shopify, Upstack records it like any other Shopify order.
See the Funnelish integration →
FunnelishWhat it sends page / eventsfrom the Upstack Pixel in each funnel’s headfbclid / gclid / ttclidclick IDs kept on the way to checkoutorder_idthe Shopify order Funnelish createsorder sourceshows as Funnelish in Upstack reports
02 Understand
Resolved to one person before it leaves
Every Funnelish event is matched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer rather than two strangers.
How resolution works →
Resolved before it is sent - IdentityMatched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer.
customer_typeNew or returning, resolved before send.- DeduplicationBrowser and server copies of the same purchase collapse on event ID, so nothing is counted twice.
- Bot and fraud filteringAutomated traffic never reaches the model, because what you keep out of the training set matters as much as what goes in.
03 Activate
Delivered to the TikTok Events API
Forward resolved conversions to the TikTok Events API so the algorithm optimizes on customers, not sessions.
See the TikTok Events API integration →
TikTok Events APIWhat it receives email / phone (hashed)Events API matchingttclid / ttpattribute the clickevent_idbrowser and server dedupevalue / currencyoptimize on revenue
Which events reach the TikTok Events API
Each Upstack event is mapped to the TikTok Events API event below before it is sent.
| Upstack event | Sent to TikTok Events API as | Key data on the event |
| Page view | Pageview | url, referrer |
| Product view | ViewContent | content_id, content_type, value, currency |
| Add to cart | AddToCart | content_id, content_type, value, currency |
| Checkout | InitiateCheckout | value, currency, quantity |
| Purchase | Purchase | content_id, value, currency, order_id |
Every event carries email, phone and external_id when available, hashed with SHA-256 as the Events API requires, plus the ttclid click ID captured by the Upstack Pixel for deterministic matching.
The catch
Funnel pages sit outside your Shopify theme, so the Upstack app embed doesn't run on them, and click IDs such as fbclid, gclid and ttclid are easily dropped on the way to checkout.
Add the Upstack Pixel to each funnel and keep the click IDs on the links to checkout. The order itself reaches Upstack when Funnelish creates it in Shopify, counted once per Shopify order ID.
Where to check in the TikTok Events APIDelivery you can audit
TikTok Events Manager › Test Events
then the event's match rate once live traffic is flowing.
What changes
What changes when Funnelish feeds the TikTok Events API. Two gains on the TikTok Events API side, two on the Funnelish side.
TikTok Events API
Server-side delivery
By default Upstack sends events to TikTok from its servers as well as through the TikTok tag, so an event an ad blocker or browser privacy setting stops in the browser still arrives from the server.
TikTok Events API
Identity-resolved events
Events sent to TikTok carry the resolved customer whenever Upstack can identify one, matched against a 750M+ device graph.
Funnelish
Funnel pages tracked
The pixel loads in the head of every funnel page, so visits and the events you configure are recorded on pages your theme never touches.
Funnelish
One setup, every destination
Connect Funnelish once and forward to every ad platform and email tool you run.
-
01
Add the Upstack Pixel to each funnel
In Funnelish, add the Upstack Pixel snippet to each funnel as a tracking code placed with Append To Page Head. If the funnel links to Shopify, add the script that keeps click IDs and UTMs on the link.
-
02
Add the TikTok destination
Under Destinations, add TikTok with your Pixel ID (a 20 character alphanumeric string, also called the Dataset ID) and an Events API access token generated in TikTok Events Manager, which is shown only once.
-
03
Check Browser and Server events
Upstack marks the destination Healthy, and TikTok Events Manager shows events arriving via both Browser and Server (CAPI), with a test order’s Purchase event appearing within a few minutes. “Update Recommended” warnings in Events Manager are normal and need no action.
FAQ
Questions about Funnelish and the TikTok Events API.
Will I see duplicate conversions if I run both the TikTok Pixel and the Events API?
No, as long as the Pixel ID in Upstack matches the TikTok Pixel firing in your storefront. Upstack sends a shared event_id on every server-side event and TikTok keeps only one copy. If you see duplicates, the Pixel IDs almost always differ.
Which events does the TikTok Events API receive?
PageView as Pageview, ViewContent as ViewContent, AddToCart as AddToCart, InitiateCheckout as InitiateCheckout and Purchase as Purchase.
Which customer parameters are sent to the TikTok Events API?
Every event carries email, phone and external_id when available, hashed with SHA-256 as the Events API requires, plus the ttclid click ID captured by the Upstack Pixel for deterministic matching.
How do I check that Funnelish events are reaching the TikTok Events API?
Upstack marks the destination Healthy, and TikTok Events Manager shows events arriving via both Browser and Server (CAPI), with a test order’s Purchase event appearing within a few minutes. “Update Recommended” warnings in Events Manager are normal and need no action.
How long does it take to connect Funnelish to the TikTok Events API?
Most brands are live in under 20 minutes. Once Funnelish events reach Upstack, every destination receives the same resolved events, the TikTok Events API included.