При попытке создать рекламный файл на facebook с помощью api 3.1 я получал эту ошибку:
[2018-09-10 10:45:47] local.INFO: array (
'message' => 'Invalid parameter',
'type' => 'OAuthException',
'code' => 100,
'error_subcode' => 1885833,
'is_transient' => false,
'error_user_title' => 'Ad Must Be Associated With a Facebook Page',
'error_user_msg' => 'Ads and ad creatives must be associated with a Facebook Page. Try connecting your ad or ad creative to a Page and resubmit your ad.',
'fbtrace_id' => 'FUMJg2Q2z1e',
)
1 ответ
Нашел это решение в сообщении на странице Facebook
= Критическое изменение: реклама мероприятий, реклама со ссылками, не связанная с действующей страницей =
Недавно мы объявили об инициативе сделать платформу рекламы Facebook более прозрачной для пользователей Facebook. Подробнее об этом читайте в
Чтобы поддержать эту инициативу, мы отказываемся от рекламы событий и рекламы со ссылками, которые не связаны с действующей страницей из Marketing API.
Это критическое изменение затрагивает все поддерживаемые версии API, включая предстоящую версию Marketing API v2.11, v2.10 и v2.9, которые доступны, но будут исключены. Это критическое изменение вступит в силу 6 ноября 2017 г.
В результате этого критического изменения вы больше не сможете создавать или редактировать объявления о мероприятиях и объявления со ссылками, которые не связаны с действующей страницей. Запросы на это вернут ошибку: «Код ошибки :: ADPRO2__AD_MUST_HAVE_PAGE (1885833)».
Неудачные варианты
Следующие параметры рекламы, используемые вместе, не будут работать: === Объявления о событиях === - Цель: 'EVENT_RESPONSES' - Поля объявлений: 'body, object_id' === Связать объявления === - Цель: 'LINK_CLICKS' - Поля объявлений: 'title', 'body', 'object_url', содержащий 'image_file' или 'image_hash'
Вы по-прежнему можете создавать рекламные объявления о событиях и рекламные объявления со связями, если вы укажете действительный идентификатор исполнителя в полях object_story_id или object_story_spec.
Допустимые варианты
Эти параметры, используемые вместе, действительны: === Объявления о событиях === - Цель: 'EVENT_RESPONSES' - Поля объявлений: 'object_story_id' или 'object_story_spec' === Связать объявления === - Цель: 'LINK_CLICKS' - Поля объявлений: 'object_story_id' или 'object_story_spec'
РЕДАКТИРОВАТЬ----
В конце концов, у меня все заработало, это была комбинация проблем. Основная проблема заключалась в том, что рекламный файл был настроен недопустимым образом, документы facebook не соответствуют тому, что вам разрешено. Итак, это мой рабочий рекламный файл на php
$data = file_get_contents($imageUrl);
$data = [
'bytes' => base64_encode($data),
'access_token' => $this->accessToken,
];
$response = $this->client->request('POST',
"act_{$accountId}/adimages", [
'form_params' => $data,
]);
$response = $this->readStream($response)->images->bytes;
$link = (object)[
'link' => $linkUrl,
];
$signUp = (object)[
'type' => "SIGN_UP",
'value' => $link,
];
$linkData = (object)[
'call_to_action' => $signUp,
'link' => $objectUrl,
'image_hash' => $response->hash,
'message' => $body,
];
$objectStory = (object)[
'link_data' => $linkData,
'page_id' => $pageId,
];
$data = (object)[
'name' => 'system-generated-' . $accountId,
'title' => $title,
'object_story_spec' => $objectStory,
'access_token' => $this->accessToken,
];
$response = $this->client->request('POST',
"act_{$accountId}/adcreatives", [
'form_params' => $data,
]);
И вот как я создаю настоящую рекламу
$creative = (object)[
'creative_id' => $creativeId,
];
$data = (object)[
'name' => $name,
'creative' => $creative,
'adset_id' => $adSetId,
'status' => "PAUSED",
'access_token' => $this->accessToken,
];
$response = $this->client->request('POST',
"act_{$accountId}/ads", [
'form_params' => $data,
]);
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.