Methodology
How Sentinel verifies revenue
Ad platforms count conversions with their own pixels and their own windows, so one order can be claimed by Meta, Google, and TikTok at the same time. Verified revenue means one order, counted once, matched to the touches that actually happened. This page is the method, including what it cannot do.
1. The store's order feed is the ground truth
Sentinel never starts from a platform's conversion count. It starts from orders as your store records them, and works backwards to the touches that led there. That order feed comes from the systems below, in real time where the platform offers webhooks and by scheduled sync where it does not.
| Source | What Sentinel reads |
|---|---|
| Shopify | Order webhooks plus a scheduled sync, and the checkout web pixel for on-site events. |
| WooCommerce, Amazon | Orders and refunds through each platform's API. |
| Guesty | Reservations from the property-management system, for brands that sell stays alongside products. |
| Stripe, PayPal, Square | Charges and refunds. When the same purchase appears in both a storefront and a processor, it is collapsed to one order. |
| SendOwl, ThriveCart, Spiffy, Recharge | Digital sales, checkout-page sales, and subscription charges, with renewals inheriting the attribution of the first order. |
| Klaviyo | Email and SMS sends, so an email click can be a touch in the journey. |
One purchase per checkout. Sentinel builds a canonical checkout session for each purchase and de-duplicates across sources, so a Shopify order that also shows up as a Stripe charge is one order, never two.
2. First-party tracking that survives the browser
Sentinel's pixel runs on your own domain, with a branded tracking domain where you configure one. That matters because browsers treat third-party trackers as disposable.
- Visitor identity is stored three ways: local storage, a JavaScript cookie, and a server-set cookie that restores the others when Safari clears them.
- Each visitor also carries a device fingerprint hash, used only to re-link sessions from the same device when cookies are gone.
- When a visitor identifies themselves, at checkout or by email capture, their earlier anonymous sessions are merged. Identity resolves in a fixed order: email first, then visitor id, then device fingerprint.
- On Shopify, the checkout-extensibility web pixel records checkout events inside Shopify's own sandbox, where third-party scripts cannot run.
3. Matching an order to the touches that caused it
Every click that lands on your site carries what the platform sent with it, and Sentinel keeps all of it: the click id (Meta's fbclid, Google's gclid, TikTok's ttclid), the UTM parameters, the landing page, and the timestamp. When an order arrives, the visitor's journey is assembled from those touches inside each channel's attribution window.
- Click ids and UTMs tie a touch to a specific campaign, ad set, and ad, so the drill-down goes all the way to the creative.
- Promo codes can override the click path. A creator's code at checkout is deterministic evidence of where the customer came from, and Sentinel treats it that way, so creator and influencer revenue is attributed even when the click was lost.
- Per-channel windows are set by you. A touch outside its channel's window is dropped before credit is split.
- Untagged ads are scanned for daily and surfaced in Tracking Health, so a campaign launched without tracking parameters is found before it distorts the numbers.
4. Five models, one rule: credit sums to one
Once the touches are known, a model decides how to split the order's revenue between them. Sentinel offers five rule-based models, each with a view-through variant, and labels the model on every number it shows.
| Model | How credit is split |
|---|---|
| First click | All credit to the first touch in the window. |
| Last click | All credit to the last touch before the order. |
| Linear | Equal share to every touch. |
| Position | 40% first, 40% last, 20% spread across the middle. With one touch it takes all; with two, half each. |
| Time decay | More recent touches earn more, with a seven-day half-life. |
Whatever the model, the shares of one order always add up to exactly one. An order can never be worth more than itself across channels, which is the defect the reconcile view exists to expose in platform reporting. Revenue can be viewed on a cash or accrual basis, and refunds net down the order they belong to.
5. Reconcile: what the platforms claim, what Sentinel verified, what the store recorded
The reconcile view puts three numbers side by side for every channel and period:
- Platform-claimed: what Meta, Google, or TikTok report as conversion value for their own ads.
- Sentinel-verified: store orders that Sentinel matched to a touch from that channel, under the model you chose.
- Store actual: everything the store recorded, matched or not.
When an order cannot be matched, it stays unattributed. It is counted in store actual and shown as unmatched, never assigned to a channel by guess. Tracking Health reports the match rate so you know how much of your revenue the attribution is standing on.
6. Passback: teaching the platforms from verified sales
Verified orders are sent back to Meta through the Conversions API with session-level de-duplication, so a purchase the browser pixel already reported is not counted twice. Match-quality diagnostics show how many of those events the platform could tie to a person. Better signal in means better delivery out, and it is the same verified order feed doing the teaching.
7. What this method cannot do
- View-through is bounded. An impression without a click is weak evidence. The view-through variants give it limited credit inside a short window, and it is always labelled.
- Cross-device without a login is probabilistic. Device fingerprints re-link sessions on the same device; they cannot follow a person from phone to laptop unless they identify themselves on both.
- Attribution is not incrementality. Matching an order to a click says the click happened, not that the sale would have been lost without it. Sentinel can assign deterministic holdout groups by visitor for a proper lift test, and reports that separately from attributed revenue.
- Modeled numbers are labelled as modeled. Where a number is an estimate rather than a matched order, the interface says so.
Sentinel is free to connect while in beta, and the reconcile view is part of the free tier. See your own claimed-versus-verified numbers →