我正在编写一个通过API生成Facebook广告的脚本。由于某些原因,广告创意的变量没有被添加到广告中。主要的问题是标题和正文没有被添加。下面是我用来生成广告创意的代码:
try{
$creative = new AdCreative(null, $accountId);
$creative->setData(array(
AdCreativeFields::NAME => $ad_info['Ad Name'],
AdCreativeFields::TITLE => $ad_info['Title'],
AdCreativeFields::BODY => $ad_info['Body'],
AdCreativeFields::IMAGE_HASH => $image->hash,
//AdCreativeFields::OBJECT_URL => $ad_info['Preview Link'],
AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec,
AdCreativeFields::URL_TAGS => $ad_info['URL Tags'],
));
$creative->create();
echo 'Creative ID: '.$creative->id . "\n";
}
catch (Exception $e) {
echo '<pre>creative';print_r($e);exit;
if($e->getMessage()){
echo 'Error message: ' .$e->getMessage() ."\n" . "<br/>";
}
//echo 'Error Code: ' .$e->getCode() ."<br/>";
}以及在广告中添加创意的代码:
$ad = new Ad(null, $accountId);
$ad->setData(array(
AdFields::CREATIVE =>
array('creative_id' => $creative->id),
AdFields::NAME => $ad_info['Ad Name'],
AdFields::ADSET_ID => $adsetId,
AdFields::STATUS => 'ACTIVE',
AdFields::TRACKING_SPECS => array('action.type' => $ad_info['action type'], 'fb_pixel' => $fb_pixel),
));
$ad->create();它没有抛出错误,其他变量,如广告名称、状态等似乎都正确地添加到了广告中。根据Facebook的API文档,我可以断定上述所有内容都是正确的。我甚至尝试在创意生成和添加到广告之间添加一个睡眠功能。问题可能是什么?
发布于 2017-12-14 09:54:56
我知道问题出在哪里了。如果广告是链接广告,则广告创意对象不会应用于广告,该脚本生成的广告就是链接广告。为了让标题和正文等内容出现,您必须将它们添加到AdCreativeLinkData中,如下所示:
$link_data->setData(array(
AdCreativeLinkDataFields::DESCRIPTION => $ad_info['Link Description'],
AdCreativeLinkDataFields::LINK => $ad_info['Link'],
AdCreativeLinkDataFields::NAME => $ad_info['Title'],
AdCreativeLinkDataFields::MESSAGE => $ad_info['Body'],
AdCreativeLinkDataFields::IMAGE_HASH => $image->hash,
AdCreativeLinkDataFields::CALL_TO_ACTION => array(
'type' => AdCreativeCallToActionTypeValues::SIGN_UP,
'value' => array(
'link' => $ad_info['Link'],
'link_caption' => $ad_info['Link'],
),
),
));一旦我将NAME和MESSAGE变量添加到这个对象中,广告的标题和正文就会完美地显示出来。
https://stackoverflow.com/questions/47721093
复制相似问题