我试图在 React 应用程序中实现 partytown,但 partytown 文档不清楚,我无法找到用于 partytown 实现的良好资源。请通过一个很好的例子来指导如何在 React 中实现 partytown。另外,有什么方法可以检查 partytown 是否已实施
我正在将当前使用通过 GTM 配置的 UA 分析的网站迁移为使用 Analytics 4。
\n目前网站有以下购买推送活动:
\n({\'event\':\'purchase\',\'ecommerce\':{\n \'purchase\'{\n \'currency\':\'GBP\',\n \'value\':\'24.99\',\n \'tax\':\'6.3300\',\n \'shipping\':\'6.6600\',\n \'coupon\':\'\',\n \'transaction_id\':\'450048423\',\n \'total_qty\':\'1\',\n \'items\':[{\n \'name\':\'Lasher Tools Deluxe Lopping Bypass Shears\',\n \'id\':\'119836\',\n \'price\':\'24.99\',\n \'quantity\':\'1.0000\'\n }]\n }\n }\n);\nRun Code Online (Sandbox Code Playgroud)\n我已经为 Analytics 4 转换创建了一个新标签,该标签使用从此推送的数据层填充的变量。除了在通过 Google Analytics 进行调试时返回为 [object Object] 的 items 数组之外,这对于所有内容都适用:
\n\n这是我通过跟踪代码管理器调试查看时项目数组的外观:
\n\n我可以在 Analytics 中看到“购买”事件,但是如果我查看“电子商务”选项卡,则收入显示为 \xc2\xa30.00 并且项目列全部为空,我只能假设是因为项目数组问题?
\n自从开始使用Google跟踪代码管理器以来,我一直在尝试为分析提供一些Javascript.目前,我想跟踪退出链接并使用以下自定义html代码段:
<script type="text/javascript">
$(document).ready(function(){
$('.app-cta a').onClick=_gaq.push(['_trackEvent', 'App', 'Click', 'iOS']);
});
</script>
Run Code Online (Sandbox Code Playgroud)
解雇规则是:
{{event}} equals GAevent
Run Code Online (Sandbox Code Playgroud)
然后我尝试了一个射击规则:
{{url}} matches RegEx .*
Run Code Online (Sandbox Code Playgroud)
没运气.Google Analytics和HTTPfox都没有提取任何内容.
我仍然专注于Google跟踪代码管理器.
谁能看到我在这里做错了什么?
我正在使用Google跟踪代码管理器向Google Analytic注册活动.有一次,我正在更改下拉菜单的更改网址.我想在Google Analytics上跟踪同一事件.我担心如果在GA注册事件之前页面被更改会发生什么.如果GTM中有一项功能可以确保在GA注册事件之前页面没有更改,请告诉我.
以下是将在下拉列表更改时执行的代码
var targetCityChangedEventName = "TargetCityChanged";
$("#location", topHeader).bind({
"change": function(ev, obj) {
dataLayer.push({event : targetCityChangedEventName });
var url = "http://" + window.location.host + "/" + $(this).val();
window.location = url;
}
});
Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能在iframe及其父页面之间“同步” dataLayer。
情况:
我想做的是从iframe读取父级中的dataLayer,最好是通过代码管理器(宏)读取。可以从父页面更新该变量,但是iframe应该只读取数据。
这可能吗?Google对这个问题非常迷惑,我真的找不到合适的答案。
我一直在寻找在我的网站上使用Google跟踪代码管理器,但由于默认的Google包含代码被我的服务器上的mod-security安装阻止,我在第一个障碍时失败了:
标准GTM包括代码:
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
Run Code Online (Sandbox Code Playgroud)
来自mod-security的回复:
WARNING: Possibly malicious iframe tag in output
Message: Outbound Anomaly Score Exceeded (score 15): Possibly malicious iframe tag in output
Run Code Online (Sandbox Code Playgroud)
触发的规则是ids 981000和981001.
我可以理解为什么mod-security可能认为带有"display:none; visibility:hidden"的iframe可能是恶意的,并且删除style属性会使规则981001停止触发,但由于规则981000,请求仍然失败.
981000似乎对宽度和高度属性应该有一个强烈的意见,但我已经尝试将它们设置为'1'和'10'无效:-(
有谁知道如何格式化iframe以适应此规则?或者如何更改GTM包含代码以使其不包含iframe?
谢谢
PS:我知道你可以通过删除整个noscript区域来解决这个问题,但我正在寻找一种不会改变包含代码功能的解决方案.
PPS:这是规则981000匹配的模式,在我的大脑在嵌套捕获组云中爆炸之前,我能理解其中的一半;-)
Pattern match "<\W*iframe[^>]+?\b(?:width|height)\b\W*?=\W*?["']?[^"'1-9]*?(?:(?:20|1?\d(?:\.\d*)?)(?![\d%.])|[0-3](?:\.\d*)?%)"
Run Code Online (Sandbox Code Playgroud) 我对GTM比较陌生,并且一直在试验新的界面,它将在4月1日完全取代原版:https://support.google.com/tagmanager/answer/4605576.
但是,在使用本地地址进行测试时,我遇到了一些让Google Analytics注册网页浏览量的问题.使用此处概述的原始GTM布局有一个解决方案: 在Google跟踪代码管理器中跟踪Google Analytics上的localhost,所以我不想问一个重复的问题.但是,在新的Google跟踪代码管理器设计中,不再有将Cookie域设置为"无"的选项,那么我现在如何从本地地址测试Google Analytics和GTM?
我正在努力在我的工作中实施Google跟踪代码管理器,我确实遇到了管理员控制台不可用的问题,所以我必须相信配置是正确的.
无论如何,我初始化了dataLayer数组,我包含了GTM脚本,现在有些事件被发送到谷歌.
已启用增强型电子商务,但如果我将以下代码段粘贴到我的控制台上(摘自" https://enhancedecommerce.appspot.com/checkout "):
dataLayer.push({
"event": "checkout",
"ecommerce": {
"checkout": {
"actionField": {
"step": 1
},
"products": [{
"id": "b55da",
"name": "Flexigen T-Shirt",
"price": "16.00",
"brand": "Flexigen",
"category": "T-Shirts",
"variant": "red",
"dimension1": "M",
"position": 0,
"quantity": 1
}]
},
"promoView": {
"promotions": [{
"id": "bts",
"name": "Back To School",
"creative": "CHECKOUT right",
"position": "right sidebar"
}]
}
}
});Run Code Online (Sandbox Code Playgroud)
控制台返回"true",并且没有数据发送到GTM.
我的问题是,返回值在GTM中意味着什么,而且,当我推出结账事件时,我能否知道GTM标签不发送数据的原因?
只是为了澄清,这个其他代码段工作,返回false并将数据发送到谷歌.
dataLayer.push({
"event": "addToCart",
"ecommerce": {
"currencyCode": "USD",
"add": {
"products": [{
"id": "b55da",
"name": "Flexigen T-Shirt",
"price": …Run Code Online (Sandbox Code Playgroud)在某些国家/地区(例如意大利),法律要求网站必须提供disable/ enable 分析Cookie
例如:对于Google跟踪代码管理器。
我读了这篇文章,涵盖了这个“ opt-in/ opt-outAnalytics(分析)主题”。
但是我仍然有一个问题:
为什么我不能简单地读取包含用户首选项的cookie 服务器端,并且如果找到给定值(即“禁用”),则设置一个属性以使其能够有条件地在我的JSP中包含(或不包含)GTM脚本页?
我以前使用Google跟踪代码管理器成功设置了对讲.几个月没有触及它并去制作一个新的标签,但我发现来自对讲机标签的这个错误:
Error at line 6, character 243: this language feature is only supported for ECMASCRIPT6 mode or better: block-scoped function declaration. Use --language_in=ECMASCRIPT6 or ECMASCRIPT6_STRICT or higher to enable ES6 features.
Run Code Online (Sandbox Code Playgroud)
对讲机的脚本自最初起作用以来没有改变:
<script>
window.intercomSettings = {
app_id: "key"
};
</script>
<script>(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/key';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})()</script>
Run Code Online (Sandbox Code Playgroud)
如果有人遇到此错误并且有任何关于如何解决它的建议或提示,那将非常感激.
javascript ×4
iframe ×2
apache ×1
cookies ×1
data-layer ×1
ecmascript-6 ×1
intercom ×1
jsp ×1
mod-security ×1
partytown ×1
reactjs ×1
server-side ×1