Skip to content

Get Started with Format Automation

Updated: Jun 16, 2026

This document shows you how to enable format automation so you can create a single ad that automatically delivers multiple optimized ad formats.

Before you start

Familiarize yourself with these topics to set up your ad campaigns for format automation:

Permissions

  • page_manage_ads

How format automation works

You can use the format_transformation_spec parameter to opt in to different types of format transformations and data sources used to build the formats. Each entry in the spec defines a target format and the data source used to assemble it. You must include an entry for each transformation you want to enable.

If you do not include format_transformation_spec in the creative spec, the system uses default behavior.

Opt-in and opt-out examples

To opt in to a single transformation:

"format_transformation_spec": [  
  {  
    "format": "da_collection",  
    "data_source": ["catalog"]  
  }  
]

To opt in to multiple transformations, include an entry for each one:

"format_transformation_spec": [  
  {  
    "format": "carousel",  
    "data_source": ["catalog"]  
  },  
  {  
    "format": "sa_collection",  
    "data_source": ["catalog"]  
  },  
  {  
    "format": "video_slideshow",  
    "data_source": ["site_links"]  
  }  
]

To opt out of a specific transformation, set its data_source to none:

"format_transformation_spec": [  
  {  
    "format": "carousel",  
    "data_source": ["catalog"]  
  },  
  {  
    "format": "sa_collection",  
    "data_source": ["none"]  
  }  
]

Leave the data_source field empty to opt in to all available data sources for that transformation:

"format_transformation_spec": [  
  {  
    "format": "carousel",  
    "data_source": []  
  }  
]

Use format automation to transform an Advantage+ catalog ads carousel into a collection format.

Prerequisites

Data sources

Data sourceDescription
catalogUses product catalog data

Example request

curl -X POST \
  -F 'name="Ad Creative with Format Transformation Spec Sample"' \
  -F 'object_story_spec={
    "page_id": "<PAGE_ID>"
    ... // Fields to create an Advantage+ catalog ads carousel creative \
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'asset_feed_spec= {
    "ad_formats": [
      "CAROUSEL",
      "COLLECTION"
    ],
    "optimization_type": "FORMAT_AUTOMATION"
  }' \
  -F 'format_transformation_spec=[{
    "data_source": ["catalog"],
    "format": "da_collection"
  }]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives

Use format automation to transform an Advantage+ catalog ads carousel with an intro card (the first card is a fixed creative card, followed by dynamic product cards) into collection or single media formats. The carousel downgrade is automatic and does not require an explicit entry in the spec.

Prerequisites

Data sources

Data sourceDescription
catalogUses product catalog data
manual_uploadsUses intro card

Example request

curl -X POST \
  -F 'name="Intro Card Ad Creative with Format Transformation Spec"' \
  -F 'object_story_spec={
    "page_id": "<PAGE_ID>"
    ... // Fields to create an Advantage+ catalog ads carousel creative with intro card \
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'asset_feed_spec= {
    "ad_formats": [
      "CAROUSEL",
      "COLLECTION"
    ],
    "optimization_type": "FORMAT_AUTOMATION"
  }' \
  -F 'format_transformation_spec=[{
    "format": "single_media",
    "data_source": ["manual_uploads"]
  },
  {
    "format": "da_collection",
    "data_source": ["catalog", "manual_uploads"]
  }]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives

Use format automation to transform a single media ad into a carousel format. The data source determines which media populates the carousel cards.

Data sources

Data sourceDescriptionExplicit opt-in guide
catalogUses product media from your catalogProduct Extensions
site_linksUses media from your websiteAdd Site Links
app_informationUses app store mediaMobile App Ads

Example request

curl -X POST \
  -F 'name="Single Media to Carousel with Format Transformation Spec"' \
  -F 'object_story_spec={
    "page_id": "<PAGE_ID>"
    ... // Fields according to explicit opt-in guide \
  }' \
  ... // Other fields specific to your data source (see explicit opt-in guide) \
  -F 'format_transformation_spec=[{
    "format": "carousel",
    "data_source": ["catalog"]
  }]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives

Single media to collection

Use format automation to transform a single media ad into a collection format. The data source determines which media populates the collection.

Data sources

Data sourceDescriptionExplicit opt-in guide
catalogUses product media from your catalogProduct Extensions
site_linksUses media from your websiteAdd Site Links

Example request

curl -X POST \
  -F 'name="Single Media to Collection with Format Transformation Spec"' \
  -F 'object_story_spec={
    "page_id": "<PAGE_ID>"
    ... // Fields according to explicit opt-in guide \
  }' \
  ... // Other fields specific to your data source (see explicit opt-in guide) \
  -F 'format_transformation_spec=[{
    "format": "sa_collection",
    "data_source": ["catalog"]
  }]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives

Single media to video slideshow

Use format automation to transform a single media ad into a video slideshow format.

Data sources

Data sourceDescriptionExplicit opt-in guide
app_informationUses app store mediaMobile App Ads
site_linksUses media from your websiteAdd Site Links

Example request

curl -X POST \
  -F 'name="Single Media to Video Slideshow with Format Transformation Spec"' \
  -F 'object_story_spec={
    "page_id": "<PAGE_ID>"
    ... // Fields according to explicit opt-in guide \
  }' \
  ... // Other fields specific to your data source (see explicit opt-in guide) \
  -F 'format_transformation_spec=[{
    "format": "video_slideshow",
    "data_source": ["app_information"]
  }]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives

Use format automation to transform a carousel ad into a single media format. See Carousel Ads for how to create a carousel creative.

Data sources

Data sourceDescription
manual_uploadsUses cards from the carousel

Example request

curl -X POST \
  -F 'name="Carousel to Single Media with Format Transformation Spec"' \
  -F 'object_story_spec={
    "page_id": "<PAGE_ID>"
    ... // Fields to create a carousel creative \
  }' \
  -F 'format_transformation_spec=[{
    "format": "single_media",
    "data_source": ["manual_uploads"]
  }]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives

Use format automation to transform a carousel ad into a collection format. See Carousel Ads for how to create a carousel creative.

Data sources

Data sourceDescription
manual_uploadsUses cards from the carousel

Example request

curl -X POST \
  -F 'name="Carousel to Collection with Format Transformation Spec"' \
  -F 'object_story_spec={
    "page_id": "<PAGE_ID>"
    ... // Fields to create a carousel creative \
  }' \
  -F 'format_transformation_spec=[{
    "format": "sa_collection",
    "data_source": ["manual_uploads"]
  }]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives

Use format automation to transform a carousel ad into a video slideshow format. See Carousel Ads for how to create a carousel creative.

Data sources

Data sourceDescription
manual_uploadsUses cards from the carousel

Example request

curl -X POST \
  -F 'name="Carousel to Video Slideshow with Format Transformation Spec"' \
  -F 'object_story_spec={
    "page_id": "<PAGE_ID>"
    ... // Fields to create a carousel creative \
  }' \
  -F 'format_transformation_spec=[{
    "format": "video_slideshow",
    "data_source": ["manual_uploads"]
  }]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives

Parameters

NameDescription
formatRequired. Specifies the target format for the transformation. Values: * da_collection: Transforms the ad into a dynamic ads (Advantage+ catalog) collection format. * sa_collection: Transforms the ad into a static ads (manual upload) collection format. * single_media: Transforms the ad into a single image or video format. * carousel: Transforms the ad into a carousel format. * video_slideshow: Transforms the ad into a video slideshow format.
data_sourceOptional. Specifies the data used to assemble the format. Values: * none: Opts out of all data sources. * catalog: Uses product catalog data. * manual_uploads: Uses advertiser uploaded media. * app_information: Uses app store information. * site_links: Uses media from your website. Note: Not including the data_source field or leaving it empty indicates an opt-in to all available data sources.

Configuring data sources

Each data source may require additional fields in your ad creative request. To configure product catalog data, set up the creative_sourcing_spec and degrees_of_freedom_spec as described in Product Extensions. To configure media from your website, see Add Site Links. To configure app store data, see Mobile App Ads.

Retrieve the format transformation

To check your ad, make an API call requesting the format_transformation_spec:

Example request

curl -G \
  -d 'fields=format_transformation_spec' \
  -d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<CREATIVE_ID>

Example response

{  
  "format_transformation_spec": [  
    {  
      "data_source": ["catalog"],  
      "format": "da_collection"  
    }  
  ],  
  "id": "<AD_CREATIVE_ID>"  
}

See also

Unofficial mirror for reference/search purposes. All content originates from developers.facebook.com — see the source link at the top of each page. Machine-readable indexes: llms.txt · llms-full.txt · About