Meta ads for SaaS: setting up your first campaign

A step-by-step first Meta campaign for a SaaS trial signup: one objective, the right conversion event, a sane audience, and a creative brief you can write today.

The Flowjat team

· 6 min read

Opening Meta Ads Manager for the first time is a strange experience. You came to spend $30 a day telling people your app exists, and the interface responds by asking about campaign objectives, attribution settings, Advantage+ placements, and whether you’d like to enable dynamic creative. None of it tells you what to actually do.

So here’s the version nobody writes: one campaign, one objective, one conversion event, one audience, three ads. This post walks through each decision in order, and — more usefully — tells you which knobs to leave alone.

Before you open Ads Manager

Two things need to be true, or the campaign is dead before it starts.

Your conversion tracking works. Meta can only optimize toward events it can see. If your signup event isn’t firing, the algorithm is blind and will happily spend your budget finding people who click but never convert. Install the Pixel, trigger a real signup yourself, and confirm it lands in Events Manager before you spend a euro. Not the exciting part — the part that decides whether the rest matters.

You know your break-even. Not a target, a floor: the ROAS below which the campaign is losing money. If you haven’t worked this out, what counts as a good ROAS for SaaS derives it from margin and retention. Without it, you’ll have no idea whether the numbers Ads Manager shows you in week two are good news or a slow leak.

Step 1: Pick the objective (Sales, almost always)

Meta organizes campaigns around six objectives: Awareness, Traffic, Engagement, Leads, App promotion, and Sales. For a SaaS selling a trial or a subscription through a website, the answer is Sales.

This surprises people, because you’re not selling a physical product and the word feels wrong. Ignore the label and read what it does: Sales optimizes delivery toward people likely to complete a conversion event you define. A trial signup is exactly that.

The tempting wrong answer is Traffic, because it’s cheaper and the dashboard fills with clicks. That’s the trap — Traffic optimizes for clicks, so Meta finds you the people most likely to click and least likely to care. You’ll get a beautiful CPC and no customers. If you want the longer version of why cheap clicks lie to you, CPM vs CPC vs CPA covers it.

Leads is the other reasonable-looking option. It’s right if your funnel is a demo request or a sales call — a form, then a human. It’s wrong if people can sign up themselves. Don’t add a form between someone and a product they could be using in thirty seconds.

Step 2: Choose the conversion event

Sales campaigns ask you which event to optimize for, and this is the decision that most affects results.

The tension is simple. Optimizing for Purchase targets the outcome you actually want, but paid conversions are rare — maybe a handful a week at your scale. Optimizing for trial start (usually CompleteRegistration or a custom event) targets a weaker signal, but one that happens far more often.

Volume wins at the start, and the reason is the learning phase. According to Meta’s own documentation, an ad set becomes “learning limited” when it’s unlikely to get roughly 50 optimization events in the week following your last significant edit — and Meta is explicit that this isn’t a penalty, it just means the system can’t optimize well on the data it’s getting.

Run the arithmetic on your own funnel before choosing:

Optimize forEvents needed/weekYour realistic volumeVerdict
Purchase~505–10 paid/weekLearning limited
Trial start~5040–80 trials/weekWorkable

If you can’t plausibly produce 50 purchases a week, optimizing for purchases means the ad set never learns. Start on trial starts, and move to purchase optimization later — when paid conversions alone clear the threshold. The full tradeoff has its own post coming; for now, the rule is: optimize for the deepest event you can feed 50 times a week.

Step 3: Audience — go broader than feels comfortable

Every instinct says to narrow. You know your ideal customer, so you want to tell Meta: founders, 25–45, interested in SaaS and productivity tools, job title contains “developer.”

Resist. Detailed targeting made sense when the algorithm needed help finding people. With a working conversion signal, Meta’s delivery system is generally better at finding your buyers than your guesses about them — and every interest you stack on shrinks the pool it can learn from. On a small budget, a narrow audience is how you starve delivery and stall in learning.

Start with: your country (or a few), a wide age range, and no detailed interests. Let the conversion event do the targeting. If you’re B2B with a genuinely niche ICP, one broad interest layer can earn its place — but make that the exception you test into, not the setup you launch with.

Skip lookalikes for now. They need a decent seed list, and if you’re running your first campaign, you don’t have one yet.

Step 4: Budget — one ad set, enough to learn

Put your whole budget behind one ad set. The urge to split $30/day across three ad sets to “test audiences” is the most common way small advertisers waste money: each ad set gets $10/day, none reaches 50 events, all three sit learning limited forever, and you learn nothing about any of them.

Work backwards from the threshold instead. If your cost per trial is around $8, then 50 trials a week costs ~$400/week, or roughly $57/day. If that’s beyond you, you’re not blocked — but be honest that you’re buying slower, noisier learning, and give it more weeks before judging.

Set it and leave it. Significant edits — changing the budget substantially, swapping the conversion event, editing targeting — reset the learning phase, which means the days you already paid for are wasted. Your job for the first week is to not touch it. Your first week of ads walks through what that restraint looks like day by day.

Step 5: Three ads, one message each

Write three ads. Not one (you learn nothing about what resonates), not ten (each gets too little spend to mean anything).

Vary the hook — the first line and the visual — not the button color. Three angles worth starting with:

  • The problem, stated plainly: the specific pain your product removes.
  • The outcome: what life looks like after, concretely.
  • The product itself: a screenshot of the thing doing the thing.

That last one over-performs for SaaS more often than people expect. You don’t need a designer; you need a clean screen recording and honest copy. Specificity beats superlatives — “connect Stripe and see which campaign made the money” tells someone more than “supercharge your growth.”

Send the click to a page that matches the ad’s promise. If the ad talks about a problem, the page should open with that problem — not your homepage’s mission statement.

Step 6: What to look at, and when

Nothing on day one. Really.

Give it a week. Then check three things: are you getting conversions at all (tracking sanity), is the ad set still learning limited (volume), and is your cost per trial near your break-even (economics). Not CTR, not CPM, not “reach.” Reading your ad reports covers which metrics deserve attention and which are just movement.

One warning for week two: the number Ads Manager reports will not match Stripe. It’ll be higher. That’s attribution windows and modeling, not fraud — but it means the platform’s verdict on its own performance is the one number you shouldn’t take at face value.

Where Flowjat fits

The setup above is the easy half. The hard half starts in week three, when Meta says 34 conversions, Stripe says 21 paid customers, and you’re trying to work out in a spreadsheet whether the campaign is actually profitable. Flowjat connects your ad accounts and your revenue tools so spend, trials, and real paid revenue line up in one view — and tells you when a campaign crosses below break-even instead of leaving you to notice a month later. If you’d rather spend your time on the product than on reconciling two dashboards, that’s what it’s for.

The Flowjat team

Building the ad copilot for builders

Build with us, not just read about it.

Connect your accounts and tell us what's missing. It shapes what we ship next.

Start free