---
title: "Stripe Revenue Attribution | Cometly"
description: "Sync Stripe with Cometly to attribute payments, subscriptions, and trials back to the ads that drove them — and see which campaigns generate real revenue."
source: "https://www.cometly.com/solutions/stripe-revenue-attribution"
---

Solutions / Stripe Revenue Attribution

# Connect every ad to real Stripe revenue

See exactly which ads drive MRR, ARR, and trial-to-paid conversions. The native Stripe integration sets up in two minutes, with no webhooks, no engineers, no spreadsheets.

Get started

## MRR + ARR by plan

Att. Model: First Touch Source: Stripe

| Plan | Customers | Net MRR | ARR · Δ |
| --- | --- | --- | --- |
| Growth · monthly | 1,842 | $184.2K | $2.21M +24% |
| Scale · annual | 612 | $96.8K | $1.16M +18% |
| Pro · monthly | 2,419 | $72.4K | $869K +11% |
| Starter · monthly | 4,108 | $41.0K | $492K −3% |

What you actually get

## Stripe-native. Set up in two minutes

### Connects to Stripe in one click

Log in to Stripe once. Cometly automatically tracks every signup, trial, new customer, recurring payment, refund, and churn event, with no setup required.

Stripe · synced objects Live

Workspace Object Records Status

- prod subscriptions 12,418 Synced
- prod invoices.paid 84,902 Synced
- prod charges.refunded 318 Synced
- prod customers 9,612 Synced

OAuth in 30s · no webhooks to wire up

### MRR and ARR, broken out by ad

Every campaign and every ad gets a line for new MRR, churn, net revenue, and LTV at 30, 60, and 90 days. You see exactly which ads grow the business.

MRR + ARR · by ad LTM

Ad Spend Δ MRR ARR

- Video · founder hook $4.2K +$18.4K $842K
- Static · pricing grid $2.1K +$6.1K $210K
- Carousel · proof $1.4K −$0.8K $86K

### Find the trials that actually pay

Group every trial back to the source that brought it in. See which channels send real buyers, and which keep sending you tire-kickers.

Trial → paid · by source Stripe cohorts

Trials Paid Rate

- 20%
- 29%
- 43%

Stripe `customer.subscription.created` ÷ trial starts

### Real ROAS, even on long cycles

Watch September ad spend turn into January revenue. PLG teams with multi-month payback finally see real ROAS instead of month-1 guesses.

Spend → revenue · 6 mo Cohort

Spend Revenue

Sep · Oct · Nov · Dec · Jan · Feb

### Tell Meta and Google about paying customers

Send paid-customer events (not just signups) to Meta, Google, LinkedIn, TikTok, Microsoft, and Reddit. Meta rates Cometly's enriched events as “Great”, so the algorithms optimize for buyers, not browsers.

customer.created → ads Top tier

Platform Events Match

- Meta 12,418 Great
- Google 9,612 Great
- LinkedIn 4,210 Good
- TikTok 2,118 Great

Hashed PII · IP · fingerprint · every event

### Zero engineering required

Setup takes hours, not weeks. Most SaaS teams are live the same day they sign up. Your dev team never has to touch it.

Setup · 2 minutes No devs

Step Time Status

- Connect Stripe 30s Done
- Install Comet pixel 1 min Done
- Map plans → events 30s Done
- Send to ad platforms auto Done

Live the same day · skip the onboarding call

Stripe triggers

## Every Stripe event, every filter

Pull from every payment trigger Stripe fires, then refine with filters so only the events that matter ever hit your attribution.

Triggers · Filters

### 8 Stripe triggers, all server-side

New Payment, New Subscription, Updated Subscription, New Trial, First Payment, Canceled Subscription, New Customer, refunds, invoices, and more. Each trigger lands in Cometly in real time and can be narrowed down with filters before it ever counts as a conversion.

- 8 built-in Stripe triggers Payments, subscriptions, trials, refunds, and customer lifecycle events, all natively wired.
- Filter by amount, plan, currency, or metadata Only attribute the events that count: paid customers, specific plans, hitting a revenue floor, matching a UTM in metadata.
- Real-time, server-side ingestion No webhook config, no missed events. Cometly maintains the Stripe connection so your team doesn't.
- Dedup automatically across triggers A New Subscription and First Payment for the same customer count as one conversion, not two.

See it in a demo

Stripe · Trigger 8 triggers

Choose trigger

- First Payment Triggers on a customer's first successful payment greater than $0.00 Recommended
- New Payment Triggers when any successful payment is greater than $0.00 Available
- New Subscription Triggers when a customer has signed up for a new plan Available
- Updated Subscription Triggers when a customer subscription has changed Available
- New Trial Triggers when a customer initiates a trial period Available
- Canceled Subscription Triggers when a subscription is canceled Available

Filters · refine the events that count

amount > $0 currency = USD plan = growth_annual metadata.utm_source + Add filter

First Payment trigger

### The moment a customer first pays you

Use case · First paying customer (PLG & sales-led) How it's used: fire the moment a customer pays you for the first time. Works for self-serve SaaS (trial → first paid invoice) and sales-led motions alike. When a closed-won deal lands its first Stripe charge, that's the same signal. How it works: when the trigger fires, Cometly automatically looks up every payment associated with that Stripe Customer ID, confirms it's the customer's first successful payment greater than $0.00, and accurately attributes that revenue back to the original marketing source.

- Automatic Customer ID history lookup No guesswork, no SQL. Cometly queries the customer's full payment history the moment the trigger fires.
- Works for PLG trials and sales-led closed-won Same trigger for self-serve trial conversions and for sales-assisted deals once Stripe invoices them.
- Filters out $0 and trial charges Only the customer's first real paid transaction qualifies, so trial starts and $0 invoices never inflate revenue.
- Pushed back to Meta, Google, LinkedIn The buyer signal lands in your ad platforms enriched for top match-quality tier, so algorithms optimize for real customers.

Get the First Payment setup

First Payment · trigger Auto-lookup

Stripe customer Matched

cus_Pa4Q9k2sLm

Atlas Inc.

maya@atlas.co · Growth · annual

- Original source Meta · video v3
- First click Feb 12
- Time to paid 34 days

Payment history · auto-scanned 5 charges

- ch_3PqA2k trial start Mar 04 $0.00
- ch_3Pq7Lm $0 invoice Mar 06 $0.00
- ch_3PqHs9 first paid Mar 18 $249.00
- ch_3PqLp1 recurring Apr 18 $249.00
- ch_3PqQz4 recurring May 18 $249.00

First paid charge · attributed to Meta · video v3

FAQ

## Stripe-native revenue attribution: FAQs before you flip the switch

Identity stitching across devices, trials vs paid signals, refunds, and long cohort windows. Book a demo with your billing model in mind.

Talk to sales →

How does Cometly know a Stripe charge came from an ad?

The Comet Pixel drops a first-party identifier when someone lands on your site. When that same person pays through Stripe, even months later and even on a different device, Cometly matches the payment back to the original ad click.

Does this work for $1 trials, free trials, and freemium?

Yes. Cometly separates $1 trial starts, full subscription starts, and recurring payments. You can optimize Meta or Google on whichever signal matters most to you, usually “new paid customer,” not “trial start.”

Can I see year-1 LTV ROAS?

Yes. Cometly stores 3+ years of data and supports cohort dashboards out to year-3 LTV. Compare cohorts side by side to see which months of ad spend produced the most durable revenue.

What happens with refunds and chargebacks?

Refunds, partial refunds, and chargebacks flow in from Stripe automatically and reduce attributed revenue. You see net revenue, not inflated gross numbers.

Do I still need GA4 or Mixpanel?

They answer different questions. GA4 and Mixpanel tell you what people do inside your product. Cometly tells you which ad brought them in and what they paid. Most SaaS teams run all three.

## Stop guessing on ROAS. Connect Stripe and see

Every ad mapped to real MRR, ARR, and trial-to-paid revenue, so ROAS reconciles to Stripe, not to platform estimates, and you stop scaling on conversions that never become customers.