How to Price Facebook Ads Management Without Losing Money
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?
How do I decide what goes inside the fee?
When should I raise a client's fee?
What if reporting is what makes an account unprofitable?
Is hourly billing ever right for Facebook Ads management?
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.