(function () { 'use strict'; var gateQuestion = { question: 'Кто вы?', options: [ { text: 'Психолог / коуч / консультант', track: 'expert', scores: { A: 0, B: 0, C: 0 } }, { text: 'Другой бизнес (стройка, салон, курсы…)', track: 'business', scores: { A: 0, B: 0, C: 0 } }, ], }; var expertQuestions = [ { question: 'Кто вы и что продаёте?', options: [ { text: 'Психолог / психотерапевт', scores: { A: 1, B: 1, C: 1 } }, { text: 'Психолог-сексолог / сексолог', scores: { A: 1, B: 1, C: 1 } }, { text: 'Коуч / наставник', scores: { A: 1, B: 1, C: 1 } }, { text: 'Эксперт обучения / школа / курсы', scores: { A: 0, B: 1, C: 2 } }, { text: 'Другая экспертная услуга', scores: { A: 1, B: 1, C: 1 } }, ], }, { question: 'Как сейчас у вас с клиентами?', options: [ { text: 'Случайно, "то густо, то пусто"', scores: { A: 3, B: 1, C: 0 } }, { text: 'Есть, но нестабильно (1–5 заявок/неделя)', scores: { A: 1, B: 3, C: 1 } }, { text: 'Стабильно, но мало (хочу больше)', scores: { A: 0, B: 2, C: 3 } }, { text: 'Есть поток, но дорого/не окупается', scores: { A: 0, B: 1, C: 4 } }, ], }, { question: 'Какой доход хотите в месяц (в горизонте 3–6 месяцев)?', options: [ { text: '50–100k (нужна стабильность)', scores: { A: 4, B: 1, C: 0 } }, { text: '100–200k (уверенность)', scores: { A: 2, B: 3, C: 1 } }, { text: '200–400k (система)', scores: { A: 1, B: 2, C: 3 } }, { text: '400–700k (масштаб)', scores: { A: 0, B: 1, C: 4 } }, { text: '700k+ (управляемый рост)', scores: { A: 0, B: 0, C: 5 } }, ], }, { question: 'Что с продуктом и средним чеком?', options: [ { text: 'Только разовые консультации/услуги, пакетов нет', scores: { A: 4, B: 1, C: 0 } }, { text: 'Пакеты есть, но продаются тяжело', scores: { A: 1, B: 4, C: 1 } }, { text: 'Есть линейка (вход/пакет/сопровождение), но "не докручена"', scores: { A: 0, B: 3, C: 3 } }, { text: 'Есть понятная линейка и высокий чек, но упёрся(лась) в потолок', scores: { A: 0, B: 1, C: 5 } }, ], }, { question: 'Реклама/продвижение: что уже пробовали?', options: [ { text: 'Ничего — страшно/не знаю с чего начать', scores: { A: 4, B: 1, C: 0 } }, { text: 'Контент/соцсети — но без системы', scores: { A: 2, B: 3, C: 1 } }, { text: 'Пробовал(а) рекламу сам(а) — непонятно, почему не работает', scores: { A: 1, B: 4, C: 2 } }, { text: 'Были подрядчики/агентства — результат неясен', scores: { A: 0, B: 3, C: 4 } }, { text: 'Реклама есть, но хочу масштаб/прогноз', scores: { A: 0, B: 1, C: 5 } }, ], }, { question: 'Где вы чувствуете "главный затык" сейчас?', options: [ { text: '"Я не понимаю, что именно продавать и кому"', scores: { A: 5, B: 1, C: 0 } }, { text: '"У меня мало заявок, я устал(а) от нестабильности"', scores: { A: 2, B: 5, C: 1 } }, { text: '"Заявки есть, но плохо покупают/сливаются"', scores: { A: 1, B: 4, C: 3 } }, { text: '"Поток есть, но нет роста/упёрся(лась) в потолок"', scores: { A: 0, B: 1, C: 5 } }, ], }, { question: 'Сколько готовы вложить в продвижение в ближайшие 30 дней (если будет понятный план)?', options: [ { text: '0–10k', scores: { A: 4, B: 1, C: 0 } }, { text: '10–30k', scores: { A: 2, B: 3, C: 1 } }, { text: '30–70k', scores: { A: 1, B: 2, C: 4 } }, { text: '70k+', scores: { A: 0, B: 1, C: 5 } }, { text: 'Не знаю — хочу понять расчёт под мои цифры', scores: { A: 1, B: 3, C: 3 } }, ], }, ]; var businessQuestions = [ { question: 'Какой у вас бизнес?', options: [ { text: 'Стройка / ремонт / подряд', scores: { A: 1, B: 1, C: 1 } }, { text: 'Косметология / салон / клиника', scores: { A: 1, B: 1, C: 1 } }, { text: 'Онлайн-обучение / курсы / школа', scores: { A: 0, B: 1, C: 2 } }, { text: 'Другая услуга или товар, который ищут в интернете', scores: { A: 1, B: 1, C: 1 } }, ], }, { question: 'Как сейчас с заявками?', options: [ { text: 'Случайно: то густо, то пусто', scores: { A: 3, B: 1, C: 0 } }, { text: 'Есть, но нестабильно', scores: { A: 1, B: 3, C: 1 } }, { text: 'Стабильно, но хочу больше', scores: { A: 0, B: 2, C: 3 } }, { text: 'Поток есть, но дорого или не окупается', scores: { A: 0, B: 1, C: 4 } }, ], }, { question: 'Какой оборот или доход хотите в горизонте 3–6 месяцев?', options: [ { text: '50–100k (нужна стабильность)', scores: { A: 4, B: 1, C: 0 } }, { text: '100–200k', scores: { A: 2, B: 3, C: 1 } }, { text: '200–400k', scores: { A: 1, B: 2, C: 3 } }, { text: '400–700k', scores: { A: 0, B: 1, C: 4 } }, { text: '700k+', scores: { A: 0, B: 0, C: 5 } }, ], }, { question: 'Как устроен продукт?', options: [ { text: 'Разовые услуги, пакетов нет', scores: { A: 4, B: 1, C: 0 } }, { text: 'Пакеты есть, но продаются тяжело', scores: { A: 1, B: 4, C: 1 } }, { text: 'Есть линейка, но она «не докручена»', scores: { A: 0, B: 3, C: 3 } }, { text: 'Понятная линейка и высокий чек, упёрлись в потолок', scores: { A: 0, B: 1, C: 5 } }, ], }, { question: 'Реклама и продвижение: что уже пробовали?', options: [ { text: 'Ничего — не знаю, с чего начать', scores: { A: 4, B: 1, C: 0 } }, { text: 'Соцсети и контент без системы', scores: { A: 2, B: 3, C: 1 } }, { text: 'Реклама сами — непонятно, почему не работает', scores: { A: 1, B: 4, C: 2 } }, { text: 'Были подрядчики — результат неясен', scores: { A: 0, B: 3, C: 4 } }, { text: 'Реклама есть, нужен масштаб и прогноз', scores: { A: 0, B: 1, C: 5 } }, ], }, { question: 'Где главный затык сейчас?', options: [ { text: 'Не понимаю, что именно продавать и кому', scores: { A: 5, B: 1, C: 0 } }, { text: 'Мало заявок, устали от нестабильности', scores: { A: 2, B: 5, C: 1 } }, { text: 'Заявки есть, но плохо покупают', scores: { A: 1, B: 4, C: 3 } }, { text: 'Поток есть, но нет роста', scores: { A: 0, B: 1, C: 5 } }, ], }, { question: 'Сколько готовы вложить в продвижение в ближайшие 30 дней, если будет понятный план?', options: [ { text: '0–10k', scores: { A: 4, B: 1, C: 0 } }, { text: '10–30k', scores: { A: 2, B: 3, C: 1 } }, { text: '30–70k', scores: { A: 1, B: 2, C: 4 } }, { text: '70k+', scores: { A: 0, B: 1, C: 5 } }, { text: 'Не знаю — хочу расчёт под свои цифры', scores: { A: 1, B: 3, C: 3 } }, ], }, ]; var expertResults = { A: { title: 'Вы на этапе «Старт»', text: 'Сейчас важнее всего — чтобы было понятно, что вы предлагаете и кому. Один простой формат работы и один пакет. Потом уже привлекать людей.', steps: [ 'определить один главный формат работы и один пакет услуг', 'понять, кому вы помогаете и с какими запросами к вам приходят', 'выбрать один способ, через который к вам будут приходить клиенты', ], cta: 'Напишите в мессенджер: «Хочу на разбор» и удобное время — на встрече покажу, с чего логично начать и где первые точки роста.', }, B: { title: 'Вы на этапе «Стабильность»', text: 'У вас уже есть услуги и пакеты, но клиенты приходят неровно. Нужна простая система: от первого знакомства до записи на консультацию.', steps: [ 'чётко сформулировать, что вы даёте и зачем к вам идти именно сейчас', 'выстроить простой путь: человек узнал о вас → пришёл на встречу → записался', 'сделать так, чтобы заявки приходили регулярно, а не «то густо, то пусто»', ], cta: 'Напишите: «Хочу на разбор» и когда удобно — на встрече разберём, на каком шаге отваливаются люди и что подкрутить.', }, C: { title: 'Вы на этапе «Рост»', text: 'У вас уже есть клиенты и стабильность. Сейчас важно понять, сколько людей нужно привлечь под ваши цели и как лучше работать с теми, кто уже с вами.', steps: [ 'посчитать, сколько новых обращений нужно, чтобы выйти на желаемый доход', 'привлекать больше людей так, чтобы вложения окупались', 'развивать пакеты и сопровождение, чтобы один клиент приносил больше', ], cta: 'Напишите: «Хочу на разбор» и удобные слоты по времени — на встрече соберём план роста: вложения, ожидания и опоры под масштаб.', }, }; var businessResults = { A: { title: 'Вы на этапе «Старт»', text: 'Сейчас важнее всего — чтобы было понятно, какую услугу вы продаёте и кому. Один формат и один пакет. Потом уже привлекать заявки из поиска.', steps: [ 'определить одну главную услугу и один пакет', 'понять, какие запросы люди вводят в Яндексе перед покупкой', 'выбрать один канал, через который будут приходить заявки', ], cta: 'Напишите в мессенджер: «Хочу на разбор» — покажу, с чего начать и где первые точки роста в поиске.', }, B: { title: 'Вы на этапе «Стабильность»', text: 'Услуги уже есть, но заявки приходят неровно. Нужна система: человек нашёл вас в Яндексе → прочитал → написал.', steps: [ 'чётко сформулировать оффер и почему идти к вам', 'выстроить путь: запрос в поиске → статья → заявка', 'сделать так, чтобы заявки шли регулярно, а не «то густо, то пусто»', ], cta: 'Напишите: «Хочу на разбор» — разберём, на каком шаге отваливаются люди и где ниша теряет заявки в поиске.', }, C: { title: 'Вы на этапе «Рост»', text: 'Поток уже есть. Сейчас важно понять, сколько заявок нужно под цели и как масштабировать контент в поиске.', steps: [ 'посчитать, сколько новых обращений нужно под желаемый оборот', 'привлекать больше людей так, чтобы вложения окупались', 'закрывать горячие запросы ниши статьями, а не только рекламой', ], cta: 'Напишите: «Хочу на разбор» — соберём план роста: вложения, ожидания и опоры под масштаб.', }, }; function detectNicheSlug() { if (window.SPRUT_QUIZ_NICHE) return window.SPRUT_QUIZ_NICHE; var cfg = document.getElementById('sprut-biz-quiz-config'); if (cfg) { try { var parsed = JSON.parse(cfg.textContent || '{}'); if (parsed.niche) return parsed.niche; } catch (err) {} } var art = document.querySelector('article.sprut-biz-niche'); if (!art) return ''; var m = (art.className || '').match(/sprut-biz-(stroitelstvo|kosmetologiya|onlayn-obuchenie)\b/); return m ? m[1] : ''; } var nicheProfiles = { stroitelstvo: { intro: 'Для стройки и ремонта: поймите, на каком вы этапе и подходит ли вам СПРУТ.', questions: [ { question: 'Кто вы в стройке и ремонте?', options: [ { text: 'Подрядчик / бригада (ремонт квартир)', scores: { A: 1, B: 1, C: 1 } }, { text: 'Строительная компания (дома, коттеджи)', scores: { A: 0, B: 1, C: 2 } }, { text: 'Отделочные работы / дизайн + ремонт', scores: { A: 1, B: 1, C: 1 } }, { text: 'Другое в стройке', scores: { A: 1, B: 1, C: 1 } }, ], }, businessQuestions[1], businessQuestions[2], { question: 'Как устроены услуги и средний чек?', options: [ { text: 'Только разовые объекты, пакетов нет', scores: { A: 4, B: 1, C: 0 } }, { text: 'Пакеты «под ключ» есть, но продаются тяжело', scores: { A: 1, B: 4, C: 1 } }, { text: 'Есть линейка услуг, но «не докручена»', scores: { A: 0, B: 3, C: 3 } }, { text: 'Понятная линейка и высокий чек, упёрлись в потолок', scores: { A: 0, B: 1, C: 5 } }, ], }, { question: 'Откуда сейчас приходят заявки?', options: [ { text: 'Сарафан и знакомые — нестабильно', scores: { A: 3, B: 2, C: 0 } }, { text: 'Авито / агрегаторы — дорого или мало', scores: { A: 1, B: 4, C: 2 } }, { text: 'Реклама — непонятно, окупается ли', scores: { A: 0, B: 3, C: 4 } }, { text: 'Поток есть, нужен масштаб из поиска', scores: { A: 0, B: 1, C: 5 } }, ], }, businessQuestions[5], businessQuestions[6], ], }, kosmetologiya: { intro: 'Для косметологии: поймите, на каком вы этапе и подходит ли вам СПРУТ.', questions: [ { question: 'Кто вы в косметологии?', options: [ { text: 'Салон / студия красоты', scores: { A: 1, B: 1, C: 1 } }, { text: 'Клиника / кабинет врача-косметолога', scores: { A: 0, B: 1, C: 2 } }, { text: 'Частный мастер', scores: { A: 2, B: 1, C: 0 } }, { text: 'Сеть салонов', scores: { A: 0, B: 1, C: 3 } }, ], }, businessQuestions[1], businessQuestions[2], { question: 'Как устроены услуги и средний чек?', options: [ { text: 'Разовые процедуры, абонементов нет', scores: { A: 4, B: 1, C: 0 } }, { text: 'Абонементы есть, но записываются тяжело', scores: { A: 1, B: 4, C: 1 } }, { text: 'Есть линейка процедур, но «не докручена»', scores: { A: 0, B: 3, C: 3 } }, { text: 'Понятная линейка, упёрлись в потолок записи', scores: { A: 0, B: 1, C: 5 } }, ], }, { question: 'Откуда сейчас приходят клиенты?', options: [ { text: 'Instagram / соцсети — нестабильно', scores: { A: 2, B: 3, C: 1 } }, { text: 'Сарафан — мало и неровно', scores: { A: 3, B: 2, C: 0 } }, { text: 'Реклама — дорого или мало записей', scores: { A: 0, B: 3, C: 4 } }, { text: 'Поток есть, нужна система из поиска', scores: { A: 0, B: 1, C: 5 } }, ], }, businessQuestions[5], businessQuestions[6], ], }, 'onlayn-obuchenie': { intro: 'Для онлайн-обучения: поймите, на каком вы этапе и подходит ли вам СПРУТ.', questions: [ { question: 'Кто вы в онлайн-обучении?', options: [ { text: 'Автор онлайн-курса', scores: { A: 1, B: 1, C: 2 } }, { text: 'Онлайн-школа / академия', scores: { A: 0, B: 1, C: 3 } }, { text: 'Наставник с курсами и программами', scores: { A: 1, B: 2, C: 1 } }, { text: 'EdTech-проект / несколько продуктов', scores: { A: 0, B: 2, C: 4 } }, ], }, businessQuestions[1], businessQuestions[2], { question: 'Как устроена продуктовая линейка?', options: [ { text: 'Один курс или мини-продукт', scores: { A: 4, B: 1, C: 0 } }, { text: 'Линейка есть, но продаётся тяжело', scores: { A: 1, B: 4, C: 1 } }, { text: 'Есть вход/основной/PRO, но «не докручено»', scores: { A: 0, B: 3, C: 3 } }, { text: 'Понятная линейка, упёрлись в потолок', scores: { A: 0, B: 1, C: 5 } }, ], }, { question: 'Откуда сейчас приходят ученики?', options: [ { text: 'Блог / соцсети — нестабильно', scores: { A: 2, B: 3, C: 1 } }, { text: 'Запуски и вебинары — выгорание', scores: { A: 1, B: 4, C: 2 } }, { text: 'Реклама — дорого или мало продаж', scores: { A: 0, B: 3, C: 4 } }, { text: 'Поток есть, нужна органика из поиска', scores: { A: 0, B: 1, C: 5 } }, ], }, businessQuestions[5], businessQuestions[6], ], }, }; var questions = expertQuestions; var results = expertResults; function esc(s) { if (!s) return ''; var d = document.createElement('div'); d.textContent = s; return d.innerHTML; } function createQuizController(root) { if (!root) return null; var currentQuestionIndex = 0; var scores = { A: 0, B: 0, C: 0 }; var selectedOption = null; var quizTrack = 'expert'; var inGate = true; var questions = expertQuestions; var results = expertResults; var nicheSlug = detectNicheSlug(); var nicheProfile = nicheSlug && nicheProfiles[nicheSlug] ? nicheProfiles[nicheSlug] : null; function applyNicheProfile() { if (!nicheProfile) return; quizTrack = 'business'; inGate = false; questions = nicheProfile.questions; results = businessResults; } function patchIntroForNiche() { if (!nicheProfile || !nicheProfile.intro) return; var introP = el('.sq-intro-screen p'); if (introP) introP.textContent = nicheProfile.intro; var howRow = root.querySelector('.sq-how-row p'); if (howRow) howRow.textContent = 'Отвечаете на короткие вопросы о вашем бизнесе и целях.'; } applyNicheProfile(); function el(sel) { return root.querySelector(sel); } function introScreen() { return el('#intro-screen, .sq-intro-screen'); } function quizScreen() { return el('#quiz-screen, .sq-quiz-screen'); } function loadingScreen() { return el('#loading-screen, .sq-loading-screen'); } function resultScreen() { return el('#result-screen, .sq-result-screen'); } function updateProgress() { var fill = el('#progress-fill, .sq-progress-fill'); if (!fill) return; if (inGate) { fill.style.width = '6%'; return; } var pct = (currentQuestionIndex / questions.length) * 100; fill.style.width = pct + '%'; } function showQuestion(index) { currentQuestionIndex = index; var q = inGate ? gateQuestion : questions[index]; var container = el('#question-container, .sq-question-container'); if (!container) return; var opts = q.options .map(function (opt, i) { return ( '' ); }) .join(''); var total = inGate ? 1 + Math.max(expertQuestions.length, businessQuestions.length) : questions.length + 1; var shown = inGate ? 1 : index + 2; container.innerHTML = '
' + esc(result.cta) + '
' + '