如何将自定义变量用于产品展示而不是增强型电子商务数据层?

时间:2017-04-01 04:15:03

标签: javascript google-analytics google-tag-manager enhanced-ecommerce

我收到了一个请求,我们需要创建自定义的javascript变量来发送产品展示而不是增强的电子商务数据层。有人可以帮我理解如何通过指向正确的方向来实现这一目标吗?

TIA

2 个答案:

答案 0 :(得分:1)

您的问题当然不清楚,但我会尝试给您一些选择。首先,如果它是您正在寻找的用例类型,因为产品展示数据不在dataLayer中而您只想从其他地方获取它们,则此解决方案在此Simo Ahava blog post中进行了描述。如果原因是您无法使用GTM标记发送产品展示次数,我建议您使用自定义Javascript或自定义HTML标记来实现您的脚本。该脚本将以任何方式获取您页面的产品数据,然后使用手册ga()命令,如here所述。但这是抓住了。如果您尝试在实现GTM的页面中发送此消息,则会出现错误:'命令被忽略。未知目标:未定义'。这是因为GTM使用它自己的跟踪器名称向GA发送数据。要在同一页面上与GTM一起实现自己的跟踪,您应该对代码进行一些更改或添加,以便能够获得正确的跟踪器名称。如何做到这一点并不容易,但this article

中描述了一种方式

答案 1 :(得分:0)

为了扩展上面的答案,您的分析师只希望将产品数组保存到变量中,而不是推送到dataLayer推送。

例如:

而不是:

const express = require('express');
const router = express.Router();
const mm = require('../myModule');


router.get('/:id', function (req, res) {
    var id = req.params.id;
    var ret = mm.GetRecord(id)
    console.log('ret', ret);
    if (ret == null)
        ret = JSON.stringify({ ID: -1, f1: 'unknown' });
    res.send(ret);
});

module.exports = router;

他们想要:

dataLayer.push({
  'ecommerce': {
    'currencyCode': 'EUR',                       // Local currency is optional.
    'impressions': [
     {
       'name': 'Triblend Android T-Shirt',       // Name or ID is required.
       'id': '12345',
       'price': '15.25',
       'brand': 'Google',
       'category': 'Apparel',
       'variant': 'Gray',
       'list': 'Search Results',
       'position': 1
     },
     {
       'name': 'Donut Friday Scented T-Shirt',
       'id': '67890',
       'price': '33.75',
       'brand': 'Google',
       'category': 'Apparel',
       'variant': 'Black',
       'list': 'Search Results',
       'position': 2
     }]
  }
});

这意味着他们可以选择性地为每个事件触发不同的产品,而不是依赖于dataLayer推送本身。这对于产品展示跟踪非常有用。