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

Журнал ВРМ World

Из опыта создания системы анализа посещаемости коммерческого сайта (часть 1)

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

Анализ журнала в режиме реального времени. Существует ряд бесплатных продуктов, таких как известные системы 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, который собирает данные в Хранилище данных и анализирует активность посетителей сайта.

В этой статье рассказывается об опыте создания системы анализа посещаемости сайта (clickstream анализа) на основе 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. Поисковые машины

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



Рис. 6. Анализ динамики прихода посетителей с поисковых машин

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

Заключение

Существует множество сервисов для исследования посещаемости сайтов. В чем преимущества применения OLAP-технологии для решения этой задачи?

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

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

Наконец, пользователи отчетов: маркетологи, аналитики, руководители - получают все преимущества технологии OLAP.

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

Автор: Владимир Некрасов, заместитель генерального директора компании Intersoft Lab