ОП.03 · ЗАНЯТИЕ 12 ак. часа

Цифровая
воронка

Тема
как данные проходят от ссылки до заявки
Формат
лекция «вопрос → ответ», затем практика
Уровень
с нуля, без предварительных знаний
Результат
карта воронки v1 и журнал событий по действующему сайту

нажмите любую клавишу, чтобы начать ▸

01/50

ОП.03 · занятие 1 · 2 академических часа

Цифровая
воронка

как данные проходят от ссылки до заявкиразбираем с нуля
01

Вопрос 1

О чём это
занятие?

Одно предложение, к которому мы вернёмся в конце

01

Ответ

Про то, что происходит между «человек кликнул ссылку» и «мы увидели цифру в отчёте»

Между этими двумя моментами данные проходят длинный путь через несколько систем. Сегодня мы разберём этот путь по частям: из чего он состоит, кто им управляет и где он рвётся.

К концу пары каждый из вас откроет действующий сайт, своими глазами увидит, какие данные он отправляет, и составит карту этого пути.

01

Вопрос 2

Что происходит,
когда вы открываете сайт?

Кроме того, что загружается страница

02

Ответ

Загружается страница — и одновременно сайт сообщает о вас наружу

Открытие страницы — это не один запрос, а несколько десятков. Часть из них ничего не приносит на экран: они уходят на серверы аналитики и сообщают, что страницу открыли. Пока вы читаете и прокручиваете, отправляются новые — уже про ваши действия. Из них и собирается всё, что потом видно в отчётах.

Учебный стенд: обычная страница курса с кнопкой
Учебный стенд — обычная страница; запросы уже ушли.
02

Вопрос 3

Хорошо. А что такое
воронка?

Слово из названия темы, начнём с него

03

Ответ · определение и происхождение

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

Наверх входит много людей — те, кто увидел рекламу или ссылку. Донизу доходят немногие — те, кто оставил заявку. Форма воронки показывает это сужение: чем ниже шаг, тем меньше людей на нём осталось.

Модель, из которой выросла воронка, предложил рекламист Элиас Сент-Эльмо Льюис в 1898 году: внимание → интерес → желание → действие. Изображать её именно воронкой стали позже; этот образ закрепил Уильям Таунсенд в книге «Bond Salesmanship» (1924).

«Клиента нужно провести через четыре ступени: привлечь внимание, вызвать интерес, пробудить желание и подтолкнуть к действию».

Э. Сент-Эльмо Льюис · модель AIDA, 1898
03

Вопрос 4

Почему её рисуют
сужающейся?

Почему не лестницей и не прямой линией

04

Ответ

Потому что переход на каждый следующий шаг делают не все

Ширина полосы — это число людей, дошедших до шага. Разница между соседними полосами — потеря на переходе. Именно эти потери нас интересуют: воронку строят не ради красивой картинки, а чтобы найти шаг, на котором отсеивается больше всего.

увидели страницу1000
нажали кнопку620
открыли форму410
оставили заявку190
Между «нажали кнопку» и «увидели страницу» теряется 380 человек — самый большой обрыв.
04

Вопрос 5

А что значит
«цифровая» воронка?

Воронки строили и до интернета

05

Ответ

Каждый шаг можно измерить автоматически, потому что действие оставляет цифровой след

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

«Половину денег, которые я трачу на рекламу, я выбрасываю впустую. Беда в том, что я не знаю, какую именно половину».

фразу приписывают Джону Ванамейкеру, владельцу универмагов, конец XIX века

Цифровая воронка существует, чтобы ответить на этот вопрос — какая половина.

05

Вопрос 6

Что считается
одним шагом воронки?

Чем измеряется переход

06

Ответ · первое из четырёх понятий

Событие

Сначала есть действие — то, что человек сделал в интерфейсе: нажал, прокрутил, ввёл текст. Действие само по себе нигде не сохраняется: если его не зафиксировать программно, оно происходит и исчезает.

Событие — это зафиксированный факт действия, переданный в систему аналитики. У него есть имя, например generate_lead, и набор параметров. Событие отвечает на вопрос «что произошло». Исправить переданное событие нельзя — можно только отправить новое.

Шаг воронки — это событие. «Открыли форму» — событие form_start. «Оставили заявку» — событие generate_lead.

06

Вопрос 7

Значит, 200 событий —
это 200 клиентов?

Здесь чаще всего ошибаются

07

Ответ · второе понятие

Нет. Событие — это не заявка

Заявка — это запись со смысловыми данными обращения: имя, контакт, текст, источник, время. Она хранится в таблице или системе управления заявками и отвечает на вопрос «с кем и о чём». Одно нажатие кнопки — это событие; заявка появляется, только если человек заполнил и отправил форму.

событий200
заявок24

«Тщеславные метрики — это красивые растущие числа, по которым нельзя понять, что делать дальше. Полезные метрики отвечают на вопрос: какое решение принять».

Эрик Рис, «Бизнес с нуля» (The Lean Startup), 2011 — пересказ
07

Вопрос 8

Что происходит
с заявкой дальше?

После того как форма отправлена

08

Ответ · третье понятие и сводка

Её обрабатывают, и у неё меняется статус

Статус — это этап обработки заявки: new, in progress, done, при необходимости rejected. Он отвечает на вопрос «на каком этапе работа» и меняется многократно — людьми и автоматизацией. Заявки и их статусы хранятся в системе управления заявками (CRM).

действиечто человек сделал; нигде не хранится
событиечто произошло; в аналитике; неизменяемо
заявкас кем и о чём; в таблице / CRM
статусна каком этапе; в CRM; меняется

Аналитик считает события, менеджер работает с заявками, руководитель смотрит на статусы. Три роли — три взгляда на один поток.

08

Вопрос 9

Как действие
превращается в данные?

Что происходит технически в момент нажатия

09

Ответ

Программа в браузере отправляет письмо — HTTP-запрос

В момент действия скрипт на странице собирает строку с параметрами и отправляет её на сервер системы аналитики. С точки зрения сети это ничем не отличается от загрузки картинки; разница в том, что вместо картинки передаётся описание произошедшего. Ниже — настоящий запрос, пойманный на учебном стенде после нажатия «Отправить».

От: страница ?utm_source=college&utm_medium=post&utm_campaign=sept_open
Кому: www.google-analytics.com /g/collect  ·  Метод: POST
en=generate_lead tid=G-4EXAMPLE99 dl=http://localhost/?utm_source=college&utm_medium=post&utm_campaign=sept_open dt=Курс «Аналитика с нуля» — учебный стенд ep.form_id=lead_main ep.source=college epn.value=0 _et=3758
09

Вопрос 10

И что написано
внутри этого письма?

Разберём по одному параметру

10

Ответ · параметры запроса /g/collect · значения с учебного стенда

Каждый ключ — одна строчка смысла

tid=G-4EXAMPLE99Куда поступит событие — идентификатор ресурса аналитики. Разные сайты пишут в разные tid.
en=generate_leadИмя события. По нему строят отчёты. Бывает автоматическим (page_view) или заданным вручную.
dl=… · dt=…Адрес и заголовок страницы, с которой отправлено событие. В dl видны метки utm_* из ссылки.
ep.source=collegeДополнительный параметр. Здесь «college» подставился из метки utm_source в адресе. Без метки было бы (not set).
_et=3758Engagement time: 3758 мс — столько человек взаимодействовал со страницей до отправки.

Всё, что мы настраиваем в диспетчере тегов и в аналитике, в итоге меняет именно эти строки.

10

Ответ · продолжение · откуда берётся ep.source

Один и тот же клик, две разные ссылки

Событие generate_lead с меткой utm_source и без неё
Событие одинаковое — различается один параметр. Слева переход был по ссылке с utm_source=college, справа — по ссылке без метки. Это и чиним на занятии 2.
10

Вопрос 11

Это можно увидеть
своими глазами?

Без доступа к самой аналитике

11

Ответ · шаг 1 из 7 · настроить панель

Открыть Network и оставить только запросы аналитики

Верх панели DevTools: вкладки, кнопка Preserve log, поле фильтра 1 2 3
1Нажать F12 (или Cmd + Option + I) и перейти на вкладку Network.
2Поставить галочку Preserve log — чтобы список не очищался при переходах.
3В поле Filter вписать collect — останутся только запросы к системе аналитики.
11

Ответ · шаг 2 из 7 · действие даёт строку

Каждое действие на странице — новая строка в списке

Кнопка «Оставить заявку» на учебном стенде
1. нажали кнопку и отправили форму на стенде
Список запросов collect в панели Network
2. в панели появились строки collect?…&en=…

Открытие страницы даёт page_view, прокрутка — scroll, нажатие кнопки — select_content, отправка формы — generate_lead. Имя действия записано прямо в адресе строки, в параметре en=.

11

Ответ · шаг 3 из 7 · открыть запрос → откуда каждый параметр

Клик по строке → вкладка Payload → разбор значений

Часть 1 — поля, которые зависят от того, что вы сделали на странице.

en=generate_lead←вы нажали кнопку «Отправить». Имя задал программист сайта в вызове счётчика
dt=Курс «Аналитика с нуля»…←тег <title> открытой страницы, браузер берёт его сам
ep.form_id=lead_main←атрибут id формы в вёрстке — так различают несколько форм на сайте
_et=3758←счётчик активного времени: сколько миллисекунд вы взаимодействовали со страницей до нажатия
11

Ответ · шаг 3 · откуда это в коде

Слева — код учебного стенда, справа — что улетело

form.addEventListener('submit', () => {
  gtag('event', 'generate_lead', {
    form_id: 'lead_main',
    source:  currentSource(),
    value:   0,
    currency:'RUB'
  });
});

// currentSource() — это буквально:
new URLSearchParams(location.search)
      .get('utm_source') || '(not set)'

stend/index.html

→
en=generate_lead
ep.form_id=lead_main
ep.source=college
epn.value=0
ep.currency=RUB

вкладка Payload

Второй аргумент gtag('event', …) становится параметром en. Каждый ключ объекта — отдельным полем: строка превращается в ep.имя, число — в epn.имя. Никакой магии: что программист написал в объекте, то и уходит в запросе.

11

Ответ · шаг 3 · часть 2 · служебные поля

Откуда берутся поля, которые вы не задавали

tid=G-4EXAMPLE99←прописан в коде счётчика при установке. Один на весь сайт, от посетителя не зависит
cid=1788496860.36949…←файл cookie _ga в вашем браузере. Создаётся при первом визите и живёт до очистки cookie
sid=1788496860←номер текущего визита. Новый — после 30 минут без действий или на следующий день
sct=1 · seg=1←какой это визит по счёту и был ли он «вовлечённым» — считает сам счётчик
ul=ru-ru · sr=1470x956←язык браузера и разрешение экрана. Браузер сообщает их сам, не спрашивая
_s=5←порядковый номер запроса в этом визите: это пятое событие подряд

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

11

Ответ · шаг 4 из 7 · пустые поля

Что ломается дальше, если поле пришло пустым

Если перейти по ссылке без метки, событие всё равно уйдёт — но часть полей окажется пустой: вместо значения будет (not set) или ничего. Вот к чему это приводит на следующих станциях маршрута.

ep.source — пусто→в отчёте по каналам заявка попадёт в строку (not set) или direct. Неясно, какая ссылка её привела
ep.form_id — пусто→если форм на сайте несколько, отличить их будет нечем: все заявки склеятся в одну
cid — пусто→события одного человека не свяжутся между собой; один визит распадётся на несколько «пользователей»
ID заявки — пусто→автоматизация не найдёт запись при повторном обращении и создаст дубль в CRM

Отсюда правило, к которому мы вернёмся на каждом занятии: пустое поле — это не «мелочь в данных», а сломанная связь между двумя станциями маршрута. Проверять поля нужно там, где они появляются, а не в конце, когда цифры уже не сходятся.

11

Ответ · шаг 5 из 7 · что означают столбцы

Что означают колонки строки collect

Строки запросов collect: столбцы Name, Status, Type, Size 1 2 3 4
1Name — адрес запроса. В нём виден en= — имя события.
2Status 204 — «принято, тела ответа нет». Серверу нечего вернуть, поэтому ответ пустой.
3Type ping — запрос ушёл через navigator.sendBeacon: браузер дошлёт его, даже если вкладку закрыть.
4Size 0.1 kB — вес крошечный: улетает только строка параметров.
11

Ответ · шаг 6 из 7 · вкладка Headers

Куда ушёл запрос и что ответил сервер

Вкладка Headers: Request URL, Request Method POST, Status Code 204 No Content
настоящий кадр · вкладка Headers
Request URLВесь запрос одной строкой. До ? — адрес приёмника (/g/collect), после — параметры через &.
%D0%9A%D1%83…Кириллица и спецсимволы закодированы: :// превращается в %3A%2F%2F, буквы — в %D0…. Читать удобнее во вкладке Payload.
Request MethodPOST — способ отправки. Данные всё равно лежат в адресе, а не в теле.
Status Code204 No Content с зелёной точкой — сервер принял запрос, возвращать нечего. Это норма для аналитики.
Remote AddressКуда физически ушёл запрос: адрес и порт сервера-приёмника.
11

Ответ · шаг 7 из 7 · вкладка Payload · тот же запрос, разобранный по полям

Query String Parameters — все поля события

Вкладка Payload: список параметров запроса collect
настоящий кадр · вкладка Payload
v · tidверсия протокола и идентификатор ресурса аналитики — куда уходит событие
gtm · _p · _sслужебные: версия контейнера тегов, номер загрузки страницы и порядковый номер запроса в визите
cidанонимный идентификатор браузера из cookie _ga — связывает визиты одного человека
sid · sct · segидентификатор визита, его номер по счёту и признак «вовлечённый визит»
ul · srязык браузера и разрешение экрана — уходят автоматически
dl · dtадрес и заголовок страницы. Внутри dl целиком лежат метки utm_*
enимя события — generate_lead. Главное поле: по нему строятся отчёты и воронки
ep.* · epn.*параметры события: строковые (ep.form_id, ep.source) и числовые (epn.value)
_etengagement time: миллисекунды взаимодействия со страницей до отправки
11

Вопрос 12

Всегда ли так
измеряли?

Короткая историческая справка

12

Ответ · как считали посещения в разные годы

От журналов сервера к встроенным счётчикам

конец 1990-хЖурналы сервераКаждая строка журнала — один запрос файла. Проблема: кэш браузера и сети доставки контента — запрос до сервера не доходит.
2000-еПиксель 1×1Данные кладут в адрес прозрачной картинки. Термин «web bug» ввёл исследователь приватности Ричард Смит в 1999 году.
с 2014sendBeaconБраузер дослыает запрос после выгрузки страницы; фиксируются события ухода.
сегодняВстроенные счётчикиСкрипт на странице срабатывает при каждом просмотре; журналы сервера — для диагностики и безопасности.
12

Вопрос 13

Кто ведёт заявку
от ссылки до отчёта?

Человек или программа

13

Ответ · маршрут из десяти станций

И человек, и программа — по очереди

1 ссылка руч 2 сайт авто 3 диспетчер тегов авто 4 аналитика авто 5 форма руч 6 таблица авто 7 автоматизация авто 8 CRM руч 9 уведомление авто 10 дашборд авто

Ручными участками управляют люди: ссылку размечает специалист по продвижению, форму заполняет посетитель, статус изменяет менеджер. Остальное работает автоматически.

13

Вопрос 14

Где на этом маршруте
теряются данные?

И почему именно там

14

Ответ · четвёртое понятие

На стыках, а не внутри станций

ФОРМАручной участок
поле source
ТАБЛИЦАавтоматический участок

Точка разрыва — стык двух шагов или систем, на котором данные теряются, искажаются или дублируются. Форма не передала поле source — в отчёте у заявки источник останется (not set). Внутри самой формы и самой таблицы данные при этом целы. Рвётся именно на переходе, чаще всего — там, где ручной участок передаёт данные автоматическому.

14

Вопрос 15

Почему аналитика, таблица
и CRM показывают разные цифры?

Три типичные ловушки

15

Ответ · разберём на числах

Одна кампания, три системы, три разных числа

Запустили рассылку. Через неделю смотрим на три экрана и видим три разные цифры — про одно и то же событие.

аналитика120событий generate_lead
таблица заявок96строк
CRM84карточки
−24 · где потерялись между аналитикой и таблицей?
−12 · где потерялись между таблицей и CRM?

Вопрос не «какая система врёт». Все три считают разные вещи, и каждую разницу можно объяснить. Разберём обе по очереди.

15

Первый разрыв · аналитика 120 → таблица 96

Куда делись 24 заявки

−14Блокировщики. У части посетителей расширение не пустило запрос в аналитику. Форму они отправили, строка в таблице появилась — а события нет. Здесь в аналитике меньше, чем в таблице.
+30Повторные нажатия. Кнопку нажали дважды — ушло два события, а строка одна. Здесь наоборот: в аналитике больше.
+8Ваши же тесты. Проверки на паре тоже попали в статистику. Если тестовый трафик не отфильтрован, он раздувает число событий.

Итог: 120 − 14 + 30 + 8 ≈ 96 после вычитания задвоений и тестов. Числа сходятся, когда каждую поправку назвали.

15

Второй разрыв · таблица 96 → CRM 84

Куда делись ещё 12 заявок

−7Дубли склеили. Один человек отправил форму дважды — в таблице две строки, а в CRM автоматизация нашла существующую карточку и обновила её. Это правильное поведение, а не потеря.
−4Шаг автоматизации упал. CRM не ответила, повторная попытка не была настроена — заявка осталась в таблице и до CRM не доехала. Вот это настоящая потеря.
−1Отклонили при проверке. Пустой контакт или явный спам — заявка есть, карточки нет. Тоже норма, если правило описано.

Из трёх причин проблема только одна — упавший шаг. Две другие — так и задумано. Поэтому сверка данных нужна не для «одинаковых чисел», а чтобы отделить норму от поломки.

15

Отдельная беда · не «сколько», а «откуда»

Почему у половины заявок источник неизвестен

РегистрКампания дала 16 переходов, а в отчёте три строки: VK — 8, vk — 5, Vk — 3. Для аналитики это три разных источника. Лечится справочником меток: только строчные буквы.
(not set)Метка была в ссылке, но не дошла до таблицы: форма не передала поле. В отчёте у заявки источника нет. Искать нужно конкретный переход, на котором значение потерялось.
direct61 % «прямых заходов» у сайта без офлайн-рекламы — это не лояльная аудитория. В direct сваливаются переходы из мессенджеров, приложений и писем без меток.

Это и есть тема занятия 2: научиться размечать ссылки так, чтобы источник доезжал до отчёта целым.

15

Вопрос 16

Что из этого
мы делаем на курсе?

Границы учебного проекта

16

Ответ

В объективе и за кадром

в объективе
  • один учебный сайт с формой и кнопкой
  • воронка из 4 шагов: просмотр → кнопка → форма → заявка
  • учебные источники и тестовые заявки
  • автоматизация, CRM в учебном режиме, уведомления
  • один дашборд на собственных данных
за кадром
  • рекламные бюджеты и закупка трафика
  • персональные данные реальных людей
  • промышленная CRM и корпоративные интеграции
  • серверное отслеживание, модели атрибуции
  • нагрузка и масштабирование
16

Демонстрация · преподаватель · 10 минут

Фиксируем событие generate_lead на учебном стенде

  1. Открыть стенд → F12 → Network, фильтр collect, включить Preserve log.
  2. Перезагрузить → en=page_view. Прокрутить → en=scroll.
  3. Нажать кнопку и отправить форму → select_content, form_start, generate_lead.
  4. Выбрать en=generate_lead → Payload → разобрать параметры.
Учебный стенд: страница с кнопкой «Оставить заявку»
стенд: страница и кнопка призыва к действию
Панель Network: запросы collect со статусом 204
панель Network после прохода: 4 × collect · 204 · ping
17

Домашнее задание · два, с разными сроками

Максим Николаевич не хочет задавать домашнее задание. Но очень хочет

№ 1 · к занятию 2 Путь данных от ссылки до заявки
  1. Открыть shop.merch.google (запасные сайты — в задании), панель Network, фильтр collect.
  2. Сделать три действия: обновить страницу, прокрутить до низа, нажать на товар. По каждому записать имя события en и то, что было в Payload.
  3. Описать путь пользователя от ссылки до заявки в пяти шагах своими словами и найти одно место, где данные могут потеряться.
  4. Приложить два скриншота: список Network и вкладку Payload.

бланк lesson_01/homework_01.md · ветка hw-01 · 30–40 минут

№ 2 · разбор случая + доклад Как собирают данные без согласия
  1. Выбрать один задокументированный случай — темы на следующих экранах.
  2. Письменно ответить на пять вопросов: какие данные и каким способом, кто получал и зачем, как обнаружили, чем закончилось, как это выглядело бы в Network.
  3. Источники: не менее трёх, хотя бы один первичный — отчёт регулятора, научная статья, судебный документ.
  4. Свой замер: открыть три сайта и посчитать, сколько сторонних доменов получают запросы.

файл lesson_01/research_01.md · ветка hw-01-research · доклад 5–7 минут

Полное описание второго задания с шаблоном отчёта и критериями — файл RESEARCH_TASK.md в папке занятия. Про ИИ: наблюдения, поиск источников и сравнение — сами; модель допускается для формулировок и оформления. Я сам так делаю всегда, поэтому и вам запрещать не буду.

ДЗ

Исследовательское задание

А кто ещё смотрит
на эти запросы?

Сегодня мы разбирали свой счётчик. Но он на странице не один

ИС

Зачем этот разбор в курсе по автоматизации

Один инструментарий — разные основания для его применения

Событие, параметр, пиксель, идентификатор браузера работают одинаково независимо от того, кто их настроил. Различает случаи не техника, а основание: предупредили ли человека, получили ли согласие, знает ли он, какие поля о нём уходят и в какую систему.

Дальше по курсу вы соберёте систему, которая накапливает данные о людях: контакты, историю обращений, статусы. Прежде чем её строить, стоит разобрать случаи, когда сбор шёл без согласия, — по документам: отчётам регуляторов, научным работам, судебным решениям.

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

ИС

Выберите одну тему · или предложите свою, согласовав со мной

Двенадцать задокументированных случаев

2018Cambridge AnalyticaПриложение-опросник собрало данные 87 млн профилей — через друзей тех, кто его установил.
2018Тепловая карта StravaПубличная карта пробежек раскрыла периметры военных баз. «Анонимный агрегат» оказался не анонимным.
2006Утечка поисковых логов AOL20 млн «обезличенных» запросов. Журналисты вычислили конкретного человека по его же поиску.
2008Деанонимизация Netflix Prize«Обезличенный» датасет оценок сопоставили с публичными отзывами на другом сайте.
2020Брокеры геоданныхКоординаты собирались через SDK внутри обычных приложений и перепродавались третьим лицам.
2022Пиксель на сайтах клиникРасследование показало: код аналитики отправлял наружу данные о записи к врачу.
2017Session replayИсследование Принстона: скрипты записывали ввод в формы — включая то, что человек не отправил.
2020Тёмные паттерны cookie-баннеровНаучная работа: как устроен баннер, в котором «отказаться» найти труднее, чем «принять».
—Отпечаток браузераКак узнают устройство без cookie: canvas, шрифты, WebGL. Проверьте свой браузер сами.
2016Supercookie оператора связиИдентификатор дописывался в каждый запрос на уровне сети. Удалить его пользователь не мог.
—Аукцион рекламы (RTB)За миллисекунды загрузки страницы данные о посетителе рассылаются сотням компаний.
2022Крупные утечки в РоссииЧто именно утекло у сервиса доставки, службы доставки и медлаборатории — и чем закончилось.
ИС