如何使用 javascript 从 GA 电子商务结果中提取 & return 单个值(收入)
How Can I extract & return a single value (revenue) from GA ecommerce results using javascript
在我的电子商务网站上成功交易后显示的感谢页面的来源 Google Analytics ecommerce.js 插件写入以下内容:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-123456789-1', {'cookieDomain': 'http://www.example.com/'});
ga('require', 'displayfeatures');
ga('send', 'pageview');
ga('create', 'UA-1234567-9', 'auto', { name: 'merchantTracker' });
ga('merchantTracker.require', 'displayfeatures');
ga('merchantTracker.send', 'pageview');
Thirdparty.Event.subscribe('google.analytics.trackPageView', function(url) {
ga('send', 'pageview', url);
ga('merchantTracker.send', 'pageview', url);
});
</script>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
$('.recommendation-box .in-popup a').click(function(e) {
e.preventDefault();
window.open(
this.href,
"sharing",
"width=650,height=500,resizable=no,location=no,menubar=no,scrollbars=no,status=no"
);
});
ga('require', 'ecommerce'); ga('ecommerce:addItem', {
'id': '11377927',// Transaction ID. Required.
'name': 'Test Product',// Product name. Required.
'category': 'Adult',// Category or variation.
'price': '1.0000000000',// Unit price.
'quantity': '1'// Quantity.
}); ga('ecommerce:addTransaction', {
'id': '11377927',// Transaction ID. Required.
'affiliation': 'My Site',// Affiliation or store name.
'revenue': '1.070000',// Grand Total.
'tax': '0'// Tax.
});
ga('ecommerce:send');
});
//]]>
</script>
我想使用 Google 跟踪代码管理器和 javascript 将 'revenue' 和 return 的值提取到 GTM 变量中。
这是在第三方平台上,我无法访问后端源代码,这就是为什么我正在查看 GTM,它使我能够在谢谢页面上使用 JS 代码(我有一个 GTM 容器设置并且已经在网站上为其他 javascript 工作)
我不太了解 javascript 或 GA 对象模型,所以我不知道如何以最佳方式提取该值。我已经尝试通过 chrome 控制台,看看我是否可以通过访问 ga 对象来回显该值,但找不到获取它的方法/访问 it.Trying 诸如 console.log ga ('revenue') 和许多变体,但我不明白对象模型如何工作以达到该值。
如何将 'revenue' 和 return 的值访问到 GTM 以用作变量?
要将值推送到 GTM,您需要先在 GTM 中设置 dataLayer 变量:
变量 -> 新增 -> 选择变量类型... -> 数据层变量
输入您的变量名并点击保存。现在你可以在 GTM 中使用这个变量,它可以在任何地方可用,你也可以在你的自定义 HTML 中引用它,如下所示:{{stackO}}
更多信息:https://support.google.com/tagmanager/answer/6106899?hl=en#web
要从您的网站向此变量添加值,只需将变量推送到 GTM,例如:
dataLayer.push({
'stackO': 'exampleValue'
});
更多信息:https://developers.google.com/tag-manager/devguide
不幸的是,我认为您不能将 'revenue' 和 return 的值访问到 GTM 以直接用作变量。这是因为 GA 电子商务没有 return 添加项目的功能。 (没有我知道的)。参考:https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce
我只能建议尝试找出该值的来源?
'revenue': '1.070000',// 总计。
它是硬编码的吗?如果是这样,也许您可以直接从 HTML.
获取它
根据您的评论,理论上您可以使用如下代码:
var x = document.head.innerText;
var revenue=x.substring(x.lastIndexOf("'revenue'")+12,x.lastIndexOf("// Grand Total") - 2);
//assuming you name your dataLayer variable "revenue" in GTM you can push it like this:
dataLayer.push({
'revenue' : revenue
});
收入就是您追求的价值。但是要小心,当结构发生变化时,您的代码将停止工作。祝你好运
我找到了使用 innerText 和正则表达式提取它的解决方案,然后获得了值起点的索引 'revenue' 我用它来放置收入数量的值它从一个索引点开始 +12 个空格。
我提取了价值的小数点后 8 位作为我永远不会拥有高于 9999.999 美元价值订单的数字,并且我不需要超过 3 位小数的价值所以这应该是我要求的安全范围。
我在自定义 javascript 类型的 GTM 变量中使用了此代码,然后在需要时将该变量包含在重定向像素标签中。
console.log 条目仅用于测试,但我现在已从实时变量代码中删除。
var content = document.head.innerText;
var query=/'revenue': '\d+.\d+',/;
if (content.search(query) > -1 ) {
var resultquery = (content.search(query))
var revenue = (document.head.innerText.substring(resultquery+12, resultquery+20))
console.log (revenue)
return revenue;
} else {
console.log(false);
}
在我的电子商务网站上成功交易后显示的感谢页面的来源 Google Analytics ecommerce.js 插件写入以下内容:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-123456789-1', {'cookieDomain': 'http://www.example.com/'});
ga('require', 'displayfeatures');
ga('send', 'pageview');
ga('create', 'UA-1234567-9', 'auto', { name: 'merchantTracker' });
ga('merchantTracker.require', 'displayfeatures');
ga('merchantTracker.send', 'pageview');
Thirdparty.Event.subscribe('google.analytics.trackPageView', function(url) {
ga('send', 'pageview', url);
ga('merchantTracker.send', 'pageview', url);
});
</script>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
$('.recommendation-box .in-popup a').click(function(e) {
e.preventDefault();
window.open(
this.href,
"sharing",
"width=650,height=500,resizable=no,location=no,menubar=no,scrollbars=no,status=no"
);
});
ga('require', 'ecommerce'); ga('ecommerce:addItem', {
'id': '11377927',// Transaction ID. Required.
'name': 'Test Product',// Product name. Required.
'category': 'Adult',// Category or variation.
'price': '1.0000000000',// Unit price.
'quantity': '1'// Quantity.
}); ga('ecommerce:addTransaction', {
'id': '11377927',// Transaction ID. Required.
'affiliation': 'My Site',// Affiliation or store name.
'revenue': '1.070000',// Grand Total.
'tax': '0'// Tax.
});
ga('ecommerce:send');
});
//]]>
</script>
我想使用 Google 跟踪代码管理器和 javascript 将 'revenue' 和 return 的值提取到 GTM 变量中。
这是在第三方平台上,我无法访问后端源代码,这就是为什么我正在查看 GTM,它使我能够在谢谢页面上使用 JS 代码(我有一个 GTM 容器设置并且已经在网站上为其他 javascript 工作)
我不太了解 javascript 或 GA 对象模型,所以我不知道如何以最佳方式提取该值。我已经尝试通过 chrome 控制台,看看我是否可以通过访问 ga 对象来回显该值,但找不到获取它的方法/访问 it.Trying 诸如 console.log ga ('revenue') 和许多变体,但我不明白对象模型如何工作以达到该值。
如何将 'revenue' 和 return 的值访问到 GTM 以用作变量?
要将值推送到 GTM,您需要先在 GTM 中设置 dataLayer 变量:
变量 -> 新增 -> 选择变量类型... -> 数据层变量
输入您的变量名并点击保存。现在你可以在 GTM 中使用这个变量,它可以在任何地方可用,你也可以在你的自定义 HTML 中引用它,如下所示:{{stackO}} 更多信息:https://support.google.com/tagmanager/answer/6106899?hl=en#web
要从您的网站向此变量添加值,只需将变量推送到 GTM,例如:
dataLayer.push({ 'stackO': 'exampleValue' });
更多信息:https://developers.google.com/tag-manager/devguide
不幸的是,我认为您不能将 'revenue' 和 return 的值访问到 GTM 以直接用作变量。这是因为 GA 电子商务没有 return 添加项目的功能。 (没有我知道的)。参考:https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce
我只能建议尝试找出该值的来源?
'revenue': '1.070000',// 总计。
它是硬编码的吗?如果是这样,也许您可以直接从 HTML.
获取它根据您的评论,理论上您可以使用如下代码:
var x = document.head.innerText;
var revenue=x.substring(x.lastIndexOf("'revenue'")+12,x.lastIndexOf("// Grand Total") - 2);
//assuming you name your dataLayer variable "revenue" in GTM you can push it like this:
dataLayer.push({
'revenue' : revenue
});
收入就是您追求的价值。但是要小心,当结构发生变化时,您的代码将停止工作。祝你好运
我找到了使用 innerText 和正则表达式提取它的解决方案,然后获得了值起点的索引 'revenue' 我用它来放置收入数量的值它从一个索引点开始 +12 个空格。 我提取了价值的小数点后 8 位作为我永远不会拥有高于 9999.999 美元价值订单的数字,并且我不需要超过 3 位小数的价值所以这应该是我要求的安全范围。
我在自定义 javascript 类型的 GTM 变量中使用了此代码,然后在需要时将该变量包含在重定向像素标签中。
console.log 条目仅用于测试,但我现在已从实时变量代码中删除。
var content = document.head.innerText;
var query=/'revenue': '\d+.\d+',/;
if (content.search(query) > -1 ) {
var resultquery = (content.search(query))
var revenue = (document.head.innerText.substring(resultquery+12, resultquery+20))
console.log (revenue)
return revenue;
} else {
console.log(false);
}