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:
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.
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 with page access token:
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.
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:
advertiser
role on the related Page. You do not need permission on the Instagram account.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.
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.
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 the existing PBIA ID. Save that ID to run your ads.
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.
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:
instagram_permalink_url
from your ad creative, then view the ad post. You cannot add post or comment with this PBIA profile.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 |
Once you create an Instagram account, you cannot use Connection Objects to view these accounts. You should use assets under business instead of connection objects
.
For Instagram accounts, use the following endpoints:
{business_id}/instagram_accounts
act_{adaccount_id}/instagram_accounts
{page_id}/instagram_accounts