Как сделать веб-аналитику для SaaS через Google Analytics: введение и отслеживание воронки

от автора

В чем проблема и почему Google Analytics

Столкнулся с тем, что на нескольких SasS проектах не было нормальной аналитики, чтобы:

  • Смотреть в разрезе каждого сегмента трафика, как пользователи продвигаются по воронке, например, оформление заказа.
  • Считать LTV и CAC, с каналов трафика, рекламных кампаний, простыми словами, сколько потратили на привлечение пользователя и сколько выручки он принес в течение года.
  • Считать показатель возврата, то есть остаются ли привлеченные пользователи с нами или уходя спустя время, дает ли канал прирост постоянных клиентов.

Как правило, использовались Google Analytics, ROIStat, Метрика, Amplitude, но ни один инструмент не был до конца интегрирован. Для решения задач выше выбрал Google Analytics (далее GA), он далеко не идеальный, но решить базовые задачи вполне реально и не так затратно.

Плюсы

  • Умеет принимать внешние данные, например, в него можно отправлять транзакции с помощью POST-запросов
  • Отдавать данные в системы визуализации DataStudio, Power BI
  • Много справочной информации
  • Легко интегрируется со всеми Google-сервисами
  • Бесплатный
  • Хранит данные 50 месяцев

Минусы

  • Когда вы выбираете таймфрейм, который содержит 1 млн сессий, то отчет будет построен только на основании 100 тыс., сессий, так как свыше 500 тыс., сессий данные семплируются.
  • Данные и отчеты строятся вокруг кук (браузеров, устройств), а не пользователей, следовательно, один пользователь на протяжении года в GA представлен, как 10 разных и склеить их невозможно в рамках GA (возможно, но слишком много костылей).
  • Высокий порог входа, так как сложный интерфейс.

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

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

Реализация всех этапов требует уровень средний уровень владения Google Analytics, в рамках одной статьи не получится охватить весь необходимый скилл, но он легко гуглится.

Начнем с построения воронки.

Зачем нужна воронка

Самый простой пример воронки, это воронка в интернет магазине бытовой техники.

Зашел на сайт > Положил в корзину > Перешел в корзину > Оформление: доставка > Оформление: контактные данные > Оформление: метод оплаты и оплата

Хороший отчет тот, из которого последуют действия.

  • У посетителей из мурманска низкая конверсия на этапе доставки, потому что у текущей логистической компании высокий тариф > нужно искать альтернативы.
  • Кладут в корзину, но не продолжают оформление, так как корзина находится слева по задумке дизайнера > меняем положение корзины вправо.

Проектирование воронки и отправка событий

На выходе мы хотим увидеть конверсию из одного этапа воронки в другой и количественные показатели, например.

Этапы воронки могут быть непоследовательны и вариативны, представим, что мы проектируем воронку для сервиса наподобие Авито.

Открыл конструктор > Создал объявление > Регистрация > Выбор тарифа > Транзакция

Регистрация > Пополнение баланса > Открыл конструктор > Создал объявление > Применил тариф

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

Открыл конструктор > Создал объявление > Выбрал тариф > Оплата

И наоборот, сначала, кто пополняет баланс, а потом, создает объявление.

Пополнил баланс > Открыл конструктор > Создал объявление > Применил тариф

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

Настоятельно рекомендую использовать Google Tag Manager (далее GTM), это слой между сайтом и счетчиками, например, вы можете один раз настроить событие и через GTM отправлять его в Analytics, Метрику и прочее.

Как отправлять события в Google Analytics

Отправляем события в слой данных GTM

Есть много способов, но самый надежный и правильный, это отправка через слой данных (data layer). Слой данных, это просто транзит между сайтом и счетчиками.

Для отправки мы должны инициировать следующее выражение на javascript.

window.dataLayer = window.dataLayer || [];   dataLayer.push({     'event': 'name'   }); 

Разберем подробнее каждую строку

window.dataLayer = window.dataLayer || []; — проверяем есть ли уже созданный слой данных, если нет, то создаем новый.

dataLayer.push({ ‘event’: ‘name’}); — в нужный момент добавляем в слой данных название события;

‘name’ — собственно, название события;

Итого, нам нужно инициировать данное выражение в каждый момент воронки и подставлять название событий, например, мы хотим отправлять события в момент, когда пользователь открывает конструктор объявлений.

window.dataLayer = window.dataLayer || [];   dataLayer.push({     'event': 'openAdsEditor'   }); 

Или в момент, когда пользователь заполнил и подтвердил объявление в конструкторе.

window.dataLayer = window.dataLayer || [];   dataLayer.push({     'event': 'ad_submit'   }); 

Протестировать, верно ли приходят события, можно в дебаг моде GTM, углубляться в это не будем, так как можно легко погуглить.

Теперь нам нужно извлечь события из слоя данных и отправить в GA

Извлекаем событие из слоя данных и отправляем в Google Analytics

Создаем триггер в GTM вида Custom event (Пользовательское событие) и в поле Event name (Название события) указываем ad_submit , это как раз то значение, которое мы указывали при отправке события на сайте.

Далее, это триггер будет инициировать запуск тега, который в свою очередь отправляет событие в Google Analytics.

Далее создаем тег, в котором указываем следующие значения

Категория funnel и Действие ad_submit указываются произвольные, именно по ним мы будем идентифицировать событие в GA. В качестве триггера указываем наш созданные ранее триггер Заполнено объявление.

После сохранения тега разворачиваем его в продакшн, нажатие на кнопку Publish (Публиковать) и тестируем: при заполнении объявления должно приходить событие в отчет GA под названием Real time > Events (В реальном времени > События)

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

Как строить воронку в GA

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

Создаем сегменты в GA, каждый сегмент равен одному событию, например, создаем сегмент для события Открыл редактор, так как оно будет первое в последовательности.

Для этого выбираем любой отчет в GA, например Channels (Каналы), и нажимаем +Add Segment (Добавить сегмент)

Далее + New segment (Новый сегмент) и задаем параметры сегмента

Во вкладке Sequence (Последовательности) Include (Включить) Users (Пользователей), у которых Any user interaction (Любое из взаимодействий) соответствует событию Event Category exactly matches funnel AND Event Category exactly matches openAdsEditor

Простыми словами мы выделяем пользователей, которые взаимодействовали с нашим событием.

Далее делаем второй этап воронки, для этого копируем первый сегмент.

И внутри добавляем событие второго этапа воронки Заполнил объявление. Так как нам необходимо, чтобы учитывались только те пользователи Заполнил объявление, которые ранее открыли редактор, то в качестве шага один добавляем предыдущее событие воронки Открыл редактор, а в качестве шага 2 Заполнил объявление.

То есть во второй этап воронки Заполнил объявление у нас попадают только те пользователи, кто прошел первый этап Открыл редактор.

На что смотреть в отчете

Изменения воронки в разрезе дней, недель или месяцев.

Воронка в разрезе общих показателей отчете или в разрезе его параметров, а данном случае Каналов трафика.

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

Все, была ли полезна информацию? Какие альтернативные решения?


ссылка на оригинал статьи https://habr.com/post/428225/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *