搜索
清除搜索查询
关闭搜索框
Google 应用
主菜单

自定义维度和指标

将非标准数据纳入报告中。

自定义维度和自定义指标类似于您 Analytics(分析)帐户中的默认维度和指标,唯一的区别在于前者由您自己创建。您可以使用它们收集和分析 Analytics(分析)无法自动跟踪的数据。

本文包含的主题:

概览

利用自定义维度和指标,您可以将 Analytics(分析)数据与 CRM 数据等非 Analytics(分析)数据整合起来。例如:

  • 如果您在 CRM 系统中存储了已登录用户的性别数据,就可以将这些信息与您的 Analytics(分析)数据整合,以了解不同性别用户的网页浏览量

  • 如果您是游戏开发者,“关卡完成度”或“最高得分”等指标就可能比屏幕浏览量等预定义的指标更贴合您的需求。通过使用自定义指标来跟踪这些数据,您可以生成灵活且一目了然的自定义报告,以跟踪这些对您而言最为重要的指标。

自定义维度可以在自定义报告中显示为主要维度。您也可以在标准报告中将它们用作细分和次级维度。

前提条件

自定义维度和指标仅适用于已启用 Universal Analytics 或至少包含一个应用报告数据视图的媒体资源。适用于 Android 和 iOS 设备的 Analytics(分析)SDK v2.x 或更高版本、analytics.js 以及 Measurement Protocol 均支持自定义维度和指标。

您需要在 Analytics(分析)帐户和跟踪代码中对自定义维度及指标进行额外的设置。完成设置的两个步骤之后,您就可以在报告中使用自定义维度和指标。

限制和注意事项

每个媒体资源中的不同自定义维度和自定义指标分别可使用 20 种指数。专业版帐户的自定义维度和自定义指标则分别可使用 200 种指数。

您无法删除自定义维度,但可以停用它们。您应该避免重复使用自定义维度。因为修改自定义维度的名称、范围和值后,旧值和新值都可能与旧的维度名称或新的维度名称配对。这会导致报告中的数据合并在一起,因而无法通过过滤条件准确划分。

自定义维度和指标的生命周期

自定义维度和指标的生命周期分为以下四个阶段:

  • 配置 – 您对自定义维度和指标进行定义并为其指定索引、名称和范围等其他属性。
  • 数据收集 – 您将自定义维度和指标值从您的实现实例发送到 Analytics(分析)。
  • 数据处理 – 系统根据您的自定义维度和指标的定义和所有报告数据视图过滤条件来处理您的数据。
  • 报告 – 您在 Analytics(分析)界面中使用自定义维度和指标生成新报告。

配置

在向 Analytics(分析)发送自定义维度和指标值之前,必须先在 Analytics(分析)媒体资源中对其进行定义。每个 Analytics(分析)媒体资源都提供 20 个自定义维度索引和 20 个自定义指标索引。

在对自定义维度或指标进行定义时,您可以为特定索引指定名称和其他配置值。自定义维度有以下配置值:

  • 名称 - 自定义维度的名称,将会显示在报告中。
  • 范围 - 指定自定义维度或指标将应用于哪些数据。 详细了解“范围”。
  • 状态 - 自定义维度值或指标值是否会得到处理。无效自定义维度仍可能显示在报告中,但它们的值将不会得到处理。

自定义指标有以下配置值:

  • 名称 - 自定义指标的名称,将会显示在报告中。
  • 类型 – 决定自定义指标值在报告中的显示方式。
  • 最小值/最大值 – 将得到处理并在您的报告中显示的最小值和最大值。
  • 状态 – 自定义指标值是否会得到处理。无效自定义指标仍可能显示在报告中,但它们的值将不会得到处理。

您可以在 Analytics(分析)界面中对自定义维度和指标进行定义。

对自定义维度或指标进行定义之后,请尽可能不要修改其名称或范围。请参阅实现注意事项,了解修改这些值对报告会有何影响。

数据收集

自定义维度和指标值会在数据收集过程中以索引和值参数对的形式发送到 Analytics(分析)。索引参数对应于自定义维度或指标的索引(在配置阶段定义)。

与其他类型的数据不同,自定义维度和指标会作为其他匹配(如网页浏览、事件或电子商务交易)的附加参数发送到 Analytics(分析)。因此,您需要在跟踪调用发出之前先行设置自定义维度或指标值,然后相应的值才能发送到 Analytics(分析)。

例如,要设置自定义维度值,您的代码应如下所示:

ga('create', 'UA-XXXX-Y', 'auto');

// 针对索引 1 设置自定义维度值。
ga('set', 'dimension1', 'Level 1');

// 将自定义维度值与网页浏览匹配一起发送。
ga('send', 'pageview');

自定义指标类型

类型是“整数”或“时间”的自定义指标应当作为整数来发送,而类型是“货币”的自定义指标则可作为与本地货币对应的固定小数值发送。

数据处理

在处理自定义维度数据的过程中,相应维度的范围决定了某个自定义维度值将应用于哪些匹配,而数据视图过滤器则将决定哪些匹配及其相关的值会最终纳入到报告中。

范围和优先级

范围决定了哪些匹配将与某个自定义维度值相关联。范围分为四个等级:产品匹配会话用户

  • 产品 - 值将应用于设置此值的产品(仅限于增强型电子商务)。
  • 匹配 - 值将应用于设置此值的单次匹配。
  • 会话 - 值将应用于单次会话中的所有匹配。
  • 用户 - 值将应用于当前及未来会话中的所有匹配,直到其值改变或自定义维度被设为无效。
产品级范围

当自定义维度的范围是产品级时,其值将仅应用于设置值的那个产品。由于单次匹配中可发送多个产品,因此单次匹配中也可发送多个范围是产品级的自定义维度。

匹配级范围

当自定义维度的范围是匹配级时,其值将仅应用于设置值的那次匹配。如下面的图 A图 B图 C 所示:

图 A:用户发送了两个匹配(H1,H2)。
H2 自定义维度 1 的值为 A。此值仅可应用于 H2。


图 B:用户发送了第三个匹配 (H3)。
H3 不具备自定义维度值。


图 C:用户发送了第四个匹配 (H4)。
H4 自定义维度 1 的值为 A。此值仅可应用于 H4。


会话级范围

如果在一个会话中针对同一个索引设置了两个范围是会话级的值,则后一个值会具有更高的优先级,并将应用于此次会话中的所有匹配。如下面的图 D 所示,最后一个值覆盖了之前为同一索引设置的所有值:

图 A:用户发送了一个匹配 (H1),并且未对其设置自定义维度值。


图 B:在同一会话中,用户发送了第二个匹配 (H2),并将其自定义维度 1 值设为 A。由于自定义维度 1 的范围为会话级,因此值 A 也将应用于 H1。


图 C:用户发送了第三个匹配 (H3)。
虽然所发送的 H3 不具备自定义维度 1 值,但由于自定义维度 1 的范围为会话级,因此值 A 将自动应用于 H3。


图 D:用户发送了第四个匹配 (H4),并将其自定义维度 1 值设为新的值 B。由于自定义维度 1 的范围为会话级,因此值 B 将应用于该会话中的所有匹配,并覆盖此前匹配中的值 A。


用户级范围

最后,如果在同一个会话中设置了两个范围是用户级的自定义维度值,则后一个值在此会话内会具有更高的优先级,并将应用于该用户将来的所有会话。

如下面的图 B 所示,自定义维度值 A 会应用于会话 2 中的所有匹配,就像会话级自定义维度一样。但在图 C 中,与会话级范围不同,自定义维度值 A 会继续应用于会话 3 中的所有匹配,这是因为自定义维度 1 的范围是用户级:

图 A:用户的某个会话中有三个匹配(H1,H2,H3)。此会话未设置任何自定义维度值。


图 B:同一用户返回并开展了另一个会话,其中也包含三个匹配。用户将 H3 的自定义维度 1 值设为 A。然后,自定义维度 1 值会应用于会话中的所有匹配。


图 C:用户返回并开展了第三个会话,其中同样包含三个匹配。由于自定义维度 1 的范围为用户级别,因此值 A 将应用于会话 3 中的所有匹配。

过滤器

数据视图过滤器能以多种方式影响自定义维度和指标。

无论其范围是怎样,每个自定义维度和指标值都与某次匹配相关联,并与之一起发送到 Analytics(分析)。如果该匹配被某个数据视图过滤器滤除,则相应的自定义维度或指标也可能会被滤除,具体取决于其范围。

  1. 匹配级范围:如果关联的匹配被滤除,则范围是匹配级的自定义维度以及自定义指标也将被滤除。
  2. 会话级或用户级范围:即使关联的匹配被滤除,范围是会话级或用户级的自定义维度也不会被滤除。其值仍将应用于当前会话中的所有匹配,如果其范围是用户级,则还将应用于未来会话中的所有匹配。

自定义维度还可用于构建数据视图过滤器。这会导致系统根据自定义维度的范围来过滤匹配。例如,根据用户级自定义维度值进行过滤,将会过滤出与该值关联的所有用户的当前和未来会话。

报告

在数据流程的收集、配置和其他处理阶段结束之后,您就可以通过用户报告界面查看自定义维度和指标。

自定义维度和指标将显示在自定义报告中,并可用于高级细分。自定义维度还可用作标准报告中的次级维度。

示例

下面的示例说明了一位游戏开发者如何使用自定义维度和指标来了解玩家行为。

一位游戏开发者最近发布了一款新游戏。

其现有的 Analytics(分析)实现方案会在用户玩某一关时跟踪一次屏幕浏览。因此,该开发者已经知道每个关卡的挑战次数。现在,他还想知道以下这些更深入的问题的答案:

  1. 低难度关卡的挑战次数相比中等难度和高难度关卡如何?
  2. 在 3 天试玩期间,每天挑战的关卡数量各是多少?
  3. 试玩用户和付费用户在挑战关卡次数方面的对比情况如何?

要解答这些问题,可使用自定义维度来新建匹配、会话和用户细分。

此外,该开发者还在销售一些额外的功能(如能力提升道具)来增强用户体验。该开发者已经在使用类别和衍生品字段,但还希望通过另一个字段来衡量玩家购买的能力提升道具的作用。这样一来,该开发者就可以确定某些能力提升道具的作用是否比其他作用更受欢迎。

匹配级范围

让我们看看该游戏开发者如何使用匹配级自定义维度来了解不同难度级别(低、中、高)的关卡的挑战次数对比情况。

该开发者已经在使用屏幕浏览量来跟踪每个关卡的挑战次数。现在他希望了解哪种关卡的挑战次数最多。

其报告将如下所示:

难度屏幕浏览量
 
 
 

在使用自定义维度之前,该开发者可以按关卡来查看屏幕浏览量数据,但无法按难度来划分这些数据。

通过使用匹配级自定义维度,相应难度值可以与每次屏幕浏览相关联,从而让报告可以直观呈现被挑战次数最多的难度。

为何采用匹配级范围?

用户在每次会话中可能会挑战多个关卡。使用匹配级范围意味着难度值只会与一起发送到系统的那次屏幕浏览相关联。这确保了每次关卡的屏幕浏览都可与其对应的具体难度值相关联。

配置

实现自定义维度的第一步是在 Analytics(分析)“管理”部分的媒体资源设置中对其进行定义。在此示例中,其自定义维度的定义将如下所示:

索引1
名称难度
范围匹配
状态

数据收集

在游戏中,该开发者已经在使用屏幕浏览量来跟踪每个关卡挑战情况。要将每个关卡与相应的难度值相关联,开发者必须在发出对屏幕浏览的跟踪调用之前设置自定义维度值。

其实现方式如下所示:

ga('create', 'UA-XXXX-Y', 'auto');

// 针对索引 1 设置自定义维度值。
ga('set', 'dimension1', 'easy');

// 将自定义维度值与网页浏览匹配一起发送。
ga('send', 'pageview', '/level_1/');

在此例中,自定义维度值的设置时间刚好在对关卡屏幕浏览进行跟踪之前。这就将难度值与此次屏幕浏览关联了起来,进而让报告可以按难度值来对屏幕浏览匹配进行划分。

数据处理

在系统收集了匹配数据并将其发送到 Analytics(分析)之后,这些数据将会得到处理,且自定义维度值也将根据其范围应用于这些匹配。

例如,有一个玩家在一个会话中挑战了 6 个关卡,针对其收集的数据将如下所示:

userId = 5555
Session 1:
H1:screen_name=/level_1/ cd1_value=easy
H2:screen_name=/level_2/ cd1_value=medium
H3:screen_name=/level_3/ cd1_value=hard
H4:screen_name=/level_4/ cd1_value=easy
H5:screen_name=/level_5/ cd1_value=medium
H6:screen_name=/level_6/ cd1_value=medium

请注意,使用匹配级范围可确保每个难度值只与一起发送到系统的那次屏幕浏览相关联。

报告

在数据处理完成后,由于每次屏幕浏览都与相应的难度值相关联,因此该开发者可以使用屏幕名称和难度作为维度、屏幕浏览量作为指标来生成报告:

屏幕名称难度屏幕浏览量
/level_1/1
/level_2/1
/level_3/1
/level_4/1
/level_5/1
/level_6/1

开发者可以使用“难度”作为主要维度来划分屏幕浏览量并生成自定义报告,以了解不同难度的关卡的挑战次数。

难度屏幕浏览量
2
3
1

在此报告中,难度中等的关卡的挑战次数最多。得益于使用匹配级自定义维度来划分屏幕浏览量,该开发者才得到了这一分析结果。

会话级范围

现在让我们来看看该游戏开发者如何使用会话级自定义维度来了解 3 天试玩期间每天的关卡挑战次数各是多少。

该开发者已经通过跟踪各个关卡的屏幕浏览量,了解了每个关卡的挑战次数。现在,他想知道每天的关卡挑战次数各是多少。

该开发者想要生成的报告如下所示:

试玩天数屏幕浏览量
第1天 
第2天 
第 3 天 

通过使用会话级自定义维度,该开发者可以按试玩天数来划分屏幕浏览量,以此了解用户在试玩期间的关卡挑战次数随时间变化的情况。

为何采用会话级范围?

您可以使用会话级范围来有效地将各个会话及其中的所有匹配划归到同一个“Day of Trial”值下面。

虽然也可通过匹配级范围来实现这一目标,但会话级范围所需的额外代码量最少,可让您方便地设置“试玩天数”值。

配置

该开发者在 Analytics(分析)界面的媒体资源设置部分中定义了“试玩天数”自定义维度,采用的值分别如下:

索引2
名称试玩天数
范围会话
状态

数据收集

在游戏中,该开发者已经在使用屏幕浏览量来跟踪每个关卡挑战情况。要将天数值与某次会话中的所有屏幕浏览相关联,只需在每次会话中设置一次该自定义维度值。

该开发者可以在用户一开始启动游戏时设置自定义维度:

ga('create', 'UA-XXXX-Y', 'auto');

// 针对索引 2 设置自定义维度值。
var day = getDayOfTrial();
ga('set', 'dimension2', day );

// 将自定义维度值与网页浏览匹配一起发送。
ga('send', 'pageview', '/level_1/');

请注意,该开发者可以在此次会话期间的任何时候设置会话级自定义维度。但在此示例中,在会话开始时确定试玩天数并相应地设置值会比较方便。

数据处理

在系统收集了匹配数据并将其发送到 Analytics(分析)之后,这些数据将会得到处理,且自定义维度值也将根据其范围应用于这些匹配。

例如,有一个玩家在第一天玩了 2 次游戏,在第二天玩了 1 次,在第三天玩了 1 次,针对其收集的数据将如下所示:

userId = 5555
Session 1:
H1:screen_name=/level_1/  cd2_value=1
H2:screen_name=/level_2/
H3:screen_name=/level_2/

Session 2:
H4:screen_name=/level_3/  cd2_value=1
H5:screen_name=/level_4/
H6:screen_name=/level_4/

Session 3:
H1:screen_name=/level_1/  cd2_value=2
H2:screen_name=/level_2/
H3:screen_name=/level_3/

Session 4:
H1:screen_name=/level_3/  cd2_value=3

请注意,自定义维度值只与每次会话中的一次屏幕浏览一起发送。

会话级范围可确保“试玩天数”值与当次会话的所有匹配相关联,而不仅仅是与值一起发送的那次匹配相关联。

报告

数据处理完成后,会话级自定义维度值会与当次会话中收到的所有屏幕浏览相关联。该开发者现在可以使用“试玩天数”和屏幕名称作为维度、屏幕浏览量作为指标来生成报告:

试玩天数屏幕名称屏幕浏览量
1/level_1/1
1/level_2/2
1/level_3/1
1/level_4/2
2/level_1/1
2/level_2/1
2/level_3/1
3/level_3/1

最后,要按天来划分屏幕浏览量并了解试玩期间玩家每天挑战关卡的次数,该开发者可以使用“试玩天数”作为主要维度来生成自定义报告:

试玩天数屏幕浏览量
16
23
31

数据显示,玩家在第一天挑战的关卡数最多,而第二天和第三天则显著减少。得益于使用会话级自定义维度来将多个会话及其中的匹配划归到同一个值下面,该开发者才得到了这一分析结果。

用户级范围

最后让我们来看看该游戏开发者如何使用用户级自定义维度来了解付费用户和试玩用户在关卡挑战次数方面的差别。

在前面的示例中,该开发者已经使用屏幕浏览量来跟踪每个关卡的挑战次数,但他现在想要按免费用户和付费用户来划分屏幕浏览量。

该开发者想要获得的报告如下所示:

玩家类型屏幕浏览量
免费 
付费 

通过使用用户级自定义维度,该开发者可以将某位用户在当前会话和未来会话中的所有屏幕浏览量关联到一个“玩家类型”值。

为何采用用户级范围?

用户级范围可以让您方便地将某位用户的所有会话及匹配划归到一个值下面。这非常适合那些针对某位用户不常改变的值,如此示例中的“玩家类型”。

请注意,虽然也可通过匹配级或会话级范围来实现这一目标,但用户级范围所需的代码量最少,实现方法也最为方便。

配置

该开发者在“管理”部分中定义了“玩家类型”自定义维度,采用的值分别如下:

索引3
名称玩家类型
范围用户
状态

数据收集

和前面的示例一样,该开发者已经在使用屏幕浏览量来跟踪每个关卡的挑战情况。要按“玩家类型”来划分这些屏幕浏览量,该开发者只需在用户启动游戏时设置“玩家类型”维度,然后在用户随后付费购买完整版的游戏时再设置一次即可。

该开发者可以在用户第一次启动游戏时设置自定义维度:

ga('create', 'UA-XXXX-Y', 'auto');

// 针对索引 3 设置自定义维度值。
ga('set', 'dimension3', 'Free' );

// 将自定义维度值与网页浏览匹配一起发送。
ga('send', 'pageview', '/level_1/');

该开发者还希望在用户付费购买完整版的游戏时设置自定义维度:

ga('create', 'UA-XXXX-Y', 'auto');

// 针对索引 3 设置自定义维度值。
ga('set', 'dimension3', 'Paid' );

// 将自定义维度值与网页浏览匹配一起发送。
ga('send', 'pageview', '/level_1/');

数据处理

和前面的示例一样,在收集了数据之后,这些数据将会得到处理,且自定义维度值也将根据其范围应用于这些匹配。

例如,有一个玩家在付费之前玩了 2 次游戏,在付费之后玩了 1 次,针对其收集的数据将如下所示:

userId = 5555
Session 1:
H2:screen_name=/level_1/ cd3_value=free
H3:screen_name=/level_2/

Session 2:
H1:screen_name=/level_2/
H2:screen_name=/level_3/
H3:screen_name=/level_3/

Session 3:
H1:screen_name=/level_3/ cd3_value=paid
H2:screen_name=/level_4/

请注意,会话 3 中设置了新的值 paid 之前,在会话 1 中设置的 free 值也将应用于会话 2 中的所有匹配。

报告

数据处理完成后,“玩家类型”自定义维度值不但会与设置此值的当次会话相关联,而且会与未来的所有会话和匹配相关联。

该开发者现在可以使用“玩家类型”和屏幕名称作为维度、屏幕浏览量作为指标来生成报告:

玩家类型屏幕名称屏幕浏览量
免费/level_1/1
免费/level_2/2
免费/level_3/2
付费/level_3/1
付费/level_4/1

最后,要按“玩家类型”来划分屏幕浏览量,以了解免费用户和付费用户的关卡挑战次数差别,该开发者可以使用“玩家类型”作为主要维度来生成自定义报告:

玩家类型 屏幕浏览量
免费5
付费2

数据显示,免费玩家的关卡挑战次数要比付费玩家多。得益于使用用户级自定义维度来将各个用户及其会话和匹配划归到同一个值下面,开发者才得到了这一分析结果。

产品级范围

让我们来看看该游戏开发者如何使用产品级自定义维度来了解玩家购买了哪种能量等级(弱、中、强)的能力提升道具。

该开发者已经在使用增强型电子商务功能来跟踪玩家购买能力提升道具的次数。现在,他想要知道玩家购买次数最多的能力提升道具是什么。

其报告将如下所示:

能力提升道具能量等级产品收入
 
 
 

在使用自定义维度之前,该开发者可以查看能力提升道具所带来的总产品收入,但无法按这些道具的能量等级来划分该收入。

通过使用产品级自定义维度,相应能量等级可以与每个产品相关联,从而让报告可以直观呈现玩家购买次数最多的能量等级(以及用户查看次数和点击次数最多的能量等级和其他增强型电子商务操作)。

为何采用产品级范围?

用户在每次购买活动中可能会购买多个能力提升道具。使用产品级范围意味着能量等级值只会与一起发送到系统的那个产品相关联。这确保了玩家购买的每个能力提升道具都可以与其对应的具体能量等级相关联。

配置

该开发者在 Analytics(分析)管理员的媒体资源设置部分中定义了“能力提升道具能量等级”自定义维度,采用的值分别如下:

索引4
名称能力提升道具能量等级
范围产品
状态

数据收集

在游戏中,该开发者已经在跟踪每次能力提升道具购买行为。要将相应能量等级与每个能力提升道具相关联,该开发者必须同时设置自定义维度值和产品数据。

向产品添加此维度的方式应如下所示:

ga('ec:addProduct', {               // 在 productFieldObject 中提供产品详情。
  'id': 'P12345',                   // 产品 ID(字符串)。
  'name': 'Powerup',                // 产品名称(字符串)。
  'category': 'Extras',             // 产品类别(字符串)。
  'variant': 'red',                 // 产品款式(字符串)。
  'price': '10.00',                 // 产品价格(货币)。
  'quantity': 2,                    // 产品数量(数量)。
  'dimension4': 'strong'            // 产品级范围的自定义维度(字符串)。
});
ga('ec:setAction', 'purchase', {
  'id': 'T12345',
  'revenue': '20.00'
});

ga('send', 'pageview');     // 将交易数据与初始网页浏览一起发送。

在此示例中,自定义维度是和产品信息一起设置的。这就可以将其中的能量等级与该能力提升道具相关联。

数据处理

和前面的示例一样,在系统收集了相关匹配并将其发送到 Analytics(分析)后,这些数据将会得到处理,且自定义维度值也将应用于设置此值的产品。

例如,有一个玩家在一个会话中购买了 3 个能力提升道具,针对其收集的数据将如下所示:

userId = 5555
Session 1:
H1:product_name=powerup cd4_value=weak
    product_name=powerup cd4_value=strong
H2:product_name=powerup cd4_value=weak

请注意,使用产品级范围可确保每个能力提升道具值只与一起发送到系统的那个产品相关联。

报告

在数据处理完成后,由于每个产品都与相应的能量等级值相关联,因此该开发者可以生成一个按“能力提升道具能量等级”显示收入的自定义报告:

能力提升道具能量等级产品收入
20.00
10.00

在此报告中,能量等级弱的能力提升道具带来的收入最多。

自定义指标

范围

类似于自定义维度,自定义指标也分为不同的范围。匹配级自定义指标与一起发送到系统的所有匹配级维度相关联。同样,产品级自定义指标仅与一起发送到系统的那个产品相关联。下面的示例对这两种类型的自定义指标进行了介绍。

范围为匹配级的自定义指标示例

在上面的示例中,游戏开发者使用屏幕浏览量来跟踪关卡挑战次数。在生成的每份报告中,屏幕浏览量指标用于表示玩家完成关卡的次数。

但是,该开发者还想知道每个关卡的完成率。

为了确定完成率,该开发者将使用“关卡完成次数”这一新的自定义指标,并将其与每个关卡的屏幕浏览量进行对比。

该开发者想要获得的报告如下所示:

屏幕名称屏幕浏览量关卡完成次数
/level_1/  
/level_2/  
/level_3/  

为何使用自定义指标?

在很多情况下,您可以选择通过事件数量、屏幕浏览量和/或自定义指标来跟踪对您而言最为重要的指标。不过,自定义指标可以带来更灵活和更易懂的自定义报告,因此使用这种方法来跟踪最重要的指标非常方便。

在此示例中,您无法在不导致双重计数的情况下通过各个关卡的屏幕浏览量来跟踪关卡完成次数,因此您得另寻他途。

虽然事件可以单独使用,但由于其层级结构的特性,因此难以将屏幕浏览量和关卡完成次数结合到同一个维度下来创建上文中的示例报告。

由于上述限制,再加上由于关卡完成次数对该开发者来说是非常重要的指标,因此跟踪这一指标的最佳方式还是使用自定义指标。

配置

该开发者在界面的管理部分中定义了“关卡完成次数”自定义指标,采用的值分别如下:

索引1
名称关卡完成次数
范围匹配
格式设置类型整数
状态

数据收集

该开发者已经在使用屏幕浏览量来跟踪每个关卡的挑战次数。现在他想使用新的自定义指标来跟踪关卡的完成次数。

与自定义维度一样,自定义指标会以其他匹配的附加参数的形式发送到 Analytics(分析)。要发送该自定义指标值,开发者还需要发送一次额外的匹配,以记录玩家完成关卡的情况。在此示例中,玩家完成关卡时会触发一个事件,而自定义指标将与此事件相关联。

其实现方式可如下所示:

ga('create', 'UA-XXXX-Y', 'auto');

// 每完成一次关卡,指标就增加 1。
ga('set', 'metric1', 1 );

// 将自定义维度值与事件匹配一起发送。
ga('send', 'event', 'Level', 'completion');

数据处理

假设某位玩家在一个会话中挑战了三个关卡,其数据在得到处理之前将如下所示:

userId = 5555
Session 1
H1:type=screen_view screen_name=/level_1/
H2:type=event screen_name=/level_1/ cm1_value=1
H3:type=screen_view screen_name=/level_2/
H4:type=screen_view screen_name=/level_2/
H5:type=screen_view screen_name=/level_2/
H6:type=event screen_name=/level_2/ cm1_value=1
H7:type=screen_view screen_name=/level_3/
H8:type=event screen_name=/level_3/ cm1_value=1

报告

数据处理完成后,开发者可以使用屏幕名称作为维度,并以屏幕浏览量、事件总数和关卡完成次数作为指标来生成报告:

屏幕名称屏幕浏览量事件总数关卡完成次数
/level_1/111
/level_2/311
/level_3/111

由于该开发者已经以自定义指标的方式跟踪关卡完成次数,因此就不再需要将关卡完成事件从事件总数中滤除。

该开发者可以使用“关卡完成次数”自定义指标轻松生成以下自定义报告:

屏幕名称屏幕浏览量关卡完成次数
/level_1/11
/level_2/31
/level_3/11

数据显示,第 2 关实际上比第 1 关和第 3 关更难,因为根据屏幕浏览量来进行计算,其完成率只有 33%。通过以自定义指标的方式跟踪关卡完成次数,该开发者可以轻松解答关于关键指标的问题,并生成简明的报告与其他人分享。

范围为产品级的自定义指标示例

在上面的示例中,游戏开发者在跟踪每个能力提升道具的购买次数。有很多个指标都可以与每次购买操作相关联,如数量和产品收入。

但是,该游戏开发者最近推出了一种促销活动:向所有用户发放了 100 美元的赠送金额。该游戏开发者想要衡量玩家使用自己的赠送金额购买了哪些能力提升道具。

为了确定玩家在每次购买操作中所使用的赠送金额,该开发者将运用“所使用的赠送金额”这一新的自定义指标。

该开发者想要获得的报告如下所示:

能力提升道具能量等级产品收入所使用的赠送金额
  
  
  

配置

该开发者在“管理”部分定义了“所使用的赠送金额”自定义指标,采用的值分别如下:

索引2
名称所使用的赠送金额
范围产品
格式设置类型货币
状态

数据收集

与产品级自定义维度一样,产品级自定义指标会以相关产品数据的附加参数的形式发送到 Analytics(分析)。

其实现方式可如下所示:

ga('ec:addProduct', {               // 在 productFieldObject 中提供产品详情。
  'id': 'P12345',                   // 产品 ID(字符串)。
  'name': 'Powerup',                // 产品名称(字符串)。
  'category': 'Extras',             // 产品类别(字符串)。
  'variant': 'red',                 // 产品款式(字符串)。
  'price': '10.00',                 // 产品价格(货币)。
  'quantity': 2,                    // 产品数量(数量)。
  'dimension4': 'strong',           // 产品级范围的自定义维度(字符串)。
  'metric2': 5                      // 产品级范围的自定义指标(整数)。
});
ga('ec:setAction', 'purchase', {
  'id': 'T12345',
  'revenue': '20.00'
});

ga('send', 'pageview');     // 将交易数据与初始网页浏览一起发送。


数据处理

假设某位玩家购买了一些能力提升道具,其数据在得到处理之前将如下所示:

userId = 5555
Session 1
H1:type=screen_view screen_name=/level_1/
H2:type=screen_view screen_name=/level_2/
    product_name=powerup cd4_value=weak cm4_value=5
    product_name=powerup cd4_value=strong cm4_value=5
H4:type=screen_view screen_name=/level_2/
    product_name=powerup cd4_value=medium cm4_value=1
    product_name=powerup cd4_value=weak cm4_value=10

报告

数据处理完成后,该开发者可以使用“能力提升道具能量等级”作为维度,并使用“产品收入”和“所使用的赠送金额”作为指标来生成报告:

能力提升道具能量等级产品收入所使用的赠送金额
2015
105
101

数据显示,玩家们将自己获得的赠送金额用在了能量等级弱的能力提升道具上。而开发者通过能量等级适中的能力提升道具获得的利润最大。

实现方面的注意事项

实现自定义维度或指标时,请注意以下事项:

修改现有维度或指标

当您修改现有自定义维度或指标/维度的名称或范围时,您的数据可能会受到以下影响:

  • 修改名称:会影响到已得到处理的数据。将只能使用新名称查看旧数据。
  • 修改范围:不会影响已得到处理的数据。只有新数据会根据新范围来进行处理。
  • 更改状态:“状态”字段决定了自定义维度或指标值实际上是否会得到处理。请注意,状态为 false 的自定义维度或指标仍会显示在您的报告中,但由于其值不会得到处理,因此不会有任何关联的数据。

设置范围时请未雨绸缪

在决定某个自定义维度的范围时,请考虑其值的预期变化频率。如果自定义维度的值在一次会话期间会变化多次(比如游戏中关卡的名称),则请使用匹配级范围,并在每次匹配前设置其值。而性别等自定义维度则可以只在用户级别设置一次。在每次匹配时都发送性别值会产生额外的工作量,而将变化频繁的自定义维度配置为用户级范围又会导致很多匹配错误地与该值相关联。

本文是否对您有帮助?