You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PHP SDK直接获取Facebook广告账户指定日期范围总花费?

直接获取Facebook广告账户指定日期总花费的PHP SDK实现

当然有更高效的解决方案!你完全不用再逐个拉取广告系列数据手动累加——Facebook Marketing API本身就支持直接在广告账户层级按指定日期范围聚合获取总花费,用PHP SDK实现起来非常简洁。

核心思路

使用/act_{AD_ACCOUNT_ID}/insights端点,通过指定level=account来告诉API直接返回广告账户层级的汇总数据,同时搭配日期范围参数,就能一步拿到你需要的当月总花费。

PHP SDK代码示例

下面是完整的实现代码,你可以直接适配到你的项目中:

use Facebook\Facebook;
use Facebook\Exceptions\FacebookResponseException;
use Facebook\Exceptions\FacebookSDKException;

// 初始化Facebook SDK(确保你已经配置好应用凭证)
$fb = new Facebook([
  'app_id' => 'YOUR_APP_ID',
  'app_secret' => 'YOUR_APP_SECRET',
  'default_graph_version' => 'v18.0', // 建议使用最新稳定版本
]);

// 设置用户访问令牌(需要具备ads_read权限)
$accessToken = 'YOUR_USER_ACCESS_TOKEN';
$fb->setDefaultAccessToken($accessToken);

// 广告账户ID,格式为act_XXXXXXX
$adAccountId = 'act_123456789';

// 定义日期范围:这里以当月为例,你也可以手动指定start_date和end_date
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');

try {
  // 请求广告账户层级的insights数据
  $response = $fb->get(
    "/{$adAccountId}/insights",
    [
      'level' => 'account', // 指定聚合层级为账户
      'time_range' => json_encode([
        'since' => $currentMonthStart,
        'until' => $currentMonthEnd
      ]),
      'fields' => 'spend', // 只请求花费字段,减少数据传输
      'limit' => 1 // 只需要一条汇总数据
    ]
  );

  $insightsData = $response->getGraphEdge()->getArrayCopy();
  
  // 提取总花费(注意spend返回的是字符串,可转为浮点数)
  if (!empty($insightsData)) {
    $totalSpend = (float) $insightsData[0]['spend'];
    echo "当月总花费:{$totalSpend}";
  } else {
    echo "该时间段内无花费数据";
  }

} catch (FacebookResponseException $e) {
  echo 'Graph API请求出错: ' . $e->getMessage();
} catch (FacebookSDKException $e) {
  echo 'Facebook SDK出错: ' . $e->getMessage();
}

关键参数说明

  • level: 设置为account是核心,这会让API直接返回整个广告账户的汇总数据,而不是拆分到广告系列/广告组层级。
  • time_range: 用JSON格式指定日期范围,since是开始日期,until是结束日期;你也可以用date_preset参数,比如date_preset='this_month'来自动获取当月范围,代码会更简洁。
  • fields: 只请求spend字段可以大幅减少API返回的数据量,提升请求速度。

注意事项

  1. 确保你的访问令牌具备ads_read权限,否则会返回权限错误。
  2. 建议使用最新版本的Facebook PHP SDK,避免因版本兼容问题导致的异常。
  3. spend字段返回的是字符串类型,需要转换为数值类型进行后续计算。

内容的提问来源于stack exchange,提问作者Kushal Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:03:22