This is how I manage a million dollars a month in ad spend in less than 3 minutes a day. And the reason this actually works so well is because the system, once you learn it, is really simple. The best ads naturally float to the top getting the most spend.
The under performers never consume more than 20% of your budget. And anything that actually isn't working gets shut off before it wastes a lot of money. But this isn't what most people tell you about Facebook ads.
Because we're not just throwing everything into one campaign and letting meta decide. It's actually the exact opposite. And I'm not only going to show you what to do, but I'm even going to give you the framework so you can simply copy it into your business.
Whether you're spending a few dollars a day or tens of thousands a day like I am in my business. And I also want to mention that this is for lead generation campaigns, which are notoriously way more difficult to get right than simple campaigns for e-com businesses. Because with e-commerce, your feedback loop is clean and really fast.
You install a tracking pixel at checkout. When someone buys, that tracking pixel fires and it immediately tells Facebook that this ad works. Go find more people like this.
And so Facebook learns fast. fast and it scales really fast. That's what Facebook's whole platform relies on is immediate, accurate data.
And when you have that, one campaign running a CBO campaign budget optimization strategy could work. But all of that falls apart when you run lead gen campaigns. When you aren't selling widgets, but rather trying to get leads or sales calls.
Because when selling law services or accounting or in our case marketing, someone doesn't go from an ad on Facebook immediately to a checkout page or tens of thousands of dollars and give Facebook that pixel fire that it wants. They see an ad and then they click through and submit an application. Now they're a lead.
Then they book a call and they show up to the call. Then hopefully they're qualified on the call. Then they get pitched.
Then they receive a contract. Then hopefully they sign the contract. And then maybe eventually they pay.
And Facebook only sees that entire process up to the second step when they become a lead. Everything after that is really invisible to the algorithm. And so this creates two compounding problems that most Facebook ads strategies don't solve.
Problem one is you have less data. Because you're selling something that is very expensive, every single dollar of ad spend produces fewer trackable wins. So, whereas $1,000 of ad spend might have gotten you 20 purchases for this $30 e-com product, that same $1,000 worth of ad spend would get you only one or two qualified calls for a high-ticket service.
And so, fewer data points means Facebook has less signal to work with. It's trying to find your ideal customers with a fraction of the information it would normally use. And the second problem is delayed data.
So, even when a lead eventually does become a client, weeks might have passed since they saw that first ad. And by the time that the purchase happens, that data on the client is stale. And because Facebook's algorithm is built for speed, week-old signals are far less useful than next-minute data like it usually gets on e-com.
And there's no way to artificially compress your sales cycle to fix that. And so, because of these two problems, most service-based businesses use a proxy metric. So, instead of waiting for a client to pay, which might take weeks and give Facebook almost no usable data in the meantime, they instead install the conversion pixel on the page when they book a call.
So, basically telling Facebook, "As soon as someone expresses interest in working with us and dedicates an hour of their time on their calendar to a sales call, it is close enough to count as a win. Just get me more people like that. " But that actually creates two other problems for all of these lead generation campaigns.
One, the people most likely to book a call are usually the ones with the most amount of time to spare. High-value prospects are very protective of their calendars. The ones that jump on a booking link are rarely your wealthiest and most qualified leads.
And the second issue is when you optimize for calls, you are feeding Facebook a signal every single time someone books and treating each one as a success. But most companies only close 10 to at max 40% of the leads that they actually get to book a call. For example, we only close seven that have gone through the entire process of booking a call to closing.
Meaning, out of every 100 wins that we report to Facebook, 93% of them were wrong. We are actually training the algorithm on data that is statistically significantly bad. And so, because of all this, the simple strategies that work for e-com completely fall apart with lead gen.
You can't just throw a bunch of ads into a broad targeting campaign and let Facebook figure it out. And if you've tried that with a lead gen campaign, you know the Facebook struggles because the entire system it was built on doesn't work for your specific type of leads. So, instead of letting the algorithm decide where your money goes, you have to take control back yourself.
You have to decide which ads get budget. You have to decide which ones get turned on and off. And despite Meta themselves telling everyone to just trust the algorithm, as of this video, the more manual and deliberate you are, the better results you're going to get specifically for lead gen campaigns, especially at a very high level of ad spend.
And this is exactly what this system is built around. So, going into my ads manager itself, you've got a bunch of campaigns that are active right now and ad sets. And within each ad set, we have only one single ad.
We use an structure, so an ad set budget optimization structure, and it's in this view that we do all of the messing around in. And this ensures that you can control the individual budget that each single ad gets. Whereas, if you use CBO and let Facebook pick the budget with a bunch of different ads, you end up with one ad getting 90% of the ad spend and the others getting a fraction of what they actually should.
And when testing and CBO ourselves personally, the ads that were ignored in a CBO structure sometimes have been our best performers in simply because we were able to give them more spend. When we first tested this with hundreds of thousands of dollars in budget, I was convinced that Facebook doesn't actually have it figured out. And at least still today, as of publishing this video, you have to have some kind of manual control with your budgets, especially if you're running lead gen campaigns.
An with one individual ad per ad set allows you to isolate each creative so that the budget decisions are really clean. They're all on this one view, and you're not letting Facebook pick the winners, potentially make mistakes, and ignore ads that otherwise would have performed really well for you. And so, from here, I have three custom filters right at the top.
So, the first filter is had delivery, which is just any ad set that had at least one impression within the period that you're pulling the report. The next filter, one result, just shows ad sets with a single booked call. Scale are ad sets that have more than one result.
These are going to be the ads that we're going to scale because they are successful. And then the last one is no results, where the filter is showing ad sets with no results whatsoever. You can make similar ones for yourself, but the only thing that really changes is this one filter right here that changes the amount of results that each ad set has.
And all of these views also have custom columns, which I call Daniel's analytics. So, I've changed what shows up here, the budget, the amount spent, the results, cost per result, and date last edited. These are the only important things I'm tracking within the ads manager.
Budget is for easy adjusting what the daily budget should be. The amount spent shows the deliverability and what actually happened with that budget when assigned. Result is just how many calls we had booked, the the number that we're after.
The cost per result is the efficiency at which each of these ad sets operate at. And then the date last edited, which is very important for this strategy as a whole, but I'll explain why later in the video. And you may have noticed that some of these are also color-coded.
And if we go to the scale campaign, we see a couple of different colors. We got some blues, some greens, some yellows, reds. And this is really just for convenience to indicate what I should do with each ad.
And when we go to start increasing or decreasing budgets, it'll make a lot of sense, but it's just for visual conveniences. I have them broken down into really four different type of colors, which you can set up for yourself if you go right down here to conditional formatting and change the numbers there for your own metrics. But these will be useful when we get to actually adjusting the budgets, which I'll do for you live in a moment.
But they're just a convenience to make the adjustments happen a little bit quicker. But there are really eight categories of budget that determine what amount of ad spend any single ad should get. So, when we first launch a new ad, it always starts at $10 a day.
This allows us to test without investing way too much into the testing budget. Once an ad gets results, it's upgraded to $50 per day. It's kind of proven itself, gets a little bit more budget, and then we can scale a little more there.
And if it gets a result under $700 cost per call, we upgrade the budget to $100. But, if it's still above our desired $500 cost per call, which is our average result across the entire account, we don't want to invest too much into it quite yet. If it can outperform the average, it actually turns into this yellow color here, which are ads under a $500 cost per call, and the budget is boosted up to $1,000 a day.
And then, the budget continues to increase depending on performance, where eventually they max out at $3,000 per day. And we notice anything after 3,000 per day in spend gets really unstable, where you notice the ad will fatigue really quickly. Specifically on our account with how many creatives we have and how much total daily budget we're running.
So, rather than increasing the budget to 5K per day one day, and then dropping it down to 1K per day a few days later once it fatigues, 3K allows it to have a little bit of swing day-to-day, but still week-to-week operate very profitably. And in most cases, most of these ads top out at 2,000 a day anyway. So, it's very rare that an ad will get and stay at 3,000 a day.
What you don't want to do is break your ads by pushing that daily budget too high. It'll force the ad in front of way too many people, get all the conversions it can within your audience, and then it's going to start going after people that aren't a good fit, and people that won't convert, and it'll just blow the budget on the ad. That's what actually what most people experience when they say they have a fatigued ad, and what actually happened is that the ad couldn't find people who would profitably convert from the ad, and without new people to show it to, the ad just becomes unprofitable at that level of daily distribution.
But, if you can decrease the distribution a little, it can fall back into a profitable range, and that's what this structure allows us to do. Now, big number here, obviously, all these numbers come with a caveat, and it's that they only work for me in my business. Because your daily budget, your average cost per call, the number of creatives being tested to support that average daily budget are all different.
So, these brackets don't even work for you, even though the system absolutely could. So, to help you implement, I actually created a Chat GPT agent that should make determining your budget brackets, just like I have them determined here, very easy. And so, if you just take an export of your last 30 days, make sure you're filtering for every ad that had delivery, and then click this button here, it should start to export all that data.
Then you can upload that CSV file to this GPT agent and click this button, and then it's going to ask you what the daily budget should be. I'm going to say 35K, and just a warning for everyone using this GPT agent, like double-check the numbers yourself. Make sure they actually work before changing your entire Facebook ad structure around this, and you might need to play around a little bit to find a good balance.
I use this as a good template, like a starting point for my own budget brackets, but I made a few modifications just based on my risk tolerance and how I wanted the highest-performing ads to get weighted a little bit more spend. So, it's not going to be perfect, but this will give you a really great starting point with consideration that your budget might be way different than mine. Your total number of ads would also influence the outcome here.
And so, here's the outcome table showing that if you have one or zero results on a single ad, you should keep the budget at $12. If you have a cost per result over 850, it should be about 10. And then, as your cost per result decreases as you get better and more efficient ads through testing, you should increase the total daily budget.
And while this is based on a $35,000 per day target, it could result in a budget that is 10% higher or lower when you apply these budgets to all of your ads. And this is just done to keep the brackets relatively simple to set up with pretty round numbers here like 1,100 a day, 350 a day as opposed to 297 or 1210. And really Facebook often has more than 10% daily swings in performance anyway.
And so it really shouldn't be a big deal in performance anyways, unless you are very careful at managing a certain desired amount of lead volume, in which case you would need to control the amount of outcome. So again, this is just a base. You should play around with it.
And even though the first output might be close to what you actually need like it generated here, you should still work with the GPT to refine the bands or maybe refine the waiting for some of those best performers. And so I'll actually pull up what I'm using right now, which is what I got using this agent after going back and forth a little bit. And I'm going to adjust my ads using this criteria live right now.
And so when adjusting data, I go through all three filters I set up in Facebook. One result, scale, and zero results. And I go through three lookback periods with all three of those different filters.
So I go through all time, I go through the last 7 days, and I go through a three-day rolling period. All time and last 7 days are just done once a week. And then the three-day rolling period is done daily.
So let's do the first two first. Going back all time, I started using this exact tracking method for all of our ads a little over 2 months ago. So the results since then have been roughly the same.
And I'm going to choose to start looking at the no results filter. So these are all of the ads that with a certain amount spent have generated no results. And you can see that most of the ad sets here are turned off because they violated my limit of going over $1,000 in total amount spent without having any kind of results.
And there's a couple of ads here that are live, so I'm just going to go ahead and select these. Scroll down to the $1,000 mark and turn all of those off. Now we're going to do the same exact thing and go to the one result filter.
So these are all of the ad sets with one result. And again, we've got a bunch of ads here that are already turned off. And I'm going to turn off all of the new ones that have crept up in budget over $1,000 a day and turn those off because they're not profitable enough to keep on.
Now let's check scale. Now I'm usually a little bit more conservative with turning these off because they have had at least two results. But in this case, I'm still going to turn off these two ads because they're not operating quite profitably enough.
It's just too expensive to justify even $10 a day when I know that for $10 a day I can get myself like four diet Cokes or whatever. But at the very bottom, we also see the most profitable ads that potentially aren't getting enough spend. So these are where we find ads that have been almost completely ignored.
But they have great results, they have low budget shown here, and so we actually want to increase these. Now when increasing budget, whether it's in the 30-day lookback period, the 7-day, or the 3-day, you only ever want to move one tier at a time. And that's exactly why the last column tracks the last edited date.
And so when you're managing dozens of creatives, in this case 500 plus, it's really easy to lose track of what you've already changed in that day. And so this column exists simply so you don't double dip on a single ad in a single day. One change per ad per day maximum.
But the deeper reason for moving in smaller increments is stability. Massive budget swings in Meta create really unpredictable performance. Like they actually don't work the way that most people think they do, and I learned this through testing.
When you launch a proven ad at $10,000 a day, for example, halfway through the day, Facebook doesn't spend the $5,000 budget, which would be the logical half-day, half-budget. It spends closer to 2,000, less than half of what you intended. And it shows that this distribution engine that Facebook has on the back end isn't instant.
It's not built for violent changes. And so, the budget bands that you have should only be moved up or down one rung at a time, regardless of how bad or good the ads performance is on that single day. So, I'm going to upgrade this 101 to 500.
I'm going to upgrade these to 100, which is the next band up. These two are going to get moved up to a thousand in spend each. This one looks like it's maxed out at 3,000 a day and performing really well.
This one is getting moved up to a thousand. And now we're entering the yellow, so I got to kind of pay attention here, and make sure that these don't get more spend than they actually deserve. This is where the color coding just helps me move through these really quickly.
All right, there we go. All of those are updated, making sure that we appropriately prioritize the winners. And then the losers we actually cut in the 7-day lookback period, so let's take a look at that.
Pulling up the last 7 days now, and we're going to go through the same exact filter set. So, starting with the no results, there's nothing over a thousand dollars in spend, meaning nothing needs to be turned off, and everything is at $10 a day or recently changed, so we can leave that there. So, next let's go to one result.
Here it looks like two of these potentially need to be turned off. I'm just going to turn them off there. And then this one here is still coasting.
And it looks like quite a few of these down here can be upgraded from just $10 a day in ad it's spend to 50 because they have at least one proven results. They've gone from testing with zero results at $10 a day and spend and they should be up at $50 a day and spend because now they are officially proven. So I'm going to edit the budget on all three of those to be 50.
And then lastly, we're going to go into the scale. And this is where we've got the heavy hitters. A lot of the stuff inefficiently working at the top has already been corrected.
You can see that this is done largely because of the changes I made yesterday on the three-day, which is the most exciting part. But let's look at some of these ones down here that are performing really well and probably should be upgraded. So this one right here hasn't been changed yet today.
I'm upgrading it. This one can be increased to 500 a day. This one with two results increased to 100.
These two were already changed today, so you can see that we don't need to make any modifications there. And picking really round numbers here lets me just very quickly know what I should upgrade or downgrade and add to. So those upgrades are made and now that's all that we need to do for the long-term housekeeping is just turning off ads that don't work and increasing budget on ads that do work.
Now we get into the changes for the last 3 days and this is where we actually do a lot more increasing and decreasing because we're looking at a shorter time window. Not 1 day because lead gen results are generally infrequent enough that a single day's worth of data is unreliable and one bad day doesn't mean that an ad is failing. One day also doesn't mean it's a winner, but rather 3 days where we have a little bit more information.
And again, with low-ticket e-com, you probably could react daily because the volume of purchases smooths out all this noise. But with lead gen, the volume isn't there. So a single day's worth of data, even if you're running tens of thousands of dollars a day in total ad spend, a single day's worth of data is probably not going to be enough.
It's going to swing wildly and it's going to send you in the wrong direction if you choose to go off the data. But, you do want to react faster than every 7 days because by then you're looking at ads that may have already fatigued a week ago and you'd be really slow to catch a $1,000 per day problem that are happening right now in your business. So, tons of testing.
I found that a rolling 3-day period gives me a good balance. It might be 4 or 5 days for your business or if you're spending more in ads than us, it could be just a day or two. But, that's the consideration, kind of the thought process that we've gone through to find the 3-day period works well for us.
And now, speed round. I I said this takes less than 3 minutes, but if you can Can you time me? 90 seconds.
Can you pull up that timer? Okay, go for it. This one right here is the only one that we haven't changed yet today because it's already a 3,000 a day in budget.
These up here, this one's going to get a decrease because it's over KPI. This one is going to get a decrease by one unit cuz it's over KPI. This one, a decrease.
This one, a decrease. Facebook's like trolling me right now. And this one, a decrease.
Now, we're going to go to one result, just make sure that everything here is checked. If you have faster internet than me, maybe you wouldn't suffer like I do. Okay, all of these except for this one have the appropriate budget.
And these ones up here do need to be decreased by one unit. Then the rest have already had changes made to them and they only have one high-rise qualified call. So, we're not giving them more budget until we get more data.
And then there's no point in even checking the uh no results. So, I'm officially done. What was my time?
What was my live time? A minute 16? I'm quick with it.
All right. What you just witnessed is like orangutan-level button mashing. I hope you paid attention closely, but that is literally all I do.
That quick little change that happened in a minute and a half is all that needs to get done on a day-to-day basis. That's all. Seriously.
But, if that button mashing did not save your business, if it didn't make you a millionaire, it's because it was never supposed to. Managing the day-to-day ad spend like this, or spending hours in the Ads Manager, which I've done myself, will never actually scale you to a million dollars a month in ad spend. Not with the current way that Facebook is distributing ads.
And even though some control, like I demonstrated, is better than just letting Facebook do whatever it wants in a CBO campaign, you can't min-max this to a million dollars a month in ad spend profitably. But, I'll be honest, having hundreds of winning ads to put money behind can do that. And that's exactly what got us here, is having ads like this that let us operate so profitably.
Having thousands of dollars a day be put behind this ad and having it be one of the top performers, spending $3,000 a day. I break these ads down line for line, so you can copy them in this video here, and you can just take the best ideas from me right now. Click here to watch it next.
Hope it helps you.