--- name: spilno-ga4-roas-corridor-analysis description: | Проводить повний аналіз ефективності Google Ads через Google Analytics 4 і будує звіт у фірмовому стилі Spilno Agency. Використовує метод «коридор коливання ROAS» — бере фактичну варіативність за 6 місяців і будує прогноз приросту доходу при збільшенні бюджету. Trigger this skill whenever the user asks to: "проведи аналіз ROAS Google Ads для [сайт]", "проаналізуй Google Ads для [сайт]", "коридор ROAS для [сайт]", "побудуй прогноз бюджету Google Ads", "оціни що буде якщо збільшити бюджет на X грн", "який дохід з 1 грн витрат на рекламу", "ROAS [сайт]", "ефективність Google Ads [сайт]", "проаналізуй рекламу в GA4", "аналіз ефективності реклами [сайт]", або будь-який запит, де потрібно оцінити ROAS / прогноз бюджету / ефективність Google Ads за даними GA4. Trigger AGGRESSIVELY whenever Google Ads, ROAS, GA4, бюджет реклами, або прогноз доходу згадуються разом з конкретним сайтом — навіть якщо користувач не каже «навичка», «звіт», «коридор» прямо. --- # GA4 ROAS Corridor Analysis Автоматизує аналіз ефективності Google Ads через UI Google Analytics 4 і формує брендований звіт у Google Doc. ## Коли застосовувати Користувач хоче зрозуміти: - скільки гривень доходу приносить 1 грн витрат на Google Ads - як коливався ROAS за останні місяці - що буде з доходом, якщо збільшити бюджет на 10k / 25k / 50k грн - варто масштабувати рекламу чи ні ## Що потрібно від користувача **Обов'язково:** - Домен сайту (наприклад `electros.com.ua`) - Доступ до GA4 під обліковим записом користувача в Chrome **Опціонально (з дефолтами):** - Період аналізу — за замовчуванням **останні 6 повних місяців** - Валюта — за замовчуванням **грн** ## Вхідний запит (ОБОВ'ЯЗКОВО) **Перед початком аналізу** ЗАВЖДИ запитай користувача через `AskUserQuestion` 4 питання (1 текстове + 3 числові) у форматі: 1. **Домен проекту для аналізу:** (наприклад `dneprtrophy.ua`) 2. **Моделювання зростання при бюджеті +10 000 грн?** (так / ні, default так) 3. **Моделювання зростання при бюджеті +25 000 грн?** (так / ні, default так) 4. **Моделювання зростання при бюджеті +50 000 грн?** (так / ні, default так) Якщо в команді вже передано домен як аргумент — пропусти питання #1, але задай питання 2–4 щоб підтвердити сценарії бюджетів. Користувач може вимкнути будь-який зі сценаріїв (тоді не включай його в фінальні таблиці), або додати власний (через «Other»). Не вгадуй ці дані — спершу запит, потім робота. ## Передумови 1. У Chrome встановлено розширення **Claude for Chrome** і користувач залогінений у Google під акаунтом, який має доступ до GA4. 2. У property GA4 налаштований **e-commerce tracking** з подією **purchase**. 3. GA4 property пов'язаний з Google Ads (інакше Cost буде нульовий — попередь користувача і запропонуй взяти дані з Google Ads UI напряму). ## Алгоритм ### Крок 1. Знайти GA4 property Відкрий https://analytics.google.com через `navigate`. Клікни на селектор property у верхньому лівому куті, у поле пошуку введи домен (без `.com.ua`, наприклад `electros`). Якщо нічого не знаходить — попроси користувача перелогінитись під правильним акаунтом. Знайди property і клікни на нього. Запам'ятай `property_id` з URL (формат `/ap/`). ### Крок 2. Перейти в звіт «Эффективность конверсий» Прямий URL працює нестабільно — використовуй навігацію через сайдбар: 1. Клікни на іконку «Реклама» (ліва панель, ~3-я іконка згори) 2. У підменю клікни «Эффективность конверсий» (під «Конверсии») Звіт «Эффективность конверсий» — єдиний у GA4 UI, де помісячно доступні і Cost, і Revenue по каналах. ### Крок 3. Фільтрувати по purchase Зверху клікни на dropdown ключових подій (за замовчуванням «2 з 2 конверсій»). У списку **зніми галочку** з усіх подій крім **«[домен] purchase»**. Натисни «Применить». Перевір що фільтр застосувався — у dropdown тепер має бути назва конкретної purchase-події. ### Крок 4. Зібрати помісячні дані за 6 місяців Для кожного з 6 останніх повних місяців: 1. Клікни на date picker у верхньому правому куті 2. У поля «Дата начала» / «Дата окончания» введи перший і останній день місяця у форматі `YYYY-MM-DD` 3. Натисни «Применить» 4. Зачекай 6 секунд на завантаження 5. Витягни дані з таблиці через JavaScript: ```javascript var rows = document.querySelectorAll('tr'); var data = []; rows.forEach(r => { var cells = r.querySelectorAll('td'); if (cells.length > 4) { var line = []; cells.forEach(c => line.push(c.innerText.replace(/\s+/g,' ').trim())); data.push(line.join(' || ')); } }); data.join('\n') ``` Структура колонок (порядок): `Канал | Все конверсии | Стоимость рекламы | CPA | Показы | Клики | CPC | Общий доход | ROAS`. З кожного місяця бери ТІЛЬКИ канали Google Ads: - **Cross-network** (це Performance Max) - **Paid Shopping** - **Paid Search** Сумуй їхні Cost і Revenue — це твої місячні Cost / Revenue Google Ads. **Важливо: використовуй `browser_batch`** для кожного циклу (відкрити date picker → ввести дві дати → натиснути Применить → зачекати) — це значно швидше за окремі виклики. ### Крок 5. Розрахунки Для кожного місяця: `ROAS = Revenue / Cost`. По 6 точках обчисли: - **MIN ROAS** — найменше значення (це песимістичний сценарій) - **MAX ROAS** — найбільше (оптимістичний) - **AVG ROAS** — середнє арифметичне (базовий) - **Стандартне відхилення** σ - **Коефіцієнт варіації** CV = σ / AVG CV < 15% → коридор стабільний, прогноз надійний. CV > 25% → попередь користувача про нестабільність. ### Крок 6. Прогноз приросту доходу Поточний місячний бюджет = середній Cost за 6 місяців. Поточний місячний дохід = середній Revenue за 6 місяців. Для кожного сценарію (+10k, +25k, +50k за замовчуванням): | Сценарій | Песимістично (Δ × MIN) | Базовий (Δ × AVG) | Оптимістично (Δ × MAX) | Окремо — таблиця абсолютного нового доходу: `(поточний бюджет + Δ) × ROAS`. ### Крок 7. Створити Google Doc у стилі Spilno Agency Викликай `mcp__c77c66ab-f749-437d-9337-2465b544d136__create_file` з параметрами: - `title`: `Прогноз зростання доходу при збільшенні бюджета в Google Ads / [домен] / Spilno Agency` - `contentMimeType`: `text/html` - `textContent`: HTML за шаблоном (див. нижче) HTML створиться як файл на Drive. Далі: 1. Відкрий `https://drive.google.com/file/d/[FILE_ID]/view` у Chrome 2. Клікни «Відкрити через» → «Google Документи» 3. Зачекай конвертації — створиться новий Google Doc з форматуванням Альтернативно — після `create_file` запиши URL виду `https://docs.google.com/document/d/[FILE_ID]/edit` і повідом користувачу. ### Крок 8. Презентувати результат Дай користувачу: - Посилання на Google Doc (клікабельне) - Короткий summary в чаті: середній ROAS, коридор, рекомендований сценарій - Список 1-2 застережень (якщо є — низький CV, неповний рік даних, мала вибірка по Paid Search тощо) ## Шаблон HTML для Google Doc Використовуй цей CSS у `` (відповідає брендбуку Spilno Agency): ```css body, p, h1, h2, h3, table, td, th, li { font-family: 'Montserrat', sans-serif; line-height: 1.5; text-align: left; } h1 { font-size: 15pt; font-weight: bold; margin: 0 0 12pt 0; } h2 { font-size: 13pt; font-weight: bold; margin: 18pt 0 8pt 0; } h3 { font-size: 13pt; font-weight: bold; margin: 14pt 0 6pt 0; } p, li, td, th { font-size: 11pt; } table { border-collapse: collapse; width: 100%; margin: 8pt 0; } td, th { border: 1pt solid #000; padding: 4pt 6pt; font-size: 10pt; } th { background: #f0f0f0; font-weight: bold; } .num { text-align: right; } ol { padding-left: 24pt; } ol li { margin-bottom: 4pt; } ``` Структура документа (нумеровані розділи, без крапки в кінці заголовка): **ВАЖЛИВО — Pageless mode і розкривні розділи:** Після створення Google Doc, ОБОВ'ЯЗКОВО переключи документ у режим Pageless (Файл → Налаштування сторінки → вкладка «Без сторінок» → Застосувати). У цьому режимі всі заголовки (H2) автоматично стають розкривними — користувач може приховати службові розділи і одразу бачити суть. Порядок розділів: 1. **Шапка** (h1): - Назва документа (H1) — **«Прогноз зростання доходу при збільшенні бюджета в Google Ads для [домен]»** - Поля: Відповідальний, Дата оновлення (формат `ДД/ММ/РР`), Проект, Період аналізу 2. **Розділ «Технічні деталі аналізу»** (БЕЗ номера — preamble на початку, зазвичай згорнутий) — назва звіту GA4, шлях у меню, ID property, акаунт. Заголовок Heading 2 без цифри «1.», щоб не зсувати нумерацію основних розділів. Це швидке посилання на джерело даних — користувач відразу бачить звідки цифри, і може згорнути. 3. **Розділ «1. Опис задачі»** — формулювання: «Спрогнозувати на скільки зросте дохід проекту [домен] при збільшенні щомісячного бюджету Google Ads на [сценарії] грн. Метод — коридор коливання ROAS на основі фактичних даних GA4 за [період]». 4. **Розділ «2. Що було зроблено»** — нумерований список кроків 5. **Розділ «3. Помісячна динаміка Google Ads»** — таблиця 6 місяців (Місяць / Cost / Revenue / Покупок / ROAS) + останній рядок «Разом 6 міс» 6. **Розділ «4. Коридор коливання ROAS»** — таблиця з MIN / AVG / MAX / σ / CV 7. **Розділ «5. Прогноз приросту доходу»** — таблиця Δ Бюджет × 3 сценарії 8. **Розділ «6. Прогноз загального доходу на місяць»** — таблиця: Сценарій / Бюджет / Мін дохід / Середній / Макс 9. **Розділ «7. Ключові спостереження»** — нумерований список 4-6 пунктів 10. **Розділ «8. Обмеження методу»** (зазвичай згорнутий) — обов'язковий нумерований список з трьох обмежень (формулювання нижче — використовуй дослівно): 1. «**Лінійний прорахунок.** Прогноз припускає, що ROAS зберігається в історичному коридорі при будь-якому бюджеті. Реально маржинальний ROAS зазвичай нижчий за середній — кожна додаткова гривня витрачається на менш цільовий трафік (закон спадної віддачі). Тому фактичний приріст доходу при +25k / +50k може бути на 20–40% нижчим за оптимістичний сценарій.» 2. «**Не враховано конкуренцію.** Метод не моделює дії конкурентів в аукціоні Google Ads. Якщо конкуренти підвищать ставки, частина додаткового бюджету піде на дорожчі покази без приросту конверсій. Для точної оцінки потрібен Search Lost Impression Share (Rank) і Auction Insights з Google Ads UI.» 3. «**Не враховано насиченість ринку.** GA4 не показує скільки ще показів доступно у пошуковій видачі. Якщо кампанія вже виграє >80% імпресій (Impression Share), додатковий бюджет дасть лише незначний приріст. Цю метрику треба перевірити окремо в Google Ads → Search Lost IS (Budget).» 11. **Розділ «9. Висновок»** — рекомендація з якого сценарію стартувати, із застереженнями. ОБОВ'ЯЗКОВО посилайся на обмеження з розділу 8 (наприклад «з урахуванням обмежень п.8 рекомендуємо стартувати з…»). 12. **Розділ «10. Короткий висновок»** — найголовніший підсумок, ЧІТКО і ДУЖЕ КОРОТКО (3-5 рядків максимум). Формат — нумерований список з 3 сценаріями: 1. «При збільшенні бюджету на **+10 000 грн** → дохід зростає на **+X грн** (від мін до макс).» 2. «При збільшенні бюджету на **+25 000 грн** → дохід зростає на **+Y грн** (від мін до макс).» 3. «При збільшенні бюджету на **+50 000 грн** → дохід зростає на **+Z грн** (від мін до макс).» Без жодних додаткових пояснень. Це TL;DR який читає клієнт коли все інше згорнуто. Правила оформлення: - Великі числа з пробілами на розряди: `1 340 400`, не `1340400` - Числа в таблицях по правому краю (`class="num"`) - Жирним виділяй мін / середнє / макс ROAS і ключові цифри прогнозу - Українська мова, але технічні терміни лишай як є (PMax, Cross-network, Paid Shopping, ROAS, CPA, CPC) ## Технічні нюанси (важливо) **Date picker у GA4:** - Спершу клікни на діапазон дат угорі справа (відкриває панель) - У поле «Дата начала» — triple_click → type новою датою → Tab - У поле «Дата окончания» — triple_click → type → Tab - Натисни «Применить» **Google Docs canvas:** Google Docs рендерить контент через canvas, тому стандартні селектори можуть не працювати для маніпуляції тексту. Для виділення секцій документа використовуй координатний клік + Shift+клік. Для прокрутки — `scroll` action на координаті документа. **JavaScript-таблиця може бути обрізаною:** Якщо в результаті `data.join('\n')` бачиш `[TRUNCATED]` — деякі канали обрізались. Зазвичай це не критично, бо нас цікавлять тільки Cross-network, Paid Shopping, Paid Search — вони завжди у топ-5. **Якщо Cost = 0 для всіх Google Ads каналів:** Google Ads не залінкований у GA4. Попередь користувача і запропонуй: 1. Зайти в Admin → Product Links → Google Ads links і налаштувати лінк 2. Альтернативно — взяти Cost напряму з Google Ads UI (звіт «Кампанії → сегмент По месяцам») **Якщо GA4 acc/property не знаходиться по домену:** - Перевір під яким Google-акаунтом залогінений Chrome (клікни на аватар праворуч згори) - Запропонуй переключитись на акаунт `[user]@[workspace]` якщо там немає потрібного **Поле «Відповідальний» у документі:** За замовчуванням — ім'я залогіненого користувача (можна дістати з аватара GA UI або з email). Якщо невпевнений — встав «Spilno Agency» і скажи користувачу що це треба замінити. **Поле «Дата оновлення»:** Сьогоднішня дата у форматі `ДД/ММ/РР`. Бери з `currentDate` в системному контексті. ## Що НЕ робити - Не використовуй стандартний звіт «Acquisition → Traffic acquisition» для Cost — там немає колонки витрат - Не бери attributed revenue з Advertising hub якщо є total revenue з Traffic acquisition — total коректніше для прогнозу - Не екстраполюй ROAS Paid Search на великі бюджети — у нього часто мала вибірка (<20 покупок/міс) - Не показуй прогноз без застереження, якщо CV > 20% — це означає що ROAS нестабільний і прогноз ризикований - Не видаляй проміжний HTML-файл після конвертації в Google Doc (permanent deletion — заборонена дія, нехай користувач видалить сам) ## Приклад тригерів | Запит користувача | Тригерить? | |---|---| | «зроби аналіз ROAS для electros.com.ua» | ✅ | | «проаналізуй Google Ads для site.com за рік» | ✅ | | «який ROI з реклами на example.com» | ✅ | | «що буде з доходом якщо додати 30к до бюджету Google Ads» | ✅ | | «коридор ROAS site.com» | ✅ | | «зроби звіт по Google Ads» (без конкретного сайту) | ❌ — спитай домен спочатку | | «налаштуй кампанію в Google Ads» | ❌ — це інша задача | | «створи рекламне оголошення» | ❌ — це креатив, не аналіз | ## Контрольний чек-лист (запусти подумки перед фіналом) - [ ] Зібрано 6 точок даних (помісячно) - [ ] Cost ≠ 0 у всіх місяцях (інакше Google Ads не залінкований) - [ ] Фільтр purchase активний (а не «2 з 2») - [ ] Розраховано MIN / AVG / MAX / σ / CV - [ ] Створено Google Doc у стилі Spilno Agency (Montserrat, нумеровані розділи) - [ ] Назва документа у форматі «Прогноз зростання доходу при збільшенні бюджета в Google Ads / [домен] / Spilno Agency» - [ ] У документі є обов'язкові поля (Відповідальний, Дата оновлення, Джерело даних) - [ ] Розділ «Технічні деталі аналізу» (БЕЗ номера) винесений на ПОЧАТОК документа одразу після шапки — як швидке посилання на джерело даних - [ ] Документ переключений у Pageless mode (Файл → Налаштування сторінки → Без сторінок) — заголовки розкривні - [ ] Розділ «10. Короткий висновок» доданий в кінець з трьома короткими сценаріями +10k/+25k/+50k - [ ] Користувачу даний клікабельний URL на Doc