Skip to content

Revenue attribution

Know whose ad actually made you money.

See true ROAS from Stripe revenue, not platform reported numbers.

14-day trial · no card required · one script to install

yoursite.comLast 30 days ⌄

Visitors

0

↑ 12%

Revenue

$0

↑ 34%

Conversion rate

4.62%

↑ 8%

Revenue/visitor

$0.29

↑ 19%

AugSepOctNov

Source → Revenue

Direct$2,220
Google$1,480
Meta$780
TikTok$520
Bing$290
Instagram$108

The problem

Google and Meta can't both be right.

Every time a customer clicks a Meta ad and later a Google ad before buying, both platforms claim the sale. Add up what your ad accounts report and you'll always get more revenue than actually landed in your bank account.

Meta says
$12,400 in sales this month
Google says
$9,800 in sales this month
Combined claim
$22,200
Actual Stripe revenue
$14,600
$14,600 reconciled$7,600 unreconciled

Sample account, one calendar month. The $7,600 gap is the part nobody reconciles.

Attribution

See the exact journey, not just the total.

Every payment traced back to the real path that led to it.

Google's dashboard will claim this sale. So will Meta's, if you're not careful. Thexly shows the full path and assigns the $86 to the channel that actually closed it, not both.

Your client sees the same live numbers you do, not a monthly PDF that's already out of date.

One visitor · 14 March

iPhone · Safari · iOS 18Dublin, Ireland

  1. 9:14 AM

    Clicks Meta ad

    "Summer Sale: Carousel" → lands on /collections/summer

  2. 9:16 AM

    Views 2 more product pages

  3. 9:19 AM

    Leaves without buying

  4. 2:41 PM

    Returns via Google Search ad

    same product

  5. 2:44 PM

    Completes checkout

    Stripe payment: $0.00

The numbers problem

Meta, Google, TikTok, and Instagram don’t agree, and they shouldn’t

Ads Manager will show a ROAS. Google Ads will show another. TikTok and Instagram will each take credit for sales too. Add them up and you can get more “revenue” than your store or Stripe ever collected.

That isn’t a spreadsheet bug. Platforms are built to claim the sale. What you need for clients (and for yourself) is a number tied to payments, not to whoever yelled loudest in the pixel.

  • Don’t sum platform ROAS across Meta, Google, TikTok, or Instagram
  • Treat Ads Manager ROAS as a channel signal, not cash
  • Use payment-verified revenue when you report what actually worked

One order, four claims

Illustration

  • Meta Ads+$240
  • Google Ads+$240
  • TikTok Ads+$240
  • Instagram+$240
Platforms report
$960
Stripe collected
$240

$720 of that was never paid. Same customer, same order, counted four times.

Setup

Three steps. No guesswork after.

Nothing to migrate, nothing to tag manually. The whole install fits between two coffees.

  1. Step 01
    01

    Add one script

    No cookie banner, no SDK, live in under a minute.

    <script src="thexly.com/script.js">

    First event received

  2. Step 02
    02

    Connect your payment processor

    A read-only key where your processor supports it, whichever platform your revenue runs through.

    StripeLemon SqueezyPolarDodoYolfi
  3. Step 03
    03

    See true revenue

    Ad platforms know who clicked. Payment processors know who paid. Thexly is the one that checks both.

    Reconciled revenue↑ 34%

    $5,398

Already using Plausible or Umami? Import your historical data during setup. No need to start from zero.

Who it's for

Built for how you actually work.

The same reconciliation engine, framed two ways: one dashboard per client, or one dashboard for your own business.

Agencies

For agencies

  • Built for clients who sell directly through Stripe: ecommerce, DTC, subscriptions, SaaS, digital products (not lead-gen funnels)
  • Manage every client's real ROAS from one dashboard, no more logging into five ad accounts to guess the truth
  • Stop over-reporting results your clients can quietly check against their own Stripe dashboard
  • Hand clients a number backed by their bank account, not a platform's self-interested math
Start free trialAgency plan · 2 to 20 clients, from $29
Founders

For founders & SaaS teams

  • One script, connected to your payment processor, to see which page or channel actually converts
  • Cookieless and GDPR-compliant by default, no banner required
  • Simple enough to check every morning with your coffee
Start free trialStarter plan · 1 website
Client reporting

Give clients a number they can trust. No report needed.

Share a read-only public link and your client sees their live numbers directly, no login, no exported PDF to argue with. Branded, exportable reports are coming next.

Pricing

Simple decision, simple pricing

Two plans, both billed on what you manage rather than how much traffic you get.

Starter

$19/mo

Billed monthly

Single site, for founders and SaaS teams.

1 client site$19.00 / site

Fixed: one site per plan

Includes:

  • 1 website
  • Payment processor connection
  • Revenue by page/channel
  • Live shareable reports
  • 14-day free trial, no card
Start free trial

14-day free trial · no card required

Agency+

Custom

Priced to your book

Managing more than 20clients? Let's build a plan around your agency.

More than 20 client sitesQuoted to you

Volume pricing: we'll size it with you

Everything in Agency, plus:

  • More than 20 client accounts
  • Dedicated onboarding
  • Volume pricing
Talk to us

We reply within one business day

Comparison

What the platforms won't show you

Each tool is answering a different question. Only one of them is answering yours.

Accounts for cross-platform double-counting

Meta / Google reporting
No
GA4
No
Thexly
Yes

Tied to real, bank-verified revenue

Meta / Google reporting
No (self-reported)
GA4
No
Thexly
Yes

Multi-client / agency view

Meta / Google reporting
No
GA4
No
Thexly
Yes

Cookieless, no consent banner

Meta / Google reporting
GA4
No
Thexly
Yes

Setup time

Meta / Google reporting
GA4
Hours
Thexly
Minutes

FAQ

Questions & answers

Still unsure whether this fits how you're set up? Ask us directly.

Connect your payment processor, add one script, and see which channel actually paid for itself this month.

No card required.