A subscription business does not buy customers with ads. It buys a first payment and hopes for the next eleven. That changes how you should run ChatGPT Ads: decide what one subscriber is worth before you open Ads Manager, count the first real charge rather than the sign-up, give the campaign time to learn, and then make sure the renewals you paid for actually arrive. This guide walks through each step for SaaS tools, memberships, paid communities, monthly courses and any service sold as a plan.
Two honest notes first. This is learned knowledge, not a case study: it combines guidance OpenAI gives advertisers, OpenAI’s public help pages and ordinary performance-marketing practice. We have not run these exact campaigns, and nothing here guarantees a single subscriber. And the channel is young. Menus, goals, countries and policies are still moving, so where a detail may change we say so, and the final word belongs to Ads Manager at ads.openai.com and to OpenAI’s own policies.
Key takeaways
- Set your maximum cost per paying subscriber from price, margin and months retained before you spend anything.
- Count the first successful payment, sent from your server, as the conversion that matters. Sign-ups and trials are early signals, not the goal.
- Start small and early, avoid daily edits, and review every few days with three questions: is it running, is it as expected, where does it pay?
- An ad pays back only through renewals. Expired cards and declined renewals end subscriptions you paid to win, so have a recovery process in place before launch.
What can you afford to pay for one subscriber?
Start with arithmetic, not with the ad. A one-off sale is judged on the day it happens. A subscriber is judged over months, so the right question is not “what does a sign-up cost?” but “how long until this subscriber has paid back what I spent to win them, and how much is left after that?” Three numbers answer it: the monthly price, your gross margin (what remains after hosting, payment fees and support), and the number of months a typical subscriber stays.
Multiply the three and you have the gross profit one subscriber brings over their lifetime. Then decide how much of that you are willing to spend up front. Many subscription teams use a payback rule instead of a percentage: “we will spend up to the gross profit of the first N months”. It is easier to reason about, and it caps the damage if your retention estimate turns out to be optimistic. If you have never measured how long subscribers stay, our guide on how to calculate churn rate shows how to get that number from data you already have.
| Step (hypothetical numbers, not a benchmark) | Example: an invoicing app for freelancers |
|---|---|
| Monthly price | $19 |
| Gross margin | 80% |
| Gross profit per month | $19 × 0.80 = $15.20 |
| Months a subscriber typically stays | 14 |
| Lifetime gross profit per subscriber | $15.20 × 14 = $212.80 |
| Payback rule you choose | Recover the cost within 8 months |
| Maximum cost per paying subscriber | $15.20 × 8 = $121.60, call it $120 |
| Trials that become paying subscribers | 1 in 4 |
| Maximum cost per trial started | $120 ÷ 4 = $30 |
Two things in that table deserve a second look. First, the cost per trial is a quarter of the cost per subscriber, because most trials never pay; judged by trials alone, a cheap campaign can look like a win while it loses money. Second, the 14-month lifetime is an average that includes people who leave for reasons they did not choose. Some of them simply had a card expire. We will come back to that, because it is the part of the sum most teams forget.

Who sees ChatGPT ads, and which subscription products fit?
OpenAI’s help center says ads may appear for users on the Free and Go plans, while Plus, Pro, Business, Enterprise and Edu accounts do not see them. Ads are not shown in accounts that are reported, or predicted, to belong to someone under 18, nor in temporary chats, and OpenAI says it keeps ads away from sensitive conversations such as health. In practice you are reaching adults, many of them cost-conscious, at the moment they are asking for help with something specific.
That last part is what makes the channel interesting for subscriptions. A person who types “what is the simplest way to send invoices as a freelancer?” or “how can I learn piano as an adult with 20 minutes a day?” has already described the problem your product solves. An ad shown beside that answer meets someone who is mid-decision, which is a different situation from interrupting a social feed. It also raises the bar: an ad that does not fit the question is ignored, and a page that does not answer it loses the visit.
| Kind of subscription | A question someone might ask | A first step worth offering |
|---|---|---|
| Software tool (SaaS) | Simplest way to track invoices as a freelancer? | Free trial, or a free plan with a clear upgrade |
| Membership or paid community | Where can I get feedback on my design portfolio? | A low-price first month, with the cancellation steps stated |
| Course billed monthly | How do I learn conversational Spanish in six months? | First lesson free, then a monthly plan |
| Productised service | Who can do my bookkeeping for a fixed monthly fee? | A short call, then a plan with a visible price |
| Content subscription | Best newsletter for following the EV battery market? | A free issue, then a paid tier |
Some products fit poorly for now. A contract signed by a procurement team after three demos will not be closed by a chat ad, and a category the policies restrict will be stopped at review.

What should be ready before the first campaign?
Most disappointing first campaigns fail before an ad is shown, and most of the fixes cost only time. Work through six checks and do not launch until all of them pass.

A page that answers the question and shows the price
Send the ad to the page that answers the question behind it, not to your home page. For a subscription, that page has a job ordinary landing pages skip: it must make the commitment clear. In the first screen, show what the product does for this person, the monthly price (or the cheapest plan that solves their problem), whether the trial needs a card, what happens when the trial ends, and how to cancel. People who arrive from a chat are used to direct answers; hiding the price behind “book a demo” reads as evasive.
Then subscribe yourself, on a phone, from the ad’s link, and check that the confirmation screen and the welcome email say what was charged and when the next charge happens.
An advertiser account that is set up properly
In Ads Manager, finish the business details, the billing setup and any verification the account asks for before you build the first campaign; an unfinished account is a common reason for a campaign that never starts. Keep the account in the company’s name, not a personal login.
Which event should you count: sign-up, trial or first payment?
The ad system optimises for whatever you tell it success looks like, so this choice matters more than any targeting setting. For a subscription business there are usually four candidates, and the honest answer is that you want the deepest one you have enough volume for.
| Event | What it tells you | Strength | Weakness |
|---|---|---|---|
| Account created | Someone was interested enough to sign up | High volume, fast feedback | Many never use the product, let alone pay |
| Trial started | Someone wants to try the paid features | Earlier than a payment, still meaningful | If no card is required, most trials never convert |
| First payment | A real customer, paid | This is the business result | Lower volume, and delayed by the trial length |
| Renewal paid | The customer stayed | Closest to lifetime value | Too slow and too rare to steer a campaign |
A practical path is to send all three early events from day one, steer the first campaign on trial starts or clicks while you prove that tracking works, and switch the goal to the first payment as soon as you have a steady trickle of them. Whatever the campaign optimises for, judge it on the first payment. If your trial asks for a card up front, trial starts track payments more closely; if it does not, expect a large gap and plan your reviews around the trial’s end date.
Attach a value to the payment event where Ads Manager allows it, so an ad that sells the annual plan is not scored the same as one that sells the monthly plan.
How do you send the first payment to Ads Manager?
OpenAI offers two ways to report conversions: a pixel, a script on your website that reports events from the visitor’s browser, and a Conversions API, which your own server calls. For subscriptions you will usually want both. The pixel sees the visit and the sign-up. The payment, however, is confirmed by your billing system, often after the visitor has closed the tab, and sometimes days later when a trial ends. Only your server sees that moment, so the first payment should be sent from there. Steps and menu names change, so treat this as the shape of the job.
- Create the data source. In the conversions area of Ads Manager, create a pixel for your site. You receive an ID to place on your pages.
- Install the pixel on every page, including the pricing page and the sign-up confirmation, directly or through your tag manager.
- Define the conversions. Name them plainly (“trial started”, “first payment”) and choose how long after an ad view or click a conversion may still be credited. A window that covers your trial length is reasonable.
- Send the payment from your server. When your billing system confirms the first successful charge, call the Conversions API with the event name, a unique event ID, the value and the currency.
- Avoid double counting. If the same event can arrive from both the pixel and the server, give both the same event ID and follow the deduplication rules in OpenAI’s documentation.
- Test with a real payment. Buy your cheapest plan with a real card, refund yourself, and confirm the event appears in Ads Manager before the campaign starts.
// Simplified: count the first real payment, once, from your server.
// sendAdConversion() stands in for the Conversions API call in OpenAI's docs.
const event = stripe.webhooks.constructEvent(rawBody, signature, webhookSecret)
if (event.type === 'invoice.paid') {
const invoice = event.data.object
const isFirstPaid =
invoice.amount_paid > 0 && !(await alreadyCounted(invoice.customer))
if (isFirstPaid) {
await sendAdConversion({
eventName: 'first_payment',
eventId: invoice.id, // reuse it if the pixel reports the same event
value: invoice.amount_paid / 100,
currency: invoice.currency,
})
await markCounted(invoice.customer)
}
}Two details trip people up. With a free trial, Stripe usually creates a zero-amount invoice when the trial starts, so “first invoice paid” is not the same as “first money received”; checking for an amount above zero, as above, handles that. And webhooks are retried and can arrive twice, so record that a customer was already counted. Our guide on webhook reliability covers the failure modes in more depth.
Send the least data that works
Expect Ads Manager and your billing system to disagree a little; for money, the billing system is the truth.
Which campaign goal and budget should you start with?
Ads Manager asks what the campaign should achieve. The options and the way each is billed may differ from what we describe, so read their descriptions in the editor, but they come down to three kinds of goal.
| Goal | What it tries to maximise | Use it when |
|---|---|---|
| Reach (views) | How many people see the ad | Rarely, for a launch where being seen is the point |
| Clicks | Visits to your page | Tracking is new or payments are too few to optimise on |
| Conversions | The event you defined, such as a first payment | Events arrive reliably and in some volume |
For the budget, return to the number from the first section. If the most you can pay for a subscriber is $120 and you want at least five paying subscribers before you judge the test, the test needs roughly $600 of spend, plus some room for the learning period in which results are worse than they will be later. Divide by the number of days you plan to run and you have a daily budget. If that sum is more than you can afford to lose, do not shrink the goal to two subscribers; you would be deciding on noise. Wait until you can fund a test that can teach you something, or test a cheaper event first.
Then leave it alone. A new campaign needs time to learn who responds, and daily edits reset that learning and hide the cause of any change. Note the date and the one thing you changed, then wait several days.
How do you write the ad and the page behind it?
A good subscription ad is specific about three things: the problem it solves, what it costs or how the trial works, and that the customer stays in control. The space is tight, often a few dozen characters for the headline and a sentence for the description, so check the current limits in the editor. Ads Manager may offer to write or improve copy from your website; treat that as a draft and read every line, because a generated line can promise something you do not offer.
| Vague or risky | Specific (hypothetical examples) | Why it works better |
|---|---|---|
| The ultimate invoicing solution | Send a freelancer invoice in 2 minutes, $19/mo | Names the job and the price |
| Try it free! | 14-day trial, no card, cancel in one click | Answers the three worries about a trial |
| Double your revenue | Get paid faster with automatic payment reminders | A claim you can deliver, not a promise you cannot |
| Join thousands of happy users | Used by design studios to bill monthly retainers | Concrete and checkable, if it is true |
The page must keep every promise the ad makes. If the ad says “no card”, the sign-up form cannot ask for one. If it says “$19/mo”, that price has to be visible without scrolling, along with what happens after the trial. Many places have rules for automatically renewing subscriptions that require clear disclosure of the price and the renewal terms before checkout and a simple way to cancel; OpenAI’s policies also require honest, accurate ads. A page that is upfront about renewal is not only safer, it attracts subscribers who meant to subscribe, and those are the ones who stay.
Write two or three versions that differ in one respect, such as the price shown, and compare first payments, not clicks.
How often should you read the results, and what do they tell you?
Every few days, not every hour. The rhythm is launch small, give the campaign time to learn, then read and adjust. At each review, ask three questions in order.

- Is it running? Check the review status, schedule, budget and bid. A campaign still in review, out of budget or scheduled for the wrong dates delivers nothing, and no copy change fixes that.
- Is it performing as expected? Compare impressions, clicks, trials and first payments with the plan. Clicks with no sign-ups point at the page; sign-ups with no events point at tracking.
- Where does it pay? Find the ad and the plan that produce first payments below your maximum cost per subscriber, and move budget towards them in small steps while you watch the cost.
| What you see | Most likely cause | First thing to check |
|---|---|---|
| No impressions | Still in review, out of budget, or too narrow | Review status, dates, daily budget, locations |
| Impressions, few clicks | The ad does not match the question | Rewrite the headline around one problem and one price |
| Clicks, few sign-ups | The page or the form | Subscribe on your phone from the ad link |
| Sign-ups, no events in Ads Manager | Tracking | Pixel on the confirmation page; server events reaching Ads Manager |
| Trials, few first payments | Onboarding or trial design | What a trial user sees in the first session; trial end emails |
| First payments, then cancellations in month two | Wrong promise, or failed renewals | Split cancellations from failed payments before you blame the ad |
The last row is the one to take seriously. When month-two numbers look bad, teams usually blame the audience or the creative. Look first at why those subscriptions ended. A customer who clicked “cancel” is telling you something about the product or the promise. A customer whose renewal was declined told you nothing at all.

What happens after the first payment?
This is where the ad’s return is actually earned, one renewal at a time, and where it is most quietly lost. Every month, some renewals fail without anyone deciding to leave. Cards expire. Banks decline charges for low balance, fraud rules or limits. A card is replaced after a breach and the new number never reaches your billing system. The customer still wants the product, but the payment does not arrive, and unless someone follows up, the subscription ends. This is involuntary churn, and our summary of how much revenue is lost to failed payments collects published estimates of its size.
Look again at the example. The invoicing app paid $120 to win a subscriber. If that subscriber’s card fails in month four and nothing happens, they have contributed three months of gross profit, $45.60, against a $120 cost. The ad did its job; the business lost $74.40 on the customer anyway. If the same thing happens to even a small share of the subscribers a campaign brings in, the average lifetime in your sum shrinks, and a campaign that looked profitable on paper stops paying back. You can tune the ad for weeks and never find the problem, because the problem is not in the ad.

The fixes are well understood, and they cost far less than the ad spend they protect:
- Warn before the card expires. A short reminder a few weeks before the expiry date prevents the failure entirely; see how to set up pre-dunning emails.
- Retry at sensible times. Many declines are temporary. Soft and hard declines need different handling, and Stripe’s own Smart Retries covers part of it.
- Email the customer, and make updating easy. A clear message with a one-click link to update the card, such as the Stripe customer portal, recovers payments a retry cannot. Our dunning sequence guide covers timing and wording.
- Let the card networks help. Account updater services refresh some replaced card numbers automatically.
- Watch annual plans closely. One failed charge on an annual plan is twelve months of revenue; see reducing annual renewal failures.
You can build all of this yourself; our guide to recovering failed Stripe payments shows how. Or you can use a tool. Revova is one: it watches for failed payments on Stripe, Paddle, Braintree, Chargebee and Recurly, emails the customer at a sensible local time asking them to update their payment details, and stops the moment the invoice is paid. On Stripe it also adds retries and card-expiry reminders. We are not an advertising tool, and we will not claim a recovery rate for your business; we include it here because it sits exactly where the money from a good campaign is easiest to lose.
A worked example: Ledgerly, an invoicing app (hypothetical)
To put the steps in order, imagine a small company we will call Ledgerly. It is invented for this guide, and so are its numbers. Ledgerly sells invoicing software to freelancers for $19 a month with a 14-day trial that needs no card, bills through Stripe, and wants its first paying subscribers from ChatGPT Ads before the new year.
| When | What Ledgerly does | Decision rule |
|---|---|---|
| Week 1 | Sets the maximum cost per subscriber at $120; builds a freelancer pricing page with price, trial terms and cancellation; adds the pixel and the server-side first payment event; makes a real test purchase | No launch until the test payment appears in Ads Manager |
| Week 1 | Turns on failed-payment emails and card-expiry reminders | No ad money until renewals are protected |
| Week 2 | Launches one campaign on a click goal with a small daily budget and two ads: one leads with the price, one with the time saved | No edits for three days |
| Day 7 and day 10 | Answers the three questions; compares sign-ups in Ads Manager with its own database | If sign-ups arrive but events do not, fix tracking before touching the ads |
| Weeks 4 to 6 | Trials from the first week end; first payments arrive; switches the goal to first payment once they come steadily | Keep the ad with the lower cost per first payment |
| Month 3 onwards | Compares cost per paying subscriber with $120 and checks why month-two subscriptions ended | Raise budget gradually only if cost stays below $120 and renewals hold |
The plan has no large budget on the first day, no daily changes and no promise of results. It has a number agreed in advance, an event that means money, and a rule for every review. That is most of the difference between a test you learn from and a test you only pay for.
When should you start, and what about the quiet months?
Start earlier than feels necessary. A campaign that launches the week your demand peaks spends its best days learning. Subscriptions have their own calendars: the new year for fitness, learning and personal-finance apps; budget season for business tools; the start of a term for courses; the weeks before tax deadlines for accounting software. Pick the window that matters to you and launch a few weeks before it, so the campaign is tuned when people start asking.
When the window closes, write down which ad brought paying subscribers, at what cost, and how many were still paying two months later. Keep the tracking running. If payments came in below your maximum cost, a modest steady budget often beats stopping and starting.
What does this guide not tell you?
It does not tell you what a paying subscriber will cost on ChatGPT Ads, because we have no reliable figures for subscription businesses and will not borrow a benchmark from another industry. It does not say the channel will beat search, social or partnerships for your product; only a small, well-measured test can tell you that. It does not replace OpenAI’s documentation, which is the source of truth for goals, billing, formats and policy, and which will change faster than any article. And it is not legal advice.
If you keep one idea from it, keep this: price the subscriber before you buy the click, count the first payment, and protect every renewal after it. The ad wins the customer. The renewals are what pay for it.
Frequently asked questions
Can a SaaS or subscription business advertise on ChatGPT?
Yes, where ads are available to your account. OpenAI runs a self-serve Ads Manager at ads.openai.com, it has been opening country by country, and every ad is reviewed against OpenAI’s ad policies before it runs. Check what your account can launch today before you plan a budget around it.
Who sees ads in ChatGPT?
Adults on the Free and Go plans, according to OpenAI’s help center. Plus, Pro, Business, Enterprise and Edu accounts do not see ads, accounts known or predicted to belong to someone under 18 do not see them, and temporary chats show none. These rules can change, so check the current help page.
What should a subscription business count as a conversion?
The first successful payment, sent from your server when your billing system confirms it. A sign-up or a trial start is useful as an early signal while volume is low, but a trial that never pays costs you the same ad money as one that does.
How much should I spend on a first ChatGPT Ads test?
Work backwards from what a subscriber is worth: monthly price times gross margin times months retained. Decide how much of that you will spend to win one, and fund the test so it can produce a few paying subscribers at that cost, never more than you can afford to lose.
How long should a campaign run before I judge it?
At least two to three weeks, reviewed every few days. If you offer a free trial, add the trial length, because the conversion you care about only happens when the trial ends and the first charge succeeds.
Why does a payment recovery tool write about advertising?
Because an ad buys a first payment and renewals pay it back. When a renewal fails and nobody follows up, the subscriber you paid for is lost before they have paid for themselves.
Do I need Stripe to follow this guide?
No. The ad steps work with any billing system that can tell your server when a payment succeeds. The examples use Stripe’s invoice.paid event because many subscription businesses bill there; Paddle, Braintree, Chargebee and Recurly send similar notifications.
You paid to win the subscriber. Keep the renewals.
Revova recovers failed subscription payments with timed emails and, on Stripe, retries, card-expiry reminders and one-click card updates. Starter is $29/mo, Pro is $79/mo, and the 14-day free trial needs no card.
Start my 14-day free trial →No credit card · Free Lost Revenue scan · 30-day money-back guarantee




