Как убедиться, что Google Analytics загружается, даже если пользователь уходит со страницы? - PullRequest
0 голосов
/ 02 августа 2011

Я не уверен, что происходит, когда страница, содержащая асинхронную версию Google Analytics, загружена не полностью, но пользователь закрывает браузер или переходит на другую страницу.

Если аналитика не записывается так, как я предполагаю, то какие методы доступны для этого?

Если это так, как это работает?

Ответы [ 2 ]

0 голосов
/ 02 августа 2011

Это, вероятно, невозможно. Вы можете отредактировать материал Google Analytics, отследив ресурсы, которые они добавляют на страницу, например:

var googleAnalyticsDidTheThing = false;
// ga_src is the src to a script that Google dynamically adds to your page
// this is your asynchronous code
var ga_src = "something.google.com/ga.js";
var ga_script;
var id = setInterval(function () {
  var scripts = document.getElementsByTagName("script");
  for (var i=0, len=scripts.length; i<len; i++) {
    var script = scripts[i];
    if (script.src === ga_src) { ga_script = script; break; }
  }

  var cb = function () {
    googleAnalyticsDidTheThing = true;
  };

  ga_script.onload = cb;
  // This one's for IE
  ga_script.onreadystatechange = function () {
    if (this.readystate === "complete") cb();
  }
}, 50);

Но проблема в том, что вы попадаете на полпути. Вы можете проверить, если это сделано, используя window.onunload, как упоминалось @nidhin. Однако, поскольку javascript является однопоточным, одновременно может выполняться только один процесс. Таким образом, я не вижу возможности для вас заблокировать выход пользователя из страницы, не блокируя также возможность ga_script работать в фоновом режиме. Следовательно, вы можете проверить, завершил ли Google свою работу, но вы не можете убедиться, что Google может завершить.

Вы можете, однако, отправить некоторую информацию на свой собственный сервер (страница может уйти, но данные все равно будут отправлены) и собрать статистику о том, сколько пользователей на самом деле это делают, чтобы понять, какова ваша погрешность является. Вы могли бы даже попытаться сделать часть отслеживания самостоятельно, если вы действительно настроены.

0 голосов
/ 02 августа 2011

Вы можете проверить, что Google Analytics загружается до закрытия окна, как это

<script type="text/javascript">

window.onunload = checkIfAnalyticsLoaded;

function checkIfAnalyticsLoaded() {
  if (window._gat && window._gat._getTrackerByName()) {
    // Do tracking with new-style analytics
  } else if (window.urchinTracker) {
    // Do tracking with old-style analytics
  } else {
    // Probably want to cap the total number of times you call this.
    setTimeout(500, checkIfAnalyticsLoaded();
  }
}    

</script>
...