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

如何在Google Sheets中获取Facebook广告账户消费限额

问题需求

我有一段Google Apps Script代码,可在Google Sheets单元格中返回Facebook广告账户指定时间段的消费金额。现在需要在另一单元格获取该账户的消费限额,以此计算剩余预算(限额-消费额)。

原消费额获取代码:

function FacebookReporting(input1, input2) {
  var AD_ACCOUNT_ID = input1
  var TIME_RANGES = input2

  // ad, adset, campaign, account
  const LEVEL = 'account'

  const FIELDS = 'spend'

  // Your user access token
  const TOKEN = 'my_access_token'

  // Builds the Facebook Ads Insights API URL
  const facebookUrl = `https://graph.facebook.com/v14.0/act_${AD_ACCOUNT_ID}/insights?level=${LEVEL}&fields=${FIELDS}&time_ranges=${TIME_RANGES}&access_token=${TOKEN}&limit=1000`;
  const encodedFacebookUrl = encodeURI(facebookUrl);

  const options = {
    'method' : 'post'
  };

  // Fetches & parses the URL
  const fetchRequest = UrlFetchApp.fetch(encodedFacebookUrl);
  const results = JSON.parse(fetchRequest.getContentText());

  // Returns the spend
  var data = [];
    
  results.data.forEach(function (pieceOfData){
    data.push(Number(pieceOfData.spend));
  });

  if (data >= 0.01)
    return data;
  else 
    return 0;
}

Google Sheets中获取消费额的公式:

=FacebookReporting("ad_acc_id", "[{since:'2022-08-01',until:'2022-08-30'}]")

我曾尝试将代码中FIELDS的'spend'替换为'spend_cap'但未成功,求解决方案。


解决方案

问题原因

spend是Facebook Insights API(统计数据接口)的字段,用于获取指定时间段的消费统计;而spend_cap(消费限额)是广告账户的固有属性,属于Ad Account节点的字段,无法通过Insights接口获取,必须直接请求广告账户的详情接口。

实现代码

新增一个获取消费限额的函数:

function FacebookAccountSpendCap(AD_ACCOUNT_ID) {
  const TOKEN = 'my_access_token';
  // 调用广告账户详情接口,获取spend_cap字段
  const facebookUrl = `https://graph.facebook.com/v14.0/act_${AD_ACCOUNT_ID}?fields=spend_cap&access_token=${TOKEN}`;
  
  try {
    // 这里用GET请求即可,无需POST
    const fetchRequest = UrlFetchApp.fetch(facebookUrl);
    const accountData = JSON.parse(fetchRequest.getContentText());
    
    // Facebook返回的spend_cap单位为分,需转换为元(根据你的货币单位调整)
    return accountData.spend_cap ? Number(accountData.spend_cap) / 100 : 0;
  } catch (error) {
    return `获取失败: ${error.message}`;
  }
}

使用方法

在Google Sheets的目标单元格中输入以下公式,替换为你的广告账户ID:

=FacebookAccountSpendCap("你的广告账户ID")

注意事项

  • 确保你的Access Token拥有ads_read权限,且能访问目标广告账户;
  • 如果广告账户未设置消费限额,接口会返回null,代码中已处理为返回0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:45:49