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:
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
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