buying_type, billing_event and bid_strategy

buying_type is the way in which the advertiser pays for their delivery, defined on the campaign level. Most of the time we just use AUCTION, but there are a few special cases where we either bill based off of prediction, known as RESERVED, or use a fixed price means of negotiating the price an advertiser will pay, known as FIXED_CPM. Campaigns with buying_type require ad sets with a billing_event defined.

Valid billing_events for each buying_type:

`AUCTION` `RESERVED` `FIXED_CPM`

IMPRESSIONS

LINK_CLICKS

APP_INSTALLS

PAGE_LIKES

POST_ENGAGEMENT

VIDEO_VIEWS

bid_strategy on Ad Sets

In 3.0 we introduce bid_strategy to replace two boolean fields is_autobid and is_average_price_pacing on ad sets. The bid_strategy field enables you to directly choose a bid strategy which best suits your specific business goals. Facebook supports following three bid strategies: LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP and TARGET_COST. To learn more on each bid strategy's tradeoffs, see Ads Help Center, Bid Strategies.

Here are additional validations if you use bid_strategy and bid_amount on ad sets:

Bid StrategyBid Requirements

LOWEST_COST_WITHOUT_CAP

Must not specify bid_amount

LOWEST_COST_WITH_BID_CAP

Must provide bid_amount when you create or update an ad object to use this bid strategy.

TARGET_COST

Must provide bid_amount as target cost when you create or update ad objects and change to this bid strategy.

For full information about this feature, see Ads Buying and Optimization, Bid Strategy.

Objectives and optimization_goal

optimization_goal defines the goal you want to achieve by optimizing your ad's delivery to an audience. Certain campaign objectives support only certain ad set optimization_goals.

Campaign Objective Default `optimization_goal` Other valid `optimization_goal`

AD_RECALL_LIFT

AD_RECALL_LIFT. v2.11 and higher: AD_RECALL_LIFT.

REACH. v2.11 and higher: None.

APP_INSTALLS, promoting an Instant Experiences app

APP_INSTALLS

IMPRESSIONS, POST_ENGAGEMENT

APP_INSTALLS, promoting a mobile app

APP_INSTALLS

OFFSITE_CONVERSIONS, LINK_CLICKS, REACH, VALUE, VIDEO_VIEWS

CONVERSIONS

OFFSITE_CONVERSIONS

IMPRESSIONS, POST_ENGAGEMENT, REACH, SOCIAL_IMPRESSIONS, VALUE, LANDING_PAGE_VIEWS.

EVENT_RESPONSES, promoting an event

EVENT_RESPONSES

IMPRESSIONS, REACH

EVENT_RESPONSES, promoting a Page post

EVENT_RESPONSES

IMPRESSIONS, POST_ENGAGEMENT, REACH

LEAD_GENERATION

LEAD_GENERATION

LINK_CLICKS

LINK_CLICKS

LINK_CLICKS

IMPRESSIONS, POST_ENGAGEMENT, REACH, LANDING_PAGE_VIEWS.

LINK_CLICKS, promoting an Instant Experiences app

ENGAGED_USERS

APP_INSTALLS, IMPRESSIONS, POST_ENGAGEMENT, REACH

LINK_CLICKS, promoting a mobile app

LINK_CLICKS

IMPRESSIONS, REACH, OFFSITE_CONVERSIONS

MESSAGES

REPLIES

REPLIES (Click-to-Messenger), IMPRESSIONS (Sponsored Messages)

PAGE_LIKES

PAGE_LIKES

IMPRESSIONS, POST_ENGAGEMENT, REACH

POST_ENGAGEMENT

POST_ENGAGEMENT

IMPRESSIONS, REACH, VIDEO_VIEWS, LINK_CLICKS

PRODUCT_CATALOG_SALES

OFFSITE_CONVERSIONS

IMPRESSIONS, POST_ENGAGEMENT, OFFSITE_CONVERSIONS, REACH, LINK_CLICKS

REACH

REACH

IMPRESSIONS

VIDEO_VIEWS

VIDEO_VIEWS

TWO_SECOND_CONTINUOUS_VIDEO_VIEWS and THRUPLAY.

Optimization Goal and Billing events

For buying_type=AUCTION campaigns, with an optimization_goal set, we have restrictions on what billing_event you can choose for your ad set.

In the restrictions below, we assume you have an objective specified on the campaign level.

`optimization_goal` Valid ad set `billing_event`

APP_INSTALLS

IMPRESSIONS, APP_INSTALLS

AD_RECALL_LIFT

IMPRESSIONS

ENGAGED_USERS

IMPRESSIONS

EVENT_RESPONSES

IMPRESSIONS

IMPRESSIONS

IMPRESSIONS

LEAD_GENERATION

IMPRESSIONS

LINK_CLICKS

LINK_CLICKS, IMPRESSIONS

OFFSITE_CONVERSIONS

IMPRESSIONS

PAGE_LIKES

IMPRESSIONS

POST_ENGAGEMENT

IMPRESSIONS. As of v2.11 POST_ENGAGEMENT not an option.

REACH

IMPRESSIONS

REPLIES

IMPRESSIONS

SOCIAL_IMPRESSIONS

IMPRESSIONS

THRUPLAY

IMPRESSIONS, THRUPLAY

TWO_SECOND_CONTINUOUS_VIDEO_VIEWS

IMPRESSIONS, TWO_SECOND_CONTINUOUS_VIDEO_VIEWS

VIDEO_VIEWS

IMPRESSIONS and VIDEO_VIEWS

VALUE

IMPRESSIONS

LANDING_PAGE_VIEWS

IMPRESSIONS

Objectives and Creatives

If an ad's objective is specified, the ad is validated against the creative. Please refer to the ads guide for a list of creatives supported per objective.

In the API, the objective determines which ad creatives are valid.

Objective Creative Validation Creative fields

NONE

No restrictions

AD_RECALL_LIFT

Cannot use mobile app ads


Page post ads


APP_INSTALLS, promoting an Instant Experiences app

Instant Experiences app install ad

object_story_id or object_story_spec

APP_INSTALLS, promoting a mobile app

Mobile app install ads

object_story_id or object_story_spec

CONVERSIONS, promoting a mobile app

Mobile app engagement ads

object_story_id or object_story_spec

LINK_CLICKS, promoting an Instant Experiences app

Instant Experiences app engagement ad

object_story_id or object_story_spec

LINK_CLICKS, promoting a mobile app

Mobile app engagement ads

object_story_id or object_story_spec

EVENT_RESPONSES. No longer valid as of November 2017. See Breaking Change.

Event ads

object_id
body. No longer valid as of November 2017. See Breaking Change.

EVENT_RESPONSES

Page post ads

object_story_id or object_story_spec

LEAD_GENERATION

Page post ads

object_story_id or object_story_spec

PAGE_LIKES

Page like ads

object_id
body

PAGE_LIKES

Page post ads

object_story_id or object_story_spec

POST_ENGAGEMENT

Page post ads


Cannot include link ads pointing to an app store

object_story_id or object_story_spec

LINK_CLICKS. No longer valid as of November 2017. See Breaking Change.

Link ads not connected to a page

title
body
object_url
(image_file or image_hash). No longer valid as of November 2017. See Breaking Change.

LINK_CLICKS

Link ads


Photo ads with a link in the message


Cannot include link ads pointing to an app store

object_story_id or object_story_spec

LINK_CLICKS

If you select this as both optimization goal and billing event, you must include call_to_action

call_to_action

CONVERSIONS

Link ads not connected to a page

title
body
object_url
(image_file or image_hash)

CONVERSIONS

Link ads


Photo ads with a link in the message


Cannot include link ads pointing to an app store

object_story_id or object_story_spec

VIDEO_VIEWS

Video ads

object_story_id or object_story_spec

MESSAGES

Carousel, single image, single video, slideshow

object_story_spec

PAGE_POST_ENGAGEMENT

As of 3.0, you cannot use this with Carousel Ad Format

object_story_spec

Objectives and Tracking Specs

Tracking specs are applied by default based on the objective specified, please see the full list of defaults by objective here.

There are two important scenarios to take into account:

  • Tracking pixels will not be applied by default, and you must specify it explicitly when your objective is CONVERSIONS
  • Mobile app ads will no longer track installs or app events by default. You must explicitly specify to track installs or app events for mobile app ads otherwise your ad will not track.

To specify to track an install or app event, set the following in your ad:

tracking_specs=[{'action.type':['mobile_app_install'],'application':[{your_app_id}]},{'action.type':['app_custom_event'],'application':[{your_app_id}]}]

Certain objectives of ad campaigns requires the promoted_object to be set in ad sets. The validation around this field is documented here.

Objective and Placement Validation

Certain types of ad placements are valid only for specific objectives or creatives. This table shows which placements are compatible with which objectives or creatives. You can pick a combination of those compatible placements. Note that:

  • audience_network cannot be selected by itself only. messenger_home cannot be selected by itself only. If you select messenger_home, you must also select Facebook feed
  • audience_network as a placement with the video views objective must be used with the VIDEO_VIEWS optimization goal.
  • With LEAD_GENERATION, device_platforms: desktop cannot be selected together with publisher_platforms: instagram.
  • You cannot select story for facebook_positions by itself. If you select story for facebook_positions, you must also select either Facebook feed or Instagram Story.
  • If your objective is website traffic, story for facebook_positions does not support destination_type: messenger.
Objective Creative Placement

APP_INSTALLS, promoting an Instant Experiences app

Desktop app ads

device_platforms: desktop


As of 3.0, you cannot use right_hand_column for facebook_positions

APP_INSTALLS, promoting a mobile app

Photo or video mobile app ads

device_platforms: mobile


publisher_platforms: facebook, feed, instagram, instant_articles, audience_network


facebook_positions: feed, suggested_video, instant articles, messenger_home and story


audience_network_positions: classic, rewarded_video


messenger_positions: messenger_home


As of 3.0, you cannot use right_hand_column for facebook_positions

AD_RECALL_LIFT

all

publisher_platforms: facebook, instagram, audience_network.


facebook_positions: feed, suggested_video, instant_article, instream_video and story, which is currently under limited availability


instagram_positions: stream


audience_network_positions: classic, instream_video


messenger_positions: messenger_home


As of 3.0, you cannot use right_hand_column for facebook_positions

CONVERSIONS

Photo or video link ads from a page

All, including right_hand_column and story for facebook_positions and messenger_positions: messenger_home.


facebook_positions: story only supports the objective WEBSITE_CONVERSIONS


Exception: Neither suggested_video nor instream_video are supported for this objective.

CONVERSIONS

Link ads not connected to a page

facebook_positions: right_hand_column

CONVERSIONS (promoting mobile app)

Photo or video mobile app ads

device_platforms: mobile.


facebook_positions: right_hand_column and story. story as a facebook_positions for this objective does not support destination_type: messenger.


messenger_positions: messenger_home

EVENT_RESPONSES

Event ads

As of 3.0, you cannot use right_hand_column for facebook_positions

EVENT_RESPONSES

Page post ads

publisher_platforms: facebook.


As of 3.0, you cannot use right_hand_column for facebook_positions

LEAD_GENERATION

Page post ads

device_platforms: mobile, desktop


publisher_platforms: facebook, instagram


facebook_positions: feed and story, which is in limited availability


instagram_positions: stream


As of 3.0, you cannot use right_hand_column for facebook_positions

LINK_CLICKS

Photo or video link ads from a page

All, including right_hand_column and messenger_positions: messenger_home.

LINK_CLICKS

Link ads not connected to a page

facebook_positions: right_hand_column

LINK_CLICKS, promoting an Instant Experiences app

Desktop app ads

device_platforms: desktop


facebook_positions: right_hand_column

LINK_CLICKS, promoting a mobile app

Photo or video mobile app ads

device_platforms: mobile, facebook_positions: right_hand_column

PAGE_LIKES

Video creatives

publisher_platforms: facebook


As of 3.0, you cannot use right_hand_column for facebook_positions

POST_ENGAGEMENT

Page post ads with video or photo

publisher_platforms: facebook, instagram


device_platforms: mobile, desktop


As of 3.0, you cannot use right_hand_column for facebook_positions

POST_ENGAGEMENT

Page post ads with text only

publisher_platforms: facebook, instagram


device_platforms: mobile, desktop


As of 3.0, you cannot use right_hand_column for facebook_positions

POST_ENGAGEMENT

New campaign

publisher_platforms: facebook, instagram


As of 3.0, you cannot use right_hand_column for facebook_positions

PRODUCT_CATALOG_SALES

dynamic ads

All, including right_hand_column for facebook_positions and messenger_positions: messenger_home.

REACH

Reach ads

All except right_hand_column for facebook_positions as of 3.0.


Includes messenger_positions: messenger_home and story for facebook_positions.

STORE_VISITS

store visit ads

publisher_platforms: facebook


As of 3.0, you cannot use right_hand_column for facebook_positions

VIDEO_VIEWS

Video ads

publisher_platforms: facebook, instagram, audience_network, instant_articles.


Includes story for facebook_positions but not with the optimation_goal set to TWO_SECOND_CONTINUOUS_VIDEO_VIEWS.


As of 3.0, you cannot use right_hand_column for facebook_positions

Objective, Optimization Goal and attribution_spec

Use click-through and view-through attribution windows for ad set to track conversions then use for ads delivery optimization. This is different from the attribution window you use for ads reporting. With attribution_spec, select a combination of click-through or view-through windows of 1 day or 7 days. The combinations you can use depend on your ad set's optimization_goal and campaign's objective.

Recommended Default attribution_spec

You may not have provided attribution_spec when you created ads sets optimized for Value Optimization. This is an optimization available for conversions, app installs, and product catalog sales objectives. In the past, we defaulted to a 1-day click through attribution window.

When we released Value Optimization, you could pass an empty attribution_spec and by default we used a 7-day window. We later supported a default 1-day click through window. These changes in the default value caused unexpected switches in optimization windows. To avoid this confusion, you should always provide a value for attribution_spec.

Objective Optimization Goal Allowed Combination

CONVERSIONS, PRODUCT_CATALOG_SALES

OFFSITE_CONVERSIONS

1-day click


7-day click


1-day click and 1-day view


7-day click and 1-day view

APP_INSTALLS, LINK_CLICKS

OFFSITE_CONVERSIONS

1-day click


7-day click (LINK_CLICKS only)

APP_INSTALLS

APP_INSTALLS

1-day click


1-day click and 1-day view

For all other optimization_goal and objective combinations you can only use 1-day click for attribution_spec.