Kiss My Stat
Cерия практических руководств по созданию сквозной отчетности
Дмитрий Родин
Автор руководства
Я занимаюсь программированием уже более 15 лет, 10 из которых в сфере маркетинговых технологий. Работал в агентствах и технологических компаниях, за это время разработал множество различных сервисов управления рекламой, трекинга и аналитики. Сейчас программирование это легкое и увлекательное занятие, по сложности не сильно сложнее Excel. А главное оно позволяет решить практически любую задачу. Я покажу как.
Система аналитики, позволяющая принимать правильные управленческие решения сегодня обязательна для любого бизнеса связанного с интернетом.

Можно использоваться сервисы «сквозной аналитики», кто-то пошел дальше и с помощью специальных сервисов-перекачивалок статистики грузит все в базы данных и уже там сводит.

Если у вас все хорошо работает и все устраивает, то радуйтесь и не трогайте :)
А если понимаете что хотите улучшить, вам «тесно» в сервисе сквозной аналитики, а перекачивалки делают все не так как хочется — сделаем самостоятельно и так, как хочется.
Скажем неудобным решениям — "Kiss My Stat!". Запилим Data Warehouse на ClickHouse и ETL
В течение нескольких модулей мы разберем как получать и записывать данные в собственное хранилище на базе ClickHouse.

Подробно разберем цикл сбора информации с рекламных площадок (Facebook, Yandex.Direct, VK, Google Ads) и статистики (Rockstat, GA). После чего свяжем данные с CRM (на примере AmoCRM), построим набор базовых аналитических дашбордов.
Канал с анонсами
TG: @kissmystat
Анонсы, дополнительные материалы,
важные оповещение
Чат для вопросов
TG: @kissmystats
Обсуждение, вопросы, помощь, флуд,
закидывание какашками
Бот для навигации
TG: совсем скоро
Ссылки на трансляции,
персональные коммуникации

02.02.2019
02.02.2019
Руководство

  • Вступительная часть
  • Почему выбирают ClickHouse вместо облачных BigQuery, RedShift
  • Обзор открытой платформы Rockstat: Jupyter, Grafana, Theia, ClickHouse, микросервисная архитектура.
  • Почему блокноты Jupyter это не программа и как писать правильный код
  • Screencast: Регистрация, создание сервера, установка Rockstat в Google Cloud (облако на 6 мес бесплатно от google)
  • Google Analytics и GTM: cамый верный способ записывать ClientIId в custom dimension со 100% результатом.
  • При помощи GTM настроим подстановку ClientId и UID и передачу в AmoCRM на примере сайта на Tilda

02.02.2019
02.02.2019
С нуля и до dashboard по данным из ClickHouse. Ачивка запуск в виде сервиса

Руководство
  • Screencast: получение ключа API
  • Авторизация и выполнение запросов к API
  • Получение информации об аккаунте
  • Получение информации о сделках
  • Преобразование в удобный формат
  • Создание схемы ClickHouse вручную
  • Автоматическое построение таблицы ClickHouse на основе имеющихся данных
  • Управление схемой при через сервиc ClickHouse Writer
  • Построение примитивного Dashboard в Grafana на основе данных из AmoCRM, хранящихся в ClickHouse
  • Простой способ обработки перезаписи в ClickHouse
  • Ачивка: асинхронное программирование в python
  • Ачивка: создание сервиса, обновляющего данные в ClickHouse по расписанию
  • Screencast: создание сервиса и запуск
05.02.2019
05.02.2019
Не просто статистика, а статистика по UTM. Получаем по API, обрабатываем пишем в ClickHouse
Руководство

  • Screencast: про регистрацию приложения VK и авторизацию
  • Регистрация приложения, авторизация
  • Загрузка структуры рекламных кампаний и поиск ссылок объявлений
  • Загрузка статистики, объединение со структурами для получения utm_*
  • Запись статистики VK в ClickHouse
  • Создание сервиса для автоматического сбора статистики по расписанию.
  • Screencast: запуск в виде сервиса
  • Простенький dashboard в Grafana на данных из ClickHouse
xx.xx.2019
20:00-23:00
xx.xx.2019
20:00-23:00
Модуль 4: Google Analytics
Тянем без семплирования из Google Analytics API. Cовмещаем с VK по utm_, AmoCRM по ClientId. Пишем в ClickHouse.
  • Регистрация приложение ип получение доступа
  • Сбор аналитических данных и слияние запросов
  • Видео про аналитикс (рега в гугле)
  • Запись результатов в кх
  • Объединение с VK по UTM
  • Объединение с CRM по clientId и UTM
  • Сохранение результата в ClickHouse
  • Screencast: построение dashboard по данным Google Analytics + AmoCRM + VK
  • Ачивка: адаптация кода и запуск в видео сервиса для работы по расписанию
xx.xx.2019
20:00-23:00
xx.xx.2019
20:00-23:00
Модуль 5: Yandex Direct
Обработаем особенности API
  • Screencast: регистрация приложения
  • Screencast: заявка на апи
  • Авторизация в API, использование HTTP заголовков
  • получение данных из YD в Jupyter
  • Запись данных в ClickHouse. Обработка изменений
  • Ачивка: создание сервиса, работающего по расписанию
xx.xx.2019
20:00-23:00
xx.xx.2019
20:00-23:00
Модуль 6: Google AdWords
Используя только скрипт на Google App Script
  • Screencast: отладка и запуск App Script для отправки данных
  • Подготовка и передача данных через Google Script
  • Загрузка больших файлов в Rockstat через heavyload service
  • Создание сервиса с расписанием
  • Запись данных в ClickHouse
xx.xx.2019
20:00-23:00
xx.xx.2019
20:00-23:00
Модуль 7: Yandex Metrika Logs API
Получение отчетов с обработкой повтора.
  • Screencast: регистрация приложения
  • Авторизация, получение данных по меткам в Jupyter, сохранение в CH
  • Получение сессий из Logs API, сохранение в CH
  • Запуск в виде сервиса работающего по расписанию
  • Ачивка: запуск в виде сервиса
xx.xx.2019
20:00-23:00
xx.xx.2019
20:00-23:00
Модуль 8: Facebook Ads
  • Screencast: Регистрация приложения
  • Screencast: получение токена
  • Подключение к API
  • Достаем стуктуры и статистику, сводим, чтобы получить в разрезе utm_
  • Запись данных в ClickHouse
  • Ачивка: Запуск в виде сервиса Rockstat
Что будем делать
Как правило, получение данных по API — это всего несколько строк кода.
Ниже то как это выглядит, на примере выгрузки расходов из Yandex.Директ до уровня ключевого слова.
Основная задача — сделать отказоустойчивый сервис, работающий по заданным параметрам и обрабатывающий внешние запросы, например авторизацию в Yandex. Сервис должен работать как часы и запускаться по расписанию — тогда, сделав его однажды о нем можно будет надолго забыть.
После сбора данных с площадок мы будем создавать небольшие дашборды, а в конце соберем дашборд, содержащий все-все данные.
Grafana отображает данные в реальном времени напрямую из ClickHouse.
Как принять участие
Возможны разные форматы участия: от бесплатного, до спонсорства.
Все варианты будут предложены ботом.
Для участия очно доступно 15 - 20 мест.

Для участия необходимо заполучить и настроить персональный облачный сервер со всем необходимым инструментарием.
Мы подготовили руководство по запуску специального установщика, который все сделает. Вам не нужно обладать навыками системного администратора, достаточно 30 минут времени и вы получите в свое распоряжение сервер с ClickHouse, Jupyter, Theia, Grafana, трекером, системой управления базой данных и множеством других полезных функций.
Чтобы не пропустить все самое интересное — добавляйтесь в канал и чат.
Канал с анонсами
TG: @kissmystat
Анонсы, дополнительные материалы,
важные оповещение
Чат для вопросов
TG: @kissmystats
Обсуждение, вопросы, помощь, флуд,
закидывание какашками
Бот для навигации
TG: совсем скоро
Ссылки на трансляции,
персональные коммуникации