我管理的网站会根据用户的旅程在多个不同的地方公开用户的唯一 ID。用户 ID 可以从数据层、引用 URL 参数或页面参数中检索。
在 GTM 中,我检索用户 ID 并存储在 5 个不同的变量中,其中只有 1 个具有实际 ID - 其他将为 NULL 值。
如果我想使用
user_id
事件参数将实际用户 ID 发送到 GA4,如何选择可能位于 5 个变量之一中的值而不用 NULL 覆盖正确的值?
我可以想象 JS 脚本可以做到这一点,但我不知道它会在哪里运行和执行。
您可以在 GTM 中创建自定义 Javascript 变量 - 它采用必须返回值的匿名函数的形式,并且您可以在其中运行一些 if/else 子句。
自定义 Javascript 变量使用 eval 运行,速度有点慢,并且可能无法在所有内容安全策略下工作,但除非您专门设置 CSP,否则可能并不重要。
GTM 更“原生”的方式是默认值。在一个变量中,如果某个值未定义(不确定它是否适用于空值),您可以使用另一个变量作为默认值。
所以你会有一个数据层变量“user_id_from_dl”。然后将默认值设置为 url 变量“user_id_from_url”。然后将该默认值设置为“user_id_from_global_var”或任何您的来源。
然后你可以使用 user_id_from_dl 变量,如果该值未定义,它将默认为下一个,级联所有默认值,直到最终找到一个未定义的值。
缺点是这不一定是最透明的解决方案。