[UA] 自定义维度和指标

将非标准数据纳入报告中。
本文介绍的是 Universal Analytics 中的自定义维度和指标。如需了解 Google Analytics(分析)4 中的自定义维度和指标,请参阅 [GA4] 自定义维度和指标

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

本文包含的主题

概览

通过自定义维度和指标,您可以整合 Google Analytics(分析)数据与非 Google Analytics(分析)数据(例如 CRM 数据)。例如:

  • 如果您在客户关系管理系统中存储了已登录用户的性别数据,就可以将这些信息与您的 Google Analytics(分析)数据整合,以了解不同性别用户的网页浏览量
  • 如果您是游戏开发者,“关卡完成度”或“最高得分”等指标就可能比屏幕浏览量等预定义的指标更贴合您的需求。通过使用自定义指标来跟踪这些数据,您可以生成灵活且一目了然的自定义报告,以跟踪这些对您而言最为重要的指标。

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

前提条件

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

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

限制和注意事项

每个媒体资源中的不同自定义维度和自定义指标分别可使用 20 种索引。360 账号的自定义维度和自定义指标则分别可使用 200 种索引。

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

当与受众特征信息结合时,某些自定义维度在报告中不会显示。请求包含受众特征数据的自定义维度时,您可能会遇到报告或 API 应用阈值或存在不兼容限制的问题。

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

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

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

配置

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

在定义自定义维度或指标时,您可以指定其名称和其他配置值,Google Analytics(分析)会分配一个索引编号,供您以后引用该维度或指标。自定义维度有以下配置值:

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

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

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

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

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

数据收集

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

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

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

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

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

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

自定义指标类型

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

数据处理

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

范围和优先级

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

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

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

命中级范围

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

图 A:用户发送了两次命中(H1、H2)。H2 自定义维度 1 的值为 A。该值仅可应用于 H2。
 
图 B:用户发送了第三次命中 (H3)。H3 没有自定义维度值。
 
图 C:用户发送了第四次命中 (H4)。H4 自定义维度 1 的值为 B。该值仅可应用于 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 中的所有命中。

过滤器

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

无论范围如何,每个自定义维度和指标值都与接收它们的命中相关联。如果该命中被某个数据视图过滤器滤除,则相应的自定义维度或指标也可能会被滤除,具体取决于其范围。

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

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

报告

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

此类数据将在自定义报告中提供,并可用于高级细分。自定义维度还可用作标准报告中的次级维度。

示例

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

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

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

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

要解答这些问题,可使用自定义维度来新建命中、会话和用户的分组。

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

命中级范围

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

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

其报告将如下所示:

难度 屏幕浏览量
 
 
 

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

通过使用匹配级自定义维度,难度信息可以被关联到每一次屏幕浏览匹配,让报告可以直观呈现被挑战次数最多的难度。

为何采用匹配级范围?

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

配置

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

索引 1
名称 难度
范围 命中
有效 true

数据收集

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

其实现方式如下所示:

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

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

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

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

数据处理

在收集了命中数据并将其发送到 Google 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”值下面。

虽然匹配级范围也可用于实现这一目标,但会话级范围可让您用很少的代码方便地设置“试玩天数”值。

配置

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

索引 2
名称 试玩天数
范围 会话级
有效 true

数据收集

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

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

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

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

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

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

数据处理

在收集了命中数据并将其发送到 Google 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

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

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

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

用户级范围

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

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

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

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

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

为何采用用户级范围?

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

请注意,虽然也可通过命中级或会话级范围来实现同样的功能,但用户级范围所需的代码量最少,实现方法也最为便捷。

配置

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

索引 3
名称 玩家类型
范围 用户级
有效 true

数据收集

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

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

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

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

产品级范围

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

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

其报告将如下所示:

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

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

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

为何采用产品级范围?

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

配置

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

索引 4
名称 能力提升道具能量等级
范围 产品
有效 true

数据收集

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

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

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');     // 将交易数据与初始网页浏览一起发送。

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

数据处理

和前面的示例一样,在系统收集了相关命中并将其发送到 Google 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
名称 关卡完成次数
范围 命中
格式设置类型 整数
有效 true

数据收集

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

与自定义维度一样,自定义指标以其他命中的附加参数的形式发送到 Google 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/ 1 1 1
/level_2/ 3 1 1
/level_3/ 1 1 1

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

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

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

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

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

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

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

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

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

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

配置

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

索引 2
名称 所使用的赠送金额
范围 产品
格式设置类型 整数
有效 true

数据收集

与产品级自定义维度一样,产品级自定义指标会以相关产品数据的附加参数的形式发送到 Google 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 cm2_value=5
    product_name=powerup cd4_value=strong cm2_value=5
H4:type=screen_view screen_name=/level_2/
    product_name=powerup cd4_value=medium cm2_value=1
    product_name=powerup cd4_value=weak cm2_value=10

报告

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

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

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

实现方面的注意事项

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

修改现有维度或指标

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

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

设置范围时请未雨绸缪

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

该内容对您有帮助吗?

您有什么改进建议?
true
选择适合您的学习路线

请访问 google.com/analytics/learn,这是一项新资源,有助于您充分利用 Google Analytics(分析)4。这个新网站包含各种关于 Google Analytics(分析)的视频、文章和引导式流程,还提供了指向 Discord、博客、YouTube 频道和 GitHub 代码库的相关链接。

立即开始学习!

搜索
清除搜索内容
关闭搜索框
主菜单
9839260055078126926
true
搜索支持中心
true
true
true
true
true
69256
false
false