Консалтинг и автоматизация в области управления
эффективностью банковского бизнеса

Публикации

PC Week/RE

OLAP-анализ посещаемости сайта

Интернет существенно изменил технологию ведения бизнеса многих предприятий. Сегодня большинство коммерческих организаций имеют собственный сайт, который играет роль электронного представительства и выставочного зала, и является важным, а иногда и главным средством донесения до покупателя информации о товарах и услугах, предлагаемых предприятием. Существенная часть рекламной активности предприятий также переместилась в Интернет. Поэтому анализ посещаемости сайта (click-stream анализ) стал весьма актуальной проблемой. На рынке существует большое количество решений на эту тему, построенных по разным бизнес-моделям и основанных на различных технологиях.

Анализ журнала в режиме реального времени. Существует ряд бесплатных продуктов, таких как известные системы Analog или WebStat, как правило, реализованных в виде Java-аплета, читающего в режиме реального времени журнал сайта и отображающий на html-странице некоторое фиксированное количество отчетов. Эти решения предполагают относительно небольшой размер журнала и скромные потребности пользователей.

Аренда аналитического сервиса. Второй вариант - аналитический сервис, который предоставляется на сайте третьей фирмы тем компаниям, которые предпочитают не эксплуатировать ПО, а арендовать чужие вычислительные ресурсы. Пользователь располагает на своем сайте специальный скрипт - шпион (spider), который получает информацию от броузера посетителя и посылает его на сайт поставщика сервиса, где информация записывается в общую базу данных. При входе на личную страницу этого сайта пользователь сервиса может выполнять параметризованные запросы и получать отчеты заданной формы. Одним из популярных примеров такого сервиса на Западе является WebTrends компании NetIQ, а в России SplyLog, одноименной компании.

Коробочные продукты масштаба предприятия. Третий вариант - специальная система, которая продается как коробочный продукт и состоит из модулей, устанавливаемых на стороне Интернет-сервера и в локальной сети компании. Эти продукты позволяют накапливать историю работы сайта, хранить и обрабатывать значительные объемы данных.

Решения на базе OLAP-инструментов. Владельцу сайта нужно знать, как меняется количество посетителей, какие страницы, среди каких групп пользователей были наиболее популярны за заданный период, и так далее, то есть получать итоги посещаемости сайта в различных разрезах. Это классическая задача OLAP анализа. При наличии данных подобные запросы с разнообразной фильтрацией и группировками можно выполнять многократно и мгновенно. В терминах OLAP имя страницы, имя посетителя и период будут измерениями, а количество запросов - фактами. Пользователь получает неограниченное количество динамических отчетов, суммирующих факты в разрезе измерений.

Поэтому большинство поставщиков OLAP-продуктов предлагают свои решения для анализа посещаемости сайта. В базе данных, фиксирующей запросы посетителей сайта, скапливается огромное количество информации за длительные периоды, эта информация используется только для анализа, требуется быстро получать большие выборки данных. Таким образом, налицо все признаки классического Хранилища данных, поэтому, как правило, поставщики OLAP-решений предлагают комплексы, включающие в себя средства извлечения, очистки и загрузки данных (ETL - Extract, Transformation, Loading), Хранилище данных и OLAP-инструмент для анализа данных. Корпорация Oracle поставляет "коробочный" продукт масштаба предприятия Oracle9iAS Clickstream Intelligence, который построен на комплексе продуктов Oracle - СУБД Oracle9i, сервере приложений Oracle9i Application Server (Oracle 9iAS), Oracle Warehouse Builder 2.1.1., в качестве клиентского средства предлагается OLAP-клиент Oracle Discoverer. Этот продукт позволяет в одновременно анализировать данные нескольких сайтов предприятия.

Microsoft предлагает решение "Clickstream analytics for the Microsoft business intelligence platform", которое является не продуктом, а концепцией рекомендуемой пользователям продуктов корпорации и включает в себя Интернет сервер Microsoft Commerce Server, СУБД MS SQL для построения Хранилища данных, OLAP-сервер MS Analysis Services для создания многомерных витрин данных. В качестве клиентского средства предлагается Excel с встроенным в него OLAP-компонентом PivotTable, или комплект COM-компонент Office Web Components.

SAS Institute поставляет продукт, именуемый IntelliVisor, который собирает в Хранилище данных и анализирует данные об активности посетителей сайта.

В этой статье рассказывается об опыте создания системы анализа посещаемости сайта (click-stream анализа) на основе OLAP-клиента Контур Стандарт компании Intersoft Lab . Система была создана для анализа работы нового сайта, посвященного коммерческому продукту и реализованного на ОС Linux и сервере Apache. Данные для иллюстраций, приведенных в этой статье, для большей наглядности были сгенерированы.

Источник данных

Самым доступным и полным источником данных для анализа работы сайта является стандартный журнал Интернет сервера. Например, журнал сервера Apache содержит поля IP-адрес, Дата, Время, Имя запрашиваемого ресурса, Статус запроса, Страницу, с которой пришел посетитель. Аналогичная информация журнала доступна пользователям OC Microsoft Windows и сервера IIS.

Существуют альтернативные источники данных, например, скрипт, расположенный на сайте и получающий информацию от броузера. Эта техника позволяет получать практически ту же информацию, но не требует доступа к журналу сайта. Поэтому она используется поставщиками внешних сервисов.

Для идентификации посетителя вместо IP-адреса иногда используют запись cookie - текстовой строки на его компьютер при первом заходе на сайт. При последующих заходах посетитель опознается по этой строке. Это решает ряд проблем, например, некоторые провайдеры, например AOL, динамически генерируют IP-адреса, что делает их пользователей анонимными. Однако можно легко запретить запись cookie на свой компьютер, или периодически очищать его, что делает такую технологию не более точной, чем распознавание посетителя по IP-адресу.

Поскольку в нашем случае мы имеем доступ к журналу сайта, то именно он был выбран в качестве источника данных, для идентификации посетителей был использован их IP-адрес, как наиболее простое и приемлемое по точности решение. В связи с тем, что требовалось обеспечить высокую интерактивность работы пользователя с отчетами, было принято решение о хранении журнала в специальной базе данных. Для этого разработан простой скрипт на языке Python - "мигратор", который с заданной периодичностью копирует новые записи журнала в СУБД MS SQL. "Мигратор" стал нашим ETL инструментом.

Доступ к данным

Существует несколько вариантов расположения БД журнала и способов извлечения данных из нее.

Прямой доступ к БД по IP-протоколу. База данных располагается на удаленном Интернет-сервере, а клиентская программа на персональном компьютере. Этот способ дает информацию в режиме реального времени и позволяет использовать "толстого" клиента, но порождает высокий трафик, особенно, если пользователей много. Кроме того, он небезопасен и требует специальных мероприятий по защите от хакеров.

Выполнение запроса на Web-странице. Для выполнения запросов к БД, расположенной на Интернет сервере в режиме on-line, можно разработать CGI-модуль и реализовать как традиционный пользовательский интерфейс параметризованных запросов, так и страницу, на которой расположена ActiveX OLAP-компонента, которая будет выполнять эти запросы, и предоставлять пользователю интерактивные отчеты. Таким образом, анализ сайта будет выполняться через Интернет. Этот способ особенно эффективен для массового пользователя и при необходимости непрерывного мониторинга сайта.

Периодическая инкрементальная репликация данных в БД, расположенную в локальной сети. Несмотря на кажущуюся тяжеловесность, это решение очень просто в реализации и предоставляет наиболее комфортные условия для работы конечного пользователя сервиса за счет максимальной скорости выполнения запросов. Кроме того, это наиболее экономичный способ, поскольку он порождает минимальный трафик.

В связи с тем, что нашей задачей являлось создание системы OLAP-анализа корпоративного сайта для нескольких сотрудников компании, был выбран третий вариант.

Расширение информативности

Итак, с заданной периодичностью новые записи журнала сайта копируются в базу данных MS SQL, которая находится в локальной сети компании.

Имя пользователя. О нашем посетителе мы знаем только одно - его IP-адрес. Однако он ни о чем не говорит аналитику. Поэтому в "мигратора" был добавлен код, который запрашивает по IP-адресу имя хоста. Это имя выглядит как, например, host123.interbusiness.it. Глядя на него можно понять, что на сайте побывал сотрудник компании interbusiness из Италии. Можно расчленить имя хоста на два поля - имя сервера и страну, что добавит наглядности и удобства в использовании. Однако это очень грубый метод - сервер посетителя может находиться в домене com и при этом располагаться в любой стране.

География посетителей. Более точный способ получить код страны посетителя из его IP-адреса - выполнить запрос к одной из баз данных в Сети, хранящей зарезервированные диапазоны IP-адресов, например, http://www.ripe.net/perl/whois Чтобы преобразовать в отчете код страны в название, в базу данных нужно добавить справочник стран и связать его с таблицей журнала. Для получения кода города или региона можно выполнять запрос к региональным серверам. Получение географических характеристик посетителя - это отдельная интересная тема, на которую можно найти много публикаций в Интернет. Это важнейший вид анализа для глобального бизнеса - международного или в масштабах страны.

Ссылающиеся сервера. Если сайт коммерческий и его владелец заинтересован в высоком трафике, он, наверняка, размещает сведения о сайте и продаваемых на нем продуктах, в каталогах, поисковых машинах и других ресурсах Сети. Поскольку эта работа требует значительного времени, а часто и крупных инвестиций, то необходимо анализировать ее эффективность, а именно получать отчеты о количестве пользователей, зашедших на сайт по ссылкам с других сайтов и с поисковых машин. Из полной ссылки на ссылающуюся страницу можно выделить тип ссылающегося сервера: поисковая машина, News Groups, ссылающийся сайт и собственный сайт. В таблицу журнала добавляется поле "Категория ссылающегося сервера" и создается связанный с ним справочник, также добавляются поле "Ссылающийся сервер", в которое записывается имя сервера, вычлененное из ссылки.

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

Поисковые слова. Из строки ссылки для поисковых машин выделяются поисковые слова, которые для удобства дублируются "мигратором" в отдельное поле таблицы журнала. Это позволит проанализировать области целенаправленных интересов посетителей, а также соответствие этим интересам мета-тегов и контента сайта.

Маршрут движения посетителей. Если отфильтровать категорию ссылающегося сайта по значению "наш сайт", то ссылающиеся страницы станут показывать маршрут движения посетителя. Можно построить классическую реляционную иерархию "родитель-дитя" из двух полей таблицы. В каждой записи в поле "Родитель" будет расположена первая ссылка, а в поле "Дитя" - страница, на которую перешел посетитель с родительской страницы. Такую иерархию можно самыми разными способами "раскручивать" в отчетах. В частности, OLAP-система может показать наиболее популярных "Родителей", с которых посетитель приходит на страницу "Заказ продукта". Справедливости ради нужно сказать, что наиболее полный анализ навигации посетителей предоставляют специализированные программы или системы добычи данных (data mining). Кроме того, эта задача смыкается с CRM-анализом, что было отмечено многими поставщиками, в частности продукт WebTrends CommerceTrends компании NetIQ был интегрирован с известной CRM-системой Siebel.

Профессионалы в области Интернет-технологий, наверняка, знают множество более продвинутых способов добычи информации о посетителях сайта. Для задачи, которую решали мы, данных, перечисленных выше, оказалось вполне достаточно.

В результате этих модификаций база данных журнала превратилась в полноценную витрину данных, построенную по классической схеме "Звезда". Для различных видов отчетов были созданы специальные представления (view). Например, для получения количества уникальных посетителей создается представление, в котором содержатся описательные поля - характеристики посетителя, дата. Запросы пользователя исключаются, создается поле-счетчик как выражение Select 1 AS counter. Это обеспечивает уникальность записи об одном пользователе за одну дату.

Все подготовительные работы наш Web-мастер выполнил за несколько дней.

Создание OLAP-приложения

Для создания аналитического приложения система "Контур Стандарт" настраивается на базу данных, затем в специальном интерфейсе без программирования описываются запросы к базе, после этого на их основе создаются OLAP-отчеты .

Специфика OLAP-технологии такова, что все отчеты для анализа сайта могут быть реализованы как один отчет с множеством измерений (Хост, Дата, Запрос, Ссылка) и тремя фактами (Количество уникальных посетителей, Количество запросов, Объем загрузки). Меняя местами колонки отчета и устанавливая различные фильтры, аналитик может сам получить всю необходимую информацию. Однако пользоваться таким отчетом неудобно.

Поэтому был сделан набор интерактивных отчетов, необходимых для анализа коммерческого сайта:

  1. Уникальные посетители.
  2. География посетителей.
  3. Посещаемые страницы.
  4. Ссылающиеся сайты.
  5. Поисковые машины и слова.
  • Этот набор не является конечным, по мере необходимости могут быть добавлены и другие отчеты, например, "Ошибки", "Скачивание демонстрационных версий" и т.д.

Уникальные посетители

Этот отчет показывает динамику посещений сайта. В верхней части отчета расположены измерения, по которым можно выполнять фильтрацию. С их помощью можно получить серию производных отчетов: "Уникальные посетители из США", "Динамика посещений по дням заданного месяца" и другие.

 
Рис.1

География посетителей

В том случае, если электронный бизнес ориентирован на различные страны или на разные регионы одной страны, этот отчет покажет наиболее значимые регионы для бизнеса, или наоборот, регионы в которых нужно усилить деловую активность. Так же как и прочие OLAP-отчеты, этот отчет может быть трансформирован самими пользователем, который может изменять период отчета, вид графика, устанавливать произвольные сочетания фильтров.


Рис.2

Посещаемые страницы

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


Рис.3

Ссылающиеся сайты

Отчет о ссылающихся сайтах позволяет оценить действенность маркетинговой компании: эффективность банерной рекламы, отдачу от размещения информации в Интернет-каталогах, выявить публикации пресс-релизов в электронных СМИ и пр.

 
Рис. 4

Поисковые машины

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

Отчет легко может быть преобразован в форму, удобную для анализа динамики прихода посетителей с поисковых машин. Для этого нужно перетащить дату из области неактивных измерений в область колонок и изменить тип графика.

 
Рис.5

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

Заключение

Существует множество сервисов для исследования посещаемости сайтов. В чем преимущества применения OLAP-технологии для решения этой задачи? Во-первых, такой подход снимает внешние ограничения на размер анализируемой базы данных и состав отчетов. Можно исследовать данные, накопленные за любой промежуток времени. Новые произвольные OLAP-отчеты создаются быстро и без программирования. Во-вторых, применение описанного подхода позволяет пользователям, не оглядываясь на разработчика сервиса, постоянно расширять поле и логику анализа. Например, модифицируя "мигратор", можно увеличить состав анализируемых показателей, применить сложные алгоритмы расчета недостающих данных и настроить на их основе новые информационные срезы.  Наконец, пользователи отчетов - маркетологи, аналитики, руководители - получают в руки все преимущества технологии OLAP. В сравнении с другими OLAP-решениями, описанная реализация является одной из самых простых и недорогих. Она включает в себя 3 элемента: относительно несложный скрипт для трансформации и загрузки данных, реляционную витрину данных на MS SQL-сервере и клиентскую OLAP-систему.