Install the Meta Pixel, send the same lead events from your server through the Conversions API with a shared event ID so Meta removes duplicates, test every event in Events Manager, and feed lead outcomes back so campaigns learn from real customers. Do this before you spend on ads.
Why does tracking come first?
Meta’s delivery system learns from the events you send it. If a lead is counted twice, not at all or on the wrong action, the campaign optimises for the wrong thing and your reports mislead you. A tracking audit is the first step of every engagement we run.
1. Set up the Meta Pixel
- Create or open your Pixel (dataset) in Meta Events Manager and install the base code on every page, ideally through a tag manager.
- Verify your domain in Business Settings.
- Check the Pixel Helper in your browser: PageView should fire once per page.
2. Define the events that match your funnel
Standard events for lead generation are Lead (a form submitted), Contact (a call or WhatsApp tap), ViewContent (a key page) and, for shops, AddToCart, InitiateCheckout and Purchase. Fire Lead only after the server confirms the submission, never on a button click, so you do not count failed forms.
3. Add the Conversions API
The Conversions API (CAPI) sends the same events from your server to Meta. It recovers events lost to ad blockers and browser limits. Send at least the Lead event from the server with hashed contact details (email, phone), the browser identifiers fbp and fbc where available, the client IP address and user agent. Do not send a server-side PageView from a slow synchronous request on every page; it adds delay and risk.
4. Deduplicate with a shared event ID
When both the browser Pixel and the server send the same Lead, Meta needs to know it is one event. Generate one event ID when the lead is created, send it with the browser event and the server event under the same event name, and Meta will keep one.
5. Test before you spend
- Use Test Events in Events Manager with a test code and submit a real test lead.
- Check that Lead appears once, marked as received from both browser and server and deduplicated.
- Review Event Match Quality: sending more matching parameters (hashed phone and email) improves it.
6. Name everything consistently
Use one naming standard for campaigns, ad sets and ads, and one UTM scheme (source, medium, campaign, content, term) so GA4 and your CRM can tie a lead to an ad. Store the click identifiers (fbclid, gclid) with the lead.
7. Feed lead outcomes back
A lead is not a customer. When your team marks a lead qualified, booked or won, send that back as an event (for example a custom “QualifiedLead” or a Purchase with value) so campaigns can optimise for outcomes. Be aware this makes results scarcer and costlier, as seen in Himalayan Musafir’s qualified-lead campaigns; use it once you have enough volume.
8. Respect consent
India’s DPDP Rules require clear notice and consent for personal data. Tell people what you collect and why, link your privacy policy at the point of collection and only send data you are allowed to send.
Key takeaways
- Fire Lead only after the server confirms the lead.
- Send browser and server events with one shared event ID.
- Test in Events Manager before launch.
- Send lead outcomes back once you have volume.