Javascript 在单个元素上跟踪多个GA事件
这是一个“基本”问题,但要知道,在这方面还有更大的技术障碍。我一直在四处寻找,没有找到类似的问题 情景: 我有一个表单,它是一个响应站点的一部分,该站点将桌面和移动表单填写转换为Adwords 桌面和手机的表单是一样的,所以表单只有一个“提交”按钮,但是,我想知道它是移动表单提交还是桌面表单提交,因此谷歌分析只能跟踪其中一个,对吗?我在手机上使用“m_form_submit”,在桌面上使用“d_form_submit” 所以我想我的问题是: 有没有一种方法可以跟踪单个元素上的2个(或更多)GA事件,而不让用户同时触发这两个事件Javascript 在单个元素上跟踪多个GA事件,javascript,jquery,google-analytics,Javascript,Jquery,Google Analytics,这是一个“基本”问题,但要知道,在这方面还有更大的技术障碍。我一直在四处寻找,没有找到类似的问题 情景: 我有一个表单,它是一个响应站点的一部分,该站点将桌面和移动表单填写转换为Adwords 桌面和手机的表单是一样的,所以表单只有一个“提交”按钮,但是,我想知道它是移动表单提交还是桌面表单提交,因此谷歌分析只能跟踪其中一个,对吗?我在手机上使用“m_form_submit”,在桌面上使用“d_form_submit” 所以我想我的问题是: 有没有一种方法可以跟踪单个元素上的2个(或更多)GA事
理想情况下:告诉GA我想为移动设备提供此事件,为桌面提供此事件?您将此问题标记为“jQuery”,因此我假设您正在使用jQuery侦听表单提交,然后将事件发送给GA 只需发送与移动或桌面版本相关的事件,即可在发送之前进行简单的条件检查:
$('#myform').one('submit', function(e) {
// Prevent form from submitting, and then submit once the GA hit succeeds.
e.preventDefault();
// Change this to whatever you're using to determine what "mobile" is.
var mobile = '(max-width: 600px)';
if (window.matchMedia && window.matchMedia(mobile).matches) {
// Send mobile event.
ga('send', {
hitType: 'event',
eventCategory: 'Form Indentifier',
eventAction: 'submit',
eventLabel: 'mobile label...',
hitCallback: afterHitSucceeds
});
}
else {
// Send desktop event.
ga('send', {
hitType: 'event',
eventCategory: 'Form Indentifier',
eventAction: 'submit',
eventLabel: 'desktop label...',
hitCallback: afterHitSucceeds
});
}
// Once the GA hit succeeds, submit the form.
function afterHitSucceeds() {
$('#myform').submit();
}
});
此函数用于确定特定媒体查询是否匹配(允许您匹配CSS文件中的@media
规则)
如果传递的媒体匹配,将发送移动事件;如果传递的媒体不匹配(或浏览器不支持),将发送桌面事件。请注意,几乎所有移动浏览器都支持
matchMedia
,因此回到桌面活动是一种安全的方式。您如何区分移动浏览器和桌面浏览器?屏幕尺寸?用户代理?是的,正在使用jQuery。谢谢你的解决方案。我会给你做个测试,让你知道。不过,我还是接受了这个答案。谢谢。我实际上已经更新了答案,因为在GA命中成功之前,您可能需要停止提交表单。新代码反映了这一点。工作非常完美。再次感谢。