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, сервісу й зростання мережі.
Останні статті

Контент старіє тихо: як у Google Sheets зібрати dashboard сторінок, які треба оновити
Контент рідко старіє різко. Частіше сторінка просто повільно втрачає кліки, CTR, позиції або комерційний сенс. У звітах це не виглядає як аварія: немає 500, немає різког…

Контроль цін конкурентів у Google Sheets: коли простий моніторинг корисніший за складний парсер
Багатьом інтернет-магазинам не потрібен великий price intelligence інструмент на старті. Їм потрібна відповідь на простіші питання: по яких товарах конкурент уже дешевши…

UTM без хаосу: як перевіряти рекламні посилання в Google Sheets до запуску кампанії
UTM-помилки рідко видно в момент запуску кампанії. Реклама вже крутиться, лист уже пішов у базу, партнер уже поставив посилання, а проблема проявляється пізніше: трафік…

Sitemap під контролем: як автоматично знаходити 404, редіректи й noindex у важливих URL
Sitemap часто сприймають як файл, який один раз налаштували в CMS і згадують про нього тільки під час великого SEO-аудиту. Для невеликого сайту це ще може пройти. Але ко…

Індексація без ручної рутини: як перевіряти нові URL через Search Console API та Google Apps Script
Публікація нової сторінки ще не означає, що вона вже працює в пошуку. На сайті URL може відкриватися, у CMS статус може бути published , у редакційному плані задача може…

Google Sheets + Merchant Center: як автоматично знаходити помилки у фіді до того, як вони вдарять по продажах
Помилки у товарному фіді рідко виглядають драматично в момент, коли вони з'являються. У таблиці просто зник image_link , у частини SKU не оновилася ціна, кілька това…