跟踪用户行为
如果你正在构建一个带有流星的SaaS产品,可能会出现的一个特性是跟踪用户和客户如何与你的产品交互。这很容易成为事后的想法,因为它的实用性在一开始可能并不完全清楚。在这篇文章中,我们将做一个高层次的研究,看看为什么我们要跟踪用户的开始,不同的方法,以及一些需要记住的事情,同时将不同的服务与你的流星应用程序整合起来。
“跟踪”的行为是什么?
像“追踪”这样的术语,在涉及用户隐私的问题上,会产生很多负面的联想。当我们说“track”时,我们实际上指的是在我们的应用程序中记录用户行为。记录通常指的是当用户做某事时,将消息发送到分析服务。以下列代码为例:
header.html
<a href="/signup" class="signup">Signup</a>
header.js
Template.header.events({
'click .signup' () {
AnalyticsService.track( 'Clicked the signup link' );
}
});
在这个简单的代码片段中,我们可以看到每当用户在我们的头模板中点击一个按钮时,就会出现这个类。注册,我们调用函数AnalyticsService.track(),传递正在发生的事件的名称。这是在追踪它的所有荣耀。当我们的应用程序发生了一些事情,我们就记录下来。下面是一个用户跟踪历史的可视化例子,让它更加具体:
用户的示例使用行为
在这个图形中,我们可以看到一个用户名,然后是一个事件的倒序时间线,表示某种用户行为。我们可以看到,这名用户约瑟夫·朱兰(Joseph Juran)“在三天前点击了注册链接,并最终于20分钟前取消了订阅”。如果还不清楚,这给我们的是一套非常具体的行为,我们可以用它来告诉我们的想法。如果约瑟夫创建了五个todo项目,然后在第二天取消了他的帐户,我们可以收集到一些关于产品的东西没有满足他的需求。
这就是跟踪变得非常有价值的地方:识别我们产品成功使用的陷阱。有了这类信息,我们可以做一些主动的事情,比如联系一个特定的用户,询问他们的取消,并试图让他们成为客户。我们也可以做一些事情,比如识别我们产品中的问题区域,并确定我们的工作重点。
就像任何事情一样,跟踪是适度的。更好的是,跟踪是很好的,因为跟踪的目的是消息灵通的。
什么时候跟踪?
首先,我们需要了解什么是跟踪,什么时候,为什么。很容易认为你需要追踪每一个细节,然而,这并不总是必要的。这一切都归结为实用:您和/或您的团队将如何利用您收集的信息?信息会传递什么信息?在与投资者交谈时,它会被用来改进你的产品,还是作为一种营销工具?
确定效用
决定效用需要与你自己或你的团队进行对话。在你盲目地跟踪用户行为之前,很重要的一点是要知道你为什么要这么做,你需要什么(而不是你不需要的)。要想达到这个目标,需要问几个问题:
- 收集这些数据的主要目标是什么?
- 哪些具体的数据将帮助我们更好地实现这一目标?
- 谁负责收集、组织和报告数据?
- 我们如何以及何时评估报告的数据?
- 我们将如何根据数据对一条前进道路作出决定?
- 一旦我们做出了决定,谁负责实施?
- 一旦决定实施,你将如何评价它的有效性?
一个示例对话或响应可能是这样的:
我们注意到很多用户创建帐户,但没有完成帐户设置。我们希望了解用户在我们产品的onboarding阶段中处于什么位置。我们需要知道有多少人通过每个步骤,并识别出那些与他人分离的人的特征。
Jane将收集并组织数据到报告中。我们将召开一次会议,讨论用户似乎最麻烦的地方,并讨论产品可能造成的问题。我们将把它与我们收到的其他数据结合起来,比如支持请求。我们将决定这个问题是否需要由特定的团队(例如设计或工程)来解决,或者由多个团队来解决。根据我们确定的团队来解决这个问题,我们将指派这些团队的成员来解决这个问题。一旦解决方案得到实施,我们将再收集一周的数据,看看这些数据是否得到了改进。如果他们没有,我们将重复这个过程,直到我们找到一个提高用户成功的方法。
当然,这只是一个例子。实际的谈话会产生更多的问题和讨论。关键是要考虑基于某种特定的东西来实现跟踪,这会影响你的决策。过去我犯过的一个错误就是对很多随机事件进行追踪,结果发现我不知道如何处理它们(阅读:浪费时间)。很容易认为你需要所有的东西,但重要的是要问你是否有这种情况,并确定你真正想要解决的问题和原因。
如果你不是一个团队的成员,那么专注于跟踪和改进更小的范围。不要跟踪每一个特性的行为,选择一到两个,然后专注于它们的改进,然后继续前进。遵循上面的问题,总是问你正在实施的是针对一个具体目标的回应。如果不是,重新评估并决定工作是否必要。
分析服务
随着跟踪用户行为的概念在过去的几年里增长,用于执行任务的服务的数量也越来越多。有一吨多的服务做同样的事情,每个都有自己的变化或调整。现在,我们来看看一些更受欢迎的选择和突出的服务,这些服务特别适合于网络开发的流星风格。
谷歌分析
大魔法师。虽然大多数人认为谷歌分析是一种跟踪页面访问的工具,但他们也提供了一个免费的事件跟踪服务,通过一个名为analytics.js的图书馆提供。该服务允许您跟踪应用程序中的特定事件(行为),并在谷歌分析仪表板中查看它们。
虽然有点不太好,但是我们可以从“Reporting”选项卡中找到这个信息,用于特定的属性和导航,以用于>事件>概述部分。在这里,我们可以看到我们为特定属性发送到谷歌的所有事件。它们提供分类、操作和标签的过滤,这样您就可以根据某些活动或事件类型划分数据。跟踪数据与其他服务类似,只是安装一个JavaScript代码片段,然后使用公共函数ga(’ send ‘,’ event ‘,’ < eventAction > ‘,’ < eventLabel > ‘,’ < eventValue > ‘)来跟踪事件。如果您想要在谷歌分析中使用此功能,请查看这里的实现指南。谷歌分析api
除了谷歌分析外,还有: Mixpanel、 Heap、Intercom…
负责
作为结束语,值得一提的是,你需要对此负责,特别是在用户隐私方面。不要做一个蠕变。如果你在跟踪你的用户,告诉他们什么时候,为什么,以及你是怎么做的。除了运行一个道德的服务或业务,这将建立用户信任,在某些情况下,可以保护您免受不必要的法律行动。如果你的客户知道你在跟踪他们,他们会更愿意接受电子邮件,因为他们取消了他们的帐户。如果他们不知道他们正在被跟踪和收到一封电子邮件?准备一个潜在的怪物,并彻底解雇你的服务(包括个人和别人的要求)。
评论
有了历史数据点,你可以回头看,当你开始扩展的时候,远远超过了存储数据的成本(每天都变得更便宜)。
BigCo希望在数据收集和分析方面做得更好,但动作要慢一些……初创公司能够迅速实施并立即开始识别价值,所以为什么不早点开始呢?另一件事,除了你的数据库之外,没有绝对的事实。在Fileboard.com上,我们使用Woopra,Hubspot和谷歌分析,我做了很多比较。举个例子吧,我可以告诉你,有无真相。只信任你的数据库:-)
我不确定我是否会把它限定为“追踪”,但我喜欢在我的空闲通道发生时,将重要的事件报告给我。我写了一个小的通知器,在我的应用程序中重复使用。
slackNotify = function(payload) {
if (process.env.NODE_ENV === "production") {
HTTP.call("POST", "https://hooks.slack.com/servic...",
{data: payload },
function (error, result) {
if (error) {
console.log("HTTP Post to slack failed");
}
});
} else {
console.log("Slack Notify Simulation: ", payload);
}
};
Then you can call it like this:
slackNotify({
"channel": "#notifications",
"username": "webhookbot",
"text": "This is posted to #notifications and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"
})