Проведення аналізу воронки конверсії на веб-сайті
Аналіз воронки конверсії визначає, на якому етапі користувачі уходять, не скориставши цільові дії. Для інтернет-магазину це може бути перегляд → кошик → чекаут → оплата. Для SaaS: реєстрація → онбординг → активація → оплата.
Настройка воронки в GA4
// Розмітка подій для кожного кроку воронки
// Крок 1: Перегляд сторінки товару
gtag('event', 'view_item', {
items: [{ item_id: product.id, item_name: product.name, price: product.price }]
});
// Крок 2: Додавання в кошик
gtag('event', 'add_to_cart', {
currency: 'RUB',
value: product.price,
items: [{ item_id: product.id, quantity: 1 }]
});
// Крок 3: Початок оформлення
gtag('event', 'begin_checkout', {
currency: 'RUB',
value: cartTotal,
items: cartItems
});
// Крок 4: Додавання платіжних даних
gtag('event', 'add_payment_info', {
payment_type: 'card',
value: cartTotal
});
// Крок 5: Покупка
gtag('event', 'purchase', {
transaction_id: order.id,
value: order.total,
currency: 'RUB'
});
Створення воронки в GA4: Explore → New exploration → Funnel exploration. Додати кроки, включити розбивку по пристроям/сегментам.
Аналіз через BigQuery
-- Конверсія на кожному кроці воронки
WITH funnel AS (
SELECT
user_pseudo_id,
MAX(CASE WHEN event_name = 'view_item' THEN 1 ELSE 0 END) AS viewed,
MAX(CASE WHEN event_name = 'add_to_cart' THEN 1 ELSE 0 END) AS added,
MAX(CASE WHEN event_name = 'begin_checkout' THEN 1 ELSE 0 END) AS checkout,
MAX(CASE WHEN event_name = 'purchase' THEN 1 ELSE 0 END) AS purchased
FROM `project.analytics.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20240301' AND '20240331'
GROUP BY user_pseudo_id
)
SELECT
COUNT(*) AS total_users,
SUM(viewed) AS viewed,
SUM(added) AS added_to_cart,
SUM(checkout) AS started_checkout,
SUM(purchased) AS purchased,
ROUND(SUM(added) * 100.0 / SUM(viewed), 1) AS view_to_cart_rate,
ROUND(SUM(checkout) * 100.0 / SUM(added), 1) AS cart_to_checkout_rate,
ROUND(SUM(purchased) * 100.0 / SUM(checkout), 1) AS checkout_to_purchase_rate,
ROUND(SUM(purchased) * 100.0 / SUM(viewed), 2) AS overall_cvr
FROM funnel;
Сегментація воронки
-- Воронка за пристроями
SELECT
device_category,
COUNT(DISTINCT CASE WHEN step >= 1 THEN user_id END) AS step1_users,
COUNT(DISTINCT CASE WHEN step >= 2 THEN user_id END) AS step2_users,
COUNT(DISTINCT CASE WHEN step >= 3 THEN user_id END) AS step3_users,
ROUND(COUNT(DISTINCT CASE WHEN step >= 3 THEN user_id END) * 100.0 /
NULLIF(COUNT(DISTINCT CASE WHEN step >= 1 THEN user_id END), 0), 1) AS cvr
FROM funnel_data
GROUP BY device_category;
Аналіз причин відтоку на кроці
Після виявлення "вузького місця" — дослідити чому:
Інструменти:
- Hotjar/Clarity: записи сесій користувачів, які застрягли на кроці
- Тепові карти: куди кликають на проблемній сторінці
- Form Analytics: поля, на яких бросают заповнення форми
// Отслідкування abandonment на формі чекаута
document.querySelectorAll('#checkout-form input').forEach(field => {
field.addEventListener('blur', () => {
gtag('event', 'checkout_field_blur', {
field_name: field.name,
has_value: field.value.length > 0
});
});
});
// Отслідкування виходу зі сторінки без відправки
window.addEventListener('beforeunload', () => {
if (document.querySelector('#checkout-form') && !formSubmitted) {
gtag('event', 'checkout_abandonment', {
last_field: lastFocusedField
});
}
});
Часовий аналіз воронки
Час між кроками теж інформативний:
SELECT
user_id,
MIN(CASE WHEN event = 'view_item' THEN timestamp END) AS view_time,
MIN(CASE WHEN event = 'add_to_cart' THEN timestamp END) AS cart_time,
MIN(CASE WHEN event = 'purchase' THEN timestamp END) AS purchase_time,
TIMESTAMP_DIFF(
MIN(CASE WHEN event = 'purchase' THEN timestamp END),
MIN(CASE WHEN event = 'view_item' THEN timestamp END),
MINUTE
) AS time_to_purchase_minutes
FROM events
GROUP BY user_id
HAVING purchase_time IS NOT NULL;
Якщо середній час перегляд → покупка = 3 дні, потрібен ретаргетинг з нагадуванням протягом цих днів.
Графік
Розмітка подій + BigQuery аналіз + сегментація + отчет: 3-5 робочих днів.







