URL_Search_Params
URL_Search_Params 是一个 system variable,它保存参与者会话开始时 URL 上的每个参数,自动捕获为 JSON。它在每个研究中都存在。大多数研究人员不需要直接接触它,因为 Labvanced 已经将它识别的参数(众包 ID、group、session 等)读取到它们各自的专用变量中。
Purpose
众包平台和面板各自发送自己的一长串 URL 参数。一些是集成工作所必需的,比如参与者 ID,Labvanced 已经直接处理这些。其他参数更像是辅助信息,虽然在某些情况下有用,但没有自己的专用变量,比如目标标准或尝试 ID。URL_Search_Params 是第二组的各类捕获点:会话开始时,所有参数会自动捕获,不需要配置,因此新的集成可以直接工作。
它背后的想法是简化:不需要为平台可能发送的每个参数创建一个专用变量,而是一个变量将所有参数放在一起。这使得新集成可以在没有额外设置的情况下运行,并为你提供一个检查的单一位置,以防研究需要没有其他变量跟踪的值。
这些值来自众包提供商,而不是 Labvanced。例如,Besample 的 tc 是由 Besample 创建并发送的;Labvanced 只是作为 URL_Search_Params 从链接中读取它。
How it's recorded
完整的查询字符串在会话开始时读取一次,并从那时起存储在 URL_Search_Params 全局变量中。从那里,它在实验的其余时间内保持可用,和任何其他变量一样,随时准备在研究设计需要时读取。
在内部,值存储为以下形式的 JSON 字符串:
{"is_truncated": false, "params": {"type": "besample", "battempt": "3", "tc": "276", "tg": "f"}}
重复的参数名称保存一个值的数组。is_truncated 只有在查询字符串异常长时(超过 4096 个字符)才会发生。在这种情况下,将会省略使其超出限制的参数,而短于此的所有参数仍会被记录。
排除的记录包括 Labvanced 自己的实验 ID 和每个众包平台的参与者标识参数,这些参数另行保存在 Crowdsourcing_SubjId 中(例如 PROLIFIC_PID 用于 Prolific,bpid 用于 Besample)。为了同样的隐私原因,还有一些其他参数被排除,而没有存储在其他地方,比如 Besample 的 bnum,这是一个与单个受访者的完成支付相关的一次性代码。
How it's used
Run JavaScript Action 是如何从 URL_Search_Params 中提取一个值并对其进行操作的方式。与较简单的替代方案并不严格为二者之一:如果你只需要一个特定的、已经命名的值,Get URL Parameter Action 可以不使用 JSON 或代码直接获取它。选择 URL_Search_Params 当你想要完整的链接记录,而不仅仅是你设置提取的一个参数,无论每个参数的名称是否已经知道。
tc 是 Besample 自己的官方参与者目标国家参数。首先选择一个触发器,例如 On Frame Start 或按钮点击,无论什么应启动读取。然后使用 Run JavaScript 从 URL_Search_Params 中读取 tc 并将其保存到一个你创建并完全控制的变量中,例如 Target_Country(首先在变量选项卡中创建它):
var urlParams = JSON.parse(getValue("URL_Search_Params"));
setValue("Target_Country", urlParams.params.tc || ""); // ISO 3166-1 numeric country code, empty string if tc isn't on the link
|| "" 很重要:与 Get URL Parameter 不同,后者在缺少参数时默认自动变为空字符串,而这里缺少的值如果被直接传入 setValue 而没有后备方案,则会抛出错误。读取可能不存在的参数时,总是后备一个默认值。
从那里,像任何其他变量一样使用 Target_Country。例如:
Trigger:
On Frame Start
Action:Requirement (If... Then)→ 左侧Variable→Target_Country,比较equal,右侧Constant Value→276→ 然后:Jump to Next Frame→ 你的国家特定任务
在一个工作示例中查看此方法旁边的 Get URL Parameter: 从全局变量获取自定义 URL,一个库研究将相同的 URL 参数双向读取,以便你可以直接比较结果。复制此 URL 直接尝试:
https://www.labvanced.com/player.html?id=88576&tc=276
如果你有任何问题,请 contact us.