Skip to content New SourceLoop MCP: chat with your attribution data in Claude, ChatGPT & Cursor
SourceLoop

Payment tracking

Revenue attribution for Stripe, Paddle, and Shopify

Every customer in Stripe, Shopify, Paddle, Polar, Lemon Squeezy, or Dodo tied to the campaign that found them. See what moved MRR, which trials convert, and how fast each channel pays back.

Free 7-day trial. No credit card required.

SourceLoop dashboard showing revenue attributed back to channel, campaign, and source

Used by 750+ marketing teams, agencies, and SaaS companies

  • Bennett
  • Vectivo
  • Siite
  • Huemor
  • Infludata
  • Wonsulting
  • Orchly
  • PacificCrest
  • ReachTopCPA
  • BrassAnimals
  • TechCXO

Why revenue reporting misleads

First-order revenue is the wrong number to optimise against

Payment data is the only conversion that is unambiguously real. It is also the one most marketing tools never see, because the money lands in a billing system that knows nothing about campaigns.

With SourceLoop

Every payment traced to the campaign behind it

First orders, renewals, upgrades, and refunds all joined back to the original source, so channels are ranked on the revenue they keep rather than the revenue they start.

  • 01 Off-site checkouts and payment links still resolve to a source
  • 02 Renewals and upgrades credited to the original campaign
  • 03 Trials attributed whenever they convert, not within a window
  • 04 Channels ranked on lifetime value, not first-order value
  • 05 Refunds and churn subtracted from the channel that earned them

Attribution stack

Revenue attribution from first click to closed payment

Stop guessing which channel actually pays for itself. SourceLoop ties the source captured on the first visit to the payment, and back to your CRM and ad platforms.

Payment platforms

Works with your billing stack, Stripe, Shopify, Paddle, Lemon Squeezy and more.

Source capture

Every payment carries the source that drove it.

Analytics

Revenue by channel, with true ROAS behind each.

Full journey

See every touch before the card was charged.

CRM sync

Revenue lands in your CRM, attribution mapped.

What moved MRR · September

Net +$6,380
Movement Top channel MRR
New business Paid search +$4,180
Trial converted Organic +$2,310
Expansion Organic +$1,120
Churned Paid social −$1,230

Subscriptions

See what moved MRR, and which channel moved it

Every month splits into new business, trials converted, expansion, contraction, and churn, including failed payments. Each movement is tied to the channel that brought those customers, so you can see which campaigns bring revenue that stays.

  • MRR, active subscriptions, and churn by channel
  • Renewals and upgrades credited to the first campaign

Trials and lifetime value

Know which channels convert trials and pay back fastest

The cheapest signups are often the ones that never pay. See trial to paid rate and days to convert by channel, then lifetime value and the months each channel takes to earn back its spend.

  • Trial to paid rate and days to convert
  • LTV, payback, and revenue cohorts by channel

Trials and payback · by first touch

12 months
Channel Trial → paid LTV Payback
Organic 31% $1,980 Now
Paid search 24% $1,420 4 mo
Paid social 11% $610 11 mo

How it works

Three steps from snippet to revenue tied back to source

One script, one connection, ROAS that reflects reality.

  1. <script async src="https://t.sourceloop.ai/tracking-v3.js"></script>
    01

    Install the snippet

    Drop one script tag in your <head>. Five minutes, no engineer required.

  2. 02

    Connect your payment platform

    Connect Stripe, Paddle, Polar, Lemon Squeezy, or Dodo with a webhook, or Shopify in one click. We match each customer to their visits.

  3. A

    Acme Co

    Pro plan, $99/mo

    • Source Google / CPC
    • First touch Organic / Blog
    • LTV so far $2,376
    03

    Revenue ties back to channel

    Subscriptions, Trials, and Lifetime value reports fill in by channel from day one.

Payment tracking by platform

Tie revenue from Stripe, Shopify, Paddle, Polar, Lemon Squeezy, and Dodo

One snippet, one connection, every payment attributed.

FAQ

Revenue attribution and Stripe tracking, FAQ

How do I tie Stripe customer revenue back to UTM source?

Install the SourceLoop snippet on your site and connect Stripe in Setup by pasting a webhook signing secret. We match each new Stripe customer to the visitor session that brought them in, then attach the source, medium, campaign, and full journey to that customer in SourceLoop. The same flow works for Paddle, Polar, Lemon Squeezy, and Dodo, and Shopify connects in one click.

Why does my Stripe customer arrive without source data?

Stripe sees the checkout, not the visitor's journey. By the time someone clicks an ad, browses your site, signs up, trials, and then pays a few weeks later, the original UTM is long gone from the URL. SourceLoop captures it on the first page view, keeps it on the person through signup and trial, and ties it to the payment the moment it lands.

Does this work for subscriptions, renewals, and expansion revenue?

Yes. SourceLoop ties source data to the customer, not just the first invoice, so MRR, ARR, churn, and expansion all roll up by acquisition channel. The Subscriptions report shows what moved MRR each month (new business, trials converted, expansion, contraction, and churn) by the channel that brought those customers.

Can I track Shopify orders with UTM and ad source?

Yes. SourceLoop captures attribution on the first visit, keeps it through add-to-cart and checkout, and attaches it to each Shopify order, down to the products bought and their margin.

Can I send customer revenue back to Google Ads, Meta, or ChatGPT Ads?

Yes. Conversion sync sends trials, new subscriptions, and payments, with their value, to Google Ads, Meta, and ChatGPT Ads, so each platform's bidding optimizes for paying customers, not signups.

How do I calculate LTV and ROAS by channel automatically?

SourceLoop ties every payment, every renewal, and every expansion event back to the original source, so the Lifetime value report shows LTV, payback, and revenue cohorts by channel out of the box. Break them down by source, campaign, ad, and landing page.

Does this work with consent banners and GDPR?

Yes. SourceLoop follows Google Consent Mode, which OneTrust, Cookiebot, Iubenda, Osano, and most other banners set. When a visitor declines, SourceLoop respects it, and cookieless mode is there if you want no cookies at all. Everything is first-party on your domain.

What is subscription revenue attribution?

It is attributing the whole revenue stream a customer produces, not just the first payment. A campaign that brings in customers paying 49 a month for three years is worth vastly more than one producing the same number of signups who churn at month two, and first-order attribution cannot tell those apart.

How do you attribute renewals and upgrades?

Every payment is tied to the customer record, and that record already carries its original source. When a renewal, upgrade, or expansion posts in Stripe, Paddle, or Polar, it is credited to the campaign that first produced that customer, however long ago that was.

Can I see LTV and payback by channel?

Yes. Because renewals stay attached to the original source, each channel carries a real lifetime value and a payback period alongside cost per acquisition, which is usually where the ranking of channels changes most against a first-order view.

Are refunds and churn taken back out of the numbers?

Yes. Refunds, failed payments, and cancellations are applied against the channel that earned the original revenue, so a source with a high refund rate stops looking better than it is.

Track every conversion to its true source

Capture and send full attribution data from every signup, lead, booking, and sale to your CRM and ad platforms, so you know exactly what's driving revenue.

Without SourceLoop

Untagged

Kayden Floyd

kayden@abc.com

  • SourceUnknown
  • MediumUnknown
  • CampaignUnknown
  • Landing pageUnknown
Journey
No touchpoints captured

With SourceLoop

Auto-tagged

Kayden Floyd

kayden@abc.com · Acme Co.

  • Channel Paid Social
  • CampaignFree_demo
  • Landing page/pricing
Journey
Synced to HubSpot Google Ads Meta