У меня есть приложение facebook с утвержденными разрешениями ads_read
, manage_pages
ads_management
, business_management
и Ads Management Standard Access
.
Я могу создать рекламную кампанию, набор объявлений и загрузить актив в Facebook через Facebook Marketing API.
Но когда я пытаюсь создать объявление с запросом /adcreatives
, я получаю сообщение об ошибке:
(#3) Application does not have the capability to make this API call.
Пример запроса curl
:
curl -X POST \
'https://graph.facebook.com/v3.3/act_<account_id>/adcreatives?access_token=<access_token_here>' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Host: graph.facebook.com' \
-d 'call_to_action_type=USE_APP&actor_id=<page_id>&object_type=APPLICATION&status=active&name=hello&title=foo&page_id=<page_id>&id=act_<account id>&image_hash=fb1a69e0965076e791183ac82c9f7417'
Я пробовал делать запросы с токеном приложения, токеном страницы и токеном пользователя (что было разрешено в FB Business manager).
Я также пробовал с учетной записью песочницы и ее токеном
Каждая служба (приложение, страница facebook и пользователь) связана с бизнес-аккаунтом в бизнес-менеджере и имеет права администратора (максимально).
Я пытался отправить данные в теле с запросом JSON, я пытался отправить данные как x-www-form-urlencoded.
Я пробовал использовать простые http-запросы и пробовал с facebook-nodejs-бизнес-SDK
Но все равно безуспешно.
Итак, вопрос, каков правильный запрос на создание объявления AD и какие разрешения нужны моему приложению для выполнения такой задачи?
P.S. Я также задал несколько вопросов на форуме разработчиков Facebook и не получил решения. q1, д2, д3
Я считаю, что ваш ввод искажен (хотя возвращаемые ошибки из FB обычно никогда не указывают на это).
Основная проблема, которую я вижу, заключается в том, что информация о креативе не передается через параметр object_story_spec
. Через этот объект передается тип креатива, который вы создаете, вместе с необходимыми параметрами, которые в вашем случае будут photo_data
.
curl -X POST \
'https://graph.facebook.com/v3.3/act_<ACT_ID>/adcreatives?access_token=<TOKEN>' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Host: graph.facebook.com' \
-d 'link_url=<URL>&name=<CREATIVE_NAME>&object_type=PAGE&object_story_spec = {page_id:<PAGE_ID>,photo_data:{image_hash:<HASH>,caption:<CAPTION>}}'
Вам, вероятно, потребуется добавить или удалить параметры по мере необходимости, но приведенный выше запрос сработал для меня.
Что касается разрешений, вот что у меня было:
Некоторые дополнительные ссылки:
Креативное объявление
Спецификация истории объекта
Фотоданные
Facebook не позволяет просматривать креатив в пользовательском интерфейсе, если он не прикреплен к объявлению. Вам нужно будет передать этот идентификатор объявления в параметры при создании объявления.
Но если вы хотите предварительно просмотреть его не в менеджере объявлений, вы можете использовать конечную точку создания предварительного просмотра в API: Developers.facebook.com/docs/marketing-api/generatepreview/v3.3.
Большое спасибо. Я чувствую, что с вашей помощью приближаюсь к финишу. Не возражаете, если я задам еще один вопрос? Похоже, я успешно создал рекламный креатив и теперь пытаюсь загрузить рекламу. Поля: {name, campaign_id, adset_id, creative: {creative_id}, status}
. Проблема в том, что я получаю сообщение об ошибке > «URL-адрес хранилища объектов не соответствует рекламируемому объекту: убедитесь, что URL-адрес хранилища объектов, связанный с вашим рекламным объявлением, совпадает с URL-адресом хранилища объектов, установленным для продвигаемого объекта». ; Тем не менее, при создании набора объявлений и создании объявления я упоминаю один и тот же object_store_url.
Может быть, лучше задать отдельный вопрос, не зная, какие параметры вы передаете при создании объявления. Вы используете формат link_data или photo_data? Вы также должны проходить только один из object_story_spec
или object_url
.
Вот мой второй вопрос stackoverflow.com/questions/56446925/… Буду очень благодарен если поможете :)
Спасибо за ответ. Я последовал вашему совету, и теперь проблема в том, что я получаю идентификатор объявления от Facebook, но не могу найти его на странице Facebook или в Ads Manager. Знаете ли вы, где Facebook хранит рекламные креативы?