您可以在页面 <body> 标签内的任意位置使用 zaraz.set():
zaraz.set(key, value, [options])如果您想让一个变量在您的所有事件中可用,而无需在每次使用 zaraz.track() 时手动设置它,那么设置功能就会很有用。在此示例中,假设您系统中的用户具有一个您想要发送到您的工具的唯一标识符。您可能有许多 zaraz.track() 调用都在共享这一个参数:
zaraz.track("form completed", {userId: "ABC-123"})zaraz.track("button clicked", {userId: "ABC-123", value: 200})zaraz.track("cart viewed", {items: 3, userId: "ABC-123"})在这里,所有事件都在收集 userId 键,并且设置该键的代码在不断重复。使用 zaraz.set() 您可以通过在页面加载时设置一次键来避免重复。Zaraz 随后会将此键附加到所有未来的 zaraz.track() 调用中。
以上述数据为例,如果您在 zaraz.track() 调用之前使用一次 zaraz.set("userId", "ABC-123"),则可以从所有 zaraz.track() 调用中删除 userId 键。
另一个例子:
zaraz.set('product_name', 't-shirt', {scope: 'page'})使用 zaraz.set() 发送的键可以在工具操作内部使用,就像 zaraz.track() 的 eventProperties 中的键一样。因此,上述 product 键可以通过 Cloudflare 仪表板使用变量 Track Property name:(跟踪属性名称:)访问,并将其名称设置为 product_name。然后 Zaraz 将用 t-shirt 替换它。
[options] 参数是一个可选对象,可以包含一个具有字符串值的 scope 属性。此属性决定了此键的生命周期,这意味着 Zaraz 应该将其附加到 zaraz.track() 调用多长时间。允许的值为:
page:仅为当前页面的上下文设置键。session:使该键持续整个会话。persist:跨会话保存该键。这是默认模式,它使用localStorage来保存值。
在前面的示例中,{scope: 'page'} 使 product_name 属性可用于当前页面中的所有 zaraz.track() 调用,但在访问者导航到其他页面后将不会影响调用。
要取消设置变量,请将其设置为 undefined。然后该变量将从包含它的所有作用域中移除,并且不会自动与将来的 zaraz.track 调用一起发送。例如:
zaraz.set('product_name', undefined)