如何在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
相关产品推荐
相关产品推荐

