Расширение Facebook Business: подключение креатива

Расширение Facebook Business (FBE) позволяет пользователям легко загружать объекты креативов в приложения семейства Meta, устанавливая связь с новым или существующим аккаунтом Business Manager. С помощью аккаунта Business Manager, возвращенного после выполнения этой процедуры, партнеры могут загружать объекты креативов в Facebook от имени своих клиентов.

В этом документе приведены основные предварительные требования для подключения расширения Facebook Business для креативов, а также соответствующие действия. Подробные сведения об интеграциях в целом см. в руководстве по расширению Facebook Business.

Пример: процесс подключения с платформы партнера (вход от имени компании)

Перед началом работы

  1. Зарегистрируйтесь в качестве разработчика Facebook и создавайте собственные приложения для Facebook, используя наши инструменты для разработчиков.

  2. Создайте приложение Meta, если вы ещё не сделали этого.

  3. Ваше приложение Meta должно принадлежать аккаунту Business Manager, который является подтвержденной компанией. Узнайте, как подтвердить свою компанию.

  4. Создайте тестовое приложение и используйте его для разработки и тестирования новых возможностей. Назначьте тестовому приложению другой аккаунт Business Manager.

  5. Частные разрешения и возможности:

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

Эта кнопка позволяет отправить объект из приложения в библиотеку медиафайлов Facebook пользователя. В ходе этой процедуры приложение должно будет разрешить пользователю выбрать или создать папку, в которую можно будет отправить объект.

Для этого рекомендуем использовать два описанных ниже подхода.

1. Обязательно: у пользователя есть только возможность выбрать или создать папку верхнего уровня. В контексте выбранной компании получите список всех папок верхнего уровня, к которым у пользователя есть доступ. Попросите пользователя выбрать существующую папку верхнего уровня или создать новую. Пользователь может указать имя папки или использовать папку по умолчанию (<YourBusinessName>_<UserBusinessName>_<UserName>). Загрузите объекты в выбранную или новую папку верхнего уровня. Этот подход требует минимальной переработки пользовательского интерфейса, а сведения об API приведены в описании шага 3 ниже.

2. Необязательно: у пользователя есть полный доступ для навигации по папкам и вложенным папкам. В контексте выбранной компании получите список всех папок верхнего уровня, к которым у пользователя есть доступ, и попросите его выбрать существующую папку верхнего уровня или создать новую. Для новой папки попросите пользователя указать имя или использовать вариант по умолчанию (<YourBusinessName>_<UserBusinessName>_<UserName>). В выбранной папке верхнего уровня пользователь может перейти в существующую или создать новую вложенную папку либо загрузить объекты. Для этого варианта в пользовательском интерфейсе понадобится реализовать навигацию по папкам. Инструкции по интеграции API можно найти в описании шага 3 и шага 4 ниже.

Вот последовательность действий, необходимых для реализации этого процесса:

  1. Реализация расширения Facebook Business
  2. Получение контекста компании
  3. Выбор или создание папки верхнего уровня
  4. Выбор или создание вложенной папки
  5. Загрузка изображений и видео
  6. Запрос на предоставление вам доступа к папке (необязательно)
  7. Просмотр статистики по изображениям и видео (необязательно)

1. Реализация расширения Facebook Business

Когда пользователь в первый раз отправляет объект креатива на Facebook, расширение Facebook Business должно предложить ему пройти аутентификацию и предоставить вашему приложению необходимые разрешения и доступ (в виде маркеров доступа) к данным объектов на Facebook. Сведения о том, как интегрировать расширение Facebook Business в приложение, см. в статье Расширение Facebook Business: начало работы. Чтобы ваше приложение стало доступно на платформе бизнес-приложений, воспользуйтесь соответствующим руководством.

Чтобы инициировать процесс добавления креатива, выполните следующие действия:

  • передайте параметры channel: CREATIVE и business_vertical: CREATIVE в объекте setup;
  • воспользуйтесь разрешениями business_creative_management и business_creative_insights:
    • они необходимы для запроса ID компаний, создания папок и загрузки в них объектов креативов;
  • воспользуйтесь разрешением business_creative_insights_share (необязательно):
    • с его помощью пользователь может предоставить вам доступ к папке с разрешением на выполнение задачи VIEW_INSIGHTS.

С помощью маркера доступа, возвращенного в этом интерфейсе, вы можете совершать вызовы API от имени соответствующего пользователя.

Необходимые настройки

extras

ПолеТипОписание

setup

setup

Обязательный параметр.

Настройки Facebook для продавца, например его уникальный идентификатор (external_business_id) или валюта каталога (currency). См. подробные сведения об объекте setup.

business_config

business_config

Обязательный параметр.

Объект конфигурации, который используется расширением Facebook Business для настройки соответствующего рабочего процесса. См. подробные сведения об объекте business_config.

repeat

Логическое значение

Обязательный параметр.

Установите значение false.

Настройка

Этот объект используется для настройки параметров присутствия конечного пользователя на Facebook.

ПолеОписание

external_business_id
Тип: строка

Обязательный параметр.
Уникальный ID, представляющий компанию вашего клиента. Мы используем это значение в качестве уникального идентификатора. Например, если компания называется Fubar, значение external_business_id для нее может равняться fubar-123.

timezone
Тип: строка

Обязательный параметр.
Часовой пояс, в котором расположена компания. См. возможные значения часовых поясов.

currency
Тип: строка

Обязательный параметр.
Трехбуквенный ISO-код валюты по умолчанию для каталога продуктов компании. См. поддерживаемые коды валют.

business_vertical
Тип: перечисление

Обязательный параметр.
Отрасль, с которой связана компания.
Значения: CREATIVE.

channel
Тип: перечисление

Обязательный параметр.
Позволяет партнеру проявить намерение для пользователя в отношении функций, требующих дополнительных действий или ограничений. Значение: CREATIVE.

  • CREATIVE — позволяет пользователю создавать креативы на партнерских платформах и отправлять их в свой аккаунт Business Manager.

business_manager_id
Тип: строка

Необязательный параметр.
ID существующего аккаунта Business Manager пользователя, который партнер может ввести, чтобы предварительно выбрать этого пользователя в процессе настройки.

business_config

Используйте этот объект для настройки параметров компании конечного пользователя. К ним относятся призывы к действию, карточка предлагаемых услуг и т. п. Каждое поле содержит свойство типа, связанное с соответствующими таблицами ниже.

ПолеОписание

business
Тип: FBEBusinessPropertiesConfigData

Обязательный параметр.
Информация для компании конечного пользователя.

FBEBusinessPropertiesConfigData

Этот объект позволяет настроить название компании.

ПолеОписание

name
Тип: строка

Обязательный параметр.
Название компании.

2. Получение контекста компании

После того как пользователь завершит описанный выше процесс подключения расширения Facebook Business, вы получите ID аккаунта Business Manager и маркер доступа этого пользователя через API FBE Installation или уведомление Webhooks.

3. Выбор или создание папки верхнего уровня

Пользователи могут загружать объекты в папку верхнего уровня или создавать в ней вложенные папки.

Сначала с помощью запроса к конечной точке <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}
}

4. Выбор или создание вложенной папки

Если вы хотите поддерживать полный процесс навигации по папкам, попросите пользователя выбрать существующую или создать новую вложенную папку в папке верхнего уровня. Для этого воспользуйтесь следующими запросами:

Получение вложенной папки

  • Требуется разрешение 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>.

5. Загрузка изображений и видео во вложенную папку

Загрузите объекты креативов пользователя во вложенную папку.

  • Требуется разрешение 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='&#064;&#123;video-path&#125;'' \
    -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.

6. Запрос на предоставление вам доступа к папке (необязательно)

Вы можете запросить доступ к папке верхнего уровня, если планируете управлять ею либо просматривать статистику объектов. Для этого отправьте запрос 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

Ответ может быть одного из двух типов в зависимости от роли пользователя в организационной структуре компании.

1. Если маркер клиента представляет администратора компании

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, выберите раздел Настройки > Запросы > Полученные запросы (там также можно посмотреть дополнительные сведения о запросе).


2. Маркер клиента представляет сотрудника компании

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.

7. Просмотр статистики по изображениям и видео (необязательно)

После того как пользователь предоставил вам доступ к папке с разрешением на выполнение задачи 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, которое позволяет вашему приложению просматривать статистику производительности для любых объектов креативов, хранящихся в папке.

1. Проверка разрешений на доступ к родительской папке

Чтобы получить список всех родительских папок, доступ к которым предоставлен вам компанией пользователя, выполните вызов к конечной точке <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.

2. Создание вложенной папки в родительской папке

При наличии разрешения на выполнение задачи 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}
}

3. Загрузка изображений и видео во вложенную папку

Выполните действия из шага 5 "Загрузка изображений и видео во вложенную папку с маркером партнера".

Отслеживание ID объекта Facebook для изображения или видео

Когда ваше приложение загружает изображение или видео в библиотеку объектов Facebook, API Facebook возвращает ID этого объекта.

Для эффективной непрерывной работы с ним приложение должно отслеживать ID объекта в проекте или рабочей области, которые создали соответствующее изображение или видео в вашем приложении.

Это упростит выполнение таких задач, как изменение и обновление, поддержка которых будет добавлена позже. Вот некоторые примеры:

  • Пользователь приложения хочет продолжить редактирование объекта после его публикации на Facebook и использования в рекламе. Этому пользователю будет предложено воспользоваться упрощенным процессом обновления или выполнить сплит-тест, если приложение отправляет ID оригинального объекта при загрузке обновленной версии соответствующего изображения или видео.
  • Пользователь на панели статистики рекламы Facebook может отредактировать свой креатив, в том числе изображение или видео, в результате чего он будет направлен в приложение, которому будет передан ID объекта. Приложение сможет открыть проект, создавший соответствующий объект, и пользователь сможет продолжить работу с места, на котором остановился.

Предоставление URL глубокой ссылки на объект, создание рекламы и публикация

URL глубокой ссылки на объект

  • Запросите поле media_library_url объекта загруженного изображения или видео.

Запрос

curl -X GET \
    -F 'access_token={partner-access-token}' \
https://graph.facebook.com/<API_VERSION>/<asset_id>?fields=media_library_url

URL глубокой ссылки для создания рекламы или публикации Страницы

  • Добавьте &action=CREATE_AD или &action=CREATE_POST в конце глубокой ссылки на предыдущем шаге.

Пример

https://business.facebook.com/asset_library/business_creatives/?object_id=2838437832929622&action=CREATE_AD

Дальнейшие действия