Campaign tracking · Marketers, SaaS founders and agencies using hosted checkout
How to Track Stripe Payment Link Sales Back to Your Campaigns
To track Stripe Payment Links back to marketing, record the website visit before checkout and preserve a reference that the payment record can match. In Attriboo, install the standard tracker on the page holding an ordinary Stripe link, connect the receiving Stripe account, and verify one known paid record. Campaign labels, link clicks and confirmed payments are different evidence.

Which Payment Link Path Are You Actually Using?
If your buy button asks your own server to create a Checkout Session, use the server-created Stripe Checkout campaign guide to inspect the browser reference, created Session and paid-record match. The hosted-link decoration steps below do not verify that server handoff.
Start with the place where the buyer clicks. A Stripe link on a tracked pricing page gives Attriboo a website visit to work with. A link opened straight from an email, social post or QR code can skip your website entirely. Those paths need different expectations.
Stripe Payment Links are reusable hosted checkout links. They are not the same as Link, Stripe’s saved-payment experience, and they are not every checkout built with Stripe. Stripe’s Payment Links overview describes sharing links on a website, in email or on social media.
| Buyer’s Path | What You Can Check | Next Step |
|---|---|---|
| Tracked page → ordinary Stripe link | A website visit and a checkout reference. | Use the standard link workflow below. |
| Email, social or QR → Stripe directly | The payment and any campaign labels supplied with that link. | Keep direct-link reporting separate; no preceding website visit is guaranteed. |
| Embedded widget, redirect or server-created checkout | The actual reference passed by that integration. | Have the developer inspect the matching checkout route. |
| Existing order or affiliate ID in client_reference_id | Who already relies on that value. | Preserve it with the documented server-created Checkout metadata route. |
My recommendation is to verify one important checkout path before tagging every campaign. A report with clean campaign names is still incomplete if the payment cannot be connected to the recorded buyer. Keep your current checkout working while you inspect that connection.
What Is the Difference Between UTM Tags and a Visitor Reference?
Campaign tags describe where a link was distributed. A visitor reference helps connect a checkout record to activity already recorded for that visitor. One does not automatically substitute for the other.
Stripe’s URL-parameter guide documents UTM campaign labels and client_reference_id. It passes that reference to the Checkout Session and the completion event. UTM values can also pass to a configured post-payment redirect. A campaign label alone does not establish a match with an Attriboo visitor.

For example, a newsletter sends someone to your pricing page with utm_source=newsletter, utm_medium=email and utm_campaign=november-launch. They open the Stripe link there and pay $99. The campaign labels explain the arrival. The supported visitor reference supplies the connection into checkout. The paid record supplies the $99 outcome. Do not record $99 once for the click and again for the payment.
Use a consistent UTM naming system on external campaign links. Keep customer names, email addresses and private keys out of URLs. Do not paste one visitor’s decorated checkout URL into a newsletter for everyone else.
How Do You Connect a Standard Website Payment Link?
Install tracking on the published website that sends buyers to Stripe, then connect the account that receives their payments. These are separate connections. Connecting Stripe does not install the website script.
- Add the standard Attriboo script once using your platform’s installation guide. Publish the change and confirm a recorded visit for the correct website.
- Open Setup, then Connect your payment provider. Choose Stripe and use the supported connection shown there. Check the receiving account, especially if your business has more than one.
- Locate the ordinary link on the published page that opens buy.stripe.com. Follow that actual route rather than testing an unrelated checkout URL from a note.
- Check the destination after the tracker has run. The supported standard-link path adds the recorded visitor reference as client_reference_id. If another system owns that field, use the alternative route in the next section.
A non-technical owner can ask the person who manages the website to inspect the link destination. Copying the link address after the page has loaded may help for an ordinary link; a custom button or redirect can behave differently. Check the resulting Checkout Session if the reference is still unclear. To list the links on your homepage and pricing page that send buyers to a checkout on another domain, run the free tracking checkup.
The tracker needs to be running for its automatic link handling to work. A browser opt-out, blocker or a site’s configured tracking controls can prevent a visit or reference from being recorded. Use the installation check to distinguish “script installed” from “visit received,” rather than repeatedly reconnecting Stripe.
What If Checkout Already Uses client_reference_id?
Preserve the existing business identifier. The current standard tracker writes its visitor reference into client_reference_id on supported payment links, so do not assume it can safely coexist with an order number or affiliate reference in that same field.
Ask your developer to use the documented server-created Stripe Checkout route and attach the actual Attriboo visitor reference in metadata.attriboo_visitor_id. Keep the application’s own identifier where it belongs. That guide explains reading the available browser reference and passing it to the existing checkout endpoint without putting private keys in the page.
An embedded Stripe Buy Button, a pricing-table widget or a redirect through another service needs its own check. The ordinary-link behavior is not a promise that every Stripe-branded element carries the same reference. Choose the instructions for the checkout you actually use.
Do not generate a random replacement ID to make a parameter appear populated. Attriboo checks whether a supplied visitor reference belongs to recorded activity for that website. A string in the URL is useful only if the receiving integration can match it correctly.
Which Part of Your Payment Link Setup Needs Attention?
Choose your checkout path and the evidence you have checked. The worksheet points to the next useful action, including when a direct link or an existing business identifier calls for a different approach. It does not inspect your account.
Find your next checkout check
Does Your Payment Link Have a Matching Route?
Choose the path and evidence you have checked. No URL, customer details or account access is needed.
Start with the default “not checked” answers if you are unsure. Mark an item present only after checking the published site or provider record. A completed worksheet is a record of your answers, not a measured attribution-accuracy score.
How Do You Verify a Payment Without Making a Live Charge?
Use a provider-supported test flow where your Attriboo connection supports it, or reconcile an existing authorized payment. Check the website visit, the receiving Stripe account and the paid record as one sequence. A successful page visit alone is not enough.
Stripe’s testing documentation directs developers to test environments and test payment details. Do not make a live purchase just to complete this guide. Test-mode availability in Attriboo depends on the connection being used; confirm it before beginning.
- Confirm the visit belongs to the intended Attriboo website and that the actual checkout carried the expected reference.
- Confirm the provider record is paid, then compare its amount, currency and payment date with Attriboo. A checkout opening or thank-you-page visit is not equivalent.
- Inspect the matching visit or buyer path and source credit. Keep the website, dates, reporting time zone and attribution rule fixed.
- For landing-page analysis, open Dashboard, go to Where customers come from → Pages & checkout, select View all and choose Money pages. Read revenue credit for the page before checkout, then reconcile the known payment separately.
Where to find itDashboard → Where customers come from → Pages & checkout → View all → Money pages
The overview shows the full report with the website, dates, Compare and Credit controls above it. The rows and columns that matter here are enlarged below.
Select the overview to open the full screenshot.
Enlarged detail of the outlined area
- Find the page before checkout
Find the page that holds your payment link, such as /pricing.
- Read the credited outcome
Net revenue credit for visits that landed on this page, under the current Credit rule.
The Checkout links view currently explains when outbound checkout-link clicks have not been recorded; it is not a complete per-Payment-Link analytics report. Money pages is the useful landing-page view shown here. Use the source report to compare marketing credit after the handoff is verified.
Stripe also offers its own Payment Link metrics in the Payments and analytics tab, with availability and timing limits described in its post-payment guide. Those metrics answer a different question from Attriboo’s landing-page revenue credit. Compare definitions before treating two totals as contradictory.
Why Can a Paid Stripe Record Still Have No Matching Visit?
A payment can be valid while its marketing connection is missing. Diagnose the first absent record, rather than changing the source label to make the result look complete.
| What You Find | What to Check Next |
|---|---|
| No website visit | Published installation, correct website and browser delivery. |
| Visit exists but reference is absent | Actual link destination, redirects, embedded flow and tracker availability. |
| Reference exists but payment is missing | Receiving Stripe account, connection mode, paid status and event delivery. |
| Payment exists but is unmatched | Whether the reference belongs to this website and survived checkout. |
| Revenue differs from a provider total | Dates, currency, refunds, included payment types and model scope. |
Attriboo’s native Stripe flow currently covers supported Checkout and Billing records, not standalone PaymentIntents outside those paths. Its recent-history import does not recreate old website visits, and historical refunds are not included in that import. Asynchronous payment methods need their event coverage checked before you rely on them. Follow the Stripe setup guide for those boundaries.
For a subscription, verify the original customer connection before assuming a payment weeks later retains useful source history. The trial-to-payment guide explains that delayed handoff. A new payment event is not automatically a newly acquired customer. Use the subscription reporting guide to separate first sales from renewals.
If payments are linked but checkout completion still looks weak, use the checkout diagnosis guide to check the counting group and reproduce one issue. Once the path is confirmed, choose one business action: improve the page that brings qualified buyers, inspect a weak campaign, or repair the checkout route that loses its reference. If the result still looks Direct, use the Direct-traffic checks to separate an unclear arrival source from an entirely missing visit.
Common questions
Can I track a Stripe Payment Link sent directly in an email?
You can label the direct link for its campaign and inspect available Stripe payment information. Attriboo’s website-based matching also needs a recorded website visit and a supported connection. Sending the buyer straight to Stripe can skip that visit. Use a useful tracked landing page first when website-based attribution is the goal.
Does adding UTM tags automatically match the payment in Attriboo?
No. UTM tags describe the campaign. The supported visitor or customer reference connects the paid record to recorded activity. Verify both the website visit and checkout handoff instead of assuming campaign tags establish identity.
Can I reuse a decorated checkout URL for every buyer?
Do not distribute a URL carrying one visitor’s generated reference to everyone. Share your ordinary link and let the supported website tracker handle each eligible visitor’s reference. Keep customer information and secrets out of public URLs.
What if my affiliate software already uses client_reference_id?
Treat that as a reference-ownership conflict. The current standard tracker writes to that field on supported payment links. Preserve the existing identifier with the documented server-created Checkout metadata route and have the developer verify both systems.
Does a thank-you-page view prove a successful payment?
No. Reconcile the provider’s paid outcome and its supported Attriboo record. A redirect, checkout opening or page view is a different event and can be missing even when a payment exists.
Do refunds change the revenue I should report?
State whether you are reporting sales before refunds or net revenue. Attriboo records supported Stripe refund events, while its recent-history import does not include historical refunds. Check the actual payment and refund scope before comparing a provider’s gross metric with a net report.
Will connecting Stripe recover marketing sources for all my old sales?
No. Available payment imports do not recreate visits that were never tracked or a reference that was never carried. Some existing customer links can help supported matching, but unresolved payments should remain unmatched rather than being assigned to an unrelated visitor.



