我想使用facebook API v2.5来更新现有facebook广告的标题和正文。我正在使用PHP sdk(以及facebook API资源管理器)。这样做的正确方法是什么?这是我到目前为止所尝试过的。
获取广告后,我会阅读相关的ad_creative:
$ad = new Ad(<ad_id>);
$ad_creatives = $ad->getAdCreatives();
$creative = new AdCreative($ad_creatives[0]->id);
// fetch from API
$fields = $creative->getFields();
$creative->read($fields);
更改值并调用更新无效:
$creative->{AdCreativeFields::BODY} = 'When life gives you lemons';
$creative->update();
另一种可能的方法是创建新广告素材并克隆现有广告素材中的数据:
$data = $creative->getData();
$new_creative = new AdCreative(null, <act_id>);
$new_creative->setData($data);
$new_creative->create();
但似乎我需要做一些修补才能做到正确,因为api正在返回错误。 顺便说一句,该应用具有以下权限:ads_management,manage_pages,publish_pages。
答案 0 :(得分:1)
广告素材内容是不可变的。 要更新tittle或body,您需要创建一个新广告素材(然后更新广告以使用新广告素材而不是旧广告素材。)
答案 1 :(得分:0)
$ad = new Ad($ad_id);
$ad->update(array(
AdFields::NAME => 'New Ad Name',
));
$creative = new AdCreative(<CREATIVE_ID>);
$creative->setData(array(
AdCreativeFields::NAME => 'New creative name',
AdCreativeFields::BODY => 'my body',
));
$creative->update();