Facebook API (PHP): Получить полный список объявлений - PullRequest
0 голосов
/ 19 ноября 2018

Я использую Facebook API для получения полного списка объявлений.

Код работает, но он возвращает только 25 объявлений, если в моем аккаунте более 150 объявлений.

Полагаю, это происходит из-за ограничений запросов в API Facebook.

Мой код:

$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$account->read();

$fields_adset = array(
  AdSetFields::ID,
  AdSetFields::NAME,
  AdSetFields::CAMPAIGN_ID,
  AdSetFields::STATUS,
);

$ads = $account->getAds($fields_adset);

foreach ($ads as $adset) {
    $adset_id = $adset->{AdSetFields::ID};
    echo  $adset_id;
    //print_r($adset);
    //exit();
}

Итак, они упомянули в документации, что:

Использование асинхронных запросов для запроса огромного количества данных

Ссылка (1): https://developers.facebook.com/docs/marketing-api/best-practices/

Ссылка (2): https://developers.facebook.com/docs/marketing-api/insights/best-practices/#asynchronous

Но я не могу применить этот «асинхронный» запрос к моему коду для получения полного списка объявлений,

Пожалуйста, помогите мне получить полный список объявлений

Спасибо.

1 Ответ

0 голосов
/ 19 ноября 2018

Вы должны реализовать разбиение на страницы (или запросить лимит выше).С помощью PHP SDK вы можете реализовать курсор как , описанный в документе здесь или более просто установить Implicit Fetching, например:

..
use FacebookAds\Cursor;

...
Cursor::setDefaultUseImplicitFetch(true);


$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$account->read();

$fields_adset = array(
  AdSetFields::ID,
  AdSetFields::NAME,
  AdSetFields::CAMPAIGN_ID,
  AdSetFields::STATUS,
);

$ads = $account->getAds($fields_adset);

foreach ($ads as $adset) {
    $adset_id = $adset->{AdSetFields::ID};
    echo  $adset_id;
    //print_r($adset);
    //exit();
}

Надеюсь, эта помощь

...