AI PLAY玩法更新持续收录
← 回到更新流

2026-09-08 · 原文发布日

抓取Facebook广告库并用AI归类说服角度

手动运行后由Apify抓取Facebook广告库搜索结果,流程把每条广告规范化、还原跳转链接得到真实落地域名,再用OpenAI为广告文案打上紧迫感、社会认同、问题解决等说服角度标签;记录存入Supabase,文案同时嵌入向量库支持语义检索,识别到Shopify站点还会拉取products.json去重后建商品表。可按关键词、国家换搜索地址,或改提示词换成自己行业的标签体系。

原文要点

作者Apify的n8n模板为手动触发:先在数据集输入节点设定Facebook广告库搜索URL与maxAds上限,调用Apify的curious_coder/facebook-ads-library-scraper actor抓取广告文案、素材、触达与日期;随后规范化每条广告、还原Facebook跳转链接得到真实落地域名并构造Shopify探测URL;再把广告文本交OpenAI打主要说服角度标签(如紧迫感、社会认同、问题解决);富化后的记录写入Supabase的ads表,成功插入的行将文案经OpenAI嵌入写入启用pgvector的documents向量库以支持语义检索;对有效Shopify探测URL再请求/products.json,按商品ID去重后写入products表。可换搜索URL改关键词与国家,或改分类提示词换成行业标签。

这次做成什么

在本站重建一条手动运行的广告情报流水线:Apify抓广告库→规范化与解跳转→OpenAI打说服角度标签→Supabase落表→文案入向量库→Shopify商品去重建表。原文未公开具体提示词与建表语句,本站独立给出可直接用的分类提示词、建表SQL和合成广告样本。

准备什么

  • Apify账号及API token,且能使用curious_coder/facebook-ads-library-scraper actor
  • OpenAI API Key,同时用于角度分类与embeddings
  • Supabase项目,已在SQL编辑器启用pgvector扩展
  • 一个Facebook广告库搜索URL(先在浏览器按关键词和国家筛选后复制地址栏链接)

具体怎么做

  1. 设定输入并运行抓取

    手动触发工作流。第一个配置节点写入两个值:adLibraryUrl(浏览器里搜关键词、选国家后的完整广告库URL)和maxAds(练习建议填10)。Apify节点选credential后,actor填curious_coder/facebook-ads-library-scraper,把URL与上限传入输入JSON,运行后得到广告数组。

  2. 规范化与还原落地域名

    接Code节点遍历每条广告:取广告文案、广告主页名、开始日期、触达估计;对Facebook的跳转链接做还原(原文做法是unwrap重定向得到真实destination),再用URL解析取hostname作为destination_domain;若域名疑似Shopify站点,拼出探测URL,形如https://域名/products.json。统一输出材料三所示的行结构。

  3. OpenAI打说服角度标签

    接OpenAI Chat节点,模型与具体版本号以你自己账号为准(原文未指定),系统消息用材料一的完整提示词,用户消息填广告文案。输出仅一个角度标签加一句理由,用JSON返回,Code节点解析后并入广告行的persuasion_angle与angle_reason字段。

  4. 写Supabase并嵌入向量库

    Supabase节点向ads表插入富化后的行;成功分支后接Embeddings与Vector Store节点(选Supabase Vector Store,对应documents表),把广告文案生成向量并附带ad_id、domain、angle等metadata。需先在Supabase执行材料二的建表SQL。

  5. Shopify商品探测与去重

    IF节点判断shopify_probe_url非空,HTTP Request节点GET该URL;再一个Code节点按product.id去重(同一站点多条广告会命中相同商品),最后Supabase节点把去重后的title、handle、vendor、product_type等写入products表。非Shopify或请求失败的行直接跳过。

可直接复制的材料

说服角度分类提示词(本站独立编写)

本站独立示例;换成自己行业时改标签集即可,但JSON结构建议保留以便解析节点不变

你是广告文案分析员。给定一条广告文案,判断它的主要说服角度,只能从这个标签集中选一个:urgency(限时限量制造紧迫)、social_proof(评价、销量、名人背书)、problem_solution(指出痛点再给方案)、price_incentive(折扣、包邮、优惠码)、brand_story(品牌理念与情感叙事)、feature_highlight(强调功能参数与差异化)。
只输出JSON,不要其他文字:
{"angle":"六个标签之一","reason":"不超过40字的中文理由"}
若文案信息不足,angle填feature_highlight并在reason说明依据薄弱。

Supabase建表SQL(本站独立示例)

维度1536对应text-embedding-ada-002一类模型,若用其他嵌入模型需按其维度改;表名沿用原文的ads/products/documents

create extension if not exists vector;

create table if not exists ads (
  id bigint generated always as identity primary key,
  ad_archive_id text unique,
  page_name text,
  ad_copy text,
  start_date date,
  reach_estimate bigint,
  destination_url text,
  destination_domain text,
  persuasion_angle text,
  angle_reason text,
  created_at timestamptz default now()
);

create table if not exists products (
  id bigint generated always as identity primary key,
  shopify_product_id bigint,
  domain text,
  title text,
  handle text,
  vendor text,
  product_type text,
  unique (shopify_product_id, domain)
);

create table if not exists documents (
  id bigint generated always as identity primary key,
  content text,
  metadata jsonb,
  embedding vector(1536)
);

规范化后的合成广告行(测试数据)

全部为虚构合成值;ad_copy同时含紧迫与社会认同元素,可用于验证分类器只选“主要”角度

{
  "ad_archive_id": "1234567890",
  "page_name": "示例厨具旗舰店",
  "ad_copy": "最后48小时!不粘锅三件套直降40%,已售出12000套,好评率98%。",
  "start_date": "2026-08-20",
  "reach_estimate": 85000,
  "destination_url": "https://demo-kitchen.example.com/products/pan-set",
  "destination_domain": "demo-kitchen.example.com",
  "shopify_probe_url": "https://demo-kitchen.example.com/products.json",
  "persuasion_angle": "urgency",
  "angle_reason": "最后48小时与限量降价制造紧迫感"
}

输入与输出示例

本站虚构演示,未真实调用OpenAI;同一文案不同模型可能在urgency与social_proof间摇摆,属正常边界。

输入

对材料三的广告文案“最后48小时!不粘锅三件套直降40%,已售出12000套,好评率98%。”运行分类提示词。

对应输出

示意模型输出:{"angle":"urgency","reason":"最后48小时限时降价,紧迫感最强"};该行随后写入ads表,persuasion_angle列为urgency;文案向量入documents表,metadata含{"ad_archive_id":"1234567890","destination_domain":"demo-kitchen.example.com","angle":"urgency"}。

做完检查这些

  • Apify运行后广告条数不超过maxAds设定值,且每行都解析出destination_domain而非facebook跳转域名
  • 分类步骤对每条广告都产出六个标签之一的合法JSON,解析失败行有兜底处理
  • documents表中向量的metadata带ad_archive_id,能按角度标签过滤检索
  • 同一Shopify站点多条广告抓取后,products表按(shopify_product_id, domain)无重复行

容易卡住的地方

  • Facebook广告库URL必须先在浏览器完成关键词与国家筛选再复制,直接拼参数常抓错范围
  • 嵌入维度必须与documents表定义一致,换嵌入模型时忘记改维度会写入失败
  • products.json对非Shopify站点会404或返回HTML,需按状态码与内容类型判断后再解析
  • 原文未指定OpenAI具体模型版本,材料中的模型与维度为本站示例,需在凭据可用范围内自选
  • 抓取的跳转还原依赖Apify返回字段,字段名以actor实际输出为准,勿照抄猜测

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Track and classify Facebook ad angles with Apify, OpenAI, and Supabase
原作者
Apify
原始发布日期
2026-09-07T17:14:36.678Z
来源
https://n8n.io/workflows/19326