Analytics.js 2.0来源


Analytics.js 2.0,最新版本的Segment的Javascript源代码,使您可以发送您的数据到任何工具,而不必学习,测试或使用新的API每次。

Analytics.js 2.0可供段客户提供符合分部和客户之间的订阅协议条款的客manbetx客户端应用下载户,并且不可用作开源项目。

Analytics.js 2.0的好处

Analytics.js 2.0提供了上一个版本的两个主要优势。

性能

Analytics.js 2.0提供了页面加载时间的减少,从而提高了站点性能。它的包装尺寸是~ 70%比之前的Analytics.js小。

有很多因素会影响页面加载时间,包括页面权重、网络条件和托管位置。

开发人员的经验

js 2.0通过引入新的方法让开发者在事件时间轴中增加事件,从而改善了开发者的体验。例如,开发人员可以在事件发生之前或之后,或者在事件正在运行时增加事件。

例如,您可以使用Analytics.js 2.0构建:

  • 确保您在事件触发前进行用户同意跟踪
  • 在使用中间件时,使用客户上下文或页面上下文丰富事件
  • 将事件发送到段后检查事件是否存在错误

入门

阅读的Analytics.js快速入门指南它解释了如何将Analytics.js添加到你的网站。一旦安装了库,请继续阅读详细的API参考!

有关升级到Analytics.js 2.0的信息,请参见升级到Analytics.js 2.0

升级现有的JavaScript源

有关升级现有javascript源代码的信息,请参见升级到a.js 2.0

基本跟踪方法

下面的基本跟踪方法是你的分段跟踪的构建模块。它们包括确认跟踪集团,别名,如下所述。

这些名称可能很熟悉,因为它们是分部规范.此页面上的文档介绍了如何具体地在Analytics.j中使用这些方法。

很高兴知道对于本页中描述的任何不同方法,您都可以用表示收集的数据的变量替换代码示例中的属性。

确认

确认方法是您将用户链接到识别的用户及其操作的方式用户身份特征.你可以看到一个确认在快速入门指南中的例子查找识别方法有效载荷的详细信息

分部推荐使用确认对于您网站的匿名访问者。Analytics.js自动检索一个anonymousId从localStorage或分配一个给新的访问者,并将其附加到所有访问者页面跟踪在一个之前和之后的事件确认

识别方法的格式如下:

分析确认([用户身份],[特征],[选项],[回调]);

识别呼叫具有以下字段:

用户身份 可选的 细绳 用户的数据库ID。如果你不知道用户谁,你可以省略用户身份并记录特征.你可以在确定参考
特征 可选的 对象 一本你所知道的用户特征的字典,比如他们的电子邮件的名字.您可以阅读更多关于特征的信息确定参考
选项 可选的 对象 选项词典。例如,启用或禁用特定目的地的电话。注意:如果你没有传递*traits*对象,在*options*之前传递一个空对象(如' {}')
回调 可选的 函数 在短时间内执行的函数,给出浏览器时间首先进行出站请求。

默认情况下,Analytics.js会缓存浏览器的特征localstorage.并将它们附加到每个Identify调用。

例如,当某人注册了一个时事通讯,但还没有在你的网站上创建一个帐户时,你可能会打电话给Identify。下面的示例显示了在这种情况下可能发送的Identify调用(使用硬编码特征)。

分析确认({昵称'奇异恩典'favoriteCompiler'一个0'行业'计算机科学'});

然后,当用户完成注册过程时,您可能会看到以下内容:

分析确认'12091906 - 01011992'{的名字'霍珀'电子邮件'grace@usnavy.gov'});

第二个呼叫的特征对象还包括昵称favoriteCompiler,行业

您可以省略trait和options,并将回调函数作为第二个参数传递。

分析确认'12091906 - 01011992'函数() {//在发送了识别请求后执行一些操作//注意:关键站点功能不应该依赖于你的分析提供商});

跟踪

Track方法允许记录用户执行的操作。你可以参见快速入门指南中的曲目示例或查看详细信息跟踪方法有效载荷

曲目方法遵循以下格式:

分析跟踪事件[属性],[选项],[回调]);

跟踪Call有以下字段:

事件 细绳 你要追踪的事件的名称。你可以阅读更多关于跟踪方法以及推荐的事件名称。
属性 可选的 对象 一个字典的属性的事件。如果事件是'添加到购物车',它可能有这样的性质价钱productType
选项 可选的 对象 选项词典。例如,启用或禁用特定目的地的电话。注意:如果你没有传递一个*properties*对象,在*options*之前传递一个空对象(比如' {}')
回调 可选的 函数 在短时间超时后运行的函数,让浏览器有时间首先发出出站请求。

Analytics.js中唯一必需的参数是一个事件名称字符串.您可以阅读更多信息Segment如何建议您姓名事件

示例跟踪呼叫:

分析跟踪'本文完成了'{标题'如何制定跟踪计划'课程'介绍分析'});

有关选择跟踪哪些事件、事件命名等更多信息,请查看分析学院

在Analytics.js中Track调用中唯一需要的参数是事件名称字符串。阅读更多关于分部如何建议的有关命名你的事件

trackLink附加的帮助器方法是跟踪调用作为链接的处理程序。和trackLink,Analytics.js插入短时间(300毫秒)以提供跟踪更多的时间打电话。属性之前的页面重定向时,这非常有用跟踪方法可以完成所有请求。

trackLink方法遵循以下格式。

分析trackLink元素事件[属性])
元素(年代) 元素或数组 要绑定的DOM元素跟踪方法。您可以传递一个元素数组或jQuery对象。注意:这必须是一个元素,一个CSS选择器。
事件 字符串或功能 事件的名称,传递给跟踪方法。或者一个函数对象的名称,返回一个字符串跟踪事件。
属性可选的 对象或函数 track方法要传递的属性字典。或者一个函数返回一个对象作为属性的事件。

例子:

var.链接=文档getelementbyid'免费试用链接');分析trackLink链接'点击免费试用链接'{计划'企业'});

跟踪形式

trackForm是绑定的助手方法吗跟踪调用表格提交。这trackForm方法插入一个短超时(300毫秒)以给出跟踪叫更多的时间来完成。这对于防止页面在跟踪方法可以完成所有请求。

trackForm方法遵循以下格式。

分析trackForm形式事件[属性])
形式(年代)元素或数组 元素或数组 要跟踪的表单元素或表单元素数组或jQuery对象。注意:trackForm接受一个元素,而不是CSS选择器。
事件 字符串或功能 事件的名称,传递给跟踪方法。或者一个函数对象的名称,返回一个字符串跟踪事件。
属性可选的 对象或函数 track方法要传递的属性字典。或者一个函数返回一个对象作为属性的事件。

例子:

var.形式=文档getelementbyid'”段');分析trackForm形式'签约'{计划'溢价'收入99.00});

方法可以让您记录您的网站上的页面视图,以及关于用户查看的页面的可选额外信息。

因为一些目的地需要一个页面调用来实例化它们的库,你必须叫页面至少每页加载一次。如果需要,您可以多次调用一次,例如在单页应用程序中的虚拟页面上更改。

js的最后一行默认包含一个Page调用Analytics.js片段.你可以更新这个页面在下面的指南内致电。

页面方法遵循以下格式。

分析页面([类别],[的名字],[属性],[选项],[回调]);

页面Call有以下字段:

类别 可选的 细绳 页面的类别。这对于电子商务这样的情况很有用,因为许多页面可能位于一个类别下。注意:如果您只传递一个字符串页面它被认为是的名字.你必须包括A.的名字发送一个类别
的名字 可选的 细绳 页面的名称。
属性 可选的 对象 页面属性的字典。注意:Analytics.js收集url标题推荐人路径是自动。默认为规范的url,如果有的话,并倒回document.location.href
选项 可选的 对象 选项词典。例如,启用或禁用特定目的地的电话。注:如果你不通过属性对象,通过一个空对象(如'{}')之前选项
回调 可选的 函数 在短时间超时后运行的函数,让浏览器有时间首先发出出站请求。

默认页面属性

js为每个属性添加了一些属性页面调用。

分析页面'定价');

段添加以下信息:

分析页面'定价'{标题'段定价'url'//www.asianminres.com/pricing.'路径'/定价'推荐人'//www.asianminres.com/warehouses'});

您可以通过在调用中显式地设置它们来覆盖这些值。例如:

分析页面'定价'{标题'我的覆盖标题'路径'/定价/视图'});

翻译:

分析页面'定价'{标题'我的覆盖标题'url'//www.asianminres.com/pricing.'路径'/定价/视图'推荐人'//www.asianminres.com/warehouses'});

集团

该组方法将一个涉及识别用户公司、组织、项新万博app2.0下载目、工作空间、团队、部落、排、集合、集群、部队、gang、party、社会或任何你能想到的集体名词。

这很有用这样的工具对讲机提前totango.,因为它将用户联系在一起集团其他的用户。

该组方法遵循以下格式。

分析集团groupId[特征],[选项],[回调]);

Group调用有以下字段:

groupId 细绳 组ID与当前用户关联。
特征 可选的 对象 一个字典的特征集团。一个群体的特征包括地址网站员工
选项 可选的 对象 选项词典。例如,启用或禁用特定目的地的电话。注:如果你不通过属性对象,通过一个空对象(如'{}')之前选项
回调 可选的 函数 在短时间超时后运行的函数,让浏览器有时间首先发出出站请求。

例子集团电话:

分析集团'Univac工作组'{原则['埃克特''Mauchly'],网站'Eckert-Mauchly电脑公司'statedGoals'开发第一台商用电脑'行业'技术'});

默认情况下,analystics .js缓存group特征在浏览器的本地存储中,并将它们连接到每一个集团叫,类似的怎么叫确认工作方法。

了解更多有关集团包括集团有效载荷该组织规范

别名

Alias方法组合两个不关联的用户身份。Segment通常在您调用用户的Identify时自动处理别名,但是有些工具需要显式的别名调用。

这是一种高级的方法,但是成功地管理用户身份是必需的一些我们的目的地只有Mixpanel年

别名方法遵循以下格式:

分析别名用户身份[previousId],[选项],[回调]);

别名调用有以下字段:

用户身份 细绳 希望与该用户关联的新用户ID。
previousId 可选的 细绳 先前识别用户的ID。这默认为当前标识的用户ID。
选项 可选的 对象 选项词典。例如,启用或禁用特定目的地的电话。
回调 可选的 函数 在短时间超时后执行的函数,使浏览器有时间首先发出出站请求。

有关别名的更多详细信息,包括别名打电话给负载,看看我们的规范

实用方法

Analytics.js实用程序方法可帮助您更改页面上的段加载方式。它们包括:

准备好了

准备好了方法允许您传入一个方法,该方法在Analytics.js完成初始化并加载所有启用的设备模式目的地时被调用。这就像jQuery的准备好了方法,除了目的地。

准备好了如果在初始化期间,如果任何目的地抛出错误(例如,出现过期的API键,错误的设置配置或浏览器被浏览器阻止的目标),则不会调用。

的代码准备好了函数只在准备好了就会发出。

如果要访问与任何分析的端具库方法不匹配任何Analytics.js方法,例如将额外的设置添加到MixPanel,则可以使用a准备好了这样你就可以访问Mixpanel对象了,就像这样:

分析准备好了函数(){窗口mixpanel年set_config.({详细的真正的});});

准备好了Method使用如下格式:

分析准备好了回调);

准备好了方法包含以下字段:

回调 函数 在加载所有启用的目的地后执行的函数。

调试

调用调试方法打开调试模式,将有用的消息注销给控制台。调用后刷新页面调试查看消息。

启用:

分析调试();

禁用:

分析调试);

发射器

全球分析对象在调用时触发事件别名集团确认跟踪页面

使用为这些事件设置侦听器的方法,并运行您自己的自定义代码。如果要将数据发送到服务,则这可能是有用的。

分析方法回调);
方法 细绳 要侦听的方法的名称
回调 函数 在每个发出的方法之后执行的函数,接受三个参数:事件属性选项

例子:

分析'跟踪'函数事件属性选项{大丁图(['recordEvent'事件]);});

此方法发出事件之前它们由Segment集成处理,并且可能不包括在将数据发送到Segment服务器之前在客户端所做的一些标准化操作。

注意:页事件属性存储在选项对象。

扩展超时

超时方法设置回调函数和辅助函数的长度(以毫秒为单位)。如果你有多个脚本需要在你的回调或trackLinktrackForm帮手功能。

下面的示例将超时设置为500ms。

分析超时500);

小费:如果您触发广告网络转换像素,我们建议延伸到500ms,因为这些像素通常有点慢。

重启或注销

调用重置重置id,包括匿名,并清除特征当前标识的用户和组。

分析重置();

重置方法只清除cookie和localstorage.由段。它不能从其他集成工具中清除数据,因为这些本地库可能设置自己的cookie来管理用户跟踪、会话和管理状态。要完全清除用户会话,请参阅这些工具提供的文档。

段不共享localstorage.在子域。如果您在多个子域上使用分段跟踪,您必须调用analytics.reset ()为每个子域完全清除用户会话。

使用集成对象管理数据流

小费:你可以用几种不同的方式改变数据流动的方式,而不必更改代码。看到过滤数据要学习更多的知识。

你可以通过集成对象选项别名,小组,识别,页面和轨道方法只将数据发送到选定的目的地。缺省情况下,启用所有目的地。

下面的示例仅向对讲机和Google Analytics发送消息。

分析确认'user_123'{电子邮件'jane.kim@example.com'的名字'简金'},{集成{'所有''对讲机'真正的'谷歌分析'真正的}});

'全部':假告诉Segment不要发送数据到任何默认情况下的目的地,除非他们明确列为真正的在下一行中。

作为一个相对的例子,下面的片段向所有集成发送消息除了对讲机和谷歌分析。

分析确认'user_123'{电子邮件'jane.kim@example.com'的名字'简金'},{集成{'对讲机''谷歌分析'}});

你不需要包括“所有”:真的在此调用中,因为它被暗示为默认行为。相反,只列出要排除的目的地,有一个国旗。

目的地的标志是区分大小写的和匹配目的地的名称在文档中(例如,“Adlearn开放平台”,“AWE.SM”,“MailChimp”等)。如果目的地有多个可接受的名称,则会出现在该目的地的文档中。

小费:业务层客户可以筛选来自段UImanbetx客户端应用下载中的源模式页面的Track调用。如果可能的话,我们建议您使用UI,因为它是管理过滤器的一种更简单的方式,并且可以在不更改代码的情况下进行更新。

加载选项

您可以修改.load方法(代码片段的第二行)以接受第二个参数。如果你传递一个带有集成字典(匹配格式以上),然后Segment只加载该字典中使用布尔值标记为启用的集成真正的

你只能打电话.load在页面加载或重新加载(刷新)。如果你修改了.loadPage Loads之间的方法,直到重新加载页面,它没有任何效果。

一个例子:

分析负载'writekey'{集成{所有'谷歌分析'真正的'Segment.io'真正的}})

注意:要使用此功能,您必须使用代码片段版本4.1.0或更高版本。您可以获得该代码片段的最新版本在这里

通过这种方式,您可以根据客户在您的站点上选择的内容有条件地加载集成。manbetx客户端应用下载下面的示例展示了如何只加载用户同意使用的工具。

onConsentDialogClosed函数consentedTools){分析负载'writekey'{集成consentedTools})})

重试

当启用时,Analytics.js会自动重试网络和服务器错误。通过持久重试,analystics .js可以:

  • 支持离线跟踪.js将你的事件排队并在用户重新上线时交付它们。
  • 更好地处理网络问题.如果发生在应用程序无法连接到段的API的时间,我们将继续将事件存储在浏览器上以确保您不会丢失任何数据。

js中存储事件localstorage.然后回到内存存储localstorage.不可用。它最多重试10次,每次重试之间的回退时间逐渐增加。js每次队列最多100个事件,以避免使用太多的设备本地存储。看到目的地重试文档要学习更多的知识。

批处理

批处理是将多个请求或调用分组为一个请求或API调用的能力。同一批内发送的所有请求具有相同的属性receivedAt时间。使用Analytics.js,你可以批量发送事件到Segment。批量发送事件使您能够:

  • 用更少的API调用交付多个事件
  • 如果连接丢失,则错误更少,因为整个批处理将一次性重试,而不是多个调用随机重试。

设置

你可以通过改变策略“批处理”和参数尺寸超时负载方法。批处理需要这两个参数。

分析负载{集成{Segment.io{deliveryStrategy{策略批处理配置{尺寸10超时5000}}}}});

您可以通过检入源代码的调试器来检查批处理是否有效来源>调试器.当您选择一个事件并查看生的代码中,receivedAt批处理中所有事件的时间应该是相同的。

批量大小

批量大小是强制达到它的所有批量事件的阈值。例如,大小:10意味着在触发10个事件后,Analytics.js将这些10个事件作为批次发送到段。

批处理事件的总数不能超过500 KB的最大有效负载大小,批处理中的每个事件限制为32 KB。如果达到500kb限制,则批处理将被分割。

超时

超时是一旦事件到达时,强制将排队等待批处理的所有事件发送的毫秒数,而不考虑批处理大小。例如,超时:5000每过5秒将批处理中的每个事件发送给Segment。

批处理常见问题解答

当用户关闭浏览器时,Analytics.js会提供队列中的事件吗?

js尽力在浏览器关闭之前交付队列事件,但是交付不能保证。

在接收到beforeunload在浏览器事件中,Analytics.js尝试使用获取请求keepalive设置为true。自最大大小keepalive有效载荷限制为64 kB,如果浏览器关闭时队列大小大于64 kB,则有可能丢失排队事件的子集。减少批量大小或超时将减轻此问题,但这将是一个权衡决定。

Analytics.js经典支持批处理吗?

否,批处理仅被支持为Analytics.js 2.0的一部分。

其他目的地能否接收批处理事件?

不,此批处理仅影响发送到段的事件。一旦批处理到达段,就会拆分并遵循事件的正常路径。

将批量影响结算或吞吐量吗?

不,批处理不会影响计费或吞吐量。

我可以对合作伙伴集成使用批处理吗?

合作伙伴集成不支持批处理,因为所有其他合作伙伴集成一次运行一个事件。只有部分。IO事件支持批量交付。

批处理在所有浏览器上都能工作吗?

批处理不会在Internet Explorer上工作。

如果源已启用重试,则使用批处理时重试行为是否会更改?

批处理延迟重试,因为等待批处理的事件在批处理交付失败之前不会重试。

当使用中间件作为源和目标时,使用批处理时行为是否有变化?

不,中间件的行为没有变化。

使用段特征(架构过滤,集成对象,协议)来过滤到目标(设备和云模式)的事件时,将批处理对事件的过滤?

不,对事件的过滤方式没有影响。

插件

段提供Video Player'插件',因此您可以使用Analytics.js快速收集视频事件。请参阅下面的具体文档以了解更多信息:

交叉子域分析

js跟踪所有的子域;我们所有的目的地都完全支持这个功能。

Analytics.js性能

js库和所有的目标库都是用HTML脚本异步标签.这也意味着段异步触发方法,因此如果您要求以特定顺序从浏览器发送事件,则应相应地调整代码。

虽然许多工具需要访问DOM或cookie,但对于Zendesk、Salesforce和MailChimp目的地,Segment不需要加载本地Javascript库!相反,Segment的服务器将数据发送到终端工具。

段加载所需的库启用目的地。当你禁用某个目标时,你网站上加载的Analytics.js自定义版本将停止请求该库。

使用Analytics.js并没有提供很大的性能优势,但是比单独安装每个目的地的性能更好。随着越来越多的目的地直接从Segment接收数据,您将自动获得更多的性能收益。

一个选择,如果你不想使用任何捆绑的第三方工具,是使用browserify分析节点包裹。

包大小

Segment的Analytics.js Javascript代码片段增加了大约1.1KB的页面大小。

代码片段异步请求并加载定制的Javascript包(Analytics.min.js.),其中包含加载您的device-mode目的地.此文件的大小根据您启用的目的地的数量而更改。

如果没有启用任何目的地,则Analytics.min.js.文件大小约为62KB。每次启用目标时,文件的大小可能会略有增加。

Analytics.js使用的本地存储cookie

Analytics.js使用localstorageCookie如果启用了重试,则跟踪重试时序。

  • ACK.cookie是用于查看另一个选项卡是否应索取重试队列的计时器。
  • reclaimStartreclaimEndCookies决定一个选项卡是否从另一个选项卡接管队列。
  • inProgress队列cookie跟踪正在进行的事件和排队等待重试的事件。

欲了解更多信息,请访问段localstorage-retry图书馆

您可以设置调试饼干,analytics.js从Analytics.js到控制台的调试消息。

开源库

js 2.0包含以下开源组件:

UUID v2.0.0.https://github.com/lukeed/uuidLuke Edwards <版权所有luke.edwards05@gmail.com> (lukeed.com)许可证:麻省理工许可证,可在这里:https://github.com/lukeed/uuid/blob/master/license

component-url v0.2.1https://github.com/component/url)版权所有(c) 2014组件许可:MIT许可,可在这里获得:https://github.com/component/url/blob/master/readme.md.

dset v2.0.1.https://github.com/lukeed/dset)版权所有(c)Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)许可证:麻省理工许可证,可在这里:https://github.com/lukeed/dset/blob/master/license

js-cookie v2.2.1版权所有(c) 2018版权所有2018 Klaus Hartl, Fagner Brack, GitHub贡献者许可证:MIT许可证,可在这里获得:https://github.com/js-cookie/js-cookie/blob/master/LICENSE

MD5 v2.3.0.https://github.com/pvorb/node-md5版权所有(c), Paul Vorbach。版权所有(c) 2009, Jeff Mott。许可:BSD-3-Clause“新”或“修订”许可,可在:https://github.com/pvorb/node-md5/blob/master/LICENSE

unfetch v4.1.0https://github.com/developit/unfetch版权所有(c) 2017 Jason Miller许可证:MIT许可证,可在以下网址获得:https://github.com/developit/unfetch/blob/master/license.md.

此页面上次修改:2021年7月21日



从Segment开始

细分是将你的网站和手机应用数据整合到300多个分析和增长工具中的最简单方法。
创建免费帐户