You need to enable JavaScript to run this app.
导航

推送通道管理

最近更新时间2023.08.31 11:38:14

首次发布时间2021.08.09 19:01:45

1. 概述

推送运营目前支持以下触达方式:

  • App Push:
    • 极光推送
    • 个推推送
    • 友盟推送
  • Webhook:
    • 可对接自有或其他触达通道

更多触达方式会陆续发布。

2. App Push

2.1 极光推送

使用极光推送进行用户触达,需要按照以下步骤完成极光通道的配置:

  1. 准备好您的极光推送账号,如果没有请事先注册或购买;
  2. 在「推送通道管理/极光推送通道」中配置您的极光账号;
  3. 在App中集成极光推送的SDK,获取极光的RegistrationID并通过AppLog SDK上报至火山引擎侧;

2.1.1 准备极光推送账号

极光推送有免费版和付费版,如果您想要使用华米OV等厂商推送通道,请购买付费版。

2.1.2 配置极光推送通道

进入「运营优化/推送运营/推送通道管理」,编辑极光账号的AppKey、MasterSecrect等信息,输入账号,并开启。

  • 如果想使用厂商推送通道或推送报告功能(需要极光 VIP 账号),请在配置界面中勾选。
  • 通道调用频率可配置,请填写您极光服务开通的阈值(范围介于50-10000,若输入值超出范围则将设置为10000) 如极光普通客户建议600,极光VIP客户建议1200,若需增加阈值可联系您的极光商务。
    • 若设置的推送速率超过了通道(或厂商通道)的阈值,会出现部分推送失败的情况。
    • 单次调用支持推送多个用户(会根据用户推送量级调整,阈值上限为1000)。

2.1.3 在极光后台配置发送回执(可选,需要极光VIP账号)

如果您使用的极光VIP账号,并想开通推送报告功能,则需要在极光推送后台配置回执URL。
进入极光后台/回执管理,将送达回执和点击回执设置为:

https://abtest.volceapplog.com/PushCallback/api/v1/JPush/{DataRangers应用的AppId}

2.1.4 集成极光推送SDK并获取RegistrationID

极光推送SDK的集成过程请参照极光官方文档:

然后,您需要编写代码获得极光的RegistrationID,并作为jpush_registration_id公共属性通过AppLog SDK上报至火山引擎侧。
Android代码示例:

String resistrationId = JPushInterface.getRegistrationID (this);
HashMap<String,Object> param = new HashMap<String,Object> ();
param.put ("jpush_registration_id",resistrationId);
//saas环境
AppLog.setHeaderInfo (param);
//私有化部署
AppLog.profileSet(params);

iOS代码示例:

[JPUSHService registrationIDCompletionHandler:^(int resCode, NSString *registrationID) {
    if(resCode == 0){
      NSLog(@"registrationID获取成功:%@",registrationID);
      //saas环境
      [BDAutoTrack setCustomHeaderBlock:^NSDictionary<NSString *,id> * _Nonnull{
        return @{@"jpush_registration_id":registrationID};
      }];
      //私有化部署
      [BDAutoTrack profileSet:^NSDictionary<NSString *,id> * _Nonnull{
        return @{@"jpush_registration_id":registrationID};
      }];
    }
    else{
      NSLog(@"registrationID获取失败,code:%d",resCode);
    }
}];

2.2 个推推送

使用个推推送进行用户触达,需要按照以下步骤完成个推通道的配置:

  1. 准备好您的个推推送账号,如果没有请事先注册或购买;
  2. 在「推送通道管理/个推推送通道」中配置您的个推账号;
  3. 在App中集成个推推送的SDK,获取个推的ClientID并通过AppLog SDK上报至火山引擎侧;

2.2.1 准备个推推送账号

个推推送有免费版和付费版,如果您想要使用推送报告功能,请购买付费版。

2.2.2 配置个推推送通道

进入「运营优化/推送运营/推送通道管理」,编辑个推账号的AppID、AppKey、MasterSecrect等信息,输入账号,并开启。

如果想使用推送报告功能(需要个推VIP账号),请在配置界面中勾选。

2.2.3 配置个推的发送回执

如果您使用的个推VIP账号,并想开通推送报告功能,则需要联系个推客服配置回执URL。
回执URL设置为:

https://console.volcengine.com/PushCallback/api/v1/GeTui/{DataRangers应用的AppId}

2.2.4 集成个推推送SDK并获取ClientID

个推推送SDK的集成过程请参照个推官方文档:

然后,您需要编写代码获得个推的ClientID,并作为getui_client_id公共属性通过AppLog SDK上报至火山引擎侧。
Android代码示例:

String resistrationId = com.igexin.sdk.PushManager.getInstance().getClientid (this);
HashMap<String,Object> param = new HashMap<String,Object> ();
param.put ("getui_client_id",resistrationId);
//saas环境
AppLog.setHeaderInfo (param);
//私有化部署
AppLog.profileSet(params);

iOS代码示例:

//saas环境
[BDAutoTrack setCustomHeaderBlock:^NSDictionary<NSString *,id> * _Nonnull{
        return @{@"getui_client_id":GeTuiSdk.clientId};
}];
//私有化部署
[BDAutoTrack profileSet:^NSDictionary<NSString *,id> * _Nonnull{
        return @{@"getui_client_id":GeTuiSdk.clientId};
}];

2.3 友盟推送

在增长分析平台中使用友盟推送进行用户触达,需要按照以下步骤完成友盟通道的配置:

  1. 准备好您的友盟推送账号,如果没有请事先注册或购买;
  2. 在「推送通道管理/友盟推送通道」中配置您的友盟账号;
  3. 在 App 中集成友盟推送的SDK,获取友盟的 RegistrationID并通过AppLog SDK上报至火山引擎侧;

2.3.1 准备友盟推送账号

友盟推送有免费版和 Pro 版,如果您想要使用推送报告功能,请购买 Pro 版。

2.3.2 配置友盟推送通道

进入「运营优化/推送运营/推送通道管理」,编辑友盟账号AppKey、MasterSecrect等信息,点击保存,并开启友盟推送通道。

如果想使用推送报告功能(需要 U-Push Pro 账号),请在配置界面中勾选。

2.3.3 集成友盟推送 SDK 或 API 并获取 DeviceToken #

友盟推送 SDK 的配置过程请参照友盟官方文档:

您需要获得友盟的 DeviceToken,并作为 upush_device_token 公共属性传递给 DataRangers 的 SDK。

deviceToken 是【友盟+】消息推送生成的用于标识设备的id,长度为44位,不能定制和修改。同一台设备上不同应用对应的deviceToken不一样。

Android代码示例:

String resistrationId = mPushAgent.getRegistrationId();
HashMap<String,Object> param = new HashMap<String,Object> ();
param.put ("upush_device_token",resistrationId);
//saas环境
AppLog.setHeaderInfo (param);
//私有化部署
AppLog.profileSet(params);

iOS13代码示例:

#include <arpa/inet.h>
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    if (![deviceToken isKindOfClass:[NSData class]]) return;
    const unsigned *tokenBytes = (const unsigned *)[deviceToken bytes];
    NSString *hexToken = [NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x",
                          ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]),
                          ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]),
                          ntohl(tokenBytes[6]), ntohl(tokenBytes[7])];
    NSLog(@"deviceToken:%@",hexToken);
}
//saas环境
[BDAutoTrack setCustomHeaderBlock:^NSDictionary<NSString *,id> * _Nonnull{
        return @{@"upush_device_token":hexToken};
}];
//私有化部署
[BDAutoTrack profileSet:^NSDictionary<NSString *,id> * _Nonnull{
        return @{@"upush_device_token":hexToken};
}];

2.3.4 配置友盟的发送、点击回执

如果您使用的 U-Push Pro 账号,并想开通推送报告功能,须进行额外配置。具体可见 U-Push Pro 集成文档
DataFinder 用于接收回执的 URL 如下,须赋值给 receipt_url,而 receipt_type 须留空。

https://console.volcengine.com/PushCallback/api/v1/UPush/{DataRangers应用的AppId}

3. Webhook

除了使用系统提供的Push等常用方式触达用户,在实际运营工作中,还可能用到一些较为个性化的触达通道(如网站的站内信),或者希望在触达前进行一些个性化处理(如希望在Push发送前,向客户账号中添加一个红包)。
为了帮助您对接这些自有或个性化的触达通道,系统提供了Webhook接口对接的方式,在触达执行时,会通过回调的方式通知您的服务接口。
Webhook接口提供单次推送、批量推送两种方式,具体的对接步骤如下:

  1. 在增长分析平台中创建并配置新的Webhook通道;
  2. 开发并上线webhook服务接口。

3.1 创建和配置webhook通道

进入「分析/推送运营/推送通道管理」,切换到「Webhook」,点击新建通道;
通道名称:尽量用运营和业务人员能够直接理解的名称,如「发送站内信」;
回调的url地址:当触达执行时,增长分析平台会通过这个url调用您的服务实际执行触达;
启用聚合批量推送:确认是否使用批量推送方式;
参数模板:创建任务使用该通道时,需要配置的参数值;当触达执行时,平台会将用户配置的参数值下发给您的服务
自定义扩展参数:自定义的通道透传参数,与参数模板类似,区别是需要设置参数值,且无法在创建推送任务时进行配置

3.2 开发webhook服务接口

3.2.1 单次推送

单次推送时,增长分析平台会通过POST方法调用webhook接口,传递数据如下:

  • push_id:用于识别单条消息的uuid
  • app_id:应用ID
  • sign:签名信息,用于安全校验
  • timestamp:消息发送时间戳
  • task:推送任务信息:
    • task_id:推送任务id
    • task_name:推送任务名称
    • channel_id:推送通道id
    • channel_name:推送通道名称
    • push_experiment_id: 推送实验id,仅推送实验时下发
    • push_experiment_name:推送实验名称,仅推送实验时下发
  • receipt_properties:回执属性打包,通常无需关心此结构内部细节,在上报回执数据时,直接作为属性 map 使用即可
  • params:推送参数的名称和取值
    • 参数的个数与名称与webhook渠道定义相同
    • 参数的取值是运营人员在创建活动时填入
  • user_info:该条推送消息的用户id
  • trigger_event:触发条件
    • 自动推送:此次推送任务相关的用户事件记录,提供了推送的上下文;
    • 手动推送:无此部分,不用处理。

Webhook接口调用的请求数据示例如下:

{ 
        "push_id":"882f7c1c-af41-4351-9ec1-04a574597055", // 用于识别单条消息的uuid
        "app_id": "234901", // 应用ID
        "sign": "f67ebb5fac42feacdee69d77bb0314cf", // 校验签名信息
        "timestamp":1606789775, // 发送时间戳  
        "task":{ // 推送任务信息
                "task_id":100, // 推送任务id
                "task_name":"test_push", // 任务名称
                "channel_id":14,         // 通道id
                "channel_name":"发优惠券", // 通道名称
                "push_experiment_id": 129103, // 推送实验id
                "push_experiment_name": "老用户年终回馈实验" // 推送实验名称
            },
        "receipt_properties": { // 回执属性打包,用户通常无需关心此结构内部细节,在发送回执消息时,直接作为属性 map 使用即可
            "push_id": "882f7c1c-af41-4351-9ec1-04a574597055",
            "user_unique_id" : "hulan@163.com",
            "push_config_id" : 231122, //强需,任务ID,number类型
            "push_batch_id": 2311222343112, //强需,推送的批次ID,number类型
            "channel_id": 14, //强需,本次推送任务的webhook通道id
            "channel_type" : "webhook", //可省略,推送通道类型 
            "ab_version": "231892", // 实验版本ID。
            "push_experiment_id": 129103, //实验ID   
            "task_unit_id":12  // 强需,推送节点ID  
         },       
        "params": { // 用户在 webhook 通道中配置的模板参数
            "action_type": "老用户反馈", // 自定义模板参数「活动类型」
            "bonus_type": "抵用金", // 自定义模板参数「奖励类型」
            "count" : 200, // 自定义模板参数「金额」
            "content_message":"亲爱的${user_nickname} , 您好!\n\r老客户年终回馈,送您${count}元抵用券,给咱娃新年好课选起来咯!" 
         },

        "user_info":{ // 用户ID、自定义用户/公共属性信息 
            "user_unique_id": "hulan@163.com", // 推送用户唯一标识
            "device_id": "EA7583CDA6678BC", // 可选,用户的设备 ID 
            "ssid": "12345678901", //可选,用户的唯一ID 
            "user_nickname":"汤圆麻麻" // 自定义的透传用户公共属性 
        },   
         "trigger_time":{ // 手动时间触发条件。当推送任务为自动触发时,为空。多用于webhook中确定触达C端终端用户和数据预处理时间
          "trigger_type": 1, //数值型。 1-立即推送,2-定时非例行 3-定时例行 其他值可抛弃 
          "trigger_routine": "true", // 是否例行重复发送
          "trigger_cycle": "daily", // 若trigger_routine为false,不出现该字段。例行推送时,该字段值候选项为daily、weekly、monthly
          "trigger_weekday": "MON", // 只在trigger_cycle为weekly时出现该字段,表明具体推送是星期几,可多选,以逗号分隔。该字段值候选为MON、TUE、WEDS、THU、FRI、SAT、SUN,例如值为"MON, FRI, SUN"表示周一、周五和周日发送
            "trigger_monthday": "1, 10, 20", // 只在trigger_cycle为weekly时出现该字段,表明具体推送是每月几号,可多选,以逗号分隔。该字段值候选为1-31,例如值为"1, 10, 20"表示每月1号、10号、20号发送
          "trigger_timestamp": "9:00", // 若trigger_routine为false,不出现该字段。例行推送时,字段值格式为HH:MM,表示在该时间点进行推送
         "trigger_datewindow":"2020/01/02-2021/05/20" // 任务发送时间窗口,格式为“YYYY/MM/DD-YYYY/MM/DD”
        }
         "trigger_events":{ // 自动事件流触发时记录用户事件行为序列
        }
}

Webhook接口响应规范要求:

{
    "code":200, // 200表示成功,非200表示失败
    "message": "Success" // 消息
}

3.2.2 批量推送

启用批量推送后,增长分析平台会通过POST方法调用webhook接口,请求体则是下面结构的数组

  • push_id:用于识别单条消息的uuid
  • app_id:应用ID
  • sign:签名信息,用于安全校验
  • timestamp:消息发送时间戳
  • task:推送任务信息:
    • task_id:推送任务id
    • task_name:推送任务名称
    • channel_id:推送通道id
    • channel_name:推送通道名称
    • push_experiment_id: 推送实验id,仅推送实验时下发
    • push_experiment_name:推送实验名称,仅推送实验时下发
  • receipt_properties:回执属性打包,通常无需关心此结构内部细节,在发送回执消息或上报到达点击数据时,直接作为属性 map 使用即可
  • params:推送参数的名称和取值
    • 参数的个数与名称与webhook渠道定义相同
    • 参数的取值是运营人员在创建活动时填入
  • user_info:该条推送消息的用户id
  • trigger_time:手动推送触发条件。当推送任务为自动活动时,为空。
  • trigger_event:触发条件
    • 自动推送:此次推送任务相关的用户事件记录,提供了推送的上下文;
    • 手动推送:无此部分,不用处理。

Webhook接口调用的请求数据示例如下:

[    
    { 
        "push_id":"882f7c1c-af41-4351-9ec1-04a574597055", // 用于识别单条消息的uuid
        "app_id": "234901", // 应用ID
        "sign": "f67ebb5fac42feacdee69d77bb0314cf", // 校验签名信息
        "timestamp":1606789775, // 发送时间戳  
        "task":{ // 推送任务信息
                "task_id":100, // 推送任务id
                "task_name":"test_push", // 任务名称
                "channel_id":14,         // 通道id
                "channel_name":"发优惠券", // 通道名称
                "push_experiment_id": 129103, // 推送实验id
                "push_experiment_name": "老用户年终回馈实验" // 推送实验名称
            },
        "receipt_properties": { // 回执属性打包,用户通常无需关心此结构内部细节,在发送回执消息时,直接作为属性 map 使用即可
            "push_id": "882f7c1c-af41-4351-9ec1-04a574597055",
            "user_unique_id" : "hulan@163.com",
            "push_config_id" : 231122, //强需,任务ID,number类型
            "push_batch_id": 2311222343112, //强需,推送的批次ID,number类型
            "channel_id": 14, //强需,本次推送任务的webhook通道id
            "channel_type" : "webhook", //可省略,推送通道类型 
            "ab_version": "231892", // 实验版本ID,推送实验使用
            "push_experiment_id": 129103, //实验ID,推送实验使用   
            "task_unit_id":12  // 强需,推送节点ID
         },       
        "params": { // 用户在 webhook 通道中配置的模板参数
            "action_type": "老用户反馈", // 自定义模板参数「活动类型」
            "bonus_type": "抵用金", // 自定义模板参数「奖励类型」
            "count" : 200, // 自定义模板参数「金额」
            "content_message":"亲爱的${user_nickname} , 您好!\n\r老客户年终回馈,送您${count}元抵用券,给咱娃新年好课选起来咯!" 
         },

        "user_info":{ // 用户ID、自定义用户/公共属性信息 
            "user_unique_id": "hulan@163.com", // 推送用户唯一标识
            "device_id": "EA7583CDA6678BC", // 可选,用户的设备 ID 
            "ssid": "12345678901", //可选,用户的唯一ID 
            "user_nickname":"汤圆麻麻" // 自定义的透传用户公共属性 
        },   
         "trigger_time":{ // 手动时间触发条件。当推送任务为自动触发时,为空。多用于webhook中确定触达C端终端用户和数据预处理时间
          "trigger_type": 1, //数值型。 1-立即推送,2-定时非例行 3-定时例行 其他值可抛弃 
          "trigger_routine": "true", // 是否例行重复发送
          "trigger_cycle": "daily", // 若trigger_routine为false,不出现该字段。例行推送时,该字段值候选项为daily、weekly、monthly
          "trigger_weekday": "MON", // 只在trigger_cycle为weekly时出现该字段,表明具体推送是星期几,可多选,以逗号分隔。该字段值候选为MON、TUE、WEDS、THU、FRI、SAT、SUN,例如值为"MON, FRI, SUN"表示周一、周五和周日发送
            "trigger_monthday": "1, 10, 20", // 只在trigger_cycle为weekly时出现该字段,表明具体推送是每月几号,可多选,以逗号分隔。该字段值候选为1-31,例如值为"1, 10, 20"表示每月1号、10号、20号发送
          "trigger_timestamp": "9:00", // 若trigger_routine为false,不出现该字段。例行推送时,字段值格式为HH:MM,表示在该时间点进行推送
         "trigger_datewindow":"2020/01/02-2021/05/20" // 任务发送时间窗口,格式为“YYYY/MM/DD-YYYY/MM/DD”
        }
         "trigger_events":{ // 自动事件流触发时记录用户事件行为序列
        }
    },
    {},
]

Webhook接口响应规范要求:

  • HTTP 200 ,Body为空数组, 认为全部发送成功;
  • HTTP 200 有 Body,认为部分发送失败,返回详细的报错信息,会产生一个 Response Body 如下代码所示;
  • 非 HTTP 200 状态,认为全部失败。

针对一次request的response回复body如下所示:

[ 
    { "success": true },
    { 
        "success": false,
        "fail_reason": ".....",
      // 以下是receipt_properties中参数
        "push_id": "882f7c1c-af41-4351-9ec1-04a574597055",
        "user_unique_id" : "hulan@163.com",
        "push_config_id" : 231122, 
        "push_batch_id": 2311222343112, 
        "channel_id": 123, 
        "channel_type" : "webhook",
        "ab_version": "231892", 
        "push_experiment_id": 129103
     },
     ... 

]

3.3 Webhook安全校验

为了让webhook接口更加安全,您可以对webhook调用进行安全校验。
我们提供了 签名+IP白名单 两种方式的组合进行校验。

3.3.1 签名校验

当收到webhook调用请求时,您可以使用sign参数对请求内容进行校验。
校验方法如下:

sign = md5("【app_id】:【task_id】:【push_id】:【user_unique_id】:【timestamp】:【app_secret】")

其中:

  • app_id、task_id、push_id、user_unique_id、timestamp可以从webhook请求中取得;
  • app_secret可以在「推送运营\通用设置」找到(如下图)

示例:
假如appsecret为123456,webhook请求为:

{
    "push_id":"882f7c1c-af41-4351-9ec1-04a574597055", // uuid
    "app_id": 165031,
    "sign": "f67ebb5fac42feacdee69d77bb0314cf",
    "timestamp":1606789775,
    "task":{ // 推送任务信息
        "task_id":100,
        "task_name":"test_push",
        "channel_id":14,
        "channel_name":"发优惠券"
    },
    "params":{ // 推送参数
        "key1":"value1",
        "key2":2
    },
    "user_info":{ // 用户信息
        "user_unique_id":"69826555537",
        "device_id":"3MYRAOL36CVIYK7EDREISWBIA36EQ26KTZOLJMOQIRAXV4VTV5YA01",
        "getui_client_id":"" // optional
    },
    "trigger_events":[ // 触发条件,自动活动才可能有
        {
            "time":1587626788, // 事件发生时间
            "event_name":"gt_init_info",
            "params":{// 事件参数
                "lev":131,
                "coin_left":392,
                "coin_type":"钻石",
                "scene_id":1003,
                "user":"1018908035",
                "scene_lev":2
            }
        },
        {
            "time":1587628681,
            "event_name":"gt_ad_button_click",
            "params":{
                "ad_position":"点位1",
                "ad_type":"激励视频",
                "ad_position_type":"双倍金币",
                "lev":154,
                "scene_id":1016,
                "code_id":101232,
                "user":"1018908035",
                "scene_lev":3
            }
        }
    ]
}

最终计算的sign为:

sign = md5("165031:100:882f7c1c-af41-4351-9ec1-04a574597055:69826555537:1606789775:123456") = "f67ebb5fac42feacdee69d77bb0314cf"

如果您计算的sign和webhook请求中的sign不同,则请求可能是伪造的。

3.3.2 IP白名单

使用火山引擎增长分析SaaS版,Webhook调用请求会从以下IP地址发出:

  • 220.243.131.248
  • 220.243.131.249
  • 123.58.10.224
  • 123.58.10.225

3.4 Webhook回执事件上报

3.4.1 服务端上报

如果您需要Webhook通道的到达、点击等回执数据统计报告,可以通过HTTP接口进行回执事件上报,并增加回执属性。上报方式可参考帮助文档「应用接入-服务端接入-HTTP API」)。上报地址样例为:

https://{your_sdk_domain}/v2/event/list

事件/属性的定义如下:

name是否预置是否必须附带属性解释
rangers_push_show使用receipt_properties 中的属性即可消息触达用户上报的事件。主动事件。
rangers_push_click使用receipt_properties 中的属性即可消息被用户打开时触发上报的事件。如果 Webhook 对接的系统是第三方/自研推送系统,需在客户的 App 端对此事件埋点。主动事件。
rangers_webhook_XXX使用receipt_properties 中的属性即可客户自定义的 Webhook 回执成功事件,例如站内消息发送成功、优惠券发送成功、支付成功等深度转化事件等,非必须。

以rangers_push_show举例,上报埋点事件样例:

https://{your_sdk_domain}/v2/event/list

POST
header:
Content-Type: application/json
X-MCS-AppKey: your_app_key

body:

[{
        "events": [{
                "event": "rangers_push_show", //触达事件名称,必选
                "params": "{
                    \"push_config_id\": 231122, //强需,任务ID,int64类型。
                    \"push_batch_id\": 2311222343112, //强需,推送的批次ID,int64类型
                    \"push_id\": \"21234\", //Message ID,string类型
                    \"channel_id\": 123, //强需,推送通道ID,int32类型
                    \"channel_type\": \"\",//推送通道类型,string类型
                    \"ab_sdk_version\": \"\",//强需,实验vid,string类型,对应ab_version字段
                    \"$task_unit_id\": 231122,//强需,推送节点id,int32类型,对应task_unit_id字段
                   }", 
                   "local_time_ms": 1608455325028, //事件毫秒时间戳必选
                  }],
        "user": {
                "user_unique_id": "hulan@163.com", //强需,请求体user_info中的user_unique_id字段,string类型
                "ssid": "12345678901", //请求体user_info中的ssid字段,string类型
                "bddid": "EA7583CDA6678BC", //saas使用bddid字段,上报请求体user_info中的device_id字段,string类型
                "device_id": "EA7583CDA6678BC",//私有化使用device_id字段,上报请求体user_info中的device_id字段,string类型
        },
        "header": {
                "app_id": 234901, //强需,app_id 必须,int32类型
                "ab_sdk_version": "", //强需,实验vid,string类型,对应ab_version字段           
        }
}]

Response返回值:

{
    "Type": "Web/Mp(MiniProgram)",    
    "e": 0,        // 是否有error,0表示正常
    "message": "success",    // 输出结果,success表示成功
    "sc": 1,        // 成功处理的条数
    "server_time": 1616587176    // 服务端处理时间
}

3.4.2 客户端上报

客户端上报回执数据使用埋点sdk,事件上报方式同其他自定义埋点(各版本sdk集成方式参考:Android SDK接入),回执数据的事件及属性定义如下:

事件名属性描述
rangers_push_showpush_config_id推送任务id,强需
push_batch_id推送批次id,强需
channel_id推送通道id,强需
ab_sdk_version实验版本id,强需
push_id消息id,非必需
channel_type推送通道类型,非必需
$task_unit_id强需,推送节点id
rangers_push_clickpush_config_id推送任务id,强需
push_batch_id推送批次id,强需
channel_id推送通道id,强需
ab_sdk_version实验版本id,强需
push_id消息id,非必需
channel_type推送通道类型,非必需
$task_unit_id强需,推送节点id

以Android SDK为例:账户登录、事件公共属性、用户属性沿用其他埋点,无需改动,上报消息到达(rangers_push_show)事件demo如下:

// 以rangers_push_show(消息到达)为例
// 上报event+params
JSONObject paramsObj = new JSONObject();
try {
    paramsObj.put("push_config_id", 231122); //事件属性 推送任务id 强需
    paramsObj.put("push_batch_id",20); //推送批次 强需
    paramsObj.put("push_id","21234");  //消息id。非必需
    paramsObj.put("channel_id",124);   //强需,推送通道ID
    paramsObj.put("channel_type","21234"); //推送通道类型,string类型 非必需
    paramsObj.put("ab_sdk_version","21234"); //强需,实验vid,string类型
    paramsObj.put("$task_unit_id",124);   //强需,推送节点ID
} catch (JSONException e) { 
    e.printStackTrace();
}
AppLog.onEventV3("rangers_push_show", paramsObj);

4. 微信公众号推送(仅私有化部署支持)

4.1 公众号接入

微信侧接入参考文档 微信公众号开发接入指南,填写回调服务器地址URL、Token、EncodingAESKey等信息。回调服务器地址URL可通过「接入微信公众号」-「服务URL」获取
在「集团设置」-「数据管理」-「微信公众号」点击新接入公众号

  • 公众号名称:接入公众号名称

  • 公众号AppID:接入公众号在微信侧的AppID,可在“微信公众平台-开发-基本配置”页中获得

  • 获取access_token:

    • 微信服务器:即从微信官方服务器获取access_token
      • Token:接入微信公众平台开发填写的Token
      • secret:即AppSecret,可在“微信公众平台-开发-基本配置”页中获得
    • 中控服务器:即从您的中控服务器获取access_token
      • 中控服务器地址
      • access_token解析:从返回值解析access_token的JSONPath表达式,如:$result.token
  • EncodingAESKey:接入微信公众平台开发填写的EncodingAESKey

4.2 公众号推送

  • 公众号模板消息

微信公众号模版是在微信开放平台后台进行配置,可选择已有的模板进行消息配置,支持配置跳转动作。

  • 选择公众号:选择「集团设置」-「数据管理」-「微信公众号」模块接入的公众号

  • 模板选择:所选模板可在微信开放平台后台进行配置

  • 跳转动作

    • 打开H5:需配置H5跳转链接

    • 打开小程序:需配置跳转到的小程序appID及其具体页面路径

  • 微信用户标签

可通过该页面配置批量修改用户的标签,标签为所选公众号创建的标签

  • 选择公众号:选择「集团设置」-「数据管理」-「微信公众号」模块接入的公众号

  • 打标签:批量为用户打标签

  • 取消标签:批量为用户取消标签