Commit fbc7f11477a82fe9dedf6c411988598ab20720b0
1 parent
80f87e57
docs
Showing
12 changed files
with
2009 additions
and
99 deletions
Show diff stats
| @@ -0,0 +1,294 @@ | @@ -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/prompt.md
| @@ -4,6 +4,75 @@ | @@ -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 @@ | @@ -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 | \ No newline at end of file | 220 | \ No newline at end of file |
docs/blog/智能引导2.md
| @@ -0,0 +1,60 @@ | @@ -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 | \ No newline at end of file | 61 | \ No newline at end of file |
docs/blog/智能推荐5.md
| @@ -1,99 +0,0 @@ | @@ -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 | \ No newline at end of file | 0 | \ No newline at end of file |
| @@ -0,0 +1,409 @@ | @@ -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 | + |
| @@ -0,0 +1,281 @@ | @@ -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 | + |
| @@ -0,0 +1,135 @@ | @@ -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 | + |
| @@ -0,0 +1,136 @@ | @@ -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 | + |
| @@ -0,0 +1,198 @@ | @@ -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 | + |
| @@ -0,0 +1,204 @@ | @@ -0,0 +1,204 @@ | ||
| 1 | +# 电商个性化推荐 SaaS 技术方案:数据获取与打通 | ||
| 2 | + | ||
| 3 | +## 1. 引言 | ||
| 4 | + | ||
| 5 | +本技术方案旨在阐述如何构建一个电商个性化推荐 SaaS 平台,重点聚焦于**全渠道数据获取、数据整合与打通**的核心技术实现。我们将借鉴 Nosto 等行业领先者的实践经验,结合当前主流技术栈,设计一套可扩展、高可用且符合数据隐私规范的系统架构。 | ||
| 6 | + | ||
| 7 | +## 2. 核心架构概览 | ||
| 8 | + | ||
| 9 | +个性化推荐 SaaS 平台的核心在于高效地收集、整合和处理来自不同渠道的用户行为数据与业务数据,并在此基础上构建统一的客户视图,为个性化推荐提供坚实的数据基础。以下是整体架构的概览图: | ||
| 10 | + | ||
| 11 | + | ||
| 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/) |