Что такое Clickstream и почему это полезно для вашего сайта?
Существует множество способов использовать внутренние данные, чтобы улучшить результаты вашего бизнеса. В этой статье мы расскажем вам о том, как вы можете применить данные о посещении к аналитике вашего веб-сайта.
Что такое Clickstream?
Clickstream — это история посещения пользователем сайтов, то есть виртуальный маршрут его передвижения в интернет-пространстве. Здесь учитываются все аспекты — какие сайты или страницы были просмотрены, сколько времени это заняло, а также, какие именно действия пользователь совершил на сайте.
С помощью данных о посещениях ваших пользователей, вы сможете заметить закономерности и тенденции, которым они следуют. Эти данные ваша команда сможет использовать для принятия важных бизнес-решений.
Данные о посещениях можно хранить на сервере, который поддерживает ваш сайт, или в веб-браузере пользователя. Кроме того, рекламные сети в интернете и интернет-провайдеры могут записывать и хранить эту информацию.
После того, как вы соберете всю информацию, вы можете сделать анализ данных истории посещений и получить ценные выводы.
Какую информацию можно получить от Clickstream?
Благодаря данным о посещениях, вы получите информацию о поведении пользователя, в том числе:
- Какой термин или слово пользователи ввели в поисковую систему, что привело к отображению вашей страницы?
- Данные о странице, на которую впервые попал пользователь.
- Разделы, которые пользователи открывали на странице.
- Сколько времени пользователи были на странице?
- На какую страницу пользователи перешли дальше?
Зачем использовать Clickstream?
Ниже мы рассмотрим основные причины, почему вам нужно использовать данные о посещении:
У данных о посещаемости есть множество применений.
Подготовка и разработка алгоритмов анализа данных посещений — это сложно. Однако, как только эти системы установлены, они становятся универсальными. Более того, вы обнаружите, что у данных, которые вы получаете, есть множество применений.
Данные о кликах актуальны.
Поскольку данные о посещениях записывают естественное поведение пользователей на вашем сайте, вы собираете их в режиме реального времени. Вся необходимая информация доступна вам прямо сейчас.
Данные о посещаемости дают полный анализ.
Сбор данных о посещаемости даст вам полное и развернутое представление о поведении ваших пользователей и их действиях.
Как применить Clickstream?
Ниже мы рассмотрим некоторые рабочие способы, с помощью которых ваша компания может использовать эти данные, чтобы улучшить свою маркетинговую деятельность.
Выявление тенденций и проблемных мест.
Вам доступна информация о поведении ваших пользователей вместе с данными об истории посещений. Анализируя большое количество информации, вы начнете замечать некоторые закономерности. После того, как вы успешно выявите эти тенденции, вы сможете внести изменения на ваш сайт.
Данные о посещениях покажут вам, какие действия совершают ваши клиенты, какие продукты пользуются популярностью, а какие страницы остаются незамеченными. С этими данными вы научитесь инвестировать в конкретные работающие части вашего контента. Данные о посещаемости также помогут вам выявить как слабые и неработающие места вашего ресурса.
Предотвращение брошенной корзины.
Cart abandonment (брошенная корзина) — это явление, когда пользователь положил товар в корзину, но по каким-либо причинам покинул ее и не завершил покупку.
Если вы заметили такое поведение пользователей, то возможно, пришло время внести изменения в ваш сайт электронной коммерции.
Есть несколько причин, почему пользователи бросают корзины и не совершают покупку — медленная скорость вашего сайта, неудобная навигация, непонятная система оплаты. С помощью анализа данных о посещениях вы сможете определить проблему и решить ее.
Изменение путей доступа клиентов к контенту.
Анализ данных о посещениях дает вашей команде информацию о различных путях доступа клиентов к страницам вашего продукта. Если текущий путь не интуитивно понятен и сложен, вам стоит изменить его, чтобы он стал более удобным и доступным для пользователя.
Например, если на вашем сайте нет четкого призыва к действию, то пользователи могут потеряться на нем. Возможно, вы увидите, что многие пользователи перескакивают со страницы на страницу и тратят на это большое количество времени. Эти знания помогут вам скорректировать путь клиента до нужного контента.
Пример Clickstream
Давайте рассмотрим пример данных о посещениях на веб-сайте HubSpot. Например, пользователь захотел узнать больше о поисковой оптимизации SEO. Для начала он ввел «Что такое SEO» в строку Google.
Дальше в предложенных вариантах он увидит статью HubSpot, которая отвечает на вопрос, что такое SEO и нажмет на нее. Далее он попадет на блог Hubspot и начнет изучать статью.
С помощью данных о посещениях HubSpot сможет узнать, как долго пользователь находился на странице и какой именно термин привел его на эту страницу.
Предположим, пользователь дошел до конца статьи и готов узнать больше, поэтому он нажимаете на ссылку обучения по SEO.
Благодаря данным о кликах HubSpot узнает, что именно в этом месте пользователи нажал кно пку «Далее». Эти идеи компания может использовать для того, чтобы сделать сайт более интуитивно понятным для всех пользователей.
Кликстрим (Clickstream)
Интернет-бизнес — особый сегмент экономики. Компании, которые активно используют возможности онлайн торговли, в значительной степени расширяют область своего влияния на потребительском рынке. В числе основных преимуществ интернет-маркетинга — возможность получения расширенной информации о своей клиентуре. Clickstream — это история посещения пользователем сайтов, своего рода виртуальный маршрут его передвижения в интернет-пространстве. Здесь учитываются все аспекты — какие сайты или страницы были просмотрены, сколько времени это заняло, какие действия были предприняты на сайте, порядок посещения страниц и электронные адреса, по которым были получены или отправлены письма.
Такой отчет позволяет заинтересованным компаниям узнать, что ищут клиенты, откуда они, в каких сочетаниях приобретаются товары и пр. Таким образом можно не только лучше сформировать предложение, но и добавить необходимые пользователям сопутствующие товары, что увеличит объем продаж.
Подпишитесь
Digitalnews.ru 2018. © Все права защищены. Информационный портал об интернет-маркетинге.
При использовании материалов сайта обязательна установка активной гиперссылки на страницу с этой публикацией на DigitalNews.ru
Нашли опечатку? Ctrl+Enter. Спасибо!
Принципы построения систем потоковой аналитики
Проектирование систем потоковой аналитики и потоковой обработки данных имеет свои нюансы, свои проблемы и свой технологический стек. Об этом мы поговорили в очередном открытом уроке, прошедшим накануне запуска курса «Data Engineer».
На вебинаре обсудили:
- когда нужна потоковая обработка;
- какие элементы есть в СПОД, какие инструменты мы можем использовать для реализации этих элементов;
- как построить свою систему анализа кликстримов.
Когда нужна потоковая обработка? Stream vs Batch
Прежде всего, следует разобраться, когда нам нужна потоковая, а когда пакетная обработка. Давайте поясним сильные и слабые стороны этих подходов.
Итак, минусы пакетной обработки (batch):
- данные доставляются с задержкой. Поскольку у нас есть некий период вычислений, то на этот период мы всегда отстаём от реального времени. И чем больше итерации, тем сильнее мы отстаём. Таким образом, мы получаем задержку по времени, что в некоторых случаях критично;
- создаётся пиковая нагрузка на железо. Если мы очень много вычисляем в пакетном режиме, у нас по окончании периода (дня, недели, месяца) наблюдается пик нагрузки, ведь посчитать нужно много всего. К чему это приводит? Во-первых, начинаем упираться в лимиты, которые, как известно, не бесконечны. В результате система периодически работает на пределе возможностей, что нередко заканчивается сбоями. Во-вторых, так как все эти job’ы начинаются одновременно, они конкурируют и рассчитываются довольно медленно, то есть на быстрый результат рассчитывать не приходится.
- высокая эффективность. Углубляться не будем, так как эффективность связана и с компрессией, и с фреймворками, и с применением колоночных форматов и т. п. Факт заключается в том, что пакетная обработка, если брать количество обработанных записей на единицу времени, будет эффективнее;
- простота разработки и поддержки. Вы можете обрабатывать какую-нибудь часть данных, тестируя и пересчитывая по мере необходимости.
- результат в режиме реального времени. Мы не ждём конца каких-либо периодов: как только к нам приходят данные (пусть даже совсем небольшой объём), мы можем сразу их отпроцессить и передать дальше. То есть результат по определению стремится к реал-тайму;
- равномерная нагрузка на железо. Понятное дело, что есть суточные циклы и т. д., однако нагрузка всё равно распределяется на весь день и получается более равномерной и предсказуемой.
- сложность разработки и поддержки. Во-первых, тестироваться, управлять и получать данные несколько тяжелее, если сравнивать с batch. Вторая сложность (на самом деле, это самая основная проблема) связана с откатами. Если job’ы не отработали, и произошёл сбой, то очень трудно уловить именно тот момент, где всё сломалось. И решение проблемы потребует от вас больше усилий и ресурсов по сравнению с пакетной обработкой.
- Действительно ли нужен real-time?
- Много ли потоковых источников?
- Критична ли потеря одной записи?
- выкладка товара не меняется в реал-тайме;
- данные чаще всего доставляются в пакетном режиме;
- потери информации критичны.
Пример 2. Аналитика для веб-портала:
- скорость аналитики определяет время реакции на проблему;
- данные поступают в реальном времени;
- потери небольшого количества информации о пользовательской активности допустимы.
Таким образом, во втором примере лучше использовать стримы.
Элементы СПОД
Инженеры обработки данных захватывают, перемещают, доставляют, преобразовывают и хранят эти самые данные (да-да, хранить данные — это тоже активный процесс!).
Следовательно, чтобы построить систему потоковой обработки данных (СПОД), нам будут нужны следующие элементы:
- загрузчик данных (средство доставки данных до хранилища);
- шина обмена данными (нужна не всегда, но в стримах без неё никак, т. к. вам потребуется система, через которую вы будете обмениваться данными в реал-тайме);
- хранилище данных (как же без него);
- ETL-движок (необходим, чтобы делать различные фильтрации, сортировки и прочие операции);
- BI (чтобы выводить результаты);
- оркестратор (связывает весь процесс воедино, организовывая многоэтапную обработку данных).
Инструменты для обработки потоков данных
На роль загрузчика данных у нас есть несколько «кандидатов»:
- Apache Flume
- Apache NiFi
- StreamSets
Apache Flume
Первый, о ком поговорим — это Apache Flume — инструмент для транспортировки данных между различными источниками и хранилищами.
- есть практически везде
- давно используется
- достаточно гибкий и расширяемый
- неудобная конфигурация
- сложно мониторить
Выше мы создаём один простейший канал, который “сидит” на порту, берёт оттуда данные и просто их логирует. В принципе, для описания одного процесса это ещё нормально, но когда у вас таких процессов десятки, конфигурационный файл превращается в ад. Кто-то добавляет некие визуальные конфигураторы, но зачем мучиться, если есть инструменты, которые делают это из коробки? Например, те же NiFi и StreamSets.
Apache NiFi
По сути, выполняет ту же роль, что и Flume, но уже с визуальным интерфейсом, что большой плюс, особенно когда процессов много.
Пару фактов о NiFi
- изначально разработан в АНБ;
- сейчас поддерживается и развивается Hortonworks;
- входит в состав HDF от Hortonworks;
- имеет особую версию MiNiFi для сбора данных с устройств.
У нас есть поле для творчества и этапы обработки данных, которые мы туда накидываем. Есть много коннекторов на все возможные системы и т. д.
StreamSets
Это тоже система управления потоком данных с визуальным интерфейсом. Она разработана выходцами из Cloudera, легко устанавливается в виде Parcel на CDH, имеет особую версию SDC Edge для сбора данных с устройств.
Состоит из двух компонент:
- SDC — система, выполняющая непосредственно обработку данных (free);
- StreamSets Control Hub — центр управления несколькими SDC с дополнительными возможностями по разработке пайплайнов (paid).
Неприятный момент — у StreamSets есть как бесплатная, так и платная части.
Шина обмена данными
Теперь давайте разберёмся, куда мы эти данные будем заливать. Претенденты:
- Apache Kafka
- RabbitMQ
- NATS
Во всех остальных случаях, Kafka — отличный выбор. По сути, это брокер сообщений с горизонтальным масштабированием и огромной пропускной способностью. Он отлично интегрирован во всю экосистему инструментов для работы с данными и выдерживает большие нагрузки. Обладает универсальнейшим интерфейсом и является кровеносной системой нашей обработки данных.
Внутри Kafka делится на Topic — некий отдельный поток данных из сообщений с одинаковой схемой или, хотя бы, с одинаковым назначением.
Чтобы обсудить следующий нюанс, нужно вспомнить, что источники данных могут немного различаться. Очень важен формат данных:
Отдельного упоминания заслуживает формат сериализации данных Apache Avro. Система использует JSON для определения структуры данных (схемы), которые сериализуются в компактный бинарный формат. Следовательно, мы экономим огромное количество данных, а сериализация/десериализация происходит дешевле.
Вроде бы всё неплохо, но наличие отдельных файлов со схемами порождает проблему, так как нам нужно между разными системами обмениваться файлами. Казалось бы, это просто, но когда вы работаете в разных отделах, ребята на другом конце могут что-нибудь поменять и успокоиться, а у вас всё поломается.
Чтобы не передавать все эти файлы на флешках, дискетах и наскальных рисунках, существует специальный сервис — Schema registry. Это сервис для синхронизации avro-схем между сервисами, которые пишут и читают из Kafka.
В терминах Kafka продюсер — это тот, кто пишет, консьюмер — тот, кто потребляет (читает) данные.
Хранилище данных
Претенденты (на самом деле вариантов много больше, но возьмем лишь несколько):
- HDFS + Hive
- Kudu + Impala
- ClickHouse
Как этого добиться в стриминговых системах:
- выявить уникальный id (можно составной)
- использовать этот id для дедупликации данных
- Kudu + Impala
- ClickHouse
Что касается ClickHouse, то это аналитическая база данных от Yandex. Её главное назначение — аналитика на таблице, наполняемой большим потоком сырых данных. Из плюсов — есть движок ReplacingMergeTree для дедупликации по ключу (дедупликация предназначена для экономии места и может оставлять дубликаты в некоторых случаях, нужно учитывать нюансы).
Остаётся добавить несколько слов про Divolte. Если помните, мы говорили о том, что некоторые данные нужно захватывать. Если вам нужно быстро и на коленке организовать аналитику для какого-нибудь портала, то Divolte — отличный сервис для захвата пользовательских событий на веб-странице через JavaScript.
Практический пример
Что попытаемся сделать? Попробуем построить пайплайн, чтобы в реальном времени собирать Clickstream-данные. Clickstream — виртуальный след, который пользователь оставляет во время нахождения на вашем сайте. Будем захватывать данные с помощью Divolte, а писать их в Kafka.
Для работы нужен Docker, плюс потребуется клонировать следующий репозиторий. Всё происходящее будет запущено в контейнерах. Чтобы согласованно запустить сразу несколько контейнеров будет использоваться docker-compose.yml. Кроме того, есть Dockerfile, собирающий наш StreamSets с определёнными зависимостями.
Также есть три папки:
- в clickhouse-data будут писаться данные clickhouse
- ровно такая же папочка (sdc-data) у нас будет для StreamSets, где система сможет хранить конфигурации
- третья папка (examples) включает в себя файл с запросами и файл с конфигурацией пайплайна для StreamSets
Для запуска вводим следующую команду:
docker-compose up
И наслаждаемся тем, как медленно, но верно запускаются контейнеры. После запуска мы можем перейти по адресу http://localhost:18630/ и сразу же потрогать Divolte:
Итак, у нас есть Divolte, который уже получил какие-то события и записал их в Kafka. Попробуем их высчитать с помощью StreamSets: http://localhost:18630/ (пароль/логин — admin/admin).
Чтобы не мучиться, лучше импортировать Pipeline, назвав его, к примеру, clickstream_pipeline. А из папки examples импортируем clickstream.json. Если всё ок, увидим следующую картину:
Итак, мы создали connection к Кафке, прописали, какая Кафка нам нужна, прописали, какой топик нас интересует, потом выбрали те поля, которые нас интересуют, потом поставили слив в Кафку, прописав, в какую Кафку и какой топик. Отличия в том, что в одном случае, Data format — это Avro, а во втором — просто JSON.
Идём дальше. Мы можем, например, сделать превью, которое захватит в реальном времени из Кафки определённые записи. Далее всё записываем.
Выполнив запуск, увидим, что у нас в Кафку летит поток событий, причём это происходит в реал-тайме:
Теперь можно сделать для этих данных хранилище в ClickHouse. Чтобы работать с ClickHouse, можно использовать простой нативный клиент, выполнив следующую команду:
docker run -it --rm --network divolte-ss-ch_default yandex/clickhouse-client --host clickhouse
Обратите внимание — в этой строке указана сеть, к которой нужно подключаться. И в зависимости от того, как у вас называется папка с репозиторием, название сети у вас может отличаться. В общем случае команда будет следующей:
docker run -it --rm --network yandex/clickhouse-client --host clickhouse
Список сетей можно посмотреть командой:
docker network ls
Что же, осталось всего ничего:
1. Сначала «подпишем» наш ClickHouse на Кафку, «объяснив ему», какого формата данные там нам нужны:
CREATE TABLE IF NOT EXISTS clickstream_topic ( firstInSession UInt8, timestamp UInt64, location String, partyId String, sessionId String, pageViewId String, eventType String, userAgentString String ) ENGINE = Kafka SETTINGS kafka_broker_list = 'kafka:9092', kafka_topic_list = 'clickstream', kafka_group_name = 'clickhouse', kafka_format = 'JSONEachRow';
2. Теперь создадим реальную таблицу, куда будем класть итоговые данные:
CREATE TABLE clickstream ( firstInSession UInt8, timestamp UInt64, location String, partyId String, sessionId String, pageViewId String, eventType String, userAgentString String ) ENGINE = ReplacingMergeTree() ORDER BY (timestamp, pageViewId);
3. А потом обеспечим связь между этими двумя таблицами:
CREATE MATERIALIZED VIEW clickstream_consumer TO clickstream AS SELECT * FROM clickstream_topic;
4. А теперь выберем необходимые поля:
SELECT * FROM clickstream;
В итоге выбор из целевой таблицы даст нужный нам результат.
Вот и всё, это был простейший Clickstream, который можно построить. Если хотите выполнить вышеописанные шаги самостоятельно, смотрите видео целиком.
- анализ данных
- потоковая аналитика
- kafka
- clickhouse
- Data Engineer
- Блог компании OTUS
- Анализ и проектирование систем
- Визуализация данных
Wiki
Энциклопедия wiki для интернет-маркетолога. В ней Вы найдете термины и информацию по маркетингу, digital маркетингу, продвижению сайтов, разработке сайтов, контекстной рекламе, медийной рекламе, веб дизайну, cмм и другие полезные знания.
Clickstream
Clickstream
Clickstream – журнал, который юзер оставляет после себя в процессе навигации по Глобальной сети. В нем фиксируется работа в Интернете, продолжительность просмотров, порядок визитов и т.д. С помощью данного журнала выясняют, каковы интересы и предпочтения у целевой аудитории.
Другие термины из категории «Анализ»
Категории
- Анализ (66)
- Разработка сайтов (59)
- Интернет-маркетинг (43)
- Оптимизация сайтов (39)
- Ссылочная оптимизация (38)
- Сервисы (26)
- Внутренняя оптимизация (20)
- Техническое SEO (19)
- Ранжирование (17)
- Контекстная реклама (14)
- Дизайн (13)
- Текстовые термины (9)
- Яндекс (8)
- Черное SEO (7)
- Фильтры и алгоритмы PC (6)
- Поисковые запросы (6)
- SMM (6)
- Google (4)
- Email маркетинг (3)
Оставьте заявку
Расскажите о своем проекте и задайте свои вопросы.
Вскоре наш специалист свяжется с Вами!
- +375 (29) 15-44-000
- г.Минск, ул.Широкая, д.3, оф.146
- info@webfocus.by
впечатления
Отзывы клиентов
Непременно ознакомьтесь с тем, что пишут о нашей компании клиенты. Мнение тех, кто платит свои деньги, стоит дорого! Рады, что выбрали верный вектор развития. Работали и с директорами заводов, и с ИП. Найдем продуктивный язык и с читателем.
О.Д. Тетерина
Говорим спасибо, настоящим специалистам Web Focus, которые восстановили работу по контекстной рекламе. Как никогда, оперативность и ответственность в подходе дала столь быстрые результаты – работа с продвижением возобновлена, сайту оказывают полную техническую поддержку, поток входящих клиентов остается на уровне, несмотря на короткие сроки сотрудничества. Ценовая политика и уровень обслуживания соответствуют заявленному уровню компании. Говорим спасибо, настоящим специалистам Web Focus, которые восстановили работу по контекстной рекламе. Как никогда, оперативность и ответственность в подходе дала столь быстрые результаты – работа с продвижением возобновлена, сайту оказывают полную техническую поддержку, поток входящих клиентов остается на уровне, несмотря на короткие сроки сотрудничества. Ценовая политика и уровень обслуживания соответствуют заявленному уровню компании. Это мой.
С. А. Зазерская
Выражаю признательность компании «Веб Фокус» за плодотворное сотрудничество при создании совершенно новой стратегии продвижения. Наши опасения не только в снижении позиций сайта, но и количестве входящий обращений оказались напрасными. Молодые и креативные сотрудники новый подход в продвижении наших услуг, и не остановились на продвижении с помощью контекстной рекламы и SEO, предложив использовать наружную рекламу.
“АЛК++Компании”
«АЛК++Компани» выражает благодарность, принимавшей участие в разработке нашего сайта. Отдельно стоит отметить помощь программиста Владимира, за творческий подход к решению нетривиальных задач и строгое соблюдение сроков проекта. Он смог разработать новый модуль, который позволяет удобно производить поиск необходимых планировок квартир для наших покупателей. Мы готовы рекомендовать Web Focus.
Н.Е. Кривонос
Рекомендуем компанию «Веб Фокус» как компетентного, надежного и отзывчивого делового партнера и надеемся на дальнейшее сотрудничество.Техническое обслуживание и рекламу доверили «Веб Фокус»! Профессионализм, точное выполнение договорных обязательств и адекватная стоимость. Дня нас предложили индивидуальную стратегию продвижения нашего сайта. В частности, составили семантическое ядро, настроили расширенные.