Funciones de empresa a empresa

A partir del 8 de junio de 2021, el acceso a estos extremos es limitado. Las aplicaciones que no tengan acceso recibirán un error.

Solicitar acceso a los activos

Una cuenta de Business Manager puede solicitar acceso a una cuenta publicitaria o a una página propiedad de otra cuenta de Business Manager. Es necesario especificar las tareas que se quieren asignar en la solicitud.

Para asignar una empresa a una página, es necesario un identificador de la página como el que se muestra a continuación:

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

Para solicitar el acceso de tipo AGENCY, debes incluir permitted_tasks en la solicitud. Solo puedes enviar solicitudes de acceso a los activos de otra cuenta de Business Manager que tengas intención de aprobar. Además, debe conocer tu empresa con anterioridad.

Por ejemplo, una empresa que necesite acceso a adaccount_id y necesite poder asignar ['ADVERTISE', 'ANALYZE'] a sus empleados deberá realizar la llamada POST siguiente:

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>"

De manera similar a lo que sucede en el caso de una página, si quieres asignar tareas de tipo ['ADVERTISE', 'ANALYZE'] a una página de la que no se es propietario:

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>" 

Estas llamadas envían una notificación a los administradores correspondientes de la cuenta publicitaria o la página en la que se solicita que se acepte la solicitud de acceso. Los administradores correspondientes pueden ver la notificación en el Administrador de anuncios o el Administrador de páginas. También pueden aceptar la solicitud en la interfaz de usuario. Si quieres ver las solicitudes pendientes con la API, realiza una solicitud GET y especifica PENDING para el campo access_status.

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

La respuesta:

"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"
 },

Conceder acceso a los activos a otra cuenta de Business Manager

Esto también se conoce como añadir una agencia a un objeto.

Puedes aceptar una solicitud de acceso de otra cuenta de Business Manager a un objeto de tu propiedad, así como conceder acceso a un objeto de tu propiedad a otra cuenta de Business Manager. Para ello, especifica la empresa y la lista de tareas a las que quieres conceder acceso.

Si el identificador de acceso que se utiliza para realizar la llamada a la API pertenece a un usuario o un usuario del sistema que tiene acceso al activo solicitado mediante una empresa, el acceso a dicho activo solo se puede conceder si la empresa es la propietaria (OWNER) del activo. No se puede conceder acceso a activos para los que solo se es agencia (AGENCY).

Por ejemplo, para conceder acceso a una cuenta publicitaria usando las tareas [ADVERTISE,ANALYZE], utiliza esta solicitud 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>"

Para conceder a una empresa acceso a la página con [ADVERTISE], [MODERATE] y [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>"

Para conceder acceso a una cuenta publicitaria, a veces es necesaria la revisión de otro administrador empresarial como medida de seguridad. Para aprobar la revisión, dirígete a https://business.facebook.com/settings/requests/admin_reviews. En este caso, la respuesta tendrá un campo adicional para indicar que se requiere una revisión.

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

Los administradores de las páginas también pueden aceptar solicitudes de acceso de agencias en la pestaña Manage Admin Roles en la Configuración de la página de facebook.com.

Eliminar el acceso a los activos

Esto también se conoce como eliminar una agencia de una empresa. Para eliminar el acceso de una cuenta de Business Manager a tu cuenta publicitaria:

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

De manera similar, para eliminar el acceso de una empresa a tu página:

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

Ver los accesos de agencias

Para ver todas las empresas que tienen acceso a la cuenta publicitaria con una llamada GET:

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

Para ver todas las empresas que tienen acceso a la página:

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

Para ver todas las empresas que tienen acceso a los activos comerciales:

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

Ver los accesos de clientes

Para ver todas las empresas que te han concedido acceso a una o más cuentas publicitarias o páginas, utiliza esta llamada 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"
    }
  ]
}