分析Java


Maven中央

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

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

所有Segment的服务器端库都是为高性能构建的,所以你可以在你的web服务器控制器代码中使用它们。这个库使用一个内部队列使所有调用无阻塞且快速。它还对消息进行批处理,并异步刷新到我们的服务器。

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

开始

Javadocs

安装库

安装java库的推荐方法是等级的构建系统,如Gradle或Maven。这使得升级和交换目的地简单。使用图书馆使用Maven中央作为一个jar依赖。

这是Maven所看的:

添加到pom.xml.:

<依赖>< groupId >com.segment.analytics.java< / groupId >分析<版本>最新的> < /版本< / >的依赖

或者如果你正在使用Gradle:

编译“com.segment.analytics.java:分析:+”

初始化SDK.

在向我们发送事件之前,需要初始化Analytics类的一个实例。为此,必须使用分析。构建器类。

分析分析分析构建器写作)。建造();

当然,您需要将writeKey替换为您的actual写关键你可以在你的源设置下的片段中找到。

Builder还可以用来定制Analytics实例的行为。

注意:有一个内部的AnalyticsClient类。不要将这个课堂混为公众分析类,不要直接使用这个类。

Analytics类有一个方法叫做排队这需要一个MessageBuilder.每个消息类都有一个相应的构建器,用于构造消息的实例。

尽管不是在编译时强制的,但请确保您提供了用户标识anonymousId对于每条消息。未能这样做将在运行时提出异常。

下面的示例使用郭瓦不可变的地图,但随时使用普通的旧Java地图。

识别

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

识别允许您将用户绑定到他们的行为和记录它们的特征。它包括一个唯一的用户ID和您对其了解的任何可选性状。

我们建议打电话识别当用户的账户第一次创建时,只有当他们的特征改变时才会再次识别。

例子识别称呼:

分析排队识别识别构建器()用户标识“f4ca124298”特征ImmutableMap构建器()“名称”“迈克尔·博尔顿”“电子邮件”“mbolton@example.com”建造());

此调用是通过他唯一的用户ID识别Michael(您在您的数据库中认识他的人)并标记他的名字电子邮件特质。

识别Call包含以下字段:

用户标识字符串 数据库中此用户的ID。
特征特征,可选 一本你了解用户特点的字典。喜欢的东西:电子邮件的名字朋友们

注意:enqueue方法接受MessageBuilder实例而不是一个信息实例直接。这是为了让您使用aMessageTransformer适用于所有传入消息和转换或添加数据。

浏览识别方法有效载荷在我们的规格

跟踪

追踪允许您记录用户执行的操作。每个动作都会触发我们所说的“事件”,它也可以有相关的属性。

您要追踪您感兴趣的事件,例如签约商品购买文章书签

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

例子追踪称呼:

分析排队TrackMessage构建器“项目购买”用户标识“f4ca124298”属性ImmutableMap构建器()“收入”39.95“运输”“两天”建造());

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

追踪事件属性可以是您想要记录的任何内容。在这种情况下,是收入和运输。

追踪Call包含以下字段:

用户标识字符串 数据库中此用户的ID。
事件字符串 您正在跟踪的事件的名称。我们推荐像这样的人类可读的名字歌曲播放状态已更新
属性属性,可选 事件属性字典。如果事件是产品添加,它可能有属性价格产品

查找详情活动命名的最佳实践以及追踪方法有效载荷在我们的规格

屏幕

屏幕方法允许您记录每当用户看到您的移动应用程序的屏幕,以及可选的关于正在查看的屏幕的额外信息。

你会想记录一个屏幕事件一个事件每当用户在你的应用程序中打开一个屏幕。这可能是一个视图,片段,对话框或活动取决于你的应用程序。

并不是所有的服务都支持屏幕,所以当它不被显式支持时,screen方法将作为具有相同参数的事件进行跟踪。

例子屏幕称呼:

分析排队ScreenMessage构建器“安排”用户标识“f4ca124298”属性ImmutableMap构建器()“类别”“体育”“路径”“/运动/时间表”建造());

屏幕Call包含以下字段:

用户标识字符串 数据库中此用户的ID。
的名字字符串 您正在跟踪的网页名称。我们推荐像这样的人类可读的名字登录注册
属性属性,可选 一个用于屏幕访问的属性字典。如果屏幕是登录,它可能有属性小路标题

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

页面

页面方法允许您在用户看到网页的页面时记录,以及正在查看的页面的可选额外信息。

并不是所有的服务都支持页面,所以当它不被显式支持时,page方法通常作为具有相同参数的事件进行跟踪。

例子页面称呼:

分析排队PageMessage构建器“安排”用户标识“f4ca124298”属性ImmutableMap构建器()“类别”“体育”“路径”“/运动/时间表”建造());

页面Call包含以下字段:

用户标识字符串 数据库中此用户的ID。
的名字字符串 您正在跟踪的网页名称。我们推荐像这样的人类可读的名字登录注册
属性属性,可选 用于页面访问的属性字典。如果页面是登录,它可能有属性小路标题

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

集团

团体让您关联识别用户用户组。一个组可以是一个公司,组织,帐户,项目新万博app2.0下载或团队!它还允许您记录关于该团体的自定义特征,如行业或雇员数量。

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

例子团体称呼:

分析排队GroupMessage.构建器“some-group-id”用户标识“f4ca124298”特征ImmutableMap构建器()“名称”“段”“大小”50建造());

团体Call包含以下字段:

用户标识字符串 数据库中此用户的ID。
groupId字符串 数据库中此组的ID。
特征特征,可选 您了解该组织的特征词典。喜欢的东西:的名字网站

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

别名

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

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

例子别名称呼:

分析排队AliasMessage构建器“previousId”用户标识“f4ca124298”);

这里有一个完整的例子,说明我们如何使用别名称呼:

//匿名用户执行操作…追踪“anonymous_user”“匿名事件”);//匿名用户注册并别名别名“anonymous_user”“identified@example.com”);//注册的用户被识别识别“identified@example.com”特征“计划”“免费”));//识别的用户执行操作......追踪“identified@example.com”“确定行动”);

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


历史导入

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

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

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

日期historicalDate......分析排队TrackMessage构建器”按钮点击“用户标识“f4ca124298”时间戳historicalDate);

选择目的地

别名团体识别页面追踪调用都可以传递一个对象集成它可以让你打开或关闭某些目的地。缺省情况下,所有目的地都是启用的。

与Timestamp类似,建设者拍摄了一个目的地地图,控制您希望每条消息的分析目的地要去。

分析排队TrackMessage构建器”按钮点击“用户标识“f4ca124298”enableIntegration“全部”错误的enableIntegration“振幅”真的);

在本例中,我们指定希望这个标识只指向振幅。“所有”,假的说明除非另有说明,否则不应启用任何目的地。{“幅度”,真实}打开振幅。

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

注意:

  • 在业务级别可用,过滤跟踪调用可以直接从源模式页面上的Segment UI完成。如果可能的话,我们建议使用UI,因为它是管理过滤器的一种更简单的方法,并且可以在不更改代码的情况下进行更新。

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

上下文

如果你正在运行一个web服务器,你可能想要发送上下文变量,例如用户代理IP.与你的页面屏幕呼叫。你可以通过设置来这样做上下文

分析排队TrackMessage构建器”按钮点击“用户标识“f4ca124298”语境ImmutableMap构建器()“IP”“12.212.12.49”“语言”“en - us”建造());

批处理

我们的库是为支持高性能环境而构建的。这意味着在每秒处理数百个请求的web服务器上使用analytics-java是安全的。欲了解更多信息,请查看java基准

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

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

我现在怎么冲厕所?!

你也可以按需冲洗。例如,在程序结束时,您将希望刷新以确保队列中没有任何东西剩余。电话就可以了冲洗方法:

分析冲洗()

调用此方法将通知客户机上载队列中的任何事件。

我如何gzip请求?

Java库不自动gzip请求,但允许您这样做,如果您希望使用拦截器Okhttp..看看样例应用程序在我们的回购工作的例子。

多个客户端

应用的不同部分可能需要不同类型的批处理。在这种情况下,你可以初始化不同分析实例。只需使用构建器方法(可以使用不同的参数重用它)来创建不同的实例。

分析构建器构建器分析构建器写作);分析第一的构建器建造();分析第二构建器flushinterval.2TimeUnit)。建造();

记录

您可以启用详细日志记录,以便在调试问题时查看通过HTTP发送的数据。你可以像这样初始化库来启用日志记录:

日志stdout.日志()@Override.上市无效打印水平等级字符串格式对象...arg游戏系统println等级+”:\ t”+字符串格式格式arg游戏));@Override.上市无效打印水平等级Throwable错误字符串格式对象...arg游戏系统println等级+”:\ t”+字符串格式格式arg游戏));系统println错误);};分析分析分析构建器日志stdout.建造();

有关更多高级日志记录,您可以查看示例代码在我们的开源库中。

Java支持

我们正式支持Java 8、9和10。这个库也可以在其他版本的Java上工作,但是我们不测试不支持的版本的兼容性。

快照

要添加对构建的快照依赖项,请确保添加快照存储库,以便您的构建系统可以查找依赖项。

Maven用户可以将以下内容添加到pom.xml.:

 ossrh Sonatype Snapshot repository  https://oss.sonatype.org/content/repositories/snapshots/  false   true  

Gradle用户应该在他们的存储块中声明:

maven {url 'https://oss.sonatype.org/content/repositories/snapshots/'}}

故障排除

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

我的调试器中没有事件

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

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

没有事件在我的最终工具

  1. 仔细检查你的目的地证件。

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

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

此页面的最后修改:2020年9月18日



开始分段

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