How it works
Trakt has four moving parts and no black box. If our numbers ever disagree with your ad platform, you should be able to point at exactly why.
A pixel on your own domain records the click id from the landing URL (gclid and gbraid for Google, fbclid for Meta, msclkid for Microsoft, ttclid for TikTok) and stores it in a first-party cookie alongside a visitor id and a session id. Because the cookie is set on your domain, it survives Safari and Firefox third-party cookie blocking and most ad blockers, which is where the browser-based pixels lose their data.
Every pageview and event on that session is tied back to the same visitor. When someone clicks an ad in January, comes back from an email in March, and buys in July, Trakt keeps the thread. That is what lets it separate the ad that first won the customer from the last thing they clicked before buying, instead of handing all the credit to whichever touch happened to be last.
The order arrives on our servers directly from WooCommerce or Shopify, carrying the authoritative revenue, currency, and line items. Trakt matches it to the browsing session that earned it. The storefront supplies identity, the platform supplies truth: we never trust the browser for the money, and we never trust the webhook for the attribution.
A recovered conversion is only half the value if Google and Meta still cannot see it. Trakt sends each one back from our servers with the click id attached: Google Ads offline conversions and the Meta Conversions API. Smart Bidding and Advantage+ then optimise against all of your revenue instead of the fraction the browser managed to report.
The guardrails
Shadow mode builds the exact payload Trakt would send to Google and Meta and logs it without sending. Read it, check it against your own numbers, then switch to live. Your ad account is never touched during evaluation.
Conversions pushed server-side are deduplicated against the ad platform on order id and event id. If your existing pixel already reported a sale, Trakt sending the same one does not count it twice.
A refund is subtracted from the campaign that earned the sale, so your reported ROAS reflects the money you kept rather than the money that came back.
If Trakt disagrees with your ad platform, the customer journey view shows every touch, in order, with its source. The number is never a figure you have to take on faith.
Connect a store, run Trakt in shadow mode, and compare it against your ad account before you change a thing.