Создайте кампанию в Facebook и получите идентификатор кампании — API маркетинга

Вот как 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

Тем не менее, это не очень полезно, потому что оно просто указывает на краткое руководство, которое не дает соответствующей информации.

0

Решение

Примеры на фейсбуке неполные. Убедитесь, что вы инициировали 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 с датами полетов и потраченной ценой.

1

Другие решения

Вы должны получить идентификатор с $ 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/>";
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector