Denys Shcherban. Book a consultation · $150

Offline conversion tracking for SaaS

Ads that learn from paying customers, not sign-ups.

I connect Stripe or your CRM to Google, Microsoft and Meta Ads.

  • One-hour video call
  • $150, paid after the call
  • A plan for your next steps

Why ads bring sign-ups, not paying customers.

Google Ads, Microsoft Ads and Meta learn from the conversions you count. Count trial sign-ups, and they find more sign-ups, whether those people pay or not.

  • Bots and spam count as sign-ups too, so the ads find more of them.
  • Your ad reports never show your cost per paying customer.

The fix: send each payment back to the ad that brought it.

What you need to send payment data to ads.

How to send payment data to each platform.

Microsoft Ads

  1. Create an offline conversion goal. It turns on msclkid auto-tagging by itself.
  2. Save the msclkid and email with each sign-up.
  3. Set the goal’s conversion window to 90 days. The default is 30.
  4. Wait 2 hours after creating the goal. Then upload payments as a file in the web app, or by API.
  5. Or send them through Microsoft’s Conversions API.
  6. Uncheck “Include in Conversions” on sign-up goals, so bidding learns from payments.

Meta

  1. Use the Conversions API. Meta marks the old Offline Conversions API as legacy.
  2. Save the _fbc cookie and email at sign-up. The cookie holds the fbclid.
  3. Send each payment as a Purchase event, with its value and currency. Hash the email, not the _fbc value.
  4. Choose the Sales objective, so the ad set optimizes for purchases or their value.
  5. If people pay weeks after the click, optimize Meta for an earlier step.
  6. Running Lead Ads? Meta’s CRM integration needs at least 200 leads a month.

How long it takes, and what changes in reports.

Google says bidding needs 1 to 2 conversion cycles to adapt to a new goal. A cycle is the time from click to conversion, plus upload time for imports. If people pay three weeks after the click, plan on three to six weeks.

Not many payments yet?

  • Google asks for at least 15 conversions in 30 days for Target ROAS on Search.
  • Google recommends a goal that people reach within 7 days of the click.
  • Fewer or later payments? Optimize for an earlier step, like a qualified lead.
  • Keep the payment as a secondary goal, so you still see it.

What changes in reports

Conversions fall and cost per conversion rises, since payments are rarer than sign-ups.
  • Google reports each payment on the date of its click. Numbers for recent weeks keep climbing as late payments come in.
  • The “by conv. time” columns show payments on the day they happened.
  • Sign-ups move to the “All conversions” column.
  • Send the amounts, and you see revenue and return on ad spend by campaign.

What I set up for WorkflowPros.

WorkflowPros

Since June 2026

I run all their US marketing.

A SaaS for HVAC, plumbing and electrical contractors.

The first screen of workflowpros.io, the WorkflowPros website I built
I built this site: workflowpros.io
  • Website
  • Design
  • Video
  • Copywriting
  • Funnels
  • Ads
  • ABM
  • Analytics
  • A/B tests
  • Google Ads. Qualified leads in HighLevel go to Google Ads as offline conversions. The click ID saved at sign-up links each lead to its ad.
  • Spam. Four spam demo requests counted as conversions and taught the ads to find more. Now a server checks each request before it counts.
  • Microsoft Ads, October 2026. 93% of clicks came from bots and click fraud. Bots clicked the “demo started” step, and it counted as a conversion. I made a booked demo the only goal. I also kept bot clicks out of the data automated bidding learns from.

Mistakes that teach your ads the wrong thing.

All six come down to goals, click IDs or timing.

  • Sign-ups stay a primary goal, so bidding still chases them.

  • The click ID isn’t saved at sign-up, so a payment can’t find its click.

  • Time zones don’t match. Google rejects a payment that looks earlier than its click. Microsoft wants UTC in API uploads.

  • Uploads start too soon. Wait 4–6 hours in Google, 2 hours in Microsoft, after creating the goal.

  • The goal name in a Microsoft upload doesn’t match exactly. The payment isn’t applied.

  • Meta gets the payment late. One event older than 7 days fails the whole batch.

Do it yourself, or have me do it.

You can follow the steps above yourself. Or hand it to me. I do all the work myself.

  • Not sure where to start?

    Consultation · $150

    A one-hour video call and a plan for your next steps. You pay after the call.

  • Ads already running?

    Marketing audit · $2,500 · 1 week

    I check what your ads learn from and trace each sale back to its ad. Then I fix what you choose, $150 an hour, quoted up front.

  • Starting from scratch?

    Fractional CMO · $10,000 a month

    It’s a 3-month contract. The first month is the launch: plan, website, tracking and first ads.

    All prices

Questions.

Can Stripe send payments to Google Ads on its own?

Not for most accounts yet. Stripe’s Marketing analytics sends conversion signals to Google Ads, but only in a waitlist preview. Until you’re in, send payments through Zapier, your CRM or a short script.

We sell through demos, not self-serve. Does this still work?

Yes. Send a CRM stage instead, like a qualified lead or a won deal. Google calls these qualified and converted leads.

How long should we keep the click ID?

90 days. Microsoft and Meta both recommend it, and it matches Google’s upload limit.

Should we send the payment amount?

Yes, if you want the ads to bid on revenue. Google’s Target ROAS needs a value on each conversion. Without one, Microsoft uses the goal’s default value.

Do renewals count as new conversions?

They can. In Microsoft Ads, a goal set to count “All” counts every payment after a click. In Google Ads, give each payment from the same click its own conversion time.

Can we set this up without a developer?

Partly. Saving the click ID at sign-up may need a small form change. The rest can run through Google Ads Data Manager or Zapier, which Google and Meta document.

Denys Shcherban

Not sure what your ads learn from?

Pick a time that works for you. You pay after the call.

Or email me at denys@denysshcherban.com

Book a consultation · $150