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

推送通道管理

最近更新时间2023.04.19 14:53:54

首次发布时间2021.02.23 10:41:49

即日起,智能运营模块将不再作为火山引擎增长分析产品售卖时的默认自带模块。

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等信息,输入账号,并开启。

image.png

  • 如果想使用厂商推送通道或推送报告功能(需要极光 VIP 账号),请在配置界面中勾选。

  • 通道调用频率可配置,请填写您极光服务开通的阈值(范围介于50-10000,若输入值超出范围则将设置为10000) 如极光普通客户建议600,极光VIP客户建议1200,若需增加阈值可联系您的极光商务。

    • 若设置的推送速率超过了通道(或厂商通道)的阈值,会出现部分推送失败的情况。
  • 单次调用支持推送多个用户(会根据用户推送量级调整,阈值上限为1000)。

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

如果您使用的极光VIP账号,并想开通推送报告功能,则需要在极光推送后台配置回执URL。

进入极光后台/回执管理,将送达回执和点击回执设置为:

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

image.png

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等信息,输入账号,并开启。

image.png

如果想使用推送报告功能(需要个推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等信息,点击保存,并开启友盟推送通道。

image.png

如果想使用推送报告功能(需要 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通道

image.png

进入「分析/推送运营/推送通道管理」,切换到「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  
        },   
         "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  
        },   
         "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可以在「推送运营\通用设置」找到(如下图)

image.png

示例:

假如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」获取

在「应用管理」-「数据集成」-「数据接入」-「第三方数据接入」-「微信公众号」点击新接入公众号
alt

  • 公众号名称:接入公众号名称
  • 公众号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及其具体页面路径

image.png

  • 微信用户标签

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

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

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

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

image.png