我正在尝试使用php sdk创建一个广告。
我可以创建活动、目标、广告集和创意(返回一个我可以使用图形资源管理器验证的creative_id )。
但是当我最终运行代码来创建广告本身时,我得到了一个异常,看起来像这样:
"error_user_title" => "Missing creative spec"
"error_user_msg" => "No creative spec found for given adgroup."我就是找不到任何与这个错误有关的东西。
下面是我的代码的相关部分:
$link_data = new AdCreativeLinkData();
$link_data->setData(array(
AdCreativeLinkDataFields::LINK => $route,
AdCreativeLinkDataFields::MESSAGE => $petition_statement,
AdCreativeLinkDataFields::NAME => $banner_title,
AdCreativeLinkDataFields::IMAGE_HASH => $image_hash,
));
$object_story_spec = new AdCreativeObjectStorySpec();
$object_story_spec->setData(array(
AdCreativeObjectStorySpecFields::PAGE_ID => $pageid,
AdCreativeObjectStorySpecFields::INSTAGRAM_ACTOR_ID=>$instagram_id,
AdCreativeObjectStorySpecFields::LINK_DATA=>$link_data
));
$creative = new AdCreative(null,$account_id);
$creative->setData(array(
AdCreativeFields::TITLE => $banner_title,
AdCreativeFields::BODY => $banner_subtitle,
AdCreativeFields::IMAGE_HASH => $image_hash,
AdCreativeFields::OBJECT_TYPE => 'SHARE',
AdCreativeFields::OBJECT_STORY_SPEC=>$object_story_spec
));
$creative->create();
echo 'Creative ID: '.$creative->id . "\n";
$ad = new Ad(null, $account_id);
$ad->setData(array(
AdFields::NAME => $short_name,
AdFields::ADSET_ID => $adset->id,
AdFields::CREATIVE => $creative,
AdFields::TRACKING_SPECS => array(array(
'action.type' => 'offsite_conversion',
'fb_pixel' => $pixel_code,
))
));
$ad->create(array(Ad::STATUS_PARAM_NAME => Ad::STATUS_PAUSED));感谢任何人的帮助。
发布于 2017-05-15 02:07:59
我经常说,成为一名成功的开发人员所需要的唯一技能就是能够为一个问题苦恼数天,阅读源代码,谷歌,重构,重写,然后意识到你忘记了一些非常明显的东西。
AdFields::CREATIVE => $creative,应该阅读
AdFields::CREATIVE => $creative->id,但是坚持的能力并不是你所需要的技能。真正的技能是以某种方式抑制住把你的电脑扔出窗外,转而做一些生活中有意义的事情的强烈冲动。
发布于 2017-06-27 23:35:54
经过几个小时的测试,特雷弗的答案似乎是不正确的。这是正确的语法:
AdFields::CREATIVE => array('creative_id'=>$creative->id)https://stackoverflow.com/questions/43957091
复制相似问题