How it works

Attribution is a trust-me category. So here is the whole mechanism.

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.

01

Capture the click, first-party

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.

02

Follow the whole visit, not just the last hop

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.

03

Join the order to the session, server-side

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.

04

Push the conversion back to the ad platform

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

Four promises that make the number trustworthy.

Nothing is written until you say so

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.

It will not double-count

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.

Refunds reverse

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.

You can always say why

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.

See what your ad platforms are missing.

Connect a store, run Trakt in shadow mode, and compare it against your ad account before you change a thing.