Task 4 — Build Spec: 5 лендингів для Claude Code
Проєкт: Kukurudza — Landing Optimization Спирається на: Task 1 (UX/копірайтинг + Clarity), Task 2 (GA-воронка), Task 3 (5 гіпотез) Мета: збір лідів / заявок на курс «Таргетолог» Дата: 26.06.2026
0. Як користуватися цим документом (для Claude Code)
- Документ самодостатній: жодних додаткових питань не потрібно.
- 5 лендингів (H1–H5) — кожен в окремій секції §3, повністю незалежний.
- Увесь текстовий контент береться ВИКЛЮЧНО з §2 (Бібліотека контенту) — це дослівні фрагменти з двох наявних сторінок. Нічого не вигадувати, не переписувати, не «покращувати» копірайтинг. Якщо для блоку немає контенту в §2 — блок не додається.
- Спільні вимоги (§1) застосовуються до всіх 5 лендингів.
- Рекомендований порядок збірки: H2 (найпростіший) → H1 → H3 → H5 → H4 (найскладніший, квіз).
1. Спільні технічні вимоги (для всіх 5 лендингів)
1.1 Тип і мета
- Тип: окремий лендинг під платний трафік (Meta Ads).
- Єдина бізнес-ціль: залишена заявка (лід). Кожен лендинг має ціль на стадії «заявка», а не пряма онлайн-оплата.
- Мова інтерфейсу і контенту: українська, повністю.
meta-robots: noindex, follow(сторінки під платний трафік, не для SEO).
1.2 Технічна якість (висновки Task 1–2 — не повторювати помилок)
- INP < 200 мс (на нинішньому довгому сайті INP 510 мс — «погано»; не допускати). Мінімум блокуючого JS, відкладене завантаження важких блоків.
- 0 JS-помилок у консолі (на довгому сайті 144 помилки, на короткому 2 — на нових лендингах має бути чисто).
- Клікабельні елементи мають бути справді клікабельними. На довгому сайті 23.5% сеансів із dead-кліками — люди тицяли по картинках/заголовках, що виглядали інтерактивно. Усе, що схоже на кнопку/лінк, або працює, або не виглядає клікабельним.
- Mobile-first. Трафік переважно мобільний (Clarity: MobileSafari + Instagram in-app browser + ChromeWebView). Верстка перевіряється спершу на мобільному.
- Lighthouse/CWV: LCP < 2.0 с, CLS < 0.1.
1.3 Трекінг подій (GTM / dataLayer) — ОБОВʼЯЗКОВО з самого старту
Критично. На короткому лендінгу
/kurs-targetolog/трекінг подій зламаний (0 кліків при 200 заявках, Task 2) — через це воронку всередині сторінки виміряти неможливо. Жоден лендинг не йде в трафік без перевіреного трекінгу.
Кожна сторінка пушить у dataLayer такі події (GTM передає в GA4):
| Подія | Параметри | Коли спрацьовує |
|---|---|---|
page_view |
variant_id, traffic_source, audience_segment |
Завантаження сторінки |
scroll_depth |
depth (25/50/75/100), variant_id |
Досягнення глибини скролу |
block_view |
block_id, variant_id |
Блок зʼявився у viewport (IntersectionObserver) |
cta_click |
cta_id, cta_position (hero/sticky/section/price/quiz), variant_id |
Клік по будь-якій CTA |
offer_view |
variant_id |
Перегляд блоку з ціною (де ціна є) |
quiz_step_view |
step_n, variant_id |
Показ кроку квіза (лише H4) |
quiz_step_complete |
step_n, answer, variant_id |
Завершення кроку квіза (лише H4) |
form_start |
variant_id, audience_segment |
Перший фокус у полі форми |
form_submit |
lead_id, variant_id, audience_segment |
Успішна відправка заявки |
Правила:
- variant_id присутній у КОЖНІЙ події (значення — у §3 кожного лендинга).
- audience_segment за замовчуванням default; для H5 = сегмент із URL-параметра ?segment= (див. §3 H5).
- traffic_source із UTM (utm_source/utm_campaign).
- Іменування block_id і cta_id — точно як у §3 відповідного лендинга.
1.4 Форма заявки і звʼязка з CRM
- Поля форми: імʼя, контакт (телефон або Telegram/email — мінімум полів). Не більше необхідного.
- Альтернативний канал зв'язку (як на наявних сторінках): Telegram-бот @KukurudzaSchool_bot і телефон +38 (073) 178 51 41.
- При
form_submitгенерується унікальнийlead_id, який: 1. передається в подіюform_submit; 2. записується в CRM разом ізvariant_idтаaudience_segment. - У CRM подія оплати позначається тим самим
lead_id→ так рахується заявка→оплата по кожному варіанту (головна метрика якості з Task 3). Без цього звʼязку тест не зчитується.
1.5 Дизайн-система
Окремої брендбук-документації в наданих файлах немає, тому дизайн НЕ вигадуємо — успадковуємо з наявного сайту kukurudza.com.
Що відомо і обовʼязкове до перевикористання:
- Бренд: Kukurudza (Кукурудза), освітній продукт. Логотип-вордмарк «kukurudza».
- Джерело стилів: забрати кольори, типографіку, стиль кнопок і відступи з чинної теми сайту (/wp-content/themes/kukuruza/kukuruza2/), щоб нові лендинги візуально відповідали бренду. Точні HEX і шрифти — витягнути з CSS наявних сторінок, не підбирати «на око».
- Соц-іконки: Telegram, Instagram (instagram.com/kukurudza.blog), YouTube (@kukurudza_blog) — як на наявних сторінках.
- Адаптивність: mobile-first, брейкпойнти за чинною темою; обовʼязкова перевірка в in-app браузерах (Instagram/Facebook), бо звідти йде платний трафік.
- Якщо якогось токена немає в джерелі — лишити CSS-змінну з TODO-коментарем, а не вписувати випадкове значення.
1.6 Іменування варіантів
| Лендинг | variant_id | audience_segment |
|---|---|---|
| H1 | v1_price_qualifier |
default |
| H2 | v2_ultrashort |
default |
| H3 | v3_proof_first |
default |
| H4 | v4_quiz |
default (+ збирається у квізі) |
| H5 | v5_modular_segment |
{beginner\|practitioner\|owner\|freelancer} |
2. Бібліотека контенту (дослівно з наявних сторінок)
Джерело позначено: [S] = короткий лендинг
/kurs-targetolog/; [L] = довгий сайт/targeting-course/. Використовувати рядки як є.
HERO_S [S] — Заголовок: «Навчись запускати рекламу професійно» · підзаголовок: «3,5 місяці, щоб розібратись в усьому з куратором» · надзаголовок: «КУРС «ТАРГЕТОЛОГ»» · «залиш заявку серед перших на новий потік».
HERO_L [L] — Надзаголовок: «Курс-професія» · Заголовок: «таргетолог» · бейджі: «Вчись у зручний час протягом 3-х місяців», «Старт навчання 8 липня».
POSITIONING [L] — «вчимо маркетинг-мисленню, а не просто натискати кнопки в рекламному кабінеті».
PROOF_NUMBERS [S] — три факти довіри: «11 років досвіду в маркетингу»; «7000$ — мінімальна сума, яку витрачаємо на таргет в місяць»; «Х2 — мінімальна окупність наших бюджетів». Особа: «Анна Дахновська, Head of Marketing Kukurudza».
RESULTS_CASES [L] — Заголовок: «Які будуть результати? Покажемо на своїх кейсах». Цифри: «+9300 підписників в блог за місяць»; «+325 заявок на продукт за місяць»; «+47 оплат з однієї рекламної кампанії».
RESUME_SOFT [L] — «що буде у твоєму резюме» → Soft skills: «Вмію бачити закономірності в цифрах та виділяти тенденції; Дотримуюсь дедлайнів; Ефективно планую запуски; Знаходжу стратегічно вигідні рішення; Мислю креативно; Ефективно взаємодію з командою; Працюю з технологіями».
RESUME_HARD [L] — Hard skills: «Вільно запускаю кампанії в Meta ADS; Ефективно розподіляю бюджет; Масштабую результати; Генерую конверсійні креативи; Оптимізую процеси з AI та використовую AI для креативів; Запускаю трафік на автоворонки; Налаштовую відстеження результатів реклами; Базово володію Google-аналітикою; Роблю зрозумілу звітність».
LEARN_LIST [L] — «Ти навчишся: формулювати цілі реклами під задачі бізнесу; будувати структуру кампаній у Meta Ads; розподіляти бюджет і тестувати гіпотези; аналізувати результати і будувати звіти; налаштувувати піксель та відстежувати події; масштабувати те, що працює, і зупиняти те, що зливає гроші».
AFTER_LIST [L] — «Після навчання ти: розумієш повний цикл запуску реклами; вмієш аргументувати свої рішення цифрами; не губишся в показниках і знаєш, на що звертати увагу; можеш працювати таргетологом в агенції чи на фрилансі; або самостійно просувати власний бізнес».
PROGRAM_BLOCKS [L] — заголовок «Програма». Блоки (повний перелік уроків імпортувати з /targeting-course/#program як є):
«00 Вхід у професію; 01 Трафік, стратегія та основи маркетингу; 02 Знайомство з інтерфейсом; 03 Підготовка до запуску реклами; 04 Креативи і тексти; 05 Запуск реклами; 06 Аналітика реклами; 07 АІ в роботі таргетолога; 08 Комунікація з клієнтом та карʼєра; NEW Бонус-блок TikTok ADS; NEW Бонус-блок Telegram ADS; Бонусний модуль. Робота з воронками».
TARIFFS [L] — заголовок «Тарифи», «початок 8 липня». Два тарифи:
- Робота у групі — 19 900 UAH («кількість місць необмежена»): 89 записаних уроки; 38 файлів для роботи; 9 Live-зустрічей зі спікером; 9 практичних завдань; Доступ до матеріалів на 3 місяці з моменту закінчення курсу; Загальний чат студентів; Сертифікат слухача курсу.
- З Куратором — 24 900 UAH («кількість місць обмежена»): усе з тарифу «у групі» + Чат з куратором; Відповіді на питання в чаті; Перевірка практичних завдань куратором; Акаунт для практики та тренувальний бюджет; Іменний сертифікат слухача курсу.
- CTA тарифів: «зайняти місце» / «оплатити частинами».
SALARY [L] — «середня зарплата таргетолога в Україні» (за даними work.ua, станом на березень 2026).
SPEAKERS [L] — «Над курсом працювали»: Анна Дахновська (Head of Marketing Kukurudza); Станіслав Кравець (Senior Media Buyer & Creative Strategist); Анастасія Яланська (Creative Director Kukurudza); Каміла Амескан (Head of Design Kukurudza Agency); Євгеній Тесля (Brand Marketing Manager Dominator Play). Біо кожного — імпортувати з /targeting-course/ як є.
TRAINING_PROJECT [L] — «ТРЕНУВАЛЬНИЙ ПРОЄКТ» · «Щоб не тільки дивитись уроки, а й тестувати все на практиці» · «Для студентів, які вчаться з кураторською підтримкою».
REVIEWS [L] — «Про нас постять» (скриншоти-відгуки review-1…3).
FAQ [L] — «Часті питання» (8 шт., дослівно): 01 «На якій платформі буде курс?»; 02 «Буде доступ до матеріалів після екзамену?»; 03 «Де чекати сповіщення про старт?»; 04 «Як перевірятимуть домашні завдання?»; 05 «Що таке «тренувальний проєкт»?»; 06 «Чи є корпоративні тарифи?»; 07 «Якою мовою проходить навчання?»; 08 «Я можу проходити практику на своєму проєкті?». Відповіді — з /targeting-course/ як є.
SEGMENTS [L] — «Кому підійдуть курси таргетолога… Вони для тебе, якщо ти:»
- (beginner) «початківець і хочеш зайти в таргет із нуля, але через систему, а не хаотичні відео з інтернету»;
- (practitioner) «вже щось запускаєш, але знання не складаються в єдину картину»;
- (owner) «власник бізнесу й хочеш зрозуміти, куди йдуть рекламні бюджети та як ними керувати»;
- (freelancer) «працюєш із клієнтами й хочеш відчувати впевненість, а не «молюсь, щоб не злити бюджет»».
CONTACT [S][L] — Telegram-бот «@KukurudzaSchool_bot» (CTA «Тицяй сюди — все влаштуємо!» / «Зв'язатися»); телефон «+38 (073) 178 51 41».
LEAD_FORM — форма заявки (поля: імʼя + контакт), кнопка «залишити заявку». Технічні правила — §1.4.
3. Специфікації лендингів
У кожному: block_id і cta_id наведені точно так, як їх треба передавати в трекінг (§1.3).
H1 — «Ціна як кваліфікатор» · variant_id = v1_price_qualifier
Гіпотеза: ранній показ ціни-фільтра підніме якість ліда (заявка→оплата) без обвалу обсягу. Головна метрика успіху: CV заявка→оплата + CPA (НЕ CTR). Гардрейл: CV сеанс→заявка. Довжина: середня. Ціна: Є, показується рано (до фінальної форми).
Структура зверху вниз:
| # | block_id | Контент (§2) | CTA (cta_id · текст · позиція) |
|---|---|---|---|
| 1 | hero |
HERO_L (надзаголовок «Курс-професія» + «таргетолог» + бейджі старту) |
cta_hero · «взяти участь» · у hero |
| 2 | proof_cases |
RESULTS_CASES (+9300 / +325 / +47) |
— |
| 3 | program_teaser |
PROGRAM_BLOCKS — лише назви 12 блоків (без повного списку уроків) |
cta_program · «дивитись програму» · під блоком (розгортає список) |
| 4 | price |
TARIFFS (19 900 / 24 900 UAH з переліком) — ключовий блок, ціна як фільтр |
cta_price_group · «зайняти місце» · картка тарифу; cta_price_curator · «зайняти місце» · картка тарифу |
| 5 | speakers |
SPEAKERS (5 спікерів) |
— |
| 6 | lead_form |
LEAD_FORM + CONTACT |
cta_submit · «залишити заявку» · у формі |
| 7 | faq |
FAQ (показати 4: 01, 02, 04, 07) |
— |
| — | sticky_cta |
— | cta_sticky · «взяти участь» · липка кнопка (mobile) |
Події трекінгу (§1.3): page_view, scroll_depth, block_view (для всіх block_id вище), cta_click (cta_hero/cta_program/cta_price_group/cta_price_curator/cta_sticky/cta_submit), offer_view (при показі блоку price), form_start, form_submit(+lead_id).
Свідомо НЕ включаємо: довгі SEO-тексти, повний перелік уроків, відгуки (щоб лишити середню довжину).
H2 — «Мінімальний односекційний лідоген» · variant_id = v2_ultrashort
Гіпотеза: максимальне скорочення + відсутність ціни підвищать конверсію в заявку (обсяг). Головна метрика успіху: CV сеанс→заявка + CPL. Гардрейл: заявка→оплата не нижче 12.5%. Довжина: один екран. Ціна: немає.
Структура зверху вниз:
| # | block_id | Контент (§2) | CTA (cta_id · текст · позиція) |
|---|---|---|---|
| 1 | hero |
HERO_S («Навчись запускати рекламу професійно» + «КУРС «ТАРГЕТОЛОГ»» + «залиш заявку серед перших на новий потік») |
cta_hero · «залишити заявку» · у hero (скрол до форми) |
| 2 | proof_inline |
PROOF_NUMBERS — 3 буліти (11 років / 7000$ / Х2) + особа Анна Дахновська |
— |
| 3 | lead_form |
LEAD_FORM + CONTACT (одразу під першим екраном) |
cta_submit · «залишити заявку» · у формі |
Події трекінгу (§1.3): page_view, scroll_depth, block_view, cta_click (cta_hero/cta_submit), form_start, form_submit(+lead_id). (offer_view/quiz_* — не використовуються.)
Свідомо НЕ включаємо: програму, тарифи/ціну, спікерів, FAQ, SEO-тексти. Нічого, що відкладає дію.
H3 — «Доказ-першим» · variant_id = v3_proof_first
Гіпотеза: той самий контент довгого сайту, але з доказами вгорі, втримає тих, хто зараз відвалюється рано (quick-backs 21.61%), і дасть якісніший лід. Головна метрика успіху: CV заявка→оплата + CV сеанс→оплата. Гардрейли (Clarity): quick-back rate ↓, scroll depth ↑ (база 44.46%). Довжина: довга. Ціна: є, але нижче доказів.
Структура зверху вниз (порядок — головна зміна):
| # | block_id | Контент (§2) | CTA (cta_id · текст · позиція) |
|---|---|---|---|
| 1 | hero |
HERO_L (мінімальний hero-офер) |
cta_hero · «взяти участь» · у hero |
| 2 | proof_cases |
RESULTS_CASES (+9300 / +325 / +47) — одразу після hero |
— |
| 3 | social_proof |
SPEAKERS + REVIEWS |
— |
| 4 | salary |
SALARY (середня зарплата, work.ua) |
cta_after_proof · «взяти участь» · під блоком |
| 5 | resume |
RESUME_SOFT + RESUME_HARD («що буде у твоєму резюме») |
— |
| 6 | program |
PROGRAM_BLOCKS (повний) |
— |
| 7 | price |
TARIFFS (19 900 / 24 900) |
cta_price_group · «зайняти місце»; cta_price_curator · «зайняти місце» · картки тарифів |
| 8 | lead_form |
LEAD_FORM + CONTACT |
cta_submit · «залишити заявку» · у формі |
| 9 | faq |
FAQ (усі 8) |
— |
| — | sticky_cta |
— | cta_sticky · «взяти участь» · липка (mobile) |
Події трекінгу (§1.3): повний набір — page_view, scroll_depth, block_view (усі block_id), cta_click (cta_hero/cta_after_proof/cta_price_group/cta_price_curator/cta_sticky/cta_submit), offer_view (блок price), form_start, form_submit(+lead_id).
Суть А/Б проти контролю: контент = довгий сайт, відрізняється лише порядок (докази → програма → ціна, а не позиціонування → програма → докази).
H4 — «Квіз-воронка» · variant_id = v4_quiz
Гіпотеза: багатокроковий квіз дробить «великий крок» (вищий обсяг заявок) і водночас кваліфікує ліда (вища якість). Головна метрика успіху: CV сеанс→заявка ТА CV заявка→оплата разом. Діагностика: покрокова воронка квіза. Довжина: коротка + інтерактивний квіз. Ціна: немає на сторінці (виноситься в розмову).
Структура зверху вниз:
| # | block_id | Контент (§2) | CTA (cta_id · текст · позиція) |
|---|---|---|---|
| 1 | hero |
HERO_S (заголовок + «КУРС «ТАРГЕТОЛОГ»») |
cta_hero_quiz_start · «Пройти тест і залишити заявку» · у hero (старт квіза) |
| 2 | quiz |
Квіз 3 кроки (опції — з SEGMENTS, контент наявний): Крок 1 «З чого ти заходиш у таргет?» → опції: новачок з нуля / вже щось запускаю / власник бізнесу / працюю з клієнтами. Крок 2 «Яка твоя ціль?» → опції з LEARN_LIST (напр. «запускати рекламу під задачі бізнесу», «масштабувати те, що працює»). Крок 3 «Контакт» → LEAD_FORM |
cta_quiz_next · «Далі» · кожен крок; cta_submit · «залишити заявку» · крок 3 |
| 3 | proof_below |
PROOF_NUMBERS (для тих, хто скролить замість квіза) |
cta_below_quiz · «Пройти тест» · під блоком (повертає до квіза) |
| 4 | contact |
CONTACT (Telegram-бот, телефон) |
cta_telegram · «Зв'язатися» · у блоці |
Події трекінгу (§1.3): page_view, scroll_depth, block_view, cta_click (cta_hero_quiz_start/cta_quiz_next/cta_below_quiz/cta_telegram/cta_submit), quiz_step_view (step_n=1/2/3), quiz_step_complete (step_n + answer), form_start, form_submit(+lead_id + відповіді квіза як параметри → в CRM для кваліфікації).
Важливо: відповідь Кроку 1 пишеться також у audience_segment ліда (для звʼязки з якістю).
Свідомо НЕ включаємо: ціну, тарифи, повну програму, FAQ.
H5 — «Модульний лендинг під сегмент» · variant_id = v5_modular_segment
Гіпотеза: змінний під сегмент hero/офер + легка ротація протидіють вигоранню (стабільніший CPL у часі) і підвищують релевантність.
Головна метрика успіху: стабільність CPL і CV сеанс→заявка в динаміці по тижнях/сегментах (тренд + frequency), НЕ разова точка.
Довжина: коротко-середня. Ціна: немає на сторінці. Сегмент: з URL ?segment=beginner|practitioner|owner|freelancer → у audience_segment.
Архітектура: один шаблон, у якому hero + перший доказ підмінюються за сегментом (контент сегментів — SEGMENTS). Блоки модульні (легко вмикати/вимикати/міняти порядок без переробки).
Структура зверху вниз:
| # | block_id | Контент (§2) | CTA (cta_id · текст · позиція) |
|---|---|---|---|
| 1 | hero_dynamic |
HERO_S + рядок-біль під сегмент з SEGMENTS (beginner/practitioner/owner/freelancer — рендериться за ?segment=) |
cta_hero · «залишити заявку» · у hero |
| 2 | proof_matched |
PROOF_NUMBERS (база) + 1 релевантна цифра з RESULTS_CASES під сегмент |
— |
| 3 | value |
LEARN_LIST АБО AFTER_LIST (короткий список цінності, модульно) |
cta_mid · «залишити заявку» · під блоком |
| 4 | lead_form |
LEAD_FORM + CONTACT |
cta_submit · «залишити заявку» · у формі |
Дефолт (без параметра): audience_segment=default, hero = базовий HERO_S без сегментного рядка.
Події трекінгу (§1.3): page_view (+audience_segment із URL), scroll_depth, block_view, cta_click (cta_hero/cta_mid/cta_submit), form_start, form_submit(+lead_id+audience_segment).
Вимога модульності: кожен сегментний варіант hero — окремий конфіг (JSON/масив), щоб офер ротувався без зміни верстки. Це і є механізм «перезарядки» проти вигорання.
4. Зведена матриця подій по варіантах
| Подія | H1 | H2 | H3 | H4 | H5 |
|---|---|---|---|---|---|
page_view |
✅ | ✅ | ✅ | ✅ | ✅ |
scroll_depth |
✅ | ✅ | ✅ | ✅ | ✅ |
block_view |
✅ | ✅ | ✅ | ✅ | ✅ |
cta_click |
✅ | ✅ | ✅ | ✅ | ✅ |
offer_view (ціна) |
✅ | — | ✅ | — | — |
quiz_step_view/complete |
— | — | — | ✅ | — |
form_start |
✅ | ✅ | ✅ | ✅ | ✅ |
form_submit (+lead_id) |
✅ | ✅ | ✅ | ✅ | ✅ |
audience_segment динамічний |
— | — | — | ✅ (з квіза) | ✅ (з URL) |
Первинна метрика за гіпотезою (нагадування з Task 3, не CTR): H1 → заявка→оплата/CPA; H2 → сеанс→заявка/CPL; H3 → заявка→оплата + quick-backs↓; H4 → сеанс→заявка + заявка→оплата; H5 → стабільність CPL у часі.
5. Definition of Done (acceptance для Claude Code)
Кожен лендинг вважається готовим, коли:
- Контент — увесь текст узятий з §2 (з наявних сторінок), нічого не вигадано/не переписано; структура секцій точно як у §3.
- CTA — кожна кнопка має текст і позицію з таблиці §3, і веде до форми/Telegram (нічого «мертвого»).
- Трекінг — усі події з §3 пушаться в
dataLayerз правильнимиvariant_id/cta_id/block_id; перевірено в GTM Preview;form_submitвіддаєlead_id, який доходить у CRM. - Техякість — 0 JS-помилок у консолі; INP < 200 мс; немає оманливо-клікабельних елементів (анти-dead-click); mobile-first перевірено, зокрема в in-app браузерах.
- Дизайн — кольори/шрифти/кнопки візуально відповідають kukurudza.com (успадковані з джерела, не підібрані довільно); невідомі токени позначені TODO, а не вгадані.
- noindex виставлено; UTM зчитуються у
traffic_source.
Серія завершена: Task 1 (аналіз) → Task 2 (GA-воронка) → Task 3 (5 гіпотез) → Task 4 (цей spec). Усі 5 лендингів готові до передачі в Claude Code.