Skip to main content
Recharge + Meta CAPIPlatform solution

Meta Conversions API setup for Recharge

The Meta build on Recharge lives or dies on two things: a shared event ID between the pixel and the Conversions API so a subscription is not counted twice, and a deliberate decision to keep renewals out of the Purchase event. Sending every renewal as a Purchase inflates reported return by the entire size of your subscriber base, and the error compounds every month.

Free30 minutesNo obligation

Recharge + Meta CAPI · what breaks

What goes wrong on Recharge

  1. 01

    Renewals invisible to every ad platform

    They happen on a cron, with no customer present. Nothing that fires from a page can see them, and no amount of pixel work changes that.

  2. 02

    The first order double-counted

    Recharge creates a Shopify order, so the store's native integration and a Recharge-aware setup can both fire for the same purchase.

  3. 03

    Churn never reversed

    A subscription that cancels stops producing revenue, and almost nobody wires the cancellation back to anywhere.

  4. 04

    Acquisition valued at one box

    A subscriber worth twelve shipments optimized as though they were a single-purchase customer.

Recharge + Meta CAPI · the fix

What changes — Recharge + Meta CAPI

  • Acquisition and recurring revenue separated

    One is what you bid on; the other is what you report. Conflating them is the standard mistake.

  • First order sent once, at lifetime value

    Deduplicated on the Shopify order ID, valued at expected subscriber lifetime rather than one shipment.

  • Cancellations reversed

    So reported subscriber value can go down, which is the only way it stays honest.

Recharge + Meta CAPI · architecture

How Meta tracking behaves on Recharge

The Meta destination on a Recharge store.

  1. 1

    One Purchase per acquisition

    With an event_id shared between the pixel and the Conversions API, or every subscription counts twice.

  2. 2

    Customer data normalized before hashing

    Recharge holds a clean email; normalization before hashing is where match quality is usually lost.

  3. 3

    Renewals as a custom event, not Purchase

    Sending renewals as Purchase inflates reported ROAS by your entire subscriber base.

  4. 4

    Refunds and cancellations reversed

    Both exist as webhooks and both are usually ignored.

  5. 5

    Value set to expected lifetime

    So Meta optimizes toward subscribers who stay rather than whoever converts cheapest.

Recharge + Meta CAPI · diagnose

Where Recharge 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.

  1. 01

    Compare Recharge revenue against reported revenue for a closed month

    The gap is your renewal blind spot and it is usually the largest discrepancy in the business.

  2. 02

    Check whether a subscription carries a click identifier

    If the identifier is on the order and not the subscription, renewals can never be attributed.

  3. 03

    Look for double counting on the first order

    Recharge creates a Shopify order, and your store integration probably already fires on it.

  4. 04

    Check whether cancellation does anything at all

    Almost never wired, and it means reported subscriber value only ever rises.

  5. 05

    Ask what the renewal number is for

    Reporting and bidding need different answers, and conflating them is the real mistake under the technical one.

Recharge + Meta CAPI · prove

The QA evidence — Recharge + Meta CAPI

Run on Recharge specifically, on a live conversion rather than in preview mode.

Source of truth

Recharge's own subscription and order records, cross-checked against the Shopify orders they create

  • A test subscription created, with exactly one conversion firing and the identifier confirmed on the subscription rather than the order.
  • A renewal processed and confirmed to land wherever the written policy says it should — and nowhere else.
  • A cancellation confirmed to reverse at each destination that accepts one.
  • Recharge revenue reconciled against reported revenue for a fully closed month, with acquisition and recurring separated.
  • The lifetime value model shown as a calculation from your own churn data, not asserted.
  • Reconciled over a fully closed window, matched per record rather than on totals.
  • Re-checked 30 days later, and after any platform update.

Recharge + Meta CAPI · free audit

What we check in the free audit

  • Compare Recharge revenue against reported revenue for a closed month
  • Check whether a subscription carries a click identifier
  • Look for double counting on the first order
  • Check whether cancellation does anything at all
  • Ask what the renewal number is for

Checked against

Recharge's own subscription and order records, cross-checked against the Shopify orders they create

Get my free conversion tracking audit

Free30 minutesNo obligation

Recharge + Meta CAPI · when not to buy

When you don't need this on Recharge

Worth reading before you buy anything, from us or anyone.

  • If you sell one-off products with a small subscription tail, the store's native integration may already be adequate. Measure the recurring share first.
  • If your churn data is too young to model lifetime value, say so and use a conservative figure rather than an invented one.
  • If Recharge revenue and reported revenue already agree within a few percent, this is working and there is nothing to buy.
  • If you are not running paid media at meaningful spend, the reporting fix matters and the ad-platform work does not.

Recharge + Meta CAPI · what we deliver

What gets built for Meta on Recharge

  • A shared event ID on both paths

    the Shopify order ID from the Recharge charge

  • 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 Recharge's own subscription and order records, cross-checked against the Shopify orders they create. Miss it and we keep working at no cost.

Get my free conversion tracking audit

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
Fix what I have

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
Rebuild it server-side

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
Get the full stack

FAQ

Recharge + Meta CAPI questions, answered

Because Meta will count them as conversions and your reported ROAS will include revenue from customers acquired years ago. On a subscription business with good retention this can make campaigns look several times better than they are, and the error grows every month.

Free · 30 min

Get Pixel and CAPI counting once on Recharge

Free30 minutesNo obligation