Pacing and Scheduling

Pacing is control logic that determines how your ads budget is spent over time. It provides uniform competition at Facebook's ads auction across all advertisers each day and automatically allocates budgets to different ads. It is a core part of optimization that helps provide return on investment, known as ROI. Pacing functions the same way for ads created with the API as it does with Facebook tools, see Ads Help Center, Delivery and Pacing.

Pacing tries to provide optimal bids by learning from other ads competing for the same target audience. This formula explains this:

CTR is click through rate but this formula also applies to view through rate (VTR) for impressions and conversion rate (CVR) for conversions. We continually improve this for accuracy and final bids are influenced by many different factors such as ad type, targeted audience, time of the day, display context and more. Determining optimal bid value is a core part of the pacing algorithm, which includes feedback systems to keep pacing on track.

You can set three pacing options in pacing_type when you create or update an ad set. With standard pacing, we enter your ad into every relevant auction and adjust your bid over the course of the day in order to produce smooth, optimal delivery relative to your objective and budget. This is the default pacing mechanism. For example to disable defaultl pacing for an existing ad set:

This is known as accelerated delivery and removes all pacing adjustments from your bid as your ad enter the auction. We enter your ad into all eligible auctions at its full maximum bid. You can achieve maximum delivery with a specified cost and budget. This results in delivery that is not smooth throughout the day, your ad set's budget may be exhaused before the end of the day. To create an ad set with accelerated delivery:

Ad Scheduling

Specify days in a week and hours in a day when your ad set runs in adset_schedule. Your schedule applies to all ad groups under the ad set. See Ad Scheduling, Blog. adset_schedule is an array of JSON objects. Each object represents a schedule for a single day. For example:

Ad scheduling applies to a target audience's time zone for ads in a set, **not an ad account's time zone. Imagine your ad account time zone is ET, but your ads targets people in California in PST. when you schedule ads from 6pm-9pm, we deliver them to people in California 6pm-9pm PST not 6pm-9pm ET.

FAQ

Q: My ads are not pacing correctly, what do I do?A:

For under-delivery, your bid price might be too low or your audience too narrow. Your bid should be in the suggested bid range so your ads win auctions and secure placement. With competitive target audiences, you may need to bid above the suggested bid range. Or your targeting is too narrow.

If we over-deliver your ad, you might have a very large audience that quickly exhausts budget. If you believe that is not the case, contact us at the support portal.

Q: Is pacing at the ad set or ad campaign level?A:

Ad campaign setting do not influence pacing. Since individual ad sets have budget and schedule, pacing is at the ad set level.

Q: When I change my budget, will it impact pacing?A:

When you change budget, our systems have to learn the new optimal bid which takes time. During the time, your bids are not optimal and we can't maximize ROI. Therefore you should not change bid and budget frequently.

Q: When should I change bid or budget?A:

If you have to change these parameters, limit yourself to 2-3 times a day and only the early part of the day. This does not affect pacing as much as changing it often or later in a day.

Q: What about campaigns that run only a day or shorter?A:

Facebook optimizes pacing within a day, so this should not be a problem.

Q: I have ads with `billing_event` as `IMPRESSIONS` and I switched `billing_event` to `LINK_CLICKS`. Will this affect pacing?A:

Pacing may change somewhat. Since you switch from view-based billing to click-based billing, we re-adjust pacing.

Q: I don't see `max_bid` for different bid types, where is it?A:

Max bid is bid_amount of an ad set you specify regardless of its optimization goal.

Q: How does day parting and pacing work together?A:

With ad scheduling, you schedule hours in a day and days in a week when your ads display to a target audience. You can have your ads display when they are most relevant to anaudience. Pacing takes this schedule into account when to calculate your effective, optimal bid. See ad scheduling.

Q: How does Facebook spend ad set budgets over partial days?

A: From April 9th, 2014, we change the way budgets are spent on partial days at the beginning and end of ad set schedules. For ad sets with daily budgets, we adjust the first and last day spend based on the number of hours we have to deliver ads on those days. For example, if your ad set starts at 6PM, we try to deliver only 25% of daily budget between 6 PM and midnight.