Analytics.js (Javascript)来源


analytic .js, Segment的Javascript源代码,使它简单发送你的数据到任何工具,而不必每次学习,测试或实现一个新的API。

Analytics.js 2.0 beta.

一个新版本的Analytics.js可用于测试。点击这里想要查询更多的信息。

开始

阅读的Analytics.js快速入门指南它解释了如何在几分钟内将Analytics.js添加到您的网站。安装了这个库之后,请继续阅读详细的API参考!

基本跟踪方法

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

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

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

识别

识别方法是如何将用户及其操作链接到可识别的用户标识特征。你可以看到一个识别QuickStart指南中的示例查找识别方法有效载荷的详细信息

分部推荐使用识别为匿名访客到您的网站。js自动检索anonymousId从localStorage或为新访问者分配一个,它附加到所有页面追踪在一个之前和之后的事件识别

识别方法遵循以下格式:

分析识别([用户标识],(特征],(选项],(回调]);

Identify调用有以下字段:

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

默认情况下,特性缓存在浏览器的localstorage并附加到每个后续Identify调用。

例如,当有人注册了时事通讯,但还没有在您的站点上创建帐户时,您可以致电Identify。下面的示例显示了在本例中可能发送的Identify调用(使用硬编码的特征)。

分析识别({昵称:奇异恩典,favoriteCompiler:一个0,行业:计算机科学});

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

分析识别(12091906 - 01011992,{的名字:霍珀,电子邮件:grace@usnavy.gov.});

第二次调用的traits对象还包括昵称,favoriteCompiler,行业

您可以省略其特征和选项,并将回调作为第二个参数。

分析识别(12091906 - 01011992,函数(){//在发送标识请求后做某事//注意:站点 - 关键功能不应依赖于您的分析提供商});

跟踪

Track方法允许您记录用户执行的操作。你可以请参阅QuickStart指南中的曲目示例或查找有关跟踪方法有效载荷

曲目方法遵循以下格式:

分析追踪(事件,(属性],(选项],(回调]);

追踪Call包含以下字段:

事件 字符串 您正在跟踪的事件的名称。你可以了解更多关于这个问题跟踪方法还有我们推荐的事件名称。
属性 可选 目的 一个字典的属性的事件。如果事件是“添加到购物车”,它可能有属性价格产品类别
选项 可选 目的 选项词典。例如,启用或禁用特定目标呼叫。注意:如果未通过*属性*对象,请在*选项之前通过空对象(如“{}”)*
回调 可选 函数 在短超时后执行的函数,使浏览器有时间先发出出站请求。

Analytics.js中唯一必需的参数是一个事件名称字符串。你可以阅读更多Segment如何推荐你命名事件

示例跟踪呼叫:

分析追踪(文章完成,{标题:如何创建跟踪计划,课程:介绍分析,});

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

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

TrackLink.是一个附着的辅助方法追踪调用作为链接的处理程序。和TrackLink.插入一个短超时(300毫秒)以提供追踪更多的时间打电话。当页面将重定向到追踪方法可以完成所有请求。

TrackLink.方法遵循以下格式。

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

例子:

var.关联=文档getElementById(free-trial-link);分析TrackLink.(关联,点击免费试用链接,{计划:企业});

跟踪形式

trackform.是一个绑定a的辅助方法追踪调用表格提交。的trackform.方法插入一个短超时(300毫秒)以提供追踪叫更多的时间来完成。控件之前防止页面重定向非常有用追踪方法可以完成所有请求。

trackform.方法遵循以下格式。

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

例子:

var.形式=文档getElementById(”段);分析trackform.(形式,签约,{计划:溢价,收入:99.00});

方法允许您记录网站上的页面查看,以及关于正在查看的页面的可选额外信息。

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

默认情况下包含页面调用作为最终行Analytics.js片段。你可以修改这个页面在下面的指导方针内调用。

页面方法遵循以下格式。

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

页面Call包含以下字段:

类别 可选 字符串 页面的类别。有用的情况下,如电子商务,许多页面可能生活在一个单一的类别。注意:如果您只传递一个字符串页面假设是的名字。你必须包括一个的名字送A.类别
的名字 可选 字符串 页面的名称。
属性 可选 目的 页的属性字典。注意:url,标题,介绍人小路自动收集!此外,这默认为a规范的url,并退回到document.location.href.
选项 可选 目的 选项词典。例如,启用或禁用特定目标呼叫。注:如果你没有通过属性对象,之前传递一个空对象(如“{}”)选项
回调 可选 函数 在短超时后执行的函数,使浏览器有时间先发出出站请求。

默认页面属性

每个属性都会自动添加到每个属性页面称呼。

分析页面(价钱);

分段添加以下信息,无需您的任何额外工作:

分析页面(价钱,{标题:段定价,url://www.asianminres.com/pricing,小路:/价钱,介绍人://www.asianminres.com/warehouses});

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

分析页面(价钱,{标题:我覆盖标题,小路:/定价/查看});

转换为:

分析页面(价钱,{标题:我覆盖标题,url://www.asianminres.com/pricing,小路:/定价/查看,介绍人://www.asianminres.com/warehouses});

集团

组方法关联识别用户用一个公司、组新万博app2.0下载织、项目、工作空间、团队、部落、排、集合、群集、部队、帮派、聚会、社会或任何其他集体名词来表达相同的概念。

这很有用这样的工具对讲机,提前Totango,因为它将用户绑定到团体其他的用户。

该组方法遵循以下格式。

分析团体(groupId,(特征],(选项],(回调]);

组调用具有以下字段:

groupId 字符串 组ID与当前用户关联。
特征 可选 目的 一个字典的特征集团。一个组的示例特征包括地址,网站员工
选项 可选 目的 选项词典。例如,启用或禁用特定目标呼叫。注:如果你没有通过属性对象,之前传递一个空对象(如“{}”)选项
回调 可选 函数 在短超时后执行的函数,使浏览器有时间先发出出站请求。

例子团体称呼:

分析团体(UNIVAC工作组,{原则:(埃克特,摩托车],地点:Eckert-Mauchly Computer Corporation,陈列戈斯:开发第一台商用电脑,行业:技术});

默认情况下,组特征在浏览器的本地存储中缓存并连接到每个后续的团体打电话,类似如何识别工作方法。

浏览有关团体包括团体有效载荷小组规范

别名

别名方法组合了两个先前未关联的用户身份。段通常在用户识别用户时自动处理混叠,但有些工具需要显式别名称呼。

这是一种高级方法,但需要成功管理用户身份一些我们的目的地如亲吻Mixpanel年

Alias方法的格式如下:

分析别名(用户标识,(上一个],(选项],(回调]);

Alias调用有以下字段:

用户标识 字符串 您要与用户关联的新用户ID。
上一个 可选 字符串 先前识别用户的ID。默认为当前标识的用户ID。
选项 可选 目的 选项词典。例如,启用或禁用特定目标呼叫。
回调 可选 函数 在短超时后执行的函数,使浏览器有时间先发出出站请求。

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

实用方法

js实用工具方法可以帮助你改变fragment在页面上的加载方式。它们包括:

准备好了

准备好方法允许您通过一个调用Analytics.js完成初始化的方法,以及一旦所有支持的设备模式目的地加载。就好像是jquery的准备好方法,除了目的地。

准备好如果目标在初始化期间抛出错误(例如过期的API密钥或不正确的设置配置),仍然会调用。这样做可以防止阻塞代码侦听准备好回调。

中的代码准备好函数只在以下情况下执行准备好就会发出。

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

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

准备好方法采用以下格式:

分析准备好(回调);

准备好方法具有以下字段:

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

调试

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

启用:

分析调试();

禁用:

分析调试();

发射器

全球分析对象在您呼叫时发出事件别名,团体,识别,追踪页面

使用方法设置这些事件的监听器并运行您自己的自定义代码。如果您想将数据发送到Segment没有目的地的服务,这可能是有用的。

分析(方法,回调);
方法 字符串 聆听方法的名称
回调 函数 在每个发出的方法之后执行的函数,有三个参数:事件,属性,选项

例子:

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

此方法发出事件它们是由段集成处理的,并且在将数据发送到段服务器之前,可能在客户端上不包括一些归一化段。

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

延长超时

超时方法设置回调和辅助功能的长度(以毫秒为单位)。如果您有多个需要在您的回调或中射击的脚本,这是有帮助的TrackLink.,trackform.helper函数。

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

分析超时(500);

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

重置或注销

打电话重启重置id,包括匿名,并清除特征对于当前已识别的用户和组。

分析重启();

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

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

使用集成对象管理数据流

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

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

下面的示例只向对讲机和谷歌Analytics发送消息。

分析识别(User_123.,{电子邮件:jane.kim@example.com.,的名字:简金},{集成:{所有:,对讲机:真正的,谷歌分析:真正的}});

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

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

分析识别(User_123.,{电子邮件:jane.kim@example.com.,的名字:简金},{集成:{对讲机:,谷歌分析:}});

你不需要包括“所有”:真的因为它隐含为默认行为。相反,只列出您想要排除的目的地,使用国旗。

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

小费:业务层客户可以从段UI中的源manbetx客户端应用下载模式页面过滤跟踪呼叫。我们建议您使用UI,如果可能的话,因为它是管理过滤器的更简单方法,并且可以在您身边没有任何代码更改。

加载选项

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

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

一个例子:

分析负载(写作,{集成:{所有:,谷歌分析:真正的,Segment.io:真正的}})

注意:要使用此功能,您必须位于Snippet版本4.1.0或更高版本上。您可以获得最新版本的片段这里

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

onConsentDialogClosed(函数(同意小便){分析负载(写作,{集成:同意小便})})

重试

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

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

Analytics.js商店的事件localstorage当它返回到内存中时localstorage不可用。它最多重试10次,每次重试之间的回退时间递增。js一次最多将100个事件排队,以避免过多使用设备的本地存储。看到目的地重试文档要学习更多的知识。

插件

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

交叉子域分析

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

Analytics.js性能

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

虽然很多工具需要访问DOM或cookie,但对于Zendesk、Salesforce和MailChimp目的地,Segment不需要加载原生Javascript库!相反,数据从Segment的服务器发送到最终工具。我们的目标是在未来扩大这方面的业务。

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

使用Analytics.js不提供一个巨大的性能效益,但它比单独安装每个目的地更加性能。随着更多目的地移动到直接从段接受数据,您将自动收到更多的性能优势。

一个选项,如果您不想使用任何捆绑的第三方工具,是使用我们的browserify'd分析节点包中。

包大小

段的Analytics.js JavaScript段仅将页面大小增加约1.1KB。

但是,代码片段异步请求并加载一个定制的Javascript包(analytics.min.js),包含加载您的代码和设置device-mode目的地。该文件的大小取决于启用的目的地的数量和类型。

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

Analytics.js使用的本地存储cookie

js使用了一些localstorageCookies(如果您已启用重试),以跟踪重试计时。

  • Cookie是一个定时器,用于查看另一个TAB是否应该声明重试队列。
  • reclaimStartreclaimEndCookies决定一个TAB是否从另一个TAB接管队列。
  • inProgress队列cookie正在进行的事件,以及排队重新定位的事件。

欲了解更多信息,请访问段LocalStorage-Retry库

你可以设置调试饼干,Analytics.js.将debug消息从Analytics.js记录到控制台。

最后修改:2021年3月09日



开始分段

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