在网站 AOI 上跟踪鼠标行为
在网站框架内,鼠标事件和注视以相同的方式记录:除了 Website AOI 元素外,均无法针对其他任何对象,这是网站框架可以包含的唯一对象。此页面完整地覆盖了在网站 AOI 上构建 Mouse Trigger 事件的过程。有关注视,请参见 网站框架眼动追踪指南,该触发器的事件设置已在此处详细说明,并未在此重复。
为什么这需要在这里设置,而不是在 Labvanced 的其他地方
在网站框架外,鼠标跟踪大多是自动工作的:框架的连续鼠标跟踪属性以被动方式记录光标移动,无需触发器。在网站框架的嵌入页面内,这种被动跟踪从不触发,参与者的浏览器在光标悬停在 iframe 上时不会将鼠标移动数据传递给父页面,无论任何 Labvanced 设置如何。只有通过 Labvanced Web Bridge 扩展支持的 Mouse Trigger,才能从框架内部获取任何鼠标数据。如果不构建一个,网站 AOI 对鼠标行为没有任何记录,默默地,如同没有锚点的 AOI 没有记录而你也未注意到。
三种目标模式
添加一个 Mouse Trigger 事件,并在网站框架内,其 Targets: 部分提供三种模式,而不是单一目标选择器:
| 模式 | 功能描述 |
|---|---|
Any element in website frame | 无论交互是否发生在注册的 AOI 上,都可在嵌入页面的任何地方触发所选交互。 |
Any AOI element | 在任何注册网站 AOI 上发生交互时触发,而无需单独选择。 |
| 选择特定目标(默认,未选中任何框) | 仅在你明确添加为目标的网站 AOI 上触发。 |
这是相比于注视在同一框架中获得的更丰富选择:Eyetracking Gaze/Eyetracking Fixation 触发器仅提供两种模式,Only trigger when looking at specific elements 未选中(无目标地持续触发,只要有新的注视数据存在)或选中(限于特定挑选的 AOI 目标)。没有 Any AOI element 的注视等效物。
如果 AOI 重叠,目标模式会改变计算的内容。对于 Click、PressDown 和 PressUp(选择了特定目标),Labvanced 在单击点检查每个 AOI,而不仅仅是视觉上位于最上面的那个,因此你的目标仍然会触发,即使在其上方堆叠着不同的 AOI。Any element in website frame 和 Any AOI element 模式,以及 Hover/Leave/Move 无论模式如何,仅会考虑该点的单个最上元素。
构建事件
- 添加一个新事件,选择
Mouse Trigger。 - 将
Action:设置为所需的交互:Click、PressDown、PressUp、Hover、Leave或Move。对于Click、PressDown和PressUp,还会出现一个Button:下拉菜单,Left或Right,以限制触发器为单一鼠标按钮。 - 从上表中选择一个目标模式。如果两个复选框都未选中,则单击
Add Target并选择你想要的网站 AOI。 - 添加一个
Set / Record Variable动作以真正捕获数据,没有此动作的事件将无法记录数据,效果与没有Eyetracking Gaze事件的 AOI 相同。将变量的格式设置为Array。对于记录类型,Final value仅保留最近的一次出现,而Time series保留每一次。选择Time series将显示一个进一步的Sampling method选项:record all (allow repeated duplicates)或record changes only (no repeated duplicates)。 - 在值选择菜单中,从
Trigger (Mouse)类别中选择,这是该事件特有值所在的地方,在下一部分中会进行描述。
触发器:
Mouse Trigger→Action:Move→Targets:Any AOI element
动作:Set / Record Variable→ 格式:Array,记录类型:Time series,采样方法:record all (allow repeated duplicates)→ 值:Mouse [Name, Info, X, Y] Array来自Trigger (Mouse)
这将记录 AOI 的名称和标签,以及每次在任何注册的 AOI 上进行鼠标移动时的页面相对 X/Y,无需为每个 AOI 创建单独的事件。
选择一个值,以及随之而来的坐标空间
Trigger (Mouse) 类别提供了:
| 值 | 提供的信息 |
|---|---|
MouseX / MouseY | 独立的 X 或 Y 坐标 |
Mouse [X,Y] Array | 两个坐标一起 |
Stimulus Name | AOI 的对象名称 |
Stimulus Info | AOI 的 Stimulus Info 标签 |
Element Text | 事件发生时 AOI 的可见文本 |
Mouse [Name, Info, X, Y] Array | 名称、Stimulus Info 和两个坐标一起 |
Mouse [Name, Info, Text, X, Y] Array | 名称、Stimulus Info、可见文本和两个坐标一起 |
MouseX/MouseY(以及由它们构建的数组)在每种交互类型中并不表示相同的含义:
Click、PressDown、PressUp、Move报告 页面相对 坐标,即嵌入页面的完整可滚动区域内的位置,包括参与者滚动过的部分。Hover、Leave则报告 元素相对 坐标,即 AOI 本身内的位置,而非页面。
两者在值选择器中标记相同 (MouseX、MouseY),界面中没有任何内容区分它们,唯一的区别在于事件构建的交互类型。从 Hover 事件和 Move 事件中混合数据到相同导出列中,将会在没有任何警告的情况下混合两个不同的坐标空间。提前决定实际上需要的交互类型,然后再连接记录动作。
Stimulus Name 和 Stimulus Info 识别事件触发的 AOI,相同的 Stimulus Info 标签在 为你的导出数据命名 AOI 中已覆盖,一旦你从多个 AOI 或 Any AOI element 模式记录数据时,这非常有用。Element Text 记录事件发生时 AOI 的可见文本。
与注视共享:页面相对坐标包含滚动
上述描述的页面相对坐标(对于 Click、PressDown、PressUp、Move)包括 iframe 的内部滚动偏移,而不仅仅是当前在视口中可见的内容。在网站 AOI 上记录的注视坐标也以相同的方式工作。如果在分析中结合来自同一 AOI 的鼠标和注视数据,均使用这个相同的页面相对坐标空间,因此它们完全对齐。你不需要将一个转换为匹配另一个。
页面滚动位置不是单独的值
主指南的跟踪数据列表中提到滚动位置,但没有单独的“当前滚动位置”值可以单独记录。滚动偏移仅在上述已描述的页面相对坐标中自动应用 (Click、PressDown、PressUp、Move),并未作为可记录的变量单独暴露。如果你需要在 AOI 内部特定的可滚动子区域上记录滚动行为,那是一个单独的设置,Scrollable container 在 AOI 本身上,有关此设置的内容见 跟踪可滚动子区域,其结果数据仅通过 Eyetracking Gaze/Eyetracking Fixation 触发器可用,而不是 Mouse Trigger。
故障排除
事件从未触发。 确认 Web Bridge 扩展已安装并处于活动状态,在网站框架内没有任何内容能触发 Mouse Trigger。如果你使用的是特定目标,请确认所选的 AOI 实际上是锚定的,没有锚定的 AOI (selectorFound false) 即使触发器本身配置正确也不会触发目标事件。
它对错误的元素触发,或触发过于频繁。 检查所选的目标模式。如果 Any element in website frame 在任何 AOI 外部的所有地方触发,并不是你所想的,请切换到 Any AOI element 或选择特定目标。
记录的坐标看起来错误或不一致。 检查事件使用的交互类型。Hover/Leave 坐标相对于 AOI,Click/PressDown/PressUp/Move 相对于页面,见上文的 选择一个值。
常见问题
为什么框架的常规鼠标跟踪设置在网站框架内不起作用?
Mouse Trigger,才能看到嵌入页面内的鼠标活动。 我需要在跟踪鼠标移动之前添加网站 AOI 吗?
Any AOI element 模式时才需要。Any element in website frame 模式无论交互是否发生在注册的 AOI 上都能触发,所以即使没有添加任何 AOI 也能正常工作。 为什么我在同一个 AOI 上的悬停坐标比点击坐标小得多?
Hover/Leave 相对于 AOI 元素本身报告坐标,而 Click/PressDown/PressUp/Move 则相对于整个页面报告坐标。两者使用相同的 MouseX/MouseY 值名称,因此从值选择器本身无法看到。 网站框架中的任何元素与任何 AOI 元素有什么区别?
Any element in website frame 可在嵌入页面的任何地方触发交互,无论 AOI 与否。Any AOI element 仅在交互发生在注册网站 AOI 上时触发,但不需要你选择特定的哪个,任何一个都可以。