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

  • Tutorial
В последнее время мы успели разобраться со множеством аналитических систем, построить экономическую модель и провести несколько экспериментов по оптимизации конверсий в регистрацию и активацию. Благодаря Илье Красинскому(ex. LinguaLeo product chief) мы научились правильной настройке и анализу данных Google Analytics, узнали как строить экономические модели интернет проектов. Далее мы стали разбираться с event based аналитикой и настройкой 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.
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 9

    0
    Логично еще не складывать эти данные в табличку, а автоматически регулировать бюджеты рекламных компаний.
      +3
      На самом деле если связать директ с метрикой, то он умеет нечто подобное считать. Наверняка есть системы, которые умеют и бюджеты регулировать на осове этих данных метрики. Но так, чтобы из одного места управлять всеми бюджетами всех рекламных кампаний — это будет уже что-то типа Hubspot.
      0
      А вы вручную данные из Google Analytics в Google Spreadsheets импортируете, или я что-то упустил?
        0
        Спасибо за статью, как раз искал нечто подобное. Пишите еще — будем рады почитать.
          0
          Спасибо, объяснено очень популярно
            +3
            Раз уж вы ссылку на свой образовательный проект даже еще до хабраката добавили — зашел на сайт, кликнул в первый попавшийся курс (точнее, на ссылку Описание курса) и что получил — вместо описания курса длинный tutorial как будет проходить обучение, требующий в конце ввод email'a. Кнопки закрытия этого окна нет. Ну, кто так делает?)
              0
              Да, возможно это довольно нагло с нашей стороны, но мы просим пройти небольшой туториал с регистрацией перед началом обучения. Кстати говоря, такая штука увеличила конверсию в регистрацию в разы. Если кому-то совсем жаль оставлять свою почту, тот всегда сможет найти способ ее не оставлять ;)
                0
                Как-то не очень честно получается — я пришел посмотреть что входит в курс, а вместо этого прохожу туториал. В общем, я в итоге просто окно закрыл, так и не добравшиь до программы
              +1
              Для более комплексного анализа и четкого понимания ценности каналов важно учитывать их «пересечение». Хорошо было бы упомянуть об (в контексте статьи — в терминах GA) многоканальных последовательностях, ассоциированных конверсиях и моделировании атрибуции. Удачи!

              Only users with full accounts can post comments. Log in, please.