Ruby的分析


我们的Ruby库允许你从你的Ruby代码中记录分析数据。这些请求会到达我们的服务器,然后我们会将您的数据发送到您在目的地页面上启用的任何分析服务。

这个库是开源的,所以你可以在github上看看

所有Segment的服务器端库都构建了高性能,因此您可以在Web服务器控制器代码中使用它们。此库使用内部队列进行识别追踪呼叫非阻塞和快速。它还批处理消息并异步刷新到我们的服务器。

想要在发布时保持更新?订阅释放饲料

开始

安装的宝石

如果您正在使用bundler,请将以下行添加到您的项目中吉他美:

宝石'Analytics-Ruby',“~ > 2.0.0的,:要求=>'段/分析'

或者,如果你直接从你的应用程序中使用gem,你需要:

宝石安装analytics-ruby

然后用你的片段源的初始化宝石写关键和一个可选的错误处理程序,像这样:

需要'段/分析'分析=部分::分析({write_key:'your_write_key',On_Error:Proc{|地位,味精|打印味精}})

的实例分析你可以用它将数据发送到Segment作为你的源。

如果您使用的是Rails,则可以坚持初始化逻辑配置/ initializers / Analytics_ruby.rb并省略了需要称呼。

笔记:我们的Ruby Gem并异步使请求成为有时会次优,并且如果您将其与Sidekiq /延迟作业/索赔打扫/ Resqueue等排队系统配对,则可能会逐次调试。如果您希望同步使用提出请求的GEM,则可以查看simple_segment,对标准GEM的API兼容的替代品,它同步地内联工作。非常感谢米哈伊尔·Topolskiy为他的管理替代宝石!

识别

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

识别方法是如何将用户及其操作与可识别的用户标识特征。你可以查找详细信息,请参阅我们的规范中的识别方法有效载荷

识别Call包含以下字段:

场地 类型 描述
user_id 字符串 此用户在数据库中的ID。可选的,如果Anonymous_id.提供。
Anonymous_id. 字符串 当您不知道用户是谁时,与用户关联的ID。可选的,如果user_id提供。
特征 哈希 一个哈希你对用户的了解。喜欢的东西:电子邮件,名称朋友们
语境, 可选的 哈希 一个哈希这可以包括用户代理IP.
一体化, 可选的 哈希 指定应该发送的哪些目的地。
时间戳, 可选的 时间 代表行动发生的时间。如果您正在导入历史数据,这是最有用的。如果是识别只是碰巧,把它留空,我们将使用服务器的时间。
message_id., 可选的 时间 每个消息的唯一标识符,可允许您在API上找到单个消息。

例子识别:

分析识别(用户身份:019 mr8mf4r,特质:{电子邮件:#{用户电子邮件},朋友们:872},背景:{IP:“8.8.8.8”})

这个示例调用将通过用户的唯一用户ID(您在数据库中通过该用户认识他)来识别用户,并为其贴上标签电子邮件朋友们特质。

跟踪

追踪方法允许您记录用户执行的任何操作。你可以找到细节轨道方法有效载荷

追踪Call包含以下字段:

场地 类型 描述
user_id 字符串 此用户在数据库中的ID。可选的,如果Anonymous_id.提供。
Anonymous_id. 字符串 当您不知道用户是谁时,与用户关联的ID。可选的,如果user_id提供。
事件 字符串 您正在跟踪的事件的名称。我们推荐像这样的人类可读的名字歌曲播放状态更新
属性, 可选的 哈希 一个哈希活动的属性。如果事件是产品添加到他们的购物车,它可能有属性价格产品
语境, 可选的 哈希 一个哈希这可以包括用户代理IP.
一体化, 可选的 哈希 指定应该发送的哪些目的地。
时间戳, 可选的 时间 代表行动发生的时间。如果您正在导入历史数据,这是最有用的。如果是识别只是碰巧,把它留空,我们将使用服务器的时间。
message_id., 可选的 时间 每个消息的唯一标识符,可允许您在API上找到单个消息。

您应该跟踪您网站成功指标的事件,如签约,商品购买文章书签

为了开始,我们建议只跟踪几个重要的事件。您可以随时添加更多!

例子追踪称呼:

分析追踪(用户身份:019 mr8mf4r,事件:'购买物品',属性:{收入:39.95,运输:“两天”})

这个例子追踪通话告诉我们,您的用户刚触发了商品购买事件,收入为$39.95,并选择你假设的“2天”运输。

追踪事件属性可以是你想要记录的任何东西,例如:

分析追踪(用户身份:'f4ca124298',事件:'文章书签',属性:{标题:“雪落”,字幕:“隧道溪的雪崩”,作者:“约翰分支”})

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

页面

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

如果您使用我们的客户端设置与Ruby库结合使用,请页面呼叫是已经为你追踪到了默认情况下。但是,如果您想手动记录自己的页面视图,并且不使用我们的客户端库,请继续阅读!

Call包含以下字段:

场地 类型 描述
user_id 字符串 此用户在数据库中的ID。可选的,如果Anonymous_id.提供。
Anonymous_id. 字符串 当您不知道用户是谁时,与用户关联的ID。可选的,如果user_id提供。
名称 字符串 例如,页面的名称注册首页
类别可选 字符串 页面的类别。对于像电子商务这样的东西有用,许多页面可能生活在更大的类别下。注意:如果只传递一个字符串给我们假设它是一个名称,不是A.类别。你必须包括一个名称如果你想发送类别
属性, 可选的 哈希 一个哈希的属性。
语境, 可选的 哈希 一个哈希这可以包括用户代理IP.
一体化, 可选的 哈希 指定应该发送的哪些目的地。
时间戳, 可选的 时间 代表行动发生的时间。如果您正在导入历史数据,这是最有用的。如果是识别只是碰巧,把它留空,我们将使用服务器的时间。
message_id., 可选的 时间 每个消息的唯一标识符,可允许您在API上找到单个消息。

例子称呼:

分析(用户身份:user_id,类别:'docs',名称:'Ruby Library',属性:{url:'//www.asianminres.com/libraries/ruby/'})

浏览有效载荷在我们的规格

团体

团体方法将一个识别用户与公司,组织,新万博app2.0下载项目,工作区,团队,部落,排,集中,集群,部队,帮派,派对,社会或您提出的任何其他名称。

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

团体Call包含以下字段:

user_id 字符串 此用户在数据库中的ID。可选的,如果Anonymous_id.提供。
Anonymous_id. 字符串 当您不知道用户是谁时,与用户关联的ID。可选的,如果user_id提供。
group_id 字符串 该组的ID。
特征可选 哈希 您对该组织了解的特征的哈希。对于公司来说新万博app2.0下载,他们可能是这样的东西名称,地址,或电话
语境, 可选的 哈希 一个哈希这可以包括用户代理IP.
一体化, 可选的 哈希 指定应该发送的哪些目的地。
时间戳, 可选的 时间 代表行动发生的时间。如果您正在导入历史数据,这是最有用的。如果是识别只是碰巧,把它留空,我们将使用服务器的时间。
message_id., 可选的 时间 每个消息的唯一标识符,可允许您在API上找到单个消息。

例子团体称呼:

分析团体(用户身份:019 mr8mf4r,group_id:“56”,特质:{名称:“Initech”,描述:会计软件的})

浏览有关团体包括团体有效载荷在我们的规格

别名

别名是你如何与另一个身份关联。这是一种高级方法,但需要成功管理用户身份一些我们的目的地。

mixpanel.它用于将匿名用户与识别的用户联系起来,一旦注册。为了亲吻如果您的用户切换ID,则可以使用“别名”重命名'userid'。

别名方法定义:

分析别名(previous_id:'以前的身份证',用户身份:“新身份”)

别名Call包含以下字段:

用户标识 字符串 数据库中此用户的ID。
上一个 字符串 以前的ID到别名。

这是我们如何使用的完整示例别名称呼:

#匿名用户做动作…分析追踪(用户身份:“anonymous_user”,事件:“匿名事件”)#匿名用户注册并别名分析别名(previous_id:“匿名标识”,用户身份:'用户身份')被识别的用户被识别分析识别(用户身份:'用户身份',特质:{计划:“免费”})#被识别的用户做动作…分析追踪(用户身份:'用户身份',事件:'确定的行动')

欲查询有关别名,包括别名呼叫有效载荷,查看我们的规格


历史导入

您可以通过添加来导入历史数据时间戳参数到任何方法调用。如果你刚转到Segment,这对你很有帮助。

历史导入只能在能够接受历史时间戳数据的目的地中进行。大多数分析工具,如Mixpanel, Amplitude, Kissmetrics等都可以很好地处理这类数据。一个不接受历史数据的常见目的地是谷歌Analytics,因为它们的API不能接受历史数据。

笔记:如果你正在追踪正在发生的事情,请忽略时间戳我们的服务器会为你记录请求的时间。

选择目的地

别名,团体,识别,追踪调用都可以传递一个对象一体化这让您打开或关闭某些目的地。默认情况下,所有目的地都已启用。

这里有一个例子追踪电话一体化对象显示。

分析追踪({用户身份:'83489',事件:“歌停了下来”,集成:{所有:错误的,亲吻:真的}})

在这种情况下,我们指定我们希望这个标识只指向Kissmetrics。:假说除非另有说明,否则应启用任何目的地。吻:真实打开吻等等。

目的地标志是区分大小写和匹配docs中的目的地名称(即“Adlearn开放平台”,“AWE.SM”,“MailChimp”等)。

笔记:

  • 在业务级别可用,可以从源模式页面上的段UI完成过滤跟踪呼叫。如果可能,我们建议使用UI,因为它是管理过滤器的更简单方法,并且可以在您身边未更新任何代码。

  • 如果您在祖父的计划上,则通过段仪表板过滤的服务器端发送的事件仍然会指望您的API使用情况。

表现

我们的图书馆是为支持高性能环境而构建的。这意味着在为每秒提供数百个请求的Web服务器上使用Analytics-Ruby是安全的。

你打电话的每个方法才不是结果是一个HTTP请求,但在内存中排队。消息在后台批量刷新,这样可以更快地操作。

默认情况下,我们的库将刷新:

  • 它第一次收到消息
  • 每当消息排队并且没有未完成的请求

最多有一个500 kb每个批处理请求和32KB.每一个电话。

队列消费者仅制作单个出站请求一次避免饱存服务器的资源。如果队列中有多个消息,则它们将在批处理中发送在一起。

您可以指定以下其他选项以确定队列如何运行,并帮助调试可能的错误。正常操作都不需要它们。

#错误处理程序到日志语句部分::分析({write_key:'your_write_key',On_Error:Proc{|地位,味精|打印味精},max_queue_size:10000,batch_size:One hundred.,存根:真的})
On_Error.可选 Proc 当从API返回错误时调用的处理程序。用于调试和第一次目标。
max_queue_size可选 夹具 在拒绝队列之前将队列放入队列中的最大消息数(默认为10,000)。
batch_size可选 夹具 单个批处理中要发送的事件/标识的最大数量(默认为One hundred.)。API服务器不会在一定大小的情况下响应消息One hundred.是一个安全的默认值。
存根可选 TrueClass | Falseclass. 如果为true,请请求不会击中服务器,并且已成功返回(默认为错误的)。

冲洗

如果您正在运行脚本或内部队列系统以上传数据,则应调用Analytics.Flush.确保您的所有消息都被发送到我们的服务器。Segment还建议您拨打冲洗关闭,使所有排队的消息被发送到段而不是等待下次启动。

AppAnalytics=部分::分析({write_key:'one_write_key'})AppAnalytics冲洗

成功 ””提示:当你打电话时冲洗,调用阻塞线程的执行,直到它处理完队列中的所有消息。如果你想打电话冲洗在应用程序的正常操作期间,您可以派生一个本地工作线程,并在该工作线程上调用flush。这可以防止调用阻塞主线程。

如果你在铁轨上使用RubyTurbolinks启用设置,您正在添加Analytics.js在你的网站上,你需要调整默认配置。

而不是整个片段你的网站,你需要移动Analytics.page()控件中默认包含的代码片段这样它就会在每个新页面加载上触发。但是你必须有片段的第一部分或者库将无法正确加载。

序列化

Ruby库会自动为我们的服务器将数据序列化为JSON。它使用JSON.generate在引擎盖下。注意大二世值被有意地作为字符串而不是浮点数发送,这样我们的Node服务器就不会丢失精度。如果你喜欢使用浮点数,你可以在将数据发送给Segment之前强制值为浮点数。

多个客户端

应用程序的不同部分可能需要不同类型的批处理,甚至发送到多个段源。在这种情况下,您可以初始化多个实例分析不同的设置:

AppAnalytics=部分::分析({write_key:'one_write_key'})MarketingAnalytics.=部分::分析({write_key:“ANOTHER_WRITE_KEY”})

故障排除

如果您有问题,我们有几个技巧有助于常见问题。

我的调试器中没有事件

  1. 仔细检查你已经遵循了所有步骤快速开始

  2. 确保你正在调用我们的API方法之一,一旦库被成功安装-识别,追踪等。

我的最终工具中没有事件

  1. 仔细检查您的目的地的凭据。

  2. 确保正在进行故障排除的目的地可以接受服务器端API调用。兼容性显示在目的地文档页面和段源目的地页面上的页面上的页面。

  3. 检查目的地的文件看看是否有其他需求使用的方法和目的地,你试图得到工作。

最后更改:2021年3月12日



开始分段

段是将网站和移动应用程序数据集成到超过300个分析和增长工具的最简单方法。
创建免费帐户