Skip to content
All resources
Pricing Freelancing Agency Operations Meta Ads Client Management

How to Price Facebook Ads Management Without Losing Money

The DashOps Team October 22, 2026 7 min read

You quoted a flat monthly fee months ago. Since then the client added a second ad account, launched a lead form, started asking for a report every Monday instead of every month, and now wants you on a call each fortnight. Your fee has not moved. Somewhere in there you stopped making money on the account, and you cannot point to the exact week it happened. That is the real problem with pricing Facebook Ads management: not picking a number, but picking a structure that adjusts when the work does.

This post is about the pricing structure itself. If you want the wider view of running a freelance paid social practice, the tools and the workflow, start with the guide to freelance paid social tools and come back here for the pricing decision.

The four structures, and what each one actually rewards

There are four common ways to charge for Facebook Ads management. None is correct in the abstract. Each one quietly rewards a different behaviour, and the mistake is choosing one whose incentive points away from the work you want to do.

  • Flat monthly retainer. One number, one scope, billed monthly. Predictable for both sides and simple to explain. It rewards efficiency: the faster you work, the better your effective rate. It punishes scope creep harder than any other model, because every extra request is unpaid.
  • Percentage of ad spend. Your fee scales with the client’s budget. It is easy to justify when a budget grows, and it is simple to write into a proposal. The problem is that it rewards spending more rather than spending well, and it makes your income lurch when a client pauses for a quiet season.
  • Hourly. You bill the time you spend. It is the fairest model on paper and the worst one for a freelancer who is getting better at the job, because competence reduces your income. It also forces the client to think about the clock every time they email you.
  • Performance or hybrid. A smaller base fee plus a share of results. It aligns you with outcomes, and it is the hardest to administer. You need agreed attribution, an agreed source of truth for the numbers, and a written rule for what happens when the client’s landing page or sales team is the bottleneck.

A flat retainer with a defined scope, sometimes with a spend band that triggers a re-quote, is the structure worth defaulting to. It gives predictable income, it does not punish you for being fast, and it can be written down in a way both parties understand.

Price the scope, not the hours

The reason pricing feels impossible is usually that the scope was never written down. Before you can name a number, list what is actually inside the fee. A workable scope for a single Meta Ads client covers something like this:

  • The number of ad accounts included, named explicitly, and what happens when a second one appears
  • How many active campaigns you will run and how often creative gets refreshed
  • Who writes the ad copy and who produces the creative assets
  • Whether lead form building and lead delivery are included
  • Reporting: what the client receives, in what format, and how often
  • Meetings: how many, how long, and whether ad hoc calls are included
  • Response time for messages, and what counts as an emergency

Two of those lines do most of the damage when left vague. Reporting is one, because “I’ll keep you updated” turns into a bespoke deck. Meetings are the other, because a fortnightly call is a different business from a monthly one.

Write the scope, then price it. The number becomes defensible because you can point at the list, and a request outside the list becomes an obvious conversation rather than a resentment you swallow.

The two costs that quietly decide whether the fee works

Every account carries fixed work and variable work. Fixed work happens whether the budget is large or small: checking the account, reading the numbers, spotting a disapproved ad, answering messages. Variable work scales with complexity: more ad accounts, more campaigns, more creative, more markets.

Two things reliably eat a retainer.

The first is reporting. Pulling numbers out of Ads Manager, pasting them somewhere, writing a note about what changed, and doing that on a schedule for every client is pure fixed cost. It buys the client confidence, which is real value, but it does not improve the campaigns. If reporting is the thing pushing an account underwater, the answer is usually to make it cost less rather than to charge more for it. That is what automating your Facebook Ads reports and switching to a recurring email digest are for: the client keeps getting the update, you stop assembling it by hand. DashOps can build the PDF or Excel report and send it on a schedule, so the Monday email goes out whether or not you sat down to make it.

The second is access and hand-holding. Clients who want to look at the numbers themselves will ask you for the numbers instead, repeatedly, unless they have somewhere to look. Giving a client a read-only view of their own ad accounts removes a category of interruption from your week. In DashOps you can invite a client with read-only access to the specific ad accounts they should see, and hide spend from them if your commercial arrangement calls for it. The request that used to be an email is now a login.

Before you set a fee, work out roughly what the account costs you in fixed effort each month. Not to invoice by the hour, but so you know which accounts are quietly expensive.

Bands beat a single number

A single price for every client either overcharges the simple ones or bleeds you on the complex ones. Three bands fix most of that.

Band one, the small account. One ad account, a modest budget, a handful of campaigns, an automated report, one call a month. This is a fee you can quote without a discovery process because the scope is fixed and narrow.

Band two, the standard account. One or two ad accounts, active creative testing, lead forms and lead delivery, a weekly report plus a monthly call. Build this fee to be genuinely profitable rather than merely competitive. It is the band that will carry your workload, and a thin margin here repeats across every client you sign.

Band three, the complex account. Multiple ad accounts, multiple markets or brands, frequent creative production, stakeholder reporting, more meetings. Price this per client after a scoping conversation, never off a rate card.

Then add one written trigger for a re-quote. The cleanest is a spend threshold: past an agreed monthly budget, the fee is revisited. The second cleanest is an account-count trigger: a new ad account is a new line, not a favour. Put both in the agreement so the increase is a clause, not a confrontation.

Say the number, and say what happens next

Two habits make pricing conversations easier.

First, quote against the scope document rather than in a sentence. “The monthly fee covers the items on this list” gives the client something to read and gives you somewhere to point when a new request turns up.

Second, name the review date at the moment you agree the fee. A short line in the agreement saying the fee is reviewed at a fixed interval, or when spend passes an agreed threshold, converts the awkward raise into a scheduled event. This works far better than the alternative, which is absorbing creep until you resent the client and then asking for an uncomfortable jump.

If you find yourself unable to raise a fee because you have no evidence of how the work grew, the underlying problem is record keeping, not nerve. A clean onboarding process that captures the scope at the start gives you the before picture. A change log gives you the after.

What to do this week

Take your three most recent clients. For each one, write down what you actually did last month, then compare it against what you agreed to do when you quoted. The gap is your real pricing problem, and it is usually made of reporting and meetings rather than campaign work.

Then do three things: write a scope list for your standard offer, decide the one trigger that reopens the fee, and cut the recurring cost out of whichever task is eating the most unbilled hours. If that task is reporting, automate it before you try to reprice it. A cheaper delivery of the same client experience improves the margin on every account you have, without a single difficult conversation.

Frequently asked questions

Should I charge a flat retainer or a percentage of ad spend?
A flat retainer is usually the better default for a freelancer or small agency. It gives you predictable income, it does not punish you for getting faster, and it is simple for a client to understand. Percentage of spend has the awkward incentive of rewarding bigger budgets rather than better results, and it makes your income swing whenever a client pauses spending. If you like the way percentage pricing scales, get the same effect with a flat fee plus a written spend threshold that triggers a re-quote.
How do I decide what goes inside the fee?
Write the scope before you write the number. List the ad accounts included, how many campaigns you will run, who produces creative, whether lead forms are included, exactly what reporting the client receives and how often, how many meetings are included, and your response time for messages. Reporting and meetings are the two lines that most often go unwritten and then quietly consume the retainer. Once the list exists, the fee becomes defensible and anything outside it becomes an obvious conversation.
When should I raise a client's fee?
Decide the trigger at the moment you agree the original fee, not later. The two cleanest triggers are a monthly spend threshold and an ad account count. Write into the agreement that the fee is reviewed when spend passes an agreed level, or when a new ad account is added. That turns a raise into a scheduled clause rather than a difficult request, and it stops you absorbing months of creep before you finally say something.
What if reporting is what makes an account unprofitable?
Reduce the cost of the reporting rather than repricing the account. Building the report by hand every week is pure fixed cost that does not improve the campaigns, so it is the first thing to automate. A scheduled email report and a read-only client login remove most of the manual assembly and most of the interruptions asking for numbers. That improves the margin on every account at once, without a single pricing conversation.
Is hourly billing ever right for Facebook Ads management?
Hourly works for genuinely one-off work such as an audit, an account rebuild, or a fixed-scope campaign launch, where the end point is clear. It works poorly for ongoing management, because your income falls as you get better at the job, and because it makes the client watch the clock before sending you a message. For continuing work, a scoped retainer is almost always the healthier structure for both sides.

See it in your own dashboard

DashOps brings Meta Ads reporting, campaign management, and white-label client portals into one place. Pick the plan that fits how you run ads.

Keep reading

Get in touch

Tell us about your setup or ask a question and we usually get back to you within one business day. Running more than 20 ad accounts? We will tailor a custom plan for you.

DashOps
Product updates

Get more from every Meta Ad

New features, product news, and practical Meta Ads tips, straight to your inbox.

Subscribe to product updates

Join our newsletter for new features, tips, and the occasional Meta Ads playbook. We may also send you an invite to our community. No spam, unsubscribe anytime.

We use your email to send these updates, and we may also use it to send you an invite to our community. When you subscribe, we also report the sign-up to Meta, and to Google if your browser has a Google Analytics cookie, as our Privacy Policy explains.