Pull to refresh

Веб-аналитика: анализируй это! Часть 2. Сбор данных

Web analytics *
Перед тем, как анализировать данные статистики, нужно понимать, как они были собраны, какие из них могут быть неточными, и почему.

Сервер в интернете получает от браузера пользователя запросы и отдает данные. На каждый просмотр страницы сервер получает один запрос (на тело страницы), а затем несколько дополнительных (картинки, скрипты, таблицы стилей и другие дополнительные данные для отображения страницы). Скрипты на странице также могут генерировать запросы к серверу — в том числе, к отдельному серверу статистики.

Веб-сервер связывает запросы одного и того же пользователя с помощью сессий. Когда к серверу обращается новый пользователь, он создает новый идентификатор сессии, который пользователь сообщает серверу при каждой новой загрузке страницы. Обычно идентификатор сессии передается на сервер из cookie — файла переменных, который браузер может сохранить для конкретного сайта.

Что же сервер может узнать о пользователе?
  • Прежде всего, его ip-адрес. Он обычно используется лишь для одной цели: узнать регион, из которого пользователь выходит в интернет. Большинство провайдеров настроены таким образом, что у каждого пользователя адреса все время меняются. К тому же, многие выходят из сети с единственным внешним адресом. Таким образом, одинаковые адреса вовсе не говорят о том, что с них работает один и тот же пользователь, и наоборот.
  • Адрес страницы, которую посещает пользователь.
  • Адрес страницы, с которой пользователь перешел на текущую, или «реферер». Эти данные оказываются очень полезными. Если пользователь, например, пришел с поисковика, то в предыдущем адресе сохранен запрос, который он ввел в поисковик.
  • Точное время запроса.
  • “Позывные” браузера пользователя — его строку идентификации. По ней можно понять, какие браузеры популярны среди пользователей, а также отличить запрос от поискового робота.
  • Cookie — данные, которые сервер ранее “попросил” браузер запомнить. Cookie могут быть постоянными (сохраненными на определенный период времени) и сессионными (уничтожаемыми после закрытия браузера). Они содержат произвольные наборы переменных и значений.
  • Переменные, которые передает браузер.
Есть три основных вида систем статистики. Одна, “пассивная”, основана на анализе серверных логов — записей о запросах, совершенных на сервер. При каждом обращении пользователя к серверу тот пишет в журнал событий набор данных об этом запросе. Обычно такой журнал ведется сервером для своих нужд, поэтому лишней нагрузки из-за сбора статистики не возникает, и ни один запрос не остается неучтенным. Однако для того, чтобы получить все необходимые данные, стандартной конфигурации сервера недостаточно.

Второй тип систем сбора статистики добавляет на страницу, показываемую пользователем, дополнительный код, который осуществляет запрос к системе статистики. Когда интернет был молодой и браузеры были очень глупыми, для этого использовались картинки: чтобы отобразить картинку на странице, браузеры делали запрос на сервер статистики. Этот сервер делал запись уже в свой журнал, а потом отображал картинку с цифрами — именно с тех пор пошла рунетовская традиция “вешать счетчики” размером 88х31. Этот способ почти всем хуже первого, и использовался только потому, что у владельцев сайтов не было доступа к журналам своего сервера.

Когда браузеры повсеместно научились выполнять скрипты (мини-программы) JavaScript, внешние счетчики значительно поумнели. Помимо стандартного запроса, JavaScript смог передавать в систему статистики множество новых данных: разрешение и цветность экрана, параметры операционной системы. Они вновь получили доступ к рефереру и смогли ставить cookie от имени посещаемого сайта, что упростило отслеживание сессий пользователя. Самым популярным “навороченным” счетчиком такого рода является Google Analytics!

У внешнего счетчика на JS тоже есть недостатки:
— с его помощью невозможно отследить закачки файлов с сайта,
— он записывает лишь переходы на страницы, загруженные полностью (т.к. иначе код не успеет исполниться),
— он требует современного браузера и разрешения на работу скриптов,
— он не работает на мобильных браузерах (кроме Opera Mini и современных смартфонов),
— чтобы записывать параметры внутренней “кухни”, вроде данных учетной записи пользователя, все эти данные нужно перегонять в код счетчика, что обычно небезопасно, трудно и в результате бессмысленно. Представьте себе, что речь идет о сайте знакомств, каждый из пользователей которого имеет анкету с кучей параметров. Чтобы проанализировать поведение пользователей с разными параметрами анкет, нужно связать анкеты с запросами.

В таких сложных случаях разработчики сайтов сами разрабатывают систему записи статистики, в которую добавляют все возможности, которые им нужны. Преимущества такой системы — ее бесконечная гибкость. Из этого вытекает и главный недостаток: необходимость писать для такой системы средства анализа данных вручную. Так что разработчики, нужды которых удовлетворяются готовыми системами, стараются пользоваться именно ими.
  Серверные логи Внешняя статистика Самописная статистика
Отслеживание сессий — (достаточно сложно реализуемо) + +
Запись всех визитов + — (только браузеры со включенным JS и страницы, загруженные полностью) +
Отслеживание закачиваемых файлов + +
Отслеживание поисковых и др. ботов + +
Связь визитов с внутренними данными сайта +
Сравнение с данными других сайтов +
Возможность отслеживания транзакций и воронки продаж + +
Отслеживание событий, не приводящих к запросам на сервер + +

Первое и самое важное, что нужно запомнить при работе со статистическими данными из интернета: точные и полные данные чаще всего добыть очень сложно. Я буду уточнять неточности по мере перечисления метрик. Ключевым навыком аналитика является умение отличить важные ограничения от неважных.
Например, системы внешней статистики на основе JavaScript не будут работать у пользователей с очень старыми браузерами или отключенными ради безопасности скриптами. В большинстве случаев это приемлемо: доля таких пользователей невелика (меньше процента). Однако, если вы собираете данные по корпоративному интранету в компании, которая отключает JS у своих сотрудников, или хотите измерить долю пользователей с отключенными скриптами, этот метод уже не годится.
Общие ограничения систем сбора статистики:
  • Невозможно отследить, кто сидит за компьютером. Можно лишь различить браузеры.
  • Невозможно точно определить регион — лишь попробовать угадать на основе IP пользователя (хотя он может выходить в сеть через удаленный Proxy, VPN и т.д). Например, все пользователи мобильного интернета через Opera Mini записывались системами статистики в регион “Норвегия”, поскольку запросы проходили через адаптирующий сервер в этой стране.
  • Невозможно узнать пользователя, если он пришел с другого компьютера и не ввел пароль на сайт.
  • Невозможно определить, откуда пришел пользователь, если фаерволл фильтрует поле реферера, или же он нажал на ссылку в почте, аське, перепечатал ее из рекламы и т.д.
  • Невозможно определить, совершил ли пользователь транзакцию, если он решил на определенном этапе продолжить ее в оффлайне (позвонить в магазин, например). Эта проблема значительнее других влияет на грамотный расчет качества интернет-магазинов и требует дополнительных мер в оффлайне :(


Стандартные, популярные системы чаще всего используют второй метод. Больше всего мы будем говорить о Google Analytics, и в следующей части рассмотрим основные метрики, доступные его пользователям.
Tags:
Hubs:
Total votes 34: ↑28 and ↓6 +22
Views 11K
Comments Comments 24