Digital Marketing Agency in Pune: Meta Conversions API for Lead Generation Explained
Meta's Conversions API (CAPI) is a way for your own server, or a partner platform acting for it, to send lead events straight to Meta, instead of relying only on the Meta Pixel running in a visitor's browser. For a business buying leads on Facebook and Instagram, running both together is Meta's recommended "redundant" setup, because the browser alone loses some events. If you are judging a digital marketing agency in Pune, one of the quickest checks of its work is whether your Meta account receives clean, deduplicated, well-matched server events, or whether it is still living on a Pixel installed years ago.
This article is for Pune business owners who run Meta lead ads or website-form ads and want to know if their agency's tracking is sound. It explains what the Pixel can and cannot see, how CAPI works, how event_id deduplication and Event Match Quality fit in, the four ways to set it up, how to send CRM lead-quality events, what to do about consent, and a worked example. It also gives questions to ask and a checklist. Technical facts come from Meta's developer documentation read in October 2026; Meta changes these pages often, so verify against the live page before you act. Where I rely on secondary sources or on general practice rather than Meta's own text, I say so. This is not legal advice, and it does not cover payments, shipping or tax.
Why Pixel-only tracking under-counts leads
A Meta Pixel is a small script that runs when the page loads. When a visitor submits your enquiry form, the script fires a Lead event from their browser to Meta. Many things can stop that happening:
- The script never loads or never finishes. On a slow mobile connection, a visitor can submit the form and leave before the Pixel call completes.
- Blockers and browser privacy settings. Ad blockers and privacy-focused browsers can stop third-party tracking scripts. How much that affects any particular site depends on its audience, so measure rather than assume.
- Cookie limits. The Pixel's browser identifiers, the _fbp and _fbc cookies, can be restricted or expire depending on the browser. Meta's best-practices page notes that fbp and fbc change over time.
- Things the browser cannot know. The Pixel cannot tell Meta that the lead answered the phone, booked a site visit or became a customer. That happens in your CRM or on a call.
The result is a gap between leads in your inbox or CRM and leads in Meta Ads Manager. Part of that gap is attribution rules and the reporting window. Another part is lost events. Meta's optimisation can only learn from the events it receives, so a thinner signal may mean slower learning, though I would not claim a number for any given account.
What the Conversions API is, in plain terms
Meta's developer documentation describes the Conversions API as a server-to-Meta connection for marketing data. It consolidates website events, app events, business messaging events and offline conversions into one integration point. Server events are processed like events sent using the Pixel and can be used for measurement, reporting and optimisation in a similar way.
In practice, for a lead-gen website:
- A visitor submits your form.
- Your server (or a tag server, or a partner platform) receives the submission.
- It posts a Lead event to Meta's endpoint for your dataset (the same ID as your Pixel ID), with the event name, a timestamp, the action source, and customer information.
- Meta processes it, deduplicates it against the Pixel's version of the same event, and uses it.
Each request has required fields. Meta's documentation says each event needs event_name, event_time (a Unix timestamp in seconds), user_data and action_source. For website events you should also send event_source_url and client_user_agent. Meta notes that action_source must be accurate to the best of your knowledge. Events can be backdated, but if any event_time in a request is more than 7 days in the past, Meta returns an error for the entire request and processes none of the events. Requests can batch up to 1,000 events, but Meta says sharing events as they happen helps campaigns perform best.
CAPI is not a reason to remove the Pixel. Meta's best-practices guidance is to deploy both, sharing the same events through both channels, so that the server catches conversions the browser loses.
Event_id and deduplication: how not to count a lead twice
If the Pixel and your server both report the same lead, Meta must know they are one lead. Meta's deduplication documentation sets out the rules:
- The Pixel's eventID must match the Conversions API's event_id.
- The Pixel's event must match the Conversions API's event_name.
- Events are deduplicated only if they are received within 48 hours of when Meta receives the first event with a given event_id.
- If the browser and server events do not differ meaningfully, Meta generally prefers the one received first.
- Meta does not deduplicate repeats from a single source. If your server sends the same lead twice, both can count.
Meta also describes a fallback that matches on fbp together with external_id, but it carries a limit: server events are not discarded if a browser event has not been received in the previous 48 hours, even if an identical browser event arrives after the server event. For a lead form, the event_id route is cleaner, and it is what I would ask an agency to use.
The usual pattern: generate a unique ID per submission (a UUID or database ID), pass it to the Pixel as eventID, and send the same ID to your server as event_id. The common mistakes are generating a fresh ID on the server so the two never match, or reusing one fixed ID for every lead.
Customer information parameters and hashing
Meta matches your event to a person using the customer information you send in user_data. Meta's parameters documentation says at least one user_data parameter must be provided, correctly formatted.
Parameters that must be hashed with SHA-256 include:
- Email (em): trim leading and trailing spaces, convert to lowercase.
- Phone (ph): remove symbols and letters, and include the country code (for India, 91 followed by the ten-digit number).
- First name (fn) and last name (ln): lowercase.
- Date of birth, gender, city, state, postcode, country: each with its own format. Country uses the lowercase two-letter ISO 3166-1 alpha-2 code, so "in" for India.
- External ID: hashing is recommended for IDs such as user or loyalty IDs.
Parameters that are not hashed include client_ip_address and client_user_agent (Meta says "Do not hash" for both; the user agent is required for website events), the click ID fbc, the browser ID fbp, and the Meta Lead ID.
For Indian lead-gen sites, the details that go wrong most often are phone numbers and names. A number saved as "098765 43210" or "+91 98765-43210" hashes to a different value than "919876543210". Normalise before hashing: digits only, with country code, no leading zero. Hashing lets you avoid sending data in plain text; it is not anonymisation and does not change your legal duties.
Event Match Quality: the score to read, and what to do with it
Events Manager shows an Event Match Quality (EMQ) score for each event, which indicates how well the customer information you send matches Meta accounts. Meta's best-practices page tells advertisers to monitor EMQ in Events Manager after launch. Secondary sources describe it as a score out of 10, calculated over recent data, with bands from poor to great, but I could not retrieve Meta's own help article, so treat those band descriptions as indicative and read the number in your own Events Manager.
What improves it is more and better customer information: email and phone are the obvious ones on a lead form, plus fbc and fbp where available, plus client IP address and user agent. Two cautions: do not send data you did not collect, and remember EMQ measures matching, not lead quality, since a bot can be matched perfectly.
Four ways to set up CAPI
There is no single right option. The choice depends on your site, your team and your budget. Meta's developer documentation covers the direct approach and notes that third-party partners have their own requirements. The descriptions of the Gateway and server-side tag manager options below draw on general practice and partner documentation, so confirm current details before committing.
1. Partner integration
Many website and commerce platforms, tag managers and CRMs offer a built-in Meta integration that sends server events once you connect your Meta account. This is the lowest-effort route if your stack supports it. Check three things: does it send a shared event_id so the Pixel and server events deduplicate, which customer parameters does it pass, and can it send events beyond "form submitted"?
2. Conversions API Gateway
Meta has offered a Gateway product that hosts the server-side connection for advertisers who do not want to build it. Exactly where it can be configured and what it costs depends on your hosting arrangement, and the page I tried to read for this article was not found, so I will not describe pricing or setup. If an agency proposes it, ask for the current Meta documentation page and the monthly hosting cost in writing.
3. Server-side Google Tag Manager
A server container receives events from your site and forwards them to Meta (and to other platforms). It gives you control and a single collection point, at the cost of hosting a server endpoint and maintaining it. It suits businesses that advertise on several platforms and have someone able to own the setup. Ask who pays for hosting and who monitors it.
4. Direct integration
Your developer posts events to the Graph API endpoint from your own backend. Meta's documentation shows the request format: POST to graph.facebook.com/{API_VERSION}/{PIXEL_ID}/events with an access token. You can generate the token in Events Manager under the Pixel's settings, in the Conversions API section, without app review, according to Meta's setup documentation. This route gives the most flexibility, such as sending a CRM stage change, and needs developer time. We discuss the building side on our lead generation page.
Lead-quality events: beyond "form submitted"
A form submission is the weakest signal in a lead funnel. In many Indian service businesses, a large share of enquiries are wrong-fit, price-checkers or unreachable. If Meta only hears "Lead", it learns to find people who submit forms, not people who buy.
Meta's Conversions API for CRM integration, which Meta's documentation presents for Facebook and Instagram Lead Ads (Instant Forms), uploads lead-stage events from your CRM back to Meta. It is sometimes called Conversion Leads in marketing material. From Meta's documentation:
- You should generate at least 200 leads per month.
- The lead stage you want to optimise for should occur within 28 days of the lead being generated.
- The lead-to-stage conversion rate should be between 1% and 40%.
- Data should be uploaded at least daily.
- For best results, store the 15-17 digit Meta Lead ID in your CRM. If you cannot, send other identifiers such as click ID, phone number or email.
- Meta estimates about a month to reach optimisation, depending on resources and complexity.
Secondary sources quote Meta-reported cost-per-quality-lead improvements; I am not repeating them, as they are averages across advertisers, not a forecast for you.
If you get fewer than about 200 leads a month, check eligibility in Events Manager, and note that stage events need a CRM (or a disciplined spreadsheet) whose stage field someone actually updates. Prefer stages such as "qualified" or "site visit booked" over rarer ones like "paid".
Our guide on lead quality and offline conversions covers choosing stages. For the account structure side, see Meta Advantage+ for leads. If your leads arrive on WhatsApp, a WhatsApp CRM can hold the stage data.
Consent and privacy in India
Server-side tracking changes where the data leaves from. It does not change whether you may share it. The data in a CAPI request is the same personal data the Pixel would have sent, and often more, because you are sending hashed email and phone number.
India's Digital Personal Data Protection Act, 2023 and the DPDP Rules, notified in November 2025, are the main framework. Secondary legal summaries I read describe a phased timeline, with the main consent and notice obligations taking effect in May 2027, and say that consent must be free, specific, informed, unconditional and unambiguous with a clear affirmative action, and that withdrawal must be as easy as giving consent. I have not read the statute for this article, and these are summaries, so have a lawyer confirm both the dates and what they require of you. I cannot say what is required for your business.
Whatever the law finally requires, sensible practice for a lead form is:
- Say on the form, in plain language, that you will use the details to respond to the enquiry and that you share certain data with advertising platforms for measurement, if you do.
- Do not fire Pixel or CAPI events before the visitor has made a consent choice, if your policy or counsel says consent is needed. A server-side call is no workaround; it should respect the same choice.
- Keep a record of what the visitor was shown and when they agreed.
- Make sure your CAPI sends only the fields you need.
Google's equivalent is covered in Google Ads Enhanced Conversions and Consent Mode; the principle is the same.
A worked example: a Pune coaching-institute lead site
This is a hypothetical example for illustration, not a client case. A coaching institute in Pune runs Meta ads to a landing page with a three-field form: name, phone, course. About half of its leads come from the website form, and the rest from Instant Forms. It uses a single Pixel on the landing page.
Current state. The Pixel fires Lead on a thank-you page. Ads Manager shows fewer Lead events than the form's spreadsheet has rows, and nobody knows how much of the gap is lost events and how much is Instant Forms and attribution rules.
Step 2: shared event_id. When the form is submitted, the page creates a submission ID such as a UUID. The Pixel fires Lead with that eventID. The same form handler passes it to the server.
Step 3: server event. The server posts to the dataset's events endpoint:
- event_name: Lead
- event_time: the submission time as a Unix timestamp in seconds
- action_source: website
- event_source_url: the landing page URL
- event_id: the submission ID
- user_data: SHA-256 of the normalised phone number (digits, 91 prefix), the unhashed client IP address and user agent, and fbp/fbc from the browser cookies
- custom_data: course interest, if the institute wants it
There is no email, because the form does not ask for it. The phone number is the key matching field. The EMQ for this event may therefore be modest, and that is acceptable if the form is short and converts well. Adding an optional email field is a trade-off between match quality and conversion rate; test it rather than assume.
Step 4: test. In Events Manager, open Test Events, copy the test code and send a test event with test_event_code. Meta says to remove that field from the production payload. Submit the real form with the Test Events tab open and check that the browser and server events both appear, share the same event ID, and that one is marked deduplicated.
Step 5: CRM stages. The admissions team marks leads new, contacted, counselling-booked or enrolled, and a daily job sends "counselling-booked" back to Meta with the Meta Lead ID for Instant Form leads. Afterwards, compare cost per counselling-booked lead, not just cost per lead.
Testing with the Test Events tool
Meta's Test Events tool, in Events Manager, shows incoming events in near real time. Meta's documentation gives the process: generate a test ID, then include it as test_event_code in your payload, and remove it from production.
Check that both a browser and a server event appear for one submission, that names and event_id match exactly, that one is marked deduplicated, that parameters look correctly formatted, and that two genuinely different submissions are both counted.
Questions to ask your agency
- Who owns the Meta Business portfolio, dataset and access token? Can I see them in my own login?
- Do you run Pixel and Conversions API together? Show me the Test Events screen for my Lead event.
- How are Pixel and server events deduplicated? Which event_id do you use?
- What is my Event Match Quality for Lead, and which parameters are you sending?
- Which setup method are you using, and what are the hosting or tool costs, now and later?
- How is consent handled before events fire? Who wrote the form wording?
- Do you send CRM stages back to Meta? If not, why not?
- What happens to tracking if you stop working with us?
Vague answers such as "we have CAPI enabled" are not proof; ask to see the screens. Our onboarding and access checklist covers ownership.
A checklist you can use
- Dataset and portfolio owned by the business; Pixel and server Lead events share event name and event_id
- action_source, event_source_url, client_user_agent present; phone and email normalised then hashed; IP, user agent, fbp, fbc unhashed
- test_event_code removed; EMQ reviewed; consent reviewed with counsel; spam filtered; CRM stages and Meta Lead ID stored
Working with Govindani Infotech
Govindani Infotech is a web design and development company at 2nd Floor, Landmark Plaza, 206 Satara Road, Parvati Paytha, Pune 411009. Tracking is the point where our website work and your ad spend meet: the form, the thank-you flow, the server handler and the CRM hand-off are all things we build. If you want a second opinion on an existing setup, we can review your Events Manager, form and consent flow with you, and tell you plainly what is sound and what needs fixing. We do not promise lead volumes or cost figures.
For the advertising side, see our Meta Ads service; for the website and form side, see lead generation. To talk to us, use the contact page or message us on WhatsApp.
Frequently Asked Questions
Is the Meta Pixel enough for lead tracking in 2026?
The Pixel still works, but it runs in the visitor's browser, so blockers, restricted cookies, slow page loads and closed tabs can all lose events. Meta's documentation recommends running the Conversions API alongside the Pixel as a redundant setup, with matching event names and event IDs so each lead is counted once.
What is event_id and why does a lead-gen site need it?
It is a unique ID you attach to the same lead event in both the browser Pixel call and the server call. Meta uses it, together with the event name, to discard the duplicate, but only if both arrive within 48 hours of the first. Without it you risk counting the same enquiry twice.
Does the Conversions API replace the Pixel?
No. Meta describes the recommended setup as redundant: the Pixel and the Conversions API share the same events, and Meta deduplicates them. The server connection fills gaps the browser misses and carries events the browser never sees, such as a lead marked qualified in your CRM.
Do I need consent before sending data through the Conversions API?
Server-side sending does not remove consent obligations; the same personal data is still being shared with Meta. India's DPDP Rules were notified in November 2025 with consent and notice duties phased in, so ask a qualified lawyer how your form wording and consent flow should work.
What should I ask my Pune agency about tracking?
Ask who owns the Meta dataset and access token, whether Pixel and server events are deduplicated, what the Event Match Quality score is for your Lead event, how consent is handled, and whether CRM stages are fed back to Meta. A competent agency can show you the Events Manager screens in a short call.
Sources:
- https://developers.facebook.com/docs/marketing-api/conversions-api/
- https://developers.facebook.com/docs/marketing-api/conversions-api/using-the-api
- https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events
- https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters
- https://developers.facebook.com/docs/marketing-api/conversions-api/best-practices
- https://developers.facebook.com/docs/marketing-api/conversions-api/conversion-leads-integration
- https://developers.facebook.com/docs/marketing-api/conversions-api/get-started
- https://developers.facebook.com/docs/meta-pixel/implementation/conversion-tracking
- https://www.bassberry.com/news/indias-data-privacy-rules-what-your-business-needs-to-know/ (secondary summary)