Нашли это решение в посте на Facebook
= Срочные изменения: реклама событий, реклама ссылок, не связанная с действительной страницей =
Недавно мы объявили об инициативе сделать рекламу в Facebook
Платформа более прозрачна для пользователей Facebook. Подробнее об этом читайте в
Чтобы поддержать эту инициативу, мы не поддерживаем рекламу событий и рекламу ссылок
которые не связаны с действительной страницей из Marketing API.
Это критическое изменение влияет на все поддерживаемые версии API, включая
предстоящая версия Marketing API v2.11, v2.10 и v2.9, которые
доступно, но не рекомендуется. Это серьезное изменение займет
эффект недели 6 ноября 2017 года.
В результате этого критического изменения вы больше не сможете
создавать или редактировать объявления о событиях и ссылки, которые не связаны с
действительная страница. Запросы на это вернут ошибку:
ErrorCode :: ADPRO2__AD_MUST_HAVE_PAGE (1885833).
Неудачные опции
Следующие варианты рекламы, используемые вместе, завершатся неудачно:
=== Объявления о событиях ===
- Цель: 'EVENT_RESPONSES'
- Творческие поля: 'body, object_id'
=== Рекламные ссылки ===
- Цель: 'LINK_CLICKS'
- Творческие поля: 'title', 'body', 'object_url', содержащий 'image_file' или 'image_hash'
Вы по-прежнему можете создавать рекламу событий и рекламу ссылок, если вы предоставляете действительные
'actor_id' в рекламном объявлении 'object_story_id' или
Поля 'object_story_spec'.
Допустимые параметры
Эти опции, используемые вместе, действительны:
=== Объявления о событиях ===
- Цель: 'EVENT_RESPONSES'
- Творческие поля: 'object_story_id' или 'object_story_spec'
=== Рекламные ссылки ===
- Цель: 'LINK_CLICKS'
- Творческие поля: 'object_story_id' или 'object_story_spec'
Ссылка от: https://www.facebook.com/marketingdevelopers/posts/=breaking-change:-event-ads-link/1469189583195436/
EDIT ----
В конце концов, я заработал, это была комбинация проблем. Основная проблема заключалась в том, что рекламное объявление было настроено так, как было запрещено, документы в Facebook не соответствуют тому, что вам разрешено делать. Так что это мой рабочий adcreative в 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,
]);