Неверный параметр креатива видеообъявления Facebook в API маркетинга Facebook

Я получаю ту же ошибку при создании рекламного объявления через API маркетинга в Facebook. Я следовал их указаниям, но не работает. Креативная ссылка на видеообъявление в Facebook

    $config = Config::get('facebook');
$data['account_id'] = 'act_'.$config['ad_account_id'];
$data['page_id'] = $config['page_id'];

// Init facebook
$api = Api::init($config['app_id'], $config['app_secret'], $config['access_token']);

// Create product catalog
$product_catalog = new ProductCatalog(null,  $config['business_id']);
$product_catalog->setData(array(
ProductCatalogFields::NAME => "Catalog",
));
$product_catalog->create();

$product_catalog_id = $product_catalog->id;

// Setup Feed
$product_feed = new ProductFeed(null, $product_catalog_id);
$product_feed->setData(array(
ProductFeedFields::NAME => 'Campaign Feed',
ProductFeedFields::SCHEDULE => array(
ProductFeedScheduleFields::INTERVAL => 'DAILY',
ProductFeedScheduleFields::URL => 'http://example.com/facebook/dpa_product_catalog_sample_feed.csv',
ProductFeedScheduleFields::HOUR => 22,
),
));
$product_feed = $product_feed->create();

// Create  Product Set
$product_set = new ProductSet(null,  $product_catalog_id);
$product_set->setData(array(
ProductFeedFields::NAME => 'All Product',
));
$product_set->create();

$data['product_set_id'] = $product_set->id;

$video = new Advideo(null, $data['account_id']);
$video->{AdVideoFields::SOURCE} = public_path().'/facebook/video-demo.mp4';
$video->create();

$video_data = new AdCreativeVideoData();
$video_data->setData(array(
AdCreativeVideoDataFields::IMAGE_URL => 'http://example.com/facebook/resize-image.jpg',
AdCreativeVideoDataFields::VIDEO_ID => $video->id,
AdCreativeVideoDataFields::CALL_TO_ACTION => array(
'type' => AdCreativeCallToActionTypeValues::LIKE_PAGE,
'value' => array(
'page' => $data['page_id'],
),
),
));

$object_story_spec = new AdCreativeObjectStorySpec();
$object_story_spec->setData(array(
AdCreativeObjectStorySpecFields::PAGE_ID => $data['page_id'],
AdCreativeObjectStorySpecFields::VIDEO_DATA => $video_data,
));

Над этим кодом работает и возвращает ответ, но когда я вызываю рекламное объявление, API возвращает «Неверный параметр»

    $creative = new AdCreative(null, $data['account_id']);
$creative->setData(array(
AdCreativeFields::NAME => 'Video Ad Template Creative Sample',
AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec,
AdCreativeFields::PRODUCT_SET_ID => $data['product_set_id'],
));

$creative->create();

2

Решение

Может быть, ваша проблема заключается в создании AdCreativeVideoData,

поиск строки

AdCreativeVideoDataFields::IMAGE_URL => public_path().'/facebook/resize-image.jpg',

Вот IMAGE_URL требует путь URL, как http://example.com/myimage.jpg. Вы указываете путь к каталогу, который может вызвать проблемы.

Если ваше изображение не доступно напрямую с URL, то вам нужно создать IMAGE_HASH. Для этого смотрите ниже.

try {
$image = new AdImage(null, $data['account_id']);
$image->{AdImageFields::FILENAME} = public_path().'/facebook/resize-image.jpg';

$image->create();
// Image_hash = $image->hash
} catch (Exception $e) {
echo 'Error message: ' . $e->getMessage() . "\n" . "<br/>";
echo 'Error Code: ' . $e->getCode() . "<br/>";
}

И замените IMAGE_URL на IMAGE_HASH в своем AdCreativeVideoData как это

$video_data = new AdCreativeVideoData();
$video_data->setData(array(
AdCreativeVideoDataFields::IMAGE_HASH => $image->hash,
AdCreativeVideoDataFields::VIDEO_ID => $video->id,
AdCreativeVideoDataFields::CALL_TO_ACTION => array(
'type' => AdCreativeCallToActionTypeValues::LIKE_PAGE,
'value' => array(
'page' => $data['page_id'],
),
),
));
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector