Инженерный блог

AdSense в Казахстане приносит копейки? Как мы сделали x3 к RPM, скормив GA4 Predictive Audiences в Google Ad Manager

13.08.2026
Шарафутдинов Р.

Если вы владелец контентного проекта в Казахстане, вы знаете это чувство. Вы открываете дашборд Google AdSense в конце месяца, смотрите на трафик (сотни тысяч уникальных пользователей!), а затем смотрите на доход. И плачете. RPM (Revenue Per Mille — доход на тысячу показов) болтается где-то на уровне $0.15 - $0.30. Вы зарабатываете копейки, в то время как ваши серверы жрут бюджет на AWS или GCP с аппетитом голодного студента.

AdSense — это отличный инструмент для старта. Вставил один скрипт в <head>, включил Auto Ads и пошел пить кофе. Но за эту простоту вы платите огромную цену. AdSense — это "черный ящик", который продает ваш инвентарь (рекламные места) рекламодателям по остаточному принципу. Вы находитесь на самом дне пищевой цепи programmatic-рекламы.

Несколько месяцев назад к нам в OZAT пришел крупный казахстанский медиа-паблишер с болью: «У нас миллион уников в месяц. AdSense приносит слезы. Помогите монетизировать это нормально, не увешивая сайт баннерами букмекерских контор». Мы приняли вызов. Наш ответ — отказ от дефолтного AdSense, переход на Google Ad Manager (GAM) и внедрение магии машинного обучения через GA4 Predictive Audiences. Итог? Увеличение RPM в 3.5 раза за два месяца.

Почему AdSense в Казахстане работает плохо?

Давайте разберем механику. Когда вы используете обычный AdSense, Google оценивает вашего пользователя на лету. В Казахстане рынок рекламодателей, использующих программатик с высокими ставками, исторически меньше, чем в US или EU. Большинство рекламодателей крутят ретаргетинг маркетплейсов или банковские продукты с жестким ограничением CPA (Cost Per Action).

В результате, если Google не знает точно, что ваш читатель прямо сейчас готов взять ипотеку или купить стиральную машину, он показывает ему дешевую рекламу с оплатой за клик (CPC), которая приносит вам центы.

Вывод: Чтобы зарабатывать больше, нужно продавать не просто "место на сайте", а аудиторию с высокой вероятностью конверсии. Рекламодатели готовы платить огромные деньги за CPM (оплату за показы), если они уверены, что показывают баннер "горячему" клиенту.

Эволюция монетизации: Переход на Google Ad Manager (GAM)

Первый шаг к взрослой монетизации — переход на Google Ad Manager. В отличие от AdSense, GAM — это полноценный рекламный сервер (Ad Server). Он позволяет:

  1. Настроить Header Bidding: Заставить разные рекламные сети (Criteo, RTB House, Yandex, AdSense) торговаться за показ на вашем сайте в реальном времени. Кто дал больше центов — тот и показал баннер.
  2. Продавать Direct Deals: Напрямую продавать премиум-места крупным брендам (например, Toyota или Kaspi) по фиксированному высокому CPM, минуя комиссии бирж.
  3. Использовать First-Party Data: Передавать в рекламный сервер собственные данные о пользователях (Key-Values).

Магия данных: GA4 Predictive Audiences

Здесь начинается самое интересное. Мы не просто поставили GAM. Мы решили использовать поведенческие данные. В Google Analytics 4 (GA4) есть потрясающая, но редко используемая фича — Predictive Metrics (Предиктивные метрики).

GA4 использует встроенные модели машинного обучения Google, чтобы анализировать поведение пользователей на вашем сайте (что читают, как долго, куда кликают, с каких устройств сидят) и предсказывать их будущие действия. Например, модель может создать аудиторию «Пользователи с высокой вероятностью покупки в ближайшие 7 дней» (Likely 7-day purchasers).

Наша архитектурная гипотеза была такой:

  • Что если мы возьмем эти предиктивные аудитории из GA4?
  • Синхронизируем их с Google Ad Manager (через Audience Linking)?
  • Создадим в GAM специальные рекламные кампании (Line Items) с высоким приоритетом и высоким floor price (минимальной ценой), которые будут таргетироваться ТОЛЬКО на эту "горячую" аудиторию?

Спойлер: это сработало блестяще.

Реализация под капотом: Связка фронтенда и Ad Manager

Чтобы вся эта схема заработала, нам нужно правильно инициализировать Google Publisher Tag (GPT.js) на клиенте и передать нужные параметры таргетинга (Key-Values). Мы настроили интеграцию так, чтобы статус пользователя (принадлежность к премиум-аудитории) забирался из нашего data-layer и пробрасывался в GAM.

// Инициализация Google Publisher Tag (GPT) с кастомным таргетингом
window.googletag = window.googletag || {cmd: []};

googletag.cmd.push(function() {
  // Определяем рекламный слот (например, Billboard 970x250 в шапке)
  var adSlot = googletag.defineSlot('/1234567/ozat_premium_billboard', [[970, 250], [728, 90]], 'div-gpt-ad-1234567-0')
      .addService(googletag.pubads());

  // Читаем данные пользователя из нашего DataLayer (синхронизированного с GA4)
  // В реальном проекте этот флаг может приходить из вашего CDP или через Google Audience <a href="/services/features" class="text-gc-blue hover:underline font-medium">API</a>
  var userSegment = window.dataLayerTracker && window.dataLayerTracker.isPredictiveBuyer ? 'high_value' : 'standard';
  var userInterests = window.dataLayerTracker ? window.dataLayerTracker.categoryAffinities : [];

  // Передаем Key-Values таргетинг на уровень слота
  adSlot.setTargeting('audience_value', userSegment);
  
  if (userInterests.length &gt; 0) {
    adSlot.setTargeting('interests', userInterests);
  }

  // Настройка PubAds Service
  googletag.pubads().enableSingleRequest();
  googletag.pubads().collapseEmptyDivs();
  
  // Включаем безопасный фрейм для <a href="/services/repair" class="text-gc-blue hover:underline font-medium">защиты</a> от вредоносных креативов
  googletag.pubads().setSafeFrameConfig({ sandbox: true });

  googletag.enableServices();
});

Смотреть код на GitHub (OZAT-kz)

В самом Google Ad Manager мы создали сделку (Programmatic Guaranteed) для премиальных рекламодателей, где условием показа стоит audience_value = 'high_value'. За такие показы рекламодатели из e-commerce и автобизнеса готовы платить CPM от $2.50 до $5.00, потому что они знают — этот пользователь "созрел" для покупки!

Рост RPM (Revenue Per Mille) по сегментам

Глубокая аналитика: GA4 + BigQuery

Но встроенных предиктивных аудиторий GA4 нам показалось мало. Стандартная модель требует огромного объема конверсий (минимум 1000 покупателей за 7 дней), что для медиа-сайта без корзины товаров сложно достижимо. Поэтому мы развернули кастомный пайплайн в Google Cloud Platform (GCP).

Мы включили ежедневный экспорт сырых данных из GA4 в BigQuery. Внутри BigQuery мы написали SQL-модели, которые рассчитывают "Propensity Score" (индекс вовлеченности) для каждого user_pseudo_id на основе времени на сайте, глубины скролла и пересечения категорий контента.

-- Расчет кастомного индекса вовлеченности (Propensity Score) в BigQuery
-- Анализируем сырые логи GA4 для выявления Premium-пользователей
WITH UserActivity AS (
  SELECT
    user_pseudo_id,
    COUNT(DISTINCT event_date) AS active_days,
    SUM(CASE WHEN event_name = 'scroll' THEN 1 ELSE 0 END) AS deep_scrolls,
    SUM(CASE WHEN event_name = 'session_start' THEN 1 ELSE 0 END) AS total_sessions,
    -- Считаем общее время на сайте (в минутах)
    SUM(engagement_time_msec) / 60000 AS total_engagement_minutes
  FROM
    `ozat-kz-analytics.analytics_123456789.events_*`
  WHERE
    _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 14 DAY)) 
                      AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
  GROUP BY
    user_pseudo_id
)

SELECT
  user_pseudo_id,
  active_days,
  total_engagement_minutes,
  -- Формируем скоринг. Веса подобраны на основе исторической корреляции с кликабельностью (CTR)
  (active_days * 2) + (deep_scrolls * 1.5) + (total_engagement_minutes * 0.5) AS propensity_score,
  
  -- Размечаем сегменты
  CASE 
    WHEN (active_days * 2) + (deep_scrolls * 1.5) + (total_engagement_minutes * 0.5) &gt; 50 THEN 'premium_reader'
    WHEN (active_days * 2) + (deep_scrolls * 1.5) + (total_engagement_minutes * 0.5) BETWEEN 20 AND 50 THEN 'engaged_reader'
    ELSE 'casual_reader'
  END AS audience_segment
FROM
  UserActivity
ORDER BY
  propensity_score DESC;

Смотреть код на GitHub (OZAT-kz)

Результаты этой SQL-модели выгружаются обратно в GAM через Google Cloud Storage и API обновления аудиторий. Таким образом, даже без явных покупок, мы находим самых лояльных читателей и продаем их рекламодателям по повышенному прайсу как "Engaged Audience".

Проблема Third-Party Cookies и Privacy Sandbox

Нельзя говорить про AdTech в 2026 году и не упомянуть смерть сторонних cookie (Third-Party Cookies). Браузеры активно блокируют кросс-доменное отслеживание. И именно поэтому наш подход с First-Party данными так выстрелил.

Мы не полагаемся на то, что Criteo или Google "узнают" пользователя по старой куке. Мы сами анализируем его на своем домене (First-Party Data) с помощью BigQuery, вешаем на него ярлык "Дорогой пользователь" и отдаем рекламному серверу готовый сегмент. Для рекламодателя это глоток свежего воздуха — они получают качественный таргет в эпоху приватности, а паблишер получает свои законные деньги.

Подводя итоги

Монетизация медийного трафика в Казахстане — это давно уже не "вставь скрипт AdSense и жди". Это суровая data-инженерия. Если вы продолжите лить слепой трафик в открытый аукцион, вы так и будете получать $0.15 за тысячу показов.

Переход на Google Ad Manager в связке с BigQuery и GA4 Predictive ML позволил нашему клиенту:

  • Увеличить общий RPM с $0.25 до $0.85 (x3.4 рост!).
  • Заключить прямые сделки (Direct Deals) с автосалонами на сегмент "Автолюбители с высоким Propensity Score" по CPM $3.00+.
  • Снизить общее количество рекламы на сайте на 15% (пользователи сказали спасибо), при этом увеличив итоговую выручку. Больше не нужно засорять сайт дешевыми тизерами.

Данные — это новая нефть. И если вы не умеете их перерабатывать, вы просто продаете сырье за бесценок. Стройте инфраструктуру данных, анализируйте свою аудиторию, обогащайте инвентарь First-Party данными.

Ну а если вам нужна помощь с переездом на Google Ad Manager, настройкой Header Bidding или внедрением BigQuery ML-моделей — инженеры OZAT всегда готовы к сложным вызовам. Мы заставим ваш трафик приносить настоящие деньги.

Рустам Шарафутдинов

Рустам Шарафутдинов

Автор инженерного блога

Эксперт в области архитектуры Google Cloud и Senior Full-Stack разработчик с более чем 15-летним опытом. Специализируется на отказоустойчивых архитектурах, оптимизации высоконагруженных проектов и интеграции AI (Vertex AI).

Экспертность: GCP, Kubernetes, Микросервисы, React, Node.js

Комментарии (0)