- US device IDs in the graph
- 750M+
- Match rate on events
- 90%+
- Meta event match quality
- 7.5+
- Most brands are live
- <20 min
How it flows
How a Recharge event reaches the Meta Conversions API. Captured on the server, resolved to a person, then sent.
01 Capture
Captured from Recharge
Bring subscription events into the same resolved customer: new subscriptions, renewals, churn and reactivation.
See the Recharge integration →
RechargeWhat it sends subscription_idthe subscription, not the ordercharge_ideach recurring chargeemail / phonesubscriber contactstatusactive, cancelled, paused, reactivatedis_first_chargenew subscription versus renewalproduct / frequencywhat they subscribed to and how often
02 Understand
Resolved to one person before it leaves
Every Recharge event is matched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer rather than two strangers.
How resolution works →
Resolved before it is sent - IdentityMatched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer.
customer_typeNew or returning, resolved before send.- DeduplicationBrowser and server copies of the same purchase collapse on event ID, so nothing is counted twice.
- Bot and fraud filteringAutomated traffic never reaches the model, because what you keep out of the training set matters as much as what goes in.
03 Activate
Delivered to the Meta Conversions API
Forward deduplicated, identity-resolved conversions to Meta through the Conversions API, and give the model a customer instead of a session.
See the Meta Conversions API integration →
Meta Conversions APIWhat it receives em, ph (SHA-256)raise Event Match Qualityfbclid / _fbpcredit the click that drove itexternal_idstable person across sessionsevent_iddedupe against the browser pixelvalue / currencyvalue-based bidding
Which events reach the Meta Conversions API
Each Upstack event is mapped to the Meta Conversions API event below before it is sent.
| Upstack event | Sent to Meta Conversions API as | Key data on the event |
| Page view | PageView | URL, referrer, user agent |
| Product view | ViewContent | content_ids, content_type, value, currency |
| Add to cart | AddToCart | content_ids, value, currency |
| Checkout | InitiateCheckout | value, currency, num_items |
| Purchase | Purchase | value, currency, order_id, content_ids |
Every event carries every available match key: em, ph, fn, ln, ct, st, zp and country, plus fbc, fbp and external_id. Personal data is hashed with SHA-256 before it leaves Upstack.
The catch
Recharge fires a charge event on every renewal.
Forwarded naively, your ad platform learns that customers you already acquired keep converting, and prospecting drifts toward people who look like existing subscribers. Only the first charge is an acquisition.
Where to check in the Meta Conversions APIDelivery you can audit
Events Manager › your dataset › Event Match Quality
Server events appear with a Server badge, and Event Match Quality is scored per event type.
What changes
What changes when Recharge feeds the Meta Conversions API. Two gains on the Meta Conversions API side, two on the Recharge side.
Meta Conversions API
Higher Event Match Quality
More hashed identifiers on every event (email, phone, external ID, click ID), so EMQ rises and Meta matches more of what you send.
Meta Conversions API
Pixel and CAPI, one install
One source of truth for both, with browser and server events deduplicated on event_id so purchases are never double-counted.
Recharge
Subscriptions as their own conversion
Send new subscriptions to the ad platforms as a distinct event, not lumped in with one-time orders.
Recharge
Renewals counted properly
Recurring charges are forwarded as real revenue, so LTV reporting reflects what the customer is actually worth.
-
01
Connect Recharge
Bring subscription events into the same resolved customer: new subscriptions, renewals, churn and reactivation.
-
02
Add the Meta destination
Under Destinations, add Facebook Advertising with your Pixel ID (a 15 or 16 digit number) and a Conversions API token generated in Events Manager, which starts with EAA.
-
03
Check Event Match Quality
Upstack marks the destination Healthy, and Events Manager lists the server events with a Server badge. Open your dataset’s Event Match Quality: it is scored per event type, and Meta takes 24 to 48 hours to score new events.
FAQ
Questions about Recharge and the Meta Conversions API.
What is Event Match Quality (EMQ) and why does it matter?
EMQ is Meta’s score, from 0 to 10, for how reliably it can match a conversion event back to a Meta user. Higher EMQ gives Meta’s algorithm more signal to optimize against, and server-side delivery through CAPI typically raises it because events carry more match keys and are not blocked by browser restrictions.
Will purchases be counted twice with the Pixel and the Conversions API both running?
No. Upstack sends a shared event_id on every server-side event, and Meta deduplicates against the matching browser Pixel event. As long as the Pixel ID in Upstack matches the Pixel ID firing in your storefront, deduplication is automatic.
Which events does the Meta Conversions API receive?
PageView, ViewContent, AddToCart, InitiateCheckout and Purchase, each mapped to the Meta Conversions API event of the same name.
Which customer parameters are sent to the Meta Conversions API?
Every event carries every available match key: em, ph, fn, ln, ct, st, zp and country, plus fbc, fbp and external_id. Personal data is hashed with SHA-256 before it leaves Upstack.
How do I check that Recharge events are reaching the Meta Conversions API?
Upstack marks the destination Healthy, and Events Manager lists the server events with a Server badge. Open your dataset’s Event Match Quality: it is scored per event type, and Meta takes 24 to 48 hours to score new events.
How long does it take to connect Recharge to the Meta Conversions API?
Most brands are live in under 20 minutes. Once Recharge is connected, every destination receives the same resolved events, the Meta Conversions API included.