推迟跟踪代码运行是否合适?

时间:2015-08-23 19:31:23

标签: javascript google-analytics tracking matomo

我知道piwikgoogle analytic和其他类似内容的跟踪代码,放在页面末尾,不会影响页面呈现。但是有一个小问题,页面仍然没有完成。用户浏览器中的进度指示器仍在循环中!如果您使用WebPageTest等工具测试您的网页(其中包含跟踪代码),您会看到跟踪代码请求的总时间数(至少2个请求一个用于JS,另一个用于跟踪)。

我使用window.setTimeout(trackingfunction, 3000)做了一个简单的延迟。跟踪代码将在执行该行后三秒触发!猜测页面完全在那时完成。它会导致指针在页面加载后停止,并且在调用跟踪代码时不再循环。在the tools中,跟踪代码也未显示,报告的时间是页面实时。

是否正确跟踪?它是否跟踪启用javascript的机器人?

PS:
我读了this article,他也做了一些事情来推迟加载第三方javascripts。但我无法决定他的工作是否正确?

1 个答案:

答案 0 :(得分:4)

load事件触发之前,推迟加载Google AnalyticsJS文件是有利有弊的。最终,您决定做的是基于您个人网站的需求。这里没有一个通用的答案。

赞成

  • 您网页的load事件将更快发生。这将(如您所述)意味着微调器不会旋转很长时间,性能分析工具会报告您的页面加载速度更快。
  • Google也(据称)赞成加载速度更快的网页,这可能有助于搜索引擎优化(再次,可能)。

缺点

  • 如果用户在页面完成加载之前离开,Google Analytics将不会了解它们。如果您有很多用户访问您的网站,然后几乎立即离开,他们可能有理由这样做,如果您不知道它发生了什么,您可以&# 39;尝试解决问题。
  • 与上述类似,如果没有计算弹跳用户,您的跳出率可能会人为地低,并且您根据跳出率做出的任何商业决策都可能会受到影响。
  • 如果延迟加载并且您对ga()函数有任何引用,则会冒这些调用产生错误的风险。如果您要延迟下载analytics.js脚本,至少应该在ga()中运行<head>初始化代码,因为它非常小,它的性能影响可以忽略不计。
  • 如果页面上存在任何JavaScript错误,则可能会阻止Google Analytics加载(具体取决于您如何组织/构建JS)。 Google Analytics建议将其代码段放在<head>中的部分原因是为了确保尽快加载它们,并避免出现错误导致其无法加载的问题。

底线:是的,没关系,但只有在你知道自己在做什么,了解其含义,以及你了解的情况下才能做到这一点。缺点是不要关心它们。

更新

Ilya Grigorik写了good article关于<script async>如何解决您对此的一些担忧。您还应注意,Google Analytics的recommended snippet也使用<script async>