# Nosto：用户数据获取技术方案（拆解版）

> 目标：拆解 Nosto 在“用户数据获取/打通/画像更新”层面的常见技术实现，便于你们自研个性化引擎 SaaS 参考。
>
> 说明：公开互联网上 Nosto 的部分开发者/支持文档存在账号/客户权限门槛；我基于公开信息与行业通行做法进行了结构化提炼。你们在对齐字段/端点级细节时，建议以 Nosto 客户/合作伙伴后台的官方文档为准（并做一次 PoC 抓包验证）。

---

## 1. Nosto 的“数据获取”总体框架（你可以把它看成 3 条管道）

### 1.1 行为事件管道（Behavior Events）

- **来源**：站点前端（Web）/ App（可选）/ 服务端（S2S）
- **目的**：实时更新用户短期意图与会话上下文，用于推荐/个性化/弹窗/分群触发
- **典型事件**：
  - `page_view` / `product_view` / `category_view`
  - `search`（站内搜索）
  - `add_to_cart` / `remove_from_cart`
  - `checkout_start` / `purchase`

### 1.2 业务事实管道（Commerce Facts）

- **来源**：电商平台（Shopify/Magento/…）的订单/客户/商品目录同步（API + Webhook）
- **目的**：构建长期画像（RFM、LTV、品类偏好、价格敏感度等）与推荐训练数据
- **典型对象**：
  - 商品目录（SKU、类目、价格、标签、库存）
  - 订单事实（line items、折扣、退款/取消）
  - 客户事实（邮箱/手机号/会员等级/标签，取决于商家是否有&合规）

### 1.3 外部渠道管道（Ad/Email/Social Signals）

- **来源**：广告平台/邮件营销/忠诚度/评价等第三方工具的集成信号（S2S）
- **目的**：把“外部触达/来源”与站内行为闭环，形成更强的归因与分群能力

---

## 2. 数据采集方式（Nosto 常见实现形态）

### 2.1 站点前端脚本（Nosto Tag / JS SDK）

**核心作用**：

- 生成/读取匿名用户标识（cookie / localStorage 等一方存储）
- 采集页面与商品上下文（例如当前产品 ID、价格、类目等）
- 上报行为事件到 Nosto（低延迟）
- 拉取个性化内容（推荐列表、A/B 试验变体等）并渲染

**工程实现要点（行业通用，Nosto 通常也会这么做）**：

- 异步加载脚本，避免阻塞首屏
- 事件上报使用 `sendBeacon`/异步 XHR，弱网重试
- 事件带 `event_id` 做幂等，避免刷新/多次触发重复计数
- 对“关键事件”（purchase）通常要求服务端再补一份（S2S）以提高准确性

### 2.2 服务端 S2S 事件回传（订单/转化）

**典型用途**：

- 用服务端确认“最终订单状态”（支付成功、退款、取消）
- 在浏览器追踪受限时补齐转化事件
- 支持更强的一致性（推荐/分群不会因为前端丢事件而漂移）

**关键字段（建议你们对齐的通用字段）**：

- `event_name`: `purchase` / `refund` / `cancel`
- `event_time`
- `order_id`（去重关键）
- `customer_id`（如有）/ `email_sha256`（如合规）
- `items[]`：sku、qty、price、category、brand、tags
- `currency`、`value`

### 2.3 商品目录与价格库存同步（Feed / Connector）

Nosto 的个性化推荐对“商品库质量”非常敏感，因此通常会有：

- **全量导入**（初次接入）：把商品目录、类目、库存、价格、图片、属性标签等导入
- **增量更新**（日常）：通过平台 webhook 或定时同步更新价格/库存/上下架

**商品数据的典型字段**：

- `product_id / sku`
- `title/description`
- `image_urls`
- `category_path`
- `brand`
- `price / sale_price`
- `availability / inventory`
- `attributes/tags`

### 2.4 电商平台连接器（Shopify / Magento / BigCommerce…）

**典型能力**：

- 读取/订阅：customers、orders、products、inventory
- 绑定：把“匿名行为”与“登录/下单身份”在平台侧的 customer 维度合并
- 回写（可选）：把分群/推荐结果回写到营销工具（邮件、广告受众等）

> 在 Shopify 生态里，Nosto 这类工具通常会同时使用：平台 API/Webhooks（业务事实）+ storefront 事件采集（浏览/加购等）。你们可对照 `docs/Shopify生态-个性化营销SaaS如何获取外部用户信息与个性化信号.md` 的“主干通道”章节。

---

## 3. 身份识别与合并（Nosto 的核心：匿名 → 已知 → 跨设备）

### 3.1 匿名用户识别（Anonymous）

- **匿名 ID**：由前端脚本生成并持久化（cookie/本地存储）
- **会话 ID**：用于限定“短期意图”（例如最近 30 分钟）

### 3.2 已知用户识别（Known）

触发点通常是：

- 登录
- 留资（订阅邮箱/短信）
- 下单（checkout）

在这些节点，Nosto 会把：

- `anonymous_id` 历史行为
- 合并到 `customer_id/email/phone` 所对应的长期画像

### 3.3 跨设备关联（Cross-device）

Nosto 类系统的常见策略（也是你们自研建议的路线）：

- **确定性优先**：email/phone/customer_id 做主键
- **增强匹配**（合规后）：哈希邮箱/手机号用于广告平台匹配（从而提升归因与跨设备识别）
- **概率信号**（可选）：设备指纹/网络/行为序列，但不作为第一阶段主链路

---

## 4. 外部数据打通（广告/邮件/忠诚度/评价）

### 4.1 广告平台（Meta/Google/TikTok）

Nosto 类产品强调的“聚合搜索与社交平台数据”，工程上通常不是“爬社交”，而是：

- **入口串联**：从落地页 URL 获取 `fbclid/ttclid/gclid` + UTM
- **站内事件**：用前端脚本/服务端采集购买/加购/浏览
- **平台闭环**：用平台的官方 S2S 机制回传转化（CAPI/Events API/Conversion Upload）
- **报表富化**：定时拉 campaign/ad/keyword 成本与效果，写入你们的“归因标签”

详细的“用户匹配与外部数据打通机制”可复用你们仓库已有总结：

- `docs/用户匹配与外部数据打通-平台官方机制提权.md`

### 4.2 邮件/短信与 CRM（Klaviyo 等）

常见链路：

- Nosto → 邮件系统：把分群/推荐商品列表输出给邮件模板
- 邮件系统 → Nosto：把 open/click/unsubscribe 等触达互动回流（用于人群质量与策略优化）

### 4.3 忠诚度/评价（Yotpo 等）

常见链路：

- 订单完成触发：发评价邀请、积分发放
- 评价/等级信号回流：作为“用户偏好/价值”的长期特征

---

## 5. 去重、延迟与一致性（工程上的“坑”）

### 5.1 事件去重

- 关键事件（purchase/refund）必须可幂等：
  - 以 `order_id` 为幂等键（同一订单多次回传只算一次）
  - 或使用 `event_id`（保证全局唯一）

### 5.2 延迟分层

- **实时层**：浏览/加购等秒级进入画像（用于推荐）
- **准实时**：订单支付可能分钟级确认（支付网关/平台事件）
- **离线层**：批量重算（商品相似度、用户聚类等）

### 5.3 事实修正

- 退款/取消会“反向修正”用户价值与训练数据
- 因此必须接入平台侧的退款/取消事件（webhook 或定时对账）

---

## 6. 合规与隐私（GDPR/CCPA + Consent）

- **同意管理**：在用户未同意前，不应写入营销/广告相关 cookie，也不应回传哈希 PII
- **数据最小化**：只采集必要字段；对 `referrer/landing_url` 做参数白名单与脱敏
- **分租户隔离**：账号、token、数据源密钥、事件流都必须 tenant 隔离

---

## 7. 你们自研 SaaS 的可复用点（对照 Nosto）

- **三管道模型**：行为事件 + 业务事实 + 外部信号（最关键的结构）
- **身份合并主链路**：anonymous_id → customer_id/email/phone（确定性优先）
- **广告平台闭环**：click id + S2S 回传 + 报表富化（不要依赖“平台回传用户行为”）

---

## 8. 参考链接（官方/公开入口）

- **Nosto**
  - [Nosto 官网](https://www.nosto.com/)
  - [Nosto Tech Docs（文档入口）](https://docs.nosto.com/)
  - [Nosto Support Center（支持文档入口）](https://support.nosto.com/)
  - [Nosto Magento2 集成（开源仓库）](https://github.com/Nosto/nosto-magento2)
- **关联阅读（本仓库）**
  - `docs/全渠道数据整合-广告平台S2S对接手册.md`
  - `docs/用户匹配与外部数据打通-平台官方机制提权.md`


