Facebook ads agency pricing uses five models: a flat monthly retainer, a percentage of ad spend, pay per lead, a hybrid of base fee plus performance, and one-off setup fees. In practice you’ll often combine two. Pick the model whose incentive matches the client’s goal, and if any part of the fee depends on leads, define in writing which leads count.
This guide is for agencies and freelancers running Meta ads for lead gen clients. You won’t find a “typical fee” quoted here: every number below is a worked example, labelled, built from costs you can swap for your own.
Facebook ads agency pricing models compared
| Model | How the fee is set | What it rewards | Who carries the risk | Fits |
|---|---|---|---|---|
| Flat retainer | a fixed monthly fee for a written scope | doing the agreed work | the agency when the work grows, the client when results lag | accounts with a stable scope |
| Percentage of ad spend | a share of the month’s Meta spend, ideally with a floor | higher spend | the client, when spend grows faster than results | accounts where more spend reliably brings more leads |
| Pay per lead | a fee for each lead that meets an agreed definition | lead volume, and quality only if the definition demands it | the agency | clients with a CRM, fast follow-up and an agreed count |
| Hybrid | a base fee plus a per-lead or per-qualified-lead component | results, with the work covered | shared | most lead gen accounts once tracking works |
| Setup fee | a one-off fee before launch | the groundwork | paid up front | every new client |
Flat monthly retainer
A fixed fee for a defined body of work: campaign management, a set number of new creatives, landing page changes, reporting. Clients like knowing the number, and you get predictable revenue.
The risk is scope creep. “Could you also look at our Google account?” and “Can we get three more videos this month?” cost nothing under a vague retainer. The fix is a written scope (the table further down) and tiers tied to spend, so a client who doubles the budget moves to the next tier instead of getting twice the work for the same fee.
Example: €1,200 a month for spend up to €10,000, €1,800 up to €25,000, priced individually above that.
Percentage of ad spend
A share of what the client spends on Meta each month. It’s simple, it grows with the account, and it needs no tracking agreement.
The incentive is the problem. You earn more when the client spends more, not when their leads get cheaper, so every “let’s raise the budget” recommendation reads as self-interest, fairly or not. It also underpays small accounts, which take nearly as much work as big ones. If you use it, add a monthly minimum and either a cap or rates that fall as spend grows.
Example: 20% of spend with a €900 minimum. A €3,000 month pays €900, an €8,000 month pays €1,600, a €16,000 month pays €3,200.
Pay per lead
The agency earns a fee for every lead that meets a definition both sides signed. It comes in two versions:
- The client pays Meta, the agency bills per lead. The fee is your management income; the media risk stays with the client.
- The agency pays Meta and sells leads at a fixed price. You carry the media risk and keep the margin between your real CPL and the price. That’s a lead generation business, and its price should come from a CPL you’ve already measured.
Either way it pays for volume, and unless the definition says otherwise, a junk lead pays the same as a good one. Everything depends on which leads count, which gets its own section below.
Hybrid: base fee plus performance
A base fee covers the work you’ll do whatever happens; a variable part ties the rest to results, per accepted lead or per qualified lead, with a monthly cap if the client needs a fixed budget.
This is the model we’d pick for most lead gen accounts once tracking works. The base stops you subsidising a client whose sales team never calls back. When the variable part is paid per qualified lead, better leads earn you more than more leads do.
Setup fees
A one-off fee for the work before the first ad runs: the Meta Pixel and the Conversions API with a shared event_id (Meta Pixel setup), the ad ID flowing into the client’s CRM, the first landing pages, the account structure and the reporting template. It pays for front-loaded work, and a client who balks at it probably wasn’t planning to stay long.
How much to charge for Facebook ads management
Work it out from three things: your cost, the client’s economics, and the model.
Start from your cost
Count the hours a client takes in a month, multiply by your loaded hourly cost (salary, overheads, unbillable time), add tools, then add your margin.
| Line | Example |
|---|---|
| Strategy, testing and optimisation | 6 hours |
| Creative briefs and production | 6 hours |
| Landing page changes | 3 hours |
| Reporting and calls | 4 hours |
| Hours | 19 × €50 loaded cost = €950 |
| Tools for this client | €60 |
| Monthly cost | €1,010 |
| Price at a 35% margin (cost ÷ 0.65) | about €1,550 |
All figures are examples. Measurement tools sit in the tools line, and a flat-priced one keeps that line predictable as clients grow: DropCPL costs €49, €89 or €159 a month, VAT excluded, for 1, 3 or unlimited client subaccounts, whatever each client spends. Each subaccount has its own landing pages, tracking domains, Meta connection and leads (DropCPL for agencies).
Check it against the client’s economics
The client never sees your fee on its own. They see it inside their cost per lead:
all-in CPL = (ad spend + agency fee) ÷ leads
Example: a client spends €8,000 a month and receives 250 leads, a CPL of €32. With a €1,600 fee the all-in CPL is €38.40. If a lead is worth €60 to them at break-even, there’s room. If it’s worth €35, the account doesn’t work at that fee: you need a lower fee, a cheaper CPL or a different client. The break-even CPL calculator gives the client’s ceiling from customer value, margin and close rate.
Have this conversation on the sales call. A fee shown as part of the client’s cost per lead is easier to agree than a number on its own.
Then choose the model
The same account under four models, each priced to land near €1,600 in a normal month. Every figure is an example:
| Month | Spend | Leads | Retainer €1,600 | 20% of spend, €900 minimum | €6.40 per lead | Hybrid: €900 + €3 per lead |
|---|---|---|---|---|---|---|
| Normal month | €8,000 | 250 | €1,600 | €1,600 | €1,600 | €1,650 |
| Client halves the budget | €4,000 | 135 | €1,600 | €900 | €864 | €1,305 |
| Creative fatigue, CPL rises | €8,000 | 190 | €1,600 | €1,600 | €1,216 | €1,470 |
| Client doubles the budget | €16,000 | 420 | €1,600 | €3,200 | €2,688 | €2,160 |
Read it row by row. The retainer pays the same when the budget doubles, and the work usually grows with it. The percentage doubles the client’s bill in the last row even though their CPL got worse, from €32 to about €38. Pay per lead makes you absorb both the budget cut and the fatigue. The hybrid moves with results without swinging as far in either direction.
Pay-per-lead pricing: agree which leads count first
A pay-per-lead contract is only as good as its definition of a lead. The same month produces at least four counts:
| Count | Example | Who decides it | Fit for billing |
|---|---|---|---|
| Leads in Ads Manager | 254 | Meta’s attribution | no: the client can’t check it against their CRM |
| Form submissions received | 231 | your tracking on the landing page | yes, as the starting point |
| Accepted leads: valid, unique, in the service area | 212 | the definition in the contract | yes, for pay per lead |
| Qualified leads | 74 | the client’s sales team | yes, if outcomes come back on time |
Ads Manager’s number is Meta’s own attributed count and rarely matches the CRM; real CPL vs platform CPL explains why, and Facebook ads reporting for clients shows how to report the gap. Bill on a count the client can verify.
What to write into the contract:
- What a lead is: contact details that work, unique by phone or email within a set period (say 30 days), inside the service area, not a test or spam.
- Where it’s counted: the leads that reach the client’s CRM, or a tracking system both sides can read.
- How rejections work: the client flags rejected leads within a fixed window (seven days, for example) and gives a reason; anything not flagged counts as accepted.
- Who follows up, and how fast: if you’re paid per qualified lead, the client’s follow-up decides your income. Put a response time in writing (one business day, for example) and fall back to the accepted-lead fee when it isn’t met.
That last clause matters most. A lead called three days later is a different lead, and you shouldn’t carry the cost of a sales team that doesn’t pick up the phone. Cost per qualified lead covers how to define “qualified” and keep the definition fixed.
Pay-per-lead pricing needs a lead count both sides can check. DropCPL counts leads first-party on the landing page, attaches the ad and the landing page to each one, and forwards it by webhook to the client’s CRM. Start free →
Acceptance and qualification still happen in the client’s CRM, against the definition you both signed.
What to put in a Facebook ads management scope
Most pricing disputes are really scope disputes. Write these down before the first invoice:
| Scope item | What to write | Why |
|---|---|---|
| Channels | Meta only (Facebook and Instagram); Google, TikTok and organic social are out unless listed | stops channel creep |
| Ad spend | who pays Meta, and the spend range the fee covers | separates media from fee and triggers a re-price above the range |
| Ownership and access | the ad account, Pixel, Facebook Page, landing pages and lead data belong to the client’s business; the agency works through access the client grants | a clean exit for both sides |
| Creative | new creatives per month, formats, who produces them, rounds of revisions | the most common source of creep |
| Landing pages | landing pages and variants per month, who builds and hosts them | the second most common |
| Tracking | Pixel plus Conversions API with a shared event_id, and the ad ID in the CRM | every other number depends on it |
| Lead definition | what counts as a lead and as a qualified lead, where it’s counted, the rejection window | required for any performance fee |
| Reporting | cadence, metrics, which lead count is canonical | no surprises when the client opens Ads Manager |
| Client duties | follow-up time, outcomes shared weekly, approvals within a set number of days | you can’t fix what you don’t control |
| Term and exit | minimum term, notice period, what happens to access and data at the end | an orderly handover |
On ownership, Meta’s business tools already support the split: its developer docs define an agency as a business entity that can manage or access assets owned by another business (Meta’s business asset management docs). Keep the assets with the client and work through that access.
Which Facebook ads agency pricing model fits which client?
| Client situation | Model we’d pick |
|---|---|
| New client, tracking not in place | setup fee plus a retainer for the first three months |
| Stable account, scope well known | retainer, tiered by spend |
| Spend swings from month to month | retainer, or a percentage with a floor and a cap |
| CRM in place, fast follow-up, outcomes shared weekly | hybrid: base fee plus a fee per accepted or qualified lead |
| Client won’t share lead outcomes | no performance component; a retainer |
| You want the media risk and the margin | pay per lead with you paying Meta, priced from a CPL you’ve already measured |
Before you offer anything performance-based, run the client’s numbers through the CPL vs CPQL calculator. If their qualification rate is low, a per-lead fee pays you for leads their sales team will throw away, and a per-qualified-lead fee pays you very little.