У меня есть список из примерно 260 идентификаторов кампаний, и я хочу получить все данные набора объявлений для каждого идентификатора кампании.
Я использую следующее, чтобы сделать запрос для одного идентификатора кампании, но если я запускаю это в цикле и очень быстро достигаю своего лимита пользовательских запросов.
$campaign = new AdCampaign($campaign_id);
$adsets = $campaign->getAdSets($fields);
Я следую https://developers.facebook.com/docs/marketing-api/guides/chapter-6-ads-management#sets и в настоящее время, используя то, что они предлагают:
use FacebookAds\Object\AdCampaign;
use FacebookAds\Object\Fields\AdSetFields;
$fields = array(
AdSetFields::NAME,
AdSetFields::START_TIME,
AdSetFields::END_TIME,
AdSetFields::DAILY_BUDGET,
AdSetFields::LIFETIME_BUDGET,
);
$campaign = new AdCampaign('<CAMPAIGN_GROUP_ID>');
$adsets = $campaign->getAdSets($fields);
Заранее спасибо.
Используйте методы пакетного запроса Facebook, чтобы запрашивать поля для каждой кампании https://developers.facebook.com/docs/graph-api/making-multiple-requests#multiple_methods
PHP Ads SDK не поддерживает пакетные запросы FB с использованием своих обёрток но вы можете использовать общую оболочку API достаточно легко. Например:
$response = $api->call('/', 'POST', array('batch' => $json_string));
Где $ api — это экземпляр Facebook \ Api, а $ json_string — это JSON-кодированный массив запросов пакетной операции для полей рекламы. JSON должен выглядеть следующим образом (с использованием API версии 2.4 и идентификаторов групповых кампаний 1000001 и 1000002):
[
{ "method": "GET",
"relative_url":"v2.4/1000001?fields=name,start_time,end_time,daily_budget,lifetime_budget"},
{ "method": "GET",
"relative_url":"v2.4/1000002?fields=name,start_time,end_time,daily_budget,lifetime_budget"}
]
Других решений пока нет …