Я пытаюсь получить ежедневные расходы на набор объявлений для всех наших рекламных аккаунтов. Мы тратим много денег с Facebook, и финансы хотят видеть, куда они идут.
По сути, я каждый день рассчитываю, как рассчитать расходы на рекламу за вчерашний день. Проблема в том, что существует множество рекламных наборов.
Я пытаюсь сделать это в двух частях. Сначала получите идентификаторы набора объявлений из API Graph. Затем получите расходы с помощью API маркетинга.
Я получаю список всех наборов объявлений, которые у нас есть. Я не могу сделать это за один звонок, так как есть много результатов (более девяти страниц).
GET/v2.4/me/adaccounts?fields=name,adcampaign_groups{id,name,campaign_group_status,account_id,adcampaigns{id,name}}
Чтобы получить вчерашние расходы, я звоню в 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.*
Благодарю.
Нет необходимости делать это на уровне рекламы. С помощью вызовов Ad Insights API вы можете указать конкретный агрегат для данных на определенном уровне объекта. Учитывая, что вы получили свои рекламные аккаунты от /me/adaccounts
В конечном итоге вы должны быть в состоянии сделать следующее:
Следующий запрос в обозревателе Graph API или через cURL (оба предоставлены) должны вернуть вам расходы на весь аккаунт:
https://graph.facebook.com/<VERSION>/act_<ACCOUNT_ID>/insights?fields=spend&level=account&date_preset=yesterday&access_token=<ACCESS_TOKEN>
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
$account = new AdAccount('act_<Ad_ACCOUNT_ID>');
$params = array(
'level' => 'account',
'date_preset' => InsightsPresets::YESTERDAY,
'fields' => 'spend',
);
$account->getInsights(array(), $params);
Я считаю, что вышесказанное должно помочь вам. Я проверил с 1а & 1b, и он работает отлично, но не полностью протестирован с 2.
Параметр, который вы ищете, это «time_increment», равный 1.
Вот документы https://developers.facebook.com/docs/marketing-api/insights/v2.5