Опубликовано: Декабрь 05, 2024
Этот текст представляет собой объяснение на одном из примеров схемы построения веб-аналитики для сайта. На самом деле, существует множество различных инструментов и решений, которые могут быть использованы в зависимости от задач конкретного проекта. Веб-аналитика может включать в себя использование, как различных платформ, так и быть реализована с помощью только одного инструмента, например, Яндекс.Метрика. Важно учитывать особенности каждого проекта и выбирать те инструменты, которые наилучшим образом подходят для достижения поставленных целей. Данная же статья рассматривает один из возможных вариантов и подходов, как пример для иллюстрации.
Ниже представлена схема построения веб-аналитики (выбор инструментов, реализация) на примере данного авторского блога websitelytics.top
Google Tag Manager (GTM) --- это бесплатный инструмент от Google, который позволяет управлять кодом отслеживания на сайте. С его помощью можно добавлять, редактировать и удалять коды отслеживания без вмешательства в исходный код сайта. GTM позволяет управлять различными метками, такими как Google Analytics, Яндекс.Метрика и другими.
Пример настройки тегов внутри Google Tag Manager для Google Analytics и Яндекс.Метрики на сайте websitelytics.top:
Google Analytics --- это аналитический сервис от Google, который предоставляет подробную статистику о посещаемости сайта. С его помощью можно узнать, сколько активных пользователей на сайте, откуда они пришли, какие страницы просмотрели, получить сегментированные отчеты и многое другое.
Пример отчёта по источникам трафика в Google Analytics для сайта websitelytics.top:
Яндекс.Метрика --- это сервис от Яндекса, который предоставляет подробную статистику о посещаемости сайта в виде таблиц и графиков. С его помощью можно узнать, сколько людей посетило сайт, откуда они пришли, какие страницы просмотрели, прохождение выбранных воронок, применять фильтры в отчетах и многое другое.
Яндекс Метрика постоянно развивается и добавляет новые возможности для анализа данных. Пример создания воронки для сайта websitelytics.top:
Пример построения отчета о наиболее популярных страницах сайта websitelytics.top с помощью Google Analytics и применением фильтров с ипользованием regex:
Пользователь заполняет и отправляет заявку с сайта или хочет связаться с нами, и для аналитики является важным отслеживание подобных действий. Данные с формы контакта в коде сайте отправляются с помощью команды submit. Однако отслеживание подобного события затруднено тем, что javascript может перехватывать данное действие с помощью команды event.preventDefault() для обработки данных формы. В таком случае специальный триггер Form Submission для отслеживания команды submit в GTM может не срабатывать.
Самым надежным решением в данном случае является задействование разработчиков и реализация отправки в dataLayer события, подтверждающего успешную отправку данных формы с сайта в бекенд и базу данных. Тогда триггером в GTM может быть публикация данного события в dataLayer.
Однако если это затруднительно, то можно решить задачу на клиенте только средствами javascript, к примеру, опубликовав событие submit после обработки данных формы:
function publish(event, data) {
if (eventRegistry[event]) {
eventRegistry[event].forEach(callback => {
callback.call(null, data);
});
}
}
Функция publish является частью системы обработки событий, ее цель инициировать все обратные вызовы (callback), связанные с определенным событием, передавая любые данные, которые могут иметь отношение к этим обратным вызовам. Такое решение позволяет гибко отделить производителей событий от потребителей событий.
В таком решении можно использовать стандартный триггер отслеживания форм в GTM:
И Google Analytics и Яндекс Метрика поддерживают близкий по реализации способ отправки данных о просмотрах товара, добавлении товара в корзину, покупках и других событиях электронной коммерции. Для отправки подобных событий можно использовать слой данных (dataLayer). Пример отправки события покупки из инструкции Яндекс Метрики:
dataLayer.push({
"ecommerce": {
"currencyCode": "RUB",
"purchase": {
"actionField": {
"id" : "TRX987"
},
"products": [
{
"id": "25341",
"name": "Толстовка Яндекс мужская",
"price": 1345.26,
"brand": "Яндекс / Яndex",
"category": "Одежда/Мужская одежда/Толстовки и свитшоты",
"variant": "Оранжевый цвет",
"quantity": 1,
"list": "Одежда",
"position": 1
},
{
"id": "25314",
"name": "Толстовка Яндекс женская",
"price": 1543.62,
"brand": "Яндекс / Яndex",
"category": "Одежда/Женская одежда/Толстовки и свитшоты",
"variant": "Белый цвет",
"quantity": 3,
"list": "Толстовки",
"position": 2
}
]
}
}
});
Для более глубокого анализа данных можно использовать BI инструменты, такие как Google Data Studio, Tableau, Power BI и другие. С их помощью можно создавать интерактивные отчеты и дашборды, объединять данные из разных источников и проводить сложный анализ данных.
Пример таблицы-мониторинга продаж и сопутствующей воронки для стороннего ecommerce вебсайта:
Пример интерасктивного отчета в Lookerstudio для вебсайта websitelytics.top:
Для анализа конкурентов и определения KPI можно использовать различные инструменты, такие как SimilarWeb, Ahrefs и другие. С их помощью можно узнать, какие ключевые показатели успеха у конкурентов, какие стратегии они используют и какие KPI можно использовать для сравнения своего сайта с конкурентами.
Конкурентами информационного авторского блога являются сайты, которые публикуют статьи по тематике веб-аналитики, SEO, маркетинга и других смежных областей. В особенности те, которые предлагают материалы для обучения. Таким сайтом, к примеру, является сайт education.yandex.ru.
Пример образовательной статьи схожей с тематикой моего блога: Программы обучения Яндекса.
Один из основных KPI контентного сайта - это количество просмотров статей и время, проведенное на сайте. Также важным показателем является количество подписчиков на рассылку и социальных сетях, а также количество комментариев и обратной связи от пользователей.
Сильные стороны конкурента в контексте пользовательского опыта и UX:
Простой и понятный интерфейс сайта
Быстрая загрузка страниц
Качественный контент и обучающие материалы
Удобная навигация по сайту
Интерактивные элементы и виджеты
Вывод по анализу конкурентов для улучшения пользовательского опыта на авторском блоге websitelytics.top:
Добавить интерактивные элементы и виджеты
Увеличить количество обучающих материалов
Провести оптимизацию скорости загрузки страниц
KPI: Увеличить количество подписчиков и комментариев
Стандартная веб аналитика имеет ряд объективных ограничений, которые могут быть преодолены с помощью продвинутой настройки и анализа данных. Примеры продвинутой настройки веб-аналитики:
Файнтьюнинг для SPA - для одностраничных приложений (React, Angular и т.п.) требуется особый подход к подключению веб-аналитики, и анализу событий и поведения пользователей.
Работа с сырыми данными - отчеты в Google Analytics и Яндекс.Метрике в том числе полученные с использованием API имеет отграниченный набор параметров и метрик. Чтобы преодолеть это ограничение, можно использовать низкоуровневые данные и обрабатывать их с помощью языков программирования (Python, SQL и др.). Сырые данные Google Analytics можно получить через BigQuery, а Яндекс.Метрика - с помощью выгрузки их в ClickHouse.
Интеграция с CRM и другими системами - объединение данных из разных источников для комплексного анализа.
Аналитика со стороны сервера - любая вендорная аналитика на стороне клиента (браузера) дает неполные данные, поскольку отправка части данных блокируется адблокерами и политиками приватности. Серверные логи - это данные, хранящиеся внутри компании и не зависящие от сторонних сервисов. Однако для построения Сквозной Аналитики со стороны сервера необходимо реализовать трекинг источников трафика на клиенте (браузере) с помощью "обработчика сессий". Ноже приведен пример схемы такого решения:
Как было сказано выше использование низкоуровневых данных позволяет иногда провести более глубокую аналитику событий и построить отчеты недоступные в интерфейсе аналитической системы. К примеру, в случае Яндекс Метрики мы можем выгрузить низкоуровневые данные с помощью Logs API и Python. Данные выгружаются в виде двух таблиц: визиты и события. Поместив данные в pandas мы можем фильтровать, группировать, объединять данные этих таблиц в целях своих аналитических задач.
Примеры простых команд для работами с данными Logs API в pandas:
# load data into pandas dataframe from hits.csv и visits.csv
test_hits = pd.read_csv('hits.csv')
test_visits = pd.read_csv('visits.csv')
# make date column into datetime object
test_hits['ym:pv:date'] = pd.to_datetime(test_hits['ym:pv:date'], format='%m/%d/%y').dt.date
# plot all hits
test_hits['ym:pv:date'].value_counts().sort_index().plot(kind='bar', figsize=(10, 5))
# drop duplicates
dates = test_hits[['ym:s:visitID', 'ym:pv:date']].drop_duplicates(subset=['ym:s:visitID', 'ym:pv:date'])
# merge visits and dates dataframes
visits_dates = pd.merge(test_visits, dates, on='ym:s:visitID')
# plot number of goals per day
visits_dates[visits_dates['ym:s:goalsID']!='[]']['ym:pv:date'].value_counts().sort_index().plot(kind='bar', figsize=(10, 5))
# analyze the funnel via URLs
start_date = datetime.strptime('2024-11-21', '%Y-%m-%d').date()
end_date = datetime.strptime('2024-11-25', '%Y-%m-%d').date()
test_hits[(test_hits['ym:pv:date'] >= start_date) & (test_hits['ym:pv:date'] <= end_date)]['ym:pv:URL'].value_counts()
Настройка веб-аналитики на сайте позволяет отслеживать посещаемость, поведение пользователей и другие важные показатели. С помощью Google Analytics, Яндекс.Метрики и других инструментов можно получить подробную статистику о сайте, анализировать данные и оптимизировать пользовательский опыт. Анализ конкурентов и определение KPI помогают улучшить сайт и достичь поставленных целей.