Every shop purchase where you measure results
A browser pixel loses purchases when the shopper blocks scripts or closes the tab before the thank-you page. Basketly sends shop purchases server-side to Meta, GA4, TikTok, Pinterest, ChatGPT Ads, Klaviyo, Google Ads and Microsoft Ads, and the balance shows whether they all arrived.

Screenshots from a demo organisation. People and numbers are fictional.
Purchase balance
A period of 7, 14 or 30 days, counted by the purchase day in the organisation’s time zone. Tiles go from the shop to each platform, and a table shows the same day by day, with the five most common error reasons.
- 1
Shop orders
Bought, not cancelled, with revenue in the main currency.
- 2
Accepted by Basketly
Purchases accepted for sending and their share of orders.
- 3
Every destination
Each Meta receiver and each connection to another platform: accepted, errors and waiting.
What each platform gets
The same purchase goes to every platform you switched on, in its own queue, once per event id. Klaviyo gets only purchases with an email address, and Google Ads and Microsoft Ads only purchases they can attribute to their ads. Network errors, limits and outages are retried after 5 minutes, with growing gaps, up to 6 attempts.
| Platform | Event | What is inside |
|---|---|---|
| Meta | Purchase | Value, currency, product ids, hashed e-mail and phone, fbp and fbc when known |
| Google Analytics 4 | purchase | Order number as transaction_id, value, currency, items, hashed e-mail |
| TikTok | CompletePayment | The same event id as the pixel, hashed e-mail, value, currency, contents |
| checkout | The same event id as the Pinterest tag, hashed e-mail and phone, the click id when known, value, currency, products, order number | |
| Klaviyo | Placed Order | Only purchases with an email address: the profile by email, value, currency, items, order number; subscribes nobody |
| Google Ads | ClickConversion | A purchase from a Google ad click (gclid, gbraid or wbraid) to the chosen conversion, value, currency, order number; without a click only with the hashed e-mail when the account has enhanced conversions for leads on |
| Microsoft Ads | OfflineConversion | Only a purchase from a Microsoft ad click (msclkid) to the chosen conversion goal, value, currency |
One switch to turn it on
You add a GA4, TikTok, Pinterest, ChatGPT Ads, Klaviyo, Google Ads or Microsoft Ads connection in Integrations. In Conversions each connection has a “Send purchases” switch. A purchase needs no Meta flow to reach another platform.
See integrations- GA4: measurement ID G-… and a Measurement Protocol secret
- TikTok: ad account, pixel code and access token, checked when saved
- Pinterest: ad account and access token; Klaviyo: a private API key
- Google Ads and Microsoft Ads: sign in, then choose the ad account and the purchase conversion
- Keys stored encrypted and never shown again
An alert when purchases stop arriving
The “Shop alert” automation trigger checks the last 24 hours every hour: purchases refused by Meta or another platform, and paid orders with no purchase accepted. A ready template then e-mails the team.
See shop automationsA platform accepting a purchase means it received and counted it. It does not prove how well it matched it, whether a campaign optimises on it or whom the sale is attributed to. Only purchases with an e-mail go to Klaviyo, and only purchases from clicks on their ads go to Google Ads and Microsoft Ads (Google also with an e-mail under enhanced conversions).
Meta, TikTok, Pinterest and ChatGPT Ads drop duplicates by event id, so we send the same id the pixel uses. GA4 recognises the purchase by the order number (transaction_id), and Klaviyo by the order number as unique_id.
A server-side purchase does not know the browser session, so the client id is derived from the order. GA4 then counts the revenue without joining it to a visit. GA4 accepts events at most 72 hours old.
Yes, for every new shop purchase. Purchases from before the switch was turned on are not sent back in time.
Related features
- Meta Conversions APIPaid shop orders sent to Meta from the server: a durable queue, deduplication, SHA-256 hashing and a result for every delivery.See details
- IntegrationsShop, ads, product catalogues, analytics and marketing in one catalogue, each integration’s state counted from what is actually connected.See details
- Self-checkOne check of your whole setup: the shop, purchases sent to Meta, logins, background jobs and automations, with a link to the fix for every problem.See details
- Orders and buyersEvery shop order with its lines and state, revenue, average basket, new and returning buyers, and 24 months of history.See details
- Product feedsYour shop’s feed fixed automatically and by your rules, every product diagnosed against Google Merchant Center and Meta catalogue requirements, served at its own address.See details
- Sales reportOne sentence on how the shop is doing, the six key figures and conclusions with a next step — and tabs below, each answering one question. Every number with its truth level: the shop, a platform or the last click.See details
Get started in under 5 minutes
Connect your shop and Meta and see how many purchases really arrive.
- Free up to 100 orders a month
- No developer needed
- Purchase balance and self-check