Комплексная аналитика интернет-проекта с помощью Google Analytics и Google Docs

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

2c9b4ad9c3ca0fd37248a5b5856f4b411
В этой статье мы рассмотрим:

  • Построение экономики продукта с помощью 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, чтобы отобразить данные по конверсиям в различные события.
f6eb39cf053fd642121386a81320c73f1
Цели настраиваются во вкладке Администратор в меню Цели. Цель о покупке настраивать не нужно, покупка автоматически считается целью, если вы отправляете ее через Ecommerce Tracking.

Следующий шаг — создание во вкладке Настройка отчета, благодаря которому мы увидим конверсии в регистрацию, активацию и покупку по каждому каналу.
e5473e35fc219612788fa2cf1b0c4e4f1

Чтобы анализировать изменения продукта во времени, мы можем настроить когорты. Для этого нажмите на стрелку в левом верхнем углу и создайте сегменты с датой первого сеанса. Обычно когорты создают по неделям или по месяцам.
230cfc1a6177163250884dde119d2f081

В итоге у вас должен получиться примерно такой график: 
33c6b387d28271d6c658690482265ee41

Стоит отметить, что в данном случае учитываются только новые пользователи, которые насквозь прошли через воронку привлечение ->регистрация -> активация -> покупка. Если ваш пользователь сначала пришел с поиска, потом получил письмо и через письмо совершил покупку, то это будет уже не первое посещение, а каналом привлечения в данном отчете будет считаться e-mail, а не поиск.

Создание таблицы анализа эффективности платных каналов


Используя данные из отчета, мы можем сравнивать эффективность разных каналов. Для этого экспортируем данные в таблицу, используя соответствующее меню. Затем удаляем лишние источники трафика, добавляем метрики и указываем расходы по каждому каналу. В итоге должна получиться примерно такая таблица:
63039728a89d492f60eef728ac5cee4c1

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

Теперь вы знаете, как провести базовый анализ вашего интернет-проекта. Следующий этап — анализ поведения пользователей и проведение экспериментов по оптимизации конверсий. Для этих целей мы активно используем другой аналитический инструмент — Mixpanel. Об этом мы расскажем в следующей статье.