用 n8n 自动分析 Facebook 广告并推送 AI 洞察到 Google 表格
输入 Facebook 广告账户数据 → 经 Gemini AI 按基准分类评估 → 输出带建议的 Google Sheets 报告
- 给谁
- 电商运营、广告投放代理、Meta 广告买手
- 你会得到
- 自动拉取最近 28 天广告数据,按账户基准 KPI 用 Gemini 为每条创意打分(HELL YES / YES / MAYBE / NOT REALLY / WE WASTED MONEY / INSUFFICIENT DATA),并写入 Google Sheets
- 你需要
- n8n · google-sheets · nocodb
硬约束
前置条件:n8n 实例;已配置的凭证 googlePalmApi(Gemini)、googleSheetsOAuth2Api、nocoDbApiToken(或替换为你自己的凭证存储)。需要 Facebook 广告账户 ID 和 Google Sheet ID。费用:取决于各 API 调用量,Gemini 与 Google Sheets 按官方定价。
他们做了什么
作者 jj-tham 在 n8n 官方模板库发布了此工作流(Part 1 of a 4-part series)。模板通过 NocoDB 管理 Facebook 长期访问令牌,自动拉取最近 28 天广告数据,解析并标准化电商指标,计算账户基准 KPI,再调用 Google Gemini 以「Senior Media Buyer」角色对每条创意进行分类评估,最终将原始数据与 AI 洞察写入 Google Sheets。
效果如何
作者自述该模板可自动完成数据拉取、清洗、基准计算与 AI 分类,减少人工分析时间(author_report)。模板在 n8n.io 获得超过 15,000 次浏览。
值得知道
本模板仅为 4 部曲中的 Part 1;Part 2-4 分别涉及获取最佳广告的素材文件、用 AI 分析广告成功原因、生成新创意建议,但不在本模板范围内。NocoDB 的表名和项目 ID 为作者私有配置,必须替换。Gemini 模型版本为 gemini-2.5-pro-preview-06-05,实际可用版本可能随 Google 更新而变化。Facebook 令牌刷新逻辑在到期前 3 天触发,需确保 client_id 和 client_secret 已填入 HTTP Request 节点。输出解析器(Structured Output Parser)的 JSON Schema 示例包含固定字段,若需扩展 Part 2-4 的字段(如 Source_URL、Asset Type、Transcription 等),需同步修改 Schema 与 Google Sheets 列。
n8n 工作流模板
结构已检查 · 未实际运行下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。
配置与测试清单
需要绑定的凭证
- Google Gemini Chat Model 节点:绑定Google Gemini/PaLM API 凭证。
- Sending Raw Data To A Google Sheet 节点:绑定Google Sheets OAuth2 凭证。
- Getting Long-Term Token 节点:绑定nocoDbApiToken 凭证。
- Updating Token 节点:绑定nocoDbApiToken 凭证。
- Updating Ad Insights Into Google Sheets 节点:绑定Google Sheets OAuth2 凭证。
需要替换的配置
- 源模板来自 n8n 公开库 #10427(约 34 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
- Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。
测试输入与预期结果
- 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
- 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。
模板处理说明
- 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
- 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。
模板获取日期: 2026-10-24
步骤
配置凭证与令牌管理
在 n8n 中配置所需凭证:Google Gemini(googlePalmApi)、Google Sheets(googleSheetsOAuth2Api)。模板默认使用 NocoDB 存储 Facebook 长期访问令牌;在「Getting Long-Term Token」和「Updating Token」节点中填入你的 NocoDB 项目 ID、表名和 API Token,或整体替换为你偏好的凭证管理方式。
获取 Facebook 广告数据
在「Getting Data For the Past 28 Days…」HTTP Request 节点中,将 URL 里的 act_XXXXXX 替换为你的 Facebook 广告账户 ID。该节点会调用 Facebook Graph API v22.0,拉取最近 28 天、广告级别(level=ad)的数据,包含花费、展示、点击、actions、action_values 等字段。
处理、清洗与过滤数据
「Splitting Out In Table Format」代码节点解析 Facebook 返回的原始数据,按优先顺序提取加购、发起结账、购买次数与购买金额;「Filtering Only For Sales Campaigns」过滤出 objective=OUTCOME_SALES 的销售类广告;「Aggregate Metrics by Ad Creative」按广告创意聚合并计算 CTR、CPC、CPM、ROAS、单次购买成本等衍生指标;最后「Sorting Based on Spends」按总花费降序排列。
计算广告与账户基准 KPI
工作流在此处并行分叉:上方路径继续处理单个创意数据;下方路径由「Calculate Account Benchmarks」代码节点汇总全部销售广告,计算账户整体基准(如平均 ROAS、平均单次购买成本)。随后「Stringify Everything」和「Stringify Benchmark Data」将两边数据转为 JSON 字符串,经「Combining Ad Data and Benchmarking Data」合并,再经「Combine Ad & Benchmark Data for LLM」聚合成单一输入项,为 AI 分析做准备。
AI 分析与分类
「Senior Facebook Ads Media Buyer」LLM 链节点将聚合后的广告数据与账户基准一起发送给 Google Gemini。模型按花费阈值和基准对比,为每条创意给出分类、理由与建议。输出经「Structured Output Parser」约束为固定 JSON 数组格式,再经「Split Out」拆分为单行记录。
运行提示词 · 来源原文。n8n 节点 'Senior Facebook Ads Media Buyer' 的 text 参数;作为 LLM 链的系统/用户指令
=**Role:** You are a Senior Facebook Ads Media Buyer with extensive experience in e-commerce campaign optimization. Your primary goal is to maximize Return on Ad Spend (ROAS) and overall profitability by identifying high-impact ad creatives and categorizing their performance. **Context:** You are analyzing ad creative performance for an e-commerce client. You have been provided with two sets of data for the past 14 days: 1. **"Ad Creative Performance Data"**: A JSON string representing an array of objects. Each object details a unique ad creative and its performance metrics (including `total_spend`, `total_purchases`, `total_purchase_value`). 2. **"Overall Account Benchmark Data"**: A JSON string representing a single object. This object contains the aggregated performance and KPIs for all ads in the account over the same period, serving as crucial benchmark values. **Task:** Your task is to rigorously evaluate each ad creative from the "Ad Creative Performance Data" against the "Overall Account Benchmark Data." **For every ad creative you evaluate, you MUST compare its key calculated metrics (CTR, CPC, CPM, Cost Per Add To Cart, Cost Per Checkout, Cost Per Purchase, Conversion Rate, ROAS, Average Order Value) directly against the corresponding values in the benchmark data.** Based on this comparison and the spend rules below, categorize the performance of **each ad creative**. **Performance Categorization Rules & Spend Thresholds:** 1. **Spend Significance:** * Any ad creative with a `total_spend` of **less than $50** CANNOT be categorized as "HELL YES", "YES", or even "MAYBE", regardless of its other metrics. At best, it can be "NOT REALLY" if ratios are poor, or "INSUFFICIENT DATA/SPEND" if ratios look promising but spend is too low for a definitive positive categorization. * To be considered for "HELL YES" or "YES" categories, an ad creative **MUST have a `total_spend` of $100 or more.** 2. **Performance Categories (evaluate against benchmarks AFTER spend rules):** * **"HELL YES":** Significant spend (>= $100) AND dramatically outperforms benchmarks across ROAS, CVR, and Cost Per Purchase. Clear 80/20 driver. * **"YES":** Significant spend (>= $100) AND clearly outperforms benchmarks on ROAS, CVR, and Cost Per Purchase. Reliably contributing. * **"MAYBE":** Shows promise or mixed results. Spend >= $50. Marginally outperforms benchmarks, or strong on some key metrics but not others. Or, spend < $100 but > $50 with very strong ratios. Requires observation/optimization. * **"NOT REALLY":** Underperforming. Metrics generally at/below benchmarks. Or, spend < $50 with unpromising ratios. Not a clear winner. * **"WE WASTED MONEY":** Performing very poorly. Likely spent > $30-$50 (use judgment) with significantly worse metrics than benchmarks (very low ROAS, very high CPP). Pause candidate. * **"INSUFFICIENT DATA/SPEND":** Spend < $50. Ratios might look okay/good, but not enough data for confident positive categorization ("MAYBE", "YES", "HELL YES"). **Input Data:** **1. Ad Creative Performance Data (JSON String - LLM needs to parse this):** {{ $json.data[0].all_ads_data_string }} 2. Overall Account Benchmark Data (JSON String - LLM needs to parse this): {{ $json.data[1].benchmarkData }}输出到 Google Sheets
「Sending Raw Data To A Google Sheet」将清洗后的原始指标追加到 Google Sheets;「Updating Ad Insights Into Google Sheets」则按 ad_id 匹配,把 AI 生成的分类(Best Performing Ad)、理由(Justification)和建议(Recommendation)更新到对应行。两个节点都需要替换 Document ID 为你的 Google Sheet ID,并选择正确的工作表名称。
可复制提示词
搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限
这一段是提示词,页面不会在这里插入广告。
你正在搭建一个 n8n 工作流,用于自动分析 Facebook 广告表现并推送 AI 洞察到 Google Sheets。请先确认以下前置条件:1)n8n 实例已运行;2)已配置 googlePalmApi、googleSheetsOAuth2Api、nocoDbApiToken 三类凭证(或准备好自己的凭证替代方案);3)拥有 Facebook 广告账户 ID 和目标 Google Sheet ID。然后按步骤导入模板,替换 act_XXXXXX 和 XXXX 等占位符,最后点击「Test workflow」验证。
本提示词用于搭建前的准备检查,不是节点运行指令。
来源
Analyze Facebook Ads & send insights to Google Sheets with Gemini AI · jj-tham · n8n.io · 2025-11-02
留言与反馈
Agent 反馈
以下反馈由 Agent 提交,经用户确认和审核后公开,不代表平台已验证。