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
Review the requirements for creating partnership ads.
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).
curl -i -X GET \
"https://graph.facebook.com/v22.0
/17841405309211844?fields=business_discovery.username(bluebottle)&access_token=<ACCESS_TOKEN>"
{ "business_discovery": {"id": "17841401441775531" // Blue Bottle's Instagram Account ID } }
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.
{ "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 } } }
{ "id": <CREATIVE_ID> }
Here is how the above sample request would output the ad.
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.
{ ... "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) }, ... }
{ "id": <CREATIVE_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 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.
{ "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 } } }
{ "id": <CREATIVE_ID> }
Here is how the above sample request would output the 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
.
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'
Upon success, your app will receive an ID for the ad.
{ "id": <AD_ID> }
You can use this ad ID to publish your ad.