Appearance
Partnership Ads with Advantage+ Catalog Ads
Updated: Jun 30, 2026
Partnership ads enable advertisers to collaborate with creators or partners, using their handle to increase engagement and generate interest in the ad. Advantage+ catalog ads are a type of personalized ad that automatically shows relevant products from a catalog to viewers based on their interests and actions. This document describes how to create a partnership ad using an Advantage+ catalog ad with either a carousel or collection format.
Permissions
You need the following permissions:
ads_managementbusiness_managementinstagram_basicinstagram_manage_commentsinstagram_content_publishpages_show_listpages_read_engagementpages_manage_adspages_manage_postsinstagram_branded_content_ads_brand
Collection format only
Step 1: Create an Instant Experience body element with existing media as the hero asset
The canvas_existing_post field takes in an existing Facebook or Instagram media ID (either a photo or video) and creates a body element with the media set as the hero asset of the element.
Parameters
| Name | Description |
|---|---|
canvas_existing_post | Uses an existing post as the hero asset for the element. Values: * source_instagram_media_id — Specifies the Instagram media to use as the hero asset. * source_facebook_post_id — Specifies the Facebook post to use as the hero asset. |
Example requests
Using existing Instagram media
curl -X POST \
-F 'canvas_existing_post={
"source_instagram_media_id":<IG_MEDIA_ID>
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PAGE_ID>/canvas_elementsNote: When using an Instagram post that is a video, call the /advideos endpoint to ensure that the video is fully processed.
Using existing Facebook media
curl -X POST \
-F 'canvas_existing_post={
"source_facebook_post_id":<FB_MEDIA_ID>
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PAGE_ID>/canvas_elementsStep 2: Create the Instant Experience product set and footer
Create the product set and footer as you would for any collection ad.
Step 3: Create an Instant Experience with existing media as the hero asset
The hero_asset_facebook_post_id and hero_asset_instagram_media_id fields take in an existing Facebook or Instagram media ID and create an Instant Experience with the media set as the hero asset of the canvas.
Note: If the hero asset is already set in the body element and a hero asset field is then passed in:
- If the passed-in hero asset is null, the body element's hero asset overrides it.
- If the passed-in hero asset is different from the body element's hero asset, the API returns an error.
Parameters
| Name | Description |
|---|---|
hero_asset_instagram_media_id | Specifies the Instagram media to use as the hero asset. |
hero_asset_facebook_post_id | Specifies the Facebook post to use as the hero asset. |
Example requests
Using existing Instagram media
curl -X POST \
-F 'body_element_ids=[
<BODY_ELEM_ID_1>,
<BODY_ELEM_ID_2>,
...
]' \
-F 'is_published=true' \
-F 'hero_asset_instagram_media_id=<IG_MEDIA_ID>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PAGE_ID>/canvasesUsing existing Facebook media
curl -X POST \
-F 'body_element_ids=[
<BODY_ELEM_ID_1>,
<BODY_ELEM_ID_2>,
...
]' \
-F 'is_published=true' \
-F 'hero_asset_facebook_post_id=<FB_MEDIA_ID>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PAGE_ID>/canvasesCollection and carousel formats
Create an ad creative with an existing post as the parent source
The parent_source_instagram_media_id and parent_source_facebook_post_id fields of branded_content take in an existing Facebook or Instagram media ID and create an ad creative with the media set as the parent source of the element.
Parameters
| Name | Description |
|---|---|
branded_content | Object containing information about the partnership ad. Values: * parent_source_instagram_media_id — Specifies the Instagram media to use as the parent source media shown as the intro card. * parent_source_facebook_post_id — Specifies the Facebook post to use as the parent source media shown as the intro card. |
Example requests
Using existing Instagram media
curl -X POST \
... //other parameters for the ad creative \
-F 'branded_content={
"parent_source_instagram_media_id":<IG_MEDIA_ID>
}' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreativesNote: When using an Instagram post that is a video, call the /advideos endpoint to ensure that the video is fully processed.
Using existing Facebook media
curl \
... //other parameters for the ad creative \
-F 'branded_content={
"parent_source_facebook_post_id":<FB_MEDIA_ID>
}' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreativesNote: You only need to pass in branded_content.parent_source_instagram_media_id or branded_content.parent_source_facebook_post_id when using a canvas with an existing post. Whether the format is a collection or a carousel depends on other parameters passed in, which are omitted in these code samples.