Application Insights 使用分析

Web 或移动应用有哪些最热门的功能? 用户是否使用应用实现了其目标? 他们是否中途放弃应用,后来又回头使用了吗?

Application Insights 是用于监视应用程序性能和使用情况的强大工具。 它深入分析了用户与应用交互的方式,识别出需要改进的领域,并帮助你了解更改所带来的影响。 了解这些信息后,你便可针对下一开发周期做出数据驱动的决策。

本文涵盖以下几个方面:

  • 用户、会话和事件 - 跟踪和分析用户与应用程序、会话趋势和特定事件的交互,以便深入了解用户行为和应用性能。
  • 漏斗图 - 了解用户如何在你的应用程序中完成一系列步骤,以及他们可能在哪里退出或中断。
  • 用户流 - 直观显示用户路径,以识别最常见的路由,并确定用户参与度最高或可能遇到问题的区域。
  • 队列 - 按常见特征对用户或事件进行分组,以分析行为模式、功能使用情况以及随时间变化的影响。
  • 影响分析 - 分析应用程序性能指标(如加载时间)如何影响用户体验和行为,以帮助你确定改进的优先级。
  • HEART - 利用 HEART 框架来衡量和了解用户愉悦感、参与度、接受度、保留率和任务成功率。

从应用程序发送遥测数据

若要优化体验,请考虑将 Application Insights 集成到应用服务器代码和网页中。 此双重实现允许从应用程序的客户端和服务器组件收集遥测数据。

  1. 服务器代码:ASP.NETAzureJavaNode.js其他应用安装适当的模块。

    如果你不想安装服务器代码,请创建 Application Insights 资源

  2. 网页代码:使用 JavaScript SDK 从网页收集数据,请参阅 JavaScript SDK 入门

    注意

    对检测密钥引入的支持将于 2025 年 3 月 31 日结束。 检测密钥引入功能将会继续工作,但我们将不再为该功能提供更新或支持。 转换为连接字符串,以利用新功能

    若要了解更多用于监视网站的高级配置,请查看 JavaScript SDK 参考一文。

  3. 移动应用代码:使用 App Center SDK 从应用收集事件。 然后通过遵循此指南将这些事件的副本发送到 Application Insights 进行分析。

  4. 获取遥测数据:在调试模式下运行项目几分钟。 然后在 Application Insights 的“概述”窗格中查看结果。

    发布应用以监视应用性能,并查看用户使用该应用在执行哪些操作。

用户、会话和事件 - 从三个角度分析遥测数据

三个“使用情况”窗格使用相同的工具从三个视角对来自 Web 应用的遥测进行切片和切块。 通过对数据进行筛选和拆分,可以洞察不同页面和功能的相对使用情况。

  • “用户”工具:多少人使用了应用及其功能? 将使用浏览器 cookie 中存储的匿名 ID 对用户进行计数。 使用不同浏览器或计算机的单个用户会被计为多个用户。

  • “会话”工具:用户活动的多少会话包括了应用的特定页面和功能? 会话在用户处于不活动状态半小时后或者在连续使用 24 小时后进行重置。

  • “事件”工具:应用的特定页面和功能是以何频率使用的? 当浏览器加载了应用中的页面时会计入一次页面查看,前提是你已检测到此操作

    一个自定义事件表示应用中发生的一次事件。 通常是用户交互,例如按钮选择或任务完成。 在应用中插入代码以生成自定义事件或使用 Click Analytics 扩展。

注意

有关使用匿名 ID 和确保准确计数的替代方法的信息,请参阅经过身份验证的 ID 的文档。

单击“查看更多见解”将显示以下信息:

  • 应用程序性能:与用户对响应能力的看法相关的会话、事件和性能评估。
  • 属性:图表最多包含六个用户属性,例如浏览器版本、国家或地区和操作系统。
  • 了解用户:查看用户活动的时间线。

浏览用户人口和统计信息

查明人们何时使用 Web 应用,他们对哪些页面最感兴趣,用户在哪里以及他们使用什么浏览器和操作系统。 使用 Application Insights 分析业务和使用情况遥测。

显示“用户”选项卡和条形图的屏幕截图。

  • “用户”报告统计所选时间段内访问页面的唯一用户数目。 对于 Web 应用,将使用 Cookie 统计用户。 如果某个用户使用不同的浏览器或客户端计算机访问你的站点或者清除其 Cookie,这些活动会被统计多次。

  • 会话报告把访问站点的用户会话数制成表格。 会话表示用户启动的一段活动时段,并以超过半小时的不活动时段结束。

查询特定用户

通过在“用户”窗格的顶部调整查询选项来探究不同的用户组:

选项 说明
时间范围 选择一个时间范围。
显示 选择要分析的一组用户。
使用者 选择自定义事件、请求和页面视图。
事件 选择多个事件、请求和页面视图,以显示至少完成了一个选定选项的用户(不一定完成了所有选项)。
按 X 轴的值 选择如何按时间范围或按其他属性(如浏览器或城市)对数据进行分类。
拆分依据 选择对数据进行拆分或分段时要使用的属性。
添加筛选器 将查询限制到特定的用户、会话或事件(根据其属性,例如浏览器或城市)。

了解用户

“了解用户”部分显示与当前查询匹配的五个示例用户的相关信息。 探索个人和群体的行为可以了解人们是如何使用你的应用的。

用户保留分析

Application Insights 保留功能通过跟踪返回到应用的用户的频率和模式及其与特定功能的交互,从而提供对用户参与的宝贵见解。 通过此功能,你可以比较用户行为(例如赢或输游戏的用户之间的返回率差异),从而提供可操作的数据来增强用户体验并通知业务策略。

通过根据给定时间范围内的操作分析用户的队列,可以识别出哪些功能驱动重复使用。 此知识可帮助你:

  • 了解哪些特定的功能导致某些用户比其他用户回来得更频繁。
  • 确定产品中是否存在保留问题。
  • 基于实际用户数据形成假设,有助于你改进用户体验和业务策略。

“保留”工作簿的屏幕截图,其中显示了有关用户返回使用其应用的频率的信息。

可以使用顶部的保留控件来定义特定的事件和时间范围以计算保留率。 中间的图表根据指定的时间范围提供总体保留百分比的视觉表示形式。 底部的图表显示特定时间段内的各个保留。 这种详细程度可让你更细致地了解用户正在做什么,以及哪些因素可能会影响用户回头。

有关保留工作簿的详细信息,请参阅以下部分。

保留工作簿

若要在 Application Insights 中使用保留工作簿,请导航到“工作簿”窗格,选择顶部的“公共模板”,然后找到在“使用情况”类别下列出的“用户保留分析”工作簿。

显示了“公共模板”选项卡上的“工作簿库”的屏幕截图。

工作簿功能:

  • 默认情况下,留存情况显示执行了任意操作,然后在定义的一段时间后返回并执行了其他任意操作的所有用户。 你可以选择事件的不同组合,将关注范围缩小为仅关注特定用户活动。

  • 要为属性添加一个或多个筛选器,请选择“添加筛选器”。 例如,可以关注特定国家或地区中的用户。

  • 整体留存情况图表显示选定时间段内用户留存情况的摘要。

  • 网格显示保留的用户数。 每行都表示在所显示的时间段内执行了任意事件的一群用户。 行中的每个单元格显示了该用户群中有多少人在之后的某个时间段内至少回归了一次。 某些用户可能在多个时间段内都返回过。

  • 见解卡显示排名靠前的五个发起事件和排名靠前的五个返回事件。 此信息可让用户更好地了解其保留报告。

    显示了“保留工作簿”的屏幕截图,其中显示了数周后返回的用户的图表。

使用业务事件跟踪留存情况

你应衡量代表重要业务活动的事件,以获取最有用的保留分析。

有关详细信息和示例代码,请参阅以下部分。

跟踪用户与自定义事件的交互

要了解应用中的用户交互,请插入代码行以记录自定义事件。 这些事件会跟踪各种用户操作,例如按钮选择或重要的业务事件,例如购买或游戏胜利。

还可以使用单击分析自动收集插件来收集自定义事件。

提示

设计应用的每项功能时,请考虑如何衡量它在用户那里取得的成功。 决定需要记录哪些事件,并一开始就在应用中针对这些事件编写跟踪调用。

在某些情况下页面视图可呈现有用的事件,但一般情况下这些事件并不真实。 用户无需购买产品即可打开产品页面。

使用特定的业务事件可以绘制用户在站点中的进度图表。 可以了解用户对不同选项的偏好,以及他们在哪个位置放弃了应用或者遇到了问题。 了解这些信息后,可以针对开发积压工作的优先级做出明智的决策。

可以在应用的客户端记录事件:

appInsights.trackEvent({name: "incrementCount"});

或者,可以从服务器端记录事件:

var tc = new Microsoft.ApplicationInsights.TelemetryClient();
tc.TrackEvent("CreatedAccount", new Dictionary<string,string> {"AccountType":account.Type}, null);
...
tc.TrackEvent("AddedItemToCart", new Dictionary<string,string> {"Item":item.Name}, null);
...
tc.TrackEvent("CompletedPurchase");

可将属性值附加到这些事件,以便在门户检查事件时可以筛选或拆分事件。 此外,还将一组标准属性(例如匿名用户 ID)附加到每个事件,以便你跟踪单个用户的活动序列。

详细了解自定义事件属性

分解事件

在“用户”、“会话”和“事件”工具中,可按用户、事件名称和属性分解自定义事件。

显示按 AnalyticsItemsOperation 筛选并按 AppID 拆分的“事件”选项卡的屏幕截图。

每当处于任何使用体验时,请选择“打开最后一个运行的查询”图标,返回到基础查询。

Azure 门户中的 Application Insights 会话窗格的屏幕截图。突出显示的是“打开最后一个运行的查询”图标。

然后,可以修改基础查询以获取要查找的信息类型。

下面是有关页面视图的基础查询的示例。 继续操作并将其直接粘贴到查询编辑器中以进行测试。

// average pageView duration by name
let timeGrain=5m;
let dataset=pageViews
// additional filters can be applied here
| where timestamp > ago(1d)
| where client_Type == "Browser" ;
// calculate average pageView duration for all pageViews
dataset
| summarize avg(duration) by bin(timestamp, timeGrain)
| extend pageView='Overall'
// render result in a chart
| render timechart

通过 A/B 测试确定功能成功

如果不确定哪个功能变体更成功,请同时发布并允许不同的用户访问每个变体。 衡量每个变体的成效,然后转换到统一版本。

在此技术中,你将独特的属性值附加到应用的每个版本发送的所有遥测数据。 为此,可以在活动的 TelemetryContext 中定义属性。 这些默认属性包含在应用程序发送的每个遥测消息中。 它包括自定义消息和标准遥测。

在 Application Insights 门户中根据属性值筛选和拆分数据,以便比较不同的版本。

若要执行此步骤,请设置遥测初始化表达式

// Telemetry initializer class
public class MyTelemetryInitializer : ITelemetryInitializer
{
    // In this example, to differentiate versions, we use the value specified in the AssemblyInfo.cs
    // for ASP.NET apps, or in your project file (.csproj) for the ASP.NET Core apps. Make sure that
    // you set a different assembly version when you deploy your application for A/B testing.
    static readonly string _version = 
        System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
        
    public void Initialize(ITelemetry item)
    {
        item.Context.Component.Version = _version;
    }
}

对于 ASP.NET Core 应用程序,请将新的遥测初始化表达式添加到 Program.cs 类中的依赖关系注入服务集合:

using Microsoft.ApplicationInsights.Extensibility;

builder.Services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();

漏斗图 - 发现客户如何使用应用程序

了解客户体验对你的业务而言至关重要。 如果你的应用程序涉及多个阶段,那么需要知道客户是要完成整个进程,还是要在某个时间点结束进程。 Web 应用程序中通过一系列步骤完成的进度被称为“漏斗图”。 可使用 Application Insights 漏斗图深入了解你的用户,并监视分步转换率。

漏斗图功能:

  • 如果对应用进行采样,你会看到横幅。 选择横幅会打开上下文窗格,其中说明了如何关闭采样。
  • 选择一个步骤以在右侧查看更多详细信息。
  • 历史转换图显示过去 90 天内的兑换率。
  • 通过访问用户工具更好地了解用户。 可在每个步骤中使用筛选器。

创建漏斗图

先决条件

在创建漏斗图之前,需要决定想要回答的问题。 例如,你可能想要知道多少用户查看主页、查看客户配置文件和创建票证。

开始使用

创建漏斗图:

  1. 在“漏斗图”选项卡上选择“编辑”。

  2. 选择你的“第一步”。

    屏幕截图显示“漏斗”选项卡,并显示选择了“编辑”选项卡上的步骤。

  3. 若要对步骤应用筛选器,请选择“添加筛选器”。 选择第一步对应的项后,将显示此选项。

  4. 然后选择“第二步”,依此类推。

    注意

    漏斗图最多限制为六个步骤。

  5. 选择“视图”选项卡,以查看漏斗图结果。

    屏幕截图显示了漏斗图的“视图”选项卡,其中显示了第一步和第二步的结果。

  6. 要保存漏斗图以便下次查看,请选择顶部“保存”。 使用“打开”来打开保存的漏斗图。

用户流 - 分析用户导航模式

屏幕截图显示 Application Insights 用户流工具。

用户流工具会将用户在站点的页面和功能之间移动的方式可视化。 它非常适合解释以下问题,例如:

  • 用户如何从站点上的某个页面离开?
  • 用户在站点页面上选择了什么?
  • 网站中用户流失最多的地方在哪里?
  • 是否存在用户反复重复同一操作的位置?

用户流工具从你指定的初始自定义事件、异常、依赖项、页面视图或请求开始。 从这个初始事件开始,用户流显示了用户会话之前和之后发生的事件。 不同粗细的线显示用户遵循每条路径的次数。 特殊的“会话开始” 节点显示后续节点开始会话的位置。 “会话结束” 节点显示有多少用户在上一个节点之后没有发送页面视图或自定义事件,并突出显示用户可能离开站点的位置。

注意

Application Insights 资源必须包含页面视图或自定义事件才能使用用户流工具。 了解如何使用 Application Insights JavaScript SDK 将应用设置为自动收集页面访问次数

选择初始事件

屏幕截图显示如何为用户流选择初始事件。

若要开始使用用户流工具回答问题,请选择初始自定义事件、异常、依赖项、页面视图或请求来作为可视化效果的起点:

  1. 选择“用户之后做什么?”标题中的链接或选择“编辑”。
  2. 从“初始事件”下拉列表中选择自定义事件、异常、依赖项、页面视图或请求。
  3. 选择“创建图”。

可视化效果的“步骤 1”列显示用户在初始事件之后最常执行的操作。 这些项按从上到下、从最频繁到最不频繁的顺序排列。 “步骤 2”列和随后的列显示用户之后的操作。 可以通过该信息了解用户在你的站点中移动的所有方式。

默认情况下,用户流工具只会随机抽取站点过去 24 小时的页面视图和自定义事件。 可在“编辑”菜单上扩大时间范围并更改性能平衡以及随机抽样的准确度。

如果某些页面视图、自定义事件和异常与你无关,请选择要隐藏的节点上的“X”。 选择要隐藏的节点后,选择“创建图”。 若要查看已隐藏的所有节点,请选择“编辑”,然后查看“已排除事件”部分。

如果预期在可视化效果中看到的页面视图或自定义事件缺失,请执行以下操作:

  • 检查“编辑”菜单上的“已排除事件”部分。
  • 使用“其他” 节点上的加号按钮在可视化中包括不太频繁发生的事件。
  • 如果用户未频繁发送你预期的页面视图或自定义事件,请在“编辑”菜单上扩大可视化效果的时间范围。
  • 确保将预期的自定义事件、异常、依赖项、页面视图或请求设置为由站点源代码中的 Application Insights SDK 收集。

如果想要查看可视化效果中的更多步骤,请使用可视化效果上方的“前面的步骤”和“后续步骤”下拉列表。

用户访问页面或功能后会去哪里?会选择什么?

屏幕截图显示如何使用用户流了解用户进行选择的位置。

如果初始事件是页面视图,则可以通过可视化效果的第一列(步骤 1)快速了解用户在访问页面后紧接着执行了哪些操作。

在用户流可视化效果旁的窗口中打开你的站点。 将你对用户如何与页面进行交互的期望与“步骤 1”列中的事件列表进行比较。 通常,页面上对你的团队来说看似无关紧要的 UI 元素可能会是页面中最常用的。 这对于对网站进行设计改进而言可能是一个很好的起点。

如果初始事件是自定义事件,则第一列显示用户在执行该操作后所做的操作。 与页面视图一样,请考虑观察到的用户行为是否符合你团队的目标和期望。

例如,如果你选择的初始事件是“已将物品添加到购物车”,请查看可视化效果中紧随其后是否出现了“前往结帐”和“完成购买”。 如果用户行为与你的预期不同,请使用可视化来了解用户是如何被站点的当前设计所“困扰”的。

网站中用户流失最多的地方在哪里?

注意在可视化效果的列中显示在前面的“会话结束”节点,特别是在流的前期要这样做。 这种位置意味着许多用户可能会在遵循上述页面和 UI 交互路径之后从网站流失。

有时流失是意料之中的。 例如,当用户在电子商务站点上进行购买后,这是意料之中的。 但是,通常流失是站点存在设计问题、性能不佳或其他可以改善的问题的征兆。

请记住,“会话结束”节点仅基于此 Application Insights 资源收集的遥测。 如果 Application Insights 未收到某些用户交互的遥测,则表明在用户流工具表示会话结束后,用户可能仍在通过这些方式与站点进行交互。

是否存在用户反复重复同一操作的位置?

查找在可视化效果后续步骤中被许多用户重复的页面视图或自定义事件。 此活动通常意味着用户在站点上执行重复操作。 如果发现重复,请考虑更改网站设计或添加新功能以减少重复。 例如,如果发现用户对表格元素的每一行执行重复操作,则可添加批量编辑功能。

队列 - 分析一组特定的用户、会话、事件或操作

队列是具有某种共性的用户、会话、事件或操作集。 在 Application Insights 中,队列由分析查询定义。 如果你要反复分析特定的用户或事件集,队列可让你更灵活地准确表达所需的集。

队列与基本筛选器

可以采用类似于筛选器的方式使用队列。 但是,队列的定义是从自定义分析查询生成的,因此它们的自适应性和复杂性要高得多。 与筛选器不同,队列可以保存,供其他团队成员重复使用。

对于尝试了应用中新功能的所有用户,可以定义一个队列。 可将此队列保存在 Application Insights 资源中。 今后可以轻松分析这组保存的特定用户。

注意

创建队列后,可以通过“用户”、“会话”、“事件”和“用户流”工具访问队列。

示例:参与用户

团队将参与用户定义为在给定月份使用你的应用达到五次或五次以上的任何人。 本部分为这些参与用户定义一个队列。

  1. 选择“创建队列”。

  2. 选择“模板库”选项卡,查看各种队列的模板集合。

  3. 选择“参与用户 -- 按使用天数”。

    此队列有三个参数:

    • Activities:在此处选择要将哪些事件和页面查看计入用量。
    • Period:月份的定义。
    • UsedAtLeastCustom:用户需要在某个时段内使用某个对象多少次,才能将该用户算作参与用户。
  4. UsedAtLeastCustom 更改为 5 天以上。 将“时段”设置保留为默认值 28 天。

    现在,此队列代表在过去 28 天内 5 个独立的天数里有过任何自定义事件或页面查看的所有用户 ID。

  5. 选择“保存”。

    提示

    为队列命名,例如参与用户(5 天以上)”。 根据是否希望对此 Application Insights 资源拥有访问权限的其他人查看此队列,将此队列保存到“我的报告”或“共享报告”中。

  6. 选择“返回库”。

此队列有哪些作用?

打开“用户”工具。 在“显示”下拉框中,选择在“用户属于...”下创建的队列。

“显示”下拉列表的屏幕截图,其中显示了一个队列。

需要注意的要点:

  • 不能通过普通的筛选器创建此集。 日期逻辑更高级。
  • 可以使用“用户”工具中的正常筛选器进一步筛选此队列。 尽管该队列是基于 28 天期限定义的,但仍可以在“用户”工具中将时间范围调整为 30、60 或 90 天。

这些筛选器支持更复杂的问题,而通过查询生成器无法表达这样的问题。 例如,对于在过去 28 天参与的人员,他们在过去 60 天的行为如何?

示例:事件队列

还可以创建事件队列。 在本部分中,你要定义一个事件和页面查看的队列。 然后了解如何从其他工具使用它们。 此队列可以定义一组被团队视为活动用法的事件,或者定义一组与特定新功能相关的事件。

  1. 选择“创建队列”。
  2. 选择“模板库”选项卡,查看各种队列的模板集合。
  3. 选择“事件选取器”。
  4. 在“活动”下拉框中,选择想要添加到队列中的事件。
  5. 保存队列并为其命名。

示例:在其中修改查询的活动用户

前面两个队列是使用下拉框定义的。 你也可以使用 Analytics 查询来定义队列,以获得全面的灵活性。 让我们探讨如何为英国的用户创建队列。

  1. 打开“队列”工具,依次选择“模板库”选项卡、“空白用户队列”。

    显示队列模板库的屏幕截图。

    有三个部分:

    • Markdown 文本:可在其中为其他团队成员更详细地描述该队列。
    • 参数:可在其中创建自己的参数,例如“活动”,以及前面两个示例中的其他下拉框。
    • 查询:可在其中使用分析查询定义队列。

    在查询部分编写一个分析查询。 该查询选择描述所要定义的队列的行集。 “队列”工具将在查询中隐式添加一个 | summarize by user_Id 子句。 此数据在表中查询下显示为预览,使你能够确保查询会返回结果。

    注意

    如果看不到查询,请尝试调整该部分的大小,增加其高度以揭示查询。

  2. 将以下文本复制并粘贴到查询编辑器中:

    union customEvents, pageViews
    | where client_CountryOrRegion == "United Kingdom"
    
  3. 选择“运行查询”。 如果表中未显示用户 ID,请更改为应用程序用户所在的国家/地区。

  4. 保存并命名队列。

影响分析 - 发现不同的属性如何影响转换率

影响分析可以发现页面视图的任何维度、自定义事件或请求对不同页面视图或自定义事件造成的影响。

举例来说,假如团队中有人在争论站点某个部件的缓慢运行是否导致用户退出站点,则 Impact 就是解决争论的终极工具。 用户能够容忍某种程度的缓慢,但 Impact 可以提供见解,让你知道如何最好地对优化措施和性能做出平衡,以将用户转换率最大化。

分析性能只是 Impact 的一部分功能。 Impact 支持自定义事件和维度,因此你可以轻松地解答用户浏览器的选择与不同转换率之间的相关性之类的问题。

注意

Application Insights 资源必须包含页面视图或自定义事件才能使用 Impact 分析工作簿。 了解如何使用 Application Insights JavaScript SDK 将应用设置为自动收集页面访问次数。 另外,由于分析的是相关性,因此样本大小非常重要。

Impact 分析工作簿

若要使用影响分析工作簿,请在 Application Insights 资源中转到“使用情况”>“更多”,然后选择“用户影响分析工作簿”。 或者在“工作簿”选项卡上选择“公共模板”。 然后在“使用情况”下,选择“用户 Impact 分析”。

屏幕截图显示公共模板上的“工作簿库”。

使用工作簿

屏幕截图中显示了在何处选择初始页面视图、自定义事件或请求。

  1. 从“已选事件”下拉列表中选择一个事件。
  2. 从“分析依据”下拉列表中选择一个指标。
  3. 从“影响事件”下拉列表中选择一个事件。
  4. 若要添加筛选器,请使用“添加已选事件筛选器”选项卡或“添加影响事件筛选器”选项卡。

页面加载时间是否影响页面上的人员转换数量?

若要开始使用 Impact 工作簿解答问题,请选择初始页面视图、自定义事件或请求。

  1. 从“已选事件”下拉列表中选择一个事件。

  2. 保留“分析依据”下拉列表中的默认选择“持续时间”。 (在此上下文中,“持续时间”是“页面加载时间”的别名。)

  3. 从“影响事件”下拉列表中,选择一个自定义事件。 此事件应该对应于在步骤 1 中选择的页面视图的 UI 元素。

    屏幕截图显示了一个示例,该示例将所选事件作为按持续时间分析的主页。

如果我以自定义方式跟踪页面访问次数或加载时间,会出现什么情况?

Impact 支持标准和自定义的属性与度量值。 可以任意使用这两种方式。 如果不使用持续时间,可以使用基于主要和次要事件的筛选器来获取更具体的结果。

来自不同国家或地区的用户是否以不同的比率转换?

  1. 从“已选事件”下拉列表中选择一个事件。

  2. 从“分析依据”下拉列表中选择“国家或地区”。

  3. 从“影响事件”下拉列表中,选择与步骤 1 中选择的页面视图中的 UI 元素对应的自定义事件。

    屏幕截图显示了一个示例,其中的已选事件为按国家和地区分析的 GET。

Impact 分析工作簿如何计算这些转换率?

在幕后,Impact 分析工作簿依赖于皮尔逊相关系数。 结果在 -1 和 1 之间进行计算。 系数 -1 表示负线性相关,1 表示正线性相关。

简单而言,Impact 分析工作原理如下所示:

  • 让 A = 主页视图、自定义事件或在“已选事件”下拉列表中选择的请求。
  • 让 B = 在“影响以下对象的使用”下拉列表中选择的辅助页面视图或自定义事件。

Impact 会查找选定时间范围内所有用户会话的样本。 对于每个会话,它会查找出现的每个 A

然后,根据以下两个条件之一,将会话分解成两种不同的子会话:

  • 转换后的子会话包括以 B 事件结尾的会话,并包含 B 前面发生的所有 A 事件。
  • 如果所有 A 都是在没有终端 B 的情况下发生的,则会发生未转换的子会话。

Impact 的最终计算方式取决于我们是按指标还是按维度进行分析。 使用指标时,将求子会话中所有 A 的平均值。 使用维度时,每个 A 的值为 B 的赋值贡献 1/N,其中 N 是子会话中 A 的数目。

HEART - 客户体验的五个维度

本文介绍如何在 Azure Monitor 上启用和使用 Heart 工作簿。 HEART 工作簿基于最初由 Google 推出的 HEART 度量框架。 几个 Microsoft 内部团队使用 HEART 交付更好的软件。

概述

HEART 是一个首字母缩写词,代表愉悦感 (Happiness)、参与度 (Engagement)、接受度 (Adoption)、留存率 (Retention) 和任务成功率 (Task Success)。 HEART 通过关注五个客户体验维度来帮助产品团队交付更好的软件:

  • 愉悦感:用户态度的度量值
  • 参与度:活动用户参与级别
  • 接受度:目标受众渗透
  • 留存率:用户回头率
  • 任务成功:提高工作效率

这些维度是独立测量的,但它们彼此交互。

显示 HEART 各维度之间的漏斗关系的图像。漏斗路径为“接受度”到“参与度”到“留存率”到“愉悦感”。“任务成功率”是此漏斗图的驱动因素

  • 接受度、参与度和留存率形成了一个用户活动漏斗。 采用该工具的用户中只有一部分才会回来使用它。

  • 任务成功率是推动用户沿漏斗图向下发展,并促使他们从接受度转到留存率的驱动因素。

  • 愉悦感是其他维度的结果,而不是独立度量。 已经在漏斗中取得进展并表现出更高水平的活力的用户理想情况下会更愉悦。

入门

先决条件

  • Azure 订阅:创建 Azure 试用版订阅

  • Application Insights 资源创建 Application Insights 资源

  • 点击分析:设置点击分析自动收集插件

  • 特定属性:检测以下属性以计算 HEART 指标。

    Attribute 说明
    customEvents session_Id 唯一会话标识符
    customEvents appName 唯一 Application Insights 应用标识符
    customEvents itemType customEvents 记录的类别
    customEvents timestamp 事件的日期/时间
    customEvents operation_Id 关联遥测事件
    customEvents user_Id 唯一用户标识符
    customEvents ¹ parentId 功能的名称
    customEvents ¹ pageName 页面的名称
    customEvents ¹ actionType 单击分析记录的类别
    pageViews user_AuthenticatedId 已经过身份验证的用户的唯一标识符
    pageViews session_Id 唯一会话标识符
    pageViews appName 唯一 Application Insights 应用标识符
    pageViews timestamp 事件的日期/时间
    pageViews operation_Id 关联遥测事件
    pageViews user_Id 唯一用户标识符
  • 如果正在设置经过身份验证的用户上下文,请检测以下属性:

Attribute 说明
customEvents user_AuthenticatedId 已经过身份验证的用户的唯一标识符

脚注

¹:要发出这些属性,请通过 npm 使用点击分析自动收集插件

提示

若要了解如何有效地使用单击分析插件,请参阅 Application Insights JavaScript SDK 的功能扩展(单击分析)

打开工作簿

可以在“公共模板”下的库中找到该工作簿。 该工作簿显示在使用单击分析插件的产品分析部分中。

显示 Azure Application Insights 中的 HEART 工作簿位置的屏幕截图。

有七个工作簿。

显示 Azure Application Insights“工作簿”部分中公共模板下的七个 HEART 工作簿名称的屏幕截图。

只需与主工作簿 HEART 分析 - 所有部分进行交互。 此工作簿以标签的形式包含其他六个工作簿。 还可以通过库访问与每个选项卡相关的单个工作簿。

确认有数据流

若要验证数据是否按预期流动以准确统计指标,请选择“开发要求”选项卡。

重要

除非设置了经过身份验证的用户上下文,否则必须从 ConversionScope 下拉列表中选择“匿名用户”才能查看遥测数据。

显示“HEART 分析 - 所有部分”工作簿的“开发要求”选项卡的屏幕截图。

如果数据流动不如预期,此选项卡将显示有问题的特定属性。

显示 HEART 工作簿“开发要求”选项卡中的数据差异的屏幕截图。

工作簿结构

该工作簿显示 HEART 维度的指标趋势,分为七个选项卡。 每个选项卡都包含维度说明、每个维度中包含的指标以及如何使用它们。

选项卡包括:

  • 摘要:汇总使用情况漏斗指标,提供访问、交互和重复使用的高级视图。
  • 接受度:有助于了解目标受众的渗透率、获取速度和总用户群。
  • 参与度:显示使用频率、深度和广度。
  • 留存率:显示重复使用情况。
  • 任务成功率:让你了解用户流及其时间分布。
  • 愉悦感:我们建议使用调查工具以五分制衡量客户满意度分数 (CSAT)。 在此选项卡中,我们通过使用情况和性能指标提供了愉悦感可能性。
  • 特征指标:帮助在特征粒度上理解 HEART 指标。

警告

HEART 工作簿当前是基于日志构建的,并且实际上是基于日志的指标。 这些指标的准确性受到采样和筛选的负面影响。

如何定义和度量 HEART 维度

高兴

愉悦感是用户报告的维度,可度量用户对向他们提供的产品的感受。

衡量愉悦感的常用方法是向用户询问 CSAT 问题,例如:你对该产品的满意度如何? 用户的回答(三分或五分制,例如,否、可能)将进行汇总,创建一个 1 到 5 分范围内的产品级分数。 由于用户发起的反馈往往带有负面偏见,因此 HEART 从按预定义时间间隔显示给用户的调查中跟踪愉悦感。

常见愉悦感指标包括诸如“平均星级评分”和“客户满意度分数”这类值 。 使用自定义源中描述的自定义引入方法之一将这些值发送到 Azure Monitor。

参与

参与度是衡量用户活动的指标。 具体而言,用户操作是有意为之,例如单击。 活动使用量可以划分为三个子维度:

  • 活动频率:衡量用户与产品交互的频率。 例如,用户通常每天、每周或每月进行交互。

  • 活动广度:衡量用户在特定时间段内交互的特性数量。 例如,用户在 2021 年 6 月内与总共五种功能进行了交互。

  • 活动深度:衡量用户每次启动产品时交互的特性数量。 例如,用户在每次启动时都与两种功能进行了交互。

度量参与度可能因所使用产品的类型而异。 例如,像 Microsoft Teams 这样的产品预计会有很高的日常使用率,使其成为一个重要的跟踪指标。但是对于像工资门户这样的产品,按月或按周进行衡量可能会更有意义。

重要

执行有意图操作(如单击按钮或键入输入)的用户将计为活动用户。 因此,“参与度”指标要求在应用程序中实现适用于 Application Insights 的点击分析插件

接受度

通过接受度,你可以了解相关用户之间的渗透、你获得的作为用户群的用户,以及你获得他们的方式。 接受度指标有助于衡量:

  • 新发布的产品。
  • 刚更新的产品。
  • 市场营销活动。

保留

保留用户是在指定报告期间及其上一个报告期间处于活动状态的用户。 留存率通常使用以下指标衡量。

指标 定义 已解答的问题
保留用户 上一周期也处于活跃状态的活跃用户数 有多少用户仍在使用产品?
保留 上一周期活跃用户在本周期仍然活跃的比例 有多少百分比的用户仍然参与产品?

重要

由于活动用户必须至少有一个带有 actionType 的遥测事件,因此留存指标需要在应用程序中实现适用于 Application Insights 的点击分析插件

任务成功率

任务成功率跟踪用户是否可以使用产品的功能高效且有效地完成任务。 许多产品包括旨在跟踪用户完成任务的结构。 示例包括:

  • 将商品添加到购物车,然后完成购买。
  • 搜索关键字,然后选择结果。
  • 启动新帐户,然后完成帐户注册。

成功的任务满足三个要求:

  • 预期任务流:特性的预期任务流由用户完成并与预期任务流一致。
  • 高效能:该特性的预期功能在合理的时间内完成。
  • 高可靠性:该特性的预期功能顺利完成。

如果不满足前述任何要求,则认为任务不成功。

重要

任务成功率指标要求在应用程序中实现适用于 Application Insights 的点击分析插件

使用以下参数设置自定义任务。

参数 说明
第一步 启动任务的功能。 在购物车/购买示例中,第一步是将商品添加到购物车
期望任务持续时间 将已完成任务视为成功的时间范围。 超过此限制完成的任何任务都被视为失败。 并非所有任务都有时间限制。 对于此类任务,请选择“无时间预期”。
最后一步 完成任务的功能。 在购物车/购买示例中,从购物车购买商品是最后一步。

常见问题解答

初始事件是表示事件首次出现在会话中,还是表示不管哪一次出现在会话中?

可视化上的初始事件仅表示用户在会话期间首次发送该页面视图或自定义事件。 如果用户可以在会话中多次发送初始事件,则“步骤 1”列仅显示用户在初始事件的第一个实例(而不是所有实例)之后的行为。

我的可视化效果中的某些节点的级别过高。 如何获得更详细的节点?

使用“编辑”菜单上的“拆分依据”选项:

  1. 在“事件”菜单上选择要细分的事件。

  2. 在“维度”菜单上选择一个维度。 例如,如果已有一个名为“已单击按钮”的事件,请尝试使用一个名为“按钮名称”的自定义属性。

我定义了某些国家/地区的用户的队列。 当我将“用户”工具中的此队列与设置国家/地区筛选器进行比较时,为什么看到了不同的结果?

队列与筛选器有所不同。 假设你为英国的用户创建了一个队列(类似于上述示例中的定义),并将结果与设置筛选器 Country or region = United Kingdom 进行比较:

  • 队列版本将显示在当前时间范围内从英国发送了一个或多个事件的用户的所有事件。 如果按国家或地区拆分,可能会看到许多国家和地区。

  • 筛选器版本只显示来自英国的事件。 如果按国家或地区拆分,你只会看到“英国”。

如何按不同粒度(每日、每月或每周)查看数据?

可以选择“日期粒度”筛选器来更改粒度。 筛选器在所有维度选项卡中都可用。

显示更改日期粒度为每日、每月或每周的筛选器的屏幕截图。

如何从我的应用程序中访问 HEART 工作簿上不可用的见解?

如果视觉对象无法回答你的所有问题,则可以对作为 HEART 工作簿的源的数据进行深入发掘。 若要执行此任务,请在“监视”部分下,选择“日志”,然后查询 customEvents 表。 某些点击分析的属性包含在 customDimensions 字段中。 此处显示了一个查询示例。

显示 Application Insights 中“监视”下的日志部分的屏幕截图。还显示了日志部分中一个用于检索应用程序数据的示例查询。

若要详细了解 Azure Monitor 中的日志,请参阅 Azure Monitor 日志概述

是否可以在工作簿中编辑视觉对象?

是。 在选择工作簿的公共模板时,请执行以下操作:

  1. 选择“编辑”并进行更改。

    显示工作簿模板左上角的“编辑”按钮的屏幕截图。

  2. 进行更改后,选择“完成编辑”,然后选择“保存”图标。

    显示工作簿模板顶部的“保存”图标的屏幕截图,该图标在进行编辑后变为可用状态。

  3. 若要查看保存的工作簿,请在“监视”下转到“工作簿”部分,然后选择“工作簿”选项卡。此时会显示自定义工作簿的副本。 可以在此副本中进行所需的任何进一步更改。

    显示“公共模板”选项卡旁的“工作簿”选项卡的屏幕截图,其中有已编辑的工作簿副本。

有关编辑工作簿模板的详细信息,请参阅 Azure 工作簿模板

后续步骤