Create Partnership Ads by Boosting an Existing Post

Branded content ads are now called partnership ads.

Advertisers can now boost more types of organic Instagram content as partnership ads, including branded content with the paid partnership label, Instagram Collab posts, @mentions, people tags, product tags, and other content without the paid partnership label, but advertisers can still use the ad code or an existing media ID to create partnership ads for all types of contents. This document shows you how to:

  1. Fetch branded content media
  2. Create partnership ads using the Branded Content Media
  3. Create partnership ads using the Partnership Ad Code

Before You Start

Review the requirements for creating partnership ads.

Fetch the Branded Content Media

To get all media that an advertiser is tagged in, that are available to be used in an ad, send a GET request to the /<INSTAGRAM_ID>/branded_content_advertisable_medias endpoint where the INSTAGRAM_ID is the ID for the Instagram Professional account for your brand.

Parameters

NameDexcription

creator_username

Optional.
To find branded content for a specific creator for the brand, include the creator_username field set to the username for the creator.

permalinks

Optional.
An array of IG media permalinks that can be obtained from the creator that the advertiser is working with.
Example:
[‘Cw7zyQ5BdEE’,’Cw7zyQ5BdEh’]

only_fetch_allowlisted

Optional.
Only fetch media from creators that have been allowlisted by the advertiser.
Note: The default has been changed to false to allow advertisers to fetch more data and for API performance.

ad_code

Optional.
The ad code shared by the creator the advertiser is working with.

Sample Request

Formatted for readability.
curl -i -X GET \
  -d 'creator_username=<CREATOR_USERNAME>' \
  -d 'access_token=<PAGE_ACCESS_TOKEN>' \
  -d 'permalinks=[<’PERMALINK1’,’PERMALINK2’>]' \
  -d 'only_fetch_allowlisted=<BOOLEAN>' \
  -d 'ad_code=<CREATOR_AD_CODE>' \
'https://graph.facebook.com/v22.0/<INSTAGRAM-ID>/branded_content_advertisable_medias?fields=eligibility_errors%2Cowner_id%2Cpermalink%2Cid&access_token=123,has_permission_for_partnership_ad'

Sample Response

Upon success, your app will receive a list of media containing the media id, eligibility errors (if any), permalink, if advertiser has permissions to boost the post and owner ID of the media that can be used in ads.

{
 "data": [
 	{
     "eligibility_errors": [
        "Cannot use Reels containing tappable elements can't be used for ads. Choose a different post to create an ad."
      ],
      “has_permission_for_partnership_ad”:true
      "owner_id": "16502228360082",
      "permalink": "https://www.instagram.com/reel/CzboAd3R91-/",
      "id": "16502230933174"
    },
    {
      "owner_id": "90010135660647",
      "permalink": "https://www.instagram.com/p/CywLmKWu6Zs/",
      "id": "90013017840068",
      “has_permission_for_partnership_ad”:true
    },
    {
      "owner_id": "90010489752294",
      "permalink": "https://www.instagram.com/p/CyWe6-ExB7p/",
      "id": "90012928652981",
      “has_permission_for_partnership_ad”:false
    },
    {
      "eligibility_errors": [
        "Can’t use GIF stickersRemove or choose a different sticker."
      ],
      "owner_id": "90010135660647",
      "permalink": "https://www.instagram.com/reel/CyEb6q4OuoN/",
      "id": "90012872006248"
    },
  ...
 ],
 "paging": {
    "cursors": {
      "before": "QVFIUkR6amZAhLVVVWGpfTlRBenRsOUJCQ3lR==",
      "after": "QVFIUlhBX1hoQzI4SkVFaTRoeEpTdEpJMFdIUh=="
    }}

Create an Ad Creative

Using the Instagram Media ID

To create ads, you will use the Marketing API as you normally would for ads creation.

Send a POST request to the /act_<AD_ACCOUNT_ID>/adcreatives endpoint with the object_id field set to the ID for the Facebook Page for your brand and the source_instagram_media_id field set to the ID for the Instagram Post for the branded content you want to use in your ad.

Request

Formatted for readability.

curl -X POST \
  -F 'object_id=<PAGE_ID>' \
  -F 'source_instagram_media_id=<IG_MEDIA_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  -F 'facebook_branded_content'={
    "sponsor_page_id": "<ADVERTISER_FB_ID>"
  } \
  -F 'instagram_branded_content'={
    "sponsor_id": "<ADVERTISER_IG_ID>"
  }
'https://graph.facebook.com/v22.0/act_<AD_ACCOUNT_ID>/adcreatives'

Response

Upon success, your app will receive an ID for the ad creative.

{
  "id": "<CREATIVE_ID>"
}

Using a Partnership Ad Code

To create ads using a Partnership Ad Code, you will use the Marketing API as you normally would for ads creation.

Send a POST request to the /act_<AD_ACCOUNT_ID>/adcreatives endpoint with the object_id field (creator Facebook Page ID) set to the ID for the Facebook Page for your brand and the instagram_boost_post_access_token given by the creator.

Request

These are the required fields to be passed in the API call (example in JavaScript):

curl -X POST \
  -F 'object_id=<BRAND_PAGE_ID>' \
  -F 'branded_content ={
       "instagram_boost_post_access_token": "<AD_CODE>"
   }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  -F 'facebook_branded_content'={
    "sponsor_page_id": "<ADVERTISER_FB_ID>"
  } \
  -F 'instagram_branded_content'={
    "sponsor_id": "<ADVERTISER_IG_ID>"
  }
'https://graph.facebook.com/v22.0/act_<AD_ACCOUNT_ID>/adcreatives'

Response

Upon success, your app will receive an ID for the ad creative.

{
  "id": "<CREATIVE_ID>"
}

Create an Ad

Next, you will use the ad creative, to create the ad.

Send a POST request to the /act_<AD_ACCOUNT_ID>/ads endpoint with the name field set to the name for your ad, the adset_id field set to the ID for your ad set, the creative field with the creative_id parameter set to the ID for your ad creative, and the status intially set PAUSED.

Request

curl -X POST \
  -F 'name": "My Ad's Name"' \
  -F 'adset_id: <ADSET_ID>' \
  -F 'creative: {"creative_id": <CREATIVE_ID>}' \
  -F 'status: "PAUSED"' \
  -F 'access_token=<ACCESS_TOKEN>' \
'https://graph.facebook.com/v22.0/act_<AD_ACCOUNT_ID>/ads'

Response

Upon success, your app will receive an ID for the ad.

{
"id": "<AD_ID>"
}

You can use this ad ID to publish your ad.

Troubleshooting

Uploading an Instagram Video to Facebook

If you are working on boosting video media, you might encounter the error "Instagram Video Must Be Uploaded To Facebook". A workaround for this would be to use the following API call:

curl -X POST \
  -F 'source_instagram_media_id=<MEDIA-ID>' \
'https://graph.facebook.com/v22.0/act_<AD_ACCOUNT_ID>/advideos

Upon success, your app will receive an ID for the video.

{
  "id": "<VIDEO-ID>"
}