Вот как Facebook говорит людям создавать кампанию в соответствии с документацией:
https://developers.facebook.com/docs/marketing-api/buying-api/
Однако, что является параметром пустого поля в новом конструкторе Campaign? Все, что я добавляю туда, становится идентификатором Кампании, но недействительным.
Как вы получаете идентификатор кампании?
Когда я запускаю этот код, я не получаю никаких ошибок, но ничего не создается в моем Менеджере рекламы, и когда я отображаю $ campaign-> id, он просто пуст, потому что идентификатор равен нулю. Тем не менее, если я print_r ($ campaign), он возвращает большой объект со многими полями, но без поля идентификатора.
Код Facebook:
use FacebookAds\Object\Campaign;
use FacebookAds\Object\Fields\CampaignFields;
use FacebookAds\Object\Values\CampaignObjectiveValues;
$campaign = new Campaign(null, 'act_<AD_ACCOUNT_ID>');
$campaign->setData(array(
CampaignFields::NAME => 'My campaign',
CampaignFields::OBJECTIVE => CampaignObjectiveValues::LINK_CLICKS,
));
$campaign->create(array(
Campaign::STATUS_PARAM_NAME => Campaign::STATUS_PAUSED,
));
Вот документация на фейсбуке:
https://developers.facebook.com/docs/marketing-api/using-the-api
Тем не менее, это не очень полезно, потому что оно просто указывает на краткое руководство, которое не дает соответствующей информации.
Примеры на фейсбуке неполные. Убедитесь, что вы инициировали API объявлений Facebook.
Если создание прошло успешно, библиотека Facebook присваивает идентификатор объекту кампании, для которого вы вызвали create (), и к нему можно получить доступ следующим образом:
$campaign->{CampaignFields::ID};
Вот полный пример того, как создать кампанию:
// 1. The facebook api has to be initiated before making request
Api::init("App Id", "App Secret", "User Token");
$campaign = new Campaign(null, 'act_<account id>');
// 2. Populating the campaign object
$campaign->setData([
CampaignFields::NAME => 'TEST Campaign',
CampaignFields::OBJECTIVE => CampaignObjectiveValues::LINK_CLICKS
]);
try {
// 3. If the operation is successful the id will be set
$campaign->create();
// Grabbing the id.
$facebookCampaignId = $campaign->{CampaignFields::ID};
// Printing the id
var_dump($facebookCampaignId);
} catch (RequestException $requestException) {
// Can be null
$facebookResponse = $requestException->getResponse();
if (!empty($facebookResponse)) {
// Its easier to debug using the response by Facebook.
var_dump($facebookResponse->getBody());
}
} catch (Exception $exception) {
var_dump($exception->getMessage());
}
Полный пример создания Кампании Facebook с датами полетов и потраченной ценой.
Вы должны получить идентификатор с $ campaign-> id после вызова метода create. Проверьте, есть ли какая-либо ошибка, возможно, вы не получили идентификатор, потому что кампания не создана.
Если вы ищете документ PHP SDK, то он здесь: https://github.com/facebook/facebook-php-ads-sdk
Попробуйте этот пример:
use FacebookAds\Object\Campaign;
use FacebookAds\Object\Fields\CampaignFields;
try{
$campaign = new Campaign(null, $account->id);
$campaign->setData(array(
CampaignFields::NAME => 'My First Campaign',
CampaignFields::OBJECTIVE => 'LINK_CLICKS',
));
$campaign->validate()->create(array(
Campaign::STATUS_PARAM_NAME => Campaign::STATUS_PAUSED,
));
echo "Campaign ID:" . $campaign->id . "\n";
}
catch (Exception $e) {
echo 'Error message: ' .$e->getMessage() ."\n" . "<br/>";
echo 'Error Code: ' .$e->getCode() ."<br/>";
}