Как посчитать Paid Traffic в SQL

Проверь себя · 1/3разбор после ответа
В таблице users столбец is_test может быть 0, 1 или NULL. Нужно исключить тестовых пользователей (is_test = 1), но оставить остальных, включая NULL. Какой фильтр корректен?

Зачем Paid Traffic

Маркетинг заливает деньги в рекламу: «трафик +200%». Но CPC вырос с 10 до 30 рублей. ROAS — упал. Paid traffic — палка о двух концах: масштабируется легко, но стоит дорого. Знание метрик помогает его оптимизировать.

Определение

Paid traffic — посещения, оплаченные через рекламу (Yandex.Direct, Google Ads, ВКонтакте Ads и т.д.).

В UTM: utm_medium=cpc / paid / display / social.

Базовый расчёт

SELECT
    DATE_TRUNC('month', session_date) AS month,
    COUNT(DISTINCT visitor_id) AS paid_visitors,
    COUNT(*) AS paid_sessions
FROM sessions
WHERE medium IN ('cpc', 'paid', 'display', 'social-paid')
  AND session_date >= '2026-01-01'
GROUP BY 1
ORDER BY 1;

CPC

WITH spend AS (
    SELECT
        DATE_TRUNC('month', DATE) AS month,
        SUM(spend) AS total_spend,
        SUM(clicks) AS total_clicks
    FROM ad_spend
    WHERE DATE >= '2026-01-01'
    GROUP BY 1
)
SELECT
    month,
    total_spend,
    total_clicks,
    total_spend / NULLIF(total_clicks, 0) AS cpc
FROM spend
ORDER BY month;

CPC растёт по мере роста конкуренции и увеличения бюджета.

Закрепи формулу paid traffic в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать paid traffic в Telegram

По каналам

WITH paid_stats AS (
    SELECT
        utm_source,
        utm_campaign,
        COUNT(DISTINCT visitor_id) AS visitors,
        COUNT(*) AS sessions
    FROM sessions
    WHERE medium = 'cpc'
      AND session_date >= CURRENT_DATE - INTERVAL '30 days'
    GROUP BY utm_source, utm_campaign
),
ad_data AS (
    SELECT
        utm_source,
        utm_campaign,
        SUM(spend) AS spend,
        SUM(clicks) AS clicks
    FROM ad_spend
    WHERE DATE >= CURRENT_DATE - INTERVAL '30 days'
    GROUP BY utm_source, utm_campaign
)
SELECT
    p.utm_source,
    p.utm_campaign,
    p.visitors,
    p.sessions,
    a.spend,
    a.spend / NULLIF(p.sessions, 0) AS cost_per_session,
    a.spend / NULLIF(a.clicks, 0) AS cpc
FROM paid_stats p
LEFT JOIN ad_data a USING (utm_source, utm_campaign)
ORDER BY a.spend DESC NULLS LAST;

Частые ошибки

Ошибка 1. Потеря UTM-параметров. Пользователь кликнул по платному объявлению, потом зашёл из органики — засчитывается последнее касание, и UTM платного канала теряется. Отслеживайте первое касание (first-touch).

Ошибка 2. Ботовый трафик в платном канале. Click-fraud — это накрутка кликов ботами. Из-за неё реальный CPC за живой трафик выше, чем показывает отчёт.

Ошибка 3. Сравнивать конверсию платного и органического трафика напрямую. У платного трафика интент обычно ниже, поэтому и конверсия закономерно ниже. Сравнивайте динамику внутри одного канала, а не каналы между собой.

Ошибка 4. Мешать брендовую платную рекламу с органикой. Брендовая платная реклама (запросы с названием компании) по сути перехватывает органический спрос. Выделяйте её в отдельный сегмент.

Ошибка 5. CPC vs CPM vs CPA. Это разные модели оплаты. CPC — плата за клик. CPM — за 1000 показов. CPA — за целевое действие.

Связанные темы

FAQ

Какой CPC считается нормальным?

Зависит от индустрии. В массовом B2C по России это 5–30 руб за клик, в финтех-B2C — 50–200 руб, а в B2B SaaS доходит до 200–1000 руб и выше. Ориентируйтесь не на абсолютную цифру, а на то, окупается ли клик вашей выручкой.

Какая доля платного трафика считается нормой?

У стартапа в фазе активного роста платный трафик занимает 50–70%. В зрелом бизнесе здоровая доля — 30–50%, потому что органика и удержание уже дают устойчивый поток без рекламы.

CPC растёт — что делать?

Первым делом пересмотрите ставки и стратегию биддинга, а затем уточните таргетинг, чтобы не платить за нецелевую аудиторию. Улучшите объявления и посадочные страницы — это поднимает quality score и снижает цену клика. Параллельно тестируйте более дешёвые каналы.

Да, это нормально: у платного трафика интент в среднем ниже, чем у органического. Чтобы сократить разрыв, работайте над посадочными страницами и соответствием объявления той странице, на которую оно ведёт.

Что использовать для трекинга — UTM или fingerprint?

UTM-метки — это стандарт и основа атрибуции. Fingerprint используют как дополнение, чтобы связывать сессии одного пользователя между устройствами, когда UTM не хватает.