January 31, 2022

Out-of-cycle changes.

Marketing API

Campaign Objectives

Simplifying our Campaign Objectives with New Objectives

As announced last December, we are redesigning the objective selection experience when creating new campaigns in Ads Manager, to effectively guide advertisers to campaign setups that better help achieve their marketing goals. You can learn more about these new Outcome-Driven Ad Experiences (ODAX) changes in our blog.

We plan to gradually roll out these changes to Ads Manager throughout 2022. As such, we recommend developers implement the below API changes by April 2022 to help advertisers have a consistent experience when using Ads Manager and your app.

Ad Account

Read
New FieldValue Ad Account Experience

has_advertiser_opted_in_odax

true

New objectives experience (6 objectives)

has_advertiser_opted_in_odax

false

Legacy experience (11 objectives)

The new field has_advertiser_opted_in_odax indicates whether an ad account can create new campaigns using ODAX objectives. During the rollout phase of ODAX on Ads Manager, some advertisers will have the updated objective experience, and others will not. As such this field will enable you to align your app's experience with the ad account's Ads Manager experience for a consistent experience across interfaces.

Write (testing purposes only)
New FieldValue Ad Account Experience

odax_opt_in

true

ODAX experience (6 objectives)

odax_opt_in

false

Legacy experience (11 objectives)

The new field odax_opt_in enables developers to opt-in an ad account to create new ODAX campaigns via the API. This field is meant for developer testing purposes only and is provided to help test the new ODAX experience on your app to prepare your apps to align with the new objective experience in Ads Manager.

Note:

  • This field enables the ad account to create ODAX campaigns via the API. It does not opt-in or opt-out the ad account’s Ads Manager experience to ODAX.
  • For testing purposes, once you have used this field to opt-in your ad account to ODAX over the API, you can create an ODAX campaign via the API and see how it works in Ads Manager. While you may not be able to directly create a campaign that uses ODAX in Ads Manager during the rollout phase (as your Ads Manager may not be opted in yet), you can view and edit the existing ODAX campaign created over the API in Ads Manager, similar to all campaigns created over the API.

Campaign

Read
Existing FieldNew ODAX Values

objective

  • OUTCOME_AWARENESS
  • OUTCOME_ENGAGEMENT
  • OUTCOME_LEADS
  • OUTCOME_SALES
  • OUTCOME_TRAFFIC
  • OUTCOME_APP_PROMOTION
Write
Existing FieldNew ODAX Values

objective

  • OUTCOME_AWARENESS
  • OUTCOME_ENGAGEMENT
  • OUTCOME_LEADS
  • OUTCOME_SALES
  • OUTCOME_TRAFFIC
  • OUTCOME_APP_PROMOTION

To create an ODAX campaign, you need to provide a new ODAX objective. You can compare code samples for the objective of the new ODAX values versus the current legacy values in our developer documents.

Ad Set

Read
Existing FieldNew ODAX Values

destination_type

  • ON_AD
  • ON_POST
  • ON_VIDEO
  • ON_EVENT
  • ON_PAGE

destination_type is an existing field. New ODAX values will be returned for ODAX campaigns. Note that destination_type corresponds to conversion location and engagement type in Ads Manager.

Write
Existing FieldNew ODAX Values

destination_type

  • ON_AD (LEADS)
  • ON_POST (ENGAGEMENT)
  • ON_VIDEO (ENGAGEMENT)
  • ON_EVENT (ENGAGEMENT)
  • ON_PAGE (ENGAGEMENT)

If the campaign is an ODAX campaign group, you will need to provide a new destination type that may be required for certain outcomes such as Engagement and Leads. You can compare code samples for destination_type of the new ODAX values vs the current legacy values in our developer documents.

Restrictions

There will be new restrictions on ODAX campaigns. You can view the set of restrictions in our developer documents.

Ad

Restrictions that were based on legacy objectives, are now decided by destination type, promoted object and optimization goal.

Examples:

  • Asset customizations for DCO will be compatible with OUTCOME_ENGAGEMENT + on_video destination type but not compatible with OUTCOME_ENGAGEMENT + on_post.