仪表板上的自定义点击目标
您可以设置仪表板卡片,以便将用户发送到仪表板、已保存的问题和 URL,并使用卡片中的值来更新目标位置的过滤器,或参数化指向外部站点的链接。
Metabase 提供了一些简单的构建块,可让您自定义当有人单击仪表板上的图表时会发生什么。您可以组合这些原语来创建穿过报告的路径,仪表板更新后续仪表板,甚至将用户发送到外部站点。
对于本文,我们将重点介绍自定义点击行为的选项之一:转到自定义目标位置。我们将通过一个使用 Metabase 的示例数据库的场景,向您展示自定义目标位置的工作原理,并向您展示一些创建交互式体验的巧妙技巧。
我们将创建两个快速仪表板——“订单概览”仪表板和“产品详情”仪表板。以下是我们想要创建的用户体验:当有人查看我们的“订单概览”仪表板时,他们应该能够单击产品,并让 Metabase 将他们带到“产品详情”仪表板,该仪表板会根据用户单击的产品进行更新。一旦用户到达“产品详情”仪表板,Metabase 应该能够根据用户单击的产品类别将用户发送到不同的外部 URL。
之后,我们还将介绍另一个使用 SQL 问题的示例,以展示自定义目标位置如何成为为仪表板上的 SQL 问题添加交互元素的绝佳方式。
如果您已经有自己的仪表板要使用,则可以跳到我们开始自定义目标位置的部分。
创建“订单概览”和“产品详情”仪表板
让我们从构建“订单概览”仪表板并向其中添加两个问题开始。我们将快速浏览这部分 - 如果您正在寻找更详细的信息,请查看我们关于提问和创建仪表板的文档
继续创建一个新仪表板,将其命名为“订单概览”,并将其保存在有意义的位置。
我们将提出两个关于我们订单的问题
- 我们的订单表是什么样的?:首先浏览
Orders
表,然后单击“保存”。 - 订单如何按州细分?:选择
Orders
表开始,然后按侧边栏中“用户”下的State
字段进行汇总。由于我们按州汇总,Metabase 为我们生成了区域地图。请务必也保存此问题。
接下来,我们可以将这些已保存的问题添加到我们的新仪表板中。在查看空白仪表板时,单击铅笔图标进入编辑模式,然后通过选择 + 添加已保存的问题。添加这些问题并保存仪表板后,结果应如下所示
接下来,我们需要制作“产品详情”仪表板,我们最终将链接到“订单概览”。“产品详情”将更仔细地查看我们库存中的单个项目,因此我们还将连接仪表板过滤器,该过滤器允许我们根据我们要检查的产品输入 ID 值。
创建此仪表板,将其命名为“产品详情”,然后保存它。
让我们提出两个新问题,我们将添加到此仪表板
- 产品名称是什么?:从
Products
表开始,单击可视化,然后选择数字,在要显示的字段下拉列表中选择Title
。保存此问题。 - 有多少订单包含此产品?:从
Orders
表开始,然后按Orders
列表下Product ID
的计数进行汇总。也通过数字可视化此内容,在要显示的字段下拉列表中选择Count
,然后保存问题。
返回到“产品详情”仪表板。在编辑模式下,添加我们新的已保存问题,并且不要忘记我们也需要仪表板过滤器。要添加一个,请单击右上角的添加过滤器图标,然后选择 ID。为每个卡片选择要筛选的相应列 - 我们的产品名称卡片将筛选 Product.ID
,而我们的订单计数应筛选 Order.Product ID
。我们将这些问题的可视化设置为数字,以便它们像可变文本卡片一样运行,根据过滤器中的值更改其文本。
这是仪表板过滤器设置的外观
单击完成并保存仪表板。
现在我们将展示如何链接到外部网站。例如,我们将使用 Metabase 文档的搜索结果页面,并搜索用户单击的产品。
这是完整的点击路径
订单概览仪表板 → 产品详情仪表板 → 外部站点
此 GIF 显示了实际操作中的点击路径
自定义点击行为:“订单概览”仪表板
让我们回到“订单概览”仪表板。我们可以为该仪表板上的每个问题卡片添加自定义点击行为,但让我们只关注为一个卡片添加自定义目标位置。假设我们想要设置 Orders
卡片(包含订单表的卡片),以便当有人单击 Product ID
列时,Metabase 会将他们发送到“产品详情”页面,并在“产品详情”仪表板中插入过滤器,其中包含用户单击的产品的 Product ID
。
从“订单概览”页面开始,我们将单击铅笔图标进入仪表板编辑模式。接下来,我们将鼠标悬停在我们想要自定义的卡片上。菜单将出现在右上角。单击点击行为图标菜单(它是卡片上带有鼠标指针的图标)。
Metabase 将滑出一个侧边栏,供您设置当有人单击此表时会发生什么。
让我们了解一下情况
- 卡片网格:由于我们为“订单”卡片选择了点击行为,Metabase 以蓝色突出显示其单击时标签。我们可以通过单击另一张卡片的标签来选择另一张卡片的单击时行为。
- 右上角:主编辑菜单,其中包含添加问题、文本框或过滤器的选项。
- 右侧边栏:用于自定义当前卡片的单击时行为的选项。
由于我们使用查询构建器来编写“订单”问题,因此 Metabase 将默认点击行为设置为打开钻取菜单,这允许用户钻取数据。
让我们更改点击行为以将用户发送到我们的“产品详情”仪表板。
表格和自定义目标位置是一个特别棒的组合,因为我们可以为表格中的每一列设置不同的自定义目标位置。在此示例中,我们将仅设置单列的点击行为。我们将在“订单”问题卡片上设置自定义目标位置,以便当用户单击 Product ID
列中的值时,Metabase 将 1) 将他们发送到“产品详情”仪表板,并 2) 按单击的 Product ID
筛选该仪表板。
我们的选项是
- 打开操作菜单(使用查询构建器编写的问题的默认设置)。
- 转到自定义目标位置。
- 更新仪表板过滤器。
我们将选择转到自定义目标位置。
Metabase 将显示自定义目标位置的三个选项
- 仪表板
- 已保存的问题
- URL
要将用户发送到“产品详情”仪表板,我们将选择仪表板选项,然后选择我们的“产品详情”仪表板。
这是一个检查点
将值传递到目标位置
到目前为止,我们将 Product ID
列设置为转到自定义目标位置,我们已将其设置为链接到“产品详情”仪表板,但我们尚未完成此链接的设置。接下来,我们想要将值传递到此仪表板的过滤器。您会注意到仪表板上提供了可用过滤器的列表。在本例中,我们的“产品详情”仪表板只有一个我们可以向其传递值的过滤器:ID。
单击 ID,您会注意到您可以传递表格中任何列的值,而不仅仅是 Product ID
列。但在我们的例子中,我们将传递 Product ID
列中的值。
Metabase 将提供摘要
在这里,Metabase 正在确认我们已为 Product ID
列设置了点击行为,以
- 转到自定义目标位置。
- 链接到“产品详情”仪表板。
- 将
Product ID
列中的值传递到“产品详情”仪表板上的ID
过滤器。
让我们试用一下:从“订单概览”中,我们将单击 Product ID
列,Metabase 会将我们带到“产品详情”仪表板,并将值 14
插入到 ID
过滤器中。
自定义目标位置:URL
接下来,我们将设置“产品详情”仪表板,以便当用户单击产品名称卡片时,Metabase 会将他们发送到外部站点,并使用卡片中的值参数化 URL。我们可以将他们发送到任何外部站点,但在本例中,我们将他们发送到 Metabase 文档的搜索页面,以便您可以看到实际操作中的参数化(并且因为阅读我们的文档会让您成为更好的人)。
这是仪表板再次显示
与之前一样,我们将转到仪表板编辑模式,将鼠标悬停在产品名称卡片上,然后选择点击行为。
我们将看到与之前相同的菜单
- 打开操作菜单。
- 转到自定义目标位置。
- 更新仪表板过滤器。
我们将选择Go to a custom destination(转到自定义目标位置) 和 URL。接下来,我们将输入 URL,并通过将参数用双大括号括起来来包含参数,如下所示:{{parameter}}。在本例中,我们将使用 Title
作为 URL 中的参数
https://metabase.net.cn/search?query={{Title}}
您可以查看 Values you can reference(您可以引用的值) 下拉菜单,查看可以用作 URL 参数的完整值列表。您可以在 URL 中使用任何(或所有)值,包括重复使用相同的值。
使用文本框添加导航
除了为仪表板添加上下文之外,您还可以使用文本卡片为仪表板添加有用的导航链接,例如添加一个文本卡片,将您带回到我们开始的 Orders Overview(订单概览) 仪表板。您可以创建一个文本卡片,将文本居中,并使用 Markdown 创建一个指向 Orders Overview(订单概览) 仪表板的链接,这只是为了方便您的读者,使他们可以轻松浏览您的点击路径。以下是带有该链接的仪表板的样子
使用 SQL 问题自定义目标位置
我们上面使用的示例仪表板仅包含使用 Metabase 的 查询构建器提出的问题,但您也可能希望 原生查询在仪表板上具有交互性。
让我们首先提出一个 SQL 问题并将其添加到我们的 Product Detail(产品详情) 仪表板,这次是关于产品类别。导航到原生查询构建器后,我们将输入以下 SQL 问题
select CATEGORY
from PRODUCTS
where
{{TITLE}} and
{{ID}}
Metabase 划出一个侧边栏,您将在其中看到两个变量:TITLE
和 ID
。我们希望这个问题在我们每次在 ID 或 Title 字段中输入值时都向我们显示产品类别。从下拉列表中,将两者的 Variable type(变量类型) 设置为 Field filter(字段过滤器)。继续将 TITLE
变量映射到 Product.Title
字段,并将 ID
映射到 Product.ID
。
您可以通过向字段过滤器添加示例 ID 来确认问题是否运行;这里我们使用产品 ID 号 34 进行测试,并运行查询。由于我们的可视化是 Number(数字),我们看到此产品的类别(Gadget)在问题下方呈现为文本
现在保存问题并将其添加到我们的 Product Detail(产品详情) 仪表板。在编辑模式下,请确保将我们现有的仪表板过滤器链接到我们的新卡片,该过滤器应按我们新的 Product category(产品类别) 卡片的 ID
列进行过滤。
接下来,选择我们新卡片上的 click behavior icon(点击行为图标),您将在其中看到与我们之前看到的略有不同的菜单
- Do nothing(不执行任何操作)
- Go to a custom question(转到自定义问题)
- Update a dashboard filter(更新仪表板过滤器)
存在“Do nothing(不执行任何操作)”选项的原因是我们在 SQL 中编写了 Product category(产品类别)
问题,而 SQL 问题不包含 Action Menu(操作菜单)。
这就是我们要向您展示的一个巧妙技巧。如果我们返回到 Product category(产品类别)
问题,我们可以使用 concat
来创建根据过滤器值更新的字符串。
select concat('Category is ', CATEGORY)
from PRODUCTS
where
{{TITLE}} and
{{ID}}
为了完成操作,我们可以像之前那样将自定义目标位置设置为特定的参数化 URL,或者将此卡片链接到另一个包含按产品类别划分的订单统计信息的仪表板。
概括
我们向您展示了如何设置简单的点击路径,以及如何为原生查询和使用 Metabase 的查询构建器构建的查询设置自定义目标位置。但这些示例仅显示了一个点击路径。您可以自定义仪表板上每个问题卡片的行为!例如,您可以创建一个 State detail(州详情)仪表板,并自定义美国地图上的点击行为,以便 Metabase 将人员发送到 State detail(州详情)仪表板,并按点击的州进行过滤。
使用 Metabase 的查询构建器构建的问题将默认为操作菜单,该菜单允许用户钻取数据,但对于 SQL 问题,我们建议自定义目标位置(在有意义的情况下)。请查看我们的文档以了解有关交互式仪表板的更多信息。
您还可以将用户属性传递到 URL 或目标位置过滤器中,从而允许您为特定用户定制体验。
因此,发挥您的创造力来设置通过数据的点击路径,并在我们的论坛上分享您想出的任何技巧。
下一步:交叉筛选:使用图表更新仪表板过滤器
只需点击几下,您就可以配置任何图表或表格来更新仪表板过滤器。