当用户导航到一个域内的其他页面时,谷歌分析如何跟踪事件

2024-04-15

在 Google 的文档中,据说可以通过以下方式跟踪事件:

<a onclick="_gaq.push(['_trackEvent', 'category', 'action', 'opt_label', opt_value]);">click me</a> 

或旧版本:

<a onclick="pageTracker._trackEvent('category', 'action', 'opt_label', opt_value);">click me</a>

我正在使用 Firebug 查看单击链接时发出的请求,我看到有中止的请求:

http://www.google-analytics.com/__utm.gif?utmwv=4.7.2&utmn=907737223&....

发生这种情况是因为当用户导航到新页面时浏览器会卸载所有 JavaScript。在这种情况下如何执行事件跟踪?

Edit: Since one picture can be worth a thousand words... alt text

当我单击链接时,Firebug 会向我显示此请求序列(此处显示前四个,后面显示填充页面内容的请求)


问题在于,在用户进入下一页之前,脚本没有足够的时间完成运行。您可以做的是为 GA 代码创建一个包装函数,并在 onclick 中调用包装函数,并在包装​​函数中触发 GA 代码后,设置超时并使用链接的 url 更新 location.href。例子:

<a href="somepage.html" onclick="wrapper_function(this,'category', 'action', 'opt_label', 'opt_value');return false;">click me</a>

<script type='text/javascript'>
function wrapper_function(that,category,action,opt_label,opt_value) {
  _gaq.push(['_trackEvent', category, action, opt_label, opt_value]);
  window.setTimeout("window.location.href='" + that.href + "'", 1000);
}
</script>

代码会根据您的链接有所不同,但希望您能明白这一点 - 基本上,它会在将用户带到目标网址之前等待一段时间,以便给脚本一些执行时间。

Update:这个答案是几年前发布的,从那时起发生了很多事情,但我仍然偶尔收到反馈(和赞成票),所以我想我会用新信息更新这个答案。这个答案仍然可行,但如果您使用Universal Analytics,那么有一个命中回调 https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#hitCallback功能可用。这hitCallback其传统功能也可用_gaq (ga.js) https://stackoverflow.com/questions/22743105/google-analytics-hitcallback-event-tracking-not-working/22747401#22747401但它没有正式记录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当用户导航到一个域内的其他页面时,谷歌分析如何跟踪事件 的相关文章

随机推荐

  • C# 使用子类参数重写方法

    我正在努力实现这样的目标 public abstract class BaseEvent public abstract void Dispatch IEventHandler handler public class MyEvent Ba
  • Android 上检测触摸区域

    是否有可能检测到每个被触摸的像素 更具体地说 当用户触摸屏幕时 是否可以跟踪用户触摸的点簇的所有 x y 坐标 如何区分用户用拇指绘图和用指尖绘图的区别 我想根据用户触摸屏幕的方式反映画笔的差异 并且还想跟踪随着时间的推移触摸的所有像素的
  • rake 资产预编译失败

    当我跑步时bundle exec rake assets precompile trace 我的预编译失败 但我看不出任何具体原因 请参阅此粘贴箱以获取我的输出 http pastebin com zggZyPyM http pastebi
  • Android - 拦截并传递所有触摸事件

    我有一个覆盖 ViewGroup 它是屏幕的大小 我想用它来在用户与应用程序交互时显示效果 但仍然将 onTouch 事件传递给任何底层视图 我对所有 MotionEvents 不仅仅是 DOWN 感兴趣 所以 onInterceptTou
  • 找不到模块:错误:无法解析模块“semantic-ui-css”

    我正在尝试使用Webpack https webpack github io 语义用户界面 http semantic ui com 但没有成功 我试过 npm i semantic ui css In my index js import
  • OData / WCF 数据服务不适用于复杂类型

    我对 OData 和 WCF 数据服务是全新的 所以这可能是一个简单的问题 我正在使用 VS Web Developer Express 2010 其中我在控制台应用程序中托管了一个非常简单的 WCF 数据服务 它从存储库 位于单独的 dl
  • EditText 在 ListView 中滚动时丢失内容?

    我有列表项EditText里面不知道会有多少物品 当我输入一些文本时遇到问题EditText 然后向下滚动ListView 当我再次向上滚动后 我的第一个中没有文字EditText 或者有一些来自其他人的文字EditText from Li
  • 如何避免在 Java 中检查空值?

    I use x null避免NullPointerException https docs oracle com javase 9 docs api java lang NullPointerException html 还有其他选择吗 i
  • 通过匹配模式过滤日志 - log4j

    我的 log4j xml 文件中有以下布局模式 d ISO8601 c p t x 9 5 4 RC12 m n 我想要的是 每当我收到包含消息的日志时process proc completed 应该跳过 我的意思是除了包含此消息的日志之
  • 我的 if 语句有什么问题?

    我现在正在尝试探索帕斯卡 我遇到了一些编译器错误 我写了一个 if else if 语句 如下所示 if input y or input Y then begin writeln blah blah end else if input n
  • GCC 内联汇编错误:“‘int’的操作数大小不匹配”

    首先 如果有人知道标准 C 库的函数 则会打印 一个字符串 无需寻找二进制零 但需要绘制字符数 请告诉我 否则 我会遇到这个问题 void printStringWithLength char str ptr int n chars asm
  • .net 应用程序挂起。奇怪的崩溃转储

    生产服务器有一个 24x7 运行的应用程序 有时它开始消耗接近 50 的 CPU 我无法在本地重现它 但我用 adplus 做了内存转储 服务器有Windows 2008 Server 64位 NET 3 5 该应用程序侦听 MSMQ 并有
  • Python:将函数作为参数传递,并设置选项

    在Python中 我需要调用许多非常相似的函数相同的输入参数 sampleA and sampleB 唯一的问题是其中一些功能需要option需要设置 有些则没有 例如 import scipy stats scipy stats mann
  • VBA 中的简单递归函数与 Excel 未返回预期结果

    我有一个用 VBA 编写的简单递归函数 它执行以下操作 它必须计算我们必须采用参数 x 的对数来查找 log x 例子 logcount 5 log 5 0 6 所以函数应该返回 1 logcount 89 log 89 1 9 和 log
  • 不同日期的列表

    我有以下代码 List
  • Picasso + RxJava2:方法调用应该从主线程发生

    这是我最初的问题 我试图在其中显示一些图像AutoScrollViewPager 我正在使用毕加索来实现同样的目的 但是 我想使用 Rxjava2 Picasso 做同样的事情 我对 RxJava 概念有点陌生 因此 如果有人可以帮助我提供
  • 无法让 Docker 容器相互通信

    我有两个 Docker 容器 一个运行 React 应用程序 使用 create react app 构建 另一个运行 Node 应用程序 API 我设置了一个 docker compose 文件 并根据文档 https docs dock
  • 每次引发异常时调用钩子函数

    假设我希望每次在程序中的任何位置引发任何异常时都能够记录到文件中 我不想修改任何现有代码 当然 这可以推广到每次引发异常时都能够插入一个钩子 下面的代码做这样的事情被认为是安全的吗 class MyException Exception d
  • D3:细化序数比例以返回颜色组?

    我已经设置了一个序数尺度D3 js https github com mbostock d3 wiki API Reference如下 到目前为止效果很好 var color d3 scale ordinal range blue red
  • 当用户导航到一个域内的其他页面时,谷歌分析如何跟踪事件

    在 Google 的文档中 据说可以通过以下方式跟踪事件 a click me a 或旧版本 a click me a 我正在使用 Firebug 查看单击链接时发出的请求 我看到有中止的请求 http www google analyti