Skip to main content
seenpaid matches a sale to a post when the payment carries the post’s tracking id. The pixel does that for you: one script tag that keeps the id on your site and attaches it to checkout.
You need this only if buyers land on your own site before paying. Selling straight from a Stripe Payment Link opened from the tracked link? The id is carried through already.

Install the pixel

1

Copy your tag

In Settings → Attribution (attribution must be on), copy the tag:
2

Paste it into your site's <head>

On every page where someone can buy, ideally site-wide:
  • Framer: Site Settings → General → Custom Code → head
  • Webflow: Project Settings → Custom Code → Head Code
  • Carrd: Settings → embed a Code element in the head
  • Shopify: theme.liquid, before </head>
  • WordPress: a header-scripts plugin, or your theme’s header
3

Publish your site

That’s it.

What the pixel does

  • Reads cp_tid from the landing URL and stores it first-party in a cookie and localStorage, so a visitor who lands on your homepage and buys from pricing later is still matched.
  • Attaches the id to Stripe Payment Links (buy.stripe.com), Stripe Buy Buttons (<stripe-buy-button>) and Stripe Checkout links (checkout.stripe.com) automatically.
  • Reports the click when you use own-URL link mode.
  • Does nothing on a visit that didn’t arrive from a tracked link.

Two special cases

Add data-seenpaid to the button or link so the pixel handles it:
Read window.seenpaidTrackingId on the client, send it to your backend, and pass it as client_reference_id:
client_reference_id is the only field seenpaid reads.
Want a mid-funnel event (an email capture, a signup) in your clicks → leads → sales funnel? Call window.seenpaidTrackLead(email, kind) or window.seenpaidTrackGoal(name) from your own button handler. Optional.

Check it’s working

Open your site via a tracked link and run window.seenpaidTrackingId in the browser console. It returns the id. On a normal direct visit it returns null, which is correct. Once a real sale arrives, Sales traced to a post on Results shows the share that matched.
Sales visible but a low traced share? The pixel is almost always missing from the page where people actually pay.

How attribution works

The full click → sale → post chain.