Dodo Payments revenue attribution

Tie paid customers back to the campaign that brought them in. Connect your Dodo API key in Analytise, then pass the visitor id with the checkout session. A background sync pulls succeeded payments and records each one against the visitor's pageviews.

1. Connect Dodo Payments in Analytise

In your site's Settings → Integrations → Payments, paste your live API key (Dodo dashboard → Developer → API Keys).

  • Analytise validates the key immediately and backfills the last year of succeeded payments on the first sync.
  • Keys are encrypted at rest with AES-256-GCM and are read-only — they list payments, nothing else.
  • Test keys (starting with sk_test_) sync test payments only — useful for verifying the wiring before going live.

2. Pass the visitor id into checkout

Wherever you create the Dodo checkout session, attach the analytise_visitor cookie as metadata:

Node — wherever you create the Dodo checkout session
const session = await dodo.checkoutSessions.create({
  product_cart: [{ product_id: '<your_product_id>', quantity: 1 }],
  return_url: 'https://yoursite.com/thanks',
  metadata: {
    analytise_visitor_id: req.cookies.analytise_visitor, // required
    analytise_session_id: req.cookies.analytise_session, // optional — 30 min tab session
  },
});

Any stable token works

Keep your own visitor token if you prefer — generate an id on first pageview, store it in a first-party cookie, and pass that string. Analytise only needs an opaque, stable value in metadata.analytise_visitor_id to join the payment back to the visit.

What you'll see

Within a few minutes the payment lands on your dashboard's Conversions page with the channel, country and UTM columns from the matching pageview, and its revenue shows on the chart. Payments without the metadata still count toward revenue totals — they just show as Direct.

Next

GTM & custom events