Настройка атрибуції конверсій для сайту
Атрибуція — розподіл заслуги за конверсію між рекламними каналами. Користувач побачив банер, потім знайшов через пошук, через 3 дні повернувся по email та купив. Який канал отримує заслугу? Відповідь залежить від моделі атрибуції.
Моделі атрибуції
| Модель | Логіка | Коли використовувати |
|---|---|---|
| Last Click | 100% останньому каналу перед покупкою | Швидкі рішення, низький чек |
| First Click | 100% першому дотику | Оцінка каналів, що привлекають нових |
| Linear | Порівну між усіма каналами | Довгий цикл продажів |
| Time Decay | Більше вага недавнім дотикам | Короткий цикл угоди |
| Position-based | 40% першому + 40% останньому + 20% іншим | Баланс між привлеченням та конверсією |
| Data-driven | ML на основі реальних даних GA4 | Достатньо даних (1000+ конверсій/мес) |
Настройка у GA4
GA4 за замовчуванням використовує Data-Driven Attribution. Переключення:
GA4 → Admin → Attribution Settings → Reporting Attribution Model
Для порівняння моделей:
Reports → Advertising → Attribution → Model Comparison
Вибрати два канали (наприклад, Paid Search та Email) та порівняти їхній внесок за різними моделями.
Зберігання UTM-параметрів у БД
Для власної атрибуції — зберігати UTM-параметри при кожному відвідуванні:
// При завантаженні сторінки
const utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];
const currentUtm = {};
const urlParams = new URLSearchParams(window.location.search);
utmParams.forEach(param => {
if (urlParams.has(param)) {
currentUtm[param] = urlParams.get(param);
sessionStorage.setItem(param, urlParams.get(param));
}
});
// Зберегти у localStorage для last-touch
if (Object.keys(currentUtm).length > 0) {
localStorage.setItem('last_utm', JSON.stringify({ ...currentUtm, timestamp: Date.now() }));
}
// При оформленні замовлення — передати UTM-параметри
$order->update([
'utm_source' => session('utm_source'),
'utm_medium' => session('utm_medium'),
'utm_campaign' => session('utm_campaign')
]);
Мультиканальна атрибуція на сервері
-- Аналіз конверсій за first-touch атрибуцією
SELECT
first_visit.utm_source,
COUNT(DISTINCT o.id) as orders,
SUM(o.total) / 100.0 as revenue
FROM orders o
JOIN sessions first_visit ON first_visit.user_id = o.user_id
AND first_visit.id = (
SELECT id FROM sessions
WHERE user_id = o.user_id
ORDER BY created_at ASC
LIMIT 1
)
WHERE o.created_at >= NOW() - INTERVAL '30 days'
GROUP BY first_visit.utm_source
ORDER BY revenue DESC;
Вікно атрибуції
Вікно — скільки днів назад повинен бути дотик, щоб засчитуватися. GA4 за замовчуванням: 30 днів для конверсій, 90 днів для покупок. Для B2B з довгим циклом — збільшити до 90–180 днів.
Час настройки: 2–3 дні для настройки GA4 + зберігання UTM у БД.







