Ads and Commerce
Ads and Commerce
Resources

Get Started with Format Automation

Updated: Apr 27, 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.
Not including the format_transformation_spec in the creative spec results in the default system 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 source Description
catalog
Uses 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 source Description
catalog
Uses product catalog data
manual_uploads
Uses 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 source Description Explicit opt-in guide
catalog
Uses product media from your catalog
site_links
Uses media from your website
app_information
Uses app store media

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 source Description Explicit opt-in guide
catalog
Uses product media from your catalog
site_links
Uses media from your website

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 source Description Explicit opt-in guide
app_information
Uses app store media
site_links
Uses media from your website

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 source Description
manual_uploads
Uses 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 source Description
manual_uploads
Uses 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 source Description
manual_uploads
Uses 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

Name Description
format
Required. 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_source
Optional. 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

Did you find this page helpful?
Thumbs up icon
Thumbs down icon