Facebook Graph API - 获取每个广告集的每日支出
Facebook Graph API - getting daily spend per ad set
我正在尝试获取我们所有广告帐户的每个广告组的每日支出。我们在 Facebook 上投入了大量资金,而财务部门希望了解它的发展方向。
基本上,我每天都在寻找昨天每个广告组的支出。问题是,有很多广告集。
我想分两部分来做。首先从图表中获取广告集 ID API。然后使用营销 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
为了获得昨天的支出,我正在为每个广告集致电市场部 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.*
谢谢。
无需在广告集级别执行此操作。通过调用 Ad Insights API,您可以在定义的对象级别为数据指定特定的聚合。鉴于您已经从 /me/adaccounts
端点获取了您的广告帐户,您应该能够执行以下操作:
1。图 API 请求
Graph API 浏览器中的以下请求,或通过 cURL(均已提供)应该 return 您应该支付整个帐户的费用:
1a。图 URL
https://graph.facebook.com/<VERSION>/act_<ACCOUNT_ID>/insights?fields=spend&level=account&date_preset=yesterday&access_token=<ACCESS_TOKEN>
1b。 cURL
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
我正在尝试获取我们所有广告帐户的每个广告组的每日支出。我们在 Facebook 上投入了大量资金,而财务部门希望了解它的发展方向。 基本上,我每天都在寻找昨天每个广告组的支出。问题是,有很多广告集。
我想分两部分来做。首先从图表中获取广告集 ID API。然后使用营销 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
为了获得昨天的支出,我正在为每个广告集致电市场部 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.*
谢谢。
无需在广告集级别执行此操作。通过调用 Ad Insights API,您可以在定义的对象级别为数据指定特定的聚合。鉴于您已经从 /me/adaccounts
端点获取了您的广告帐户,您应该能够执行以下操作:
1。图 API 请求
Graph API 浏览器中的以下请求,或通过 cURL(均已提供)应该 return 您应该支付整个帐户的费用:
1a。图 URL
https://graph.facebook.com/<VERSION>/act_<ACCOUNT_ID>/insights?fields=spend&level=account&date_preset=yesterday&access_token=<ACCESS_TOKEN>
1b。 cURL
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