В последнее время мы успели разобраться со множеством аналитических систем, построить экономическую модель и провести несколько экспериментов по оптимизации конверсий в регистрацию и активацию. Благодаря Илье Красинскому(ex. LinguaLeo product chief) мы научились правильной настройке и анализу данных Google Analytics, узнали как строить экономические модели интернет проектов. Далее мы стали разбираться с event based аналитикой и настройкой mixpanel. Теперь мы решили поделиться этими знаниями с хабросообществом.
В этой статье мы рассмотрим:
Сначала давайте построим экономическую модель. Большинство интернет-проектов работают по простейшей схеме:
Привлечение пользователя -> Регистрация -> Активация -> Оплата
Соответственно, практически всем проектам необходимо считать следующие метрики:
User Acquisition — количество привлеченных пользователей
Registration Conversion — конверсия из привлеченного пользователя в зарегистрированного
Registrations — количество зарегистрированных пользователей
Paying Conversion — конверсия из привлеченного пользователя в оплатившего
Payments — количество совершенных покупок
Revenue — выручка
Кроме того, один пользователь может совершать несколько покупок. Причем разные покупки могут быть разной величины, поэтому для построения экономики продукта нам будут нужны еще несколько метрик:
Average Price — средняя стоимость покупки
Average Payment Count — среднее количество совершенных покупок
Теперь, когда мы знаем средний чек нашего пользователя и среднее количество платежей, мы можем рассчитать, сколько денег нам приносит каждый платящий пользователь. Просто умножьте средний чек на среднее количество покупок.
Average Revenue per Paying User — средняя сумма, полученного с одного платящего пользователя:
Итак, мы подобрались к одной из главных метрик.
Average Revenue per User — Средняя сумма, полученная с одного привлеченного пользователя
Эту цифру мы можем получить, если средний доход с платящего умножим на конверсию в оплату:
Или можем просто разделить выручку на количество привлеченных пользователей:
Практически всегда интернет-проекты используют различные платные каналы продвижения, поэтому введем еще несколько метрик:
Marketing costs — Затраты на привлечение пользователей
Cost per Acquisition — Стоимость привлечения одного пользователя
И разумеется, если из нашей выручки мы вычтем стоимость привлечения, то получим прибыль.
Profit — Прибыль
А теперь рассмотрим пример:
Мы привлекли 10000 пользователей за 100000 рублей. 20% пользователей зарегистрировалось и 1% пользователей совершило покупку. Средний чек покупки составлял 500 рублей и пользователи нам платят в среднем 1.2 раза.
Тогда мы получаем следующую модель:
Как мы видим, стоимость привлечения пользователя у нас равна 10 рублям, а зарабатываем мы всего 6 рублей с пользователя. Большинство экономик продуктов не окупается. Но теперь мы знаем, на какие параметры можем повлиять, чтобы сделать продукт окупаемым.
Для тех, кто хочет построить подобную модель для своего проекта, я составил Google таблицу с готовыми формулами и комметариями для каждой метрики.
Для того чтобы заполнить составленную выше таблицу, нам нужно получить правильные цифры из различных аналитических систем.
Большинство этих цифр можно получить, если правильно настроить Google Analytics. Мы используем Measurement Protocol, что позволяет отправлять события напрямую с бекенда. Мы также используем Ecommerce Tracking, что позволяет передавать данные о покупках и выручке.
Таким образом, мы можем отправлять следующие события:
В нашем случае мы считали пользователя активированным, если он просмотрел хотя бы один урок любого курса.
Далее необходимо настроить цели в Google Analytics, чтобы отобразить данные по конверсиям в различные события.
Цели настраиваются во вкладке Администратор в меню Цели. Цель о покупке настраивать не нужно, покупка автоматически считается целью, если вы отправляете ее через Ecommerce Tracking.
Следующий шаг — создание во вкладке Настройка отчета, благодаря которому мы увидим конверсии в регистрацию, активацию и покупку по каждому каналу.
Чтобы анализировать изменения продукта во времени, мы можем настроить когорты. Для этого нажмите на стрелку в левом верхнем углу и создайте сегменты с датой первого сеанса. Обычно когорты создают по неделям или по месяцам.
В итоге у вас должен получиться примерно такой график:
Стоит отметить, что в данном случае учитываются только новые пользователи, которые насквозь прошли через воронку привлечение ->регистрация -> активация -> покупка. Если ваш пользователь сначала пришел с поиска, потом получил письмо и через письмо совершил покупку, то это будет уже не первое посещение, а каналом привлечения в данном отчете будет считаться e-mail, а не поиск.
Используя данные из отчета, мы можем сравнивать эффективность разных каналов. Для этого экспортируем данные в таблицу, используя соответствующее меню. Затем удаляем лишние источники трафика, добавляем метрики и указываем расходы по каждому каналу. В итоге должна получиться примерно такая таблица:
С помощью данной таблицы мы можем проанализировать эффективность каждого канала с точки зрения активации и соотношения маркетинг/выручка. Так вы поймете, какая реклама вам приносит прибыль, а какая — только убытки.
Теперь вы знаете, как провести базовый анализ вашего интернет-проекта. Следующий этап — анализ поведения пользователей и проведение экспериментов по оптимизации конверсий. Для этих целей мы активно используем другой аналитический инструмент — Mixpanel.
В этой статье мы рассмотрим:
- Построение экономики продукта с помощью Google таблиц
- Формирование отчета Google Analytics по когортам и каналам
- Создание таблицы анализа эффективности платных каналов
Построение экономики продукта с помощью Google таблиц
Сначала давайте построим экономическую модель. Большинство интернет-проектов работают по простейшей схеме:
Привлечение пользователя -> Регистрация -> Активация -> Оплата
Соответственно, практически всем проектам необходимо считать следующие метрики:
User Acquisition — количество привлеченных пользователей
Registration Conversion — конверсия из привлеченного пользователя в зарегистрированного
Registrations — количество зарегистрированных пользователей
Paying Conversion — конверсия из привлеченного пользователя в оплатившего
Payments — количество совершенных покупок
Revenue — выручка
Кроме того, один пользователь может совершать несколько покупок. Причем разные покупки могут быть разной величины, поэтому для построения экономики продукта нам будут нужны еще несколько метрик:
Average Price — средняя стоимость покупки
Average Payment Count — среднее количество совершенных покупок
Теперь, когда мы знаем средний чек нашего пользователя и среднее количество платежей, мы можем рассчитать, сколько денег нам приносит каждый платящий пользователь. Просто умножьте средний чек на среднее количество покупок.
Average Revenue per Paying User — средняя сумма, полученного с одного платящего пользователя:
ARPPU = Average Price * APC
Итак, мы подобрались к одной из главных метрик.
Average Revenue per User — Средняя сумма, полученная с одного привлеченного пользователя
Эту цифру мы можем получить, если средний доход с платящего умножим на конверсию в оплату:
ARPU = ARPPU * Paying Conversion
Или можем просто разделить выручку на количество привлеченных пользователей:
ARPU = Revenue / User Acquisition
Практически всегда интернет-проекты используют различные платные каналы продвижения, поэтому введем еще несколько метрик:
Marketing costs — Затраты на привлечение пользователей
Cost per Acquisition — Стоимость привлечения одного пользователя
CPA = Marketing costs / User Acquisition
И разумеется, если из нашей выручки мы вычтем стоимость привлечения, то получим прибыль.
Profit — Прибыль
Profit = Revenue — Marketing costs
А теперь рассмотрим пример:
Мы привлекли 10000 пользователей за 100000 рублей. 20% пользователей зарегистрировалось и 1% пользователей совершило покупку. Средний чек покупки составлял 500 рублей и пользователи нам платят в среднем 1.2 раза.
Тогда мы получаем следующую модель:
User Acquisition | 10000 |
Registration Conversion | 20% |
Registrations | 2000 |
Payment Conversion | 1% |
Payments | 100 |
Average Price | 500 руб. |
Average Payment Count | 1.2 |
ARPPU | 600 руб. |
ARPU | 6 руб. |
CPA | 10 руб. |
Marketing costs | 100000 руб. |
Revenue | 60 000 руб. |
Profit | -40 000 руб. |
Как мы видим, стоимость привлечения пользователя у нас равна 10 рублям, а зарабатываем мы всего 6 рублей с пользователя. Большинство экономик продуктов не окупается. Но теперь мы знаем, на какие параметры можем повлиять, чтобы сделать продукт окупаемым.
Для тех, кто хочет построить подобную модель для своего проекта, я составил Google таблицу с готовыми формулами и комметариями для каждой метрики.
Формирование отчета в Google Analytics по когортам и каналам
Для того чтобы заполнить составленную выше таблицу, нам нужно получить правильные цифры из различных аналитических систем.
Большинство этих цифр можно получить, если правильно настроить Google Analytics. Мы используем Measurement Protocol, что позволяет отправлять события напрямую с бекенда. Мы также используем Ecommerce Tracking, что позволяет передавать данные о покупках и выручке.
Простой Ruby класс для отправки данных с помощью Measurement Protocol
Гугл идентифицирует пользователя по случайно сгенерированному client id, который храниться в куке _ga. Пример значения, хранящегося в куке GA1.2.1405340423.128133435. Client id выделен жирным — две группы по 10 цифр соединенные точкой. При отправке данных не забывайте передавать это значение.
class GoogleAnalyticsApi
def initialize(cid)
@client_id = cid
end
def event(params)
data = default_params.merge(
t: "event",
ec: params['category'],
ea: params['action'],
ev: params['value']
)
send_data(data)
end
def pageview(params)
data = default_params.merge(
t: "pageview",
dp: params['path']
)
send_data(data)
end
def ecommerce(params)
transaction_data = default_params.merge(
t: 'transaction',
ti: params['id'],
tr: params['revenue'],
cu: "RUB"
)
send_data(transaction_data)
params['items'].each do |item|
item_data = default_params.merge(
t: 'item',
ti: params['id'],
in: item['name'],
ip: item['price'],
iq: item['quantity'],
cu: 'RUB'
)
send_data(item_data)
end
end
private
def send_data(params)
RestClient.post("http://www.google-analytics.com/collect", params: params)
rescue => e
#handle timeout and other errors
end
def default_params
{
v: 1,
tid: "tracking-code-here",
cid: @client_id
}
end
end
Таким образом, мы можем отправлять следующие события:
- Регистрация
- Активация
- Покупка
В нашем случае мы считали пользователя активированным, если он просмотрел хотя бы один урок любого курса.
Далее необходимо настроить цели в Google Analytics, чтобы отобразить данные по конверсиям в различные события.
Цели настраиваются во вкладке Администратор в меню Цели. Цель о покупке настраивать не нужно, покупка автоматически считается целью, если вы отправляете ее через Ecommerce Tracking.
Следующий шаг — создание во вкладке Настройка отчета, благодаря которому мы увидим конверсии в регистрацию, активацию и покупку по каждому каналу.
Чтобы анализировать изменения продукта во времени, мы можем настроить когорты. Для этого нажмите на стрелку в левом верхнем углу и создайте сегменты с датой первого сеанса. Обычно когорты создают по неделям или по месяцам.
В итоге у вас должен получиться примерно такой график:
Стоит отметить, что в данном случае учитываются только новые пользователи, которые насквозь прошли через воронку привлечение ->регистрация -> активация -> покупка. Если ваш пользователь сначала пришел с поиска, потом получил письмо и через письмо совершил покупку, то это будет уже не первое посещение, а каналом привлечения в данном отчете будет считаться e-mail, а не поиск.
Создание таблицы анализа эффективности платных каналов
Используя данные из отчета, мы можем сравнивать эффективность разных каналов. Для этого экспортируем данные в таблицу, используя соответствующее меню. Затем удаляем лишние источники трафика, добавляем метрики и указываем расходы по каждому каналу. В итоге должна получиться примерно такая таблица:
С помощью данной таблицы мы можем проанализировать эффективность каждого канала с точки зрения активации и соотношения маркетинг/выручка. Так вы поймете, какая реклама вам приносит прибыль, а какая — только убытки.
Теперь вы знаете, как провести базовый анализ вашего интернет-проекта. Следующий этап — анализ поведения пользователей и проведение экспериментов по оптимизации конверсий. Для этих целей мы активно используем другой аналитический инструмент — Mixpanel.