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

SourceLoop captures UTM parameters, click IDs (GCLID, fbclid, li_fat_id), referrer, and the visitor's full journey, then attaches them to every customer in Stripe, Shopify, Paddle, Polar.sh, Lemon Squeezy, and WooCommerce.

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.

How it works

Three steps from snippet to revenue tied back to source

One script, one OAuth connection, ROAS that reflects reality.

  1. <script src="https://cdn.sourceloop.ai/sl.js" defer></script>
    01

    Install the snippet

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

  2. 02

    Connect your payment platform

    One-click OAuth into Stripe, Shopify, Paddle, Polar.sh, Lemon Squeezy, or WooCommerce. We match each customer to the visitor session.

  3. A

    Acme Co

    Pro plan, $99/mo

    • Source Google / CPC
    • First touch LinkedIn / Paid
    • Projected LTV $2,376
    03

    Revenue ties back to channel

    Each customer lands in your CRM with attribution, MRR, ARR, and LTV linked. ROAS and payback reports work day one.

Payment tracking by platform

Tie revenue from Stripe, Shopify, Paddle, Polar.sh, Lemon Squeezy, and WooCommerce

One snippet, one OAuth, 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 via OAuth. We match each new Stripe customer to the visitor session that brought them in, then attach the source, medium, campaign, and full journey to the customer record. The same flow works for Shopify, Paddle, Polar.sh, Lemon Squeezy, and WooCommerce.

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, persists it across the entire customer lifecycle, and writes it to the Stripe customer record at the moment of payment.

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. Subscription billing through Stripe, Paddle, Polar.sh, and Lemon Squeezy reports revenue movement back to the source automatically.

Can I track Shopify and WooCommerce orders with UTM and ad source?

Yes. SourceLoop captures attribution on first visit, persists it through add-to-cart and checkout, and attaches it to each Shopify or WooCommerce order. Thank-you-page tracking, post-purchase upsell flows, and multi-currency checkouts are all supported out of the box.

Can I sync customer revenue back to Google Ads, Meta, or LinkedIn?

Yes. With Conversion Sync, we push revenue events back to Google Ads (using GCLID, Wbraid, Gbraid), Meta CAPI, and LinkedIn CAPI so Smart Bidding optimizes against actual revenue, not just leads.

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 LTV and ROAS by channel become standard reports in the dashboard. You can break them down by source, campaign, content, and landing page.

Does this work with consent banners and GDPR?

Yes. We integrate with OneTrust, Cookiebot, Iubenda, Osano, and custom CMPs. When a visitor declines analytics or marketing cookies, we collect only minimal aggregated data in line with GDPR and the ePrivacy Directive. All cookies and local storage are 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 or Paddle, 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