CRO як конвеєр: від аналітики до виручки
У березні 2025 року власник магазину туристичного спорядження в Порту зателефонував мені щодо своєї каси. Його команда продавала намети, рюкзаки та спальні мішки через магазин Shopify і посадкові сторінки на Next.js. Трафік тримався близько 9 000 візитів на місяць. Частка завершених покупок становила 1,9 відсотка. За попередні чотири місяці він прогнав одинадцять тестів кнопки покупки: зелена, помаранчева, широкі відступи, жирний текст, закріплення на мобільних. Підсумковий ефект на виручку: нуль. Він попросив мене запустити дванадцятий тест. Я запропонував йому поставити нові тести на паузу на місяць і відкрити зі мною потік подій. За вісім тижнів частка завершених покупок зросла до 3,1 відсотка на тому ж трафіку, близько €14 000 доданої місячної виручки за його середнього чека €85. Цей результат дали чотири етапи. Я веду їх по черзі в кожній роботі на виручку: аналітика, гіпотеза, реліз, замір. Кожен етап ловить збій, повз який проходять решта.
Пастка кольору кнопки
Кнопкові тести провалюються з арифметики раніше, ніж із креативу. За трафіку 9 000 візитів на місяць і базової частки 1,9 відсотка магазин бачив близько 171 замовлення на місяць. Відносний приріст на 10 відсотків означає 19 додаткових замовлень. Щоб зафіксувати такий приріст з упевненістю 95 відсотків, потрібно близько 30 000 відвідувачів на варіант. За його трафіку один тест тягнеться сім місяців. Він тримав кожен тест десять днів, читав шум, випускав переможця і спостерігав плоску виручку. Таку картину я бачу скрізь: малий трафік, короткі заміри, впевнені заяви, плоска виручка.
Кнопки стоять наприкінці довгого ланцюжка. Його воронка показала: 62 відсотки відвідувачів картки товару так і не починали оформлення. З тих, хто почав, 41 відсоток ішов на кроці доставки. Зелена кнопка не торкається жодної з груп. Вона звертається до трьох відсотків відвідувачів, які вже вирішили купити і вагаються через колір. Такої групи майже нема. Тести у вузькому кінці воронки рухають найменшу аудиторію. Конвеєр нижче переносить тест вище за потоком, туди, де живе аудиторія.
Етап 1: аналітика, яка окупається
Я закрив інструмент тестів і відкрив з ним PostHog. Ми описали п'ять подій зі строгими іменами: view_item, add_to_cart, start_checkout, enter_shipping, purchase. Кожна подія несла session_id, клас пристрою і джерело трафіку. Відсутні події я додав через піксель Shopify і невеликий роут Next.js, який дослав серверні покупки з тим самим session_id. Один тиждень чистих даних замінив чотири місяці здогадів.
Спливли три витоки. Перший: сторінка таблиці розмірів ковтала 54 відсотки своїх відвідувачів. Записи сесій показали, як покупці відкривають таблицю, гортають щільну сітку і йдуть. Другий: вартість доставки з'являлася пізно. Закордонні покупці доходили до третього кроку, бачили націнку €18, і 41 відсоток ішов протягом хвилини. Третій: мобільна форма просила дев'ять полів, включно з назвою компанії та факсом. Мобільна прохідність трималася вдвічі нижче за десктопну.
Я оцінюю етап у три робочі дні: день на імена подій і трекінг, день на сорок записів сесій і читання воронки за пристроями й джерелами, день на три нумеровані висновки зі скриншотами. Аналітика окупається, коли називає точний екран, де зупиняються гроші.
Етап 2: гіпотези з правилом зупинки
Кожен витік став однією записаною гіпотезою з механізмом, метрикою і правилом зупинки. Гіпотеза перша: покупці, які бачать підбір розміру всередині картки товару, частіше кладуть товар у кошик. Метрика: частка add_to_cart на трафіку таблиці розмірів. Правило зупинки: глушити тест, коли 1 000 сесій таблиці розмірів минають без приросту або зростають звернення в підтримку щодо розмірів. Гіпотеза друга: покупці, які бачать вартість доставки в картці товару, частіше починають оформлення. Метрика: частка start_checkout закордонного трафіку. Правило зупинки: глушити, коли виручка на відвідувача просідає сильніше 5 відсотків після 500 закордонних сесій. Гіпотеза третя: мобільні покупці, які зустрічають чотири поля, частіше завершують оплату. Метрика: частка покупок на мобільних. Правило зупинки: глушити, коли помилки оплати піднімаються вище базових 1,2 відсотка.
Я ранжую трійку за охопленням: доставка торкалася 38 відсотків трафіку, мобільні поля торкалися 61 відсотка оформлень, підбір розміру торкався 9 відсотків. Доставка пішла першою.
Кожна гіпотеза несе одне речення, яке її вбиває. Правило зупинки я пишу до відкриття редактора. Тест без правила зупинки крутиться, доки про нього пам'ятають, забуті тести гниють у вічних напівфічах. Правило береже календар і кодову базу.
Етап 3: реліз без втрати довіри
Кожен варіант я випускаю за прапорцем у LaunchDarkly за хешем id клієнта. Прапорець віддає контроль або варіант, п'ятдесят на п'ятдесят. Кожну зміну я розкочую на 5 відсотків трафіку на повну добу і дивлюся три огородження: частоту помилок каси в Sentry, неуспішні платежі у вебхуках Stripe і нові гілки підтримки з тегом checkout. Лише потім відкриваю тест на повний трафік.
Збірка підбору розміру показує навіщо. Перша версія накрила кнопку Apple Pay у Safari і заблокувала тапи. Sentry спіймав сплеск помилок кліків протягом години. Прапорець погасив варіант для користувачів Safari за двадцять хвилин, баг побачили лише 3 відсотки сесій. Без прапорця баг гуляв би всі вихідні.
Варіанти я тримаю досить дрібними для видалення. Кожен варіант живе в одному файлі компонента з іменем прапорця нагорі. Коли тест закінчується, програшна гілка покидає кодову базу того самого дня. Власник магазину довірив процесу, оскільки зламані збірки ніколи не виходили на повну аудиторію. Довіру дають прапорець, огородження і видалення в день фіналу.
Етап 4: чесне читання результатів
Результати я читаю за фіксованим календарем: 21 день, включно з трьома вікендами, без ранніх рішень. Буденні покупці відрізняються від покупців вихідних, частка вихідних у нього становила 44 відсотки. Підглядання на п'ятий день з коронацією лідера двічі увінчало би шум за цю роботу.
Головна метрика тримається одна: виручка на відвідувача. Вторинні метрики ведуть частку завершених покупок і середній чек. Огородження ведуть частку повернень і звернення в підтримку на сто замовлень. Варіант, що піднімає конверсію і одночасно піднімає повернення, програє. Це правило я записую до запуску, щоб перемога не засліплювала мене в день читання.
Прозорість доставки перемогла. Частка start_checkout закордонного трафіку зросла з 22 до 34 відсотків. Частка завершених покупок рушила з 1,9 до 3,1 відсотка по сайту. Виручка на відвідувача зросла на 41 відсоток. Частка повернень утрималася на 2,1 відсотка. Звернення про доставку впали з одинадцяти на тиждень до трьох. Мобільна форма з чотирьох полів перемогла наступною, додавши ще 0,4 пункту. Підбір розміру зіграв унічию після 1 000 сесій, правило зупинки прибрало його за розкладом.
Кожне рішення я пишу в одну таблицю: дата, гіпотеза, читання, дія. Чотири рядки закривають роботу. Кожен етап конвеєра ловить власний збій: аналітика ловить здогади, гіпотеза ловить нескінченні тести, реліз ловить зламані збірки, чесне читання ловить дуті перемоги. Відкрийте цього тижня потік подій і перелічіть три виходи, що коштують вам найдорожче.