Paddle revenue attribution

Tie paid Paddle customers back to the campaign that brought them in.

Two steps: connect your Paddle API key in Piqo, then pass the piqo_visitor cookie as Paddle customData. A background sync pulls completed transactions every minute and records each one against the visitor's pageviews.

1. Connect Paddle in Piqo

In your site's Settings → Paddle, paste a live Billing API key (Paddle → Developer Tools → Authentication).

2. Pass the visitor id into checkout

Paddle calls it customData (not metadata). Attach it when you open the checkout:

// Paddle.js — client-side checkout
Paddle.Checkout.open({
  items: [{ priceId: 'pri_xxx', quantity: 1 }],
  customData: {
    piqo_visitor_id: getCookie('piqo_visitor'),   // your own visitor id
    piqo_session_id: getCookie('piqo_session'),   // optional
  },
});

If you create transactions server-side instead, set the same customData on the transaction.

What you'll see

Within a minute, the transaction shows up on your dashboard's Conversions page with the channel / country / UTM columns from the matching pageview, and its revenue lands on the chart. Transactions without the customData still count toward revenue totals — they just show as Direct.

Where does the visitor id come from? Keep your own — generate a UUID on first pageview, store it in a first-party cookie, and pass that string. Any opaque, stable token works.