You know you made money this month. What you don’t know is which channel actually paid for it — the newsletter, the YouTube video, the one viral post, or the ads.
Most solo operators can see traffic in one tab and revenue in another, but the line between them is a fog. So you keep spending on all of it, afraid to cut the wrong thing. Here’s a hand-run method to tie traffic to revenue — no attribution software, no spreadsheet gymnastics, just a routine you can start this week.
Want to line up traffic and revenue yourself? Here is how to connect Stripe and Google Analytics on one live board.
Why “which channel paid” is so hard to see
Because the click and the cash live in two different tools that don’t talk to each other. Analytics knows where the visitor came from. Stripe knows who paid. Neither one carries the other’s half of the story.

The trap is assuming the last click gets the credit. Someone finds you on YouTube, forgets, sees your newsletter three days later, then buys after Googling your name. Analytics may credit “direct” or “search” — and your video, the thing that actually started it, gets zero. That’s why gut-feel budget cuts so often kill the channel that was quietly feeding all the others.
The by-hand attribution routine
You can close most of this gap with two simple habits and fifteen minutes on a Friday.
1. Tag every link you control
Add UTM tags to the links you post — your newsletter, video descriptions, bio links, ads. It’s a snippet on the end of a URL that tells Analytics exactly where the click came from (Google’s Campaign URL Builder makes them for free). Now “which channel” stops being a guess for every link you own.
Two rules keep the tags useful. Use lowercase and the same spelling every time, because Analytics treats utm_source=Newsletter and utm_source=newsletter as different values (Google’s URL builder guide). And use mediums that GA4’s channel rules recognize, such as email for the newsletter or cpc for paid ads. Traffic that matches no rule lands in “Unassigned” (GA4’s default channel groups).
If you sell through Stripe Payment Links, tag the payment link itself. Stripe accepts utm_source, utm_medium, utm_campaign, utm_content and utm_term on the link URL. Set the link’s confirmation behavior to redirect, and Stripe passes those codes on to your redirect URL after payment, so your thank-you page receives the campaign that sent the buyer (Stripe: Track a payment link).
2. Ask the one question a tag can’t answer
At checkout or right after, ask: “How did you hear about us?” A single free-text box catches the whole messy path — “saw your TikTok, then your email.” This one question routinely beats any automated model for a small operation, because it captures the first touch, not just the last.
On Stripe you don’t need a separate survey tool. Open your Payment Link, and under Options click Add custom fields. A dropdown labeled “How did you hear about us?” with your real channels plus “Other” is quicker to count on Friday than free text; add an optional text field if you want the full story too. Stripe allows up to three custom fields on a checkout (Stripe: custom fields). Each answer shows on the payment’s details page in the Stripe Dashboard and is included in the checkout.session.completed webhook (Stripe: Customize checkout for Payment Links).
Links checked September 28, 2026.
3. Reconcile once a week on one page
Every Friday, line up three columns for the week:
- Channel — newsletter, YouTube, organic search, ads, referral.
- Signal — sessions or clicks from that channel (from Analytics/UTMs) plus any “how’d you hear” answers.
- Revenue landed — the actual paid orders from your processor for the same window.
You won’t get a perfect ratio. You’ll get something better: a clear picture of which channels show up next to real revenue week after week, and which just make noise. Patterns beat precision here.
One more column earns its place once you’ve run this a few weeks: cost. Next to each channel, jot what it costs you — dollars for ads, hours for the newsletter or video. A channel that lands modest revenue for two free hours is beating a channel that lands more for real ad spend. Revenue alone flatters the expensive channels; putting cost beside it is what tells you where your next hour or dollar should actually go.
Reading the result without fooling yourself
Look for consistency, not a single big week. A channel that sits beside paid orders four Fridays running is earning its keep. A channel with huge traffic and no revenue nearby is a reach play — fine, but know that’s what it is.
And protect your first-touch channels. The video or newsletter that starts journeys rarely gets the closing click, so last-click math always undervalues it. Your “how’d you hear” answers are the antidote — they’re the only place that quiet hero shows up. This is exactly the kind of judgment that gets easier when your numbers stop living in twelve separate tabs.
Two Analytics settings to check once
Stop Stripe from taking the credit. When a buyer pays on Stripe’s page and comes back to your site, Analytics can record that return as a new referral from Stripe. Google names third-party payment processors as the typical case. Add the Stripe domain your checkout runs on (Payment Links use buy.stripe.com) to your unwanted referrals: Admin → Data streams → your web stream → Configure tag settings → List unwanted referrals (Google: Identify unwanted referrals).
Know which model is doing the crediting. Under Admin → Data display → Events → Attribution settings, GA4 lets you choose a data-driven or rules-based model and a lookback window, which defaults to 90 days for most key events. The first-click, linear, time-decay and position-based models were retired in November 2023. User-scoped dimensions such as First user medium aren’t affected by this setting, so a report on First user medium is a rough first-touch view (Google: Select attribution settings). Whatever the model, it only credits visits Analytics actually saw, which is why the “how did you hear” answer still matters.
Links checked September 28, 2026.
If your real question is which video paid rather than which channel, there’s a separate walkthrough: how to see which video actually made you money.
When the board draws the line for you
The routine works, but it asks you to be the glue every week — copying from Analytics, pulling orders from Stripe, matching them up by hand.
The lighter version is a board where your traffic sources and your revenue source are already live cards side by side. In Vexlynk, an agent can read your Analytics, YouTube, and Stripe cards together and lay the channels next to the revenue for you — grounded in your real numbers, and only when you ask. You still make the call on what to cut. It just does the tedious matching so Friday takes five minutes, not fifty.
Frequently asked questions
Do I need attribution software to figure this out?
No. For a solo operation, UTM tags plus a “how did you hear about us?” question plus a weekly reconciliation will get you 80% of the insight at zero cost.
Why doesn’t Google Analytics just tell me which channel made the sale?
It sees clicks and events, not your bank. It also assigns credit with an attribution model and only counts visits it saw, so channels that start a buying journey but don’t close it are often undercounted. Pair it with your processor’s actual orders.
What’s the single highest-value thing to start with?
The “how did you hear about us?” question. It’s one text box, it captures the full path, and it surfaces the first-touch channels that automated tools miss.
Can Vexlynk track my ad spend or post to my channels?
No. Vexlynk reads your analytics, YouTube and payment sources read-only and helps you interpret them. It doesn’t run ads, spend money, or post anything — it sits on top of the tools you already use.
If you had to cut one channel tomorrow, do you actually know which one is quietly paying the bills?
If you’d rather see traffic and revenue on one board than stitch them together each Friday, Vexlynk’s free plan puts your first live card up in a few minutes.
Vexlynk
Vexlynk Team