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.*

Благодарю.

3

Решение

Нет необходимости делать это на уровне рекламы. С помощью вызовов Ad Insights API вы можете указать конкретный агрегат для данных на определенном уровне объекта. Учитывая, что вы получили свои рекламные аккаунты от /me/adaccounts В конечном итоге вы должны быть в состоянии сделать следующее:

Следующий запрос в обозревателе 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
$account = new AdAccount('act_<Ad_ACCOUNT_ID>');

$params = array(
'level' => 'account',
'date_preset' => InsightsPresets::YESTERDAY,
'fields' => 'spend',
);

$account->getInsights(array(), $params);

Я считаю, что вышесказанное должно помочь вам. Я проверил с 1а & 1b, и он работает отлично, но не полностью протестирован с 2.

8

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

Параметр, который вы ищете, это «time_increment», равный 1.
Вот документы https://developers.facebook.com/docs/marketing-api/insights/v2.5

0

По вопросам рекламы [email protected]