A Extensão do Facebook para Empresas (FBE) permite que seus usuários carreguem facilmente ativos de criativo na família de apps da Meta por meio da conexão com um Gerenciador de Negócios novo ou existente. Ao usar o Gerenciador de Negócios retornado após a conclusão desse fluxo, os parceiros podem carregar ativos de criativo no Facebook em nome dos clientes:
Este documento descreve os principais pré-requisitos para o fluxo de criativos da FBE, juntamente com as etapas necessárias para concluir o processo. Consulte o guia da Extensão do Facebook para Empresas para obter detalhes específicos sobre integrações gerais.
Exemplo - Fluxo de integração da superfície do parceiro (Login de Empresa)
Inscreva-se como desenvolvedor do Facebook para acessar nossas ferramentas para desenvolvedores e criar apps do Facebook.
Caso ainda não tenha feito isso, crie um app da Meta.
Seu app da Meta precisa pertencer a um Gerenciador de Negócios que seja uma empresa verificada. Saiba mais sobre como verificar sua empresa.
Crie um app de teste e use-o para executar todos os novos desenvolvimentos e testes. Não se esqueça de atribuir um Gerenciador de Negócios diferente para seu app de teste.
Permissões privadas/recurso:
manage_business_extension
: acesso à Extensão do Facebook para Empresas. Quando esse recurso for disponibilizado para o app, você poderá encontrar o Painel do Desenvolvedor da FBE em Produtos.
Business_creative_asset_management
: acesso às APIs de gerenciamento de ativos relacionados a criativos. Depois que esse recurso for disponibilizado, você poderá ter acesso às seguintes permissões:
business_creative_insights
: acesso aos insights sobre os ativos de criativo da empresa.
business_creative_management
: permite que seu app crie, edite e compartilhe novas pastas, além de carregar ativos nelas dentro do contexto da sua própria entidade comercial.
business_creative_insights_share
(em desenvolvimento): permissão opcional usada no fluxo de compartilhamento de pasta. Se for concedida pelo usuário, seu app poderá compartilhar a pasta de criativos com outras empresas e permitir que elas visualizem insights sobre os ativos.
Gere um token de acesso do parceiro:
Para gerar um token de acesso de usuário administrador do sistema no Gerenciador de Negócios, siga estas instruções.
Verifique se as permissões business_creative_insights
, business_creative_management
e business_management
foram selecionadas na etapa "escopos disponíveis" para esse token.
Este botão é usado para enviar um ativo à Biblioteca de Mídia do Facebook diretamente do seu app. Durante esse processo, seu app precisará permitir que o usuário selecione ou crie uma pasta para a qual enviar o ativo.
Recomendamos duas abordagens para isso:
1. (No mínimo) O usuário só tem a opção de escolher ou criar uma pasta de nível superior. Sob o contexto de negócios selecionado, consulte todas as pastas de nível superior às quais o usuário tem acesso. Peça que o usuário escolha uma pasta de nível superior existente ou crie uma nova. Os usuários podem especificar o nome da pasta ou usar o nome de pasta padrão <YourBusinessName>_<UserBusinessName>_<UserName>
. Carregue os ativos na pasta selecionada ou na pasta nova de nível superior. Essa abordagem exige um trabalho mínimo com a interface do usuário, e os detalhes da API podem ser encontrados na Etapa 3 abaixo.
2. (Opcional) O usuário tem controle total de navegação sobre a pasta e subpastas. Sob o contexto de negócios selecionado, consulte todas as pastas de nível superior às quais o usuário tem acesso e solicite ao usuário que escolha uma pasta de nível superior ou crie uma nova. Para uma nova pasta, solicite ao usuário que dê um nome ou use o nome padrão <YourBusinessName>_<UserBusinessName>_<UserName>
. Sob a pasta de nível superior selecionada, o usuário tem a opção de navegar até uma subpasta existente, criar uma nova subpasta ou carregar ativos. Com essa opção, será necessário implementar a navegação na pasta na sua interface do usuário. As instruções sobre integração da API estão na Etapa 3 e na Etapa 4 abaixo.
As etapas específicas necessárias para implementar esse fluxo são as seguintes:
Quando o usuário envia pela primeira vez um ativo de criativo ao Facebook, é necessário solicitar à Extensão do Facebook para Empresas que solicite ao usuário para autenticar e conceder ao app as permissões e o acesso necessários aos ativos, na forma de tokens de acesso, para acessar os dados no Facebook. Confira Extensão do Facebook para Empresas: primeiros passos para implementar a Extensão do Facebook para Empresas no seu app. Siga o guia Apps de Negócios para permitir que seu app apareça neles.
Para solicitar o fluxo de Criativo:
business_creative_management
e business_creative_insights
.
business_creative_insights_share
(opcional).
VIEW_INSIGHTS
.Com o token de acesso de usuário que essa solicitação retorna, é possível fazer chamadas de API em nome do usuário.
Campo | Tipo | Descrição |
---|---|---|
| setup | Obrigatório A configuração do Facebook do vendedor, como o identificador único ( |
| business_config | Obrigatório Objeto de configuração que a Extensão do Facebook para Empresas usa para configurar o fluxo de trabalho da Extensão do Facebook para Empresas. Consulte detalhes do objeto |
| booliano | Obrigatório Defina esse valor como |
Use esse objeto para definir as configurações para a presença do usuário final no Facebook
Campo | Descrição |
---|---|
| Obrigatório. |
| Obrigatório. |
| Obrigatório. |
| Obrigatório. |
| Obrigatório.
|
| Opcional. |
Use este objeto para definir as configurações da empresa para um usuário final. Isso inclui CTAs, cartão de serviços e muito mais. Cada campo inclui um "tipo" vinculado às respectivas tabelas abaixo.
Campo | Descrição |
---|---|
| Obrigatório. |
Use esse objeto para configurar os nomes das empresas.
Campo | Descrição |
---|---|
| Obrigatório. |
Assim que o usuário concluir o fluxo de integração da FBE acima, você receberá a identificação do Gerenciador de Negócios do usuário e o token de acesso da API de instalação da FBE ou da notificação do Webhook.
Os usuários podem carregar os ativos na pasta de nível superior ou criar subpastas sob a pasta de nível superior.
Primeiro, verifique a quais pastas de nível superior o usuário tem permissão para a tarefa CREATE_CONTENT
. Para isso, faça uma solicitação para o ponto de extremidade <business_id>/creative_folders
(em desenvolvimento).
Solicitação
curl -X GET \ -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<user_business_id>/creative_folders?filtering=[{field:"permitted_tasks", operator: "EQUAL", value:"create_content"}]
Resposta
{ "id": "<folder_id>" }
Solicite ao usuário que escolha uma pasta de nível superior existente ou crie uma no contexto do Gerenciador de Negócios. No caso de uma nova pasta de nível superior, é possível solicitar que o usuário dê um nome para ela ou use <YourBusinessName>_<UserBusinessName>_<UserName>
por padrão. Se o usuário compartilhar a pasta com você, ela ficará visível para sua empresa e para a empresa do usuário na biblioteca de ativos do Facebook.
Nota: o nome da empresa do usuário pode ser obtido por meio de uma solicitação GET
ao ponto de extremidade {business-id}
em que {business-id}
é a identificação da empresa do usuário.
Solicitação
curl -X GET \ -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>
Resposta
{ "id": {business-id} "name": {user-business-name} }
Solicitação
curl -X POST \ -F "name={folder_name}" -F "description={description}" -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/creative_folders
Resposta
{ "id": {top-level-folder-id} }
Se você quiser dar suporte ao fluxo completo de navegação da pasta, solicite ao usuário que escolha uma subpasta existente ou crie uma nova sob a pasta de nível superior com as seguintes solicitações:
business_creative_management
.Solicitação
curl -X GET \ -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<parent_folder_id>/subfolders?fields=name
Resposta
{ "data": [ { "name": "<subfolder_name>", "id": "<subfolder_id>" } ] }
business_creative_management
.Solicitação
curl -X POST \ -F "name={folder_name}" -F "description={description}" -F "parent_folder_id={parent-folder-id}" -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/creative_folders
Resposta
{ "id": {sub-folder-id} }
A pasta e a subpasta podem ser excluídas por meio de uma solicitação DELETE
ao ponto de extremidade <folder_id>
ou <subfolder_id>
.
Carregue os ativos de criativo do usuário na subpasta.
business_creative_management
.Solicitação
curl -X POST \ -F 'bytes={image-content-in-bytes-format}' \ -F 'name={image-name}' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={subfolder-id}' \ https://graph.facebook.com/{version}/{business-id}/images
Resposta
{ "images":{ "{image-name}":{ "id":"{business-creative-image-id}", "hash":"{hash}", "url":"{image-url}" } } }
Carregue um vídeo em uma única solicitação se ele tiver poucos megabytes, ou carregue-o em partes (veja a seção a seguir). Faça a chamada de API para o carregamento do vídeo em graph-video.facebook.com
em vez de graph.facebook.com
.
Exemplo — Envie um POST
para {business-id}/video
e inclua o nome do seu vídeo, a origem e a identificação da subpasta.
Solicitação
curl -X POST \ -F 'name={video-name}' \ -F 'source='@{video-path}'' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={subfolder-id}' \ https://graph-video.facebook.com/{version}/{business-id}/videos
Resposta
{ "success": true, "business_video_id": "<business_video_id>" }
Para os vídeos maiores, envie uma solicitação de início, uma ou várias solicitações de transferência e uma solicitação de conclusão.
Para fazer uma solicitação de início e criar uma sessão de carregamento de vídeo, envie uma solicitação POST
para /{business-id}/videos
, defina o campo upload_phase
para iniciar e especifique file_size
em bytes
Solicitação
curl -X POST \ -F 'title={video-name}' \ -F 'creative_folder_id={subfolder-id}' \ -F 'access_token={user-access-token}' \ -F 'upload_phase=start' \ -F 'file_size={video_file_size_in_bytes}' \ https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos
Resposta
{ "upload_session_id": "{session-id}", "video_id": "{video-id}", "start_offset": "0", "end_offset": "52428800" }
Para carregar [0, 52428800] do seu vídeo, divida o arquivo em partes de acordo com os deslocamentos de início e de conclusão, depois envie essas partes com solicitações de transferência. Enviamos a você novos deslocamentos para cada parte. Use esses novos deslocamentos para carregar cada uma.
Exemplo: enviar sua primeira parte
Solicitação
curl -X POST \ -F 'title={video-name}' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={subfolder-id}' \ -F 'upload_phase=transfer' \ -F 'upload_session_id={session-id}' \ -F 'start_offset=0' \ -F 'video_file_chunk=@{binary-chunk-filename}' \ https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos
Resposta
Em caso de sucesso, responderemos com os deslocamentos para sua próxima parte:
{ "start_offset": "52428800", //Start byte position of the next file chunk "end_offset": "104857601" //End byte position of the next file chunk }
Recorte e carregue a segunda parte com o intervalo [52428800, 104857601] do seu arquivo e faça o envio:
Solicitação
curl -X POST \ -F 'title={video-name}' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={subfolder-id}' \ -F 'upload_phase=transfer' \ -F 'start_offset=52428801' \ -F 'upload_session_id={your-upload-sesson-id}' \ -F 'video_file_chunk={binary-chunk-filename}' \ https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos
Resposta
Envie todas as partes adicionais até que start_offset
seja igual a end_offset
:
{ "start_offset": "152043520", "end_offset": "152043520" }
A resposta acima significa que você carregou todo o arquivo. Agora você precisa publicar esse vídeo e fechar a sessão de carregamento.
Solicitação
curl -X POST \ -F 'title={video-name}' \ -F 'access_token={user-access-token}' \ -F 'creative_folder_id={business-creative-folder-id}' \ -F 'upload_phase=finish' \ -F 'upload_session_id={session-id}' \ https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos
Se você receber erros durante o carregamento, poderá tentar carregar a parte novamente. Normalmente, os erros ocorrem por problemas de resposta. Tente carregar novamente a parte que falhou. Para saber mais sobre os erros, consulte:
Seu app deverá informar ao usuário de que o carregamento teve sucesso e apresentar um deep link para esse criativo por trás de uma chamada para ação "Visualizar criativo em minha biblioteca de ativos do Facebook". O deep link da pasta ou ativo é:
https://business.facebook.com/asset_library/business_creatives/?object_id={asset_id or folder id}
(em desenvolvimento)
Esse link direciona o usuário até a página de seleção de empresa se o usuário tiver vários Gerenciadores de Negócios. Para remover a ambiguidade de empresas, forneça um contexto de negócios na URL, da seguinte maneira:
https://business.facebook.com/asset_library/business_creatives/?object_id={asset_id or folder id}&business_id={client_business_id}
A URL do deep link também pode ser obtida por meio de uma solicitação GET
no ponto de extremidade:
curl -X GET \ /<folder_id or asset_id> ?fields=['media_library_url'] &access_token=<user_access_token>
O link permite que o usuário acesse a pasta ou o ativo diretamente na biblioteca de ativos do Facebook.
Você pode solicitar que a pasta de nível superior seja compartilhada com você se quiser gerenciá-la ou visualizar insights para os ativos. Envie uma solicitação POST
para: {business-creative-folder-id}/agencies
e atribua permitted_tasks
a CREATE_CONTENT
.
Nota: também é possível atribuir a tarefa permitida VIEW_INSIGHTS
se o usuário conceder business_creative_insights_share
ao seu app (em desenvolvimento).
business_creative_management
.Solicitação
curl -X POST \ -F 'permitted_tasks=['CREATE_CONTENT','VIEW_INSIGHTS']' \ -F 'business={partner-business-id} ' \ -F 'access_token={user-access-token}' https://graph.facebook.com/<API_VERSION>/<BUSINESS_CREATIVE_FOLDER_ID>/agencies
A resposta pode ser de dois tipos, dependendo da função do usuário na organização da empresa:
A API estabelecerá um acordo de parceria entre a empresa do usuário e a empresa do cliente.
Resposta
Se houver um acordo de parceria em vigor entre a empresa do usuário e sua empresa (a empresa do usuário compartilhou uma pasta com você, e você aceitou a solicitação de compartilhamento antes):
{ "success": true }
Se você ainda não tiver aceitado qualquer solicitação de compartilhamento da empresa do usuário:
{ "success": true, "share_status": "In Progress" }
Nesse cenário, sua empresa deverá aceitar a solicitação de compartilhamento antes de poder acessar todos os recursos habilitados pelo compartilhamento (visualizar, criar e assim por diante).
Para listar todos os acordos de parceria com aprovação pendente, envie uma solicitação para {business-id}/received_sharing_agreements
usando seu token de acesso de parceiro e defina request_status
como IN_PROGRESS
. Você precisa das permissões business_creative_management
e business_management
para essa ação.
Listar todos os acordos de parceria
Solicitação
curl -i -X GET https://graph.facebook.com/<API_VERSION>/<PARTNER_BUSINESS_ID>/received_sharing_agreements ?request_status=IN_PROGRESS &access_token={partner-access-token}"
Você pode aceitar uma solicitação de compartilhamento enviando um POST
para business_sharing_agreement_request_id
e definindo request_status
como APPROVE
. Só é necessário fazer isso na primeira vez que alguém compartilha uma pasta com sua empresa. Você precisa da permissão business_management
para essa ação:
Aceitar acordos de parceria
Solicitação
curl -X POST \ -F 'request_status=APPROVE' \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_SHARING_AGREEMENT_REQUEST_ID>
Resposta
{ "success": true }
Como alternativa, é possível aprovar as solicitações de compartilhamento pendentes na interface do usuário do Gerenciador de Negócios. Para ver as solicitações pendentes no Gerenciador de Negócios, acesse Configurações > Solicitações > Solicitações recebidas e veja mais informações sobre a solicitação.
A API disparará um fluxo de trabalho de Notificação para enviar uma notificação por email aos administradores da empresa para aprovação da solicitação.
Resposta
{ "success": true, "share_status": "Pending" }
Em resposta a esse estado, seu app deve informar ao usuário que:
Para listar todos os acordos pendentes iniciados pela empresa do usuário, envie uma solicitação para {business-id}/attempted_sharing_agreements
e defina request_status
como IN_PROGRESS
, e requesting_business_id
como a identificação do Gerenciador de Negócios do usuário. Você precisa das permissões business_creative_management
e business_management
para essa ação.
Listar todos os acordos pendentes de compartilhamento de pasta
Solicitação
curl -i -X GET \ https://graph.facebook.com/<API_VERSION>/<PARTNER_BUSINESS_ID>/attempted_sharing_agreements ?request_status=IN_PROGRESS &requesting_business_id=<user_business_id> &access_token={partner-access-token}
Listar todos os acordos pendentes de compartilhamento de pasta com a identificação da solicitação
Como alternativa, se você tiver a identificação da solicitação, poderá obter diretamente o status enviando uma solicitação para {request_id}
.
business_creative_management
.Solicitação
curl -i -X GET \ https://graph.facebook.com/<API_VERSION>/<REQUEST_ID>?fields=status
Quando um administrador da empresa aprovar a solicitação, o status mudará para APPROVE
e a pasta será compartilhada de volta com seu Gerenciador de Negócios, caso a empresa do usuário e a sua tenham estabelecido um relacionamento de acordo de compartilhamento (a empresa do usuário compartilhou uma pasta com você, e você aceitou a solicitação de compartilhamento). Caso contrário, share_status
será atualizado para IN_PROGRESS
. É possível listar todos os acordos de parceria com o status IN_PROGRESS
e aceitá-los via API ou na interface do usuário do Gerenciador de Negócios.
Quando o usuário compartilha uma pasta com você com a permissão para a tarefa VIEW_INSIGHTS
, é possível ler os insights de imagens e vídeos da empresa sob a pasta compartilhada fazendo uma solicitação GET
no ponto de extremidade <business_asset_id>/insights
.
business_creative_management
e business_creative_insights
.Solicitação
curl -i -X GET \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ASSET_ID>/insights ?breakdowns=["age","gender"] &fields=impressions,inline_link_clicks,age,gender,date_start, &time_range={"since":"2019-08-01","until":"2019-08-22"} &access_token={partner-access-token}"
Resposta
{ "data": [ { "impressions": 99, "inline_link_clicks": 1, "age": "18-24", "gender": "female", "date_start": "2019-08-01", "date_end": "2019-08-22" }, { "impressions": 198, "inline_link_clicks": 2, "age": "18-24", "gender": "male", "date_start": "2019-08-01", "date_end": "2019-08-22" }, { "impressions": 464, "inline_link_clicks": 2, "age": "25-34", "gender": "female", "date_start": "2019-08-01", "date_end": "2019-08-22" }, ] }
O detalhamento pode ser por:
gender
age
country
publisher_platform
platform_position
device_platform
ad_id
objective
optimization_goal
time_range
(exige uma data no formato "AAAA-MM-DD", que significa a partir da meia-noite daquele dia.)Para os parceiros de serviço gerenciado, é possível gerenciar a pasta de nível superior com um token de acesso de parceiro se a pasta tiver sido compartilhada com você com as permissões apropriadas a tarefas que lhe concedam:
CREATE_CONTENT
na pasta, que permite que seu app crie subpastas e carregue imagens e vídeos na pasta.VIEW_INSIGHTS
, que seu app pode usar para ver insights sobre o desempenho de qualquer ativo de criativo armazenado na pasta.Chame o ponto de extremidade <business_id>/creative_folders
para obter todas as pastas principais compartilhadas com você sob a empresa do usuário.
business_creative_management
.Obter pastas da empresa do usuário
Solicitação
curl -X GET \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<partner_business_id>/creative_folders?filtering=[{field:"owner_business_id", operator:"EQUAL", value:"user_business_id"}]
Resposta
{ "data": [ { "id": "<shared_folder_id>" } ] }
Obter suas tarefas permitidas na pasta
Solicitação
curl -X GET \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<folder_id>/agencies
Resposta
{ "data": [ { "id": "<partner_business_id>", "name": "<partner business name>", "permitted_tasks": [ "VIEW_INSIGHTS", "VIEW_CONTENT", "CREATE_CONTENT", "MANAGE_CONTENT", "MANAGE_PERMISSIONS"] } ], }
CREATE_CONTENT
é necessária para carregar imagens e vídeos em uma pasta compartilhadaVIEW_INSIGHTS
é necessária para consultar insights de criativo de imagens ou vídeos sob uma pasta compartilhadaCom a permissão para a tarefa CREATE_CONTENT
na pasta principal, é possível criar uma subpasta em uma pasta compartilhada.
business_creative_management
.Criar subpasta
Solicitação
curl -X POST \ -F "name={folder_name}" -F "description={description}" -F "parent_folder_id={parent-folder-id}" -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/creative_folders
Resposta
{ "id": {subfolder-id} }
Execute as mesmas etapas listadas na Etapa 5. Carregar imagens e vídeos em subpasta com token de parceiro.
Quando seu app carregar uma imagem ou vídeo na biblioteca de ativos do Facebook, a API do Facebook retornará uma identificação para esse ativo.
Para facilitar a continuidade, seu app precisará rastrear a identificação do ativo com base no projeto/espaço de trabalho que produziu essa imagem/vídeo no seu app.
Isso permitirá uma "edição" otimizada e "atualizará" os casos de uso, os quais terão suporte no futuro, por exemplo:
media_library_url
do ativo de imagem/vídeo carregadoSolicitação
curl -X GET \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<asset_id>?fields=media_library_url
&action=CREATE_AD
ou &action=CREATE_POST
ao final do deep link da etapa acima.Exemplo:
https://business.facebook.com/asset_library/business_creatives/?object_id=2838437832929622&action=CREATE_AD