# 外站联合归因

## 一、能力简介

对于通过外站媒体平台进行微信小程序推广引流的场景，we 分析提供外站联合归因能力，为开发者带来以下价值：

1. **支持阅读归因**：不仅能看到通过推广组件点击直接跳转打开小程序的转化，还能看到浏览广告后用户主动在微信打开对应小程序的转化行为，帮助广告主看到更完整的投放效果。
2. **长效跟踪**：支持长达 30 天的归因窗口，覆盖用户决策周期。
3. **完整数据呈现**：提供归因明细与统计分析，满足各类分析需求。

当前该能力已支持小红书平台，其他平台敬请期待。

## 二、使用说明

### 2.1 开通功能

登录We 分析平台https://wedata.weixin.qq.com，前往菜单“we 分析--经营工具--推广分析--外站联合归因”，进行相关协议确认与开通后，即可使用本功能。

![](https://res8.wxqcloud.qq.com.cn/wxdoc/171d3201-4e3b-4fa4-a7f4-dcb26271b1d8.png)

### 2.2 提供监测链接给媒体平台

把以下监测链接，提供给到外站媒体平台侧。

监测链接：

```
https://servicewechat.com/bizwxaconvattr/sendattrtracks?advertiser_id=__ADVERTISER_ID__&mini_program_id=__MINI_PROGRAM_ID__&caid=__CAID__&callback_param=__CALLBACK_PARAM__&click_id=__CLICK_ID__&ip=__IP__&oaid=__OAID_MD5__&request_id=__REQUESTID__&ts=__TS__&ua=__UA__&campaign_id=__CAMPAIGN_ID__&unit_id=__UNIT_ID__&creativity_id=__CREATIVITY_ID__&placement=__PLACEMENT__&wx_path=__WX_PATH__
```

### 2.3 获取转化明细

数据统计口径：当用户发生小程序访问行为后，平台会基于访问发生的时间，匹配前 30 天的广告阅读行为，若能匹配成功，则会生成一条数据。

若一次访问行为能关联多次广告阅读行为（clickid），即用户曾经看过多次广告，则会分别记录一条数据，即一次访问（session_id）匹配一次阅读行为（clickid），映射一条数据。因此，一次访问可能会记录多条数据。

微信平台提供两种方式获取转化明细：

#### 2.3.1 方式一：消息推送【建议方式】

通过小程序通用的[消息推送能力](/miniprogram/dev/framework/server-ability/message-push.md)，将监测数据准实时通知你。

筛选 event：`wxa_conversion_attribution`，即为本业务的消息。

消息推送的 xml 格式示例：

```xml
<xml>
  <ToUserName><![CDATA[gh_demo_to_user]]></ToUserName>
  <FromUserName><![CDATA[oDemoFromUser001]]></FromUserName>
  <CreateTime>1700000000</CreateTime>
  <MsgType><![CDATA[event]]></MsgType>
  <Event><![CDATA[wxa_conversion_attribution]]></Event>

  <!-- ===== 第 1 条 trace ===== -->
  <traces>
    <ctx_request_id><![CDATA[demo-request-001]]></ctx_request_id>
    <ctx_click_id><![CDATA[demo-click-001]]></ctx_click_id>
    <ctx_ts>1700000100</ctx_ts>
    <ctx_ip><![CDATA[demo_ip_hash_001]]></ctx_ip>
    <ctx_ua><![CDATA[DemoUserAgent/1.0]]></ctx_ua>
    <ctx_callback_param><![CDATA[demo_callback_token_001]]></ctx_callback_param>
    <ctx_advertiser_id>10001</ctx_advertiser_id>
    <ctx_campaign_id>20001</ctx_campaign_id>
    <ctx_unit_id>30001</ctx_unit_id>
    <ctx_creativity_id>40001</ctx_creativity_id>
    <ctx_placement><![CDATA[demo_placement_a]]></ctx_placement>
    <ctx_mini_program_id><![CDATA[gh_demo_mini_program]]></ctx_mini_program_id>
    <session_click_time>1700001000001</session_click_time>
    <session_id><![CDATA[demo_session_001]]></session_id>
    <wx_biz_app_id><![CDATA[wx_demo_appid_001]]></wx_biz_app_id>
    <wx_biz_id>50001</wx_biz_id>
    <wx_promotion_id><![CDATA[promo_demo_001]]></wx_promotion_id>
    <wx_material_id><![CDATA[material_demo_001]]></wx_material_id>
    <wx_action_mode>0</wx_action_mode>
    <wx_open_id><![CDATA[oDemoOpenId001]]></wx_open_id>
    <wx_path_url><![CDATA[/pages/sub-page]]></wx_path_url>
    <wx_path_query><![CDATA[id=12345]]></wx_path_query>
    <ext_report_time><![CDATA[1700001000101]]></ext_report_time>
  </traces>

  <!-- ===== 第 2 条 trace ===== -->
  <traces>
    <ctx_request_id><![CDATA[demo-request-002]]></ctx_request_id>
    <ctx_click_id><![CDATA[demo-click-002]]></ctx_click_id>
    <ctx_ts>1700000200</ctx_ts>
    <ctx_ip><![CDATA[demo_ip_hash_002]]></ctx_ip>
    <ctx_ua><![CDATA[DemoUserAgent/1.0]]></ctx_ua>
    <ctx_callback_param><![CDATA[demo_callback_token_002]]></ctx_callback_param>
    <ctx_advertiser_id>10002</ctx_advertiser_id>
    <ctx_campaign_id>20002</ctx_campaign_id>
    <ctx_unit_id>30002</ctx_unit_id>
    <ctx_creativity_id>40002</ctx_creativity_id>
    <ctx_placement><![CDATA[demo_placement_b]]></ctx_placement>
    <ctx_mini_program_id><![CDATA[gh_demo_mini_program]]></ctx_mini_program_id>
    <session_click_time>1700001000002</session_click_time>
    <session_id><![CDATA[demo_session_002]]></session_id>
    <wx_biz_app_id><![CDATA[wx_demo_appid_002]]></wx_biz_app_id>
    <wx_biz_id>50002</wx_biz_id>
    <wx_promotion_id><![CDATA[promo_demo_002]]></wx_promotion_id>
    <wx_material_id><![CDATA[material_demo_002]]></wx_material_id>
    <wx_action_mode>1</wx_action_mode>
    <wx_open_id><![CDATA[oDemoOpenId002]]></wx_open_id>
    <wx_path_url><![CDATA[/pages/sub-page]]></wx_path_url>
    <wx_path_query><![CDATA[id=12345]]></wx_path_query>
    <ext_report_time><![CDATA[1700001000202]]></ext_report_time>
  </traces>

  <!-- ===== 第 3 条 trace ===== -->
  <traces>
    <ctx_request_id><![CDATA[demo-request-003]]></ctx_request_id>
    <ctx_click_id><![CDATA[demo-click-003]]></ctx_click_id>
    <ctx_ts>1700000300</ctx_ts>
    <ctx_ip><![CDATA[demo_ip_hash_003]]></ctx_ip>
    <ctx_ua><![CDATA[DemoUserAgent/1.0]]></ctx_ua>
    <ctx_callback_param><![CDATA[demo_callback_token_003]]></ctx_callback_param>
    <ctx_advertiser_id>10003</ctx_advertiser_id>
    <ctx_campaign_id>20003</ctx_campaign_id>
    <ctx_unit_id>30003</ctx_unit_id>
    <ctx_creativity_id>40003</ctx_creativity_id>
    <ctx_placement><![CDATA[demo_placement_c]]></ctx_placement>
    <ctx_mini_program_id><![CDATA[gh_demo_mini_program]]></ctx_mini_program_id>
    <session_click_time>1700001000003</session_click_time>
    <session_id><![CDATA[demo_session_003]]></session_id>
    <wx_biz_app_id><![CDATA[wx_demo_appid_003]]></wx_biz_app_id>
    <wx_biz_id>50003</wx_biz_id>
    <wx_promotion_id><![CDATA[promo_demo_003]]></wx_promotion_id>
    <wx_material_id><![CDATA[material_demo_003]]></wx_material_id>
    <wx_action_mode>0</wx_action_mode>
    <wx_open_id><![CDATA[oDemoOpenId003]]></wx_open_id>
    <wx_path_url><![CDATA[/pages/sub-page]]></wx_path_url>
    <wx_path_query><![CDATA[id=12345]]></wx_path_query>
    <ext_report_time><![CDATA[1700001000303]]></ext_report_time>
  </traces>
</xml>
```

备注：推送的字段中，`ext_report_time` 是访问行为的上报时间，一般可忽略。

#### 2.3.2 方式二：主动查询接口

在调用接口前，请登录 we 分析平台 wedata.weixin.qq.com，前往菜单“数据管理--API管理--归因分析--外站联合归因”中点击开启功能。

![](https://res8.wxqcloud.qq.com.cn/wxdoc/887ff96a-8357-48f1-aefa-7e1027925ca6.png)

[查看 ACCESS_TOKEN 获取方式](/miniprogram/dev/server/API/mp-access-token/README.md)

查询接口调用方式与具体字段内容：在你的后台服务中，发起 HTTPS 请求，并设置对应请求参数，以此拉取相关图表的统计数据。

```
POST https://api.weixin.qq.com/wedata/wedata_get_data?access_token=ACCESS_TOKEN
```

请求参数：

| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| chart_id | string | 是 | 固定填写 `1001001005` |
| target_id | string | 否 | 固定填写 `T001` |
| begin_date | string | 是 | 起始日期，格式 YYYYMMDD |
| end_date | string | 是 | 截止日期，格式 YYYYMMDD |
| time_unit | number | 是 | 固定填写 `0` |

返回内容：

| 属性ID | 类型 | 说明 |
| --- | --- | --- |
| errcode | number | 错误码，如正常则为 0，其他错误码参考指引底部的“补充说明” |
| errmsg | string | 错误信息 |
| chart_name | string | 拉取数据的图表名称 |
| require_info | object | 拉取数据的各项请求参数 |
| chart_result | array\ | 图表数据，具体内容结构，详见“chart_result 内容” |

chart_result 内容：

| 属性ID | 类型 | 说明 |
| --- | --- | --- |
| target_id | string | 指标 ID |
| chart_header | array\ | chart_data 里，value 字段下每一个数值所对应的含义 |
| chart_data | array\ | 对应图表的每一点/行数据内容 |

chart_header 说明：

| 模块 | 字段 | 说明 |
| --- | --- | --- |
| 日期信息 | `ds` | 日期，形如：20260424 |
| 广告参数信息 | `ctx_callback_param` | 加密字段, 广告参数信息: 举例比如用来区分联调或者生产环节，宏：`_CALLBACK_PARAM__` |
| | `ctx_request_id` | 标识广告请求唯一 ID，用于排查（用于串联RTA一请/二请/曝光/点击的串联），宏：`__REQUESTID__` |
| | `ctx_click_id` | 带来该转化行为的阅读行为ClickID，宏: `__CLICK_ID__` |
| | `ctx_ts` | ClickID 对应的时间戳，宏: `__TS__` |
| | `ctx_mini_program_id` | 小程序原始 ID: gh_xxx，宏: `__MINI_PROGRAM_ID__` |
| | `ctx_ip` | 用于反作弊，宏：`__IP__`
（如果不提供可能会导致无法反作弊，归因成交里会加大被刷单情况） |
| | `ctx_ua` | UA 样例: Dalvik/2.1.0 (Linux; U; Android 15; 23127PN0CC Build/AQ3A.240627.003) Resolution/1200*2670 Version/8.75.0 Build/8750000 Device/(Xiaomi;23127PN0CC) discover/8.75.0 NetType/WiFi
需要 url encode，宏：`__UA__` |
| | `ctx_advertiser_id` | 该 ClickID 来自的 adv_id: 小红书广告主 adv_id，宏: `__ADVERTISER_ID__` |
| | `ctx_campaign_id` | 广告计划 id，宏：`__CAMPAIGN_ID__` |
| | `ctx_unit_id` | 广告单元 id，宏: `__UNIT_ID__` |
| | `ctx_creativity_id` | 广告创意 id，宏: `__CREATIVITY_ID__` |
| | `ctx_placement` | 放置位置，宏: `__PLACEMENT__` |
| 转化信息 | `wx_promotion_id` | we 分析中的推广 ID |
| | `wx_material_id` | we 分析中的素材 ID |
| | `wx_biz_id` | 业务 id，区分业务平台，0=小红书 |
| | `wx_biz_app_id` | 小程序的 appid |
| | `wx_action_mode` | 冗余字段 可忽略 |
| | `wx_open_id` | 用户在该小程序下的身份 id |
| | `session_id` | 访问转化 ID，用户发生一次访问行为（打开一次小程序）产生的唯一 ID。 |
| | `session_click_time` | 访问转化时间 |
| | `wx_path_url` | 微信跳转链接路径 |
| | `wx_path_query` | 微信跳转链接参数 |

## 三、注意事项

**1、数据延迟**

当用户发生小程序访问行为后，平台侧需要一定时间进行数据处理，进行访问行为与之前的广告阅读之间的关联匹配，存在一定耗时。

建议用户发送小程序访问行为的半个小时后，进行查询归因，保障数据完整。

**2、访问行为与广告阅读关联的逻辑**

当用户发生小程序访问行为后，平台会基于访问发生的时间，匹配前 30 天的广告阅读行为。若一次访问行为能关联多次广告阅读行为（clickid），则会分别记录一条数据，即一次访问（session_id）跟一条阅读行为（clickid）映射一条数据，一次访问可能会记录多条数据。

**3、关于主动查询接口与消息推送两者的区别**

主动查询接口，需开发者主动调用，支持按日度拉取当天的全量数据；

消息推送，当平台完成归因数据生产后，即会主动推送至开发者设定的服务器。
