Как убедиться, что перенаправление JS происходит до запуска кода веб-аналитики?

У меня есть клиент, который настраивает систему, в которой определенный сегмент посетителей страницы «А» получит перенаправление Javascript на другую страницу «Б». (Знаю, не идеал, но не моя идея...)

Они используют решение для веб-аналитики на основе тегов Javascript (Omniture SiteCatalyst), развернутое на обеих страницах.

Мой вопрос: для посетителей, которых мы перенаправляем, можем ли мы гарантировать, что перенаправление сработает и что они будут «за пределами» страницы «А» до того, как код веб-аналитики страницы «А» сработает и вызовет просмотр страницы?

Есть ли что-то, что нужно сделать программно, и есть ли более или менее «надежный» способ убедиться, что код аналитики страницы «А» не сработает, или какое-либо решение будет иметь некоторую утечку в зависимости от вариантов в браузерах? и сетевая/клиентская скорость ПК и т.д.?


person Ascendant    schedule 14.09.2011    source источник
comment
Является ли код Google Anyalytics, который вы используете, синхронным или асинхронным? Если он синхронный, просто включите перенаправление перед кодом ga. Если это асинхронно, это более сложно, но, вероятно, выполнимо, если вы будете осторожны.   -  person Ben Lee    schedule 14.09.2011
comment
Даже если он синхронный, не будет ли задержки между срабатыванием кода перенаправления и фактическим перенаправлением?   -  person Ascendant    schedule 14.09.2011


Ответы (2)


Вам нужно будет структурировать код, чтобы он выглядел примерно так (псевдокод):

if( on_page_a ){
  if( user_requires_redirect ){
    redirect( PAGE_B );
  } else {
    fire_analytics( PAGE_A );
  }
} else {
  fire_analytics( PAGE_A );
}

Надеюсь, это имеет смысл

person 0x6A75616E    schedule 14.09.2011
comment
Я думаю, вы можете пропустить условие if (on_page_a) - код находится на странице A, поэтому нет необходимости его проверять. В остальном я с вами согласен. - person Surreal Dreams; 14.09.2011
comment
Из вопроса я понял, что у него один и тот же код аналитики на обеих страницах, поэтому я его и включил.. спасибо - person 0x6A75616E; 14.09.2011
comment
Спасибо, я думаю, что это, вероятно, лучший способ справиться с техническими и политическими ограничениями, которые у нас есть. - person Ascendant; 14.09.2011

Один из способов убедиться в этом — вернуть код JavaScript, выполняющий перенаправление, и ничего более. Есть ли какая-то причина загружать содержимое страницы, когда пользователь будет просто перенаправлен?

Другими словами, на выбранном вами серверном языке:

if in experiment B:
   emit javascript redirection template
else:
   emit template for page A

Где шаблон перенаправления JavaScript — это не что иное, как:

 <script>window.location.href="path/of/page/B";</script>
person Michael Aaron Safyan    schedule 14.09.2011
comment
Какой у вас язык на стороне сервера? Я не знаком с этим. - person Surreal Dreams; 14.09.2011
comment
В идеале мы бы загружали шаблон только в том случае, если посетитель прошел тест, как вы упомянули. Однако, если бы это было действительно идеально, тест и перенаправление были бы на стороне сервера, но из-за политической и технической путаницы оба подхода могут оказаться неосуществимыми. Однако, поскольку код аналитики также является JS, должно быть достаточно разумно просто включить эту часть в логику if-else. - person Ascendant; 14.09.2011
comment
@Surreal Dreams, я просто предоставлял псевдокод, но вы можете написать свой сервер на любом языке, который вам нравится. - person Michael Aaron Safyan; 15.09.2011