Javascript 在单个元素上跟踪多个GA事件

Javascript 在单个元素上跟踪多个GA事件,javascript,jquery,google-analytics,Javascript,Jquery,Google Analytics,这是一个“基本”问题,但要知道,在这方面还有更大的技术障碍。我一直在四处寻找,没有找到类似的问题 情景: 我有一个表单,它是一个响应站点的一部分,该站点将桌面和移动表单填写转换为Adwords 桌面和手机的表单是一样的,所以表单只有一个“提交”按钮,但是,我想知道它是移动表单提交还是桌面表单提交,因此谷歌分析只能跟踪其中一个,对吗?我在手机上使用“m_form_submit”,在桌面上使用“d_form_submit” 所以我想我的问题是: 有没有一种方法可以跟踪单个元素上的2个(或更多)GA事

这是一个“基本”问题,但要知道,在这方面还有更大的技术障碍。我一直在四处寻找,没有找到类似的问题

情景: 我有一个表单,它是一个响应站点的一部分,该站点将桌面和移动表单填写转换为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命中成功之前,您可能需要停止提交表单。新代码反映了这一点。工作非常完美。再次感谢。