Volodymyr Petrychenko Google Ads Expert
Моя експертність ґрунтується на досвіді реалізації понад 135 успішних проєктів у різних нішах і країнах. Я не просто налаштовую рекламу — я будую комплексний маркетинг, що приносить бізнесу реальні результати.

Скрипт Google Ads для Telegram: як відслідковувати метрики конкурентоспроможності без входу в акаунт

У цій статті розглянемо практичний скрипт для Google Ads, який автоматично надсилає у вибраний чат в Telegram ключові метрики конкурентоспроможності.

Скрипт збирає дані по тому, як ваші оголошення почуваються в аукціоні в порівнянні з конкурентами: доля показів, покази у верхній частині сторінки, абсолютний верх та їхня динаміка. Ви просто отримуєте готовий звіт у Telegram раз на тиждень і бачите, чи не «витискають» вас конкуренти з результатів пошуку.

Нижче — пояснення, кому цей скрипт буде корисним, як він працює, покрокова інструкція з налаштування та готовий код, який можна відразу вставити в акаунт Google Ads.

Які метрики конкурентоспроможності відправляє скрипт

Скрипт працює з даними по кампаніях у пошуку Google Ads і збирає основні показники конкурентоспроможності (auction insights), після чого надсилає їх у Telegram у вигляді текстового звіту.

Зокрема, у Telegram ви отримуєте:

  • Impression Share (доля показів) — як часто ваші оголошення показуються у порівнянні з потенційними показами.
  • Search Top Impression Rate — частка показів у верхній частині сторінки результатів.
  • Search Absolute Top Impression Rate — частка показів над усіма результатами (самий верх).
  • Динаміка за період — чи зростають, чи падають ці показники у порівнянні з попереднім періодом.

За бажанням, у коді можна додати додаткові метрики або обмежити вибірку лише певними кампаніями (наприклад, по назві або мітках).

Кому корисний цей скрипт Google Ads + Telegram

Скрипт особливо добре заходить у таких випадках:

  • Вузькі ніші з малою семантикою — автозапчастини, промислове обладнання, B2B, де треба максимально «вичищати» аукціон і контролювати кожен релевантний запит.
  • Коли клієнту важко заходити в акаунт Google Ads, але він хоче бачити, «на якому місці» його реклама в порівнянні з конкурентами.
  • Для внутрішньої аналітики — коли команда або агентство хоче мати регулярний короткий дайджест по метриках конкурентоспроможності у робочому чаті.
  • Для контролю під час сезону або активних розпродажів, коли конкуренти агресивно піднімають ставки, а вам потрібно швидко реагувати.

Замість того, щоб раз на тиждень відкривати звіти, фільтрувати дані й робити скріни, ви просто читаєте повідомлення в Telegram та приймаєте рішення.

Як налаштувати скрипт Google Ads з відправкою в Telegram

Покроково процес виглядає так:

  • Крок 1. Створюєте Telegram-бота через @BotFather, отримуєте BOT_TOKEN.
  • Крок 2. Дізнаєтесь chat_id чату або особистого діалогу, куди мають приходити звіти (через спеціального бота на кшталт @userinfobot або власний тестовий скрипт).
  • Крок 3. Заходите в акаунт Google Ads → Tools → Scripts і створюєте новий скрипт.
  • Крок 4. Вставляєте код скрипта (див. нижче), підставляєте свій TELEGRAM_BOT_TOKEN і TELEGRAM_CHAT_ID, зберігаєте.
  • Крок 5. Натискаєте Authorize, щоб дати скрипту доступ до даних акаунта.
  • Крок 6. Налаштовуєте розклад запуску — наприклад, раз на 7 днів.

Після цього раз на тиждень ви отримуватимете повідомлення з коротким зрізом по кампаніях і метриках конкурентоспроможності, без ручної вивантажки звітів.

Як адаптувати скрипт під Gmail або Slack

Якщо Telegram не є основним робочим інструментом, цей же підхід можна адаптувати під інші сервіси:

  • Gmail. Замість функції sendToTelegram() можна використати MailApp.sendEmail() і надсилати звіт на одну або кілька поштових адрес.
  • Slack. Додаєте URL вхідного вебхука Slack і надсилаєте дані через UrlFetchApp.fetch() у форматі JSON.

Логіка одна й та сама: скрипт збирає дані в Google Ads, формує текстовий звіт і відправляє його в потрібний канал комунікації.

Важливі зауваження щодо роботи скрипта

  • Скрипт поширюється «як є». Ви використовуєте код на власний розсуд і самостійно відповідаєте за всі наслідки його роботи.
  • Квоти й обмеження. Google Ads Scripts та Telegram API мають свої ліміти на кількість запитів — якщо у вас дуже багато кампаній або акаунтів, варто це враховувати.
  • Перевіряйте права доступу. Скрипт повинен мати доступ до потрібних акаунтів Google Ads, а бот — до чату, куди ви надсилаєте звіти.
  • Тест перед продакшеном. Спочатку запустіть скрипт у тестовому режимі або на окремому акаунті, переконайтеся, що формат звіту вам підходить, і тільки потім виносьте його в бойовий режим.

Готовий скрипт Google Ads (без токена та chat_id)

Нижче — повністю очищена версія скрипта. Просто підставте власний telegramBotToken та chatId.

// Скрипт Google Ads: збір метрик конкурентоспроможності за 7 днів
// Токен та chat_id необхідно додати вручну

function main() {
  var telegramBotToken = 'PASTE_YOUR_TELEGRAM_TOKEN';
  var chatId = 'PASTE_YOUR_CHAT_ID';

  var today = new Date();
  var lastWeekStart = new Date();
  lastWeekStart.setDate(today.getDate() - 7);
  var lastWeekEnd = new Date();
  lastWeekEnd.setDate(today.getDate() - 1);

  var previousWeekStart = new Date();
  previousWeekStart.setDate(today.getDate() - 14);
  var previousWeekEnd = new Date();
  previousWeekEnd.setDate(today.getDate() - 8);

  function formatDate(date) {
    var year = date.getFullYear();
    var month = (date.getMonth() + 1).toString().padStart(2, '0');
    var day = date.getDate().toString().padStart(2, '0');
    return year + '-' + month + '-' + day;
  }

  var report = AdsApp.report(
    "SELECT Date, Impressions, Clicks, Cost, " +
    "SearchImpressionShare, TopImpressionPercentage, SearchAbsoluteTopImpressionShare " +
    "FROM CAMPAIGN_PERFORMANCE_REPORT " +
    "WHERE AdvertisingChannelType = 'SEARCH' " +
    "AND Date >= '" + formatDate(lastWeekStart) + "' " +
    "AND Date <= '" + formatDate(lastWeekEnd) + "'"
  );

  var metrics = getMetrics(report);

  var previousReport = AdsApp.report(
    "SELECT Date, Impressions, Clicks, Cost, " +
    "SearchImpressionShare, TopImpressionPercentage, SearchAbsoluteTopImpressionShare " +
    "FROM CAMPAIGN_PERFORMANCE_REPORT " +
    "WHERE AdvertisingChannelType = 'SEARCH' " +
    "AND Date >= '" + formatDate(previousWeekStart) + "' " +
    "AND Date <= '" + formatDate(previousWeekEnd) + "'"
  );

  var previousMetrics = getMetrics(previousReport);

  var message = "???? *Дані пошукових кампаній за останні 7 днів:*\n\n" +
    "Доля показів: " + (metrics.impressionsShare).toFixed(2) + "% (" +
    comparePercentageChange(metrics.impressionsShare, previousMetrics.impressionsShare) + ")\n" +
    "Покази у верхній частині сторінки: " + (metrics.topImpressionPercentage * 100).toFixed(2) + "% (" +
    comparePercentageChange(metrics.topImpressionPercentage * 100, previousMetrics.topImpressionPercentage * 100) + ")\n" +
    "Покази на абсолютному верху сторінки: " + (metrics.searchAbsoluteTopImpressionShare).toFixed(2) + "% (" +
    comparePercentageChange(metrics.searchAbsoluteTopImpressionShare, previousMetrics.searchAbsoluteTopImpressionShare) + ")\n";

  sendTelegramMessage(telegramBotToken, chatId, message);
}

function getMetrics(report) {
  var metrics = {
    impressionsShare: 0,
    topImpressionPercentage: 0,
    searchAbsoluteTopImpressionShare: 0
  };
  var rows = report.rows();
  var count = 0;

  while (rows.hasNext()) {
    var row = rows.next();
    metrics.impressionsShare += parseFloat(row['SearchImpressionShare']) || 0;
    metrics.topImpressionPercentage += parseFloat(row['TopImpressionPercentage']) || 0;
    metrics.searchAbsoluteTopImpressionShare += parseFloat(row['SearchAbsoluteTopImpressionShare']) || 0;
    count++;
  }

  if (count > 0) {
    metrics.impressionsShare /= count;
    metrics.topImpressionPercentage /= count;
    metrics.searchAbsoluteTopImpressionShare /= count;
  }

  return metrics;
}

function comparePercentageChange(current, previous) {
  if (previous === 0) {
    return "N/A";
  }
  var diffPercent = ((current - previous) / previous) * 100;
  var sign = diffPercent >= 0 ? "+" : "";
  return sign + diffPercent.toFixed(2) + "%";
}

function sendTelegramMessage(token, chatId, message) {
  var url = "https://api.telegram.org/bot" + token + "/sendMessage";
  var payload = {
    chat_id: chatId,
    text: message,
    parse_mode: "Markdown"
  };

  var options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(payload)
  };

  UrlFetchApp.fetch(url, options);
}

Залишається лише підставити токен і chat_id — і скрипт готовий до роботи в Google Ads.

FAQ: скрипт Google Ads для метрик конкурентоспроможності

Чи безпечно давати скрипту доступ до акаунта Google Ads?

Скрипт працює всередині вашого акаунта Google Ads і використовує стандартні можливості Google Ads Scripts. Він не передає жодних паролів чи платіжних даних, лише зчитує статистику кампаній.

Як часто запускати скрипт?

Оптимально — раз на 7 днів. Цього достатньо, щоб бачити динаміку, але не засмічувати Telegram постійними повідомленнями. За бажанням можна поставити інший інтервал.

Чи можна використовувати скрипт в акаунті з великою кількістю кампаній?

Так, але бажано обмежити вибірку — наприклад, за назвою кампаній або статусом. Це прискорить роботу скрипта і знизить ризики перевищення лімітів.

Чи підходить цей скрипт для Performance Max?

Скрипт у поточній версії орієнтований на пошукові кампанії. При бажанні його можна модифікувати, але PMax має свої обмеження в деталізації звітів.

Хочете більше автоматизацій для Google Ads?

Якщо вам заходить такий формат — скрипти, автоматичні звіти в Telegram, кастомні дашборди — це лише мала частина того, що можна витиснути з Google Ads.

Можу допомогти з:

  • налаштуванням скриптів та автоматичних звітів;
  • технічним аудитом трекінгу та конверсій;
  • глибоким аудитом рекламного акаунта Google Ads;
  • побудовою дашбордів для власника бізнесу та маркетолога.

Якщо потрібен — звертайтесь через форму контакту на сайті або пишіть мені напряму. Менше ручної рутини — більше часу на стратегію та гроші клієнта.

Про автора

Я — Google Ads експерт із понад 6-річним досвідом у PPC-рекламі та аналітиці. Реалізував 135+ повноцінних проєктів у різних нішах і країнах (США, Канада, Австралія, Ізраїль, Польща, Франція, Італія, Саудівська Аравія тощо).

Налаштовую Google Analytics, Google Tag Manager, Google Merchant Center — повністю під ключ.

Я не працюю за шаблонами — глибоко аналізую бізнес, його економіку та воронку, створюю реальні стратегічні рішення, а не просто налаштовую рекламу.

Telegram: @volodymyr920

YouTube: @ppc_expert_v2.0

Більше про мене: t.me/ppc_expert_v2

Входжу у ТОП-15 Freelancehunt у категоріях «Продажі та генерація лідів» та «Інтернет-магазини та eCommerce», і в ТОП-20 у категорії «Контекстна реклама».

Цікавить співпраця? Ви знаєте, що робити

Телефон: +38 097 89 32 563
Пошта: audit.petrychenko@gmail.com