Коротко
-
01
Клиент
Американская компания, которая зарабатывает на продаже рекламного трафика
-
02
Задачи
- Найти способ удерживать внимание аудитории при показе рекламы
- Собрать контакты пользователей для формирования базы
- Предусмотреть механизм управления прибылью
-
03
Решение
Разработать сайт с механикой игрового тотализатора: посетители будут играть в простые игры, зарабатывать бонусы и смотреть рекламные баннеры
-
04
Результат
- Разработали сайт под ключ
- Добавили 4 варианта игр
- Сделали конструктор игр
- Разработали механизм настройки объема и вероятности выигрыша
- Потратили на разработку 6 месяцев чистого времени
Компания зарабатывает на рекламе
Американская компания зарабатывает на продаже рекламы. Она заключает контракты с рекламодателям, заказывает разработку сайтов и обеспечивает рекламодателям высокие просмотры, выполнение целевых действий или передачу контактов пользователей на сайтах. Например, производитель обуви запустил новую модель кроссовок и хочет, чтобы о них узнало как можно больше людей. Компания обещает, что рекламу кроссовок увидит 10 тысяч человек в течение месяца. Когда это происходит, производитель обуви платит компании комиссию.
Способы демонстрации рекламы компания выбирает самостоятельно: покупает рекламные места на платформах, запускает приложения и игры. Задача компании — сделать все, чтобы как можно больше людей оставило свои контактные данные, увидело баннер или выполнило целевое действие: заполнило онлайн-форму, установило приложение, перешло на сайт рекламодателя.
Проблема: пользователи игнорируют рекламу и компания теряет деньги
Первая проблема компании — сделать так, чтобы пользователи не игнорировали рекламу. Даже если удается вывести ролик на весь экран, пользователь может его тут же закрыть и не досмотреть до конца. Если такое происходит — рекламодатель платить не будет.
Вторая проблема — стимулировать пользователя оставлять контактные данные и скачивать приложение. Если пользователь не видит для себя выгоды, он этого не будет делать добровольно. А гонорары за контакты пользователей компания терять не хочет.
Решение: создание вебсайта с механикой тотализатора, чтобы увлечь пользователей
Для того чтобы привлечь посетителей и увеличить время просмотра рекламных роликов и число выполнений рекламных действий, компания решила разработать игровой сайт с механикой тотализатора. Пользователи регистрируются, бесплатно играют в несложные игры вроде слот-автоматов или мгновенных лотерей, получают игровую валюту — токены. Их можно потратить на участие в розыгрышах реальных призов: наличных, техники, путешествий.
Игры, азарт, призы — люди часами зависают на сайте, возвращаются на него снова и снова, а компания получает деньги за рекламу. При этом важно не только заработать, но и соблюсти баланс между доходом от рекламы и расходами на призы. Для разработки сайта компания обратилась в OrbitSoft.
Мы разделили проект на три этапа:
- Обсуждение деталей: согласовали техническое задание, обсудили цели проекта.
- Проектирование и разработка: изучили конкурентов, спроектировали сайт тотализатор, придумали дизайн, разработали и подключили все элементы, добавили игровые механики, подключили рекламный сервер.
- Тестирование и запуск: провели тесты, установили систему на серверах заказчика.
Рассказываем подробно о каждом этапе.
Обсудили детали проекта с заказчиком
Заказчик прислал нам техническое задание на разработку веб-сайта. Мы созвонились и обсудили, как будем выстраивать работу, как сайт должен выглядеть и работать.
Заказчик хотел, чтобы на сайте были разные типы игр: лотереи, слот-машины, стирание окошек. Должна была быть возможность устанавливать разное количество выигрышных токенов и создавать лотереи из настоящих призов. В таблице сформулированы бизнес-задачи, которые ставил заказчик и как мы их решили.
Бизнес-задачи при разработке готового сайта
Бизнес-задачи | Что мы сделали |
Как можно дольше удерживать внимание пользователя | — Интересные игры и розыгрыши, яркий интерфейс, привлекательные описания — на сайте хочется оставаться и продолжать играть; — Понятная навигация: легко найти нужную информацию; — Реклама не раздражает пользователей: не закрывает элементы сайта, возникает в паузах, например во время ожидания результатов лотереи |
Собирать контакты пользователей | — Шанс выиграть ценные призы мотивирует пользователей зарегистрироваться на сайте — они сами вводят свои контактные данные. — Есть также упрощенная регистрация через Facebook или Google — в этом случае информация остается на стороне этих сервисов. Мы сделали механизм, который вытягивает оттуда контакты. |
Стимулировать пользователей выполнять действия из рекламы | — Честные механизмы раздачи призов разжигают азарт: пользователи знают, что есть реальный шанс выиграть. — Чтобы побороться за суперприз, нужно поучаствовать в лотерее. Для этого нужны особые мегатокены. Их можно получить за рекламные действия: заполнить онлайн-форму, установить стороннее приложение или браузерное расширение. |
Продумать механизм управления прибылью | — Добавили панель управления количеством токенов, которое получают пользователи в играх. Их выдается ровно столько, чтобы хватило для участия в текущих раздачах призов. |
Кроме бизнес-задач, заказчик поставил и технические:
- предоставить техническую спецификацию перед началом работы;
- обеспечить безопасность системы, разрабатывать с учетом будущего масштабирования;
- использовать кэширование, HTTPS, кэш Cloudflare/StackPath;
- серверная часть может быть написана на PHP с использованием API на Java.
Команда для создания сайта приступила к работе.
Изучили игры конкурентов, спроектировали и разработали сайт с нуля
Перед началом работы по созданию сайта мы проанализировали конкурентов заказчика: посмотрели американские сайты с механикой sweepstakes, взяли визуальные референсы для разработки дизайна. Важной задачей было изучить игровые механизмы тотализатора: наши разработчики пару дней сами играли, анализируя игровые закономерности и вероятности.
Дальше мы перешли к созданию и разработке сайта:
- разработали алгоритм определения победителей и раздачи токенов;
- выстроили архитектуру проекта, back-end-систему вызовов API;
- описали инструментарий, которым будем пользоваться;
- разработали графический дизайн: стили управления, логотип, цветовую схему.
Мы предложили заказчику приобрести готовые игровые механики: это быстрее и дешевле, чем писать их заново. Нужно только купить ZIP-архивы с кодом, интегрировать код в сайт и дополнить игры собственным дизайном. Это позволило расширить стартовый набор механик:
- игровые автоматы;
- игры со стиранием окошек;
- блек-джек;
- скачки;
- рулетка.
Компоненты системы и инструменты
По результатам проектирования мы подготовили для заказчика понятную, наглядную презентацию:
- описали роли пользователей сайта: посетители, рекламодатели, администраторы;
- показали компоненты будущей системы, их функции и взаимодействие;
- обосновали выбор технологий и игровых механик.
Сайт разделен на компоненты. Каждый из них выполняет свою функцию и упакован в контейнер с использованием технологии Docker. Компоненты взаимодействуют друг с другом через REST API и специализированные протоколы.
- Front-end на Angular — пользовательский интерфейс для посетителей и администраторов.
- Back-end на Symfony — серверная часть системы: вычисляет логику выигрышей и начислений токенов.
- Рекламный сервер Orbit — собственный программный продукт OrbitSoft, управляет рекламодателями, кампаниями и объявлениями.
- Статистика и аналитика на PHP — обработка данных по начислению и выводу токенов через розыгрыши.
- База данных Percona MySQL — хранение пользовательских панелей, истории начисления и вывода токенов, результатов розыгрышей.
- NoSQL-хранилище Aerospike — хранение остатков токенов.
- Резервное копирование — периодическое копирование всех системных данных.
- Мониторинг — непрерывное тестирование производительности всех компонентов и оповещение технических сотрудников о проблемах.
- Load Balancer — балансировка входящего трафика.
Связку Angular 7 и Symfony мы выбрали потому, что в OrbitSoft есть сложившаяся, опытная команда программистов, которые работают с этими фреймворками. В качестве рекламного сервера мы взяли Orbit Ad Server — наш собственный продукт. Он помогает рекламодателям и паблишерам размещать рекламу: хранит в базе данных рекламные материалы и транслирует их на сайты в соответствии с запросами рекламной сети. Сервис работает с любыми рекламными форматами и предлагает удобные инструменты: планирование кампаний, таргетинг, подсчет метрик эффективности, управление рекламным бюджетом.
Разработка и обратная связь
После согласования проекта мы приступили к разработке:
- написали модули всех компонентов системы;
- добавили графический дизайн;
- проверили и отладили систему на тестовых серверах;
- выполнили интеграцию с рекламным сервером Orbit — настроили места размещения объявлений в пользовательском интерфейсе.
Заказчик хотел в будущем расширить систему. Для этого мы применили кластеризацию и сделали конструктор игр:
- объединили несколько серверов в единый кластер. Серверный кластер работает как единое целое, но физически серверов много: сбой одного из них не приводит к отказу всей системы. В будущем заказчик сможет подключить к кластеру больше серверов — масштабировать систему;
- в админке сайта есть конструктор, с помощью которого можно по имеющимся игровым механикам собирать новые игры тотализаторы. Заказчик сможет делать это самостоятельно, в том числе по механикам, которые на данный момент на сайт загружены, но не активны: блек-джек, скачки, рулетка.
В техническом задании заказчик просил обеспечить сохранность данных и защиту от взломов:
- мы использовали HashiCorp Vault — инструмент для хранения секретной информации: паролей, логинов, ключей. Если программный код не содержит секретов, значит, их невозможно достать и взломать сайт. Злоумышленники не смогут взломать систему, украсть пароли и деньги;
- алгоритм выбирает победителей в розыгрышах случайным образом, все вычисления происходят на стороне сервера. На результат нельзя повлиять ни пользователям, ни администратору.
В процессе работы над проектом мы подробно отвечали на все вопросы заказчика, помогали с решением возникающих проблем.
Протестировали сайт и добавили дополнительные функции
Первая версия сайта тотализатора была готова за 6 месяцев. Увидев ее, заказчик решил добавить дополнительные функции. Со всеми согласованиями и доработками проект занял 9 месяцев.
Сайт полностью готов: мы провели функциональные и нагрузочные тесты, установили систему на серверах заказчика и запустили ее. Коммерческий старт запланирован на 2022 год: пока заказчик согласовывает юридические вопросы и получает разрешения.
Администрирование сайта
Заказчик управляет сайтом через панель администратора. В ней есть разделы для просмотра статистики посещений, управления страницами сайта, рекламный кабинет для модерирования рекламных объявлений.
Ключевой раздел панели — игровые категории. Здесь администратор управляет играми: меняет внешний вид, убирает старые, собирает новые на основе загруженных нами игровых механик. Для этого он открывает конструктор, вводит название и описание игры, добавляет картинку-фон, выбирает призы, задает вероятность и размер выигрыша токенов.
Посетители должны получать токены и выигрывать реальные призы, чтобы сохранялся интерес. При этом доход компании от рекламы должен превышать расходы на призы, чтобы компания получала прибыль. Финансовую информацию администратор берет из отчета рекламной платформы.
Например: за вчерашний день было 100 тысяч рекламных показов, каждая тысяча показов стоит 3 $ — компания заработала 300 $ на рекламе. Из них 150 $ она забирает в качестве прибыли, еще 50 $ тратит на операционные расходы. Оставшиеся 100 $ идут на призы.
Дальше администратор смотрит статистику сайта: количество посетителей, побед, разыгранных токенов. И задает математическую модель, которая позволит посетителям выиграть достаточно токенов для участия в розыгрыше имеющихся призов.
Для каждой призовой комбинации он выставляет коэффициент вероятности ее выпадения и количество токенов, которые получит игрок. Чтобы подать заявку на участие в розыгрыше рюкзака, пользователю нужно потратить 1000 токенов. Чем больше заявок, тем больше шансов на победу.
Пока этот механизм реализован в ручном режиме для проверки и отладки. После официального запуска проекта мы настроим автоматический расчет коэффициентов.
Результаты: за шесть месяцев сайт готов к запуску
- Выпустили первую версию сайта тотализатора за 6 месяцев.
- Добавили 4 варианта увлекательных игр и лотерей с возможностью подключать новые механики в будущем.
- Сделали конструктор, чтобы заказчик мог сам создавать игры на основе этих механик.
- Добавили механизм, который собирает контакты пользователей при авторизации через Facebook и Google.
- Предусмотрели мотивационную схему для подключения рекламы с платой за действия.
- Разработали механизм автоматической настройки вероятности выигрыша в зависимости от эффективности рекламы.
- Обеспечили безопасность данных и предусмотрели возможность масштабирования.
Технический блок
- Front-end на Angular 7.
- Back-end на Symfony.
- Orbit Ad Server.
- Базы данных: Oracle MySQL, NoSQL Aerospike, Click House, Mongo.
- HashiCorp Consul, Vault.
- Gliderlabs Registrator.
- Graylog.
- Elasticsearch.
- Redis.
- Kafka.
Telegram
WhatsApp
+7 499 321-59-32
contact@orbitsoft.com