How to reconcile X Ads against your billing system
This is the check we run first on every account, written out so you can run it without us. It takes about thirty minutes and needs two numbers: what X Ads says it produced, and what your billing system actually shows. The gap between them is the only honest measure of whether your tracking works — and if it comes back small, you do not need us.
Free30 minutesNo obligation
Specific to X Ads × Subscriptions
X Ads vs new subscriptions: freemium signups are not subscriptions
Store twclid on the billing customer and send the first successful payment through the X Conversions API with the subscription ID as the conversion identifier. Compare against a closed month of first payments. A small shortfall is normal; X reading far higher usually means the website tag fires on the free signup rather than the paid upgrade.
twclid is the click identifier to persist from landing onto the customer record, so that a first payment in billing can be traced to an X click. Many products advertised on X are freemium, which makes the gap between signup and first payment long and unpredictable. The identifier has to sit on the account from the free signup, then be read again when billing reports the upgrade.
X sets attribution windows per conversion, so a signup conversion and a purchase conversion in the same account can be on different windows. Confirm both before comparing anything. Free users who upgrade weeks later will often fall outside the purchase window, and X will not see them. The API has been rebuilt more than once, so check that your integration is still delivering events before blaming the window.
Use X's conversion report for the purchase or subscribe event only. The most common disagreement for this pair is a tag on the free account confirmation page that X counts as a conversion and that billing never records, because no money changed hands. If X is a small experimental line, a totals comparison per quarter is enough.
X Ads × Subscriptions · what breaks
Why X Ads and your billing system disagree — X Ads × Subscriptions
- 01
Every renewal firing as a conversion
The single most common subscription error. A customer who stays two years produces twenty-four payment events, and counting them all inflates the conversion count by exactly your retention rate.
- 02
Trial starts counted as paid conversions
A free trial costs the user nothing. Optimising toward trials reliably finds people who start trials and never pay.
- 03
Cancellations inside the first period never reversed
Early churn on discounted offers is high, and the reversal is almost never wired.
- 04
Lifetime value assumed rather than measured
An industry figure for tenure will either starve a channel that works or overfund one that does not. Your own churn data says something different.
X Ads × Subscriptions · the fix
What you get from this — X Ads × Subscriptions
A number instead of a suspicion
The likely cause, narrowed
A basis for deciding
X Ads × Subscriptions · architecture
What each side is actually counting — X Ads × Subscriptions
- 1
What X Ads counts
An event name X recognizes, a conversion identifier matched to the tag if you run one, a timestamp, hashed customer information, and the click identifier.
- 2
How X Ads attributes it
X appends twclid to your landing page URL. The platform's advertising stack has changed substantially and repeatedly, so treat any documentation older than a few months as unreliable and verify parameter names and endpoints directly before building.
- 3
The window it uses
X's attribution windows are configurable per conversion. Confirm the setting in your account before comparing any number, and verify the accepted event-freshness limit against current documentation.
- 4
What your billing system counts
First successful payments on new subscriptions, found in Stripe, Chargebee, Recurly, Paddle or whatever charges the card.
- 5
The filter that makes them comparable
New subscriptions only — exclude renewals, and exclude trials that have not yet converted.
X Ads × Subscriptions · events
Reading the gap — X Ads × Subscriptions
| What you see | What it usually means |
|---|---|
| 15%+ platform higher | Usually the wrong event entirely — the platform is counting renewals, trials, or subscriptions that cancelled before the first real charge. |
| 20%+ platform lower | Usually structural — the platform is missing subscriptions it produced — usually a signup-to-payment gap longer than the attribution window. |
X Ads × Subscriptions · diagnose
Diagnostic order — X Ads × Subscriptions
- 01
Confirm both numbers cover the same period and channel
- 02
Every renewal firing as a conversion
The single most common subscription error. A customer who stays two years produces twenty-four payment events, and counting them all inflates the conversion count by exactly your retention rate.
- 03
Trial starts counted as paid conversions
A free trial costs the user nothing. Optimising toward trials reliably finds people who start trials and never pay.
- 04
Cancellations inside the first period never reversed
Early churn on discounted offers is high, and the reversal is almost never wired.
- 05
Read the conversion reporting inside X Ads Manager, reconciled against your own records
The platform's ad products and APIs have been rebuilt repeatedly, which means integration guidance ages faster here than anywhere else in this library. Anything you build should be re-verified periodically rather than assumed stable.
X Ads × Subscriptions · prove
How to know you did it right — X Ads × Subscriptions
Source of truth
your billing system — new subscriptions for a fully closed month
X Ads × Subscriptions · free audit
What we check in the free audit
- Confirm both numbers cover the same period and channel
- Every renewal firing as a conversion
- Trial starts counted as paid conversions
- Cancellations inside the first period never reversed
- Read the conversion reporting inside X Ads Manager, reconciled against your own records
Checked against
your billing system — new subscriptions for a fully closed month
Free30 minutesNo obligation
X Ads × Subscriptions · when not to buy
When the answer is that you do not need us — X Ads × Subscriptions
- If almost all of your new subscriptions come from a channel with no click behind it, no tracking work will reach them — and knowing that is worth more than a build.
- If X is a small experimental line on your plan, the integration effort is hard to justify against a platform whose API has moved this often.
X Ads × Subscriptions · what we deliver
The method, step by step — X Ads × Subscriptions
Pull what X Ads reports
The conversion reporting inside x ads manager, reconciled against your own records.
Pull what your billing system shows
Export subscriptions by creation date for a closed month, filtered to those that took a first successful payment, and record the plan value.
Filter both to the same thing
New subscriptions only — exclude renewals, and exclude trials that have not yet converted.
Compare per record, not on totals
FAQ
X Ads × Subscriptions questions, answered
As a secondary conversion, yes, if paid volume is too low to optimize on. Keep it out of any figure you compare against billing.
Periodically, because X's ad products and APIs change often. A reconciliation that suddenly shows X near zero is more likely a broken integration than a bad month.
Because you should know the size of the problem before anyone quotes you for it. If the gap is small, you have saved yourself a purchase. If it is large, you now know what you are buying rather than taking our word for it.
No. Both numbers come from systems you already own and neither leaves them. There is no tool to sign up for and nothing to upload.
Then compare totals for a closed period and treat the result as directional rather than exact. The conversion reporting inside x ads manager, reconciled against your own records is still the right place to read the platform's side.
Under five percent is working. Five to fifteen usually means reversals are missing. Above twenty is normally the wrong event being counted, not a broken tag — which is why debugging tags first wastes so much time.
Then fix the filter before drawing any conclusion. New subscriptions only — exclude renewals, and exclude trials that have not yet converted. A mismatch in scope produces a gap that looks like a tracking fault and is not one.
Book the free thirty-minute call and bring both numbers. We will tell you which of the causes above it is, and whether it is something you can fix yourself — which it sometimes is.
More on X Ads × Subscriptions
- Google Ads × SubscriptionsHow to reconcile Google Ads against your billing system
- Meta × SubscriptionsHow to reconcile Meta Ads against your billing system
- TikTok × SubscriptionsHow to reconcile TikTok Ads against your billing system
RELATED GUIDES
Systems of record beside billing subscriptions, and the funnels it settles
- X Ads × Enrolment SystemHow to reconcile X Ads against your application or enrolment system
- X Ads × Job SystemHow to reconcile X Ads against your job management system
- X Ads · Self-serve → sales assistedHow to track self-serve signup to sales-assisted contract for X Ads
- X Ads · Invite → team adoptionHow to track seat invite to team adoption for X Ads
- X Ads · Driving schoolsX Ads conversion tracking for driving schools
- X Ads · NonprofitsX Ads conversion tracking for nonprofits
- Blackbaud → X AdsConnecting Blackbaud to X Ads
- PayPal → X AdsConnecting PayPal to X Ads
Free · 30 min
Found a gap between X Ads and your billing system?
Free30 minutesNo obligation
