Проведение анализа воронки конверсии на сайте
Анализ воронки конверсии определяет, на каком этапе пользователи уходят, не совершив целевое действие. Для интернет-магазина это может быть просмотр → корзина → чекаут → оплата. Для 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. Добавить шаги, включить breakdown по device/segment.
Анализ через BigQuery (для GA4)
-- Конверсия на каждом шаге воронки
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 рабочих дней.







