Расширение Facebook Business (FBE) позволяет пользователям легко загружать объекты креативов в приложения семейства Meta, устанавливая связь с новым или существующим аккаунтом Business Manager. С помощью аккаунта Business Manager, возвращенного после выполнения этой процедуры, партнеры могут загружать объекты креативов в Facebook от имени своих клиентов.
В этом документе приведены основные предварительные требования для подключения расширения Facebook Business для креативов, а также соответствующие действия. Подробные сведения об интеграциях в целом см. в руководстве по расширению Facebook Business.
Пример: процесс подключения с платформы партнера (вход от имени компании)
Зарегистрируйтесь в качестве разработчика Facebook и создавайте собственные приложения для Facebook, используя наши инструменты для разработчиков.
Создайте приложение Meta, если вы ещё не сделали этого.
Ваше приложение Meta должно принадлежать аккаунту Business Manager, который является подтвержденной компанией. Узнайте, как подтвердить свою компанию.
Создайте тестовое приложение и используйте его для разработки и тестирования новых возможностей. Назначьте тестовому приложению другой аккаунт Business Manager.
Частные разрешения и возможности:
manage_business_extension
— доступ к расширению Facebook Business. Когда ваше приложение получит доступ к этой возможности, вы увидите панель разработчика расширения Facebook Business в разделе Продукты.
Business_creative_asset_management
— доступ к API управления объектами, связанными с креативами. Эта возможность предоставляет доступ к следующим разрешениям:
business_creative_insights
— доступ к статистике креативов компании;
business_creative_management
— возможность для приложения создавать и изменять папки, предоставлять доступ к ним, а также загружать в них объекты в контексте вашей компании;
business_creative_insights_share
(на этапе разработки) — необязательное разрешение, используемое при предоставлении доступа к папкам (если пользователь дал это разрешение, приложение может предоставить доступ к папке креативов другим компаниям и позволить им просматривать статистику по объектам креативов).
Сгенерируйте маркер доступа партнера:
сгенерируйте маркер доступа системного пользователя-администратора в своем аккаунте Business Manager, следуя этим инструкциям;
убедитесь, что для этого маркера на шаге настройки доступных областей выбраны разрешения business_creative_insights
, business_creative_management
и business_management
.
Эта кнопка позволяет отправить объект из приложения в библиотеку медиафайлов Facebook пользователя. В ходе этой процедуры приложение должно будет разрешить пользователю выбрать или создать папку, в которую можно будет отправить объект.
Для этого рекомендуем использовать два описанных ниже подхода.
1. Обязательно: у пользователя есть только возможность выбрать или создать папку верхнего уровня. В контексте выбранной компании получите список всех папок верхнего уровня, к которым у пользователя есть доступ. Попросите пользователя выбрать существующую папку верхнего уровня или создать новую. Пользователь может указать имя папки или использовать папку по умолчанию (<YourBusinessName>_<UserBusinessName>_<UserName>
). Загрузите объекты в выбранную или новую папку верхнего уровня. Этот подход требует минимальной переработки пользовательского интерфейса, а сведения об API приведены в описании шага 3 ниже.
2. Необязательно: у пользователя есть полный доступ для навигации по папкам и вложенным папкам. В контексте выбранной компании получите список всех папок верхнего уровня, к которым у пользователя есть доступ, и попросите его выбрать существующую папку верхнего уровня или создать новую. Для новой папки попросите пользователя указать имя или использовать вариант по умолчанию (<YourBusinessName>_<UserBusinessName>_<UserName>
). В выбранной папке верхнего уровня пользователь может перейти в существующую или создать новую вложенную папку либо загрузить объекты. Для этого варианта в пользовательском интерфейсе понадобится реализовать навигацию по папкам. Инструкции по интеграции API можно найти в описании шага 3 и шага 4 ниже.
Вот последовательность действий, необходимых для реализации этого процесса:
Когда пользователь в первый раз отправляет объект креатива на Facebook, расширение Facebook Business должно предложить ему пройти аутентификацию и предоставить вашему приложению необходимые разрешения и доступ (в виде маркеров доступа) к данным объектов на Facebook. Сведения о том, как интегрировать расширение Facebook Business в приложение, см. в статье Расширение Facebook Business: начало работы. Чтобы ваше приложение стало доступно на платформе бизнес-приложений, воспользуйтесь соответствующим руководством.
Чтобы инициировать процесс добавления креатива, выполните следующие действия:
business_creative_management
и business_creative_insights
:
business_creative_insights_share
(необязательно):
VIEW_INSIGHTS
.С помощью маркера доступа, возвращенного в этом интерфейсе, вы можете совершать вызовы API от имени соответствующего пользователя.
Поле | Тип | Описание |
---|---|---|
| setup | Обязательный параметр. Настройки Facebook для продавца, например его уникальный идентификатор ( |
| business_config | Обязательный параметр. Объект конфигурации, который используется расширением Facebook Business для настройки соответствующего рабочего процесса. См. подробные сведения об объекте |
| Логическое значение | Обязательный параметр. Установите значение |
Этот объект используется для настройки параметров присутствия конечного пользователя на Facebook.
Поле | Описание |
---|---|
| Обязательный параметр. |
| Обязательный параметр. |
| Обязательный параметр. |
| Обязательный параметр. |
| Обязательный параметр.
|
| Необязательный параметр. |
Используйте этот объект для настройки параметров компании конечного пользователя. К ним относятся призывы к действию, карточка предлагаемых услуг и т. п. Каждое поле содержит свойство типа, связанное с соответствующими таблицами ниже.
Поле | Описание |
---|---|
| Обязательный параметр. |
Этот объект позволяет настроить название компании.
Поле | Описание |
---|---|
| Обязательный параметр. |
После того как пользователь завершит описанный выше процесс подключения расширения Facebook Business, вы получите ID аккаунта Business Manager и маркер доступа этого пользователя через API FBE Installation или уведомление Webhooks.
Пользователи могут загружать объекты в папку верхнего уровня или создавать в ней вложенные папки.
Сначала с помощью запроса к конечной точке <business_id>/creative_folders
(она находится в процессе разработки) проверьте, для каких папок верхнего уровня у пользователя есть разрешение на выполнение задачи CREATE_CONTENT
.
Запрос
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"}]
Ответ
{ "id": "<folder_id>" }
Попросите пользователя выбрать существующую или создать новую папку верхнего уровня в контексте его аккаунта Business Manager. Для новой папки верхнего уровня попросите пользователя указать имя или использовать вариант по умолчанию (<YourBusinessName>_<UserBusinessName>_<UserName>
). Если пользователь предоставляет вам доступ к этой папке, она будет видна в библиотеке объектов Facebook как для его компании, так и для вашей.
Примечание. Получить имя компании пользователя можно с помощью запроса GET
к конечной точке {business-id}
, где {business-id}
— ID компании пользователя.
Запрос
curl -X GET \ -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>
Ответ
{ "id": {business-id} "name": {user-business-name} }
Запрос
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
Ответ
{ "id": {top-level-folder-id} }
Если вы хотите поддерживать полный процесс навигации по папкам, попросите пользователя выбрать существующую или создать новую вложенную папку в папке верхнего уровня. Для этого воспользуйтесь следующими запросами:
business_creative_management
.Запрос
curl -X GET \ -F 'access_token={user-access-token}' \ https://graph.facebook.com/<API_VERSION>/<parent_folder_id>/subfolders?fields=name
Ответ
{ "data": [ { "name": "<subfolder_name>", "id": "<subfolder_id>" } ] }
business_creative_management
.Запрос
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
Ответ
{ "id": {sub-folder-id} }
Чтобы удалить папку и вложенную папку, отправьте запрос DELETE
к конечной точке <folder_id>
или <subfolder_id>
.
Загрузите объекты креативов пользователя во вложенную папку.
business_creative_management
.Запрос
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
Ответ
{ "images":{ "{image-name}":{ "id":"{business-creative-image-id}", "hash":"{hash}", "url":"{image-url}" } } }
Видео можно загрузить одним запросом, если его размер не превышает нескольких мегабайт, или разбить на фрагменты (см. следующий раздел ниже). Для загрузки видео выполняйте запросы API к graph-video.facebook.com
вместо graph.facebook.com
.
Пример: отправка запроса POST
к {business-id}/video
с указанием имени видео, источника и ID вложенной папки.
Запрос
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
Ответ
{ "success": true, "business_video_id": "<business_video_id>" }
Загрузка больших видео требует отправки начального запроса, нескольких запросов на передачу и завершающего запроса.
Чтобы создать сеанс загрузки видео, отправьте запрос POST
к /{business-id}/videos
, установите для поля upload_phase
значение start и укажите значение file_size
в байтах.
Запрос
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
Ответ
{ "upload_session_id": "{session-id}", "video_id": "{video-id}", "start_offset": "0", "end_offset": "52428800" }
Чтобы загрузить байты [0, 52428800] видеофайла, разбейте его на фрагменты согласно смещениям начала и окончания, а затем отправьте их в запросах на передачу. Для каждого фрагмента мы передаем вам новые смещения, которые следует использовать при загрузке.
Пример: отправка первого фрагмента
Запрос
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
Ответ
В случае успеха мы отправляем в ответе смещения для следующего фрагмента:
{ "start_offset": "52428800", //Start byte position of the next file chunk "end_offset": "104857601" //End byte position of the next file chunk }
Вырежьте из файла и загрузите второй фрагмент видео со смещениями [52428800, 104857601]:
Запрос
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
Ответ
Отправляйте фрагменты по очереди до тех пор, пока start_offset
не будет равно end_offset
:
{ "start_offset": "152043520", "end_offset": "152043520" }
Ответ выше означает, что файл загружен целиком. Теперь нужно опубликовать видео и закрыть сеанс загрузки.
Запрос
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
Если в ходе загрузки возникнет ошибка, можно попробовать загрузить проблемный фрагмент повторно. Как правило, ошибки возникают на этапе получения ответа. Просто повторите загрузку того фрагмента, который не удалось отправить. Дополнительную информацию об ошибках см. в следующих разделах:
Приложение должно сообщить пользователю о том, что загрузка успешно завершена, и предложить глубокую ссылку на креатив с призывом к действию "Просмотрите креатив в библиотеке объектов Facebook". Глубокая ссылка на папку или объект имеет следующий вид:
https://business.facebook.com/asset_library/business_creatives/?object_id={asset_id or folder id}
(в процессе разработки)
Если у пользователя несколько аккаунтов Business Manager, эта ссылка направляет его на страницу выбора компании. Чтобы исключить неоднозначность, связанную с выбором компании, вы можете указать контекст компании в URL следующим образом:
https://business.facebook.com/asset_library/business_creatives/?object_id={asset_id or folder id}&business_id={client_business_id}
Получить URL глубокой ссылки также можно с помощью запроса GET
к конечной точке:
curl -X GET \ /<folder_id or asset_id> ?fields=['media_library_url'] &access_token=<user_access_token>
Ссылка позволяет пользователю перейти непосредственно к соответствующей папке или объекту в библиотеке объектов Facebook.
Вы можете запросить доступ к папке верхнего уровня, если планируете управлять ею либо просматривать статистику объектов. Для этого отправьте запрос POST
к {business-creative-folder-id}/agencies
и установите для параметра permitted_tasks
значение CREATE_CONTENT
.
Примечание. Вы также можете присвоить значение разрешенной задачи VIEW_INSIGHTS
, если пользователь предоставляет вашему приложению разрешение business_creative_insights_share
(в процессе разработки).
business_creative_management
.Запрос
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
Ответ может быть одного из двух типов в зависимости от роли пользователя в организационной структуре компании.
API устанавливает соглашение о партнерстве между компаниями пользователя и клиента.
Ответ
Если между компанией пользователя и вашей компанией есть соглашение о партнерстве (компания пользователя предоставила вам доступ к папке, а вы ранее приняли запрос на предоставление доступа):
{ "success": true }
Если вы ещё не принимали запрос на предоставление доступа от компании пользователя:
{ "success": true, "share_status": "In Progress" }
В этом сценарии ваша компания должна принять запрос на предоставление доступа, прежде чем она сможет использовать все возможности, предусмотренные таким доступом (просмотр, создание и т. п.).
Чтобы составить список всех соглашений о партнерстве, ожидающих утверждения, отправьте запрос к {business-id}/received_sharing_agreements
со своим маркером доступа партнера и установите для параметра request_status
значение IN_PROGRESS
. Для выполнения этого действия вам понадобятся разрешения business_creative_management
и business_management
.
Получение списка всех соглашений о партнерстве
Запрос
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}"
Чтобы принять запрос на предоставление доступа, отправьте запрос POST
к business_sharing_agreement_request_id
и установите для параметра request_status
значение APPROVE
. Это потребуется сделать только в первый раз, когда кто-либо предоставит вашей компании доступ к папке. Для выполнения этого действия вам понадобится разрешение business_management
.
Принятие соглашений о партнерстве
Запрос
curl -X POST \ -F 'request_status=APPROVE' \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<BUSINESS_SHARING_AGREEMENT_REQUEST_ID>
Ответ
{ "success": true }
Одобрять запросы на предоставление доступа также можно в пользовательском интерфейсе Business Manager. Чтобы увидеть ожидающие рассмотрения запросы в Business Manager, выберите раздел Настройки > Запросы > Полученные запросы (там также можно посмотреть дополнительные сведения о запросе).
API инициирует рабочий процесс уведомления для отправки администраторам компании электронного письма с просьбой одобрить запрос.
Ответ
{ "success": true, "share_status": "Pending" }
В ответ на это состояние приложение должно проинформировать пользователя о том, что:
Чтобы получить список всех ожидающих рассмотрения соглашений, инициированных в компании пользователя, отправьте запрос к {business-id}/attempted_sharing_agreements
и установите для параметра request_status
значение IN_PROGRESS
, а для requesting_business_id
задайте ID Business Manager пользователя. Для выполнения этого действия вам понадобятся разрешения business_creative_management
и business_management
.
Получение списка всех ожидающих рассмотрения соглашений о доступе к папке
Запрос
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}
Получение списка всех ожидающих рассмотрения соглашений о доступе к папке с использованием ID запроса
Вы также можете получить статус запроса по его ID, отправив соответствующий запрос к {request_id}
.
business_creative_management
.Запрос
curl -i -X GET \ https://graph.facebook.com/<API_VERSION>/<REQUEST_ID>?fields=status
Когда администратор компании одобряет запрос, его статус меняется на APPROVE
и вашему аккаунту Business Manager предоставляется доступ к папке, если между компанией пользователя и вашей компанией установлено соглашение о доступе (компания пользователя предоставила вам доступ к папке, а вы ранее приняли запрос на предоставление доступа). В противном случае значение share_status
меняется на IN_PROGRESS
. Вы можете получить список всех соглашений о партнерстве со статусом IN_PROGRESS
и принять их через API либо в пользовательском интерфейсе Business Manager.
После того как пользователь предоставил вам доступ к папке с разрешением на выполнение задачи VIEW_INSIGHTS
, вы можете просматривать статистику по изображениям и видео компании в этой общей папке с помощью запроса GET
к конечной точке <business_asset_id>/insights
.
business_creative_management
и business_creative_insights
.Запрос
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}"
Ответ
{ "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" }, ] }
Данные можно разбивать по следующим признакам:
gender
age
country
publisher_platform
platform_position
device_platform
ad_id
objective
optimization_goal
time_range
(дата должна быть указана в формате "ГГГГ-ММ-ДД", что соответствует периоду с полуночи соответствующего дня).Для управляемых партнеров по обслуживанию: вы можете использовать маркер доступа партнера для управления папкой верхнего уровня, если доступ к ней был предоставлен вам с такими разрешениями на выполнение задач:
CREATE_CONTENT
для папки, которое позволяет вашему приложению создавать вложенные папки и загружать изображения и видео;VIEW_INSIGHTS
, которое позволяет вашему приложению просматривать статистику производительности для любых объектов креативов, хранящихся в папке.Чтобы получить список всех родительских папок, доступ к которым предоставлен вам компанией пользователя, выполните вызов к конечной точке <business_id>/creative_folders
.
business_creative_management
.Получение списка папок для компании пользователя
Запрос
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"}]
Ответ
{ "data": [ { "id": "<shared_folder_id>" } ] }
Получение списка разрешенных задач для определенной папки
Запрос
curl -X GET \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<folder_id>/agencies
Ответ
{ "data": [ { "id": "<partner_business_id>", "name": "<partner business name>", "permitted_tasks": [ "VIEW_INSIGHTS", "VIEW_CONTENT", "CREATE_CONTENT", "MANAGE_CONTENT", "MANAGE_PERMISSIONS"] } ], }
CREATE_CONTENT
.VIEW_INSIGHTS
.При наличии разрешения на выполнение задачи CREATE_CONTENT
в родительской папке вы можете создавать вложенные папки в папках, к которым вам предоставлен доступ.
business_creative_management
.Создание вложенной папки
Запрос
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
Ответ
{ "id": {subfolder-id} }
Выполните действия из шага 5 "Загрузка изображений и видео во вложенную папку с маркером партнера".
Когда ваше приложение загружает изображение или видео в библиотеку объектов Facebook, API Facebook возвращает ID этого объекта.
Для эффективной непрерывной работы с ним приложение должно отслеживать ID объекта в проекте или рабочей области, которые создали соответствующее изображение или видео в вашем приложении.
Это упростит выполнение таких задач, как изменение и обновление, поддержка которых будет добавлена позже. Вот некоторые примеры:
media_library_url
объекта загруженного изображения или видео.Запрос
curl -X GET \ -F 'access_token={partner-access-token}' \ https://graph.facebook.com/<API_VERSION>/<asset_id>?fields=media_library_url
&action=CREATE_AD
или &action=CREATE_POST
в конце глубокой ссылки на предыдущем шаге.Пример
https://business.facebook.com/asset_library/business_creatives/?object_id=2838437832929622&action=CREATE_AD