Paid Social Measurement

Meta Conversions API Implementation, Done Properly

Server-side event delivery with real deduplication, verified customer matching, and a match quality score you can actually defend.

GDPR & Consent Mode v224h Response TimeUK-Registered Agency50+ Projects Delivered
Get My Free CAPI Audit →

Not ready to write it all out? Book a 15-minute discovery call →

The Problem

Two Ways CAPI Fails

Most Meta CAPI setups we inherit are doing one of two things wrong, and both cost money.

The first is under-reporting. The pixel fires, CAPI does not, or CAPI fires with a thin payload — no hashed email, no `external_id`, no click ID. Meta's Events Manager shows a low Event Match Quality score, the algorithm cannot connect conversions back to the people who caused them, and your cost per acquisition drifts upward for reasons nobody can explain.

The second is double-counting. Pixel and CAPI both fire, but `event_id` is missing, inconsistent, or regenerated on each side. Meta counts the same purchase twice. Your reported ROAS looks excellent. Your bank account disagrees. Worse, the algorithm optimises toward a phantom.

Correct CAPI is not "turn on the integration." It is a shared event ID between browser and server, a consistent hashing scheme, persistent identifiers, and a deduplication result you have verified in the diagnostics tab — not assumed.

What We Build

What We Build

Event Architecture

  • Full purchase funnel: PageView, ViewContent, AddToCart, InitiateCheckout, Purchase, Lead
  • Shared `event_id` generated once and passed to both pixel and server
  • `event_source_url` and `action_source` set correctly per event
  • Server-side firing on the order-confirmation hook, not the thank-you page render

Customer Matching

The single biggest lever on Event Match Quality.

  • SHA-256 hashing of email, phone, first name, last name, city, postcode, country
  • Normalisation before hashing — lowercase, trimmed, E.164 phone format
  • Stable `external_id` persisted across sessions and devices
  • `fbc` and `fbp` capture, including first-touch persistence beyond browser cookie limits
  • Client IP and user agent forwarded server-side

Deduplication

  • Verified in Events Manager diagnostics, not assumed from configuration
  • Documented before/after event counts
  • Handling for partial-consent scenarios where only one source fires

Consent Compliance

  • Consent Mode v2 integration
  • Denied consent → no identifiable data transmitted, full stop
  • Documented data flow for your privacy policy and any DPA request

Monitoring

  • Event Match Quality tracked per event type
  • Alerting on delivery failures
  • Reconciliation against your order table
Field Notes

Common Mistakes We Find

Patterns from audits we have run. If you recognise two or more, the gap is probably costing you more than it appears to.

`event_id` generated independently on each side.

Browser makes one, server makes another, Meta cannot match them, and every purchase counts twice. Reported ROAS looks excellent right up until you reconcile it against orders.

Hashing without normalising first.

`John@Example.com ` and `john@example.com` produce entirely different SHA-256 hashes. Trailing whitespace, capitals, and unformatted phone numbers silently destroy match rates while the integration reports success.

Purchase firing on thank-you page render.

Every refresh, every back-button return, every bookmarked confirmation page fires again. Server-side firing on the order hook is the fix.

`fbc` never persisted.

The click ID is captured on the landing page and lost by checkout, so attribution breaks on exactly the journeys you most want to measure.

Unhashed personal data in the payload.

Sending a raw email address to the Conversions API is both a policy violation and a GDPR problem. We have found it in production more than once.

How We Work

How We Work

01

Step 01 — Diagnose

We pull your current Events Manager data, identify duplication and match-quality gaps, and quantify the impact.

02

Step 02 — Design

Event map, identifier strategy, hashing scheme, consent logic.

03

Step 03 — Implement

Server-side firing, dataLayer alignment, deduplication wiring.

04

Step 04 — Verify

Diagnostics review until deduplication is confirmed and EMQ has moved.

05

Step 05 — Document

Full technical handover.

No Surprises

What Happens Next

01

Step 01 — You hear back within 24 hours.

A real reply from the person who would do the work, not an autoresponder or a junior scheduling a call about a call.

02

Step 02 — We look before we talk.

Send us access or a URL and we review your actual setup first, so the conversation starts with findings instead of discovery questions.

03

Step 03 — 30 minutes, findings first.

We walk you through what we found and what it is costing. You get that regardless of whether you hire us.

04

Step 04 — A written scope, or an honest no.

If it is a fit, you get scope, timeline, and cost in writing. If it is not, we say so and point you somewhere better.

No retainer required. No minimum term. No obligation at any step.

Stack
Meta Conversions APIGTM Server-SideWooCommerceShopifySHA-256Consent Mode v2Meta Events ManagerGoogle Cloud Run
100%

CAPI Event Coverage

Server-side deduplication, external_id matching, and Consent Mode — zero data loss post-iOS.

PAJ GPS · Server-Side Tracking
The tracking setup Propulse delivered gave us visibility we never had before. For the first time, our ad platform was seeing real purchase data — not just a fraction of it. The ROAS impact was immediate.
E-Commerce DirectorPAJ GPS — Multi-Country Store
Fit Check

Is This Right For You?

We would rather tell you now than after an invoice. Here is who this work pays off for, and who it does not.

A good fit if:

  • You are doing €25,000+ per month in online revenue, where a few percent of recovered attribution is real money
  • You are running paid media and the reported numbers do not match your bank
  • You sell across more than one market, currency, or storefront
  • You have a developer or agency who can act on what we find
  • You want to own the implementation afterwards, not rent it

Probably not a fit if:

  • You are early stage and validating the product — fix demand first, measure it later
  • You want someone to manage ad spend day to day; we build the measurement layer, we are not a media buying agency
  • You need it live this week; proper implementation has a validation phase and we will not skip it
  • You want the cheapest quote — we are not it, and the cheapest tracking build usually gets rebuilt

Most engagements start from €1,500. We confirm scope and cost in the discovery call, before anything is committed.

Get Your Free Audit

Tell us about your setup. We respond within 24 hours.

Not ready to write it all out? Book a 15-minute discovery call →

FAQ

Common
Questions

Ready to Build Something That Works?

Book a free 30-minute strategy audit. No pitch deck, no pressure — just an honest look at your setup and what to fix first.

Not ready to write it all out? Book a 15-minute discovery call →

Get My Free Audit →