Pixel installation: 5 minutes (copy-paste) First event: 10 minutes
Full implementation: Days to weeks depending on your architecture
1. Install the Fidero Pixel
Copy this snippet into your website’s <head> tag. Replace YOUR_PROJECT_ID with your ID from the Fidero dashboard.
Quick copy
What's happening?
<!-- Paste in your <head> tag -->
<!-- Replace YOUR_PROJECT_ID with your actual ID -->
<script>
// prettier-ignore
!function(){let e=window.fidero=window.fidero??{};if(e.initialised)return;if(e.invoked)return console.error("[Fidero] Snippet included multiple times");e.invoked=!0;let t={};e.ready=new Promise((e,a)=>{t.resolve=e,t.reject=a}),e.ready.resolve=t.resolve,e.ready.reject=t.reject,e.buffered=[],e.initArgs=null,e.init=function(){return e.initArgs=Array.prototype.slice.call(arguments),e.ready},["updateConsent","updateIdentity","page","track","reset"].forEach(t=>{e[t]=function(){let a=Array.prototype.slice.call(arguments);a.unshift(t),e.buffered.push(a)}}),e.load=t=>{let a=(t=t||"https://cdn.fidero.co/sdk/v0.8/fidero.js").match(/.+sdk\/v?(.+)\/fidero.js/);null!==a&&a.length>=2&&(e.version=a[1]);let r=document.createElement("script");r.type="text/javascript",r.async=!0,r.src=t,(document.head||document.body).appendChild(r)}}()
fidero.load()
fidero.init("YOUR_PROJECT_ID") // 👈 Add your Project ID here
fidero.page() // Tracks first page view, captures click IDs immediately
</script>
This tiny snippet (< 1KB) automatically:
- Loads asynchronously - Zero performance impact
- Captures first page view - Attribution data immediately
- Queues early events - Nothing lost whilst SDK loads
- Pulls server-side config - Changes propagate automatically
It’s smaller than most analytics pixels and loads without blocking your page.
Place the pixel in the <head>, not the <body>. We capture attribution data in the first milliseconds – including click IDs that disappear after redirects. Missing this first-page data means lost conversions.
Done! The pixel is now capturing page views, click IDs and attribution
context automatically. Check your Fidero dashboard – you should see page views
arriving in real-time.
2. Send a test event
Verify everything works. Open your browser console and paste:
fidero.track({
event: "test_event",
properties: {
message: "Fidero is working! 🎉",
},
})
Check your dashboard – the event should arrive within seconds.
3. Track your first conversion
Now track something that matters for your business:
// Signup event - creates unified user profile
fidero.track({
event: "signup_completed",
userId: "user_abc123", // Links all previous anonymous browsing to this user
traits: {
email: "[email protected]",
plan: "free_trial",
},
})
// Subscription event - the conversion you want to attribute
fidero.track({
event: "subscription_started",
userId: "user_abc123",
properties: {
transaction_id: "sub_xyz789", // CRITICAL: Enables 98% deduplication
value: 29.99,
currency: "GBP",
},
})
Correctly implementing transaction_id is the key to achieving a
Duplicate-Block Rate of ≥98%. Use your unique subscription ID or payment
transaction ID.
That’s it. Within 24 hours, click IDs are preserved through redirects and campaign context flows to all your destinations.
Next steps
Choose the implementation pattern that matches your architecture:
Want to understand how the architecture works? See Server-first
architecture for technical
details on Browser State Capture, identity resolution and consent enforcement.