Meta Conversions API setup for Drupal
Caching plus module overlap. The Drupal module ecosystem is smaller than WordPress's but the same duplication logic applies.
Free30 minutesNo obligation
Drupal + Meta CAPI · what breaks
What goes wrong on Drupal
- 01
Aggressive caching
Page cache, dynamic page cache and BigPipe can each serve stale values.
- 02
Conversions come from Commerce or Webform
Not from Drupal itself.
- 03
Module overlap
Two modules sending the same event.
- 04
Complex configuration
Drupal's flexibility means undocumented setups are common.
Drupal + Meta CAPI · the fix
What changes — Drupal + Meta CAPI
Money events from order state transitions
Immune to caching.
Form submissions bound to Webform hooks
Not to navigation.
Caching accounted for
Rather than blamed on the tag.
Drupal + Meta CAPI · architecture
How Meta tracking behaves on Drupal
Caching and module inventory.
- 1
Module inventory
Before adding anything.
- 2
Order number as event_id
From the state transition.
- 3
Purchase server-side
Pixel browser-side from uncached regions.
- 4
Customer data from the order
Normalized before hashing.
- 5
Cached regions identified
Nothing per-order should render in one.
Drupal + Meta CAPI · diagnose
Where Drupal tracking breaks, in diagnostic order
Each check rules out a class of cause, so by the last one there is usually a single explanation standing.
- 01
Compare two orders' data layer values
Identical means cache.
- 02
Identify which caching layers are active
Page, dynamic page, BigPipe.
- 03
List tracking-adjacent modules
The Drupal inventory step.
- 04
Check whether conversions come from Commerce or Webform
Different hooks entirely.
- 05
Reconcile against Commerce orders
For a closed week.
Drupal + Meta CAPI · prove
The QA evidence — Drupal + Meta CAPI
Run on Drupal specifically, on a live conversion rather than in preview mode.
Source of truth
your Drupal Commerce order records
- Two different orders confirmed carrying different values.
- Order state transition confirmed firing once per order.
- Webform submissions confirmed bound to the hook, not a navigation.
- Purchase count reconciled against Commerce for a closed week.
- A refund state transition tested and confirmed reversing.
- Reconciled over a fully closed window, matched per record rather than on totals.
- Re-checked 30 days later, and after any platform update.
Drupal + Meta CAPI · free audit
What we check in the free audit
- Compare two orders' data layer values
- Identify which caching layers are active
- List tracking-adjacent modules
- Check whether conversions come from Commerce or Webform
- Reconcile against Commerce orders
Checked against
your Drupal Commerce order records
Free30 minutesNo obligation
Drupal + Meta CAPI · when not to buy
When you don't need this on Drupal
Worth reading before you buy anything, from us or anyone.
- If two consecutive orders produce different, correct payloads and your counts reconcile, the caching problem isn't affecting you.
- This is standard Drupal development your team can do — the event system is well documented.
- If you're a content-only Drupal site with no Commerce, this is really a Webform tracking question and simpler than the page suggests.
- Reconcile before assuming. Drupal setups are often more correct than they look.
Drupal + Meta CAPI · what we deliver
What gets built for Meta on Drupal
A shared event ID on both paths
The Drupal Commerce order number, available to the state transition event.
Standard event names, exactly cased
Meta matches on name and ID together, so a case difference alone produces two events.
Customer data normalized then hashed
Lowercase and trimmed email, phone in E.164. This is where nearly every low match quality score comes from.
fbc and fbp forwarded from the browser
fbc only exists if fbclid was captured on landing — a very common gap.
Written guarantee
95%+ tracking accuracy
Measured against your Drupal Commerce order records. Miss it and we keep working at no cost.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.
- Root cause fixed, not worked around
- Verified on a live conversion
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.
- First-party server container on your own subdomain
- Money events from your records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop
- Refunds and cancellations corrected wherever each platform allows it
- Monitoring on every destination
FAQ
Drupal + Meta CAPI questions, answered
The Commerce order number.
The ecosystem is smaller than WordPress's, but the logic is identical. Inventory first.
Not for per-order data. That must come from an uncached region or the server.
The Deduplicated indicator over a week plus reconciliation against Commerce orders.
Free · 30 min
Get Pixel and CAPI counting once on Drupal
Free30 minutesNo obligation
