如何通过API更新Facebook广告的标题和正文?

时间:2016-04-19 13:08:43

标签: php facebook facebook-graph-api facebook-php-sdk facebook-marketing-api

我想使用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。

2 个答案:

答案 0 :(得分:1)

广告素材内容是不可变的。 要更新tittle或body,您需要创建一个新广告素材(然后更新广告以使用新广告素材而不是旧广告素材。)

答案 1 :(得分:0)

Update the Ad

$ad = new Ad($ad_id);
$ad->update(array(
  AdFields::NAME => 'New Ad Name',
));

Updating AdCreative

$creative = new AdCreative(<CREATIVE_ID>);

$creative->setData(array(
  AdCreativeFields::NAME => 'New creative name',
  AdCreativeFields::BODY => 'my body',
));

$creative->update();