About Tracking

Services

Google Ads Management Meta Ads Management Website Design & Build Local SEO Social Media Management Tracking & Conversions

Ad Platform Tracking

Meta Pixel + CAPI TikTok CAPI LinkedIn CAPI Snapchat CAPI Pinterest CAPI Quora Pixel Bing + UET Tag

Google Ecosystem

Google Ads Tracking GA4 Setup & Audit Google Tag Manager

Advanced Solutions

Server-Side Tracking Looker Studio Offline Conversion
Case Studies Blog Free Checklist Book Free Audit →
Meta CAPIAccounting SaaS · SMB CanadaCanada

The paid conversion fired on page load — a 31% trial-to-paid rate was really 8%

8%True trial-to-paid rate — was showing 31% from page-load event
3.9xConversion inflation removed — Meta was optimizing on intent, not payment
StripeWebhook now the sole source of paid conversion signal — structurally accurate

The situation

A Canadian accounting SaaS had an impressive 31% trial-to-paid conversion rate they were proud of. Their Meta campaigns were optimizing on this signal and CPL was excellent. A new CFO joined and asked why revenue wasn't growing proportionally to the conversion volume Meta was reporting.

The problem

A developer had placed the Meta "Subscribe" conversion event on the billing page — a page that loaded as part of the upgrade flow regardless of whether the user actually completed payment. Users who started the upgrade process, saw the pricing page, and bounced were all being counted as converted. The page loaded on intent, not on payment confirmation. Actual Stripe successful charges were 8% of trials, not 31%.

What we did

  1. Cross-referenced Meta Subscribe conversion events (per month) against Stripe successful charges for upgrade plans — 3.9x discrepancy
  2. Traced pixel event firing: Subscribe event was on /upgrade page load, not on Stripe payment success callback
  3. Implemented server-side Subscribe event via CAPI triggered only on Stripe charge.succeeded webhook — structurally impossible to fire without a successful charge
  4. Updated Meta campaigns to train on real payment signal — gave 3-week learning period

Why it worked

Page-load triggered conversion events are the most common SaaS tracking mistake. Any page that exists in the payment flow — billing page, upgrade page, checkout page — will receive traffic from users who don't complete the purchase. Firing a purchase/subscribe event on page load captures intent, not payment. The only reliable trigger for a paid conversion event is a successful payment webhook from Stripe, Chargebee, or whatever billing system is in use.

“Our Meta dashboard showed a 31% trial-to-paid rate. Our CFO asked why revenue didn't match. Saifur found our Subscribe event was firing when users loaded the billing page — not when they actually paid. True rate via Stripe webhooks: 8%. Meta had been optimizing on people who looked at the upgrade page. Complete rebuild.”
Amy T.
VP Revenue · Accounting SaaS · Canada · Jul 2025