宏中 DataLayer 变量的条件
Condition on DataLayer variables inside a macro
在一个页面上,我将两个自定义变量推送到 DataLayer
,以免调用它们 Foo
和 Bar
。假设 Foo
是一个布尔变量,Bar
是一个数字。
如果 Foo
是 true
并且 return null\undefined\whatever GA,我想做的是 return Bar
的宏当 Foo
为 false
.
时,将识别为不是实际值
当然我可以推送另一个变量来保存我希望宏计算的值,但我想知道这是否可以使用宏来完成(换句话说,在不修改页面的情况下完成) .
更新:它似乎有效,所以我正在添加代码。
我想我明白了(把问题写下来似乎有助于解决它们)。为此,我需要做的是:
- 将两个
DataLayer
变量添加为宏({{Foo}}
和 {{Bar}}
)。
- 添加一个非标准的 JS 宏来检查
Foo
和 returns 的值 Bar
如果 Foo
为真
组合的非标准 JS 宏如下所示:
function()
{
if({{Foo}})
{
return {{Bar}};
}
return null;
}
我还为 {{Foo}}
宏分配了默认值 false
以避免某些自定义页面(如重定向页面等)出现问题。
在一个页面上,我将两个自定义变量推送到 DataLayer
,以免调用它们 Foo
和 Bar
。假设 Foo
是一个布尔变量,Bar
是一个数字。
如果 Foo
是 true
并且 return null\undefined\whatever GA,我想做的是 return Bar
的宏当 Foo
为 false
.
当然我可以推送另一个变量来保存我希望宏计算的值,但我想知道这是否可以使用宏来完成(换句话说,在不修改页面的情况下完成) .
更新:它似乎有效,所以我正在添加代码。
我想我明白了(把问题写下来似乎有助于解决它们)。为此,我需要做的是:
- 将两个
DataLayer
变量添加为宏({{Foo}}
和{{Bar}}
)。 - 添加一个非标准的 JS 宏来检查
Foo
和 returns 的值Bar
如果Foo
为真
组合的非标准 JS 宏如下所示:
function()
{
if({{Foo}})
{
return {{Bar}};
}
return null;
}
我还为 {{Foo}}
宏分配了默认值 false
以避免某些自定义页面(如重定向页面等)出现问题。