To create carousel ads, provide ad creative with multiple child_attachments
in link_data
for Instagram Stream. We require at least three for MOBILE_APP_INSTALLS
or MOBILE_APP_ENGAGEMENT
and two for other objectives. You need to provide instagram_actor_id
, and only use objectives
supported in Instagram Ads.
There are some differences between Facebook and Instagram carousel ads. These differences only happen with Instagram placement. If you have an ad set with both Facebook and Instagram placements enabled, what works on Facebook may be different from that on Instagram. For example, multi_share_optimized
has no effect on Instagram, but works on Facebook.
multi_share_optimized
has no effect on Instagram. If more than 5 attachments are provided, the first 5 will be used, based on the order of them in the ad creative creation.multi_share_end_card
has no effect on Instagram. End cards are not available on Instagram.link
specified, which is the destination of the image click.link
setting of the attachment.caption
field can be used to specify the display url in one-tap overlay. If not specified, the link
url will be used.message
setting in the link_data
. The name
of each attachment is also shown, between the image or video and the message. The description
field of the link_data
and of each child attachment are ignored.picture
or image_hash
set. We do not default the image from link_data
.100x100
image crop can be provided for each attachment, or auto crop will be performed. The final image must be at least 600x600 pixels, which is significantly bigger than the minimum requirement of Facebook carousel ads.video_id
in a child_attachment
. The thumbnail image is specified by image_hash
or picture
in a child_attachment
.For Instagram Stories, you can create a carousel with up to ten images or videos. By default, the number of cards is tailored and varies to optimize for performance. A user may see one, two or three cards before seeing the option to "Expand Story". Stories Carousel limitations differ depending on how you have decided to place your ads.
For standalone Instagram Stories placement, you can choose to have a fixed number of cards, with a maximum of 3 cards displayed before the option to expand the story. This feature is setup inside carousel_delivery_mode
. Within this field, there are two options:
optimal_num_cards
: Default option. The number of cards shown to the user is automatically tailored.fixed_num_cards
: To be selected in case the advertiser wants to have a fixed number of cards shown.Using a fixed number of cards may increase the amount an advertiser pays for results.
Other placement differences:
Standalone | Mixed or Automatic Placements | |
---|---|---|
Aspect Ratio | 9:16 and non-9:16. Mixed aspect ratio is not supported. | No 9:16 format. |
Supported Media | Images, videos up to 120 seconds (per card), mixed photos and videos. If you have chosen to have a fixed number of cards, we support videos of up to 15 seconds (per card). | Images, videos up to 120 seconds (per card), mixed photos and videos. |
Supported Objectives | Brand Awareness Reach Traffic (Link Clicks) Messages Lead Generation Conversions App Installs Video Views Store Traffic Catalog Sales Note: The option to show a fixed number of cards is not supported for Catalog Sales. | Brand Awareness Reach Traffic (Link Clicks) Messages Lead Generation Conversions App Installs Store Traffic Catalog Sales |
For example, to create an Instagram Stories carousel:
curl \ -F 'name=Sample Creative' \ -F 'object_story_spec={ "instagram_actor_id": <INSTAGRAM_ACTOR_ID>, \ "link_data": { "child_attachments": [ { "description": "$8.99", "image_hash": "<IMAGE_HASH>", "link": "https:\/\/www.link.com\/product1", "name": "Product 1", "video_id": "<VIDEO_ID>" }, { "description": "$9.99", "image_hash": "<IMAGE_HASH>", "link": "https:\/\/www.link.com\/product2", "name": "Product 2", "video_id": "<VIDEO_ID>" }, { "description": "$10.99", "image_hash": "<IMAGE_HASH>", "link": "https:\/\/www.link.com\/product3", "name": "Product 3" } ], "link": "<URL>" }, \ "page_id": "<PAGE_ID>" \ }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v<VERSION>/act_<AD_ACCOUNT_ID>/adcreatives
To create a carousel with fixed_num_cards
:
curl -X POST \ -F 'object_story_spec={ "instagram_actor_id": "<INSTAGRAM_ACTOR_ID>", "page_id": "<PAGE_ID>", "link_data": { "child_attachments": [ { "link": "<LINK>" "image_hash": "<IMAGE_HASH>", "image_crops": [], }, { "link": "<LINK>", "image_hash": "<IMAGE_HASH>", "image_crops": {} }, { "link": "<LINK>", "image_hash": "<IMAGE_HASH>", "image_crops": {} } ], "message": "<MESSAGE>", "multi_share_end_card": false, "multi_share_optimized": false, "picture": "<PICTURE>" } } ' \ -F 'portrait_customizations={ carousel_delivery_mode: "fixed_num_cards" }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives
Instant Experience elements are not supported for the Carousel ad format.