企業間(B2B)機能

2021年6月8日現在、これらのエンドポイントへのアクセスは制限されています。アクセス権がないアプリではエラーになります。

アセットへのアクセス権をリクエストする

ビジネスマネージャは、別のビジネスマネージャが所有する広告アカウントやページへのアクセス権をリクエストできます。割り当てたいタスクをリクエストで指定する必要があります。

ビジネスをページに割り当てるには、次のようなページトークンが必要です。

curl 
  -F "business=<BUSINESS_ID>"
  -F "permitted_tasks=['MODERATE', 'ADVERTISE', 'ANALYZE']"   
  "https://graph.facebook.com/<API_VERSION>/<PAGE_ID>/agencies?access_token=<ACCESS_TOKEN>"

AGENCYアクセス権をリクエストするには、リクエストでpermitted_tasksを指定する必要があります。アセットに対するリクエストは、承認予定で、ビジネスについて既に知っているビジネスマネージャにしか送信できません。

例えば、adaccount_idへのアクセス権を必要とし、社員を['ADVERTISE', 'ANALYZE']として割り当てることができなければならないビジネスは、次のPOST呼び出しを発行します。

curl \
  -F "adaccount_id=act_<AD_ACCOUNT_ID>" \
  -F "permitted_tasks=['ADVERTISE','ANALYZE']" \
  "https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/client_ad_accounts?access_token=<ACCESS_TOKEN>"

ページの場合と同様に、誰にも所有されていないページの['ADVERTISE', 'ANALYZE']タスクを割り当てる場合は、次の呼び出しを発行します。

curl \
  -F "page_id=<PAGE_ID>" \
  -F "permitted_tasks=['ADVERTISE','ANALYZE']" \
  "https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/client_pages?access_token=<ACCESS_TOKEN>" 

上記の呼び出しにより、広告アカウントまたはページのそれぞれの管理者に、アクセスリクエストを承認するよう求める通知が送られます。それぞれの管理者は、広告マネージャまたはページマネージャで通知を確認できます。ユーザーインターフェイスでリクエストを承認することもできます。APIで未処理のリクエストを確認するには、GETリクエストを発行して、access_statusフィールドのPENDINGをチェックします。

curl "https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/clients?access_token=<ACCESS_TOKEN>"

応答:

"data": [
 {
    "name": "Random Page", 
    "page_permissions": [
    {
    "id": "1900952844321", 
    "permitted_tasks": [
        'MANAGE',
        'CREATE_CONTENT', 
        'MODERATE',  
        'ADVERTISE', 
        'ANALYZE',
    ], 
    "access_status": "CLIENT_RESPONSE_PENDING", 
    "access_requested_time": "2014-01-07T23:26:09+0000", 
    "access_updated_time": "2014-01-07T23:26:09+0000"
    }
    ], 
    "id": "190137931178903"
 },

アセットへのアクセス権を別のビジネスマネージャに付与する

この作業は、自分のオブジェクトに広告会社を追加することと同じです。

自分が所有しているオブジェクトに対する別のビジネスマネージャからのアクセスリクエストを承認する、または、自分が所有しているオブジェクトのいずれかに対するアクセス権を別のビジネスマネージャに付与するには、ビジネスとそれらがアクセス権を持つ必要があるタスクのリストを指定する必要があります。

API呼び出しの実行に使用されるアクセストークンが、ビジネス経由でリクエストされたアセットへのアクセス権を持つユーザーまたはシステムユーザーに属する場合、そのアセットへのアクセス権を付与できるのは、このビジネスがアセットのOWNERである場合のみです。AGENCYの場合、アセットへのアクセス権を付与できません。

例えば、[ADVERTISE,ANALYZE]タスクを使用して広告アカウントへのアクセス権を誰かに付与するには、次のPOSTリクエストを使用します。

curl \
  -F "business=<BUSINESS_ID>" \
  -F "permitted_tasks=['ADVERTISE', 'ANALYZE']" \
  "https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/agencies?access_token=<ACCESS_TOKEN>"

[ADVERTISE][MODERATE][ANALYZE]を使用してページへのアクセス権をビジネスに付与するには、次のリクエストを使用します。

curl \
  -F "business=<BUSINESS_ID>" \
  -F "permitted_tasks=['MODERATE', 'ADVERTISE', 'ANALYZE']" \
  "https://graph.facebook.com/<API_VERSION>/<PAGE_ID>/agencies?access_token=<ACCESS_TOKEN>"

広告アカウントへのアクセス権を付与する場合、セキュリティ対策として別のビジネス管理者にレビューしてもらうことが必要になることがあります。https://business.facebook.com/settings/requests/admin_reviewsに移動して、このレビューを承認することができます。この場合、応答にレビューが必要であることを示す追加のフィールドが記載されています。

{
  "success": true,
  "requires_admin_approval": true
}

ページ管理者は、facebook.comのページ設定の[Manage Admin Roles]タブで広告会社アクセス権のリクエストを承認することもできます。

アセットへのアクセス権を削除する

この作業は、ビジネスから広告会社を削除することと同じです。広告アカウントからビジネスマネージャのアクセス権を削除するには、次を実行します。

curl \
  -X DELETE \
  -F "business=<BUSINESS_ID>" \
  "https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/agencies?access_token=<ACCESS_TOKEN>"

同様に、ページからビジネスのアクセス権を削除するには、次を実行します。

curl \
  -X DELETE \
  -F "business=<BUSINESS_ID>" \
  "https://graph.facebook.com/<API_VERSION>/<PAGE_ID>/agencies?access_token=<ACCESS_TOKEN>"

広告会社アクセス権を確認する

広告アカウントへのアクセス権を持つすべてのビジネスを確認するには、次のGET呼び出しを使用します。

curl "https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/agencies?access_token=<ACCESS_TOKEN>"

ページへのアクセス権を持つすべてのビジネスを確認するには、次を使用します。

curl "https://graph.facebook.com/<API_VERSION>/<PAGE_ID>/agencies?access_token=<ACCESS_TOKEN>"

ビジネスアセットへのアクセス権を持つすべてのビジネスを確認するには、次を使用します。

curl "https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/agencies?access_token=<ACCESS_TOKEN>"

クライアントアクセス権を確認する

1つ以上の広告アカウントやページへのアクセス権をあなたに付与したすべてのビジネスを確認するには、次のGET呼び出しを使用します。

curl "https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/clients?access_token=<ACCESS_TOKEN>"

Managing Your Relationship as an Ad Agency Acting on Behalf of Another Business

These APIs allow you to manage the relationship between your Ad Accounts and the businesses for which you are acting on behalf of (OBO). Creating these relationships allows you to access custom audiences for the business and use of the audience overlap tool.

View OBO Request Details

To view the details of an OBO request, make this GET request:

curl -G \
  -F "access_token=<ACCESS_TOKEN>" \
  "https://graph.facebook.com/<API_VERSION>/<OBO_REQUEST_ID>?fields=id,receiving_business,requesting_business,status,business_owned_object"

The response contains the details of the OBO request and looks like this:

{
  "id": "1111111111",
  "receiving_business": {
    "id": "2222222222",
    "name": "Example Business Name"
  },
  "requesting_business": {
    "id": "3333333333",
    "name": "Example Business Name"
  },
  "status": "IN_PROGRESS",
  "business_owned_object": "1111111111"
}

Delete OBO Request

To cancel a pending request to act OBO another business, make this DELETE request:

curl \
  -X DELETE \
  -F "access_token=<ACCESS_TOKEN>" \
  "https://graph.facebook.com/<API_VERSION>/<OBO_REQUEST_ID>"

The response, indicating success or failure, looks like this:

{
  "success": "true" 
}

View the Status of OBO Requests for an Ad Account

To view the status of requests to act OBO another business for an Ad account, make this GET request:

curl -G \
  -F "access_token=<ACCESS_TOKEN>" \
  "https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/onbehalf_requests?
    fields=id,status,receiving_business,requesting_business&status=<STATUS>"

The status parameter in the request must be APPROVE, DECLINE, or IN_PROGRESS.

The response contains an array with the OBO request objects for an Ad account matching the requested status.

Example response:

{
  "data": [
    {
      "id": "1111111111",
      "status": "IN_PROGRESS",
      "receiving_business": {
        "id": "2222222222",
        "name": "Example Business Name"
      },
      "requesting_business": {
        "id": "3333333333",
        "name": "Example Business Name"
      }
    }
  ]
}

View OBO Requests Received From Other Businesses

To view requests of IN_PROGRESS OBO requests sent to your business, make this GET request:

curl -G \
  -F "access_token=<ACCESS_TOKEN>" \
  "https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/received_inprogress_onbehalf_requests"

The response contains the IN_PROGRESS OBO request IDs and looks like this:

{
  "data": [
    {
      "id": "1111111111"
    },
    {
      "id": "2222222222"
    },
    {
      "id": "3333333333"
    }
  ]
}

View Pending OBO Requests Sent by Your Business

To view OBO requests that were sent by your business that are still in the IN_PROGRESS state, make this GET request:

curl -G \
  -F "access_token=<ACCESS_TOKEN>" \
  "https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/sent_inprogress_onbehalf_requests"

The response contains the IN_PROGRESS OBO request IDs and looks like this:

{
  "data": [
    {
      "id": "1111111111"
    },
    {
      "id": "2222222222"
    },
    {
      "id": "3333333333"
    }
  ]
}