Today, pixel install
Gumroad supports custom HTML on hosted thank-you pages (Settings → Custom Receipt HTML). Paste:
<script async
src="https://pixel.clickt.link/p.js"
data-workspace="YOUR_WORKSPACE_PUBLIC_ID"></script>
<script>
window.clickt = window.clickt || function(){(window.clickt.q=window.clickt.q||[]).push(arguments)};
window.clickt('track', {
event: 'conversion',
transaction_id: "{{ sale.id }}",
amount: {{ sale.total }},
currency: "USD",
email: "{{ buyer.email }}"
});
</script>
Gumroad's template variables fill in the sale ID, amount, and buyer email at render time. If you sell across multiple products, the pixel attributes each sale to the originating video using the click_id stored on your landing page from the YouTube description link.
A note on Gumroad's hosted landing pages
If you point YouTube descriptions directly at gumroad.com/<product>, the pixel runs
on your landing page (the Gumroad hosted page) because Gumroad serves the custom HTML
there too. The pixel reads ?cl=… from the URL, writes localStorage, and the
conversion event fires on the thank-you page.
If you use your own landing page that redirects to Gumroad checkout, install the pixel on your landing page too, that way the click_id is captured before the buyer is sent off to Gumroad.
Phase 2, Gumroad Sale webhook
Direct Gumroad integration is on the way, it'll capture refunds and subscription renewals automatically, so per-video net revenue stays accurate over time. Until then, the standard install captures the bulk of first-sale attribution cleanly.