Pixel
Install the Funnel Pulse Pixel
Add the snippet, confirm delivery, and validate that Funnel Pulse is receiving behavioral traffic data.
Use the Funnel Pulse pixel when you want first-party behavioral data flowing into your Traffic and Performance surfaces. The install is intentionally simple: load the script, initialize it with your organization identifier, and add manual events only where the funnel reaches a real milestone.
Base snippet
Place this snippet in the global head for the funnel pages you want to track. Your organization identifier is shown ready to copy in Org Settings under Tracking pixel.
<script>
(function(f,p){f.funnelpulse=f.funnelpulse||function(){
(f.funnelpulse.q=f.funnelpulse.q||[]).push(arguments)};
var s=p.createElement('script');s.async=1;
s.src='https://pulse.funnelpulse.io/fp.min.js';
p.head.appendChild(s)})(window,document);
funnelpulse('init', 'YOUR_ORG_ID');
</script>
What happens automatically
page_viewon every tracked page loadscroll_depthat 25/50/75/100 percent thresholdscta_clickon detected calls to actionform_focusandform_submittime_on_pageas bucketed dwell time
You do not need to wire those manually. Form submits on pages you have marked as opt-in or webinar steps also count as leads automatically — see the event reference for details.
What still needs manual calls
Leadwhen an opt-in or application is truly completed and the automatic form mapping does not fitPurchasewhen an order is actually complete (Enterprise plans)Customfor product-specific milestones (Enterprise plans)
How identity works
- Each browser gets an anonymous visitor identifier stored in localStorage — no cookies, no personal data, and the identifier means nothing outside your own organization's data.
- A session groups activity until 30 minutes of inactivity, then rolls over.
- Visitors with Do Not Track enabled are never tracked; the pixel exits before doing anything.
- Funnels that span more than one domain can carry the same identity across the hop — see Cross-domain funnels.
Before data will flow
- Register your domains. Events are only accepted from domains on your organization's allowlist. Enable the pixel capability per domain in Org Settings under Domains and deliverability.
- Define your funnel steps. Traffic attributes to steps by URL. Add each page's URL to its step in the funnel's step editor so engagement, leads, and sales land on the right rung of the cascade.
- Check your plan. The pixel is available on Pro plans and above. Purchase and custom events require Enterprise.
Validation checklist
- Open the funnel page in a new browser session and click around.
- Confirm that
https://pulse.funnelpulse.io/fp.min.jsloads successfully. - Confirm that the collect endpoint is receiving requests with
204responses. - In Funnel Pulse, open the funnel's Overview tab — the Traffic tile's active-now counter reacts within seconds, and the hourly chart fills in as events aggregate.
- Expand a cascade rung to confirm scroll depth and channel data attribute to the right step.
- Add manual
LeadandPurchasecalls only on confirmed success states.
Common mistakes
- firing
Purchaseon button click instead of on confirmed order completion - firing
Leadon page load instead of after a successful opt-in - installing the snippet on a domain that is not allowlisted for the organization
- expecting sales to populate without
Purchaseinstrumentation or a connected stats provider - forgetting to attach page URLs to funnel steps, which leaves traffic unattributed
Production note
Current production aliases support both /scripts/fp.min.js and /fp.min.js. The install snippet should keep using the root path so the public contract stays stable.