← Все статьи
26 июня 20268 минКейсыаудит ga4 · слив рекламного бюджета · google ads аудит · cpl оптимизация · аналитика рекламы · кейс

Аудит GA4: CPL $4.42 выглядел нормально, пока не посчитали сделки

Кейс FlyBox: как «нормальный» CPL в GA4 маскировал слив 95% бюджета на нецелевой трафик. Три слоя проблем, пересборка за день, результат −21% CPL за неделю.

Степан Милахин

Аудит GA4 у клиента: CPL $4.42 выглядел нормально, пока не посчитали сделки

CPL $4.42. Дашборд зелёный. Отчёт красивый. А из 150 заявок в реальные заказы конвертировались 8. Если пересчитать стоимость не по лидам, а по клиентам которые реально заплатили, получается $88 за сделку. Это история аудита Google Ads и GA4 у FlyBox, службы международной доставки из Казахстана в 218 стран, и о том, почему красивые метрики в аналитике бывают опаснее отсутствия метрик.

CPL $4.42, метрика которая врала

FlyBox пришёл к нам с работающей рекламой в Google Ads. Бюджет $150 в день, кампании крутятся, GA4 фиксирует Lead-события. CPL по Казахстану $4.42, по международке $5.68. Дашборд зелёный, отчёт красивый, клиент платит.

Проблема вскрылась когда мы посмотрели не на лиды, а на сделки. Из 150 заявок по международной доставке в реальные заказы конвертировались 8. Пять процентов. Причина отвалов одна и та же: «дорого». Люди искали дешёвую доставку, попадали на FlyBox (премиум-сервис в 218 стран), оставляли заявку и уходили когда узнавали цену.

Если пересчитать CPL не по лидам, а по клиентам которые реально заплатили, получается $88 за сделку. При том что GA4 уверенно показывал $4.42. Разница в 20 раз.

Это главная ловушка GA4 для рекламодателя: система считает Lead-событие, ей безразлично кто его совершил. Целевой клиент которому дорого его время и он готов заплатить выше рынка, или человек который сравнивает пять сервисов и считает каждые 500 тенге. Для GA4 это одинаковые конверсии. CPL без замыкания на CRM (заявка → сделка → деньги) это vanity metric. Красивое число которое ни о чём не говорит. Мы подробно разбирали эту механику на примере beauty-студии, где снижение CPL в воронке Instagram → WhatsApp дало совсем другую картину, когда замкнули аналитику на продажи.

Что нашли: три слоя слива

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

Первый слой: все ключевые слова стояли на BROAD match. Негативных ключей на весь аккаунт было два. Результат предсказуем: трафик забит чужими брендами. СДЭК, Рика, DHL, Казпочта, EMS. Люди искали конкурентов, Google показывал им FlyBox, они кликали, оставляли заявку (GA4 фиксирует Lead, CPL красивый), а потом уходили. Потому что искали не FlyBox.

Второй слой: кампания «Алматы» дублировала кампанию «Kazakhstan». Одна и та же география, те же ключи, тот же бюджет. Классическая самоконкуренция: два объявления одного рекламодателя бились друг с другом на аукционе, повышая ставки самим себе. При этом кампания World стояла на паузе, хотя давала заявки.

Третий слой: стратегия MAXIMIZE_CONVERSIONS без ограничения tCPA. Бюджет $219 в день вместо плановых $100. Алгоритм Google делал ровно то, что ему сказали: максимизировал количество конверсий за любую цену. Самый дешёвый трафик это как раз люди ищущие конкурентов (высокий intent, низкая конкуренция за неточные клики). Алгоритм их и покупал. Не потому что он плохой, а потому что ему не поставили ограничений.

Почему GA4 не подсветил проблему сам

GA4 видит события, не бизнес-результат. Когда человек заполняет форму на сайте, GA4 фиксирует событие Lead. Ему неважно, этот человек искал «доставка fbox» или «сдэк Алматы цена». Оба события одинаково ценные для системы.

Enhanced Measurement в связке с broad match создаёт иллюзию роста. Чем шире ключи, тем больше трафика. Чем больше трафика, тем больше конверсий. Чем больше конверсий, тем ниже CPL. Отчёт становится красивее с каждой неделей. Но это рост мусора, а не рост бизнеса.

Без связки GA4 → CRM нельзя отличить мусорный лид от целевого. GA4 не знает, что заявка из поиска «казпочта тарифы» никогда не конвертируется в сделку FlyBox. Для него это такой же Lead как заявка от человека который целенаправленно искал международную доставку премиум-класса.

У нас в M.Sight был похожий по духу баг. Функция сравнения с бенчмарками хардкодила Meta-нормы для всех платформ. Google Search кампании постоянно горели красным по CPL. Не потому что работали плохо, а потому что мы мерили их линейкой от другой платформы. Google Search и Meta имеют разный нормальный CPL/CTR. Мерить Google по меркам Meta = врать. Починили: разделили бенчмарки по platformKey. Суть одна: инструмент показывает то, что вы ему сказали показывать. Если метрика настроена неправильно, красивый отчёт вредит больше чем отсутствие отчёта.

Что починили за один день

Решение не требовало месяцев. Весь аудит и пересборка уложились в один рабочий день.

Первое: shared negative list «FlyBox · Конкуренты + мусор (премиум-фильтр)». 52 негативных ключа, разбитых на три группы. Конкурентные бренды (сдэк, рика, dhl, казпочта, ems, cdek и все производные). Ценовой мусор («дёшево», «недорого», «бюджетно»). Нерелевант (работа, вакансии, трекинг, отследить). Негативы привязаны к shared list и применены ко всем кампаниям разом.

Второе: ограничение tCPA. Для Kazakhstan поставили $4 (исторический CPL был $4.42 с мусором, значит на чистом трафике должен быть ниже). Для World поставили $5. Вместо неограниченного MAXIMIZE_CONVERSIONS алгоритм теперь знает свой потолок.

Третье: паузнули дубль «Алматы», включили World с бюджетом $41 в день. Вместо двух кампаний бьющихся за один и тот же Казахстан получилась одна Kazakhstan ($97 в день) плюс одна World ($41 в день). Чистое разделение без самоконкуренции.

И четвёртое, контринтуитивное. Через неделю мы расширили tCPA с $4 до $4.5 и бюджет с $97 до $130 в день. Платить чуть дороже чтобы получить объём. Это урок из другого клиента: у Gate City старая кампания стояла с target CPA $2.40 при реальном CPL $7. Результат: кампания откручивала 10% бюджета. Алгоритм просто не находил конверсий по $2.40 и выключался. Заниженный tCPA не экономит, он душит кампанию. Когда мы на Gate City поставили реалистичный tCPA $7, день обучения стоил $27 за лид, а уже на следующий день CPL упал до $3.35.

Результат через 7 дней: цифры

Через неделю после пересборки замерили.

Kazakhstan CPL: $4.42 → $3.50. Минус 21 процент. При этом важнее не сам CPL, а то что за ним стоит. «Проходных» заявок (люди искали конкурентов) стало значительно меньше. Те же деньги, но лиды которые реально могут стать клиентами FlyBox.

World CPL: кампания была на паузе, теперь работает и даёт $4.20 за лид. Это трафик который раньше просто не собирали. Международная доставка, целевой сегмент FlyBox, маржинальность выше внутреннего рынка.

Impression Share 33-37%. Потеря по рангу 67%, потеря по бюджету 0%. Это значит: мы показываемся только трети аукционов, но не потому что не хватает денег (потеря по бюджету ноль), а потому что ранг объявлений можно поднять. Есть куда расти без увеличения расхода.

Следующий шаг после аудита: Google Ads assets. До пересборки к активным кампаниям не было привязано ни одного asset. Все RSA, сайтлинки, сниппеты висели на PAUSED-кампаниях. Мёртвый груз. Добавили RSA с 15 заголовками и 4 описаниями, 6 sitelinks, structured snippets, 6 callouts. Суммарный прогноз Google по оптимизации +8.7%. Не гигантская цифра, но это бесплатные проценты которые просто лежали на полу.

GA4 vs Meta vs Google Ads: кому верить

У одного из наших B2B клиентов CTWA-реклама в Meta даёт $1.08 за диалог в WhatsApp. Web Leads через лендинг с тем же продуктом стоят $12.46 за лид. Разница в 12 раз. GA4 при этом покажет лендинговый лид как «лучший» по engagement (время на сайте, глубина просмотра, событие submit). Но деньги приходят из WhatsApp-диалогов. Построить полный pipeline атрибуции для таких воронок можно через отслеживание click-to-WhatsApp рекламы до продажи, и это единственный способ увидеть реальную стоимость диалога.

20-40% расхождение между GA4 и Meta Ads считается нормой в индустрии. Это не баг и не ошибка настройки. Это три разные проекции одной реальности. GA4 считает по last-click (последний клик перед конверсией). Meta считает по 7-day click и 1-day view (если человек видел рекламу и конвертировался в течение дня, Meta припишет себе). Google Ads считает по last Google click. Каждая платформа тянет одеяло на себя.

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

У нас в практике был кейс когда клиент работал без детальных отчётов по рекламе. Дословно: «слепой полёт». Агентство давало общую цифру лидов, без разбивки по каналам, без стоимости, без конверсии в сделки. Когда подключили аналитику и посмотрели на цифры, оказалось что половина заявок приходит ночью (IG), утром на них никто не отвечает, и к моменту звонка человек уже ушёл. Проблема была не в рекламе. Проблема была в том, что без аналитики её невозможно было увидеть.

Чек-лист: 6 точек аудита до запуска рекламы

Этот чек-лист собран из реальных ошибок которые мы нашли у клиентов. Не теоретический «45 пунктов настройки GA4», а шесть мест где деньги утекают чаще всего.

1. Негативные ключи. Есть ли shared negative list? Покрыты ли конкуренты и мусорные запросы? У FlyBox было 2 негатива на весь аккаунт. Трафик по запросам конкурентов съедал бюджет и генерировал «лиды» которые никогда не конвертируются. 52 негатива решили проблему за день.

2. tCPA или tROAS. Стоит ли ограничение и реалистично ли оно? Заниженный tCPA ($2.40 при реальном $7) не экономит. Он не даёт алгоритму обучиться, кампания откручивает 10% бюджета, и деньги просто не работают. Ограничение должно быть чуть ниже текущего CPL, не в два раза ниже.

3. Дубли кампаний. Самоконкуренция по гео, аудиториям, ключам. У FlyBox «Алматы» и «Kazakhstan» бились за одни и те же показы. Проверяется за 5 минут в Google Ads, но никто не проверяет.

4. GA4 конверсии. Что именно считается Lead-ом? Совпадает ли определение с тем, что бизнес считает реальной заявкой? Если GA4 фиксирует Lead на каждый scroll до формы, CPL будет красивый. И бессмысленный.

5. ENV-переменные в проде. У нас в студии был случай: GTM не загружался 5 дней потому что NEXT_PUBLIC_GTM_ID не был добавлен в Vercel ENV. В dev-окружении всё работало, на проде GA4 был слеп. Нашли случайно. Урок: при подключении любого NEXT_PUBLIC_* сразу проверять что переменная дошла до прода. Если вы уже на этапе серверной аналитики, в нашем гайде по server-side GTM + GA4 в проде разобрано как не повторить эту ошибку и получить данные которые client-side просто теряет.

6. Бенчмарки по платформе. Не мерить Google по меркам Meta. CPL $9 для Google Search это нормально. CPL $9 для Meta Ads это дорого. Если дашборд красит всё одним цветом, вы принимаете решения на основе ложной тревоги. Разделите бенчмарки по платформам, иначе рискуете резать рабочие кампании и оставлять нерабочие. Проблема усугубляется в мире без cookie, где GA4 дозаполняет данные behavioral modeling и расхождение между платформами растёт ещё сильнее.

Похожие статьи
Контакты

Расскажите о задаче — посмотрим, по пути ли нам

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