Как 4000 человек квесты проходили. Кейс по чат-ботам
Оглавление
Цели квест-бота
Как выглядит мини структура чат-бота
Коротко как работает бот
С чем столкнулись в процессе реализации
Статистика
Дополнительные фишки
В жизни каждого админа сообщества VK наступает день, когда он захочет отказаться от привычного постинга и заняться созданием квестов.
Описанная в кейсе механика изначально создавалась для игрового сообщества, однако затем использовалась и в совершенно других нишах, даже в мебельной.
Рассказывает SMM-эксперт, маркетолог и по совместительству будущим гейм-дизайнер — Иван Зернюков.
Какие цели ставились?
- Увеличить количество активностей внутри VK сообщества
- Создать оригинальную систему квестов, которую никто не делал
- Иметь прямой доступ к пользователям для дальнейших рассылок
Решение: создание интерактивного квест чат-бота с ежедневными заданиями и лавкой для награды.
Конечный чат-бот дорабатывался примерно 2 месяца до финального состояния, когда единственная ошибка, которая может появиться, это ошибка при запрете сообщений пользователю.
Для реализации испытывал несколько чат-ботов, однако остановился полностью на BotHunter. На это есть 2 основные причины:
- Можно работать с Google-таблицами с различными переменными
- Здесь можно делать более логичные цепочки и связи между ними
Как выглядит мини-структура квест-бота



Всего цепочек, так или иначе связанных с конструкцией, вышло 12 штук: три для «бэк-части», две для админа, семь для самой работы. По ходу смогу описать некоторые характеристики, зачем они используются и для чего требуются.
Говоря чисто техническим языком, у юзера есть несколько состояний:
— не получил квест (не дошел до этапа вручения);
— получил квест, успешно завершил;
— получил квест, провалил;
— получил квест и ушёл в игнор;
— получил квест, отказался от выполнения;
— получил квест, успешно завершил, но не был проверен.
Да, конечно требуется и процедура простой (ну почти) проверки выполнения ежедневного квеста.
Пользователь также может в ручном режиме узнать, завершена ли проверка администратора. Стандартный интервал — 3 часа. Если всё хорошо, то юзер получает свои баллы сразу по автопроверке и удаляется из таблицы выполнения заранее. Если система не успевает до даты «проверки дня», то просто останавливает процесс.
Так, основными переменными стали: questStatus (состояние), questsComplete (выполненных задач), questScreen (форма для отметки о выполнении) и сами по себе balls (общие баллы пользователя).
Каждый, кто проходит задание, попадает в таблицу, которую проверяет редактор и выставляет значения «yes» или «no» в зависимости от того, как и что было выполнено или нет. Если человек всё же завершил задание, но его не успели проверить, была форма «извинений» со стороны администрации и начисления дополнительных баллов.
Да, систему пришлось затем доработать, чтобы видеть тех, кто, узнав про такой щедрый аттракцион, начал «выполнять» задачу прямо под время проверки, тем самым получая бесплатно баллы. Для решения этой проблемы была создана отдельная переменная, которая считала количество таких событий. Если она превышала 10, то администратор получал уведомление, что следует человека досконально проверить. Так свои баллы потеряли всего человек 10-15 за всё время.
Конечно же, еще необходимо учитывать, что если пользователь уже завершил квест или отказался от него — новый он получить сможет только на следующий день. Ибо все должны страдать. Кроме того, пришлось несколько переработать сами задачи, чтобы в конечном итоге получать картинку/скрин для фиксации выполнения. Так система проверки значительно ускорилась и позволяла сразу получать все данные.
Сами квесты, кстати, выдавались рандомно и ссылались просто на получение значения из списка в таблице. Всего было 5 категорий, в каждой по 80 заданий. Итого 400 уникально персонализированных задач. На 30 дней такого числа точно хватит.
Коротко процесс квест-бота
- Пользователь соглашается на задание.
- Высылается рандомная задача из списка в google-таблице (для новичков первые 3 задачи простые и вынесены отдельно).
- Пользователь записывается и попадает в воронку выполнения, база ведётся в также google-таблице.
- Выполняет/не выполняет задачу.
- Администратор проверяет верное выполнение у тех, кто завершил, и выносит решение.
- Бот на следующий день проходит по списку и проверяет значение отметки администратора.
- Пользователь получает или не получает баллы.
- Система «сбрасывается» и открывается новая задача дня.
Повторить каждый день в течение ∞.
Комбинация ума и смекалки
Очень много времени ушло на процесс реализации проверки выполнения. Перебирал множество вариантов. Здесь была и проверка внутри чат-бота от админа (бот присылал сообщения необходимые, а админ просто отвечал «да\нет»), и система отдельного запроса. Но остановился, как мне кажется, на самом простом варианте из google-таблицы и переменных. Это единственный вариант, который не сбоил при проверке 200+ человек в день. И работал фактически в автоматическом режиме.
|
Количество человек на проверке |
Время таймера для проверки |
|
≤100 |
8 секунд |
|
≥180 |
12 секунд |
|
≥300 |
18 секунд |
Иными словами, админ всегда был в отдельной цепочке, которая собирает данные по id пользователя в ячейке, передаёт в переменные сообщества, а уже другая цепочка проверяет поступившего на проверку через равенство его id и значение переменной. Конечно, пришлось ещё и возвращать админа в цепочку, а то он слишком часто вылетал из нее.
Всё это позволило избежать ошибок Google и убрать «Internal error encountered», хоть и не до конца. Конечно, важно ставить таймер, которого хватит для удаления строки, захвата нового id и проверки пользователя.


Статистика
Многие хотели бы узнать финальные значения. Однако не вижу смысла расписывать конкретные цифры —напишу общие проценты. В большинстве своём здесь важнее масштабирование. Поэтому статистика за месяц в самый сезон:
- 79% пользователей, впервые опробовавших механику, завершили свой первый квест в день получения;
- 64% продолжили выполнять задания в течение недели;
- 14.2% от общего числа завершили серию из 30 полученных заданий.
Общие показатели:
- 2.8% пользователей закрыли сообщения в течение месяца;
- 12.6% отказывались от квеста при получении, однако после получения персонального уведомления с вопросом об улучшении 74.3% вернулись;
- 8.4% пользователей заказали из лавки с наградами продукцию;
- в конечном итоге зафиксировано 4211 пользователей, начавших задачи.
Потраченное время на работу, если кому интересно:
|
Создание общей логики и концепции |
6 часов |
|
Реализация цепочки выдачи квестов |
3 часа |
|
Создание механизма проверки в ручном и авто режимах |
5 часов |
|
Внедрение «состояний», сообщений дня и рандомизация персонализированных задач |
8 часов |
|
Подготовка самих квестов, создание лора |
5 часов |
|
Тестирование всех механизмов и исправление неполадок, включая задействование тестовой группы |
18 часов |
|
Разделение всех цепочек для возможности продолжать использование бота пользователем |
2 часа |
|
Итого |
47 часов |
На самом деле ушло более трех недель для отлавливания возникающих проблем. Сюда же пришлось подключать систему сервисных аккаунтов google, иначе просто не вывозилась проверка. Находились нетипичные пользователи, которые вылетали из цепочки. Администраторы тоже постоянно (и до сих пор) вылетают из ключевых цепочек для аналитики. Но в большинстве своем всё это из-за того, что общий чат-бот уже достаточно широкого профиля. В нем сейчас собраны:
- Квесты
- Поиск тиммейтов
- Аналитика
- Возможности предлагать новости
- Заявка на помощь
- Жалобы
Поэтому я сомневаюсь, что такая структура будет работать без проблем, однако с каждой ошибкой всё становится лучше, ведь продолжаю поддержку.
Дополнительные фишки (фидбэка)
Некоторые пользователи (им обычно большая благодарность) выделили несколько пунктов, которые хотелось бы улучшить Собрав более 30 изначальных отзывов, принялся расширять систему:
- Добавлена таблица лидеров (обновление раз в неделю)
- Задания не повторялись как сами по себе, так и внутри группы (чередование)
- В конечном итоге появилась система обнуления «сложных» задач, потому что многие не могли их выполнить. Так очень быстро родилась цепочка обнуления в среду, которая сбрасывала количество выполненных задач начального уровня.
Для тех, кто хочет более подробно изучить, оставляю ссылку на игровой паблик. На данный момент система «сезона» отключена и сами квесты работают в «вечном» режиме.
Весь квест-бот был создан по мотивам и для возвращения интереса к Escape from Tarkov. Подогревались, соответственно, с помощью призов и различных плюшек.
На данный момент я продолжаю создавать еще одного квест-бота, но уже в Telegram для дополнительного охвата и вовлеченности пользователей, с возможностью привлечь аудиторию из различных каналов в один общий (мой). На связи.
Автор: Иван Зернюков
Есть что рассказать о BotHunter? Милости просим!Кстати, за классные материалы дарим промики на доступ к сервису. Подробности: https://vk.com/wall-187822477_13035
