Facebook Graph API - получение ежедневных расходов за набор объявлений
Я пытаюсь получить ежедневные расходы на набор объявлений для всех наших рекламных аккаунтов. Мы тратим много денег с Facebook, и финансы хотят видеть, куда они идут. По сути, я смотрю каждый день, чтобы рассчитывать расходы на рекламу за вчерашний день. Проблема в том, что существует множество рекламных наборов.
Я пытаюсь сделать это в двух частях. Сначала получите идентификаторы набора объявлений из API Graph. Затем получите расходы с помощью API маркетинга.
1. Graph API (v.2.4)
Я получаю список всех наборов объявлений, которые у нас есть. Я не могу сделать это за один звонок, так как есть много результатов (более девяти страниц).
GET/v2.4/me/adaccounts?fields=name,adcampaign_groups{id,name,campaign_group_status,account_id,adcampaigns{id,name}}
2. Маркетинговый API
Чтобы получить вчерашние расходы, я звоню в Marketing API для каждого набора объявлений. Это код PHP, который я использую:
// Get spend for yesterday
$adSet = new \FacebookAds\Object\AdSet($adSetId);
$params = array(
'date_preset' => InsightsPresets::YESTERDAY,
);
/** @var Cursor $insights */
$insights = $adSet->getInsights(array('spend'), $params);
$insights->rewind();
$spend = 0;
if ($insights->current() != false) {
$spend = $insights->current()->getData()['spend'];
}
Поскольку у меня много рекламных наборов, я достигаю своего предела перед тем, как получить необходимые данные.
Есть ли способ получить эту информацию за один звонок? Если нет, могу ли я получить данные о расходах из Marketing API за меньшее количество звонков?
Я рад обновить до Graph API v2.5, если это поможет. Я использую библиотеки композитора:
facebook/php-sdk-v4: ~5.0
facebook/php-ads-sdk: 2.4.*
Благодарю.
2 ответа
Нет необходимости делать это на уровне рекламы. С помощью вызовов Ad Insights API вы можете указать конкретный агрегат для данных на определенном уровне объекта. Учитывая, что вы получили свои рекламные аккаунты от /me/adaccounts
В конечном итоге вы должны быть в состоянии сделать следующее:
1. Граф API Запрос
Следующий запрос в обозревателе Graph API или через cURL (оба предоставлены) должны вернуть вам расходы на весь аккаунт:
1a. URL графика
https://graph.facebook.com/<VERSION>/act_<ACCOUNT_ID>/insights?fields=spend&level=account&date_preset=yesterday&access_token=<ACCESS_TOKEN>
1б. завивать
curl -G \
-d 'level=account' \
-d 'fields=spend' \
-d 'date_preset=yesterday' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/<VERSION>/act_<ACCOUNT_ID>/insights
2. Маркетинговый API SDK
$account = new AdAccount('act_<Ad_ACCOUNT_ID>');
$params = array(
'level' => 'account',
'date_preset' => InsightsPresets::YESTERDAY,
'fields' => 'spend',
);
$account->getInsights(array(), $params);
Я считаю, что вышесказанное должно помочь вам. Я проверил с 1a и 1b, и он работает отлично, но не полностью проверил с 2.
Параметр, который вы ищете, это "time_increment", равный 1. Вот документы https://developers.facebook.com/docs/marketing-api/insights/v2.5