菜单

Webhook 回执接入技术文档

神策智能运营平台配置

1、进入 项目设置 > 基本设置 > 触达通道管理

2、创建 Webhook 通道

3、配置 Webhook 通道账号信息

4、配置完毕后进行测试发送

 

技术对接

回执数据上报 

ID Mapping 2:

	SensorsAnalytics sa = new SensorsAnalytics(new SensorsAnalytics.ConcurrentLoggingConsumer("./access.log1"));
    Map<String, Object> properties = new HashMap<>();
    // 计划 ID
    properties.put("$sf_plan_id", "10");
    // 策略版本
    properties.put("$sf_plan_version", "1");
	// 实验组 ID
    properties.put("$sf_plan_strategy_id", "0");
    // 策略器名称,值由 “计划 ID” 与 “策略器(组件) ID” 拼接而成
    properties.put("$sf_strategy_unit_id", "10_10");
    // 计划类型 
    properties.put("$sf_plan_type", "运营计划");
    // 通道实例 ID
    properties.put("$sf_channel_id", "10");
	// 组件 ID,用于在画布中通过回执指标保存分群
	properties.put("$sf_component_id", "10");
    // 通道类型
    properties.put("$sf_channel_category", "WEBHOOK");
    // 计划进入时间
    properties.put("$sf_enter_plan_time", 1625037472000);
	// 消息发送时间
    properties.put("$sf_send_time", 1625037472000);
    
    // 发送成功指标
    properties.put("$sf_msg_status", "RECEIPT_SEND_SUCCESS");
    // 发送失败指标
    properties.put("$sf_msg_status", "RECEIPT_SEND_FAILED");

	// 失败信息,请确保 code 和 reason 要一一对应。
    properties.put("$sf_send_fail_code", "SF-102");
	properties.put("$sf_fail_reason", "失败原因");
    
    // 若 second_id 有值,则优先传 second_id;若 second_id 无值,则传 first_id
	sa.track(distinctId, false, "$PlanMsgArrived", properties);

ID Mapping 3:

1、如果不知道用户标识,用 EventRecord 传 user_id 进行上报的方式。

该方式要求 SDF 2.3.1.29 和 infinity 0.3.4.10 以上。

	SensorsAnalytics sa = new SensorsAnalytics(new SensorsAnalytics.ConcurrentLoggingConsumer("./access.log1"));
    Map<String, Object> properties = new HashMap<>();
    // 计划 ID
    properties.put("$sf_plan_id", "10");
    // 策略版本
    properties.put("$sf_plan_version", "1");
	// 实验组 ID
    properties.put("$sf_plan_strategy_id", "0");
    // 策略器名称,值由 “计划 ID” 与 “策略器(组件) ID” 拼接而成
    properties.put("$sf_strategy_unit_id", "10_10");
    // 计划类型 
    properties.put("$sf_plan_type", "运营计划");
    // 通道实例 ID
    properties.put("$sf_channel_id", "10");
	// 组件 ID,用于在画布中通过回执指标保存分群
	properties.put("$sf_component_id", "10");
    // 通道类型
    properties.put("$sf_channel_category", "WEBHOOK");
    // 计划进入时间
    properties.put("$sf_enter_plan_time", 1625037472000);
	// 消息发送时间
    properties.put("$sf_send_time", 1625037472000);
    
    // 发送成功指标
    properties.put("$sf_msg_status", "RECEIPT_SEND_SUCCESS");
    // 发送失败指标
    properties.put("$sf_msg_status", "RECEIPT_SEND_FAILED");

	// 失败信息,请确保 code 和 reason 要一一对应。
    properties.put("$sf_send_fail_code", "SF-102");
	properties.put("$sf_fail_reason", "失败原因");
    
    // distinctId 是 「SENSORS_ID:」和 user_id 的拼接
    String distinctId = "SENSORS_ID:" + "-5695067566088731732";
	EventRecord eventRecord = EventRecord.builder()
                .setDistinctId(distinctId)
                .isLoginId(Boolean.FALSE)
                .setEventName("$PlanMsgArrived")
                .addProperties(properties)
                .build();
    sa.track(eventRecord);

2、如果知道用户标识,则可以用 IDMEventRecord 传用户标识进行上报的方式。

	SensorsAnalytics sa = new SensorsAnalytics(new SensorsAnalytics.ConcurrentLoggingConsumer("./access.log1"));
    Map<String, Object> properties = new HashMap<>();
    // 计划 ID
    properties.put("$sf_plan_id", "10");
    // 策略版本
    properties.put("$sf_plan_version", "1");
	// 实验组 ID
    properties.put("$sf_plan_strategy_id", "0");
    // 策略器名称,值由 “计划 ID” 与 “策略器(组件) ID” 拼接而成
    properties.put("$sf_strategy_unit_id", "10_10");
    // 计划类型 
    properties.put("$sf_plan_type", "运营计划");
    // 通道实例 ID
    properties.put("$sf_channel_id", "10");
	// 组件 ID,用于在画布中通过回执指标保存分群
	properties.put("$sf_component_id", "10");
    // 通道类型
    properties.put("$sf_channel_category", "WEBHOOK");
    // 计划进入时间
    properties.put("$sf_enter_plan_time", 1625037472000);
	// 消息发送时间
    properties.put("$sf_send_time", 1625037472000);
    
    // 发送成功指标
    properties.put("$sf_msg_status", "RECEIPT_SEND_SUCCESS");
    // 发送失败指标
    properties.put("$sf_msg_status", "RECEIPT_SEND_FAILED");

	// 失败信息,请确保 code 和 reason 要一一对应。
    properties.put("$sf_send_fail_code", "SF-102");
	properties.put("$sf_fail_reason", "失败原因");
    
    // 传用户标识
	IDMEventRecord idmEventRecord = IDMEventRecord.starter()
                .addIdentityProperty(SensorsAnalyticsIdentity.LOGIN_ID, "oOD1d6cSkrqVDqXh2AYbvyE5mOlE")
                .setEventName("$PlanMsgArrived")
                .addProperties(properties)
                .build();
    sa.trackById(idmEventRecord);

 

 

事件属性

属性名称

属性含义

属性值

注意事项

$sf_msg_status

是否发送成功指标

RECEIPT_SEND_FAILED 「发送失败」,
RECEIPT_SEND_SUCCESS 「发送成功」

必须大写

$sf_send_fail_code

消息发送错误代码

字符串类型

 

$sf_fail_reason

消息发送失败原因

字符串类型

 
$sf_enter_plan_time 计划进入时间 长整型  
$sf_send_time 消息发送时间 长整型  
$sf_plan_type 计划类型 运营计划,流程画布  
$sf_plan_id 计划 ID 字符串类型  
$sf_plan_version 策略版本 字符串类型  
$sf_channel_id 通道实例 ID 字符串类型  
$sf_component_id 组件 ID 字符串类型  
$sf_channel_category 通道类型 WEBHOOK 必须大写
$sf_strategy_unit_id 策略器名称 字符串类型,由“计划 ID” 与 “策略器(组件) ID” 拼接而成  
$sf_plan_strategy_id 实验组 ID 字符串类型  

参考文档

 

上一个
通道回执技术说明
下一个
个推回执接入技术文档
最近修改: 2025-01-08