Adobe Analytics - Event Serialization

事件序列化(Event Serialization)是为了避免发送重复的转换事件,例如当用户刷新页面、重新提交按钮或其它会触发重复发送的程序代码等等。在SiteCatalyst中,可以在事件之后使用冒号作为分隔符,加入具备唯一性的序列化编号完成事件的序列化:

s.events = event2:1232432432
SiteCatalyst对序列号的约束为: 1. 不能超过21个字符; 2. 序列号一旦创建,是永远有效的,使用重复的编号会使该事件的发送作废。 **使用JavaScript生成唯一编号** 有很多种方式可以完成,比如取一个宽度11位的随机数再进行平方根运算,或者使用JavaScript创建GUID.
Math.floor(Math.random() * 11111111111);
但考虑到序列号需要具备一定的业务意义,如时间可以作为排序依据,平方根和GUID则不行,所以采用当前时间+随机数是一种比较好的选择。
new Date().getTime() + Math.random();
**编写事件序列化模块** 我们将一个转换事件作为输入,输出为一个已序列化的事件。考虑到在一些开始、结束事件中会共享同一个序列号,我们使用浏览器Cookie来临时存储序列号,SiteCatalyst提供了s.getAndPersistValue模块进行Cookie读写。
s.serializeEvent = function(sEvent) {
    if (s.getAndPersistValue(null, "s_serialization_id") == "") {
        s.getAndPersistValue(new Date().getTime() + Math.random(), "s_serialization_id");
    }

    if (sEvent != null && sEvent.indexOf(":") == -1) {
        sEvent = sEvent + ":" + s.getAndPersistValue(null, "s_serialization_id");
    }
    return sEvent;
}
以下是一个序列化event4并添加到s.events的例子:
s.events = s.apl(s.events, s.serializeEvent("event4"), ",", 1);
© 2018 Silent River All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero