Create Partnership Ads by Uploading a New Creative

Branded content ads are now called partnership ads.

You can use branded content media, such as a post tagged as branded content by a creator, to create partnership ads using the Marketing API. This document shows you how to: Create Partnership Ads by uploading a new creative Creating an Ad with Advertiser as the primary identity and Creator as secondary identity Creating an Ad with Creator as the primary identity and Advertiser as secondary identity

Before You Start

Review the requirements for creating partnership ads.

Upload a New Creative

  1. Upload and manage images to later use in an ad creative. Image formats, sizes and design guidelines depend upon your type of ad; see Ads Guide and Image Crop for more information.
  2. To upload videos, follow the Video API publishing guidelines.

Fetch the Creator's ID

Facebook Page ID

  1. A creator's Facebook Page ID can be fetched using the Pages Search API.
  2. A Page ID can also be fetched by requesting the creator to send over their FaceBook Page's ID.
  3. Another way to obtain a Page ID is to go on to the Facebook Page and find it within the Page Transparency section under the Page's About information.

Instagram ID

To fetch the creator’s Instagram ID, we recommend using Business Discovery.

This sample query shows how to get the creator Instagram ID of the Blue Bottle Coffee Instagram Account. Notice that business discovery queries are performed on the Instagram Business or Creator Account's ID (in this case, 17841405309211844), not the username of the Instagram Business or Creator Account that you are attempting to get data about (bluebottle in this example).

Request

curl -i -X GET \ 
  "https://graph.facebook.com/v22.0/17841405309211844?fields=business_discovery.username(bluebottle)&access_token=<ACCESS_TOKEN>"

Response

{
  "business_discovery": {"id": "17841401441775531" // Blue Bottle's Instagram Account ID }
}

Creating an Ad with the Advertiser as the Primary Identity

Option 1

Send a POST request to the /act_<AD_ACCOUNT_ID>/adcreatives endpoint with the page_id field set to the ID for the Facebook Page for your brand; you would also need to pass the sponsor_id (Instagram) and the sponsor_page_id (Facebook) fields. The fields that you enter here will be the second identity of your partnership ad.

Note: The instagram actor ID will automatically be derived from the FaceBook page passed in the object_story_spec field.

Request

{
  "degrees_of_freedom_spec": {    // required field to be passed
    "creative_features_spec": {
      "standard_enhancements": {    // required field to be passed
        "action_metadata": {
          "type": "DEFAULT"
        },
        "enroll_status": "OPT_IN"
      }
    },
    "degrees_of_freedom_type": "USER_ENROLLED_AUTOFLOW"
  },
  "facebook_branded_content": {
    "sponsor_page_id": "255033446395141" // Creator Page ID (test rithiky brand)
  },
  "instagram_branded_content": {
    "sponsor_id": "90010551992170" // Creator IG ID (test_rithiky_brand)
  },
  "object_story_spec": {
    "page_id": "110001241469329",   // Advertiser Page ID (test vitaan brand new)
  "link_data": {
      "attachment_style": "link",
      "call_to_action": {
        "type": "LEARN_MORE"
      },
      "link": "www.instagram.com", // sample url
      "image_hash": "1b7a65956006e9941608b3914d3964f5" //sample image hash
    }
  }
}

Response

{
  "id": <CREATIVE_ID>
}

Examples

Here is how the above sample request would output the ad.

Instagram Feed
Facebook Feed

Option 2

Send a POST request to the /act_<AD_ACCOUNT_ID>/adcreatives endpoint with the page_id field set to the ID for the Facebook Page for your brand. You can choose to only pass the sponsor_id (Instagram) field or the sponsor_page_id (Facebook) field; the fields that you enter here will be the second identity of your partnership ad. Our backend implementation will automatically update the connected FaceBook Page and deliver the same ad as seen above on both FaceBook and Instagram.

Note: If there is no hard link between the Instagram and Facebook accounts, the ad will not be delivered to that specific platform, if either one of the fields (facebook_branded_content or instagram_branded_content) is passed.

Request

{
...
  "facebook_branded_content": {
    "sponsor_page_id": "255033446395141" // Creator Page ID (test rithiky brand)
  } 
// OR
  "instagram_branded_content": {
    "sponsor_id": "90010551992170" // Creator IG ID (test_rithiky_brand)
  },
...
}

Response

{
  "id": <CREATIVE_ID>
}

Creating an Ad with the Creator as the Primary Identity

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 page_id field set to the ID for the Facebook Page of the creator.

If the creator does not have an existing Facebook Page, we can pass the Advertiser Page ID as the page_id field. But one thing to note would be that the ad will not be delivered to Facebook.

Note: The Instagram actor ID will automatically be derived from the FaceBook Page passed in the object_story_spec field.

Request

{
  "degrees_of_freedom_spec": {    // required field to be passed
    "creative_features_spec": {
      "standard_enhancements": {    // required field to be passed
        "action_metadata": {
          "type": "DEFAULT"
        },
        "enroll_status": "OPT_IN"
      }
    },
    "degrees_of_freedom_type": "USER_ENROLLED_AUTOFLOW"
  },
  "facebook_branded_content": {
    "sponsor_page_id": "255033446395141" // Advertiser Page ID (test vitaan brand)
  },
  "instagram_branded_content": {
    "sponsor_id": "35302227070484" // Advertiser IG ID (test_vitaan_brand)
  },
  "object_story_spec": {
    "page_id": "255033446395141",   // Creator Page ID (test rithiky brand)
    "link_data": {
      "attachment_style": "link",
      "call_to_action": {
        "type": "LEARN_MORE"
      },
      "link": "www.instagram.com", // sample url
      "image_hash": "1b7a65956006e9941608b3914d3964f5" //sample image hash
    }
  }
}

Response

{
  "id": <CREATIVE_ID>
}

Examples

Here is how the above sample request would output the ad.

Instagram Feed

Facebook Feed

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 initially 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.