8

我正在尝试获取我们所有广告帐户的每个广告组的每日支出。我们在 Facebook 上花了很多钱,而 Finance 想看看它的发展方向。基本上,我每天都在寻找昨天的每个广告组的支出。问题是,有很多广告集。

我试图分两部分来做到这一点。首先从 Graph API 获取广告集 ID。然后使用 Marketing API 获取支出。

1. 图形 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'];
}

因为我有很多广告集,所以在我获得所需数据之前很久就达到了我的小跑限制。

有没有办法在一个电话中获取这些信息?如果没有,我可以通过更少的调用从营销 API 中获取支出数据吗?

如果有帮助,我很乐意更新到 Graph API v2.5。我正在使用作曲家库:

facebook/php-sdk-v4: ~5.0
facebook/php-ads-sdk: 2.4.*

谢谢。

4

2 回答 2

13

无需在广告集级别执行此操作。通过调用 Ad Insights API,您可以在定义的对象级别为数据指定特定的聚合。鉴于您已从/me/adaccounts端点获取广告帐户,您应该能够执行以下操作:

1.图API请求

Graph API 浏览器中的以下请求或通过 cURL(均提供)应返回整个帐户的支出:

1a。图表网址

https://graph.facebook.com/<VERSION>/act_<ACCOUNT_ID>/insights?fields=spend&level=account&date_preset=yesterday&access_token=<ACCESS_TOKEN>

1b。卷曲

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。

于 2015-10-27T16:33:03.033 回答
1

您正在寻找的参数是“time_increment”等于 1。这是文档https://developers.facebook.com/docs/marketing-api/insights/v2.5

于 2015-11-25T07:28:10.513 回答