Tags Google标记管理器中的数组值总和

Tags Google标记管理器中的数组值总和,tags,google-tag-manager,Tags,Google Tag Manager,我想在Google标记管理器中使用自定义javascript创建一个自定义变量。此变量将返回总订单数量的每个产品sku数量之和。因此,在下面的示例数据层中,我想返回6 dataLayer = [{ "pageName":"confirmation", "pageCategory":"checkout", "transactionProducts": [{ "sku":"item1", "price":10, "quantit

我想在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数量值求和到自定义变量中?

这是一种通过自定义JS变量获取总和的可能方法,无需使用自定义变量,但需要将数据层修改为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(){
试一试{
var总和=0;
var tp={{transactionProducts}};
如果(tp){

对于(i=0;i这是通过自定义JS变量获取总和的一种可能方式,无需使用自定义变量,但需要将数据层修改为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(){
试一试{
var总和=0;
var tp={{transactionProducts}};
如果(tp){

对于(i=0;iNyuens的答案确实是通常的做法。我仍然想指出,最好让您的服务器汇总数量并将结果推送到数据层。您对数组进行的切片和切割越多,您的站点将变得越慢。选择一些自定义js变量并不是问题,但这已经足够了nd您的站点将因自定义脚本的负载而陷入困境,因此这是您应该关注的问题。Nyuen的答案确实是通常的做法。我仍然想指出,最好让您的服务器汇总数量并将结果推送到数据层。您越是需要切分和遍历数据层rrays会让你的网站变得越慢。选择一些自定义js变量不是问题,但是如果这些变量足够多,你的网站就会因为自定义脚本的负载而陷入困境,所以这是你应该注意的。