当完成 WEB/H5/网站、ios 、Android、小程序的 X-SDK 的集成后,所有SDK都提供了如下的 API 接口,可以通过嵌入少量的代码,完成身份信息传递、事件触发、问卷投放、投放检测的能力。
当面向已有用户或已登录用户进行问卷投放时,强烈建议您使用 identify 方法传递用户身份信息,这样在回收的数据、投放策略、免打扰机制上有更加灵活的配置,业务人员在浩客后台就可以进行相关的设定,而无需进行更多的代码调用。详细请查看精准用户投放。
建议先使用浩客系统后台投放设置里的「投放页面」、「投放时机」、「事件触发」、「精准用户投放」、「弹出策略」设置,无需研发介入,且业务人员可以灵活控制,无需进行更多的接口集成。若系统内配置无法满足投放需求时,可使用下面的 event、checkopen、open 等接口,再进行代码级别的弹出控制。
在使用个过程中,您会经常遇到这么2个id信息,在此统一说明
字段 | 说明 | 是否必填 | 类型 | 备注 |
---|---|---|---|---|
campaignId | 问卷/评价ID | 必填 | String 类型 | 某个问卷/评价ID,请从该问卷/评价的设置中获取 |
uid | 用户id | 必填 | String 类型 | 用于传递的识别唯一用户身份,该信息将适用于投放、免打扰等机制 |
如何获取问卷/评价ID?
该接口用于传递用户身份信息,传入身份信息后,免打扰机制将基于用户 uid 作为唯一识别,同时在投放规则里,将基于传入的身份信息做用户人群的精准投放。
以下以网站/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 类型 | 系统默认创建,会对手机号格式进行校验 |
邮箱 ,可以用户邮箱,方便联系用户 | 选填 | 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 |
该接口用于基于事件触发的问卷投放,你可以在用户付费成功后、点击了某个按钮、完成了某个重大动作后,抛出 event 事件,同时也可将事件触发时的动态信息作为场景属性(attributes)传入。
您可以设置问卷/反馈的弹出策略为接收到某个event事件后触发,详情查看 事件触发 。
注意:由于 APP 应用没有像 WEB 、小程序应用有页面(page view)的概念,故在 APP 中均需使用事件触发的方式弹出问卷。事件触发后,同样会校验投放用户、页面、免打扰等机制,而实现精准的用户投放。
以下以网站/H5的代码为例,在移动端和小程序中接口类似。
// 接口定义
// _howxm('event', '<event_code>', {<attributes>});
// Example
_howxm('event', // 必填
'payment_clicked', // 必填
{ // 非必填
product: 'pro_plan',
price: 199
}
);
字段 | 说明 | 是否必填 | 类型 | 备注 |
---|---|---|---|---|
event_code | 事件code | 必填 | String 类型 | 只能包含由数字、字母、下划线,且不能以数字开头 |
attributes | 事件场景属性 | 非必填 | Json 类型 | 事件触发时的动态属性信息 |
当你选择使用代码内主动弹出问卷时,建议先进行 checkOpen 检查当前的投放是否符合弹出策略(免打扰机制),比如某个用户是否已经看过问卷或填写过问卷等等。弹出策略的系统内设置入口为:投放 -> 弹出策略。
_howxm('checkOpen', {
campaignId: '问卷/评价ID(必填)', // 必填
uid: '当前用户的唯一ID(必填)', // 必填
success() {},
failed(data) {}, // {result: boolean; errMsg?: string}
})
字段 | 说明 | 是否必填 | 类型 | 备注 |
---|---|---|---|---|
campaignId | 问卷/评价ID | 必填 | String 类型 | 某个问卷/评价ID,请从该问卷/评价的设置中获取 |
uid | 用户id | 必填 | String 类型 | 用于识别唯一用户身份 |
您可以直接调用 open 方法来显示弹出某个问卷,该方法将会绕过所有投放规则和弹出策略,建议您在调用该方法时,先进行 checkOpen 检查弹出策略是否满足。
以下以网站/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 属性说明 (选填)
用于记录填写问卷时其他的自定义属性
您可以注册全局的回调事件,在问卷展示和回收的不同过程阶段,进行自定义处理。
_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 | 用户所填写的数据信息 |