Строим продуктовую воронку при помощи SQL в BigQuery

Aleksandr Osiyuk
2 min readJan 20, 2019

--

Есть множество различных способов строить продуктовые воронки. Доступ к “сырым данным” предоставляет много пространства для творческих решений.

Совсем недавно Todd Kerpelman написал отличную статью, в которой показал несколько интересных вариантов построения воронки с примерами SQL-запросов.

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

Возьмем данные того же тестового приложения и те же события, формирующие шаги воронки:

  • first_open - первое открытие приложения пользователем.
  • completed_5_levels - завершение 5-го уровня в игре.
  • use_extra_steps - использование дополнительного шага.

Данные по использованию приложения есть в публичном доступе в BigQuery.

Для построения воронки с данными необходимо совершить два преобразования:

  1. Сагрегировать по идентификатору пользователя с пометкой достижения по каждому шагу.
  2. Просуммировать количество пользователей по необходимым условиям.

Пример SQL-запроса будет выглядеть так:

Однако это простой способ построения воронки и он не учитывает последовательность достижения шагов воронки. А иногда это имеет значение. В статье можно найти несколько способов построения воронок с учетом последовательностей событий.

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

Способ предусматривает использование полезной аналитической функции String_agg, она позволяет “склеивать” значения в одно поле по различным правилам.

В запросе ниже мы склеиваем названия ивентов по каждому пользователю по времени:

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

Заключение: в статье я показал два способа построения продуктовых воронок. Из своего опыта могу сказать, что их достаточно для большинства случаев и они просты в использовании.

Если есть новые идеи или решения подобных задач, сообщите мне или оставляйте комментарии. А также подписывайтесь на мой Телеграм-канал BigQuery Insights, в котором я делюсь интересными решениями аналитики в Google BigQuery.

--

--