Meta Conversions API setup for custom SaaS
Same design question for Meta, with tighter windows. Activation or first payment usually beats a later milestone, and the click ID on the account record is what makes any of it possible.
Free30 minutesNo obligation
custom SaaS + Meta CAPI · what breaks
What goes wrong on custom SaaS
- 01
Nothing exists unless specified
No theme, no plugin, no defaults. An unspecified event doesn't fire.
- 02
The click ID stored in a cookie
Which is long gone by the time the card is charged.
- 03
Conversions weeks past the click
Straining every import window.
- 04
Signups optimized instead of revenue
Because signups are the only thing anyone wired.
custom SaaS + Meta CAPI · the fix
What changes — custom SaaS + Meta CAPI
Events emitted when they become true
Server-side, from your own database.
Click ID on the account record
Permanent, and referenced for the customer's life.
A bidable milestone inside the window
Chosen deliberately.
custom SaaS + Meta CAPI · architecture
How Meta tracking behaves on custom SaaS
Same design, tighter windows.
- 1
Activation or first payment as the target
Later milestones usually fall outside Meta's windows.
- 2
Account or invoice ID as event_id
Stable per event type.
- 3
fbclid captured at landing
Written to the account record.
- 4
Customer data from your own records
Normalized before hashing.
- 5
Churn reversed
So reported value tracks reality.
custom SaaS + Meta CAPI · diagnose
Where custom SaaS 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
Check what share of accounts carry a click ID
The ceiling on everything.
- 02
Check where it's stored
A cookie won't survive to first payment.
- 03
Measure median click-to-payment
Against the import window.
- 04
List which lifecycle events are actually emitted
Usually signup and nothing else.
- 05
Compare channel rank by signup and by revenue
The gap is the value of doing this.
custom SaaS + Meta CAPI · prove
The QA evidence — custom SaaS + Meta CAPI
Run on custom SaaS specifically, on a live conversion rather than in preview mode.
Source of truth
your own billing and account records
- Click ID present on a live account record after signup.
- Each lifecycle event confirmed emitting from the application.
- Deduplication keys confirmed stable per event type.
- Collected revenue reconciled against your billing for a closed month.
- Churn confirmed reversing reported value.
- Reconciled over a fully closed window, matched per record rather than on totals.
- Re-checked 30 days later, and after any platform update.
custom SaaS + Meta CAPI · free audit
What we check in the free audit
- Check what share of accounts carry a click ID
- Check where it's stored
- Measure median click-to-payment
- List which lifecycle events are actually emitted
- Compare channel rank by signup and by revenue
Checked against
your own billing and account records
Free30 minutesNo obligation
custom SaaS + Meta CAPI · when not to buy
When you don't need this on custom SaaS
Worth reading before you buy anything, from us or anyone.
- If your product converts in-session — a paid signup with an immediate charge — this is a purchase event and none of the lifecycle complexity applies.
- Your own engineers can build all of this. It's your codebase and there are no platform constraints. What we'd add is the event design and the reconciliation, not the code.
- If nobody has written an event specification, start there rather than with tags. It's the cheaper half and it's where the expensive mistakes get made.
- Measure click-to-payment before designing anything. If it exceeds the import window, the whole design changes.
custom SaaS + Meta CAPI · what we deliver
What gets built for Meta on custom SaaS
A shared event ID on both paths
Your own account or invoice ID, whichever is stable for the event being sent.
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 own billing and account 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
custom SaaS + Meta CAPI questions, answered
Your own account or invoice ID, chosen per event type and kept stable.
Yes, and often the best one — it's early enough to fit the window and predictive enough to be worth optimizing toward.
Send it as a reversal. Reported value should move down as well as up.
For fbp, fbc and top-of-funnel signals, yes. The money events come from your backend.
Free · 30 min
Get Pixel and CAPI counting once on custom SaaS
Free30 minutesNo obligation
