Skip to content
RoughFigure

Meta Conversions API for lead generation, explained

Send leads and won jobs back to Meta with the Conversions API, so Facebook and Instagram ads learn which clicks become customers. What to send and why.

RoughFigure3 min read
Illustration of an ad target
On this page
  1. Why the pixel alone isn’t enough any more
  2. The two events worth sending
  3. What goes in an event
  4. Consent comes first
  5. Check it’s working
  6. Doing it in RoughFigure
  7. Questions

The Meta Conversions API (CAPI) lets your website or software tell Meta, server to server, when an ad click turned into a lead, and later into a won job. Meta matches it to the person who saw the ad, so you see which ads really bring work, and its ad system learns to find more people like your actual customers instead of people who just click.

Why the pixel alone isn’t enough any more

The Meta pixel runs in the customer’s browser. Ad blockers, browser privacy settings and declined cookie banners stop it firing for a share of visitors, and it never sees what happens after the form: the phone call, the site visit, the job you won. The Conversions API sends events from your server, so it isn’t blocked in the same way, and it can send events that happen days later.

The two events worth sending

  • Lead, when the enquiry arrives. This is quick feedback for Meta’s system.
  • A won job (often sent as Purchase or a custom conversion), with the job’s value. This is the event that teaches Meta the difference between tyre-kickers and customers.

Optimising your campaigns for won jobs rather than raw leads usually takes time, since Meta needs enough events. Start by reporting both.

What goes in an event

{
  "data": [
    {
      "event_name": "Lead",
      "event_time": 1793520000,
      "action_source": "website",
      "event_id": "lead_7f3c2a",
      "user_data": {
        "em": ["<SHA-256 of the lowercased email>"],
        "ph": ["<SHA-256 of the phone in international digits>"],
        "fbc": "fb.1.1793519000000.AbCd…",
        "fbp": "fb.1.1793518000000.123456789"
      },
      "custom_data": { "value": 750, "currency": "GBP" }
    }
  ]
}
  • Hash email and phone with SHA-256 before sending. Meta never needs them in plain text.
  • fbc and fbp come from the _fbc and _fbp cookies (and fbclid in the address). They make matching far more reliable.
  • event_id lets Meta drop the duplicate if both the pixel and the server report the same lead.

Events go to https://graph.facebook.com/<version>/<dataset_id>/events with an access token from Events Manager → Settings → Conversions API.

You’re sharing personal data with Meta for advertising, so tell customers and get agreement where the law needs it (in the UK and EU, that usually means consent). Only read the Meta cookies and send hashed details for customers who agreed. Our guide on consent for CRM and newsletter leads covers the basics.

Check it’s working

In Events Manager → Test events, copy the test code, send an event with test_event_code set, and watch it appear. Remove the code afterwards. Keep an eye on Event match quality: more matching details (email, phone, fbc, fbp) means a higher score.

Doing it in RoughFigure

In RoughFigure we’ve built the Meta Conversions API in. Under Integrations → Ads and analytics, paste your dataset (pixel) ID and access token and click Connect. We send a Lead when an enquiry arrives and a Purchase when you mark the job won, with its value, hashed contact details and the click IDs. It’s only for customers who ticked “Let us see which ad brought me here”, unless your own privacy policy already covers it. Read the ads and analytics guide, and see lead source tracking for the bigger picture.

Questions

Do I still need the Meta pixel?

It helps with audiences and on-site events, and the two work together using event_id to avoid double counting. The Conversions API is what reports leads and won jobs reliably.

Does the Conversions API work with Meta lead forms (instant forms)?

Yes. Leads from instant forms have a Meta lead ID, and you can send later stages, like a won job, against it.

Is sending hashed emails to Meta allowed under GDPR?

Hashing is still processing personal data, so you need a lawful basis, usually consent for advertising. Say so in your privacy policy and cookie banner.

Keep reading

Give your next customer a rough figure tonight.

14 days free · No card needed · Set up for you, free