As of September 2019, campaign budget optimisation (CBO) has become the default setting for all newly created Facebook campaigns. What is it? How does it work? And how can you make the most of it?
To understand CBO, it's helpful to understand what came before it. Pre-CBO, budgets were primarily set at the ad set level. Within a campaign, each ad set would have its own budget, which it would spend each day.
The issue that advertisers had is that this method of allocating budgets took a lot of manual effort to maintain. As an advertiser you'd have to check in on your ad set budgets frequently, to ensure that they were set in line with the performance of that ad set.
What CBO attempts to do is to let you simply set a maximum daily budget, at the campaign level, and Facebook will then take care of allocating budgets between ad sets. With CBO, Facebook is effectively attempting to automate the previously manual task of allocating budgets between ad sets.
CBO allocates budgets in line with the campaign objective. If you're running CBO in a conversions campaign for example, it allocates budgets between that campaign's ad sets in order to produce the most conversions.
What CBO doesn't attempt to do though is even out cost per results across ad sets. This can often confuse advertisers who don't understand why, in a CBO campaign, there may be significant variance in cost per result between ad sets.
This confusion comes about because these advertisers, when they'd been optimising budgets manually, would have looked to smooth out differences in cost per result between ad sets.
If they saw one ad set with a very low cost per result, they'd shift more spend to it until the cost per result increased in line with target. If one ad set had a high cost per result, they'd decrease spend.
What's important to realise though, is that this process for how some advertisers manually optimised budgets isn't the optimal way to maximise results across the whole campaign. If you want to maximise results across the whole campaign, you have to understand the concept of marginal costs.
What matters when allocating budgets between ad sets isn't the cost per result of that ad set, it's the marginal cost per result. This is the amount you'd have to spend to get one more result from that ad set.
Marginal cost per result isn't a metric you can see in Facebook, it's a theoretical metric used to describe how saturated an audience is, and how much more money you have to put into something to get one extra result out.
If have enough data about auction competition, and audience saturation, then you can estimate marginal cost per result. Facebook of course have this data, so they're able to estimate it for ad sets in CBO campaigns.
If an ad set has a great cost per result, but it's marginal cost per result is higher than other ad sets, it doesn't make sense to increase spend on that ad set. You can get more results by shifting spend towards ad sets with lower marginal cost per results.
This is why campaigns with CBO enabled will often feature some ad sets that appear to be performing amazingly, but which don't have a great deal of spend going towards them. Facebook estimates that the marginal cost per result on these ad sets is high, perhaps due to factors like audience saturation, and so doesn't increase spend further.
This is why it's important not to judge CBO by what it's doing at an ad set level, but rather to look at it at a campaign-level. It's not trying to maximise the results from each ad set, it's trying to maximise the results from the campaign which all the ad sets sit in.
If you followed the above, and are happy using CBO as a way to maximise results across a number of ad sets, then you should structure your campaigns and ad sets as follows.
If you're using lowest cost bidding, put all ad sets optimising for the same event into a single campaign. This will allow Facebook to most effectively allocate budgets across these ad sets, thus maximising the results of all those ad sets together.
If you're using target cost/cost cap bidding, and you're not budget-capped, then it doesn't matter where you put your ad sets. You can have them all in one campaign, you can have them in different campaigns, whatever makes your life (and reporting) easiest. This is because, if you're not hitting your budgets, then there's no budget allocation for CBO to optimise. As a result, how you structure your ad sets into campaigns becomes irrelevant.
If you're using target cost/cost cap bidding and you are budget capped, then it can make sense to move all your ad sets into a single campaign. CBO will help allocate budget to ad sets that are performing most efficiently, all the while hitting your target costs.
The above gives a guide for how to structure your ad sets into campaigns, but there are exceptions to it. If you're running prospecting and retargeting simultaneously, it can make sense to split along these lines.
This could be because you want to work to a lower cost per result on one (usually retargeting). If you put them in the same campaign though on lowest cost, Facebook would treat prospecting and retargeting conversions the same. Because retargeting usually appears to drive better results, at least as far as Facebook's attribution is concerned, Facebook may over-spend on retargeting.
The main idea behind CBO is that you shouldn't be influencing how it allocates budgets. It's able to take into account more data than we are, and will optimise budgets in real-time, so there's little need for human intervention. In the vast majority of situations there's no value in influencing how it allocates budget.
There are some scenarios however where it can be useful to give CBO a helping hand, particularly when launching new ad sets. When you launch fresh ad sets, Facebook doesn't have any performance data to go off, and so it initially won't know how much budget to allocate to them.
In some scenarios, you might know that certain ad sets are highly likely to perform well. For example, if you're launching a new retargeting ad set targeting users that have nearly converted, like basket abandoners, you know that this ad set is likely to see good results. If you're putting this into a campaign using CBO, it can be helpful to ensure that this ad set receives a certain amount of spend by using spend limits.
In this case you'd set a minimum spend limit at the ad set level, to make sure that it doesn't underspend in the first few days it goes live. Once it's received some initial spend, and Facebook starts to see good performance, spend should naturally flow towards the ad set in line with its performance.
At this point, I'd recommend taking off the minimum spend limit so that Facebook has full freedom to allocate budgets, and maximise results across the whole campaign.