X-SDK 接口介绍

接口介绍

当完成 WEB/H5/网站iosAndroid小程序的 X-SDK 的集成后,所有SDK都提供了如下的 API 接口,可以通过嵌入少量的代码,完成身份信息传递、事件触发、问卷投放、投放检测的能力。

使用技巧

  • 当面向已有用户或已登录用户进行问卷投放时,强烈建议您使用 identify 方法传递用户身份信息,这样在回收的数据、投放策略、免打扰机制上有更加灵活的配置,业务人员在浩客后台就可以进行相关的设定,而无需进行更多的代码调用。详细请查看精准用户投放

  • 建议先使用浩客系统后台投放设置里的「投放页面」、「投放时机」、「事件触发」、「精准用户投放」、「弹出策略」设置,无需研发介入,且业务人员可以灵活控制,无需进行更多的接口集成。若系统内配置无法满足投放需求时,可使用下面的 event、checkopen、open 等接口,再进行代码级别的弹出控制。

基本参数

在使用个过程中,您会经常遇到这么2个id信息,在此统一说明

字段 说明 是否必填 类型 备注
campaignId 问卷/评价ID 必填 String 类型 某个问卷/评价ID,请从该问卷/评价的设置中获取
uid 用户id 必填 String 类型 用于传递的识别唯一用户身份,该信息将适用于投放、免打扰等机制

如何获取问卷/评价ID?

1. identify 用户身份信息传递

该接口用于传递用户身份信息,传入身份信息后,免打扰机制将基于用户 uid 作为唯一识别,同时在投放规则里,将基于传入的身份信息做用户人群的精准投放。

  • 系统内更多维度的投放控制在身份传递后会有极大增强,强烈建议对于登录用户的反馈收集都调用此方法
  • 建议在用户打开页面或页面切换时传递身份信息
  • 该方法可多次调用。系统会根据使用最新调用的值覆盖同一个用户已存在的值。

接口名称

  • identify

接口示例(网站/H5)

以下以网站/H5的代码为例,在移动端和小程序中接口类似


_howxm('identify', {
    uid:  '00000001' , // 用户唯一ID, 默认字段, 必填,string 类型
    name: 'howxm', // 名称,默认字段,非必填,string 类型
    mobile: '15380000000', // 手机号,默认字段,非必填,string类型,会进行校验
    email: 'demo@howxm.com', // 邮箱,默认字段,非必填,string类型,会进行校验

    //以下字段为举例,可以进行自定义属性的传递
    login_times: 14, // 登录次数,numeric 类型
    last_visit_at: '2022-08-30T09:07:06.701Z', // 最近访问时间, date类型
    plan:'basic', // 套餐, string 类型
});

传入参数说明

字段 说明 是否必填 类型 备注
uid 用户id ,用于识别唯一用户身份 必填 String 类型 系统默认创建
name 姓名 ,可以传入用户昵称 选填 String 类型 系统默认创建
mobile 手机号 ,可以用户手机号,方便联系用户 选填 String 类型 系统默认创建,会对手机号格式进行校验
email 邮箱 ,可以用户邮箱,方便联系用户 选填 String 类型 系统默认创建,会对邮箱格式进行校验
plan 自定义的属性示例 选填 需要自己创建
login_times 自定义的属性示例 选填 需要自己创建
lastvisitat 自定义的属性示例 选填 需要自己创建
  • 系统内有4个默认字段信息:uid、姓名、手机号、邮箱;除了4个默认字段信息,也可以传入自定义的属性信息,方便做后续的数据分析,比如用户等级、最近登陆时间、套餐类型、用户类别、标签等诸多内容。

  • 目前字段属性信息目前支持3种类型:string字符串、numeric数字、date 日期。

  • 属性「key」定义:仅支持英文/数字,且需要以英文开头,其中date 日期类型字段 key 值,需要以 _at 作为结尾,比如 last_visit_at , birthday_at , last_login_at 等。

  • 属性值定义:可以传入字符串、数字、日期,其中date日期字段属性值以特定的UTC日期字符串格式传递,建议使用javascript的 toISOString 方法,参考如下:

格式 示例 转换后
YYYY-MM-DD 2022-08-24 2022-08-24T00:00:00Z
YYYY-MM-DDThh:mm:ss 2022-08-24T01:52:45 2022-08-24T01:52:45Z
YYYY-MM-DDTZD 2022-08-24+08:00 2022-08-23T16:00:00Z
YYYY-MM-DDThh:mm:ssTZD 2022-08-24T09:52:45+08:00 2022-08-24T01:52:45Z

2. event 抛出事件接口

该接口用于基于事件触发的问卷投放,你可以在用户付费成功后、点击了某个按钮、完成了某个重大动作后,抛出 event 事件,同时也可将事件触发时的动态信息作为场景属性(attributes)传入。

您可以设置问卷/反馈的弹出策略为接收到某个event事件后触发,详情查看 事件触发

注意:由于 APP 应用没有像 WEB 、小程序应用有页面(page view)的概念,故在 APP 中均需使用事件触发的方式弹出问卷。事件触发后,同样会校验投放用户、页面、免打扰等机制,而实现精准的用户投放。

接口名称

  • event

接口示例(网站/H5)

以下以网站/H5的代码为例,在移动端和小程序中接口类似。

// 接口定义
// _howxm('event', '<event_code>', {<attributes>});

// Example
_howxm('event',            // 必填
       'payment_clicked',  // 必填
       {                   // 非必填
          product: 'pro_plan',
          price: 199
       }
);

传入参数说明:


字段 说明 是否必填 类型 备注
event_code 事件code 必填 String 类型 只能包含由数字、字母、下划线,且不能以数字开头
attributes 事件场景属性 非必填 Json 类型 事件触发时的动态属性信息

事件场景属性 attributes,可用于事件触发时的属性校验,也可在数据页面的隐藏显示列中,看到用户所填写数据时的场景信息,比如示例中的:选择产品套餐类型、价格、模板信息等等。

3. checkOpen 弹出策略检查接口

当你选择使用代码内主动弹出问卷时,建议先进行 checkOpen 检查当前的投放是否符合弹出策略(免打扰机制),比如某个用户是否已经看过问卷或填写过问卷等等。弹出策略的系统内设置入口为:投放 -> 弹出策略。

接口名称

  • checkOpen

接口示例(网站/H5)

_howxm('checkOpen', {
  campaignId: '问卷/评价ID(必填)',  // 必填
  uid: '当前用户的唯一ID(必填)', // 必填
  success() {},
  failed(data) {}, // {result: boolean; errMsg?: string}
})

传入参数说明:


字段 说明 是否必填 类型 备注
campaignId 问卷/评价ID 必填 String 类型 某个问卷/评价ID,请从该问卷/评价的设置中获取
uid 用户id 必填 String 类型 用于识别唯一用户身份

4. open 弹出问卷接口

您可以直接调用 open 方法来显示弹出某个问卷,该方法将会绕过所有投放规则和弹出策略,建议您在调用该方法时,先进行 checkOpen 检查弹出策略是否满足。

接口名称

  • open

接口示例(网站/H5)

以下以网站/H5的代码为例,在移动端和小程序中接口类似。

_howxm('open', {
  campaignId: '问卷/评价ID ',  // 必填
  // 手动触发时可以传入当前的用户信息,选填
  customer: { // 非必填
    uid:  '00000001' , // 用户唯一ID, 默认字段, 必填,string 类型
    name: 'howxm', // 名称,默认字段,非必填,string 类型
    mobile: '15380000000', // 手机号,默认字段,非必填,string类型,会进行校验
    email: 'demo@howxm.com', // 邮箱,默认字段,非必填,string类型,会进行校验
  },
  // 非必填
  extra: {
    // 其他属性
  },
  completed(data) {}, // {success: boolean; errMsg?: string}
})

传入参数说明:


字段 说明 是否必填 类型 备注
campaignId 问卷/评价ID 必填 String 类型 某个问卷/评价ID,请从该问卷/评价的设置中获取


customer 属性字段说明(选填
用于记录填写问卷时的用户的信息,参数格式与 identify中的格式相同

extra 属性说明 (选填
用于记录填写问卷时其他的自定义属性

5. register 注册事件回调

您可以注册全局的回调事件,在问卷展示和回收的不同过程阶段,进行自定义处理。

接口名称

  • registerCallback

接口示例(网站/H5)


_howxm('registerCallback', 'onBeforeOpen', function(campaignId, uid, attributes){
console.log('onBeforeOpen: ', campaignId, uid, attributes)
})


_howxm('registerCallback', 'onOpen', function(campaignId, uid, attributes){
console.log('onOpen: ', campaignId, uid, attributes)
})


_howxm('registerCallback', 'onClose', function(campaignId, uid){
console.log('onClose: ', campaignId, uid)
})


_howxm('registerCallback', 'onPageComplete', function(campaignId, uid,fieldsEntry){
console.log('onPageComplete: ', campaignId, uid, fieldsEntry)
})


_howxm('registerCallback', 'onComplete', function(campaignId, uid){
console.log('onComplete: ', campaignId, uid)
})

传入参数说明:

回调阶段定义

名称 说明
onBeforeOpen 问卷展示前调用
onOpen 问卷展示后调用
onClose 问卷在屏幕消失后调用
onComplete 用户提交了最后一页题目后调用
onPageComplete 用户每提交一页,系统调用一次

参数说明

名称 说明
campaignId 问卷/评价的ID
uid 所传入的当前用户 uid
attributes 传入的属性信息
fieldsEntry 用户所填写的数据信息