Media BuyingAll accounts

Data as of Aug 20, 5:45 AM
Aug 13Aug 19, 2026vsAug 6Aug 12, 2026

Revenue

Total revenue
$4,892.49
↑59.4%vs prior 7d
Lead sale revenue
$397.65
↑203.4%vs prior 7d
Click feed revenue
$4,494.84
↑52.9%vs prior 7d
Call revenue
$0.00
Not yet reconciled — Ringba revenue exists but has no call_payout events.
Spend
$11,679.64
↑66.0%vs prior 7d

Funnel

Clicks
4,274
↑58.5%vs prior 7d
Leads
794
↑80.0%vs prior 7d
Conversion rate
18.6%
↑13.6%vs prior 7d
Leads sold
126
↑125.0%vs prior 7d
Sold rate
15.9%
↑25.0%vs prior 7d

Efficiency

CPL
$14.71
↓7.8%vs prior 7d
Avg RPL
$3.16
↑34.8%vs prior 7d
Avg click feed rev
$6.02
↓23.2%vs prior 7d
Blended ROAS
0.42×
↓4.0%vs prior 7d
Margin
-$6,787
↓71.1%vs prior 7d
CurrentPrior period
$0.00$381.52$763.04$1,144.56$1,526.07Aug 13Aug 14Aug 15Aug 16Aug 17Aug 18Aug 19

Campaigns

Account / Campaign / AdSpendClicksLeadsSoldCPLRPLRevenueROAS
$6,091.272,16549491$12.33$3.19$3,256.980.53×
$5,588.371,01425131$22.26$2.70$1,319.900.24×

Needs attentionNew Account returns 0.53× against Old Account's 0.24×, and the weaker account carries 48% of spend.

Check the weaker account's tracking before concluding its traffic is worse — an untracked campaign inside it drags the whole ratio down.

How to act on this

Move budget toward the account that returns more, without importing the reason it was behind.

  1. Verify both accounts have the same pixel and Conversions API setup before concluding one account's traffic is worse. A measurement gap looks exactly like a performance gap on this page.
  2. Move in roughly 20% increments with a week between, not at once. The receiving account has to absorb the volume without re-entering learning.
  3. Watch the weaker account's CPL as you cut it. If it drops sharply, you were buying its most expensive inventory and the account may be fine at a smaller size — that is a different conclusion from "this account is bad".
  4. Check the declared category on both. A campaign built without the special-category declaration will out-deliver a compliant one and is a policy risk, not a win worth copying.
  5. The weaker account is running about $800 a day, so a first 20% move is roughly $160 a day shifted across — small enough that the receiving account absorbs it without re-entering learning.

Watch out: Accounts differ in pixel history. A newer account can underperform for weeks purely on learning, and cutting it early guarantees it never catches up.

Worth checking2 campaigns spent $1,154 with no revenue AND no resolving clicks at all.

Zero clicks is the signature of a broken tracking template, not dead traffic. Load the click URL and confirm the sub-IDs populate before pausing — untracked spend looks identical to wasted spend here.

How to act on this

Find out whether the traffic is bad or merely invisible.

  1. Not an Ads Manager fix first — open the ad's destination URL yourself and watch the redirect. If the sub-IDs are empty in the landing URL, the spend is untracked rather than wasted, and pausing would be acting on missing data.
  2. Then Ad level → Tracking → URL parameters. Every value should be a dynamic macro; a hardcoded one looks correct in the interface and attributes nothing.
  3. Check the same ad on mobile. Redirect chains that work on desktop break under in-app browsers more often than anything else in this stack.

Watch out: Fixing the template does not backfill history — the campaign will look brand new when it starts reporting again. Note the date you fixed it or you will read the recovery as a performance change.

Worth checkingThe best campaign at scale still loses money: 0.57× on $2,713 — CID766_FB_GB_AUTIN_Leads_JP_260723 – Purchase - Copy.

The weakest at this spend level returns 0.00×. Shifting budget between them is the cheapest available move, though it reduces the loss rather than reversing it.

How to act on this

Consolidate spend into what is working before building anything new.

  1. Shift budget between existing campaigns first — the spread you already have is free information, and a new campaign starts from zero learning in an account that cannot use saved audiences to shortcut setup.
  2. Increase in ~20% steps. Larger changes re-enter learning and you lose the performance you were consolidating.
  3. If everything is below 1.0×, reallocation reduces losses rather than reversing them. The answer is upstream — lead quality, buyer mix, or price per lead — and no amount of budget shuffling fixes it.

This account runs under Meta’s Financial products and services special ad category — its own description covers “insurance services” — so the guidance above is written to work inside these limits rather than around them:

  • Age is fixed at 18–65+ and cannot be narrowed. (Financial-services advertisers in Europe are the one exception; US accounts are not.)
  • Gender is fixed to all genders.
  • Some detailed targeting options — demographics, behaviours and interests — are unavailable.
  • No ZIP or postal-code targeting. Any city, address or pin must include everything within a 15-mile radius.
  • Lookalike audiences are unavailable.
  • Saved audiences cannot be used or created, so every ad set is built by hand — which is why duplicating beats rebuilding.
  • Custom audiences DO still work, provided the selection is not discriminatory. They are the one audience tool you keep, and the basis of converter exclusions and retargeting.
  • Copy naming a guaranteed rate or a specific saving gets rejected, and repeated rejections restrict the account.

Accounts, campaigns and ads with no activity in the period are omitted entirely. Totals here are lower than the cards above: only clicks that resolve to an ad can be attributed to a campaign. feeds and lead buyers open the demand side of any row — account, campaign or ad. Feeds show which feed at which tier bought the clicks; lead buyers show who bought the leads. They are separate controls because they are separate businesses: one pays per click into an auction, the other per lead accepted, and a row only offers the sides it actually earned from. Each side ends in its own subtotal, and the two together always sum to that row’s revenue, at every level. Clicks there counts only the clicks a feed paid for, a fraction of the clicks the ad produced; Sold counts sales that produced a payout, so it can sit a lead or two below the parent, which counts leads marked sold whether or not the payout has landed; and RPL is revenue per unit of that row — per paid click for a feed, per lead sold for a buyer.

Click feeds

Feed / TierAvg bidBidsClicksRevenueRPU
$2.54
↓8.6%
5,177
↑53.6%
556
↑89.8%
$3,148.60
↑36.2%
$5.66
↓28.2%
$2.08
↑124.7%
3,784
↑56.5%
115
↑5650.0%
$703.33
↑17192.7%
$6.12
↑200.7%
$3.47
↓26.6%
3,817
no change
98
↓3.0%
$516.15
↓12.7%
$5.27
↓10.0%
$2.41
↓6.6%
4,091
↑22.0%
30
↑328.6%
$126.76
↑296.4%
$4.23
↓7.5%

Needs attentionQuoteWizard pays $5.66 per click, down 28%, while volume is up 90%.

Revenue can be rising the whole time this happens, so it is invisible in the total. Either the traffic mix changed or their bids fell — the avg bid column separates those.

How to act on this

Work out whether you sent worse traffic or the feed simply started paying less.

  1. Compare the avg bid column against RPU. Bids falling means the feed repriced; bids flat with RPU falling means your traffic mix changed and the cause is on the Meta side.
  2. If the mix changed, look at which ad sets scaled during the period — the newest volume is usually the cause, and scaling a winner is the most common way to dilute it.
  3. Expand the feed to campaign and ad level above. If one ad is dragging the average, that is a creative decision, not a pricing one.

Watch out: Revenue can rise the whole time this happens. Judging the relationship on revenue alone hides it completely, which is exactly why these tables show RPU separately.

Worth checkingQuoteWizard is 70% of click feed revenue.

Not a problem while it performs, but a single counterparty changing its bids moves the whole line. The other feeds are the hedge.

How to act on this

Reduce the damage one counterparty can do by changing its bids.

  1. Not an Ads Manager fix — a relationship and routing question.
  2. Send a small fixed share to the second-place feed continuously, even at slightly worse economics. It keeps their pricing honest and gives you somewhere to go the week the leader repricess.
  3. Track the concentration figure here over periods rather than at a point. A share that keeps climbing is the signal; the level on its own is not.

WorkingArity now pays $6.12 per click, up 201%.

Worth understanding before it reverses: check whether the traffic sent to them changed.

How to act on this

Work out whether you sent worse traffic or the feed simply started paying less.

  1. Compare the avg bid column against RPU. Bids falling means the feed repriced; bids flat with RPU falling means your traffic mix changed and the cause is on the Meta side.
  2. If the mix changed, look at which ad sets scaled during the period — the newest volume is usually the cause, and scaling a winner is the most common way to dilute it.
  3. Expand the feed to campaign and ad level above. If one ad is dragging the average, that is a creative decision, not a pricing one.

Watch out: Revenue can rise the whole time this happens. Judging the relationship on revenue alone hides it completely, which is exactly why these tables show RPU separately.

WorkingArity pays the most per click at $6.12, against $4.23 from QuinStreet.

This account runs under Meta’s Financial products and services special ad category — its own description covers “insurance services” — so the guidance above is written to work inside these limits rather than around them:

  • Age is fixed at 18–65+ and cannot be narrowed. (Financial-services advertisers in Europe are the one exception; US accounts are not.)
  • Gender is fixed to all genders.
  • Some detailed targeting options — demographics, behaviours and interests — are unavailable.
  • No ZIP or postal-code targeting. Any city, address or pin must include everything within a 15-mile radius.
  • Lookalike audiences are unavailable.
  • Saved audiences cannot be used or created, so every ad set is built by hand — which is why duplicating beats rebuilding.
  • Custom audiences DO still work, provided the selection is not discriminatory. They are the one audience tool you keep, and the basis of converter exclusions and retargeting.
  • Copy naming a guaranteed rate or a specific saving gets rejected, and repeated rejections restrict the account.

Each figure shows its change against the same figure last period, so a feed paying less per click reads differently from one being sent fewer clicks — revenue alone moves the same either way. Avg bid averages every bid into the feed, winning or not: market context, not earnings. RPU is what a click actually paid. Expanding a feed shows its own tiers — QuoteWizard’s Platinum and Diamond, SwitchBoard’s Email and SEM, numeric ids for Arity and QuinStreet. Those come straight from the payout and so, unlike the campaign view, need no attribution and add up exactly; bids are not tiered and stay blank there. Tier names are each feed’s own and are not comparable between feeds. For which campaigns and ads earned this, open sources on a campaign in the Campaigns section. A blank change means no activity at all last period, which is not the same as a fall from zero.

Lead buyers

Buyer / Campaign / AdAvg bidBidsSentSoldAcceptRevenueRPU
$2.96
↑6.9%
1,270
↑26.9%
330
↑18.3%
32
↑300.0%
9.7%
↑238.2%
$199.34
↑444.2%
$6.23
↑36.0%
$3.23
↑10.9%
1,271
↑26.7%
507
↑46.5%
38
↑46.2%
7.5%
no change
$118.28
↑68.2%
$3.11
↑15.1%
$1.00
no change
1,270
↑26.6%
571
↑23.1%
27
↑80.0%
4.7%
↑46.3%
$27.00
↑80.0%
$1.00
no change
$0.65
↑8.9%
1,267
↑26.6%
162
↓28.6%
17
↑466.7%
10.5%
↑694.0%
$23.39
↑462.3%
$1.38
↓0.8%
$1.39
↑3.3%
1,211
↑25.6%
178
↑12.7%
7
↑250.0%
3.9%
↑210.7%
$15.01
↑390.5%
$2.14
↑40.1%
1,176
↑23.0%
44
↑83.3%
2
4.5%
$8.17
$4.09
$0.28
↑24.0%
1,238
↑24.4%
127
↑64.9%
2
↑100.0%
1.6%
↑21.3%
$6.46
↑238.2%
$3.23
↑69.1%
$1.00
↑6.2%
1,271
↑26.7%
464
↑31.1%
0
0.0%
$0.00
$0.00
1,248
↑26.4%
138
↓0.7%
0
0.0%
$0.00
$1.67
↑51.6%
1,271
↑26.7%
90
↑328.6%
0
0.0%
$0.00
1,271
↑26.7%
4
↓50.0%
0
0.0%
$0.00
1,237
↑23.3%
1
no change
0
0.0%
$0.00
$1.88
↑11.8%
1,229
↑23.1%
0
$0.00

Needs attention697 leads — 27% of everything sent — went to 5 buyers that bought none: Datalot (464), DMS (138), Rocket Quote (90), and others.

Zero sales from an established buyer is more often a broken postback than total rejection. Pull their own delivery report and compare their sold count to ours — if theirs is also zero it is a lead-quality problem, if not, revenue is being under-reported everywhere on this page.

How to act on this

Establish whether the leads were rejected or the sales were never reported.

  1. Not a Meta problem. Pull the buyer's own delivery report for the same dates and compare their sold count to the one here. This single comparison decides everything else.
  2. If theirs is also zero, it is lead quality or a filter mismatch — ask which filter, and whether leads are being rejected at ping or at post. Those have different fixes.
  3. If theirs is NOT zero, the postback is broken and every revenue figure on this page is understated, not only theirs. That makes it the highest-priority item in the account, ahead of anything in Ads Manager.

Watch out: Cutting the buyer before checking loses the volume AND leaves the reporting bug in place for the next one.

WorkingAlpine accepts 10.5% of leads, up 694%.

WorkingQuoteWizard accepts 9.7% of leads, up 238%.

This account runs under Meta’s Financial products and services special ad category — its own description covers “insurance services” — so the guidance above is written to work inside these limits rather than around them:

  • Age is fixed at 18–65+ and cannot be narrowed. (Financial-services advertisers in Europe are the one exception; US accounts are not.)
  • Gender is fixed to all genders.
  • Some detailed targeting options — demographics, behaviours and interests — are unavailable.
  • No ZIP or postal-code targeting. Any city, address or pin must include everything within a 15-mile radius.
  • Lookalike audiences are unavailable.
  • Saved audiences cannot be used or created, so every ad set is built by hand — which is why duplicating beats rebuilding.
  • Custom audiences DO still work, provided the selection is not discriminatory. They are the one audience tool you keep, and the basis of converter exclusions and retargeting.
  • Copy naming a guaranteed rate or a specific saving gets rejected, and repeated rejections restrict the account.

Each figure shows its change against the same figure last period, so a buyer paying less per lead reads differently from one accepting fewer. Accept is sold ÷ sent, this buyer’s own acceptance rate — not the dashboard’s sold rate, which spans every buyer. RPU is revenue per lead sold, so price and acceptance stay separable. A row with bids but no sends is a buyer in the auction receiving nothing. Expanded rows cover only what traces back to an ad — about half of pings and sends carry a resolvable identity — so the rates there read higher than the buyer’s own row: traffic that resolves is traffic that tracks, and it converts better.

Demographics

Age / Campaign / AdFeed bidLead bidLeadsSoldSold rateAvg lead revAvg feed revRev/leadCost/leadNet/leadTotal rev
$2.24$1.123374112.2%$0.33$4.55$4.88$14.38-$9.51$1,550.26
$2.79$1.222473413.8%$0.51$5.49$6.00$13.86-$7.86$1,403.41
$3.24$1.511223125.4%$0.80$6.03$6.83$13.71-$6.88$772.13
$3.06$1.06561221.4%$0.63$5.41$6.04$13.37-$7.33$301.93
$3.46$0.9719631.6%$1.47$5.21$6.68$13.54-$6.86$120.20
$3.52$0.5712216.7%$0.37$5.83$6.20$14.73-$8.53$68.24

Needs attentionWeakest segments with real volume: prior insurer allstate (5.0% on 60) and age 65+ (12.2% on 337).

Check each one's tab for whether the lever is targeting, geography or the lead itself.

How to act on this

Stop paying full price for the segments that reliably do not sell.

  1. Check the lever first. If these are form answers — prior insurer, car make, credit band — you do not need Meta at all, and this is the cheapest finding on the page to act on.
  2. For a form answer, three options in increasing order of commitment: reprice it with your buyers, route it to a buyer who specifically wants it, or add a qualifying question that filters it out before the lead is created.
  3. Filtering at the form is the strongest and the most dangerous: it reduces volume immediately and permanently, and Meta will keep optimising toward whoever still converts, which can shift your mix in ways this table will show you a week later.
  4. If the weak segment IS a Meta attribute, you are back to creative, placement and value optimisation — see the majority-segment card. There is no exclusion available.

Watch out: A segment that does not sell to YOUR buyers is not a segment that does not sell. Before filtering it out, check whether a different buyer wants exactly that lead — that is revenue you are about to throw away rather than waste you are cutting.

Needs attention65+ is the largest age segment at 42% of leads, and sells at 12.2% against a 15.9% baseline.

Buying is concentrated where it converts worst. 45-54 sells at 25.4% — worth weighting targeting toward it.

How to act on this

Move delivery away from the segment that converts worst, in an account that is not allowed to exclude it.

  1. THE LEVER IS WHAT META OPTIMISES FOR, NOT WHO IT TARGETS. Send your confirmed lead sales back as a conversion event with the revenue as its value, through the Conversions API or an offline event set, then optimise the ad set for value. Meta learns which people actually get bought and shifts delivery toward them — no age is ever named, so nothing about it touches the category rules.
  2. You are producing roughly 126 confirmed sales a week. At Meta's ~50-per-ad-set-per-week learning threshold that supports about 2 ad sets optimising on it — not six. Consolidate first, or use campaign budget optimisation so the events pool, otherwise every ad set sits in learning permanently and performance gets worse, not better.
  3. Match on more than email. Send hashed email, phone, and the click ID (fbclid/fbc) — match rates on lead data are mediocre on email alone, and an unmatched sale teaches Meta nothing.
  4. Until value optimisation is live, the strongest available proxy is a stricter conversion event: optimise for a deeper step on the landing page rather than the form fill. It costs volume and buys intent.
  5. EXCLUDE AUDIENCE NETWORK from placements. It is the single most common source of cheap, old, low-intent leads in restricted financial verticals — Advantage+ placements includes it by default, and turning it off is a two-click change that usually moves the age mix on its own.
  6. Then creative, which is the real targeting tool you have left. Delivery follows engagement, so the age of people shown, the reading level of the copy, and the hook all move the mix. Run 3–5 distinct concepts per ad set — not variations of one — and read the winner on the demographic table above rather than on Meta's own breakdown.
  7. Reels and Stories skew younger; Facebook Feed and right-hand column skew older. If you need a younger mix, weight placements before you touch anything else.
  8. A carousel lets people self-select coverage type or situation, doing some of the segmenting the category rules removed, and gives Meta a stronger engagement signal to optimise against.
  9. Check the form itself. Instant Forms are cheap and low-intent by design; moving to a landing page with two or three qualifying questions filters harder, and question ORDER decides who abandons — a long form up front selects for older, more patient respondents, which is likely part of how this mix arose.

Watch out: Cutting a segment cuts volume, so CPL rises before ROAS does. Judge on revenue per dollar, not cost per lead, or you will revert a working change in week one. Give any of this 7 days minimum — editing an ad set mid-learning restarts it and destroys the comparison.

Needs attention65+ is priced below other segments by both markets: click feeds pay $3.24 per click for 45-54 against $2.24 for 65+, and lead buyers pay $1.51 per lead for 45-54 against $1.12.

Independent of how it converts — the market itself values this volume less than the alternatives. Bids move before sales do, so this is the earlier of the two signals.

How to act on this

Buy the segments the market is actually paying more for.

  1. Treat the bid columns as the leading indicator: feeds and buyers reprice before your sold rate moves.
  2. GEOGRAPHY IS THE ONE SEGMENT YOU CAN STILL TARGET. State and city work; a 15-mile-plus radius works; ZIP does not. If the segment here is a state, splitting budget by state is legitimate, unrestricted, and usually the largest direct lever a restricted account has.
  3. For anything that is not geography, value-based optimisation is the substitute for targeting it — feeding sold revenue back makes Meta chase the people the market pays for, which reaches the same objective by a different route.
  4. Compare the bid gap against the CPM difference before chasing it. A segment worth 20% more that costs 40% more to reach is a worse buy, and Meta will not tell you that — this table will.

Watch out: Bids move for reasons that have nothing to do with you: a buyer changing budget, a competitor pausing. Confirm a gap holds across two periods before rebuilding campaigns around it.

Worth checkingPrior insurer separates performance most — 5.2× between its best and worst segment — while Military barely separates at all (1.1×).

Effort spent on military is effort spent on nothing. This is an answer on the form, not something Meta can target. The lever is the lead itself — decline it, reprice it, or route it to a buyer who wants that answer.

How to act on this

Spend your attention on the attribute that actually predicts a sale.

  1. Work the widest-spread attribute and ignore the flattest. An attribute that splits 1.1× between its best and worst segment tells you nothing about a lead; one that splits 3× tells you most of what you can know before a buyer sees it.
  2. THEN CHECK WHICH LEVER IT SITS BEHIND, because that decides whether it is an ads job at all. Age and gender: Meta knows them, this account cannot target them. State: still targetable, so it is a direct Ads Manager change. Everything else here — homeowner, married, credit, prior insurer, car make — Meta never sees. Those are answers on your form.
  3. For a form attribute, the fix is downstream of advertising entirely: stop buying that answer, price it differently, or route it to a buyer who wants it. No campaign changes, no learning phase, effective the same day.
  4. Re-read this each period. Which attribute predicts best moves as the buyer mix moves, and an attribute that mattered last month can stop mattering when one buyer changes filters.

Watch out: A wide spread on small segments is not a wide spread. Every value behind this figure clears 40 leads, but check the table before rebuilding anything around one of them.

Worth checking25-34 sells at 31.6% — but on only 19 leads.

Too few to act on. It needs 40+ before that rate means anything; worth deliberately testing into rather than waiting for it to accumulate.

How to act on this

Buy a decidable sample instead of waiting for one to accumulate.

  1. Run one dedicated ad set with a small fixed daily budget for 7 days. Deliberately buying the sample is faster and cheaper than waiting for it to appear.
  2. Size the budget so the ad set can reach ~50 conversions in the week. Below that Meta never leaves learning, delivery stays erratic, and the result is not readable no matter how long you run it.
  3. You cannot target the segment directly here, so the test is a CREATIVE one: build the ad to speak to that segment, then read the demographic table above to see whether they actually arrived. That table is your targeting readout.
  4. Change one thing. Keep budget, placement, form and objective identical to an existing ad set or you will not know what produced the difference.
  5. At your current rate this segment gains about 2.7 leads a day, so it needs roughly 8 more days to reach a readable 40 — or a dedicated ad set to buy that sample faster.

Watch out: Do not read the result early. This dashboard withholds colour below 40 leads for the same reason — a rate on 25 leads moves on single sales.

WorkingBest-selling segments across every attribute: prior insurer geico (26.2% on 61), age 45-54 (25.4% on 122), state GA (23.0% on 61), against a 15.9% baseline.

These sit behind different levers — check each one's own tab for whether it is a targeting, geography or lead-routing decision.

How to act on this

Get more of what already sells, across every attribute rather than the one you happened to be looking at.

  1. Sort the levers before acting. Geography can be targeted directly, and state-level budget splits are the single most available change in a restricted account. Age and gender cannot be targeted, so they run through creative and value optimisation. Form answers are not an advertising question at all.
  2. For geography: build one ad set per strong state rather than one national ad set. A single ad set spends where delivery is cheapest, which is rarely where it sells best.
  3. For form answers: this is a lead-economics change, not a media one. A segment selling at twice baseline is worth more than you are charging for it — check whether your buyers price it the same as everything else, and whether a specialist buyer would pay more.
  4. For age and everything Meta will not let you name: the value-optimisation route on the majority-segment card above reaches all of these at once, which is why it is worth doing properly rather than repeatedly.

Watch out: Segments overlap. The 45-54 married homeowner in Michigan is one person appearing in four rows, so these are not four separate opportunities to add up.

Working45-54 sells at 25.4% on 122 leads, against a 15.9% baseline.

It is 15% of volume. Scaling it is the cheapest improvement available in this section.

How to act on this

Get more of the segment that already converts above baseline.

  1. Raise budget on the winning ad set by roughly 20% at a time, waiting 3–4 days between increases. Larger jumps re-enter learning and the performance you were scaling disappears — this is the most common way a novice destroys a winner.
  2. Duplicating into a new ad set at higher budget is the alternative, and keeps the original as a control. Under this category you cannot save audiences, so duplicate rather than rebuild or the two will not be comparable.
  3. Reporting breakdowns by age still work even though targeting by age does not. Ads Manager → Breakdown → Age tells you whether Meta is finding the segment on its own, which decides whether you push creative or budget.
  4. Watch frequency as you scale. Above roughly 2.5 in a week on the same audience, you are paying more to reach people who already said no, and CPL rises for reasons that look like audience fatigue because they are.
  5. Account spend is running about $1670 a day, so a 20% step at that level is roughly $330 a day added — apply the same proportion to whichever ad set you are scaling, not to the account total.

Watch out: Scaling a small winner usually regresses toward the mean. Confirm it holds for two consecutive periods on this page before committing real budget.

This account runs under Meta’s Financial products and services special ad category — its own description covers “insurance services” — so the guidance above is written to work inside these limits rather than around them:

  • Age is fixed at 18–65+ and cannot be narrowed. (Financial-services advertisers in Europe are the one exception; US accounts are not.)
  • Gender is fixed to all genders.
  • Some detailed targeting options — demographics, behaviours and interests — are unavailable.
  • No ZIP or postal-code targeting. Any city, address or pin must include everything within a 15-mile radius.
  • Lookalike audiences are unavailable.
  • Saved audiences cannot be used or created, so every ad set is built by hand — which is why duplicating beats rebuilding.
  • Custom audiences DO still work, provided the selection is not discriminatory. They are the one audience tool you keep, and the basis of converter exclusions and retargeting.
  • Copy naming a guaranteed rate or a specific saving gets rejected, and repeated rejections restrict the account.

Leads are counted in the window they arrived, and a sale counts toward them whenever it lands — so a demographic is judged on the leads it produced, not on the day money happened to arrive. Recent windows therefore understate sold rate. Sold rate is coloured against this scope’s 15.9% baseline, and only once a row has at least 40 leads — below that a rate is chance, not a finding. Feed bid is dollars per click into the click feeds and Lead bid is dollars per lead offered by lead buyers — two different markets valuing the same person, never averaged together. Avg sold is confirmed revenue per lead sold, not the price field on the lead row.

Rev/lead, Cost/lead and Net/lead are measured over the same population — the leads that resolve to an ad, since spend exists only at ad grain and a lead with no ad has no cost to carry. Cost charges an ad’s whole spend across the leads it produced, so it is deliberately conservative: that same spend also bought clicks from people who never became a lead, and their click revenue is excluded from both sides. Net therefore reads worse here than the blended business does. Expanding shows only leads that trace back to an ad, so campaigns sum to less than the row above them.

Timing

HourFeed bidFeed bidsLead bidLead bidsClicksClick revLeadsSoldSold rateAvg sold
$2.20291$0.6215393$101.0513215.4%$2.13
$2.48285$0.8211791$128.2211327.3%$1.52
$2.79299$1.0210278$116.8310330.0%$2.93
$2.76286$1.3010174$98.4111436.4%$5.61
$2.68381$0.7218085$133.9916212.5%$1.26
$2.69432$0.74217425$119.952015.0%$9.44
$2.88411$1.22233145$137.9717317.6%$4.52
$2.741,028$0.87709376$226.1829413.8%$2.97
$2.891,125$1.13948176$289.34341029.4%$2.84
$2.71965$1.161,029142$214.2838923.7%$3.14
$2.531,089$1.461,459159$223.2960610.0%$4.66
$2.48915$1.121,458212$118.6842614.3%$5.52
$2.571,113$1.171,281269$221.47381026.3%$3.36
$2.601,324$1.131,417169$254.9244818.2%$4.25
$2.621,550$1.201,699207$328.41581525.9%$2.44
$2.481,165$1.021,277177$156.4534411.8%$3.71
$2.49799$1.25785225$274.4555610.9%$3.60
$2.72707$1.23640223$244.81521121.2%$2.47
$2.57721$1.07619257$237.285347.5%$2.64
$2.61725$0.89632236$267.245735.3%$3.48
$2.75434$0.77551147$254.8045920.0%$1.28
$2.80339$0.62256129$168.352229.1%$1.11
$2.21213$0.7720484$92.341715.9%$1.00
$1.88272$0.8016395$86.16180.0%

Needs attention7 PM sells at 5.3% against a 15.9% baseline, on 57 leads.

The weakest hour in the period. Expand it to see which feeds and buyers were active — dayparting one counterparty is usually cheaper than pausing the hour outright.

How to act on this

Stop paying full price for the hours or days that convert worst.

  1. Dayparting only exists on LIFETIME budgets. Ad set → Budget & schedule → switch Daily to Lifetime, and "Run ads on a schedule" appears. On a daily budget the option is simply absent, which is why most people conclude Meta cannot do it.
  2. The schedule runs in the AD ACCOUNT's timezone, not yours. Confirm it in account settings before drawing the grid or the whole thing is shifted by hours — and this dashboard shows Mountain time, so check they agree.
  3. CHEAPER FIRST MOVE: leave the ads running and switch off the underperforming FEED or BUYER for that window instead. Expand the row in the table above to see which one. That costs you no volume and needs no Meta change at all.
  4. If the weak window is overnight, check whether it is delivery or the demand side: buyers who do not staff overnight still accept leads, but they price them lower. The bid columns separate those.

Watch out: Switching to a lifetime budget resets the ad set into learning. Do it when you can leave it alone for a week, not mid-flight on your best performer.

Worth checkingLead bids run $1.46 on 10 AM against $0.62 on 12 AM.

Buyers pay less for leads at that hour regardless of quality. Volume bought then is worth less before the traffic is even considered.

How to act on this

Pay less when the demand side is paying less.

  1. A cost cap does this continuously without a schedule: Ad set → Bid strategy → Cost per result goal. Meta then buys the cheap windows and skips expensive ones on its own, which beats a hand-drawn schedule in most accounts.
  2. Start the cap within about 20% of your current effective CPL. Set it too low and the ad set simply stops spending, which reads as a broken campaign rather than a tight cap.
  3. If you would rather be explicit, the lifetime-budget schedule above is the mechanism.
  4. A weekend bid collapse is usually the demand side taking the weekend off, not worse traffic. Check whether your sold rate falls as far as the bids do before treating it as a quality problem — if it does not, you are buying good leads cheap and should consider buying MORE then, not less.
  5. Your current cost per lead is $15, so start a cost cap near $18 and tighten from there. Set below $15 and the ad set will simply stop spending, which reads as a broken campaign rather than a tight cap.

Watch out: Cost caps constrain volume. Expect delivery to drop before efficiency improves, and do not raise the cap in the first 48 hours.

Worth checkingNo cost figures in this section.

Facebook spend arrives at daily grain, so CPL and ROAS cannot be split by hour or weekday. Everything here is revenue-side until an hourly pull is added.

Working8 AM sells at 29.4% on 34 leads.

This account runs under Meta’s Financial products and services special ad category — its own description covers “insurance services” — so the guidance above is written to work inside these limits rather than around them:

  • Age is fixed at 18–65+ and cannot be narrowed. (Financial-services advertisers in Europe are the one exception; US accounts are not.)
  • Gender is fixed to all genders.
  • Some detailed targeting options — demographics, behaviours and interests — are unavailable.
  • No ZIP or postal-code targeting. Any city, address or pin must include everything within a 15-mile radius.
  • Lookalike audiences are unavailable.
  • Saved audiences cannot be used or created, so every ad set is built by hand — which is why duplicating beats rebuilding.
  • Custom audiences DO still work, provided the selection is not discriminatory. They are the one audience tool you keep, and the basis of converter exclusions and retargeting.
  • Copy naming a guaranteed rate or a specific saving gets rejected, and repeated rejections restrict the account.

Buckets are Mountain time, DST included — the warehouse stores UTC, and raw UTC hours would sit six or seven hours off what the business actually experienced. Feed bid is dollars per click into the click feeds; Lead bid is dollars per lead offered by lead buyers. Different units, never averaged together. Bids and clicks are bucketed by when they happened; leads, sold and avg sold by when the lead arrived, so a late-night lead that sells at 9am counts toward the night — the question here is what traffic from an hour is worth. Sold rate is coloured against the 15.9% baseline once a bucket has 25+ leads. There is no cost column: Facebook spend is ingested at daily grain, so CPL and ROAS cannot be split by hour without an hourly pull.

Expand a hour to see it per counterparty — which feed was paying then, which buyer was accepting. A buyer that is both appears once, with both halves filled. Inside an expanded row, Leads means leads sent to that buyer and sold rate is their acceptance of them, where the row above counts every lead that arrived — same question, narrower denominator. Those figures are bucketed by when we contacted the buyer, which is the clock a daypart rule acts on.

Before switching a feed off for an hour, check the volume behind it: a single fortnight gives each weekday two or three samples, and each hour fewer still.