28 Травня 2019 20 хв на прочитання

Кейс. Як налаштувати наскрізну аналітику для software розробників

До нас звернулася компанія Skylum (ex. Macphun) для налаштування наскрізної аналітики. Окрім зведення інформації з усіх джерел в одну базу даних, ми провели аналіз та налаштували процес підрахунку ROI.

Це дозволило компанії перерозподілити гроші на продукти, канали та кампанії з вищим ROI.

Про компанію Skylum

Розробка додатків для редагування фото


  • Рік заснування2008
  • Сфера SaaS
  • ГеографіяВесь світ

Проєкт

Macphun – розробник додатків для редагування фото переважно під операційну систему Mac OS X. Багаторічні переможці Apple Awards.

Найбільший продукт під час співпраці – набір програм Creative Kit. Також разом із партнерами компанія розробила Aurora HDR – це програма для редагування HDR фотографій.

У 2018 році під час ребрендингу компанія Macphun змінила своє ім’я на Skylum.

Команда

  • Роман Рибальченко — консультант та growth hacker
  • Ілля Бабак — аналітик та PPC спеціаліст на стороні Клієнта
  • Alex Tsepko — COO Macphun
  • Маркетологи, розробники, QA на стороні Клієнта

Завдання

  • Навчитися точніше рахувати ROI з реклами та cross promo для різних інструментів: Google Ads (AdWords), Facebook, Bing та affiliate marketing
  • Порахувати, як підвищує рентабельність реклами ланцюжок «залишив email заради тріалу і купив пізніше один із продуктів»
  • Зробити атрибуцію покупок із реклами з точки зору джерела залучення ліда, а не джерела, що дав покупку (зниження ваги умовно-безкоштовних підтримуючих каналів — email, ремаркетинг, соцмережі, органіка)
  • Об’єднати в аналітиці дії навколо користувача, щоб точніше рахувати LTV, ROI
  • Мати можливість краще використовувати ремаркетинг та персоналізацію. Ефективніше робити персональні пропозиції на сайті (апгрейд, крос-сейл, персональні знижки)
  • Зрозуміти, чи варто роздавати безкоштовно софт для генерації лідів, чи вони купують потім і чи окупають рекламу, яка була запущена на безкоштовну роздачу (giveaway)

Сценарії покупки

На сайт вели 3 глобальні джерела:

  • Software (trial, безкоштовні версії додатків)
  • Реклама: Facebook, Google Ads (AdWords), Bing та ін.
  • Email база передплатників

Потрапивши на сайт, користувач міг:

  • Перейти на Mac App Store (досить обмежений з погляду відстеження ефективності) та купити «урізану» версію програми
  • Завантажити trial на сайті
  • Здійснити покупку Pro-версії одразу на сайті

Таким чином у нас було 3 сценарії купівлі софту:

  1. Зайшов і купив одразу
  2. Зайшов → Trial → Покупка з email, ремаркетингу, push
  3. Зайшов → Trial → Купівля іншого софту на іншому сайті з email, ремаркетингу, push

Особливості проєкту

Перед нами стояло завдання збору інформації, об’єднання в одну базу даних за всіма джерелами, аналіз та розрахунок окупності інвестицій (Real ROI).

Часто для відстеження ефективності продажів додатків розробники готують окремі зборки (custom build) програм для кожного партнера або рекламної кампанії, де всередині інсталятора зберігається назва партнера або кампанії.

Таким чином після установки trial версії продукту користувач мітиться, як той, що скачав тріал з певного ресурсу.

Для Macphun цей варіант не підходив, тому що:

  • Відволікав розробників від виправлення помилок і розробки функцій та нових продуктів
  • Інсталятор важив ~200 Мб, що робило генерацію custom build і підписання його ключем розробника (щоб операційна система не лаялася) досить ресурсомістким завданням
  • Це не вирішувало завдання, коли користувач качав тріал на сайті, використовував один додаток, а потім купував інший додаток на іншому сайті (наприклад, качав тріал Creative Kit на сайті macphun.com, а купував з email-розсилок Aurora HDR на сайті aurorahdr.com)

Інший наш Клієнт завдання з тріалами та custom build вирішував так:

  • Сервер зашиває userid у назву файлу
  • Після інсталяції та першого запуску програма шукає інсталятор у папці Downloads та вичіпляє userid з назви файлу
  • Є зв’язок між тріалом і запуском або покупкою, якщо користувач або система не видалили інсталятор

Рішення 

SourceBuster

Розібравши сценарій покупки софту, ми повинні були записувати і відстежувати дії користувача на кожному етапі. Для цього прописали механізм запису даних користувача в процесі покупки софту.

Що використовували: скрипт визначення джерел залучення відвідувачів сайту SourceBuster, передачу джерел залучення відвідувачів у БД MySQL, потім об’єднання даних із процесингом FastSpring та технологію передачі даних у GA через Measurement Protocol та створення звітів у БД.

Mac App Store

Для відстеження покупок, коли користувач йшов з сайту на Mac App Store, ми використовували Source Buster. У партнерське посилання Apple ми “зашивали” такі параметри для кожного відходу на MAS: додаток | кампанія | medium | source.

У підсумку ми отримали статистику про продаж з реклами, яка вела на сайт, у партнерському кабінеті Mac App Store:

Що допомогло зрозуміти, чи взагалі є сенс, вести користувача з реклами на сайт, і з сайту частину з цих людей виводити на Mac App Store, рентабельно це чи ні.

Мінуси продажу софту через Mac App Store:

  • Apple забирає відсоток комісії
  • Mac App Store продає базові та дешевші версії продуктів на відміну від сайту
  • Версії, розташовані в Mac App Store, були досить обмежені за аналітикою та збором даних користувачів (кампанії були іноді довгі, а Mac App Store партнерська статистика не підтримувала довгий ідентифікатор, на відміну від SourceBuster

Функції, якими користуються у софті. Їхній вплив на покупку

Ми взяли рішення від компанії MacPaw. Вони написали SDK для Google Analytics та впровадили івенти всередині додатку.

Фічі, які використовують у софті

Використовуючи SDK ми відстежили, які типи файлів найчастіше використовують для редагування фотографій. В описі додатку підняли їх догори, щоб користувачі швидше знаходили популярні формати.

Популярні формати файлів

Чи сходиться математика?

Як згадувалося раніше, ми мали кілька варіантів конверсій: конверсія в тріал, конверсія в миттєву покупку, конверсія з тріалу в покупку; та змінних: середній чек, ціна трафіку, вартість тріалу тощо.

Для розуміння з якими продуктами та показниками потрібно працювати, ми побудували unit економіку.

Приклад таблиці unit економіки

Таким чином ми змогли побачити взаємозв’язок між метриками та чітко зрозуміти, як, змінюючи одну з метрик, ми впливаємо на кінцевий результат:

  • Побачили рентабельність просування тих чи інших продуктів
  • Порахували, з яким середнім чеком, з яким CPC та з якими конверсіями кампанії будуть рентабельні, виходячи з того, що частина з них купує миттєво, частина купує з тріалу
  • Зрозуміли з якими показниками в першу чергу потрібно працювати

Методи, які ми використовували для підвищення ефективності рекламних кампаній

Метрика Per Session Value (PSV)

Коли почали працювати з проєктом, з’ясувалося, що геотаргетинг кампаній був досить широкий, так як софт продавався у всьому світі.

  • Ми проаналізували Per Session Value (показник, який включає в себе середній чек, кількість відвідувань, конверсії). Прорахувавши таким чином рентабельність таргетингу. В результаті склали “білий список” локацій, що складається з 10-15 країн, так званий Tier 1, на які розподіляли основний бюджет.
  • Прорахували Per session value в розрізі версії операційної системи та в розрізі новизни, вартості, функцій пристрою. “Переграли” стратегію ретаргетингу (чим новіший і дорожчий пристрій користувача, чим свіжіша «операційка», тим більша ймовірність здійснення покупки)

Портрет «ідеального покупця»

Склавши портрет «Ідеального покупця», ми виявили закономірності (використовуючи дані покупців та рекламних систем), які збільшували приріст у PSV

Доповнення та уточнення Бази Даних про користувача

1. При виконанні дії (завантажити trial, передплата на розсилку, покупка) користувач віддає контактні дані (email)  

2. За допомогою скрипта Source Buster створюється запис у БД із полями:

  • email
  • userid
  • source, medium, campaign, content, term (дані про те, звідки прийшов користувач)
  • clientid

Користувачі використовували різні браузери для тріалу та для покупки. Таким чином, з точки зору Google Analytics 1 користувач міг мати кілька клієнтів.

Після отримання даних перед нами постало завдання по склейці користувачів.

Дані, які ми використовували для «склейки» користувачів:

  • наявність нашої кукі
  • пошук у базі по clientid та отриманому email
  • персональні посилання на email

Якщо у користувача вже була наша кука — ми не оновлювали дані за джерелом і датою, але доповнювали при необхідності дані по clientID та імейлу.

Якщо у користувача не було нашої куки, але ми знайшли userID за імейлом або clientid — вішали знайдену куку і оновлювали в БД дані по email/_ga за необхідності.

Таким чином, ми могли доповнювати дані про користувача. Розпізнавати того самого користувача, який міг приходити з кількох кампаній. Наприклад: спочатку скачав програму на комп’ютері, потім відкрив посилання у листі з мобільного пристрою.

Trial: доповнення даних про користувачів через email

Під час використання тріальної версії продукту користувач отримував різні фоллоуапи на вказану пошту. Він міг відкрити посилання на іншому пристрої або в іншому браузері – ми отримували б різні ClientId і один користувач міг би дублюватися в базі.

Впізнавали користувача з email через позначку get-параметра у листах. Щоб гарантовано “пізнати” відвідувача, у кожне посилання в листі додавався персональний параметр, який допомагав нам “впізнати” користувача.

Якщо при переході за посиланням, ми НЕ бачили своєї cookie у користувача, то відновлювали її за переданою адресою пошти в url і записували в БД новий ClientId.

Ця логіка дозволяла нам впізнавати на сайті користувача, який завантажив програму на комп’ютері, потім відкрив посилання у листі з мобільного пристрою, наприклад.

Далі відбувалася склейка транзакцій від процесингу.

Склейка транзакцій від процесингу:

1. У момент, коли відбувався продаж, процесинг передавав на наші сервери “веб-хук”, в якому передавалися (транзакція, номер, сума, товари, купони, чистий прибуток, email)

2. Ми розмістили GTM в урізаному вигляді на сторінках процесингу, який викликав:

  • коди ремаркетингу
  • коди GA&EEC
  • iframe із сервера з номером транзакції та Clientid на сторінки “дякую за замовлення”

Покупка

Дані користувача після покупки записували в БД, які також прив’язувалися до конкретного UserId.

У нас була одна особливість – замість сторінки “Дякуюємо за покупку” (якої не було), ми використали сторінку процесингу.

Дуже часто користувачі залишали різні поштові адреси при замовленні тріалу/купівлі і для того, щоб користувач не дублювався в базі, треба було постійно рахувати наш ClientID, перевірити на наявність UserID + рахувати дані по поточному джерелу (для подальшого аналізу).

Для того, щоб отримати всі дані, ми на сторінці “Дякуюємо за покупку” відкривали iframe з посиланням на наш сервер. Потім передавали в get-параметрах номер транзакції та ClientID (про всяк випадок) таким чином отримуючи доступ до “наших” куків. І брали з кукі сервера source/medium/campaign із Source Buster.

Додаткові складнощі, з якими зіткнулися:

  • “Урізаний” GTM на сторінках процесингу без дебагу
  • Форми оплати: одноразова, розстрочка, підписка («нанизували» покупки на первинне джерело залучення ліда. Оскільки користувач при першій покупці ввів дані своєї платіжної картки та продовжував приносити прибуток щомісяця)
  • Міждоменне відстеження, недотрек та інші радощі складних інтеграцій :)

У момент покупки ми робили перевірку по ClientId (якщо нашої cookie userID не було) і записували в окрему таблицю транзакцію з даними за джерелами, часом/датою та прив’язкою до ClientId.

Після отримання веб-хука, проводилася додаткова перевірка по базі userID по імейлу. Якщо ми знаходили користувача, то пов’язували покупку з існуючим userID, якщо ні – створювали новий і, по можливості, відразу ж “вішали” нашу куку покупцю (або вішали на наступному відвідуванні).

При повторних платежах (покупка в розстрочку або за підпискою), суми доходу прив’язувалися до userID через пошук за ID оригінальної (першої) транзакції + інформація про платіж відправлялася за measurement протоколом в GA (використовували ClientId та джерела першої транзакції).

Об’єднання даних із різних джерел

На сторінці «дякую» процесінг має clientid і transactionid — це ключі.

На сторінці iframe з нашого сервера, крім clientid, є source, medium, campaign…, яким прийшов користувач.

У вебхуку є transactionid і склад транзакції, сума заробітку та email користувача.

Об’єднання даних із різних джерел

По цих всіх ключах ми доповнювали дані і склеювали їх воєдино в БД. У БД був clientid, transactionid, дані Sourcebuster, що користувач купив, скільки ми заробили, імейл і userid. Таким чином ми могли побудувати зв’язки між сайтом, сторінкою процесингу та кінцевим продажем у базі даних.

Побудова звіту та аналіз

Для розрахунків реального ROI ми використали надбудову Power Query MS Excel.

Дані витягували з двох джерел:

  1. GA — джерела трафіку, витрати та прямі продажі, дати
  2. БД – результуюча таблиця “дата попадання в базу” – “перше джерело” – “дата покупки” – “сума доходу”

Прибуткова та видаткова частина

Витрати — імпортували в GA за допомогою OWOX BI Pipeline

Доходи — у GA за допомогою Measurement Protocol (Revenue & Refunds), у БД за допомогою webhook від процесингу.

Після обробки ми отримували таку зведену таблицю:

“місяць залучення” – “джерело залучення” – “витрати” – “кількість нових користувачів” – “кількість покупок цими користувачами” – “дохід” – “прибуток” – “ROI”

Далі ми розширювали-доповнювали таблицю до когорти за датою залучення чи аналізу ефективності “конвертуючих” джерел.

Об’єднання даних

У нас було кілька джерел даних, які потрібно об’єднати:

  • GA costs: data, cost, source, medium, campaign
  • GA revenue: data, transactionid, revenue, source, medium, campaign
  • БД: data, transactionid, revenue, source, medium, campaign

Розрахунок рентабельності інвестицій та маркетингового ROI

Склейка (merge) таблиць

1. Створюємо ключ date, source, medium, campaign, наприклад: 201609_google_cpc_sale-30

2.Зв’язуємо таблиці та враховуємо 4 сценарії:

  • продаж є в GA, але немає в БД
  • є в БД та GA
  • є в БД, але немає в GA (по основному сайту)
  • є в БД, але немає в GA (продаж іншої програми на іншому сайті)

Як виглядали дані

«Сирі» дані
«Склеєні таблиці»

У результаті нам вдалося побудувати зведену

Зведена

Результати

Ми налаштували процес підрахунку Real ROI.

Виявилося, що ROI з PPC реклами позитивний, але не такий високий, як хотілося б. Це дозволило компанії перерозподілити гроші на продукти, канали та кампанії з вищим ROI.

Цитата з Forbes

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

Paul Muzok

Co-founder, CEO

З Романом завжди приємно співпрацювати.

Олександр Цепко

COO

У Ромі підкуповує увага до деталей і орієнтація на результат

Потрібне налаштування веб-аналітики?

Ми знаємо як розрахувати рентабельність інвестицій у маркетинг

Підпишись, щоб не пропустити свіжі матеріали

Нові статті, відео, подкасти про performance-маркетинг, інтернет-бізнес та продуктивність 3-4 рази на місяць. Вже 8026 підписників.

Ми не працюємо з:

  • russia
  • CBD
  • Tobacco
  • Politics
  • Gambling
  • YMYL
  • Crypto
  • Pornography

Сертифікати
й нагороди

Google Analytics Individual Qualified з 2009 р.

Meta Business Partner. Таких всього ~16 в Україні

eSputnik Partner з 2019 р.

MailChimp Experts з 2010 р.

UpWork Top Rated

#364 в TOP-1000 компаній у світі, 2025 за версією Clutch

Top-10 Digital-агенцій України, 2025 за версією Ringostat

Клієнти

З 2008 року ми працювали з 281 Клієнтами і допомогли їм зробити інтернет-маркетинг ефективнішим і заробити більше.

Клієнти
ПРО НАС

Чому ми обрали Roman.ua?
Тому що в хорошому сенсі вони задроти.