Pixel
Cross-Domain Funnels
Keep one visitor identity when your funnel hops between domains — a custom opt-in page feeding a hosted checkout, for example.
Many real funnels span more than one domain: a Next.js opt-in page on your main site handing off to a checkout hosted elsewhere, or a marketing domain feeding a members area. Without help, each domain's browser storage would mint a fresh anonymous visitor at the hop — double-counting the person and understating your step-through rate. The pixel's link decorator solves this.
What happens automatically
Clicks on links to the same site — go.example.com from www.example.com, for instance — carry the visitor and session identifiers as short-lived query parameters. The destination page's pixel adopts them before minting its own, then immediately scrubs the parameters from the address bar. No setup needed, as long as both pages run the pixel with the same organization identifier.
When you must declare the hop
Automatic detection deliberately refuses to treat two hosts as the same site when what they share is a public suffix or a multi-tenant platform domain. Hops like these need an explicit linkDomains entry:
- funnels crossing entirely different domains (
appsandfunnels.comtogo.linchpinfunnels.com) - domains under multi-part public suffixes (
brand.co.uktoshop.brand.co.uk) - hosted-platform domains shared by many tenants (
yourbrand.myshopify.com,pages.dev,github.io, and similar)
Declare the destination hosts at init time on the page where the click happens:
<script>
funnelpulse('init', 'YOUR_ORG_ID', {
linkDomains: ['go.linchpinfunnels.com', 'checkout.example.co.uk']
});
</script>
Add the reciprocal entry on the destination if visitors can travel back.
Why the platform-domain rule exists
If two unrelated tenants share myshopify.com, treating them as one site would leak your visitor identifiers to someone else's pages. The pixel never decorates links to hosts it cannot prove are yours — you prove it by listing them in linkDomains.
Checklist for a hybrid funnel
- Install the same base snippet, with the same organization identifier, on every domain in the journey.
- Add every domain to your organization's pixel allowlist in Org Settings under Domains and deliverability.
- Give each page's URL to its funnel step in the step editor — attribution is by URL, so both domains' pages can live on one funnel's ladder.
- Add
linkDomainson any page that links across a boundary the automatic rule will not bridge. - Click through the funnel yourself and confirm the cascade shows one continuous flow rather than a fresh visitor at the hop.