1.Data对象
Data对象中记录了所有关于AB测试的信息:配置信息、优化方案运转情况、当前用户信息等。开发者可以读取这些信息,利用这些信息满足一些特殊的需求。
1.1.优化方案
window[‘eyeofcloud’].data.experiments
给出该应用所有的优化方案相关信息,包含各版本号、激活方式、全局js代码、全局css属性等。
window[‘eyeofcloud’].data.experiments[experimentid].code
给出优化方案的全局js代码,这个代码在该优化方案的所有版本上都会执行。
window[‘eyeofcloud’].data.experiments[experimentid].manual
给出一个布尔值,说明该优化方案是否是手动激活的。
window[‘eyeofcloud’].data.experiments[experimentid].name
给出优化方案的名称。
window[‘eyeofcloud’].data.experiments[experimentid].variation_ids
给出一个数组,该数组含有该优化方案下所有版本的版本号。
1.2.所有状态
window[‘eyeofcloud’].data.state
给出优化方案当前的一些状态,如激活的实验、选中的版本号等。
window[‘eyeofcloud’].data.state.activeExperiments
给出一个数组,该数组包含所有已经激活的实验id。
window[‘eyeofcloud’].data.state.activeExperiments
给出一个数组,该数组包含所有已经激活的实验id。
window[‘eyeofcloud’].data.state.redirectExperiment
当优化方案版本中含有重定向时,可以在重定向后的页面中读取改值,其中记录版本相关信息,包括实验id、版本号、referrer。
window[‘eyeofcloud’].data.state.variationIdsMap
给出版本的抽签结果,是一个从实验id到版本号的映射表。只要一个实验曾经激活过并选中某个版本,那么它也会被记录到该映射表中。对于一个实验来说,一旦版本抽签确定就不会改变(除非清除cookie)。
window[‘eyeofcloud’].data.state.variationNamesMap
给出版本抽签的结果,是一个实验id到版本名称的映射表。其他同上。
1.3.版本
window[‘eyeofcloud’].data.variations
给出Web端所有优化方案的所有版本信息。
window[‘eyeofcloud’].data.variations[variationId].name
读取特定版本的名称。
window[‘eyeofcloud’].data.variations[variationId].code
读取特定版本的js代码。
1.4.访客
window[‘eyeofcloud’].data.visitor
给出当前访客的所有信息。
window[‘eyeofcloud’].data.visitor.audiences
给出一个映射表,键是受众id,值是一个布尔值,来表明该访客是否处于该受众中。该应用Web端下所有的受众(不包括未被使用的)都会被列出。
window[‘eyeofcloud’].data.visitor.browser
给出当前访客使用的浏览器。
window[‘eyeofcloud’].data.visitor.location
window[‘eyeofcloud’].data.visitor.location.city
window[‘eyeofcloud’].data.visitor.location.region
window[‘eyeofcloud’].data.visitor.location.country
给出当前访客的地理位置信息,这些地理位置信息包括了:城市、地区、国家。
window[‘eyeofcloud’].data.visitor.referrer
给出当前访客的跳转来源。
2.可调用的方法
云眼AB测试系统提供多种可调用的方法,这些方法提供了强大的功能来满足用户多样的需求。我们提供两种调用的方式:js代码、url参数。
在URL中加入对应的参数:http://www.example.com/test.html?eyeofcloud_opt_out=true。当用户访问这个URL的时候,optOut方法就会被调用,使得这次访问将不会被记录。只有不带参数的方法才能这样调用。
在网页中插入下面这些js代码也可以执行对应的方法。
window[‘eyeofcloud‘] = window[‘eyeofcloud’] || [];
window[‘eyeofcloud’].push([‘optOut‘]);
2.1.手动激活
window[‘eyeofcloud’].push([‘activate‘]);
启动所有手动激活的优化方案。优化方案在激活之后依旧会检查受众是否会满足条件,只有满足条件的优化方案才会被激活。
window[‘eyeofcloud’].push([‘activate‘, experimentId]);
启动指定的手动激活的优化方案。
2.2.受众控制
window[‘eyeofcloud’].push([‘addToAudience‘, audienceId]);
将当前访客强制添加到id为audienceId的受众中。系统会认为访客和该受众匹配。
window[‘eyeofcloud’].push([‘removeFromAudience’, audienceId]);
将当前访客强制从id为andienceId的受众中移除。系统会认为访客和该受众不匹配。
window[‘eyeofcloud’].push([‘removeFromAudiences‘]);
将当前访客强制从所有受众中移除。系统会认为访客和所有受众都不匹配。
2.3.版本抽签
window[‘eyeofcloud’].push([‘bucketVisitor‘, experimentId, variationId, true]);
强制为优化方案选择对应的版本,需要注意的是这种选择版本方式是不会检查受众的。
window[‘eyeofcloud’].push([‘bucketVisitor‘, experimentId, variationIndex, true]);
使用variation在优化方案中的序号调用,效果同上。variationIndex是从0开始计数的。
2.4.推迟pageview
window[‘eyeofcloud’].push([‘delayPageViewTracking‘, 1000]);
pageview发送的时间将会被推迟1000ms。
2.5.关闭云眼系统
window[‘eyeofcloud’].push([‘disable‘]);
彻底关闭云眼相关的功能,必须在云眼SDK运转之前执行该代码。
window[‘eyeofcloud’].push([‘disable‘, ‘tracking‘]);
关闭云眼的数据收集。
2.6.打开日志
window[‘eyeofcloud’].push([‘log‘]);
浏览器将会在console中输出日志,可以帮助调试。
2.7.目标跟踪
window[‘eyeofcloud’].push([‘trackEvent‘, ‘goal-name‘]);
触发目标。