Google Maps під контролем: як автоматизувати моніторинг відгуків через Google Sheets
Коли у бізнесу 10+ локацій, ручна перевірка відгуків у Google Maps перестає бути рутиною й стає вузьким місцем. Один менеджер не встигає зайти в кожен профіль, другий відповідає із запізненням, а негативний відгук може провисіти без реакції кілька днів. Для локального SEO це поганий сценарій: репутація, швидкість відповіді та стабільність роботи з профілем прямо впливають на довіру користувача і на силу вашого Local Pack.

Саме тому правильний підхід — не “частіше перевіряти вручну”, а перетворити емоції клієнтів у структуровані дані. Якщо всі нові відгуки потрапляють у Google Таблицю автоматично, ви бачите ситуацію по мережі в одному місці: хто написав, скільки зірок поставив, чи є текст, чи відповіли ви, як змінюється рейтинг по місяцях. А далі вже можна запускати сповіщення, внутрішню аналітику й сценарії для SERM без хаосу.
Чому саме Google Таблиці
Google Таблиця тут працює не просто як “місце, куди все складаємо”. Це легкий дашборд для власника або керівника сервісу. У ньому зручно:
- бачити всі локації в одному аркуші;
- фільтрувати негатив 1–3 зірки;
- рахувати середній рейтинг по місяцю;
- зберігати історію навіть тоді, коли клієнт видалив або змінив відгук;
- передавати відповідальність між менеджерами.
Тобто ви перестаєте шукати відгуки поштучно і починаєте керувати потоком даних. Якщо вам близький такий підхід до локального просування, подивіться й статтю про Local SEO та ТОП-3 Google Maps — вона добре доповнює цю автоматизацію на рівні самої видимості.
Що потрібно підготувати

Перед стартом важливо не спростити картину до рівня “вставив API-ключ і все полетіло”. Для Google Business Profile API потрібен не публічний ключ, а нормальний технічний доступ:
- верифікований акаунт компанії або доступ менеджера до потрібних профілів;
- Google Cloud project;
- OAuth 2.0 credentials;
- підключені Business Profile APIs;
- location ID для кожної локації, яку хочете моніторити.
Саме тут багато хто помиляється. Для збору відгуків вам не потрібен Business Calls API — він не про reviews. Основний сценарій тут будується навколо endpoint’ів для review data. Якщо говорити просто: спочатку ви отримуєте доступ до акаунта і локацій, а вже потім читаєте відгуки по конкретній точці.
Технічний етап: підключення та логіка
Після створення проєкту в Google Cloud і налаштування OAuth відкрийте Google Таблицю, перейдіть у Розширення → Apps Script і створіть базовий сценарій. Його логіка така:
- беремо accountId і locationId;
- звертаємося до endpoint для reviews;
- отримуємо JSON-відповідь;
- дістаємо з неї ім’я автора, рейтинг, текст, дату та reply;
- записуємо нові відгуки у таблицю.
Зручно одразу зробити таку структуру аркуша:
- колонка A — Location ID;
- колонка B — Назва локації;
- колонка C — Ім’я клієнта;
- колонка D — Оцінка;
- колонка E — Текст відгуку;
- колонка F — Дата;
- колонка G — Чи відповіли;
- колонка H — URL або reviewId;
- колонка I — Статус реакції.
Нижче — базова функція-заготовка для Apps Script. Вона показує сам принцип: отримати reviews, розібрати JSON і записати нові рядки в таблицю.
function importGoogleReviews() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Reviews');
const accountId = 'ACCOUNT_ID';
const locationId = 'LOCATION_ID';
const accessToken = 'OAUTH_ACCESS_TOKEN';
const url = 'https://mybusiness.googleapis.com/v4/accounts/' + accountId +
'/locations/' + locationId + '/reviews';
const response = UrlFetchApp.fetch(url, {
method: 'get',
headers: {
Authorization: 'Bearer ' + accessToken,
Accept: 'application/json'
},
muteHttpExceptions: true
});
const data = JSON.parse(response.getContentText());
const reviews = data.reviews || [];
reviews.forEach(review => {
const reviewer = review.reviewer && review.reviewer.displayName
? review.reviewer.displayName
: 'Без імені';
const row = [
locationId,
'Локація 1',
reviewer,
review.starRating || '',
review.comment || '',
review.createTime || '',
review.reviewReply ? 'Так' : 'Ні',
review.reviewId || '',
'Нова'
];
sheet.appendRow(row);
});
}Цей код не претендує на бойову фінальну версію, але дає правильний каркас. У production-сценарії треба додати перевірку дублів за reviewId, роботу з пагінацією та зберігання токена в безпечному місці, а не в коді.
Як не дублювати відгуки
Одна з головних помилок — кожен запуск скрипта просто знову додає ті самі рядки. Це вирішується дуже просто: або зчитуєте з листа вже відомі reviewId, або тримаєте їх у PropertiesService. Тоді кожен новий запуск порівнює отримані reviews із тим, що вже є в системі, і додає тільки нові.
Саме після цього таблиця перетворюється на робочий журнал, а не на безкінечну стрічку дублів.
Rocket-підхід: негатив одразу в Telegram
Найцінніша фішка — не просто збирати відгуки, а миттєво реагувати на ризики. Якщо новий відгук має 1, 2 або 3 зірки, скрипт може одразу надсилати повідомлення в Telegram менеджеру або власнику.
Логіка проста:
- якщо
starRatingу межах 1–3; - формуємо коротке повідомлення;
- відправляємо його в бот або групу;
- відповідальний бачить сигнал одразу.
Це особливо корисно для аптек, кафе, СТО, медичних центрів і будь-яких мереж, де важлива не лише кількість відгуків, а швидкість реакції на негатив. Один невідпрацьований конфлікт часто впливає сильніше, ніж десять звичайних “все добре”.
Дашборд відгуків: що має бути на екрані
Щоб Google Таблиця працювала як дашборд, а не просто архів, додайте:
- умовне форматування: червоне для 1–3 зірок, зелене для 4–5;
- окремий блок “нові без відповіді”;
- середній рейтинг за місяць;
- кількість нових відгуків по локаціях;
- частку негативу по мережі;
- дату останнього оновлення.

Так ви за 30 секунд бачите не тільки “що пишуть клієнти”, а й де саме починається проблема: конкретна точка, конкретна зміна, конкретний менеджер або системний сервісний збій.
Що це дає бізнесу на практиці
Автоматизація відгуків у таблиці — це не про зручність заради зручності. Це про контроль над репутацією в моменті. Ви бачите всі локації в одному вікні, не втрачаєте нові reviews, не залежите від людської пам’яті й можете приймати рішення на базі даних:
- де просідає сервіс;
- де немає відповіді на негатив;
- яка точка тягне рейтинг мережі вниз;
- як змінюється середня оцінка за період.
Google Maps давно став не просто картою, а частиною воронки продажу. І якщо репутація в ньому управляється вручну, бізнес майже гарантовано втрачає швидкість. Коли ж відгуки автоматично збираються в таблицю, негатив одразу летить у Telegram, а рейтинг рахується без ручного копіювання, SERM перестає бути “емоційною зоною” і стає керованим процесом.
Саме так і працює технологічний прагматизм Rocketware: не сперечатися з потоком даних, а будувати систему, яка робить ці дані корисними для SEO, сервісу й зростання мережі.
Останні статті

Чому ваш сайт не «летить»? 5 критичних помилок у структурі, які вбивають SEO
Можна купити посилання, написати тексти, оновити мета-теги й навіть прискорити окремі сторінки. Але якщо сам каркас сайту зібраний хаотично, зльоту не буде. Уявіть ракет…

Технічний аудит сайту «на стероїдах»: Знаходимо биті посилання за 5 хвилин
Биті посилання — це одна з тих помилок, які довго не кричать про себе, але повільно отруюють SEO. Користувач бачить 404, дратується і йде. Робот бачить зайві переходи, п…

Автоматизація контенту: Як масово генерувати SEO-теги за допомогою ChatGPT API та Google Sheets
Для великого інтернет-магазину одна з найнеприємніших SEO-задач — це мета-теги. Поки каталог росте, сторінок стає вже не десятки, а сотні й тисячі. Частина товарів залиш…

Local SEO 2026: Як потрапити в ТОП-3 Google Maps для українського бізнесу
Коли людина шукає “СТО Львів”, “стоматологія Київ” або “суші поруч”, вона часто клікає не по звичайній видачі, а по блоку з картою. Саме Local Pack, тобто ТОП-3 у Google…

SEO-ракета: Як автоматизувати перевірку позицій через Google Apps Script
Для маленького сайту платні сервіси моніторингу позицій часто коштують занадто дорого для свого етапу. Коли проєкт тільки росте, хочеться бачити реальні дані, а не одраз…