Creating Branded Content

Creators (media companies, celebrities, and influencers) can share branded content on Facebook. Branded content posts — any content that features or is influenced by a business partner (advertiser or marketer) for an exchange of value — must comply with our branded content policy and our ads policy. In addition, creators must tag their business partner in the posts using the branded content tool or the Graph API.

Most creators (Pages and verified Profiles) already have access to the branded content tool. If the branded content tool is not available on a creator or publisher's Page, they can submit an application to gain access to the tool.

This content explains how to use the API to create branded content posts. Note: You can also create branded content posts by using the branded content tool, which you can access by clicking the "handshake" icon in the post composer or via Power Editor, Ads Manager, and the Mentions App. Learn more about branded content in the Help Center.

Overview

Branded content can be created on the following types of posts:

  • A status update, including text, sharing a link, or a multi-photo post
  • Photos
  • Videos
  • Live videos

Each type uses a different endpoint during creation, but all involve adding a sponsor_tags field in the post. A sponsor tag points at a Facebook Page.

Branded content creators have the option to allow their business partners to directly boost their posts, by adding a direct_share_status field in the post. Set direct_share_status = 1 to grant permission for their business partner to boost the post. Otherwise, set direct_share_status = 0.

Creating Branded Content

Creating a Status Update

Creating a status update means posting to a Page's feed endpoint. At a minimum, the POST must contain values for the sponsor_id, share_status, and the message fields.

curl -X POST "https://graph.facebook.com/372501189608751/feed" 
  -F "access_token=EAAZAjV6e0OqwBALWs91N0RvZCD9XLs0wyGQMIoNbwPMT4lbaIEtALEQI6fCR8ytFYZAzvsE9qJft7hhbqyyfpkzDdKJopMNjDGRmeBRHvb31ZA6IB2wxIkPnSpg5aXt3UX9Vl4idERG1jvCDe75ZB6YBovy41LGJAgj7fIbCZAQZCIGMjIuvwKiOQdiW7MJAQUZD" 
  -F "sponsor_id=130533530354972" 
  -F "message=Check out some beautiful products in this grocery store" 
  -F "direct_share_status=1"
  
  {"id":"372501189608751_701884363337097"}
  

Posting a Photo

Creating a photo story requires posting to a Page's photos endpoint. At a minimum, the POST must contain values for the sponsor_id, share_status, and the message fields.

You can use the url field to link to an existing photo, as in this example. You can also upload the photo as an attachment to the POST. For more information, see Photo Upload.

  curl -X POST "https://graph.facebook.com/372501189608751/feed" 
  -F "access_token=EAAZAjV6e0OqwBALWs91N0RvZCD9XLs0wyGQMIoNbwPMT4lbaIEtALEQI6fCR8ytFYZAzvsE9qJft7hhbqyyfpkzDdKJopMNjDGRmeBRHvb31ZA6IB2wxIkPnSpg5aXt3UX9Vl4idERG1jvCDe75ZB6YBovy41LGJAgj7fIbCZAQZCIGMjIuvwKiOQdiW7MJAQUZD" 
  -F "sponsor_id=130533530354972" 
  -F "message=Check out some beautiful products in this grocery store" 
  -F "direct_share_status=1" 
  -F "url=https://scontent-sea1-1.xx.fbcdn.net/v/t31.0-8/13064650_505613696297499_6399089570275517473_o.jpg"
  
 {"id":"372501189608751_701886166670250"}
 

Posting a Video

Posting a video with branded content requires several steps:

  1. Make a call that indicates that a video will be uploaded. The API returns the ID of the video object you can use to upload the video.
  2. Upload the video.
  3. Finalize the video transfer. When finalizing the transfer, add the sponsor_id field to the request, which adds the branded content to the story.

For more information on uploading videos, see uploading videos.

In this example using curl, the request is started, the video is uploaded, and then the post is finalized with a sponsor_id and direct_share_status.

 curl -X POST "https://graph-video.facebook.com/v2.6/372501189608751/videos" 
  -F "access_token=$at" 
  -F "upload_phase=finish" 
  -F "upload_session_id=505657306293138" 
  -F "sponsor_id=130533530354972" 
  **-F "direct_share_status=1"**

{"success":true}

Live Video

Creating a branded live video requires more than one step. The process for creating a branded live video is:

  1. Create the live video object
  2. Update the live video object and add the sponsor_id field
  3. Start your stream

Creating a live video object and starting your live video stream is out of the scope of this guide. To learn more about creating and managing live video streams, please see our documentation on live videos.

The example below queries the list of live videos for a page and uses that ID to update the sponsor_id. But instead of querying the list and updating the ID, you could use the ID that's returned when the live video is first created.

Updating Branded Content

Updating stories with a brand ID is not supported on the web or on mobile devices, but it is possible to use the Graph API to update a story to include or change a sponsor. You can change the sponsor by changing the value of the sponsor_id field on a post object.

Note: Reading data is covered later in this document, but the information is contained in the sponsor_tags field.

To add a sponsor to a post, make POST on a Page post with the sponsor_id field set.

To change the sponsor on a post, pass in the new sponsor_id field.

To change the status of “allow your business partner to direct boost the post”, pass in the sponsor_id field and the new direct_share_staus field.

curl -X POST "https://graph.facebook.com/239375369837852_348224912286230" 
  -F "access_token=EAAZAjV6e0OqwBALWs91N0RvZCD9XLs0wyGQMIoNbwPMT4lbaIEtALEQI6fCR8ytFYZAzvsE9qJft7hhbqyyfpkzDdKJopMNjDGRmeBRHvb31ZA6IB2wxIkPnSpg5aXt3UX9Vl4idERG1jvCDe75ZB6YBovy41LGJAgj7fIbCZAQZCIGMjIuvwKiOQdiW7MJAQUZD" 
  -F "sponsor_id=130533530354972" 
  -F "direct_share_status=1"
  
 {"success":true}
 

Reading Branded Content

Reading the sponsor off of a post, video, live video, or video is done by accessing the individual type of node, and looking for the sponsor_tags field.