首页 文章

Google跟踪代码管理器中的Sum数组值

提问于
浏览
0

我想在Google跟踪代码管理器中使用自定义JavaScript创建自定义变量 . 此变量将返回总订单数量的每个产品sku数量的总和 . 所以,在下面的示例数据层中,我想返回6 .

dataLayer = [{
    "pageName":"confirmation",
    "pageCategory":"checkout",
    "transactionProducts": [{
        "sku":"item1",
        "price":10,
        "quantity":3,
        "currency":"USD"
    },{
        "sku":"item2",
        "price":10,
        "quantity":2,
        "currency":"USD"
    },{
        "sku":"item3",
        "price":10,
        "quantity":1,
        "currency":"USD"
    }]
}];

对于GTM,该值必须位于js函数的返回行中 . 我已将数量变量命名为 {{sku quantity}} . 如何将总sku数量值汇总为自定义变量?

1 回答

  • 2

    这是通过Custom JS变量获取总和而不使用自定义变量的一种可能方法,但它需要您将dataLayer修改为dataLayer.push并添加事件键,如下所示:

    dataLayer.push({
        'event': 'ecomm confirmation',
        "pageName":"confirmation",
        "pageCategory":"checkout",
        "transactionProducts": [{
            "sku":"item1",
            "price":10,
            "quantity":3,
            "currency":"USD"
        },{
            "sku":"item2",
            "price":10,
            "quantity":2,
            "currency":"USD"
        },{
            "sku":"item3",
            "price":10,
            "quantity":1,
            "currency":"USD"
        }]
    });
    

    您的自定义JS看起来像这样(更改名称以满足您的需要):

    function(){
        try{
            var sum = 0;
            var tp = {{transactionProducts}};
    
            if (tp){
                for (i=0; i<tp.length; i++){
                  sum += tp[i].quantity;
                }
            }
            return sum;
        }
        catch(e){
        }
    }
    

    其中 {{transactionProducts}} 是数据层类型变量 .

    然后,您可以创建一个事件标记,例如,它将调用此Custom JS并返回数量的总和 .

相关问题