宏中 DataLayer 变量的条件

Condition on DataLayer variables inside a macro

在一个页面上,我将两个自定义变量推送到 DataLayer,以免调用它们 FooBar。假设 Foo 是一个布尔变量,Bar 是一个数字。

如果 Footrue 并且 return null\undefined\whatever GA,我想做的是 return Bar 的宏当 Foofalse.

时,将识别为不是实际值

当然我可以推送另一个变量来保存我希望宏计算的值,但我想知道这是否可以使用宏来完成(换句话说,在不修改页面的情况下完成) .

更新:它似乎有效,所以我正在添加代码。

我想我明白了(把问题写下来似乎有助于解决它们)。为此,我需要做的是:

  • 将两个 DataLayer 变量添加为宏({{Foo}}{{Bar}})。
  • 添加一个非标准的 JS 宏来检查 Foo 和 returns 的值 Bar 如果 Foo 为真

组合的非标准 JS 宏如下所示:

function()
{
    if({{Foo}})
    {
        return {{Bar}};
    }
    return null;
}

我还为 {{Foo}} 宏分配了默认值 false 以避免某些自定义页面(如重定向页面等)出现问题。