Commit fbc7f11477a82fe9dedf6c411988598ab20720b0

Authored by tangwang
1 parent 80f87e57

docs

docs/Shopify生态-个性化营销SaaS如何获取外部用户信息与个性化信号.md 0 → 100644
... ... @@ -0,0 +1,294 @@
  1 +# Shopify 生态:个性化营销/推荐 SaaS 如何获取“外部用户信息”与个性化信号(渠道、方式、数据项、案例)
  2 +
  3 +> 目标:回答“Shopify 店铺及其个性化营销 SaaS 一般怎么拿到外部用户信息/个性化信息?有哪些渠道、方式、能拿到什么数据?有哪些案例?”
  4 +> 结论先行:Shopify 生态里大多数个性化/营销 SaaS 的数据获取是 **“Shopify 第一方业务数据(Admin API/Webhooks) + 站内行为事件(Web Pixels/前端采集) + 外部平台连接(广告/邮件短信/忠诚度/客服/物流等)”** 三路合流,再在 SaaS 内部做身份合并、分群与个性化执行。
  5 +
  6 +---
  7 +
  8 +## 1. Shopify 生态的数据边界(先把“能/不能”说清楚)
  9 +
  10 +### 1.1 Shopify 是商家的“业务事实源(System of Record)”
  11 +
  12 +对个性化营销 SaaS 来说,Shopify 最稳定、最可依赖的数据来自:
  13 +
  14 +- **商品与库存**:Product / Variant / Collection / Price / Inventory
  15 +- **订单与履约**:Order / Line items / Discounts / Refunds / Fulfillment
  16 +- **客户与会员**:Customer(邮箱/手机号/地址/营销订阅状态等,视商家收集与合规)
  17 +- **店铺配置与渠道**:Sales channel/支付/配送等(通常是辅助)
  18 +
  19 +这些数据通常是“店内真实发生的事实”,适合做画像、分群、RFM、LTV、复购预测等。
  20 +
  21 +### 1.2 “外部用户信息”通常不是 Shopify 直接给,而是靠“连接外部平台”拿
  22 +
  23 +你想要的外部信号(广告点击、邮件打开点击、短信互动、社媒广告归因、客服对话、物流轨迹、评论/会员积分等),一般需要:
  24 +
  25 +- 商家授权第三方 SaaS 连接对应平台(OAuth / API Key / App 安装)
  26 +- SaaS 通过平台 API / Webhook 拉取或接收事件
  27 +- 再与 Shopify 的 customer/order 维度做 join
  28 +
  29 +---
  30 +
  31 +## 2. Shopify 侧:营销/个性化 SaaS 获取数据的“主干通道”
  32 +
  33 +> 这部分是 Shopify 生态里最关键的“取数通道”。典型 SaaS 都会同时使用 2~3 种。
  34 +
  35 +### 2.1 Admin API(REST/GraphQL):批量同步“业务事实”
  36 +
  37 +**用途**:首次全量同步 + 周期性增量同步(商品、客户、订单、库存…)。
  38 +
  39 +- **能拿到的数据(典型)**:
  40 + - **Catalog**:商品标题/描述/图片/类目/标签/价格/变体/SKU/库存
  41 + - **Orders**:下单时间、金额、折扣、税费、货币、line items、收货地址(如存在)、退款/取消
  42 + - **Customers**:邮箱/手机号(如收集)、营销订阅状态、默认地址、客户标签(tags)、创建时间、订单数等
  43 +- **工程做法**:
  44 + - “首次安装”用 Bulk/分页拉全量
  45 + - “后续变更”主要靠 Webhooks 推送补齐(见下)
  46 +
  47 +> 注:具体字段/资源会随 Shopify 版本与权限变化;你们在实现时应以 `shopify.dev` 的 Admin API 文档与应用权限为准。
  48 +
  49 +### 2.2 Webhooks:实时接收“业务事件”
  50 +
  51 +**用途**:订单创建/更新、退款、客户更新、库存变化等“事实变化”实时进入你们系统,支撑自动化与实时分群。
  52 +
  53 +- **常见事件类别**:
  54 + - **订单链路**:create/update/paid/fulfilled/cancelled/refunded(实际 topic 以官方为准)
  55 + - **客户链路**:customer create/update、营销订阅状态变化
  56 + - **商品链路**:product/variant/inventory 更新
  57 +- **能拿到的数据**:
  58 + - 事件对应对象的“快照”(订单、客户、商品等)
  59 + - 事件时间、对象 ID(可用于幂等与去重)
  60 +- **典型用法(个性化/营销)**:
  61 + - 下单后触发:感谢邮件、交叉销售、评价邀请、会员积分发放
  62 + - 退款后触发:挽回流失/客服介入
  63 +
  64 +### 2.3 Web Pixels / Customer Events:采集站内行为(浏览/加购/结账开始)
  65 +
  66 +**用途**:这是“个性化推荐/行为触发营销”的核心数据源,弥补 Shopify 业务事实对“浏览过程”的缺失。
  67 +
  68 +- **能拿到的数据(典型事件)**:
  69 + - 页面浏览、商品浏览、加购、开始结账、搜索、支付成功(部分场景)
  70 + - 页面/商品/购物车上下文(视事件与权限)
  71 +- **工程做法**:
  72 + - SaaS 通过 Shopify 的 Pixel/扩展机制注入追踪逻辑
  73 + - 事件发送到 SaaS 的采集 API(你们控制 schema 与幂等)
  74 +- **关键约束**:
  75 + - 受 **客户隐私/同意管理**影响(见 2.5)
  76 + - Safari/Firefox/Chrome 的追踪限制会降低第三方 cookie 能力,所以主流 SaaS 都尽量使用 **第一方 cookie + server-side** 补强
  77 +
  78 +### 2.4 Theme App Extension / App Proxy(历史上 ScriptTag):注入与回传
  79 +
  80 +**用途**:当需要在 storefront 上做更深的 UI/逻辑(弹窗、推荐位、表单、A/B)、或需要走你们域名的 server-to-server 通道时使用。
  81 +
  82 +- **Theme App Extension**:更“Shopify 原生”的注入方式(替代很多旧式 ScriptTag)
  83 +- **App Proxy**:把 `/apps/xxx` 路径代理到你们服务端,常用于:
  84 + - 把前端采集的 click id / 匿名 id 在“第一方路径”回传给你们
  85 + - 输出个性化推荐结果(例如 `/apps/reco?context=...`)
  86 +
  87 +### 2.5 Customer Privacy / Consent:决定“哪些信号能收、能用、能分享”
  88 +
  89 +**用途**:合规与工程强绑定。你们要把 consent 作为数据管道的开关:
  90 +
  91 +- **能影响的环节**:
  92 + - 是否能写 cookie、是否能触发追踪像素
  93 + - 是否能把哈希邮箱/手机号用于广告平台匹配(Enhanced/Advanced Matching)
  94 + - 是否允许把站内行为用于个性化(某些地区必须 opt-in)
  95 +
  96 +---
  97 +
  98 +## 3. “外部用户信息/个性化信号”的主要渠道(Shopify 生态常见做法)
  99 +
  100 +下面按渠道拆解“怎么接、能拿到哪些数据、能做哪些个性化”。
  101 +
  102 +### 3.1 广告/社交流量平台(Meta / Google / TikTok 等)
  103 +
  104 +**目的**:把“外部点击/触达”与“站内行为/订单”串起来(归因 + 人群 + 个性化)。
  105 +
  106 +- **接入方式**:
  107 + - **Shopify Channel App**(Meta/Google/TikTok 官方渠道应用):目录同步、像素/事件配置、广告管理入口
  108 + - **SaaS 自己对接广告平台 API**(OAuth + CAPI/Events API/Conversion Upload + 报表拉取)
  109 +- **你能拿到的数据**(对个性化 SaaS 最有用的):
  110 + - **click id / 入口参数**:`fbclid`、`ttclid`、`gclid/wbraid/gbraid`、UTM
  111 + - **归因维度(聚合)**:campaign/adgroup/ad/keyword、cost、impressions、clicks、conversions(报表拉取)
  112 + - **匹配增强**:哈希邮箱/手机号(用户下单/登录后得到)用于提升归因与跨设备匹配
  113 +- **典型用法**:
  114 + - 实时推荐:首次进入时就根据 `utm_campaign/adgroup` 打意图标签(“跑鞋广告组用户”)
  115 + - 分群:把“来自某 campaign 且购买过某品类”的客户形成高价值人群,回传投放
  116 +
  117 +> 你们之前的广告平台对接与用户匹配细节可参考:`docs/用户匹配与外部数据打通-平台官方机制提权.md`
  118 +
  119 +### 3.2 邮件/短信(Klaviyo / Omnisend / Attentive 等)
  120 +
  121 +**目的**:拿到“用户沟通互动”这一类外部信号,并把 Shopify 订单/行为用于触发自动化。
  122 +
  123 +- **接入方式**:
  124 + - Shopify App 安装后,SaaS 通过 Admin API/Webhooks 同步客户与订单
  125 + - 通过 Web Pixel/前端采集拿到浏览/加购/结账开始
  126 + - 邮件/短信平台回传互动:发送、送达、打开、点击、退订、投诉等(平台 API/Webhook)
  127 +- **你能拿到的数据**:
  128 + - **身份**:email/phone(以及订阅状态)
  129 + - **行为**:viewed product / added to cart / checkout started / placed order(站内事件)
  130 + - **触达效果**:open/click/attributed revenue(沟通侧事件)
  131 +- **典型用法**:
  132 + - “弃购”与“浏览未购”自动化
  133 + - 基于 LTV/RFM 的分层触达(VIP、沉睡唤醒、首单转化)
  134 +
  135 +**案例:Klaviyo(典型数据链路)**
  136 +
  137 +- **Shopify → Klaviyo**:客户、订单、商品目录、以及站内行为(浏览/加购/结账开始)
  138 +- **Klaviyo → Shopify/商家**:邮件/短信互动、分群结果、归因收入报表
  139 +
  140 +> 公开资料入口:可从 Klaviyo developer docs 与其 Shopify integration 文档进一步细化字段(建议你们实现时按其 webhook/event schema 对齐)。
  141 +
  142 +### 3.3 会员/忠诚度/评价(Yotpo / LoyaltyLion / Judge.me 等)
  143 +
  144 +**目的**:获取“口碑/忠诚度”信号,辅助个性化(例如 VIP 专属、评价驱动推荐)。
  145 +
  146 +- **接入方式**:
  147 + - Shopify Webhooks:订单完成触发评价邀请/积分
  148 + - SaaS 自身 API:评价提交、积分变动、会员等级变动(回传到你们或你们对接它)
  149 +- **能拿到的数据**:
  150 + - **评价**:评分、评论文本、图片、商品 ID、时间
  151 + - **忠诚度**:积分、等级、任务完成、兑换记录
  152 + - **触达互动**:评价邮件打开/点击、SMS 互动(视产品)
  153 +- **个性化用法**:
  154 + - 推荐理由:展示“同等级用户喜欢”
  155 + - 权益个性化:VIP 只看 VIP 价、专属礼包
  156 +
  157 +**案例:Yotpo(典型信号)**
  158 +
  159 +- Reviews/UGC:商品级口碑信号
  160 +- Loyalty:用户级“忠诚度标签”
  161 +- SMS/Email:触达互动信号
  162 +
  163 +### 3.4 客服/工单/在线聊天(Gorgias / Zendesk / Reamaze 等)
  164 +
  165 +**目的**:把“服务侧信号”纳入画像(投诉、退换、咨询意图),做更稳健的个性化。
  166 +
  167 +- **接入方式**:
  168 + - 客服系统 API/Webhook(ticket created/updated, tags, CSAT)
  169 + - 与 Shopify 订单/客户 join(通常靠 email/phone/order_id)
  170 +- **能拿到的数据**:
  171 + - 工单类型、标签、优先级、解决时长、满意度
  172 + - 对话文本(注意隐私与脱敏)
  173 +- **个性化用法**:
  174 + - 对高投诉用户避免强推销,先服务后营销
  175 + - 退货风险用户推荐更稳妥的商品/尺码指引
  176 +
  177 +### 3.5 物流/履约/退换货(AfterShip / Loop Returns 等)
  178 +
  179 +**目的**:让营销/推荐“知道物流与退换状态”,避免误触达。
  180 +
  181 +- **接入方式**:
  182 + - 物流/退货平台 API/Webhook(shipment update, delivered, return initiated, return received)
  183 + - Shopify Fulfillment/Refund Webhooks 作为补充
  184 +- **能拿到的数据**:
  185 + - 运输状态、妥投时间、异常(延误/丢件)
  186 + - 退货原因、退货商品、退款金额
  187 +- **个性化用法**:
  188 + - “已签收 + 7 天”触发评价/复购推荐
  189 + - 退货原因驱动推荐(尺码偏小 → 推荐更合适尺码/替代款)
  190 +
  191 +### 3.6 CDP/数据管道(Segment / mParticle / RudderStack 等)
  192 +
  193 +**目的**:把多触点事件(站内、App、广告、邮件短信、客服)统一成事件流,再分发给各 SaaS/仓库。
  194 +
  195 +- **接入方式**:
  196 + - Shopify 站内事件 → CDP
  197 + - Shopify 订单/客户 → 数据仓库/ETL
  198 + - 外部平台事件 → CDP
  199 +- **能拿到的数据**:
  200 + - 统一事件流(标准化 schema)
  201 + - 更强的路由与治理能力(去重、版本、权限)
  202 +
  203 +> 对你们要做“电商个性化引擎 SaaS”而言,CDP 是“生态对接加速器”,但不是必需前置。很多 SaaS 是自己做事件总线(Kafka)+ connector。
  204 +
  205 +### 3.7 Shopify Audiences(生态里很特殊的一条“外部能力”)
  206 +
  207 +**定位**:偏“广告获客/人群投放”的能力;它的关键价值是“用 Shopify 网络/数据能力帮助生成高意图受众”,而不是把原始用户数据给第三方。
  208 +
  209 +- **你能得到的**:可用于投放平台的“受众包/受众类型”(面向 Meta 等,具体以官方为准)
  210 +- **你通常拿不到的**:可反推出个体用户身份的原始明细(更偏隐私保护)
  211 +
  212 +---
  213 +
  214 +## 4. 个性化营销 SaaS 在 Shopify 上的典型落地架构(你们可直接借鉴)
  215 +
  216 +### 4.1 三条数据管道
  217 +
  218 +- **事实管道(Admin API + Webhooks)**:客户/订单/商品/库存
  219 +- **行为管道(Web Pixels/前端采集)**:浏览/加购/结账开始/搜索
  220 +- **外部信号管道(平台 API/Webhooks)**:广告、邮件短信、忠诚度、客服、物流
  221 +
  222 +### 4.2 统一身份(最常见 join key)
  223 +
  224 +- **确定性主键**:email、phone、Shopify customer id、order id
  225 +- **匿名阶段**:first-party cookie / `anonymous_id`
  226 +- **广告归因**:click id(fbclid/ttclid/gclid/wbraid/gbraid)+ 哈希 PII(合规后)
  227 +
  228 +---
  229 +
  230 +## 5. 典型案例:个性化/推荐 SaaS 在 Shopify 上怎么“拿数并生效”
  231 +
  232 +### 5.1 Rebuy / 同类站内推荐
  233 +
  234 +- **输入**:
  235 + - Shopify 商品目录/库存/价格(Admin API)
  236 + - 订单与历史购买(Webhooks/同步)
  237 + - 实时行为(浏览/加购/结账开始:Web Pixels/前端采集)
  238 +- **输出**:
  239 + - 推荐位渲染(Theme App Extension / App Proxy)
  240 + - A/B 测试与归因(自身埋点 + Shopify 订单回流)
  241 +
  242 +### 5.2 Nosto / 同类全渠道个性化
  243 +
  244 +- **输入**:
  245 + - Shopify 业务事实(产品/订单/客户)
  246 + - 站内行为(Pixel/事件)
  247 + - 广告/邮件短信等外部平台对接(S2S + 报表)
  248 +- **输出**:
  249 + - 站内推荐、个性化排序、受众分群与回传投放
  250 +
  251 +### 5.3 Klaviyo / 同类营销自动化
  252 +
  253 +- **输入**:
  254 + - Shopify 客户/订单/目录
  255 + - 站内行为事件
  256 + - 邮件/短信互动事件(打开/点击/退订)
  257 +- **输出**:
  258 + - 自动化流程(welcome、abandon cart、browse abandon、post-purchase)
  259 + - 高价值分群(VIP、沉睡、复购)
  260 +
  261 +### 5.4 Yotpo / 同类评价与忠诚度
  262 +
  263 +- **输入**:
  264 + - 订单触发(发起评价邀请、积分发放)
  265 + - 评价/UGC/忠诚度事件
  266 +- **输出**:
  267 + - 商品口碑展示、VIP 权益、复购激励
  268 +
  269 +---
  270 +
  271 +## 6. 给你们做“个性化推进引擎 SaaS”的落地建议(Shopify 生态优先级)
  272 +
  273 +### 6.1 MVP(最小闭环)
  274 +
  275 +- **Shopify Admin API + Webhooks**:同步商品/客户/订单
  276 +- **Web Pixels/前端采集**:补齐浏览/加购/结账开始等行为
  277 +- **一个外部平台连接**:优先 Meta 或 Google(看商家投放结构)
  278 +- **身份合并**:anonymous → email/phone/customer_id 的确定性合并
  279 +
  280 +### 6.2 增强(提权匹配与外部闭环)
  281 +
  282 +- 广告平台:CAPI/Events API/Conversion Upload + 报表拉取
  283 +- 邮件短信:对接 Klaviyo/Omnisend/Attentive 的互动事件(open/click)
  284 +- 物流/退换:把“已签收/退货原因”纳入策略
  285 +
  286 +---
  287 +
  288 +## 7. 参考入口(建议你们实现时以官方文档为准)
  289 +
  290 +- Shopify Developer Docs:`https://shopify.dev/`
  291 +- Shopify Help Center(Audiences/隐私/营销报告等):`https://help.shopify.com/`
  292 +- Shopify Audiences(受众类型说明等,help center 页面为准):`https://help.shopify.com/`
  293 +
  294 +
... ...
docs/blog/0.搜索app宣传页.md 0 → 100644
... ... @@ -0,0 +1,4 @@
  1 +
  2 +按价格、尺寸、颜色、标签、供应商、品牌、系列和自定义字段等即时筛选产品。轻松安装并自定义产品筛选菜单。
  3 +AI驱动的搜索通过智能同义词和即时建议提供更相关的结果。
  4 +单一语言上架商品,支持多达30中语言进行精确搜索。
... ...
docs/blog/prompt.md
... ... @@ -4,6 +4,75 @@
4 4  
5 5 以以下内容为纲要:
6 6  
  7 +1.3 搜索引导 & 行业热点 - sugg 、 相关query
  8 +
  9 +提升产品发现效率的高效电商导航优化方案
  10 +1. 主导航,面包屑分类导航
  11 +2. 分面搜索(或称引导式导航)可帮助用户根据尺寸、颜色、价格和品牌等筛选条件,分析、整理和筛选大量产品库存。
  12 +除了颜色、尺寸等通用的筛选条件之外,我们能为商品 构建特色的feature:这些feature候选集来自于我们从亚马逊、谷歌等外部趋势信息抓取的标签,
  13 +比如紧身裤的Features包括:seamless, breathable, sweat wicking, Bum Scrunch, lightweight, pockets, Adjustable Waistbands, Reflective Branding
  14 +Fit包括(Choose your fit): , regular, tall, short, compression fit, muscle fit
  15 +3. 排序
  16 +
  17 +
  18 +
  19 +独立站初期搜索数据少,用户搜索后无结果或结果不佳时,容易放弃。
  20 +
  21 +- 减少用户输入成本
  22 +- 纠正拼写错误
  23 +- 引导长尾关键词转化(长尾词转化率通常高3-5倍)
  24 +- 展示热销品类和品牌
  25 +
  26 +- 社交监听:爬取TikTok/Instagram/Pinterest热门标签,识别爆款商品
  27 +- 搜索趋势API:集成Google Trends、Amazon热搜榜
  28 +- 自动标签系统:对新品自动打"Trending"、"Viral"、"Seasonal"标签
  29 +- 智能投放建议:基于热点趋势,自动推荐相关商品到首页banner位
  30 +
  31 +技术方案:
  32 +SaaS级服务:提供开箱即用的下拉提示(suggest)、相关搜索、底纹词功能,帮助用户快速修正意图。
  33 +冷启动策略:初期结合行业热词与商家商品数据生成提示。
  34 +
  35 +1.4 分面
  36 +行业基础分面:
  37 +将多面筛选器放置在 SERP 的左侧,以帮助购物者根据所需的产品属性(尺寸、价格、颜色等)缩小搜索范围,并高效地找到他们想要的东西。
  38 +
  39 +需求背景:
  40 +出海服装/3C类商品SKU可达10万+,用户需要高效筛选:
  41 +- 基础分面:价格、品牌、颜色、尺码、评分
  42 +- 行业特定分面:
  43 + - 服装:材质、季节、风格(欧美"streetwear" vs 东南亚"modest fashion")
  44 + - 3C:兼容性、接口类型、认证标准(FCC/CE)
  45 + - 美妆:肤质、成分、 cruelty-free认证
  46 +- 智能动态分面:根据搜索词自动展示相关筛选维度(搜索"dress"显示"occasion"筛选,搜索"phone case"显示"model compatibility")
  47 +技术方案:
  48 +- 元数据驱动:基于商品metafields动态生成分面,参考Searchanise的实现
  49 +- 层级分面:支持多选、范围选择(价格滑块)、可视化选择(颜色色块)
  50 +- 性能优化:对分面值进行热度排序,只展示Top N(如颜色只展示出现频率前20的颜色)
  51 +- 移动端适配:抽屉式筛选界面,支持"一键清除"和"保存筛选组合"
  52 +- SEO友好:使用canonical标签避免重复内容,参考Shopify的分面URL管理策略
  53 +
  54 +智能分面:
  55 +1.5 精排模型
  56 +
  57 +
  58 +商家利润最大化、清库存等业务目标无法通过简单的“销量排序”实现。
  59 +相关性和业务提权如何权衡。
  60 +
  61 +搜索结果初步召回后,需要平衡多重业务目标:
  62 +- 转化率 vs GMV vs 利润率
  63 +- 新品冷启动曝光
  64 +- 库存周转(滞销品优先展示)
  65 +
  66 +技术方案:
  67 +技术方案:
  68 +- 多目标排序:采用LambdaMART或DeepFM模型,输入特征包括:
  69 + - 商品特征:价格、点击率、转化率、库存深度
  70 + - 用户特征:购买力、品牌偏好、复购周期
  71 + - 上下文特征:搜索词、设备类型、地理位置
  72 +- 实时特征工程:使用Flink处理实时行为流,更新商品热度分数
  73 +- 人工干预接口:运营可置顶商品、调整权重系数
  74 +- 在线学习:每15分钟根据最新转化数据更新模型
  75 +
7 76  
8 77 以下是一些外部参考资料,注意谨慎引用:
9 78  
... ...
docs/blog/refer/独立站人群分类方法大全:破解数据孤岛的精准营销体系.md
... ... @@ -0,0 +1,219 @@
  1 +# **独立站人群分类方法大全:破解数据孤岛的精准营销体系**
  2 +
  3 +基于广泛的行业实践与营销插件生态调研,独立站可通过**6大一级分类、23个二级维度**构建人群体系,实现无数据互通前提下的精准营销。以下是系统化方法与实施路径:
  4 +
  5 +---
  6 +
  7 +## **一、基于用户属性的分类(Static Segmentation)**
  8 +
  9 +### **1.1 人口统计分类**
  10 +**核心要点:** 利用注册信息、表单采集或CRM同步的静态属性,构建基础人群框架。
  11 +
  12 +**关键点:**
  13 +- **年龄分段**:儿童/青少年/青年/中年/老年,儿童用品重点关注家长年龄
  14 +- **性别差异**:美妆、服饰品类需区分男女,但更需识别"为异性购买"场景
  15 +- **收入水平**:通过邮编、客单价、商品品类反向推断(奢侈品买家vs平价商品常客)
  16 +- **教育背景**:B2B独立站可识别技术型买家vs决策型买家
  17 +
  18 +**Shopify插件实现**:Klaviyo的**Profile Properties**自动同步Shopify客户标签,支持按"客户生日"、"会员等级"细分。
  19 +
  20 +---
  21 +
  22 +### **1.2 地理分类**
  23 +**核心要点:** 通过IP定位、配送地址识别用户物理位置,适配本地化策略。
  24 +
  25 +**关键点:**
  26 +- **国家/地区**:欧美用户重隐私,需披露GDPR合规声明;中东用户偏好货到付款
  27 +- **城市等级**:一线城市推新品,下沉市场推性价比
  28 +- **气候带**:东南亚雨季推雨具,迪拜夏季推防晒
  29 +- **时区**:邮件发送时间优化(纽约用户早上8点vs东京用户晚上8点)
  30 +
  31 +**Shopify插件实现**:**Geo:Pro Geolocation**自动识别国家并切换语言/货币,**BOLD Cashier**基于地理位置预填税务信息。
  32 +
  33 +---
  34 +
  35 +### **1.3 技术统计分类**
  36 +**核心要点:** 分析用户设备与网络环境,优化体验与营销触点。
  37 +
  38 +**关键点:**
  39 +- **设备类型**:移动端用户倾向冲动购买,结账流程需简化至3步以内;桌面端用户适合客单价>$200的复杂决策
  40 +- **浏览器**:Safari用户iOS生态倾向强,可推Apple Pay;Chrome用户接受扩展插件,可推比价工具
  41 +- **操作系统**:iOS用户ARPU平均比安卓高30%,可差异化定价(需合规)
  42 +- **网络速度**:3G网络用户加载>3秒易流失,需压缩图片、简化交互
  43 +
  44 +**Shopify插件实现**:**Contentsquare**(集成)可分析不同设备的滚动深度与点击热图,发现移动端40%用户看不到页面下方的促销横幅。**Shopify Flow**可自动为iOS用户打标签。
  45 +
  46 +---
  47 +
  48 +## **二、基于用户行为的分类(Behavioral Segmentation)**
  49 +
  50 +### **2.1 流量行为分类(Top of Funnel)**
  51 +**核心要点:** 首次访问互动模式决定用户潜力,需在30秒内完成分类。
  52 +
  53 +**关键点:**
  54 +- **来源渠道**:
  55 + - **Instagram**:视觉驱动,推高颜值单品、网红同款
  56 + - **Facebook**:社交信任,推"好友购买"、评论数高的商品
  57 + - **Google Organic**:搜索意图明确,推SEO对应品类
  58 + - **TikTok**:娱乐冲动,推<$30低价爆款
  59 +- **落地页类型**:首页访客需爆款引流,商品页访客需交叉推荐,博客访客需内容营销转化
  60 +- **搜索关键词**:含"优惠"的搜索→推折扣区;含"评测"→推视频内容
  61 +
  62 +**Shopify插件实现**:**Attentive**的UTM自动解析功能,可为不同渠道用户推送差异化欢迎短信。**Adapty**支持按归因来源(attribution source)划分人群。
  63 +
  64 +---
  65 +
  66 +### **2.2 浏览行为分类(Mid Funnel)**
  67 +**核心要点:** 页面互动深度揭示用户兴趣浓度与购买意向。
  68 +
  69 +**关键点:**
  70 +- **浏览深度**:浏览>5个商品页的用户,购买概率是浏览<3页的3.2倍,需触发"最近浏览"抽屉
  71 +- **停留时长**:商品页停留>60秒→推"相关视频评测",停留<10秒→推"快速决策亮点"
  72 +- **滚动行为**:滚动至页尾用户(仅20%)对详情敏感,可推"技术规格对比"
  73 +- **交互元素**:点击"尺码表"→推"尺码推荐AI";点击"客服"→打标"高服务需求用户"
  74 +
  75 +**Shopify插件实现**:**Yotpo**的"浏览但未加购"触发器,可自动发送"您可能喜欢"邮件。**OptinMonster**的Exit-Intent技术,识别鼠标上移动作,触发挽留弹窗。
  76 +
  77 +---
  78 +
  79 +### **2.3 转化行为分类(Bottom Funnel)**
  80 +**核心要点:** 购买历史是最高价值数据,直接驱动复购与交叉销售。
  81 +
  82 +**关键点:**
  83 +- **首次购买金额**:<$20用户属价格敏感,复购需强折扣;>$200用户需专属客服
  84 +- **购买频次**:近30天购买3次→高频用户,可推订阅制(如每月自动配送)
  85 +- **商品品类**:买瑜伽垫→交叉推荐瑜伽服、泡沫轴,"运动场景"扩展
  86 +- **支付方式**:PayPal用户重便捷,可推一键复购;信用卡用户可推分期免息
  87 +
  88 +**Shopify插件实现**:**ReConvert**在结账后页面展示"互补商品",转化率可达12%。**ReCharge**为高频用户打造订阅盒模式。
  89 +
  90 +---
  91 +
  92 +## **三、心理与价值分类(Psychographic & Value)**
  93 +
  94 +### **3.1 心理图谱分类**
  95 +**核心要点:** 通过问卷、评价内容、社交媒体互动推断生活方式与价值观。
  96 +
  97 +**关键点:**
  98 +- **环保主义者**:购买有机食品、可持续包装商品→推"碳中和"产品线
  99 +- **冒险精神**:购买户外装备→推"极限运动保险"或"探险目的地"
  100 +- **家庭导向**:购买母婴用品→推"家庭套餐"与"儿童安全指南"
  101 +- **社交认同**:购买奢侈品→推"晒单有礼"
  102 +
  103 +**Shopify插件实现**:**Octane AI**创建购物测验("测测你的护肤类型"),根据答案自动打标签。**Yotpo**分析评价情感,识别"环保"、"品质"等关键词。
  104 +
  105 +---
  106 +
  107 +### **3.2 价值取向分类**
  108 +**核心要点:** 识别用户的核心购买驱动:价格、便利、品质或创新。
  109 +
  110 +**关键点:**
  111 +- **价格敏感**:历史订单中使用过优惠券>50%→推"特价专区"
  112 +- **品质导向**:购买商品客单价>品类均值2倍→推"设计师系列"
  113 +- **便利优先**:多次选择"次日达"→推"会员免运费"
  114 +- **创新尝鲜**:新品上市首周购买者→打标"早期采用者",后续优先推送
  115 +
  116 +**Shopify插件实现**:**LimeSpot**的"智能客户细分"自动识别价格敏感与品质导向人群。**Nosto**可基于浏览行为自动推送"新品试用"邀请。
  117 +
  118 +---
  119 +
  120 +## **四、交易与生命周期分类(Transactional & Lifecycle)**
  121 +
  122 +### **4.1 订单价值分类(RFM模型)**
  123 +**核心要点:** 独立站黄金法则,通过Recency(近购)、Frequency(频次)、Monetary(金额)三维打分。
  124 +
  125 +**关键点:**
  126 +- ** champions(冠军) **:R=5, F=5, M=5→500名核心用户贡献40%营收,需VIP社群
  127 +- ** loyal customers(忠诚) **:F=5但R=3→活跃买家,可推"好友推荐计划"
  128 +- ** at risk(流失风险) **:R=1, F=3→30天未访问,需触发7折优惠券
  129 +- ** new customers(新客) **:仅1次购买→30天后推"复购礼包"
  130 +
  131 +** Shopify插件实现**:**Klaviyo**内置RFM细分模板,自动计算并打标签。**Lifetimely**可视化LTV与RFM分布,识别高价值客户。
  132 +
  133 +---
  134 +
  135 +### **4.2 生命周期阶段分类**
  136 +**核心要点:** 用户在品牌旅程中的位置决定营销策略。
  137 +
  138 +**关键点:**
  139 +- **潜在客户**:未注册但浏览→推"首单9折+免运费"捕获邮箱
  140 +- **新注册用户**:注册24小时内推"新手指南"与"新人专享"
  141 +- **首购客户**:支付成功后推"加入会员享积分"
  142 +- **复购客户**:第3次购买后推"订阅制享8折"
  143 +- **流失预警**:90天无访问→推"回归专属50% off"
  144 +
  145 +**Shopify插件实现**:**Omnisend**的自动化工作流,支持"欢迎系列"、"弃购挽回"、"复购激励"等生命周期序列。
  146 +
  147 +---
  148 +
  149 +## **五、Shopify生态插件的实战组合策略**
  150 +
  151 +### **5.1 基础插件组合(预算<$50/月)**
  152 +| 插件 | 功能 | 细分能力 |
  153 +|------|------|----------|
  154 +| **Klaviyo** | 邮件营销 | RFM、行为触发、生命周期 |
  155 +| **Google Analytics** | 流量分析 | 来源、设备、地理位置 |
  156 +| **Shopify Flow** | 自动化标签 | 购买金额、频次 |
  157 +| **OptinMonster** | 弹窗捕获 | 退出意图、停留时长 |
  158 +
  159 +### **5.2 进阶插件组合(预算$50-200/月)**
  160 +| 插件 | 功能 | 细分能力 |
  161 +|------|------|----------|
  162 +| **Adapty** | 订阅管理 | 归因来源、客群分析 |
  163 +| **Yotpo** | 评价+忠诚计划 | 评价情感、会员等级 |
  164 +| **ReConvert** | 结账后追加 | 购买历史、交叉推荐 |
  165 +| **Octane AI** | 购物测验 | 心理图谱、偏好标签 |
  166 +
  167 +### **5.3 高阶插件组合(预算>$200/月)**
  168 +| 插件 | 功能 | 细分能力 |
  169 +|------|------|----------|
  170 +| **Dynamic Yield** | 全渠道个性化 | 实时意图、预测模型 |
  171 +| **Nosto** | AI推荐引擎 | 视觉相似、协同过滤 |
  172 +| **LimeSpot** | 智能细分 | 价格敏感、品质导向 |
  173 +| **Segments Analytics** | RFM深度分析 | 自动化客群报告 |
  174 +
  175 +---
  176 +
  177 +## **六、破解数据孤岛的三大核心策略**
  178 +
  179 +### **6.1 策略一:第一方数据最大化**
  180 +**核心要点:** 在合规前提下,采集每个可能的用户触点数据,构建自有画像。
  181 +
  182 +**关键点:**
  183 +- **激励提供数据**:提供10%折扣换取生日信息,通过测验换取偏好
  184 +- **渐进式画像**:首次访问仅记录渠道,注册后补充邮箱,首购后补充地址,逐步丰富
  185 +- **数据清洗**:每月剔除无效邮箱、合并重复ID,保持画像准确性
  186 +
  187 +### **6.2 策略二:行为推断代替属性缺失**
  188 +**核心要点:** 不依赖用户填写的静态属性,而是通过行为动态推断意图。
  189 +
  190 +**关键点:**
  191 +- **购买力推断**:浏览$500商品+停留>2分钟→高购买力,无需知道真实收入
  192 +- **性别推断**:连续浏览3件连衣裙→女性偏好概率80%,即使注册未填性别
  193 +- **场景推断**:深夜访问+快速滑动→浏览型用户,白天访问+深度阅读→研究型用户
  194 +
  195 +### **6.3 策略三:生命周期微分群**
  196 +**核心要点:** 将宏观数据不足的用户池,按生命周期切分为更小的可运营单元。
  197 +
  198 +**关键点:**
  199 +- **新客群**:100人规模即可运营,推"新人专享品"
  200 +- **流失预警群**:50人规模即可触发挽回邮件,推"回归优惠"
  201 +- **高价值群**:30人规模即可拉VIP社群,提供专属服务
  202 +
  203 +---
  204 +
  205 +## **七、实施清单:独立站7天启动计划**
  206 +
  207 +| 天数 | 任务 | 工具 | 产出 |
  208 +|------|------|------|------|
  209 +| **Day 1** | 安装Klaviyo+Google Analytics,开启基础追踪 | Shopify App Store | 流量数据源 |
  210 +| **Day 2** | 配置Shopify Flow,自动打标签(新客/复购/VIP) | Shopify Flow | 生命周期分群 |
  211 +| **Day 3** | 创建3个RFM客群(高/中/低价值) | Lifetimely | 价值分群 |
  212 +| **Day 4** | 部署Exit-Intent弹窗,捕获弃购用户 | OptinMonster | 流失挽回机制 |
  213 +| **Day 5** | 设计购物测验,收集心理图谱 | Octane AI | 偏好标签 |
  214 +| **Day 6** | 设置3条自动化邮件(欢迎/弃购/复购) | Klaviyo | 触达流程 |
  215 +| **Day 7** | 分析首日数据,识别最优渠道+高转化行为 | GA+Klaviyo | 优化方向 |
  216 +
  217 +---
  218 +
  219 +**总结**:独立站虽处"数据孤岛",但通过上述23个细分维度+Shopify插件组合,可在30天内构建精准营销体系。核心在于**不依赖外部数据**,而是**深度挖掘第一方行为数据**,实现"小数据、大洞察"。
0 220 \ No newline at end of file
... ...
docs/blog/智能引导2.md
... ... @@ -0,0 +1,60 @@
  1 +# 导航即发现:构建高效电商独立站的产品搜索引导体系
  2 +
  3 +在信息过载的电商世界中,用户耐心正以秒计算。尤其对于独立站而言,访客往往带着探索的心态而来,若无法在三次点击内找到所需,他们便会毫不犹豫地离开。传统的、被动的搜索框已不足以支撑现代消费者的发现旅程。真正的竞争力,在于构建一套**主动引导、智能理解、高效筛选**的导航与搜索系统,将产品发现转化为一场流畅的、愉悦的探索体验。
  4 +
  5 +本文将为您解析,如何通过系统化的导航优化方案,显著提升独立站的产品发现效率。
  6 +
  7 +## 一、基础骨架:清晰的主导航与面包屑路径
  8 +
  9 +**主导航**是网站的“总目录”,其设计必须直观反映您的核心品类结构。建议采用**分级菜单**或**巨型菜单**,清晰展示父类别与子类别。关键并非展示所有,而是根据用户行为数据(如点击热图)和业务重点,**优先展示最热门的3-5个顶级品类**。对于服装、3C等SKU庞大的独立站,一个逻辑清晰的导航结构是降低用户认知负荷的第一步。
  10 +
  11 +**面包屑导航**则是用户的“探索地图”,它以线性路径(如:首页 > 女装 > 连衣裙 > 修身款)清晰展示用户当前位置,并允许一键返回任何上级页面。这不仅能提升用户体验,减少“迷路”的挫败感,更对搜索引擎优化(SEO)至关重要,有助于搜索引擎理解网站结构。
  12 +
  13 +## 二、核心引擎:智能分面搜索(引导式导航)
  14 +
  15 +当用户进入一个包含数万SKU的品类页面时,面对海量商品,分面搜索(Faceted Search)成为必不可少的“筛子”。它允许用户通过多维度筛选条件,快速缩小范围,直达目标。
  16 +
  17 +1. **基础通用分面**:这是标配,包括价格范围(建议使用滑块)、颜色(可视化色块)、尺码、品牌、用户评分等。这些分面应放置在搜索结果页(SERP)的左侧或顶部,便于用户随时调整。
  18 +
  19 +2. **行业特色分面(构建差异化优势)**:这是独立站展现专业度、贴合用户精细需求的关键。我们利用外部趋势数据(如亚马逊热词、社交平台标签)为商品构建丰富的特色属性(Features)。
  20 + * **服装站**:除了材质、季节,可添加如 `Seamless`(无痕)、`Breathable`(透气)、`Bum Scrunch`(提臀)、带口袋等特色筛选。
  21 + * **3C站**:可筛选接口类型(USB-C/Thunderbolt)、兼容设备型号、认证标准(FCC/CE)。
  22 + * **美妆站**:可按肤质(油性/干性)、成分(是否含酸)、`Cruelty-Free`(零残忍)等筛选。
  23 +
  24 +3. **智能动态分面**:系统能根据当前搜索词或所选品类,**动态展示最相关的筛选维度**。例如,当用户搜索“连衣裙”时,自动突出“场合”(婚宴、通勤)和“裙长”分面;搜索“手机壳”时,则优先显示“手机型号兼容性”分面。这种动态适配能力,极大提升了筛选效率。
  25 +
  26 +**技术实现**:基于商品元数据(metafields)动态生成分面,并对分面值进行热度排序与性能优化(如只展示前20个热门颜色),确保在移动端和桌面端均有流畅体验。
  27 +
  28 +## 三、决策助推:个性化排序与精排策略
  29 +
  30 +在用户完成筛选后,列表的排序方式直接影响其最终决策。简单的“按销量”或“按上新”排序已无法满足多元的业务目标。
  31 +
  32 +**智能排序模型**需要平衡用户意图与商业目标:
  33 +* **对用户**:默认提供“相关性”排序,确保结果最匹配查询。
  34 +* **对业务**:需融入“多目标优化”精排模型(如采用LambdaMART等机器学习算法),在召回相关商品后,根据**实时特征**进行最终排序。这些特征包括:
  35 + * **商品特征**:利润率、库存深度、新品标记、预计转化率。
  36 + * **用户特征**:历史偏好、购买力水平。
  37 + * **上下文特征**:实时搜索词、用户地理位置。
  38 +* **运营可控性**:为商家提供后台干预接口,可针对特定活动或清库存目标,临时提升某些商品的排序权重,实现 **“相关性”与“业务提效”的完美权衡**。
  39 +
  40 +## 四、冷启动与趋势引领:主动的搜索引导
  41 +
  42 +独立站初期最大的挑战是搜索数据不足,“无结果”或“结果差”的体验极易导致用户流失。因此,**主动引导**比被动响应更为重要。
  43 +
  44 +1. **搜索框智能引导**:
  45 + * **下拉提示(Suggest)**:用户输入时,实时提供热门搜索词、品牌、品类建议,**大幅降低输入成本**。
  46 + * **纠正拼写**:自动识别并纠正常见拼写错误。
  47 + * **相关搜索与底纹词**:在搜索结果的顶部或底部,展示相关查询,引导用户探索长尾关键词(其转化率通常高出3-5倍)。
  48 +
  49 +2. **破解冷启动**:初期,系统可结合**行业通用热词**与您站内已有的商品数据,生成高质量的提示词,确保搜索引导从第一天起就有效能。
  50 +
  51 +3. **融入全球趋势**:通过集成社交监听与搜索趋势API(如分析TikTok、Instagram热门标签,抓取Google Trends数据),系统能自动为新品打上`Trending`、`Viral`等标签,并智能推荐至首页Banner或相关品类入口,让您的独立站始终保持潮流敏锐度。
  52 +
  53 +### 结语:导航即增长
  54 +
  55 +在竞争激烈的独立站出海赛道,卓越的导航与搜索引导系统不再是“加分项”,而是“生存项”。它通过**清晰的结构、智能的筛选、个性化的排序和前瞻性的引导**,将无目的的浏览者转化为有目标的购买者,将低效的查找过程转化为高效的产品发现旅程。
  56 +
  57 +我们的SaaS解决方案,正是为此而生。我们提供**开箱即用的智能搜索与导航套件**,从分面筛选、智能排序到趋势集成,帮助您的独立站在任何阶段——尤其是数据稀缺的冷启动期——都能提供堪比平台大站的流畅发现体验,从而提升转化率、增加客单价,最终驱动业务的可持续增长。
  58 +
  59 +---
  60 +*让每一次点击都离购买更近一步。用智能导航,重新定义您独立站的发现效率。*
0 61 \ No newline at end of file
... ...
docs/blog/智能推荐5.md
... ... @@ -1,99 +0,0 @@
1   -不止于搜索:揭秘驱动独立站增长的智能推荐技术
2   -
3   -在电商独立站的世界里,搜索框曾是连接用户与商品的唯一桥梁。然而,传统的、被动的关键字匹配已难以满足数字时代消费者的期待。他们渴望的是一种能理解其意图、预判其喜好,并像贴心顾问一样主动提供建议的购物体验。
4   -
5   -这正是智能推荐技术的价值所在。它不仅是搜索的延伸,更是电商从“人找货”迈向“货找人”的核心引擎。本文将深入解析,一套先进的SaaS系统如何通过多维度智能推荐,为独立站商家激活流量、提升转化,并构建长期用户忠诚。
6   -
7   -一、 从被动到主动:智能推荐的核心技术演化
8   -
9   -智能推荐系统的核心,在于模拟并超越线下购物中优秀导购的洞察力。其技术演进经历了几个关键阶段,并最终融合为今日的混合智能体系。
10   -
11   -1. 协同过滤:从“群体智慧”中发现偏好
12   - 这是推荐系统的经典算法,分为基于用户和基于物品两种。简单来说,其逻辑是“和你相似的人喜欢的,你可能也喜欢”或“你喜欢了A,可能也会喜欢与A相似的B”。它善于挖掘长尾兴趣,是电商推荐的基石。我们的系统通过高效的实时计算,能在海量用户行为中快速发现这些模式。
13   -
14   -2. Look-alike人群扩散:从“种子用户”引爆增长
15   - 当您想精准触达某一高价值人群(如已购买某奢侈品的用户)时,Look-alike技术大显身手。它通过分析“种子用户”的深层特征(行为、属性),在全站用户中寻找特征相似的人群并进行扩散。这极大提升了广告投放、活动推送的精准度与ROI,是实现精准营销的利器。
16   -
17   -3. 强化学习:拥有“进化”能力的智能引擎
18   - 如果说协同过滤是基于历史经验的“老专家”,那么强化学习就是能在交互中持续学习的“超级大脑”。我们的系统应用强化学习,将每一次推荐视为与用户环境的一次交互。系统根据用户的点击、购买、停留等实时反馈(奖励信号)不断调整推荐策略。这使得推荐能够:
19   - ◦ 动态适应:实时响应用户当前会话中的兴趣漂移。
20   -
21   - ◦ 长期优化:不仅追求单次点击,更考虑用户长期价值(如复购、生命周期价值)。
22   -
23   - ◦ 智能探索:主动推荐一些“不确定但可能有惊喜”的商品,打破信息茧房,发现新的增长点。
24   -
25   -二、 实战场景:全链路智能推荐布局
26   -
27   -技术最终服务于场景。我们的系统将上述技术深度集成,在用户购物旅程的每一个关键节点提供“润物细无声”的个性化体验。
28   -
29   -• 首页“猜你喜欢”:基于用户历史行为、实时点击及相似用户偏好,动态生成个性化商品流,提升首屏点击率与停留时长。
30   -
31   -• 商品详情页“关联推荐”:提供“看了又看”、“买了也买”、“搭配推荐”等多种场景,有效提升客单价。
32   -
33   -• 加购与购物车页:基于已加购商品,推荐互补品、替代品或优惠组合,降低购物车放弃率,推动结算。
34   -
35   -• 购后与订单页:在订单确认、列表及详情页,推荐保养品、配件或复购周期商品,开启新一轮复购旅程。
36   -
37   -三、 破解行业难题:冷启动与精细化运营
38   -
39   -先进的推荐系统,必须能解决电商运营中的实际痛点。
40   -
41   -• 物品冷启动:让新品不再“沉默”
42   -
43   - 对于日更频繁的时尚独立站,新品无历史数据是最大挑战。我们融合多种方案:
44   - ◦ 内容理解:利用NLP分析商品标题、属性,结合CV视觉模型分析主图,寻找与热销品的相似度,赋予初始推荐权重。
45   -
46   - ◦ 小流量试探:为新商品分配小部分流量(如5%)注入推荐池,快速收集初始点击/转化数据。
47   -
48   - ◦ 元学习与主动学习:系统从历史海量新品冷启动中学习经验,并对反馈良好的新品在48小时内自动扩大曝光,快速识别爆款潜力,助力运营补货与广告决策。
49   -
50   -• 用户冷启动:给新客“一见如故”的体验
51   -
52   - 面对占流量大半、行为空白的新访客,我们通过有限信号快速建立认知:
53   - ◦ 上下文画像:实时解析UTM来源、地理位置、设备、广告素材等,瞬间匹配用户可能偏好(如点击“极简风”广告的用户,优先推荐北欧设计商品)。
54   -
55   - ◦ 会话级意图理解:在单次浏览会话中,实时分析用户点击序列,生成临时Embedding,即时捕捉其当下兴趣。
56   -
57   - ◦ 人群泛化与热门兜底:通过轻量级Look-alike模型关联相似老客群体,并结合近期全站热销榜,确保推荐即时相关性。
58   -
59   -• 商品运营干预:算法与商业目标的平衡
60   -
61   - 为赋能运营,系统提供灵活的调控工具:
62   - ◦ 规则引擎:支持“如果商品为新品且来自A供应商,则权重提升20%”等可视化规则配置,轻松实现推新品、清库存、强打爆款、分地域策略。
63   -
64   - ◦ 人工展位:保留一定比例的推荐位,由运营手动置入特定商品,用于活动营销或重点品扶持。
65   -
66   - ◦ A/B测试框架:所有运营策略均可设置为实验组,与纯算法推荐进行对照测试,用数据驱动决策。
67   -
68   -四、 体验优化:从个性化到人性化
69   -
70   -真正的智能推荐,不止于“精准”,更在于“舒适”。
71   -
72   -• 多维度个性化数据驱动:
73   -
74   - 我们的系统整合全维度数据,构建360°用户视图,包括:流量来源(区分社交媒体偏好)、实时页面行为(判断购买意图强度)、历史交易数据(RFM分群与复购预测)、用户属性(人口统计学精准分群)、设备与环境(适配不同终端体验),并支持跨渠道(如邮件、短信)的个性化唤醒。
75   -
76   -• 多样性打散:告别推荐疲劳
77   -
78   - 为避免“满屏同类商品”的糟糕体验,系统集成高级打散策略:
79   - ◦ MMR算法:在相关性与多样性间取得最优平衡。
80   -
81   - ◦ 多级控制:可对品类、品牌、价格带设置比例或频次控制(如近20个推荐中同一品牌不超过3个)。
82   -
83   - ◦ 探索机制:采用ε-greedy等策略,主动分配部分流量探索用户潜在新兴趣,持续优化长期体验。
84   -
85   -五、 科学验证:数据驱动的持续进化
86   -
87   -一切优化与决策,都建立在科学度量的基础上。我们提供完整的数据分析系统与A/B测试框架。
88   -
89   -• 数据分析看板:实时监控推荐模块的核心指标,如点击率、转化率、人均商品曝光数、加购贡献度等,深度归因推荐价值。
90   -
91   -• 完备的A/B测试:支持从流量分配(手动/自动)、多变量测试到贝叶斯统计的完整实验能力。无论是测试新的推荐算法、不同的展示样式,还是运营干预策略,都能快速获得统计显著的结论,确保每一次迭代都驱动业务正向增长。
92   -
93   -结语:构建以“人”为中心的购物体验
94   -
95   -未来的电商竞争,本质是体验的竞争。一套集成了协同过滤的广度、Look-alike的精度、强化学习的进化能力,并能系统性解决冷启动、支持精细化运营、保证体验多样性的智能推荐系统,已成为独立站构建核心竞争力的关键。
96   -
97   -它不再只是一个工具,而是深度理解用户、连接商品、并持续自我优化的增长中枢。当您的独立站能够为每位访客提供“专属商店”般的体验时,更高的转化、更深的忠诚与持续的增长,便是水到渠成的结果。
98   -
99   -想让您的独立站拥有理解用户的“超级大脑”?我们的智能推荐SaaS系统,已为众多品牌带来可衡量的增长。
100 0 \ No newline at end of file
docs/全渠道数据整合-广告平台S2S对接手册.md 0 → 100644
... ... @@ -0,0 +1,409 @@
  1 +# 全渠道数据整合:广告/社交平台 S2S 对接手册(Meta / TikTok / Google Ads / SA360)
  2 +
  3 +> 目标:把“外部流量来源(广告/搜索/社交)”与“站内行为(浏览/加购/下单/复购)”通过 **双向 Server-to-Server (S2S)** 闭环打通,形成可用于 **个性化推荐/人群分层/投放优化** 的统一客户数据资产。
  4 +>
  5 +> 本文聚焦 **API 级生态打通**:前置权限、对接流程、关键数据流、能拿到什么数据/拿不到什么数据,以及可落地的字段模型与案例。
  6 +
  7 +---
  8 +
  9 +## 1. 先统一一个关键认知:平台“能给你的” vs “你必须自己采的”
  10 +
  11 +### 1.1 平台通常**不会**直接把“站内原始行为流”推给你
  12 +
  13 +- **平台能提供**:广告侧数据(投放结构、展示/点击/花费、部分归因结果、部分搜索词/查询报表)。
  14 +- **平台不能提供**:你站内的完整浏览路径、SKU 级加购细节、支付方式、用户在站内的每一步行为日志(这些是商家数据资产,不会被平台主动回传给第三方)。
  15 +
  16 +所以,“实时行为同步”的工程实现,本质是:
  17 +
  18 +- **你采集站内事件**(JS SDK / App SDK / Webhook / 商家后端)→ 写入你的事件流系统
  19 +- **你把关键事件回传给平台**(Meta CAPI / TikTok Events API / Google Ads Conversion Upload)→ 平台用 click id / user identifiers 做匹配与归因
  20 +- **你再从平台拉报表做补全/归因标签富化**(Marketing API / Reporting API / Google Ads API GAQL / SA360 Reporting)
  21 +
  22 +---
  23 +
  24 +## 2. 双向 S2S 的统一数据流(适用于 Nosto 同类系统)
  25 +
  26 +### 2.1 统一闭环图(建议你们 SaaS 的标准实现)
  27 +
  28 +```
  29 +用户点击广告/搜索/社交流量
  30 + └─> 落地页 URL 带 click_id(fbclid / ttclid / gclid / wbraid / gbraid)与/或 UTM
  31 + └─> 商家前端:JS SDK 解析并写入一方 Cookie(_fbc/_fbp/_ttp/your_cookie)
  32 + └─> 事件上报到 SaaS(前端 -> SaaS 采集 API)
  33 + └─> 商家后端:下单/支付/退款等用 S2S 回传 SaaS(server->server)
  34 + ├─> SaaS:写入 Kafka/日志/画像(实时推荐/分群用)
  35 + └─> SaaS:向广告平台回传转化(Meta CAPI / TikTok Events API / Google Ads Upload)
  36 + └─> SaaS:定时从平台拉报表(campaign/ad/keyword/search term/成本)
  37 + └─> 富化“归因标签”,沉淀到 Customer 360
  38 +```
  39 +
  40 +### 2.2 你们需要沉淀的“归因标签”(Attribution Tags)建议字段
  41 +
  42 +建议把归因信息当作“可被实时更新的用户画像字段”,而不是一次性埋在订单里。
  43 +
  44 +- **基础来源**:
  45 + - `traffic_source`:`meta` / `tiktok` / `google_ads` / `sa360` / `organic` / `direct` / `referral`
  46 + - `utm_source` / `utm_medium` / `utm_campaign` / `utm_term` / `utm_content`
  47 + - `landing_page_url`、`referrer`(注意合规与脱敏)
  48 +- **点击标识(最关键)**:
  49 + - `meta.fbclid`(URL 参数)、`meta.fbp`、`meta.fbc`(一方 cookie 值)
  50 + - `tiktok.ttclid`(URL 参数)、`tiktok.ttp`(一方 cookie 值)
  51 + - `google.gclid` / `google.wbraid` / `google.gbraid`(URL 参数)
  52 +- **投放结构(从平台报表富化而来)**:
  53 + - `campaign_id` / `campaign_name`
  54 + - `adset_id`(Meta)/ `adgroup_id`(TikTok/Google)/ `ad_group_id`(Google)
  55 + - `ad_id` / `creative_id` / `placement`(平台字段不同,统一映射)
  56 +- **搜索意图(仅限付费搜索场景)**:
  57 + - `search_term`(注意:Google Ads 受隐私阈值影响可能为空或被归为 “other search terms”)
  58 + - `keyword` / `keyword_id` / `match_type`(更稳定,建议优先用)
  59 +
  60 +---
  61 +
  62 +## 3. Meta(Facebook/Instagram):合作伙伴模式 / Marketing API / Conversions API
  63 +
  64 +> 参考:`https://developers.facebook.com/docs/marketing-api/`、`https://developers.facebook.com/docs/marketing-api/conversions-api/`
  65 +
  66 +### 3.1 前置条件(商家侧 & SaaS 侧)
  67 +
  68 +- **商家侧必须具备**:
  69 + - Business Manager / 资产(Ad Account、Pixel、Domain 等)
  70 + - 能授权你们访问广告账户数据(最小化权限)
  71 + - 站点已部署 Pixel(可选但强烈建议)或至少能在站点生成并持久化 `_fbp/_fbc`
  72 +- **SaaS 侧必须具备**:
  73 + - Meta 开发者应用(App ID/Secret)
  74 + - OAuth 能力(获取并续期 token)
  75 + - CAPI 事件接入与去重能力(`event_id`/`event_name`/`event_time` 去重)
  76 +
  77 +### 3.2 对接流程(建议的合作伙伴实现)
  78 +
  79 +#### A) 授权与凭证
  80 +
  81 +- 商家在你们后台点击“连接 Meta” → 跳转 Meta OAuth → 授权广告资产访问权限
  82 +- 你们获取 token 后,长期安全存储(加密、分租户隔离),并做定期续期/失效告警
  83 +
  84 +常见权限 scope(按需最小化申请):
  85 +
  86 +- `ads_read`:读取投放与报表
  87 +- `ads_management`:如需代管投放才需要
  88 +- `business_management`:如需读取/管理 Business 资产才需要
  89 +
  90 +#### B) 数据流 1:从 Meta 拉“广告侧数据/报表”
  91 +
  92 +典型用途:
  93 +
  94 +- 把 `campaign_id/adset_id/ad_id/creative_id`、花费、展示、点击等富化到你们的归因标签
  95 +- 做广告人群与站内行为联动分析(例如“某 campaign 带来的用户偏好/复购”)
  96 +
  97 +典型 API:
  98 +
  99 +- **Insights(聚合报表)**:展示、点击、花费、CTR、转化(取决于像素/回传是否就绪)
  100 +- **对象层级**:Campaign / AdSet / Ad / Creative 元数据
  101 +
  102 +> 重要边界:报表数据通常是 **聚合** 的;你无法从 API 拿到“每次点击对应的某个具体用户的 PII”。
  103 +
  104 +#### C) 数据流 2:向 Meta 回传“站内关键事件”(Conversions API, CAPI)
  105 +
  106 +用途:
  107 +
  108 +- 提升归因完整性(浏览器拦截、Cookie 限制、跨设备场景)
  109 +- 让 Meta 的投放优化更准确(事件质量更好 → 算法更容易学习)
  110 +- 同时你们自己也获得“更完整的事件流”(用于推荐/分群/AB)
  111 +
  112 +**事件回传关键字段(概念级)**:
  113 +
  114 +- `event_name`:例如 `PageView` / `ViewContent` / `AddToCart` / `Purchase`
  115 +- `event_time`:秒级时间戳
  116 +- `event_id`:用于去重(与 Pixel 端一致时可实现跨端去重)
  117 +- `action_source`:例如 `website` / `app` / `email`(以官方要求为准)
  118 +- `user_data`:用于匹配的用户标识(哈希邮箱/哈希手机号/`external_id`、以及 `fbp/fbc` 等)
  119 +- `custom_data`:订单/商品信息(`value`/`currency`/`content_ids`/`contents` 等)
  120 +
  121 +**标识符串联机制(你问的“浏览器哪个字段告诉我是 Facebook 来的?”)**:
  122 +
  123 +- 用户点击 Meta 广告进入落地页时,URL 往往携带 `fbclid`
  124 +- 站点 Pixel/你们 SDK 可据此生成/写入一方 cookie:
  125 + - `_fbp`:浏览器级标识(first-party cookie)
  126 + - `_fbc`:点击级标识(通常由 `fbclid` 派生)
  127 +- 回传 CAPI 时带上 `fbp/fbc` +(可选)哈希 PII → Meta 服务器能把“站内事件”与“广告点击/曝光”匹配,进而给出归因并用于投放优化
  128 +
  129 +> 你之所以“要回传给 Facebook”,不是为了让它把站内行为“回传给你”,而是为了让它把你采到的站内事件纳入它的归因与优化体系;之后你可以再拉报表把 campaign 等信息补全到你自己的画像里。
  130 +
  131 +### 3.3 Meta:能拿到什么数据 / 拿不到什么数据(落到你们 SaaS 视角)
  132 +
  133 +- **能拿到(通过 API 拉取)**:
  134 + - 投放结构:campaign/adset/ad、创意、预算、出价策略(视权限)
  135 + - 聚合效果:impressions/clicks/spend/ctr/cpc 等
  136 + - 聚合转化:哪些事件发生了多少次(前提是 Pixel/CAPI 打通)
  137 +- **能拿到(通过 URL/一方 cookie 采集)**:
  138 + - `fbclid`、`_fbp`、`_fbc`(用于“把外部点击与站内事件串起来”)
  139 +- **拿不到(或不建议/不允许拿)**:
  140 + - “某一次点击对应的用户真实身份/邮箱/手机号”——除非用户在你站内主动提供且合规授权,你也只能以哈希形式用于匹配
  141 + - 用户在 Meta 内的完整行为轨迹(点赞了哪些内容、浏览了什么)——广告 API 不会给到这种用户级别明细
  142 +
  143 +---
  144 +
  145 +## 4. TikTok:Marketing API / Events API(TikTok Pixel / Events)
  146 +
  147 +> 参考:`https://developers.tiktok.com/`、`https://ads.tiktok.com/marketing_api/docs`
  148 +
  149 +### 4.1 前置条件
  150 +
  151 +- **商家侧**:
  152 + - TikTok Business Center / Ads Account(能授权)
  153 + - 站点可部署 TikTok Pixel(可选但建议)
  154 +- **SaaS 侧**:
  155 + - TikTok 开发者应用(用于 OAuth/授权)
  156 + - 能安全存储/续期 token(分租户隔离)
  157 + - Events API 回传能力(含去重、重试、签名/鉴权)
  158 +
  159 +### 4.2 数据流 1:从 TikTok 拉报表(投放结构与聚合指标)
  160 +
  161 +典型用途:
  162 +
  163 +- 富化 `campaign/adgroup/ad` 元数据与聚合指标(展示、点击、花费、转化等)
  164 +- 做“投放 → 站内偏好 → 推荐策略”的闭环分析
  165 +
  166 +边界同 Meta:报表以聚合为主,不会给你用户级 PII。
  167 +
  168 +### 4.3 数据流 2:向 TikTok 回传站内事件(Events API)
  169 +
  170 +关键点与 Meta 类似:你们采集站内事件后,把关键事件用 S2S 回传给 TikTok,提升匹配与归因。
  171 +
  172 +**关键标识符**:
  173 +
  174 +- `ttclid`:用户点击广告的 click id(落地页 URL 参数)
  175 +- `_ttp`:TikTok 常用的一方 cookie 标识(由 Pixel/SDK 生成或你们 SDK 兼容生成)
  176 +- `external_id` / 哈希邮箱/哈希手机号:用于增强匹配(必须合规)
  177 +
  178 +**事件字段(概念级)**:
  179 +
  180 +- `event`(Purchase/AddToCart/ViewContent 等)
  181 +- `event_time`
  182 +- `event_id`(去重)
  183 +- `user`(ttclid/ttp/external_id/hashed identifiers)
  184 +- `properties`(value/currency/content_id/contents 等)
  185 +
  186 +### 4.4 TikTok:能拿到什么 / 拿不到什么
  187 +
  188 +- **能拿到**:
  189 + - 投放结构与聚合效果(报表)
  190 + - 通过 `ttclid/_ttp` 与回传事件实现“点击→站内行为”的串联
  191 +- **拿不到**:
  192 + - TikTok 站内用户级行为明细(除非是你们有单独的社交内容产品授权场景;广告侧通常不给)
  193 +
  194 +---
  195 +
  196 +## 5. Google Ads(含 Google Search Ads):Google Ads API / Conversion Upload / Search Terms
  197 +
  198 +> 参考:`https://developers.google.com/google-ads/api/docs/start`
  199 +
  200 +### 5.1 前置条件
  201 +
  202 +- **商家侧**:
  203 + - Google Ads 账户
  204 + - 已创建 Conversion Action(或由你们引导创建)
  205 + - 开启 Auto-tagging(使落地页带 `gclid`/`wbraid`/`gbraid` 等 click id)
  206 +- **SaaS 侧**:
  207 + - Google Cloud 项目 + OAuth 客户端
  208 + - Google Ads API 开发者令牌(developer token)
  209 + - token 安全存储与续期
  210 +
  211 +### 5.2 数据流 1:从 Google Ads 拉报表(GAQL)
  212 +
  213 +你们主要用 Google Ads API 的 GAQL(Google Ads Query Language)去拉 **结构化投放数据 + 聚合指标**,用于富化你们的归因标签与运营分析。
  214 +
  215 +#### 你能稳定拿到的(建议优先依赖)
  216 +
  217 +- **投放结构**:campaign / ad group / ad / asset(命名与层级)
  218 +- **聚合指标**:impressions / clicks / cost / conversions / conversion_value 等
  219 +- **分段(segments)**:
  220 + - `date`(按天)
  221 + - `device`(移动/桌面等)
  222 + - `network`(Search/Display 等,视口径)
  223 +
  224 +> 重要边界:Google Ads 报表默认是“聚合”视角,通常并不会给你“每一次点击的明细日志”,更不会给你“点击对应的用户身份”。
  225 +
  226 +#### 付费搜索词(search term)到底能不能拿到?
  227 +
  228 +需要严格区分:
  229 +
  230 +- **能拿到(Paid Search Search Terms)**:广告投放的搜索查询词(Search Terms / Search Query Report),前提是该账户投放了搜索广告,且该维度在报表/隐私规则下可用。
  231 +- **拿不到(Organic Keyword)**:自然搜索(SEO)的关键词,Google 多年前起就不再对外提供用户级自然搜索词(常见为 `(not provided)` 现象)。
  232 +
  233 +此外,Google 对 Search Terms 还有典型限制:
  234 +
  235 +- **隐私阈值/脱敏**:部分查询词会被归为“其他搜索词(other search terms)”或直接不可见。
  236 +- **延迟**:search term 通常不是秒级实时(常见为小时级到次日级),不适合作为你们“实时推荐”的唯一输入。
  237 +
  238 +**工程建议**:在“实时推荐”侧,不依赖明文 search_term,而优先使用更稳定的:
  239 +
  240 +- `campaign_id / ad_group_id / keyword_id / match_type`
  241 +- 以及你们自己通过落地页参数/站内行为构建的“意图标签”(例如“来自 running shoes 广告组的用户”)
  242 +
  243 +#### SaaS 如何更容易拿到“投放结构/关键词意图”?
  244 +
  245 +最佳实践不是等平台回传,而是让商家(或你们插件)在最终落地页上带上可解析参数:
  246 +
  247 +- **Auto-tagging**:保留 `gclid/wbraid/gbraid`(用于转化上传与匹配)
  248 +- **ValueTrack/URL 模板**:把投放结构写进落地页参数(用于你们实时侧富化)
  249 +
  250 +示例(概念):
  251 +
  252 +```text
  253 +Final URL Suffix:
  254 +utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_content={creative}&utm_term={keyword}
  255 +&g_campaign_id={campaignid}&g_adgroup_id={adgroupid}&g_ad_id={creative}&g_kw={keyword}&g_mt={matchtype}
  256 +```
  257 +
  258 +这样,你们即使不即时拉 Google 报表,也能在“用户首次进入时”就把归因标签写入画像,满足实时推荐。
  259 +
  260 +### 5.3 数据流 2:向 Google Ads 回传转化(Conversion Upload)
  261 +
  262 +核心用途:
  263 +
  264 +- 把你们采集到的站内关键事件(Purchase/Lead 等)回传给 Google,使其归因与投放优化成立
  265 +- 同时你们自己沉淀“点击 → 站内行为 → 订单”的闭环数据
  266 +
  267 +#### 两类常见回传
  268 +
  269 +- **点击转化(Click Conversions)**:用 `gclid`(以及移动/隐私场景下的 `wbraid/gbraid`)上传转化
  270 +- **增强型转化(Enhanced Conversions)**:在合规前提下,附加哈希邮箱/哈希手机号等用户标识提升匹配率
  271 +
  272 +#### 你们侧必须实现的关键字段(概念级)
  273 +
  274 +- `click_id`:`gclid` 或 `wbraid` 或 `gbraid`(三者至少其一,按场景)
  275 +- `conversion_action`:对应商家的转化目标(由商家/你们引导配置)
  276 +- `conversion_date_time`:转化发生时间(带时区)
  277 +- `conversion_value`、`currency_code`
  278 +- `order_id`(强烈建议):用于去重与退款/撤单对账
  279 +
  280 +> 去重策略:你们内部建议以 `tenant_id + order_id + event_name` 或 `event_id` 做幂等;对外回传也尽量保证同一订单不会重复上传。
  281 +
  282 +### 5.4 SaaS 如何拿到 gclid / wbraid / gbraid(回答“独立站 SaaS 怎么拿”)
  283 +
  284 +这类 click id 出现在 **商家站点的落地页 URL** 上;SaaS 拿到它的方式不是“从 Google 拉”,而是:
  285 +
  286 +- **商家前端采集**:你们提供 JS SDK / 插件脚本,解析 URL 参数并写入一方 cookie,然后上报给你们的采集 API
  287 +- **商家后端绑定订单**:下单/支付成功时,商家后端把“订单号 ↔ click id ↔ anonymous_id/user_id”用 S2S 发给你们
  288 +
  289 +这就是 Nosto 这类系统的关键点:**你们掌握‘站内事件流’与‘入口 click id’,平台只负责‘归因/报表/投放优化’那部分。**
  290 +
  291 +---
  292 +
  293 +## 6. Google Search Ads vs Search Ads 360 (SA360)
  294 +
  295 +### 6.1 概念澄清
  296 +
  297 +- **Google Search Ads(搜索广告)**:通常指 Google Ads 里的搜索广告 Campaign(你们通过 Google Ads API 接即可)
  298 +- **Search Ads 360(SA360)**:面向更大体量/多引擎管理的企业级平台(可能有独立的报表/转化口径,如 Floodlight)
  299 +
  300 +> 参考:`https://developers.google.com/search-ads`
  301 +
  302 +### 6.2 SA360 的典型对接模式(你们 SaaS 应该怎么做)
  303 +
  304 +你们要做的是“可选的企业版集成”,不建议让 MVP 强依赖 SA360。
  305 +
  306 +- **数据流 1:报表拉取**:
  307 + - 拉 campaign/keyword/engine account 等维度的聚合报表(展示、点击、花费、转化)
  308 + - 用于富化你们的归因标签(尤其是多搜索引擎统一口径时)
  309 +- **数据流 2:转化回传**:
  310 + - 企业广告主常用 Floodlight/离线转化机制,你们把站内 Purchase/Lead 等按其口径回传
  311 +
  312 +SA360 的关键不是“多拿到什么用户行为”,而是“多一套企业广告管理口径与归因配置”。你们的站内事件采集方式不变。
  313 +
  314 +---
  315 +
  316 +## 7. 两个端到端案例(把“能拿到什么数据”讲透)
  317 +
  318 +### 7.1 案例 A:Meta 广告 → 商品页浏览 → 加购 → 下单(CAPI 闭环)
  319 +
  320 +**前置**:
  321 +
  322 +- 商家已连接 Meta(OAuth token 已存)
  323 +- 站点能采集 `fbclid` 并持久化 `_fbp/_fbc`
  324 +
  325 +**时间线**:
  326 +
  327 +1) 用户点击 Instagram 广告:
  328 +
  329 +- 进入:`/product/sku123?...&fbclid=XXXX&utm_source=instagram&utm_medium=cpc&utm_campaign=summer`
  330 +- 你们 JS SDK:
  331 + - 解析 `fbclid`
  332 + - 写入/更新 `_fbc`,读取/生成 `_fbp`
  333 + - 上报给 SaaS:`anonymous_id` + `fbclid/fbp/fbc` + `utm_*` + `landing_page_url`
  334 +
  335 +2) 用户浏览商品:
  336 +
  337 +- 上报事件:`ViewContent`(包含 `content_id=sku123`)
  338 +- 你们实时画像:把 `traffic_source=meta`、`campaign=summer` 等写入用户画像(用于实时推荐:比如同系列商品、同 campaign 热门 SKU)
  339 +
  340 +3) 用户加购:
  341 +
  342 +- 上报事件:`AddToCart`
  343 +
  344 +4) 用户下单支付:
  345 +
  346 +- 商家后端 S2S → SaaS:`Purchase`(包含 `order_id/value/currency/items`)
  347 +- SaaS → Meta CAPI:回传 `Purchase`(带 `event_id`、`fbp/fbc`、可选哈希邮箱/手机号)
  348 +
  349 +**你们最终能沉淀的数据**:
  350 +
  351 +- 入口归因标签:`meta + utm + fbclid/fbp/fbc`
  352 +- 站内行为序列:view → add_to_cart → purchase(SKU 级)
  353 +- 广告侧富化(后续拉报表):campaign/adset/ad 的花费与聚合转化,绑定到你们的 campaign 维度分析
  354 +
  355 +### 7.2 案例 B:Google 搜索广告 → 落地页 → 下单(Click Conversion Upload)
  356 +
  357 +**前置**:
  358 +
  359 +- 商家开启 Auto-tagging
  360 +- 你们 JS SDK 能采集 `gclid/wbraid/gbraid`
  361 +- 商家/你们配置好 Conversion Action
  362 +
  363 +**时间线**:
  364 +
  365 +1) 用户点击 Google 搜索广告进入:
  366 +
  367 +- URL 带 `gclid=...`(或隐私/移动场景下带 `wbraid/gbraid`)
  368 +- 你们 SDK 上报 click id 与落地页参数
  369 +- 若商家配置了 URL 模板,你们还能直接拿到 `campaignid/adgroupid/keyword/matchtype`(用于实时意图标签)
  370 +
  371 +2) 用户下单:
  372 +
  373 +- 商家后端 S2S → SaaS:`Purchase(order_id, value, currency, click_id)`
  374 +- SaaS → Google Ads:上传 click conversion
  375 +
  376 +**你们最终能沉淀的数据**:
  377 +
  378 +- click id 与订单绑定(用于归因与广告优化)
  379 +- 实时意图标签(来自落地页参数/广告组/keyword 维度)
  380 +- 次日/小时级补全的 search term(可用时)与成本指标(用于归因分析与投放策略联动)
  381 +
  382 +---
  383 +
  384 +## 8. 你们实现这套系统时的工程清单(强烈建议)
  385 +
  386 +### 8.1 接入 API(你们 SaaS 侧)最小闭环
  387 +
  388 +- **采集 API**(前端/SDK):
  389 + - `/collect`:行为事件(view/search/add_to_cart/purchase…)
  390 + - `/attribution`:入口 click id / utm / referrer(也可并入 collect)
  391 +- **商家后端回传 API**:
  392 + - `/orders`:下单/支付/退款/撤单(确保最终一致性)
  393 +- **平台连接 API**:
  394 + - `/oauth/meta/callback`、`/oauth/tiktok/callback`、`/oauth/google/callback`
  395 + - `/integrations/{platform}/status`
  396 +
  397 +### 8.2 三件套:幂等、重试、限流
  398 +
  399 +- **幂等**:`event_id/order_id` 贯穿全链路;Kafka 消费端也要幂等
  400 +- **重试**:对外回传失败要有队列与退避重试(避免阻塞主链路)
  401 +- **限流**:按租户与平台维度限流,避免某租户爆量拖垮公共资源
  402 +
  403 +### 8.3 合规与隐私(必须前置)
  404 +
  405 +- **同意管理**:把 consent 状态作为事件字段(例如 `consent.ad_storage/analytics_storage`),决定是否回传/是否存储某些标识符
  406 +- **哈希规则**:邮箱/手机号必须标准化后再哈希(SHA-256 等),只在“用于匹配”的必要范围内传输
  407 +- **数据最小化**:不收集不必要的 PII;对 `referrer/landing_url` 做脱敏与参数白名单
  408 +
  409 +
... ...
docs/用户匹配与外部数据打通-平台官方机制提权.md 0 → 100644
... ... @@ -0,0 +1,281 @@
  1 +# 用户匹配与外部数据打通:平台官方机制提权(Meta / Google Ads / TikTok)
  2 +
  3 +> 本文是“提权版”总结:只聚焦 **用户匹配(Identity Resolution)** 与 **外部数据打通(Ad/Social/Search)** 两件事,基于平台官方机制(OAuth 授权、Server-to-Server 事件回传、报表/洞察拉取、Advanced Matching/Enhanced Conversions)整理成可落地的工程手册。
  4 +>
  5 +> 与整体 S2S 对接的关系:更完整的“全渠道闭环、归因标签字段、端到端案例”请见 `docs/全渠道数据整合-广告平台S2S对接手册.md`,本文不重复那部分,只做“匹配/打通”的深挖。
  6 +
  7 +---
  8 +
  9 +## 0. 提权结论(先给结论)
  10 +
  11 +### 0.1 “用户匹配”在广告平台里到底是什么?
  12 +
  13 +平台不会把“用户身份”回传给你;用户匹配的本质是:
  14 +
  15 +- 你把**站内事件**(购买/加购/注册…)通过 S2S 回传给平台
  16 +- 事件里携带一组 **可匹配标识符**(click id、一方 cookie id、哈希化 PII、IP/UA 等)
  17 +- 平台用这些标识符把事件与其广告触达(点击/曝光/设备图谱)关联起来,从而:
  18 + - 让平台的**归因/投放优化**成立(平台侧收益)
  19 + - 让你能从平台报表拿到更准确的**聚合归因维度**(campaign/adgroup/keyword/cost…)并回灌你的 CDP/画像(你侧收益)
  20 +
  21 +### 0.2 “外部数据打通”最稳定的三件套(跨平台通用)
  22 +
  23 +按稳定性从高到低:
  24 +
  25 +- **(1) click id / 广告点击链路标识**:`fbclid` / `ttclid` / `gclid` / `wbraid` / `gbraid`
  26 +- **(2) 一方标识符(first-party id)**:浏览器/设备侧的一方 cookie(例如 `_fbp/_fbc/_ttp` 等)+ 你们自己的 `anonymous_id`
  27 +- **(3) 哈希 PII(Advanced Matching / Enhanced Conversions)**:邮箱/手机号/姓名地址等标准化后 SHA-256(必须 consent + 合规)
  28 +
  29 +> 真实世界落地建议:实时推荐/实时分群尽量依赖 (1)(2);(3) 用于提升匹配率、跨设备、以及广告侧归因完整性。
  30 +
  31 +### 0.3 跨设备(Cross-Device)在你们 SaaS 里怎么做“最小可用”?
  32 +
  33 +不要一上来就做“设备指纹 + 概率图谱”作为主链路;MVP 最小闭环:
  34 +
  35 +- **确定性合并**(Deterministic):登录/下单/留资触发 `anonymous_id → user_id/email/phone` 合并
  36 +- **外部匹配增强**(Platform Matching):在回传事件里带哈希邮箱/手机号 + click id + 一方 cookie id,让平台用它自己的跨设备图谱完成归因优化
  37 +- **你们内部**:沉淀 Identity Graph(节点=各种 ID,边=同人证据),后续再迭代概率匹配
  38 +
  39 +---
  40 +
  41 +## 1. 统一“可匹配标识符”字典(跨平台抽象)
  42 +
  43 +建议你们内部事件模型统一下列字段(平台字段差异只在适配层解决):
  44 +
  45 +- **租户与用户**:
  46 + - `tenant_id`
  47 + - `anonymous_id`(你们 SDK 生成)
  48 + - `user_id`(商家会员/登录用户)
  49 +- **入口与归因**:
  50 + - `landing_url`(白名单参数、脱敏)
  51 + - `referrer`(脱敏)
  52 + - `utm_*`
  53 + - `click_id`:`fbclid | ttclid | gclid | wbraid | gbraid`
  54 + - `attribution_platform`:`meta | tiktok | google_ads | ...`
  55 +- **一方 cookie / 平台浏览器标识**:
  56 + - `meta.fbp`、`meta.fbc`
  57 + - `tiktok.ttp`
  58 +- **匹配增强(哈希 PII)**(可选,合规后启用):
  59 + - `email_sha256`
  60 + - `phone_sha256`
  61 + - (可扩展)姓名/地址等(不同平台支持程度不同)
  62 +- **设备/网络信号(通常作为辅助手段)**:
  63 + - `client_ip`、`user_agent`
  64 + - `device_type`、`os`、`browser`
  65 +
  66 +> 关键:这些字段不是“为了把用户身份拿回来”,而是为了让 **平台能匹配、你能做 join**。
  67 +
  68 +---
  69 +
  70 +## 2. Meta(Facebook/Instagram):官方授权机制 + Conversions API 用户匹配
  71 +
  72 +参考(官方):
  73 +
  74 +- `https://developers.facebook.com/docs/marketing-api/conversions-api/`
  75 +- `https://developers.facebook.com/docs/facebook-login/`(OAuth/登录)
  76 +- `https://developers.facebook.com/docs/marketing-api/`(广告报表/洞察)
  77 +
  78 +### 2.1 授权机制(合作伙伴常用形态)
  79 +
  80 +你们会遇到两类“凭证来源”,工程上要分清:
  81 +
  82 +#### A) 广告/报表类权限(读取投放结构与 Insights)
  83 +
  84 +- 典型是 OAuth 授权后拿到 access token,再用 token 调用 Marketing API(读取账户、campaign、insights)
  85 +- 你们需要做:
  86 + - token 加密存储、按 `tenant_id` 隔离
  87 + - token 续期/失效处理
  88 + - 权限最小化(常见 `ads_read` 起步)
  89 +
  90 +#### B) CAPI 事件回传凭证(Pixel/数据源 Access Token)
  91 +
  92 +- CAPI 常见方式是在 Events Manager / Pixel 设置里生成一个“用于回传事件的 token”
  93 +- 工程意义:这更像“写入凭证”,与“读取报表” token 可以不是同一个体系
  94 +
  95 +> 提权点:**不要把 CAPI token 当作 OAuth token** 去做复杂权限管理;在你们 SaaS 里把它作为“数据源写入密钥”管理(可轮换、可禁用、可审计)。
  96 +
  97 +### 2.2 用户匹配(Advanced Matching)在 CAPI 里怎么落地?
  98 +
  99 +你回传事件时,Meta 侧的匹配信号主要来自三块:
  100 +
  101 +- **点击链路**:`fbclid`(落地页 URL 参数)→ 你生成/保存 `fbc`
  102 +- **浏览器标识**:`fbp`(通常由 Pixel/你们 SDK 生成的一方 cookie)
  103 +- **哈希化 PII**:邮箱/手机号等(标准化后 SHA-256)
  104 +
  105 +你们应该实现的“最低配 CAPI user_data”组合:
  106 +
  107 +- **优先**:`fbp + fbc`(对 web 场景非常关键)
  108 +- **增强**:`email_sha256` / `phone_sha256`(用户登录/下单后可得,显著提升跨设备/匹配率)
  109 +- **辅助**:`client_ip_address + client_user_agent`(常见必填/强建议字段,按官方要求为准)
  110 +
  111 +### 2.3 Meta 能“获取”到哪些外部数据?(澄清)
  112 +
  113 +Meta 分两条线:
  114 +
  115 +- **你从 Meta 拉到的**:投放结构 + 聚合报表(insights:展示、点击、花费、聚合转化等)
  116 +- **你回传给 Meta 的**:站内事件(Purchase/AddToCart…)+ 匹配标识符(fbp/fbc/哈希PII…)
  117 +
  118 +> 提权点:Meta 不会把“用户是谁”回给你;你要的“外部数据”是 **campaign/adset/ad 层级的聚合指标**,用于与你站内画像做 join。
  119 +
  120 +### 2.4 Meta 打通闭环的最小工程动作
  121 +
  122 +- **商家侧**:
  123 + - 确保落地页保留 `fbclid`
  124 + - 允许写入一方 cookie(`_fbp/_fbc`)或由你们 SDK 兼容生成
  125 +- **你们 SaaS**:
  126 + - 采集:落地页 → 解析 `fbclid` → 写入/读取 `fbp/fbc` → 上报到你们
  127 + - 订单:下单时把 `order_id ↔ anonymous_id/user_id ↔ fbp/fbc` 绑定
  128 + - 回传:用 CAPI 回传 Purchase(带 `event_id` 做去重)
  129 + - 富化:定时拉 insights,把 campaign 维度指标回灌画像/分析库
  130 +
  131 +---
  132 +
  133 +## 3. Google Ads:官方授权机制 + 归因标签 + Enhanced Conversions
  134 +
  135 +参考(官方):
  136 +
  137 +- `https://developers.google.com/google-ads/api/docs/start`
  138 +- `https://developers.google.com/google-ads/api/docs/oauth/overview`
  139 +-(增强型转化/Enhanced Conversions 官方入口通常在 Google Ads/Tag/Measurement 文档体系中,落地时请以最新官方页为准)
  140 +
  141 +### 3.1 授权机制(你们最常见的 SaaS 形态)
  142 +
  143 +Google Ads API 通常涉及:
  144 +
  145 +- **Developer Token**:你们应用级别的“开发者资质”
  146 +- **OAuth 2.0**:商家授权你们访问其 Google Ads 账户
  147 +- **Manager Account (MCC)**(可选):你们作为管理账号,集中管理多个客户账号(更适合 SaaS)
  148 +
  149 +> 提权点:从产品策略上,建议你们尽早支持“通过 MCC 管理多商家”,否则单店授权与权限维护成本会在规模化后爆炸。
  150 +
  151 +### 3.2 归因标签(Attribution Tags):Google 这边你到底要沉淀什么?
  152 +
  153 +Google 侧可串联的关键入口标识:
  154 +
  155 +- `gclid`:点击标识(web/传统场景)
  156 +- `wbraid` / `gbraid`:移动/隐私/特定投放场景下的点击标识(你们应该一并支持采集与存储)
  157 +
  158 +你们内部“归因标签”建议最小字段:
  159 +
  160 +- `google.click_id`:优先存 `gclid`,否则存 `wbraid/gbraid`(并记录类型)
  161 +- `campaign_id` / `ad_group_id` / `keyword_id` / `match_type`(实时意图更稳定)
  162 +- `utm_*`(若商家已有)
  163 +
  164 +> 提权点:不要把“search_term(搜索词)”作为实时意图的核心依赖;它受隐私阈值影响、延迟高。用广告组/关键词/匹配类型更稳定。
  165 +
  166 +### 3.3 用户匹配(Enhanced Conversions)怎么用?
  167 +
  168 +Enhanced Conversions 的定位与 Meta Advanced Matching 类似:
  169 +
  170 +- 你在回传转化时附带 **哈希化 PII**(邮箱/手机号/地址等,按官方支持字段)
  171 +- 平台用它提升匹配率(尤其跨设备、cookie 受限场景)
  172 +
  173 +你们工程落地建议:
  174 +
  175 +- 只在 **用户已明确同意** 且 **商家可合法使用** 的前提下启用
  176 +- 在你们 SDK/后端统一做 **标准化 → SHA-256**(避免商家各自实现造成不一致)
  177 +
  178 +### 3.4 外部数据打通:Google 能给你什么?
  179 +
  180 +- **你从 Google 拉到的**:campaign/adgroup/keyword 维度的聚合指标(展示/点击/花费/转化…)
  181 +- **你回传给 Google 的**:离线/在线转化(Conversion Upload)
  182 +
  183 +> 提权点:Google 并不会把“某个 gclid 对应哪个用户”回给你;你要做的是把 gclid 与你自己的 `anonymous_id/order_id` 绑定,然后用报表维度做分析/分群/推荐策略。
  184 +
  185 +---
  186 +
  187 +## 4. TikTok:官方授权机制 + Events API 用户匹配(Advanced Matching 类能力)
  188 +
  189 +参考(官方):
  190 +
  191 +- `https://developers.tiktok.com/`
  192 +- `https://ads.tiktok.com/marketing_api/docs`
  193 +-(Events API 官方页通常在 Ads/Marketing API 文档下的 Events/Pixel 章节)
  194 +
  195 +### 4.1 授权机制(Marketing API / 报表拉取)
  196 +
  197 +典型流程:
  198 +
  199 +- 商家在你们后台点击“连接 TikTok” → OAuth → 你们拿到 token
  200 +- 你们用 token 拉取 `advertiser_id` 下的 campaign/adgroup/ad 报表与元数据
  201 +
  202 +### 4.2 用户匹配:Events API 里的关键标识符
  203 +
  204 +TikTok 场景下最常见的串联信号:
  205 +
  206 +- `ttclid`:点击标识(落地页 URL 参数)
  207 +- `_ttp`:一方 cookie(由 Pixel/SDK 生成或你们 SDK 兼容)
  208 +- 哈希 PII:邮箱/手机号(标准化后 SHA-256,需合规)
  209 +
  210 +### 4.3 外部数据打通:TikTok 能给你什么?
  211 +
  212 +- **你从 TikTok 拉到的**:投放结构 + 聚合报表(展示/点击/花费/转化…)
  213 +- **你回传给 TikTok 的**:站内关键事件(Purchase/AddToCart…)
  214 +
  215 +---
  216 +
  217 +## 5. Cross-Device(跨设备用户关联):你们 SaaS 内部的“身份图谱”落地法
  218 +
  219 +### 5.1 身份图谱的节点与边(建议数据模型)
  220 +
  221 +- **节点(ID 类型)**:
  222 + - `anonymous_id`(你们 cookie/device id)
  223 + - `user_id`(商家会员)
  224 + - `email_sha256`、`phone_sha256`
  225 + - `meta.fbp`、`meta.fbc`
  226 + - `tiktok.ttp`
  227 + - `google.click_id`(gclid/wbraid/gbraid)
  228 +- **边(关联证据)**:
  229 + - `login`:同一会话中 `anonymous_id ↔ user_id`
  230 + - `checkout`:同一订单 `order_id` 绑定多个标识
  231 + - `platform_match`:回传事件时同一 payload 中出现(fbp+email_sha256 等)
  232 +
  233 +### 5.2 合并策略(先确定性,后概率)
  234 +
  235 +- **确定性合并(MVP 必做)**:
  236 + - 登录/下单/留资触发合并:把历史匿名行为挂到 `user_id`
  237 + - 采用“主键用户(canonical user)”策略:一旦有 `user_id`,以其为主
  238 +- **概率性合并(迭代项)**:
  239 + - 设备指纹/行为序列相似度/IP 近似等
  240 + - 仅作为“候选关联”,不要直接影响计费/归因等敏感逻辑
  241 +
  242 +### 5.3 你们与平台跨设备能力的边界
  243 +
  244 +- 平台(Meta/Google/TikTok)拥有自己的跨设备图谱:你无法直接拿到其图谱细节
  245 +- 你们能做的是:在合规前提下把更多“可匹配信号”回传 → 平台归因更准 → 你们从报表拿到更可靠的聚合维度
  246 +
  247 +---
  248 +
  249 +## 6. “外部数据打通”的标准 Join 方法(你们数据仓库/画像侧)
  250 +
  251 +### 6.1 两类 Join:实时 vs 离线
  252 +
  253 +- **实时(推荐/分群)**:只依赖你们采集到的入口参数与 click id/一方 cookie
  254 + - 例:用户首次进入就打上 `traffic_source=google_ads`、`g_campaign_id=...`
  255 +- **离线(归因分析/成本/ROI)**:用平台报表把 `campaign_id/ad_id/keyword_id` 维度的指标回灌
  256 + - 例:每天把 cost/conv_value 写入 campaign 维度事实表
  257 +
  258 +### 6.2 典型数据表建议
  259 +
  260 +- `event_stream`:站内事件(含 click id/一方 cookie/哈希PII)
  261 +- `identity_graph_edges`:ID 关联边(证据、时间、权重)
  262 +- `ad_platform_reports_daily`:平台聚合报表(按 tenant + platform + campaign/adgroup/... + date)
  263 +- `user_profile`:用户画像(实时标签 + 离线标签)
  264 +
  265 +---
  266 +
  267 +## 7. 合规与安全(必须前置,不然“提权”变“踩雷”)
  268 +
  269 +- **Consent**:把 consent 状态作为事件字段,决定是否写 cookie、是否回传哈希PII、是否用于个性化
  270 +- **最小化**:只传/存必要字段;`landing_url/referrer` 参数白名单 + 脱敏
  271 +- **哈希规范统一**:标准化(trim、lower、去空格、E164 等)→ SHA-256;避免商家各自实现导致匹配率下降
  272 +- **分租户隔离**:token、数据源密钥、identity graph 必须 tenant 隔离(含日志与备份)
  273 +
  274 +---
  275 +
  276 +## 8. 与现有文档的关系(避免重复)
  277 +
  278 +- 全量 S2S 闭环、归因标签字段、端到端案例(更偏“怎么接入平台”):`docs/全渠道数据整合-广告平台S2S对接手册.md`
  279 +- 本文(更偏“为什么这样能匹配、哪些字段/机制能提权匹配率、跨设备怎么做”):`docs/用户匹配与外部数据打通-平台官方机制提权.md`
  280 +
  281 +
... ...
docs/竞品参考文档/Bloomreach-用户数据获取技术方案.md 0 → 100644
... ... @@ -0,0 +1,135 @@
  1 +# Bloomreach:用户数据获取技术方案(拆解版:Engagement / Discovery)
  2 +
  3 +> 目标:拆解 Bloomreach 在“用户数据获取/统一/激活”的技术路径,覆盖 Bloomreach Engagement(原 Exponea,偏 CDP+营销自动化)与 Bloomreach Discovery(偏搜索/商品发现)。
  4 +>
  5 +> 说明:Bloomreach 的开发者文档体系较大,且部分内容面向客户/合作伙伴账号。本文以公开资料与行业通用实现方式做结构化提炼;字段/端点级细节请以你们实际拿到的 Bloomreach 官方文档与 PoC 验证为准。
  6 +
  7 +---
  8 +
  9 +## 1. Bloomreach 的“取数目标”分两条产品线
  10 +
  11 +### 1.1 Engagement(CDP / Marketing Automation)
  12 +
  13 +**核心目标**:把多渠道事件与用户属性汇总为 Customer 360,并在邮件/短信/推送/站内等渠道做实时触达与分群。
  14 +
  15 +### 1.2 Discovery(Search / Merchandising)
  16 +
  17 +**核心目标**:让搜索/类目页/推荐能基于:
  18 +
  19 +- 高质量商品目录
  20 +- 用户行为与查询意图(站内搜索词、点击、加购、购买)
  21 +
  22 +做排序与推荐优化。
  23 +
  24 +---
  25 +
  26 +## 2. 数据获取的 4 条主通道(Bloomreach 常见架构)
  27 +
  28 +### 2.1 Web 事件采集(JS SDK / Tag)
  29 +
  30 +**用途**:采集站内行为(浏览、点击、搜索、加购、结账开始等),并生成匿名 ID / 会话 ID。
  31 +
  32 +**你能获得的数据类型**:
  33 +
  34 +- 页面/商品/类目上下文(URL、product_id、category、price 等)
  35 +- 行为事件序列(view → add_to_cart → purchase)
  36 +- 会话/设备信号(device、browser、language、geo 近似等)
  37 +
  38 +### 2.2 Mobile 事件采集(iOS/Android SDK,可选)
  39 +
  40 +**用途**:App 内事件与身份(device id / login id)进入同一用户画像,用于跨设备与多渠道触达。
  41 +
  42 +### 2.3 服务端 S2S 事件与属性导入(Events API / Attributes Import)
  43 +
  44 +**用途**:
  45 +
  46 +- 订单支付、退款、取消等“最终事实”由服务端回传,保证一致性
  47 +- CRM/会员/线下交易等属性导入,丰富 Customer 360
  48 +
  49 +**典型字段(你们实现时建议对齐)**:
  50 +
  51 +- `customer_id` / `email_sha256` / `phone_sha256`
  52 +- `event_name`(purchase/refund/loyalty_level_changed…)
  53 +- `event_time`
  54 +- `order_id`(幂等)
  55 +- `items[]`(sku/qty/price/category)
  56 +- `consent`(是否允许营销/广告/分析)
  57 +
  58 +### 2.4 商品目录/内容目录导入(Feed / Connector)
  59 +
  60 +**Engagement 视角**:
  61 +
  62 +- 把 catalog 作为“推荐与模板渲染”的素材库(邮件/站内推荐等)
  63 +
  64 +**Discovery 视角**:
  65 +
  66 +- catalog 是搜索与排序的基础,字段质量直接决定搜索体验(类目、属性、库存、价格、同义词、品牌等)
  67 +
  68 +---
  69 +
  70 +## 3. 身份识别与用户合并(Engagement 的关键能力)
  71 +
  72 +### 3.1 匿名 → 已知的确定性合并
  73 +
  74 +典型触发点:
  75 +
  76 +- 登录
  77 +- 留资(订阅)
  78 +- 下单
  79 +
  80 +合并策略(常见):
  81 +
  82 +- 以 email/phone/customer_id 作为 canonical user
  83 +- 把匿名行为历史挂接到已知用户
  84 +
  85 +### 3.2 跨渠道身份桥(Email/SMS/Push/Ads)
  86 +
  87 +Bloomreach Engagement 这类平台的优势通常在于:
  88 +
  89 +- 同一用户在不同渠道的触达与互动(open/click/subscribe/unsubscribe)都能回流到同一 profile
  90 +- 形成“触达 → 行为 → 转化”的闭环指标
  91 +
  92 +---
  93 +
  94 +## 4. 外部数据打通(广告/邮件/数据仓库)常见做法
  95 +
  96 +### 4.1 广告平台(Meta/Google/TikTok)
  97 +
  98 +Engagement 类平台通常会:
  99 +
  100 +- 读取/写入广告受众(分群同步到平台)
  101 +- 通过 click id + S2S 转化回传 + 报表拉取做归因与 ROI 分析
  102 +
  103 +> 具体“用户匹配提权”方法可复用你们仓库文档:`docs/用户匹配与外部数据打通-平台官方机制提权.md`。
  104 +
  105 +### 4.2 数据仓库/数据云(例如 Snowflake)
  106 +
  107 +公开资料显示 Bloomreach 强调与数据云/仓库的对接,以便:
  108 +
  109 +- 直接读取企业已沉淀的 customer attributes / events / catalog
  110 +- 把分群与触达结果回写(形成数据闭环)
  111 +
  112 +工程上对应两类模式:
  113 +
  114 +- **批量同步**:按天/小时把表导入/导出(适合大体量)
  115 +- **准实时**:流式/CDC(适合关键事件与实时触达)
  116 +
  117 +---
  118 +
  119 +## 5. 去重、延迟与一致性(Engagement/Discovery 共性)
  120 +
  121 +- **幂等键**:订单事件用 `order_id`;行为事件用 `event_id`
  122 +- **实时层**:站内行为秒级进入用户画像(站内个性化、触发营销)
  123 +- **准实时/离线层**:模型训练、用户聚类、商品相似度等批处理
  124 +- **反向修正**:退款/取消会修正 LTV 与归因(必须接入)
  125 +
  126 +---
  127 +
  128 +## 6. 你们自研 SaaS 的可复用点(对照 Bloomreach)
  129 +
  130 +- 把“Engagement(CDP/营销)”与“Discovery(搜索/商品发现)”的数据需求分层
  131 +- 事件采集 + S2S 事实回传 + Catalog feed 是最稳定三件套
  132 +- 身份合并:匿名 → email/phone/customer_id(确定性优先)
  133 +- 触达互动回流(open/click/退订)是“营销型个性化”的关键外部信号
  134 +
  135 +
... ...
docs/竞品参考文档/DynamicYield-用户数据获取技术方案.md 0 → 100644
... ... @@ -0,0 +1,136 @@
  1 +# Dynamic Yield:用户数据获取技术方案(拆解版)
  2 +
  3 +> 目标:拆解 Dynamic Yield(DY)在“用户数据获取/实时决策/实验优化”的数据层实现,方便你们对标自研个性化引擎 SaaS。
  4 +>
  5 +> 说明:DY 的部分文档与实现细节面向客户/合作伙伴账号。本文基于公开资料与行业主流 DY 类产品的落地方式提炼,字段/端点级细节需以你们获取到的 DY 官方文档与 PoC 抓包为准。
  6 +
  7 +---
  8 +
  9 +## 1. DY 的数据获取 = 事件采集 + 商品/内容 feed + 身份合并
  10 +
  11 +### 1.1 事件采集(Web/App)
  12 +
  13 +**目的**:实时构建 session 意图与短期偏好,驱动 onsite personalization、推荐、A/B 测试。
  14 +
  15 +**典型事件**(行业通用):
  16 +
  17 +- `page_view`
  18 +- `product_view`
  19 +- `add_to_cart`
  20 +- `checkout_start`
  21 +- `purchase`
  22 +- `search`
  23 +
  24 +### 1.2 商品/内容 Feed
  25 +
  26 +**目的**:推荐与决策需要“可用的候选集合”,feed 的字段质量直接影响推荐与排序。
  27 +
  28 +**典型字段**:
  29 +
  30 +- product_id / sku
  31 +- title/description/image
  32 +- category/attributes
  33 +- price/sale_price
  34 +- availability/inventory
  35 +- tags/brand
  36 +
  37 +### 1.3 用户属性与业务事实
  38 +
  39 +**目的**:把长期价值与偏好(RFM/LTV/会员等级/历史购买)进入用户画像,支撑更强的策略与实验分层。
  40 +
  41 +---
  42 +
  43 +## 2. 数据采集方式(DY 类产品典型实现)
  44 +
  45 +### 2.1 前端 Tag(DY Tag / JS)
  46 +
  47 +**作用**:
  48 +
  49 +- 为访客分配匿名 ID(cookie/localStorage 一方)
  50 +- 采集页面上下文与行为事件
  51 +- 拉取“决策结果”(推荐/个性化变体/优惠)并渲染
  52 +- 记录实验曝光与转化(A/B、MVT)
  53 +
  54 +**工程要点**:
  55 +
  56 +- 异步加载、避免阻塞渲染
  57 +- 事件幂等(event_id)
  58 +- 与服务端订单事实对账(purchase 最好 S2S 再补一份)
  59 +
  60 +### 2.2 服务端 S2S(转化/订单事实)
  61 +
  62 +**作用**:
  63 +
  64 +- 提升 purchase/退款/取消的准确性与一致性
  65 +- 支撑 server-side personalization 场景(例如在 edge/SSR 输出个性化)
  66 +
  67 +**关键字段建议**:
  68 +
  69 +- order_id(幂等)
  70 +- customer identifiers(customer_id / email_sha256 / phone_sha256)
  71 +- items、value、currency、timestamp
  72 +
  73 +### 2.3 平台/工具集成(CDP/Email/Ads)
  74 +
  75 +DY 常作为“决策层”,因此会对接:
  76 +
  77 +- CDP(统一事件流)
  78 +- Email/SMS(把推荐/人群输出到触达渠道)
  79 +- Ads(把人群同步到投放平台、回传转化做归因)
  80 +
  81 +---
  82 +
  83 +## 3. 身份识别与跨设备(DY 类产品常见策略)
  84 +
  85 +### 3.1 匿名到已知
  86 +
  87 +触发点:
  88 +
  89 +- 登录
  90 +- 留资(订阅)
  91 +- 下单
  92 +
  93 +做法:
  94 +
  95 +- 在“识别事件”发生时,把当前匿名 cookie id 与已知标识(email/phone/customer_id)绑定
  96 +- 将历史匿名行为合并到已知画像
  97 +
  98 +### 3.2 跨设备
  99 +
  100 +- **确定性优先**:email/phone/customer_id
  101 +- **匹配增强**:哈希 PII + click id 回传给广告平台,借助平台跨设备图谱提升归因(DY/你们都无法直接拿到平台图谱细节)
  102 +
  103 +---
  104 +
  105 +## 4. 实验与归因:为什么 DY 必须“自己采 + 自己记曝光”?
  106 +
  107 +DY 的 A/B 测试与个性化要成立,必须同时拥有:
  108 +
  109 +- **曝光事件**:用户看到了哪个变体/哪个推荐位(exposure/impression)
  110 +- **行为/转化事件**:点击、加购、购买
  111 +
  112 +因此在数据获取层,DY 类系统会强制:
  113 +
  114 +- 在前端记录“谁看到什么”(曝光)
  115 +- 在订单侧确认“最终发生什么”(purchase/refund)
  116 +
  117 +这也是你们自研时必须具备的两条事件链路。
  118 +
  119 +---
  120 +
  121 +## 5. 去重、延迟与一致性
  122 +
  123 +- 曝光/点击等事件:秒级进入决策系统(用于实时策略)
  124 +- 订单事实:以 order_id 幂等,分钟级确认并可反向修正(退款/取消)
  125 +- 报表与分析:小时级/天级聚合
  126 +
  127 +---
  128 +
  129 +## 6. 你们自研 SaaS 的可复用点(对照 DY)
  130 +
  131 +- 把“决策层(实时个性化)”与“事实层(订单/客户/商品)”拆开建管道
  132 +- 曝光事件是 A/B 与个性化归因的基础(必须采集)
  133 +- purchase 必须 S2S 幂等回传(order_id)
  134 +- 广告平台闭环:click id + S2S 回传 + 报表富化(见 `docs/用户匹配与外部数据打通-平台官方机制提权.md`)
  135 +
  136 +
... ...
docs/竞品参考文档/Nosto-用户数据获取技术方案.md 0 → 100644
... ... @@ -0,0 +1,198 @@
  1 +# Nosto:用户数据获取技术方案(拆解版)
  2 +
  3 +> 目标:拆解 Nosto 在“用户数据获取/打通/画像更新”层面的常见技术实现,便于你们自研个性化引擎 SaaS 参考。
  4 +>
  5 +> 说明:公开互联网上 Nosto 的部分开发者/支持文档存在账号/客户权限门槛;我基于公开信息与行业通行做法进行了结构化提炼。你们在对齐字段/端点级细节时,建议以 Nosto 客户/合作伙伴后台的官方文档为准(并做一次 PoC 抓包验证)。
  6 +
  7 +---
  8 +
  9 +## 1. Nosto 的“数据获取”总体框架(你可以把它看成 3 条管道)
  10 +
  11 +### 1.1 行为事件管道(Behavior Events)
  12 +
  13 +- **来源**:站点前端(Web)/ App(可选)/ 服务端(S2S)
  14 +- **目的**:实时更新用户短期意图与会话上下文,用于推荐/个性化/弹窗/分群触发
  15 +- **典型事件**:
  16 + - `page_view` / `product_view` / `category_view`
  17 + - `search`(站内搜索)
  18 + - `add_to_cart` / `remove_from_cart`
  19 + - `checkout_start` / `purchase`
  20 +
  21 +### 1.2 业务事实管道(Commerce Facts)
  22 +
  23 +- **来源**:电商平台(Shopify/Magento/…)的订单/客户/商品目录同步(API + Webhook)
  24 +- **目的**:构建长期画像(RFM、LTV、品类偏好、价格敏感度等)与推荐训练数据
  25 +- **典型对象**:
  26 + - 商品目录(SKU、类目、价格、标签、库存)
  27 + - 订单事实(line items、折扣、退款/取消)
  28 + - 客户事实(邮箱/手机号/会员等级/标签,取决于商家是否有&合规)
  29 +
  30 +### 1.3 外部渠道管道(Ad/Email/Social Signals)
  31 +
  32 +- **来源**:广告平台/邮件营销/忠诚度/评价等第三方工具的集成信号(S2S)
  33 +- **目的**:把“外部触达/来源”与站内行为闭环,形成更强的归因与分群能力
  34 +
  35 +---
  36 +
  37 +## 2. 数据采集方式(Nosto 常见实现形态)
  38 +
  39 +### 2.1 站点前端脚本(Nosto Tag / JS SDK)
  40 +
  41 +**核心作用**:
  42 +
  43 +- 生成/读取匿名用户标识(cookie / localStorage 等一方存储)
  44 +- 采集页面与商品上下文(例如当前产品 ID、价格、类目等)
  45 +- 上报行为事件到 Nosto(低延迟)
  46 +- 拉取个性化内容(推荐列表、A/B 试验变体等)并渲染
  47 +
  48 +**工程实现要点(行业通用,Nosto 通常也会这么做)**:
  49 +
  50 +- 异步加载脚本,避免阻塞首屏
  51 +- 事件上报使用 `sendBeacon`/异步 XHR,弱网重试
  52 +- 事件带 `event_id` 做幂等,避免刷新/多次触发重复计数
  53 +- 对“关键事件”(purchase)通常要求服务端再补一份(S2S)以提高准确性
  54 +
  55 +### 2.2 服务端 S2S 事件回传(订单/转化)
  56 +
  57 +**典型用途**:
  58 +
  59 +- 用服务端确认“最终订单状态”(支付成功、退款、取消)
  60 +- 在浏览器追踪受限时补齐转化事件
  61 +- 支持更强的一致性(推荐/分群不会因为前端丢事件而漂移)
  62 +
  63 +**关键字段(建议你们对齐的通用字段)**:
  64 +
  65 +- `event_name`: `purchase` / `refund` / `cancel`
  66 +- `event_time`
  67 +- `order_id`(去重关键)
  68 +- `customer_id`(如有)/ `email_sha256`(如合规)
  69 +- `items[]`:sku、qty、price、category、brand、tags
  70 +- `currency`、`value`
  71 +
  72 +### 2.3 商品目录与价格库存同步(Feed / Connector)
  73 +
  74 +Nosto 的个性化推荐对“商品库质量”非常敏感,因此通常会有:
  75 +
  76 +- **全量导入**(初次接入):把商品目录、类目、库存、价格、图片、属性标签等导入
  77 +- **增量更新**(日常):通过平台 webhook 或定时同步更新价格/库存/上下架
  78 +
  79 +**商品数据的典型字段**:
  80 +
  81 +- `product_id / sku`
  82 +- `title/description`
  83 +- `image_urls`
  84 +- `category_path`
  85 +- `brand`
  86 +- `price / sale_price`
  87 +- `availability / inventory`
  88 +- `attributes/tags`
  89 +
  90 +### 2.4 电商平台连接器(Shopify / Magento / BigCommerce…)
  91 +
  92 +**典型能力**:
  93 +
  94 +- 读取/订阅:customers、orders、products、inventory
  95 +- 绑定:把“匿名行为”与“登录/下单身份”在平台侧的 customer 维度合并
  96 +- 回写(可选):把分群/推荐结果回写到营销工具(邮件、广告受众等)
  97 +
  98 +> 在 Shopify 生态里,Nosto 这类工具通常会同时使用:平台 API/Webhooks(业务事实)+ storefront 事件采集(浏览/加购等)。你们可对照 `docs/Shopify生态-个性化营销SaaS如何获取外部用户信息与个性化信号.md` 的“主干通道”章节。
  99 +
  100 +---
  101 +
  102 +## 3. 身份识别与合并(Nosto 的核心:匿名 → 已知 → 跨设备)
  103 +
  104 +### 3.1 匿名用户识别(Anonymous)
  105 +
  106 +- **匿名 ID**:由前端脚本生成并持久化(cookie/本地存储)
  107 +- **会话 ID**:用于限定“短期意图”(例如最近 30 分钟)
  108 +
  109 +### 3.2 已知用户识别(Known)
  110 +
  111 +触发点通常是:
  112 +
  113 +- 登录
  114 +- 留资(订阅邮箱/短信)
  115 +- 下单(checkout)
  116 +
  117 +在这些节点,Nosto 会把:
  118 +
  119 +- `anonymous_id` 历史行为
  120 +- 合并到 `customer_id/email/phone` 所对应的长期画像
  121 +
  122 +### 3.3 跨设备关联(Cross-device)
  123 +
  124 +Nosto 类系统的常见策略(也是你们自研建议的路线):
  125 +
  126 +- **确定性优先**:email/phone/customer_id 做主键
  127 +- **增强匹配**(合规后):哈希邮箱/手机号用于广告平台匹配(从而提升归因与跨设备识别)
  128 +- **概率信号**(可选):设备指纹/网络/行为序列,但不作为第一阶段主链路
  129 +
  130 +---
  131 +
  132 +## 4. 外部数据打通(广告/邮件/忠诚度/评价)
  133 +
  134 +### 4.1 广告平台(Meta/Google/TikTok)
  135 +
  136 +Nosto 类产品强调的“聚合搜索与社交平台数据”,工程上通常不是“爬社交”,而是:
  137 +
  138 +- **入口串联**:从落地页 URL 获取 `fbclid/ttclid/gclid` + UTM
  139 +- **站内事件**:用前端脚本/服务端采集购买/加购/浏览
  140 +- **平台闭环**:用平台的官方 S2S 机制回传转化(CAPI/Events API/Conversion Upload)
  141 +- **报表富化**:定时拉 campaign/ad/keyword 成本与效果,写入你们的“归因标签”
  142 +
  143 +详细的“用户匹配与外部数据打通机制”可复用你们仓库已有总结:
  144 +
  145 +- `docs/用户匹配与外部数据打通-平台官方机制提权.md`
  146 +
  147 +### 4.2 邮件/短信与 CRM(Klaviyo 等)
  148 +
  149 +常见链路:
  150 +
  151 +- Nosto → 邮件系统:把分群/推荐商品列表输出给邮件模板
  152 +- 邮件系统 → Nosto:把 open/click/unsubscribe 等触达互动回流(用于人群质量与策略优化)
  153 +
  154 +### 4.3 忠诚度/评价(Yotpo 等)
  155 +
  156 +常见链路:
  157 +
  158 +- 订单完成触发:发评价邀请、积分发放
  159 +- 评价/等级信号回流:作为“用户偏好/价值”的长期特征
  160 +
  161 +---
  162 +
  163 +## 5. 去重、延迟与一致性(工程上的“坑”)
  164 +
  165 +### 5.1 事件去重
  166 +
  167 +- 关键事件(purchase/refund)必须可幂等:
  168 + - 以 `order_id` 为幂等键(同一订单多次回传只算一次)
  169 + - 或使用 `event_id`(保证全局唯一)
  170 +
  171 +### 5.2 延迟分层
  172 +
  173 +- **实时层**:浏览/加购等秒级进入画像(用于推荐)
  174 +- **准实时**:订单支付可能分钟级确认(支付网关/平台事件)
  175 +- **离线层**:批量重算(商品相似度、用户聚类等)
  176 +
  177 +### 5.3 事实修正
  178 +
  179 +- 退款/取消会“反向修正”用户价值与训练数据
  180 +- 因此必须接入平台侧的退款/取消事件(webhook 或定时对账)
  181 +
  182 +---
  183 +
  184 +## 6. 合规与隐私(GDPR/CCPA + Consent)
  185 +
  186 +- **同意管理**:在用户未同意前,不应写入营销/广告相关 cookie,也不应回传哈希 PII
  187 +- **数据最小化**:只采集必要字段;对 `referrer/landing_url` 做参数白名单与脱敏
  188 +- **分租户隔离**:账号、token、数据源密钥、事件流都必须 tenant 隔离
  189 +
  190 +---
  191 +
  192 +## 7. 你们自研 SaaS 的可复用点(对照 Nosto)
  193 +
  194 +- **三管道模型**:行为事件 + 业务事实 + 外部信号(最关键的结构)
  195 +- **身份合并主链路**:anonymous_id → customer_id/email/phone(确定性优先)
  196 +- **广告平台闭环**:click id + S2S 回传 + 报表富化(不要依赖“平台回传用户行为”)
  197 +
  198 +
... ...
docs/竞品参考文档/电商个性化推荐 SaaS 技术方案:数据获取与打通.md 0 → 100644
... ... @@ -0,0 +1,204 @@
  1 +# 电商个性化推荐 SaaS 技术方案:数据获取与打通
  2 +
  3 +## 1. 引言
  4 +
  5 +本技术方案旨在阐述如何构建一个电商个性化推荐 SaaS 平台,重点聚焦于**全渠道数据获取、数据整合与打通**的核心技术实现。我们将借鉴 Nosto 等行业领先者的实践经验,结合当前主流技术栈,设计一套可扩展、高可用且符合数据隐私规范的系统架构。
  6 +
  7 +## 2. 核心架构概览
  8 +
  9 +个性化推荐 SaaS 平台的核心在于高效地收集、整合和处理来自不同渠道的用户行为数据与业务数据,并在此基础上构建统一的客户视图,为个性化推荐提供坚实的数据基础。以下是整体架构的概览图:
  10 +
  11 +![架构概览图](https://private-us-east-1.manuscdn.com/sessionFile/MPBkQjAwYEPDQuw5oSNkba/sandbox/owNsnbnP40DtzKCFvilk2L-images_1767771038719_na1fn_L2hvbWUvdWJ1bnR1L2FyY2hpdGVjdHVyZV9kaWFncmFt.png?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9wcml2YXRlLXVzLWVhc3QtMS5tYW51c2Nkbi5jb20vc2Vzc2lvbkZpbGUvTVBCa1FqQXdZRVBEUXV3NW9TTmtiYS9zYW5kYm94L293TnNuYm5QNDBEdHpLQ0Z2aWxrMkwtaW1hZ2VzXzE3Njc3NzEwMzg3MTlfbmExZm5fTDJodmJXVXZkV0oxYm5SMUwyRnlZMmhwZEdWamRIVnlaVjlrYVdGbmNtRnQucG5nIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzk4NzYxNjAwfX19XX0_&Key-Pair-Id=K2HSFNDJXOU9YS&Signature=FOl36NdZP1NUxEmHSK-TFKC~zEvwPmCzWVcDQVxKtQIzYks0awx2i~PJtck2gywvi9jrDlCpGb49tbzEFEzT6omZ84EDJ4O930Y2mGTFiZcWZDKQY617u9zg3tVh39c6tczcsy47b~YhrTwbks8zANpI9GGdQLqhG0fRM2hkLM1AhJz3bP2qHNjgpsY7cqYDzHgtsNo0qaZVCysAxDFrKLPjXxHfU-udrbJjQ~RZs9mIHsEwP5a3WvHPpxBZMeq4b0Rvi0nmnxITsOwbQrEiovu5X8WdOwtAP-waLewGyFVlAhROuP02hw3BVcwO3Dwq2CVgIbXQru4Q4EDvocarAQ__)
  12 +
  13 +## 3. 数据采集层:多源异构数据接入
  14 +
  15 +数据采集是构建个性化推荐系统的第一步,也是最关键的一步。我们需要建立一套灵活、实时且可靠的数据采集机制,覆盖用户在电商旅程中的所有触点。
  16 +
  17 +### 3.1 网站与移动应用行为数据采集
  18 +
  19 +* **网站行为数据**:通过 **JavaScript SDK (Pixel)** 部署在电商网站前端,实时捕获用户的页面浏览、点击、加购、收藏、搜索、购买等行为。每个会话通过 `session_id` 或 `cookie_id` 进行标识。SDK 应支持异步加载,避免影响网站性能。
  20 +* **移动应用数据**:通过 **原生 SDK (iOS/Android)** 嵌入到移动应用中,采集与网站类似的用户行为数据。为实现跨设备追踪,移动 SDK 需与网站 SDK 共享用户 ID 机制。
  21 +
  22 +**技术实现建议**:
  23 +* **消息队列**:采用 **Apache Kafka** 或 **RabbitMQ** 作为数据接入层,处理每秒数十万级别的实时事件流,确保数据不丢失、高吞吐量和低延迟 [1]。
  24 +* **数据格式**:统一采用 JSON 或 Protobuf 格式封装事件数据,包含 `event_type`、`user_id` (如果已知)、`anonymous_id`、`session_id`、`product_id`、`timestamp`、`device_info`、`geo_location` 等关键字段。
  25 +
  26 +### 3.2 第三方平台数据接入
  27 +
  28 +电商生态系统往往涉及多个外部平台,如社交媒体、广告平台、营销自动化工具等。通过 **Server-to-Server (S2S) API 集成** 是实现这些数据打通的关键,而非简单的客户端 SDK 采集或数据爬取。
  29 +
  30 +* **社交媒体平台 (如 Meta/Facebook/Instagram)**:
  31 + * **OAuth 2.0 授权**:商家通过 OAuth 2.0 流程授权 SaaS 平台访问其 Meta 商业账户的 API 权限(如 `ads_management`, `ads_read`, `business_management`)。SaaS 平台获取长期访问令牌,用于后续的 API 调用 [2]。
  32 + * **Meta Conversions API (CAPI)**:SaaS 平台作为 Meta 的合作伙伴,通过 CAPI 将服务器端的转化事件(如购买、加购)直接发送给 Meta,弥补浏览器端 Pixel 追踪的不足,提高广告归因的准确性 [3]。这需要服务器到服务器的直接通信,而非通过用户浏览器。
  33 +* **广告平台 (如 Google Ads)**:
  34 + * **Google Ads API**:通过 API 获取广告投放数据、点击数据和转化数据。同样,需要商家授权 SaaS 平台访问其 Google Ads 账户 [4]。
  35 + * **Server-Side Tagging**:利用 Google Tag Manager (GTM) 的服务器端容器,将网站事件数据发送到 SaaS 平台的服务器,再由 SaaS 平台转发给 Google Ads,实现更可靠的追踪 [5]。
  36 +* **其他第三方平台 (如 Shopify Flow, LoyaltyLion, Yotpo)**:
  37 + * **Webhook 机制**:通过配置 Webhook,当第三方平台发生特定事件(如订单状态变更、会员积分变动、用户评论)时,实时将数据推送到 SaaS 平台的数据接收接口。
  38 + * **API 定时拉取**:对于不支持 Webhook 或需要批量同步的数据,通过定时任务调用第三方平台的 API 进行数据拉取。
  39 +
  40 +**关键技术特征**:
  41 +* **双向 S2S 架构**:数据直接在商家服务器 → SaaS 平台服务器 → 外部平台服务器之间传输,无需中间人。
  42 +* **实时 + 批量混合**:支持实时事件转发(毫秒级)和定时批量同步(小时级)。
  43 +* **去重机制**:通过 `event_id` 和 `session_id` 避免客户端与服务端事件重复。
  44 +
  45 +### 3.3 离线数据导入
  46 +
  47 +* **CRM/POS 系统数据**:支持通过 SFTP 文件传输(CSV/JSON 格式)或实时 API 推送的方式,批量导入客户关系管理 (CRM) 系统和销售终端 (POS) 系统中的客户信息、订单历史、会员等级等数据。
  48 +* **CDP 集成**:支持 Segment、mParticle 等标准 CDP 的数据格式,方便商家将已有的 CDP 数据导入。
  49 +
  50 +## 4. 身份识别与统一:构建 Identity Graph
  51 +
  52 +全渠道数据整合的核心挑战之一是**用户身份识别与统一**。不同渠道的用户行为可能由同一个用户产生,但却拥有不同的标识符(如网站 Cookie ID、App 设备 ID、邮箱、手机号)。构建 **Identity Graph (身份图谱)** 是解决这一问题的关键。
  53 +
  54 +### 4.1 身份图谱的核心逻辑
  55 +
  56 +Identity Graph 旨在将一个用户的不同标识符关联起来,形成一个统一的客户视图 (Customer 360)。
  57 +
  58 +| 标识符类型 | 描述 | 示例 |
  59 +| :--------------- | :--------------------------------------- | :--------------------------------------- |
  60 +| **匿名 ID** | 设备级标识,如 `2c.cId cookie` 值、设备指纹 | `cookie_value_xyz`、`web_1920x1080_chrome_mac` |
  61 +| **已知 ID** | 登录用户标识,如 `user_id`、邮箱、手机号 | `user_12345`、`user@example.com`、`+86-138****1234` |
  62 +| **关联关系** | 不同 ID 之间的连接关系 | `user_12345` 关联 `cookie_value_xyz` |
  63 +
  64 +### 4.2 关键技术与匹配策略
  65 +
  66 +* **确定性匹配 (Deterministic Matching)**:
  67 + * 基于强标识符进行匹配,准确率高。例如,用户登录时,将当前匿名会话的 `anonymous_id` 与其 `user_id` 进行关联。
  68 + * 其他确定性匹配场景包括邮箱订阅、手机号绑定、会员卡号等。
  69 + * **技术实现**:维护一个 ID 映射表,存储 `anonymous_id` 到 `user_id` 的映射关系,并支持实时更新。
  70 +* **概率性匹配 (Probabilistic Matching)**:
  71 + * 当缺乏强标识符时,通过算法推测不同匿名行为是否属于同一用户。例如,基于设备指纹 (Device Fingerprint)、行为模式、IP 地址、地理位置等信息进行匹配 [6]。
  72 + * **设备指纹**:结合浏览器类型、操作系统、屏幕分辨率、插件列表、字体等信息生成设备的唯一标识。可集成第三方库如 FingerprintJS。
  73 + * **行为模式**:分析用户在不同设备上的浏览路径、购买偏好、时间规律等,通过机器学习模型计算相似度。
  74 + * **技术实现**:
  75 + * **图数据库 (如 Neo4j)**:存储 ID 之间的关联关系,方便进行复杂的关系查询和图算法分析,发现潜在的概率性匹配 [7]。
  76 + * **机器学习模型**:训练分类模型(如逻辑回归、随机森林)来预测不同匿名 ID 属于同一用户的概率。
  77 +* **实时 ID 合并**:当用户登录或提供新的身份信息时,系统应立即合并其历史匿名行为数据,更新用户画像,确保推荐的实时性和准确性。
  78 +
  79 +## 5. 数据整合与处理:统一客户数据资产 (CDP)
  80 +
  81 +将采集到的多源数据和统一身份后的数据进行整合、清洗、转换,最终形成一个统一的客户数据平台 (Customer Data Platform, CDP),是为个性化推荐提供数据支撑的关键。
  82 +
  83 +### 5.1 Lambda 架构与实时流处理
  84 +
  85 +为满足“每秒数十万次实时请求”和毫秒级延迟更新用户画像的需求,系统应采用 **Lambda 架构**,结合实时层和批处理层 [8]。
  86 +
  87 +* **实时层**:
  88 + * **技术栈**:**Apache Flink** 或 **Spark Streaming**。
  89 + * **功能**:处理 Kafka 消息队列中的实时行为流,进行数据清洗、格式转换、实时聚合、特征提取,并毫秒级延迟更新用户画像。
  90 + * **输出**:实时更新的用户画像数据存储到 Redis 等低延迟存储中。
  91 +* **批处理层**:
  92 + * **技术栈**:**Apache Spark** 或 **Hadoop MapReduce**。
  93 + * **功能**:每日或定期处理全量历史数据,进行更复杂的离线计算,如用户聚类、商品相似度计算、模型训练、数据修正和补充实时计算结果。
  94 + * **输出**:离线计算结果存储到 HDFS/S3 等分布式存储,并同步到 CDP。
  95 +
  96 +### 5.2 CDP 核心数据模型
  97 +
  98 +CDP 旨在构建一个全面的客户 360 度视图,包含以下核心数据域:
  99 +
  100 +| 数据域 | 存储内容 | 典型技术组件 |
  101 +| :----------- | :--------------------------------------- | :----------------------- |
  102 +| **行为事件** | 点击、浏览、加购、购买等原始事件 | Kafka + Flink |
  103 +| **用户属性** | 人口统计、会员等级、RFM 标签、偏好向量 | Redis + PostgreSQL |
  104 +| **产品目录** | SKU、价格、库存、类目、标签等商品元数据 | Elasticsearch |
  105 +| **场景上下文** | 时间、设备、地理位置、来源渠道 | MongoDB |
  106 +| **关系网络** | 用户相似度、商品共现、ID 关联关系 | Neo4j 图数据库 |
  107 +
  108 +### 5.3 数据存储策略
  109 +
  110 +根据数据的访问频率和时效性,采用分层存储策略:
  111 +
  112 +* **热数据**:用户最近的活跃行为(如最近 50 个行为)存储在 **Redis** 集群中,设置较短的 TTL (Time-To-Live),支持毫秒级快速读写。
  113 +* **温数据**:近 30 天的行为数据存储在 **Cassandra** 或 **ClickHouse** 等分布式列式数据库中,支持快速查询和聚合分析。
  114 +* **冷数据**:全量历史数据存储在 **S3/HDFS** 等对象存储或分布式文件系统中,用于离线训练和长期归档。
  115 +
  116 +## 6. SaaS 平台化设计:多租户与数据安全
  117 +
  118 +作为一个 SaaS 平台,多租户架构设计至关重要,需要确保不同商家之间的数据隔离、资源隔离和安全性。
  119 +
  120 +### 6.1 多租户隔离策略
  121 +
  122 +* **数据隔离**:
  123 + * **独立数据库 (Database-per-Tenant)**:为每个商家分配独立的数据库实例,提供最强的数据隔离性,但成本较高,管理复杂 [9]。
  124 + * **独立 Schema (Schema-per-Tenant)**:在共享数据库中为每个商家创建独立的 Schema,数据隔离性良好,成本适中 [9]。
  125 + * **共享数据库,通过 Tenant ID 隔离 (Shared Database with Tenant ID)**:所有商家数据存储在同一个数据库中,通过在每张表中添加 `tenant_id` 字段进行逻辑隔离。实现简单,成本最低,但需要严格的应用程序逻辑控制数据访问 [9]。
  126 + * **建议**:对于核心敏感数据(如用户画像、行为事件),可采用独立 Schema 或独立数据库;对于公共数据(如商品目录模板),可采用共享数据库加 `tenant_id` 隔离。在 Kafka 消息队列中,可为每个租户创建独立 Topic 或使用 `tenant_id` 作为消息 Key 进行分区。
  127 +* **资源隔离**:
  128 + * **Kubernetes 命名空间 (Namespace)**:在 Kubernetes 集群中为每个商家创建独立的命名空间,通过资源配额 (Resource Quotas) 限制 CPU、内存等资源使用,防止“邻居干扰”问题 [10]。
  129 + * **容器化部署**:将各个服务(数据采集、流处理、API 服务等)容器化,通过 Docker 和 Kubernetes 进行部署和管理。
  130 +* **API 隔离**:为每个商家提供独立的 `accountID` 和 API Key,确保 API 调用的安全性和隔离性。
  131 +
  132 +### 6.2 数据安全与合规
  133 +
  134 +* **数据加密**:所有敏感数据(如用户 PII、支付信息)在传输和存储过程中必须进行加密。使用 TLS/SSL 保护数据传输,使用 AES-256 等算法加密静态数据。
  135 +* **访问控制**:实施严格的基于角色的访问控制 (RBAC),确保只有授权用户才能访问特定数据和功能。
  136 +* **隐私合规**:
  137 + * **GDPR (通用数据保护条例)** 和 **CCPA (加州消费者隐私法案)**:确保数据采集、存储、处理和共享符合 GDPR 和 CCPA 等隐私法规的要求 [11]。
  138 + * **用户数据删除**:提供用户数据删除功能,支持用户行使“被遗忘权”。
  139 + * **数据最小化**:只收集和存储必要的、与业务目的相关的数据。
  140 + * **透明度**:向用户清晰说明数据收集和使用政策。
  141 +
  142 +## 7. 实施路线图 (数据获取与打通阶段)
  143 +
  144 +### 7.1 第一阶段:MVP (数据采集与身份识别)
  145 +
  146 +* **基础设施搭建**:
  147 + * 消息队列:Kafka (3 节点集群)
  148 + * 流处理:Flink on Kubernetes
  149 + * 缓存:Redis Cluster (6 节点)
  150 + * 数据库:PostgreSQL (用户数据) + Elasticsearch (商品目录)
  151 + * API 网关:Kong/AWS API Gateway
  152 +* **核心功能实现**:
  153 + * **JavaScript SDK**:页面埋点、Cookie 管理、行为上报。
  154 + * **身份服务**:匿名 ID 生成、登录态关联、ID 映射表。
  155 + * **数据接收 API**:接收网站/APP SDK 上报的事件数据,写入 Kafka。
  156 + * **管理后台**:商家注册、API Key 管理、数据源配置。
  157 +* **数据模型设计**:
  158 + * `user_events` 表:存储原始用户行为事件。
  159 + * `user_identity_map` 表:存储匿名 ID 与已知 ID 的映射关系。
  160 +
  161 +### 7.2 第二阶段:全渠道整合与 CDP 建设
  162 +
  163 +* **扩展数据源**:
  164 + * **移动端 SDK**:iOS/Android 埋点采集。
  165 + * **CRM 对接**:Salesforce、HubSpot API 集成。
  166 + * **营销平台对接**:Klavyio、Mailchimp 获取邮件互动数据。
  167 + * **广告平台 S2S 集成**:Meta CAPI、Google Ads API/Server-Side Tagging。
  168 +* **增强身份识别**:
  169 + * **设备指纹库**:集成 FingerprintJS/Thumbor。
  170 + * **图谱算法**:使用 Neo4j 存储 ID 关联关系,实现概率匹配。
  171 + * **实时 ID 合并引擎**:确保用户身份实时统一。
  172 +* **CDP 建设**:
  173 + * **实时用户画像**:Flink 处理实时流,更新 Redis 中的用户画像。
  174 + * **统一客户数据模型**:设计并实现 CDP 核心数据模型,整合行为、属性、产品、场景数据。
  175 + * **数据存储分层**:Redis (热数据)、Cassandra (温数据)、S3/HDFS (冷数据)。
  176 +
  177 +## 8. 关键技术挑战与应对方案
  178 +
  179 +| 挑战 | 应对方案 |
  180 +| :------------- | :------------------------------------------- |
  181 +| **数据延迟** | Flink 实时流处理,Redis 缓存热数据,P99 延迟 < 200ms |
  182 +| **ID 关联准确率** | 确定性 + 概率性匹配,持续学习优化,初期 95% 准确率,通过反馈数据迭代 |
  183 +| **商品库同步** | 支持增量同步 + 全量校对,延迟 < 1 分钟 |
  184 +| **多租户数据隔离** | 独立 Schema/数据库 + Tenant ID 逻辑隔离,Kubernetes 资源配额 |
  185 +| **数据安全合规** | 数据加密、RBAC、GDPR/CCPA 合规,支持用户数据删除 |
  186 +| **系统稳定性** | 熔断、限流、降级三件套,多云部署,99.9% 可用性 |
  187 +
  188 +## 9. 总结
  189 +
  190 +本方案详细阐述了构建电商个性化推荐 SaaS 平台在**数据获取与打通**方面的技术实现路径。通过建立强大的数据采集层、智能的身份识别服务、高效的数据整合处理机制以及安全的多租户架构,我们将能够为商家提供一个稳定、可靠且功能强大的个性化推荐基础平台,助力其实现业务增长。
  191 +
  192 +## 10. 参考文献
  193 +
  194 +[1] Apache Kafka. [https://kafka.apache.org/](https://kafka.apache.org/)
  195 +[2] Meta for Developers - OAuth 2.0. [https://developers.facebook.com/docs/facebook-login/guides/advanced/manual-flow/](https://developers.facebook.com/docs/facebook-login/guides/advanced/manual-flow/)
  196 +[3] Meta for Developers - Conversions API. [https://developers.facebook.com/docs/marketing-api/conversions-api/](https://developers.facebook.com/docs/marketing-api/conversions-api/)
  197 +[4] Google Ads API. [https://developers.google.com/google-ads/api/docs/start](https://developers.google.com/google-ads/api/docs/start)
  198 +[5] Google Tag Manager - Server-side tagging. [https://developers.google.com/tag-platform/tag-manager/server-side/intro](https://developers.google.com/tag-platform/tag-manager/server-side/intro)
  199 +[6] Identity Resolution: Unifying User Profiles. [https://www.okta.com/identity-101/identity-resolution/](https://www.okta.com/identity-101/identity-resolution/)
  200 +[7] Neo4j Graph Database. [https://neo4j.com/](https://neo4j.com/)
  201 +[8] Lambda Architecture. [https://en.wikipedia.org/wiki/Lambda_architecture](https://en.wikipedia.org/wiki/Lambda_architecture)
  202 +[9] Data Isolation and Sharding Architectures for Multi-Tenant Systems. [https://medium.com/@justhamade/data-isolation-and-sharding-architectures-for-multi-tenant-systems-20584ae2bc31](https://medium.com/@justhamade/data-isolation-and-sharding-architectures-for-multi-tenant-systems-20584ae2bc31)
  203 +[10] Kubernetes Namespaces. [https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/)
  204 +[11] GDPR for SaaS: 8 Steps to Ensure Compliance. [https://www.cookieyes.com/blog/gdpr-for-saas/](https://www.cookieyes.com/blog/gdpr-for-saas/)
... ...