首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Google标记管理器从采购收入值中删除十进制

如何使用Google标记管理器从采购收入值中删除十进制
EN

Stack Overflow用户
提问于 2019-09-04 10:11:45
回答 1查看 1.5K关注 0票数 0

我试着追踪购买的价值。然而,在中,应该是1.321,49的总收入的价值是1,32。

我已经尝试使用以下自定义JS删除",",但没有成功。在尝试时,我想知道如何返回这个新值来度量它?也许不可能作为我在标记中设置为值的DLV - ecommerce.purchase.actionField.revenue变量返回?如果你能给我一个熟练的指导,我不太熟悉JS和GTM,那就太好了;)

函数(){ var ecommerce_purchase_revenue ={DLV- ecommerce.purchase.actionField.revenue}};var ecommerce_purchase_revenue = ecommerce_purchase_revenue.replace(“","");返回{DLV- ecommerce.purchase.actionField.revenue}};}

下面是一些包含更多信息的图片:

数据层

GTM中的Javascript

Google分析值

GTM变量

更新的GTM标签

EN

回答 1

Stack Overflow用户

发布于 2019-09-04 10:42:10

这种情况可能发生的原因有几个。

这种情况可能发生的原因之一是由于购买过程中没有货币被推入数据层。

在英国和美国,我们会写下价值1,032磅的美元,四十美分的便士,比如:-

1 032.49

但是,在欧洲,您可以使用以下格式编写相同的值:

1.032,49

要解决这个问题,只需在dataLayer对象中指定货币代码,或者将其设置为标记中的字段,将增强的电子商务数据发送到Google。

Google会自动拿起它,正确地格式化在Analytics中显示的值。

一旦你推动正确的货币价值,你也可能需要调整在谷歌分析中显示为设置的货币。

此设置可通过导航到:

代码语言:javascript
复制
Google Analytics console >> 
Admin (cog, bottom left) >> 
View Settings (far right) >> 
"Currency Display As"

选项1:-

代码语言:javascript
复制
    window.dataLayer.push({
        event: 'gtm.dom',
        ecommerce: {
        currencyCode: 'EUR', // NOTE: We have now told google to use EUR formatting
    purchase: {
        actionField: {
            id: '5000000038', 
            affiliation: 'redacted',
            order_id: '5000000038', 
            subtotal: '1,321.49', 
            shipping: '0.00', 
            tax: '277.51', 
            total: '1,599.00', 
            revenue: '1,321.49', 
            discount: '0.00', 
            coupon:''
        },
    products: [{}] // ...

选项2:-

可以将货币代码设置为标记中的字段。

在GTM中导航到“字段设置”(在“更多设置”下拉列表下),并添加一个新字段:

字段名: currencyCode值: EUR

如果您的站点提供了使用多种货币支付的工具,您还可以编写一些逻辑,从数据层、浏览器cookie或其他变量中检测用户的货币,以便动态设置货币。

谷歌开发者参考中有许多有用的例子,这将有助于进一步了解正在发生的事情。

另一个原因可能在于您的转换功能。

我发现转换不影响原始字符串,而是返回原始未转换值(return {{DLV - ecommerce.purchase.actionField.revenue}};)。

要解决这一特定问题,请将该职能调整如下:

代码语言:javascript
复制
function () {
    var eRev = {{ecommerce.purchase.actionField.revenue}};
    var dRev = {{DLV}};
    eRev = Number(eRev.replace(/,/g,''));
    ecommerce_purchase_revenue = dRev - eRev; 
    return ecommerce_purchase_revenue;
    // You might need to convert it back to a string
    // if this is the case, use the following return instead:
    // return ecommerce_purchase_revenue.toString();
}

重要的是,我们使用regex在函数中进行替换,以便允许包含多个逗号分隔的情况。(例如,1 234 234.12)。

祝你顺利解决这个问题!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57786235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档