Я хочу использовать Facebook API v2.5, чтобы обновить заголовок и текст существующей рекламы на Facebook. Я использую PHP SDK (и Facebook API Explorer). Как правильно это сделать? Это то, что я пробовал до сих пор.
После получения объявления я прочитал соответствующий 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.
Творческий контент неизменен.
Чтобы обновить заголовок или текст, вам нужно будет создать новое объявление (а затем обновить свое объявление, чтобы использовать новое объявление вместо старого).
$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();