Set Up Instagram Accounts With Pages

To run ads on Instagram, you need an Instagram Account ID. We recommend that you get that ID through a Business Manager setup. But you can also use Facebook Pages. You have two options:

Page-Connected Instagram Accounts

In this implementation, your business needs to have a Business Account on Instagram —see Set Up a Business Account on Instagram. Your account needs to have a profile image and cannot be a Private Account.

Once you have your Instagram account, you should connect it to your Facebook Page —see How do I connect my Facebook Page and Instagram account?. Then, anyone with an advertiser role on this Page can run ads for the account.

Get Account ID

Once you connect an Instagram account to a Page, you can see the connection at the Page Settings UI, but you cannot see the Instagram account ID.

To get the Instagram account ID, call the Page Instagram Accounts API:

curl -G \
-d "access_token=<ACCESS_TOKEN>"\
-d "fields=id,username,profile_pic" \
"https://graph.facebook.com/<API_VERSION>/<PAGE_ID>/instagram_accounts"

The result contains one Instagram account object, including fields like id, username, and profile_pic. Save this id to use in your ads.

Create Ads

You can use any ad accounts, either owned by an individual or by a business, as far as you have access, to create ads for page-connected Instagram accounts. You have the following limitations:

  • You need to have at least an advertiser role on the related Page. You do not need permission on the Instagram account.
  • When you provide ad creative, you should provide an instagram_actor_id and a page_id. If instagram_actor_id is the Instagram account id of a page-connected Instagram account, you must use the page's ID as page_id. You cannot use a page-connected account with another page in ad creative.

A page can have only one page-connected Instagram account, as well as only one Page-backed Instagram account.

Page-backed Instagram Account

You typically create Instagram accounts to run ads with these accounts, post or comment with that profile, and build your community organically. Some advertisers do not want to create and maintain Instagram accounts for simplicity, or they may want to deliver ads and organic content by different Instagram accounts.

In this case, you can use Page-backed Instagram accounts (PBIA). You can create these accounts with the API and use them to create ads on Instagram. This approach functions as if you are running ads for a Facebook Page, however we create a "shadow" Instagram account to run those ads.

Create PBIA

To create a Page-backed Instagram account with a Facebook Page, you need to have at least an ADVERTISER role on this page. MANAGER or CONTENT_CREATOR also work.

Additionally, your Page should not have a previously set PBIA, as each page can only have one PBIA. If you already have a PBIA, use the existing one. Anyone with access to the page can also access the PBIA. Check whether a specific page has a PBIA before you create a new one.

To create a PBIA, send a POST request to:

curl \
-F "access_token=<ACCESS_TOKEN>"\
"https://graph.facebook.com/<API_VERSION>/<PAGE_ID>/page_backed_instagram_accounts"

This returns an Instagram account ID on success. If a page already has a PBIA, the call returns an error. Save that ID to run your ads.

Read PBIA

To see if a Facebook Page has a PBIA, send a GET request:

curl -G \
-d "access_token=<ACCESS_TOKEN>"\
-d "fields=username,profile_pic" \
"https://graph.facebook.com/<API_VERSION>/<PAGE_ID>/page_backed_instagram_accounts"

This returns an Instagram account object, as described in Business Manager setup, if there is one. The object includes an id that can be used to run Instagram Ads.

If there is no PBIA already setup, the API returns an empty response.

Use PBIA in Ad Creative

Once a PBIA is created, you can use its ID as the instagram_actor_id in your ad creative, as you do with other types of Instagram accounts.

You do not need to assign ad accounts to the PBIA. When you provide ad creative using a PBIA, you can use any ad accounts that you have access to, and you need to have at least the ADVERTISER role on the Page backing this PBIA.

The page_id of your ad creative must be for page associated with this PBIA.

When you use an ad account not owned by a business via Business Manager, if a page has a page-connected Instagram account, you cannot use its PBIA to create ads. You must use that page-connected Instagram account. When you create ads for an ad account owned by a business, this restriction does not apply.

This Instagram account has the same name and profile picture as the related page. If someone changes the page name or profile picture, we automatically update the "shadow" Instagram account.

You cannot login to this Instagram account to manage posts. To see or manage “comments” and “likes” of your ad posts, you can:

  • Get the instagram_permalink_url from your ad creative, then view the ad post. You cannot add post or comment with this PBIA profile.
  • Use Ads Manager to see comments and delete comments of the ad post.
  • Use Instagram Ads Post Moderation API to get comments and delete comments of the ad post. You cannot add post or comment with this API.

Comparison

Requirements Business Manager Setup Page's Instagram Account Page-Backed Instagram Account

Advertiser needs to have an IG account

Yes

Yes

No

Advertiser needs to have Business Manager set up

Yes

No

No

Require some manual steps on Facebook interfaces

Yes, to claim an IG account to BM.

Yes, to claim an IG account to Page.

No

Can add post (media)

Yes, with App

Yes, with App

No

Can comment as the Instagram profile

Yes, with App or Marketing APIs

Yes, with App or Marketing APIs

No

Can read or delete comments for ad posts (media) using APIs

Yes

Yes

Yes

Can run ads with an ad account owned by a user

No

Yes

Yes

Can run ads with an ad account owned by a business

Yes

Yes

Yes

Connection Objects

Once you create an Instagram account, you cannot use Connection Objects to view these accounts. You should use {business_id}/{assets} endpoints over connectionobjects.

The act_adaccount_id/connectionobjects endpoint includes user-based and ad account-based objects, and may be confusing. For Instagram, use the following endpoints:

  • {business_id}/instagram_accounts
  • act_{adaccount_id}/instagram_accounts
  • {page id}/instagram_accounts