操作配置

用户可针对某个可以点击的交互元素,例如注册、添加购物车、下载、移动广告点 击、小工具、Flash元素、AJAX嵌入式元素以及视频播放等事件,将其单独配置成操作来监控其用户操作过程中的响应耗时体验。

事件分为两类:

  • 自动创建事件:可以直接指定key为事件名称,相同key的事件将被归为一种事件。

  • 可跨页面事件。

配置容错代码

事件监控的基础是,应用必须已嵌入并加载Browser JS探针,故为防止探针移除或未加载提前调用导致的事件监控错误, 请务必在事件代码前加入容错代码,代码如下:

//容错代码,当前页面声明一次即可,当移除tingyun_rum.js时进行容错处理
if(!window.TINGYUN){window.TINGYUN={};window.TINGYUN.createEvent=window.TINGYUN.createAutoEvent=function(){var e={};e.end=function(){};e.fail=function(){};e.store=function(){};return e};window.TINGYUN.endStoreEvent=function(){}};

如果不添加容错代码,建议在调用接口前自行判断接口可用:

例如:

if (window.TINGYUN && window.TINGYUN.createEvent) {
    window.TINGYUN.createEvent({
        ...
    });
}

下面详细说明2种事件的使用方式。

自动创建事件

自动创建事件可以在 key 属性中指定事件名称,不需要在基调听云控制台提前创建,使用 createAutoEvent 接口:

window.TINGYUN.createAutoEvent(options);

示例

  • 创建事件。

示例: 创建名称为'事件1'的事件。

var event = window.TINGYUN.createAutoEvent({
    key: '事件1'
})
  • 结束事件

当认为事件成功时:

event.end();

当认为事件失败时:

event.fail();

createAutoEvent options对象选项列表:

名称 是否必须 说明
key 事件名称
autoEnd 是否是自动结束事件
endDelay 自动结束事件延迟结束时间,默认200ms
status 自动结束事件状态。默认为成功。 成功: success, 失败: fail

场景示例

加入购物车

以用户加入购物车为例,监测用户点击“加入购物车”这个事件的耗时及加入购物车动作是否成功,可参考以下示例代码:

<button id="add-btn">加入购物车</button>
$('#add-btn').click(function(){
    //创建加入购物车事件
    var event = TINGYUN.createAutoEvent({
        key: '加入购物车'
    })
    //发送xhr请求保存到购物车
    $.post('/cart/add',{},function(response){
        if(response.status==true){
            //成功操作,事件结束
            event.end();
        }else{
            //业务失败,记录事件失败
            event.fail();
        }
    });
});

跨页面事件

如果事件在同域条件下跨页面,需要使用跨页面事件API(跨页面事件API也可以在同一个页面使用,但普通使用方式效率更高且更简洁,因此建议在需要跨页面的场景下使用此 API)。

嵌码示例:

页面1:

var event = window.TINGYUN.createAutoEvent({
    key: '跨页面事件'
});


// 执行逻辑
// 逻辑执行完后不使用end或fail, 使用store暂存当前事件 event.store(); 此时事件并未结束

event.store();

// 后续逻辑跳转页面2..

页面2:

  // 页面2加载完成后结束事件
window.addEventListener('load', function() {
    if (window.TINGYUN && window.TINGYUN.endStoreEvent) {
        window.TINGYUN.endStoreEvent({
            key: 'key1', // 需要和页面1的事件对应, 不传会结束最近存储的事件
            status: 'success', // success 或 fail 表示事件的状态 
            timeout: 60000 // 事件超时时间,超时不会上传,不传默认60秒超时
        }); 
    }
})

如果不传参数,则默认结束最近一次存储的事件,状态为成功。

window.TINGYUN.endStoreEvent();

接口说明:

window.TINGYUN.endStoreEvent(); // 无参数调用 
window.TINGYUN.endStoreEvent(options); // 有参数调用

endStoreEvent options对象参数说明:

名称 是否必须 说明
key 自动结束事件key, 传递则只结束指定key的事件,不传结束当前存储的事 件
status 自动结束事件状态。默认为成功。 成功: success, 失败: fail
timeout 跨⻚面事件超时时间, 默认60s, 超时不上传数据

跨页面事件的处理方式和一些注意的问题:

  1. 跨页面事件同时进行的只能有一个,每次调用store函数,当前跨页面事件会使用新的事件替代。
  2. 探针数据请求会在结束事件的页面发送,如果结束事件页面与开始事件页面不是同一个页面,会默 认增加一条页面的加载信息作为网络请求上传。
  3. 页面1和页面2需要同时嵌码,上传的事件归属在页面2嵌码的应用中。
  4. 页面1和页面2不能跨域。
© 2007-2023 北京基调网络股份有限公司 all right reserved,powered by Gitbook本文档更新于: 2023-12-18 16:44

results matching ""

    No results matching ""