Before you start running ads on Instagram, you need an Instagram account ID. There are multiple methods to set this up, but we recommend that you use the Business Manager process described in this guide.
The Business Manager offers a single interface for you to manage your Instagram presence. In addition to running ads, you can use it to add non-advertising posts, reply to comments as your Instagram profile, and so on.
Use this guide to set up your Instagram accounts on Business Manager:
In this implementation, your business needs to have a Business Account on Instagram. See Set Up a Business Account on Instagram.
To claim an Instagram account for a business, you need the username and password of the account. See Add an Instagram Account to Your Business Manager.
If an advertiser owns an Instagram account and a third party wants to run ads on its behalf, assign it as an partner. From the Business Manager, click on Assign Partners and enter the agency's business ID.
See Advertise on Behalf of Another Business for more information.
Once you have access to an Instagram Account in Business Manager, you can assign one or more ad accounts to it. From the Business Manager, select your Instagram account, click on Add Assets, and select the ad accounts you want to associate.
You can also do this API by sending a POST
request with business
and account_id
. You must be at least an ADMIN
of the business.
curl \ -F "access_token=<ACCESS_TOKEN>"\ -F "business=<BUSINESS_ID>"\ -F "account_id=<AD_ACCOUNT_ID>"\ "https://graph.facebook.com/<API_VERSION>/<INSTAGRAM_ACCOUNT_ID>/authorized_adaccounts"
The ad account needs to:
For example, if your business gets access to an ad account and an Instagram account from a client, you can assign them together within your business. But you cannot assign an ad account belonging to one client's business to an Instagram account belonging to another business, even if your business have admin access to both of them.
To disconnect an ad account from an Instagram account, send a DELETE
request. You need the same permissions as above:
curl -X DELETE -G \ -d "access_token=<ACCESS_TOKEN>"\ -d "business=<BUSINESS_ID>"\ -F "account_id=<AD_ACCOUNT_ID>"\ "https://graph.facebook.com/<API_VERSION>/<INSTAGRAM_ACCOUNT_ID>/authorized_adaccounts"
You can see which ad accounts for a given business are associated with an Instagram account. You must provide the business
parameter and must be at least an EMPLOYEE
of this business. We only return ad accounts of the given business and those accounts associated with the given Instagram account. If this Instagram account is associated with ad accounts of other businesses, you won't get them in the response. You can send a GET
request:
curl -G \ -d "access_token=<ACCESS_TOKEN>"\ -d "business=<BUSINESS_ID>"\ "https://graph.facebook.com/<API_VERSION>/<INSTAGRAM_ACCOUNT_ID>/authorized_adaccounts"
After assigning an ad account, all users of the business who can run ads for that account can run ads on the associated Instagram account.
To check all the Instagram accounts that are owned by a business or that can be accessed by a business, make a GET
request:
curl -G \ -d "access_token=<ACCESS_TOKEN>"\ -d "fields=username,profile_pic" \ "https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/instagram_accounts"
The access token is associated with an app. In order to call this API, you need:
STANDARD
access level for the app, orTo check all the Instagram accounts associated with an ad account, make a GET
call to:
curl -G \ -d "access_token=<ACCESS_TOKEN>"\ -d "fields=username,profile_pic" \ "https://graph.facebook.com/<API_VERSION>/act_<ADACCOUNT_ID>/instagram_accounts"
The response of the two previous API calls contains an array of Instagram accounts, each may contain the following fields:
Field Name | Description |
---|---|
type: numeric string | The Instagram account id. Required for creating ads |
type: string | The Instagram user name |
type: string | A URL pointing to the profile picture of this Instagram account |
For example:
{ "data": [ { "username": "jaspersmarket", "profile_pic": "https://igcdn-photos-a-a.akamaihd.net/hphotos-ak-xaf1/t51.2885-19/11311930_826942667396992_856534255_a.jpg", "id": "1023317097692584" } ], "paging": { "cursors": { "before": "MTM4OTY1MDkwNzkyMTE4NQ==", "after": "MTAyMzMxNzA5NzY5MjU4NA==" } } }
You cannot grant permissions to someone directly from an Instagram account. Instead, you should grant someone permissions to the Page or business which is connected to the Instagram account. Anyone in your business who has permission to run ads using an ad account linked to an Instagram account, can also run ads for that Instagram account.
To create ad units, you can use the access token of a user or system user who can access the associated ad account.
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