Разработка сайта тотализатора

помогает удерживать внимание аудитории и увеличивает доход от рекламы

Разработка сайта тотализатора

Коротко

  • 01
    Клиент

    Американская компания, которая зарабатывает на продаже рекламного трафика

  • 02
    Задачи
    • Найти способ удерживать внимание аудитории при показе рекламы
    • Собрать контакты пользователей для формирования базы
    • Предусмотреть механизм управления прибылью
  • 03
    Решение

    Разработать сайт с механикой игрового тотализатора: посетители будут играть в простые игры, зарабатывать бонусы и смотреть рекламные баннеры

  • 04
    Результат
    • Разработали сайт под ключ
    • Добавили 4 варианта игр
    • Сделали конструктор игр
    • Разработали механизм настройки объема и вероятности выигрыша
    • Потратили на разработку 6 месяцев чистого времени

Компания зарабатывает на рекламе

Американская компания зарабатывает на продаже рекламы. Она заключает контракты с рекламодателям, заказывает разработку сайтов и обеспечивает рекламодателям высокие просмотры, выполнение целевых действий или передачу контактов пользователей на сайтах. Например, производитель обуви запустил новую модель кроссовок и хочет, чтобы о них узнало как можно больше людей. Компания обещает, что рекламу кроссовок увидит 10 тысяч человек в течение месяца. Когда это происходит, производитель обуви платит компании комиссию.

Способы демонстрации рекламы компания выбирает самостоятельно: покупает рекламные места на платформах, запускает приложения и игры. Задача компании — сделать все, чтобы как можно больше людей оставило свои контактные данные, увидело баннер или выполнило целевое действие: заполнило онлайн-форму, установило приложение, перешло на сайт рекламодателя.

Проблема: пользователи игнорируют рекламу и компания теряет деньги

Первая проблема компании — сделать так, чтобы пользователи не игнорировали рекламу. Даже если удается вывести ролик на весь экран, пользователь может его тут же закрыть и не досмотреть до конца. Если такое происходит — рекламодатель платить не будет.

Вторая проблема — стимулировать пользователя оставлять контактные данные и скачивать приложение. Если пользователь не видит для себя выгоды, он этого не будет делать добровольно. А гонорары за контакты пользователей компания терять не хочет.

Решение: создание вебсайта с механикой тотализатора, чтобы увлечь пользователей

Для того чтобы привлечь посетителей и увеличить время просмотра рекламных роликов и число выполнений рекламных действий, компания решила разработать игровой сайт с механикой тотализатора. Пользователи регистрируются, бесплатно играют в несложные игры вроде слот-автоматов или мгновенных лотерей, получают игровую валюту — токены. Их можно потратить на участие в розыгрышах реальных призов: наличных, техники, путешествий.

Игры, азарт, призы — люди часами зависают на сайте, возвращаются на него снова и снова, а компания получает деньги за рекламу. При этом важно не только заработать, но и соблюсти баланс между доходом от рекламы и расходами на призы. Для разработки сайта компания обратилась в OrbitSoft.

Мы разделили проект на три этапа:

  1. Обсуждение деталей: согласовали техническое задание, обсудили цели проекта.
  2. Проектирование и разработка: изучили конкурентов, спроектировали сайт тотализатор, придумали дизайн, разработали и подключили все элементы, добавили игровые механики, подключили рекламный сервер.
  3. Тестирование и запуск: провели тесты, установили систему на серверах заказчика.

Рассказываем подробно о каждом этапе.

Так выглядит одна из игр тотализатора: пользователь стирает окошки в мгновенной лотерее и одновременно смотрит рекламу
Реклама не мешает ожидать результатов игры или выигрыша. Как правило, за минуту пользователь успевает просмотреть до трех баннеров

Обсудили детали проекта с заказчиком

Заказчик прислал нам техническое задание на разработку веб-сайта. Мы созвонились и обсудили, как будем выстраивать работу, как сайт должен выглядеть и работать.

Заказчик хотел, чтобы на сайте были разные типы игр: лотереи, слот-машины, стирание окошек. Должна была быть возможность устанавливать разное количество выигрышных токенов и создавать лотереи из настоящих призов. В таблице сформулированы бизнес-задачи, которые ставил заказчик и как мы их решили.

Бизнес-задачи при разработке готового сайта

Бизнес-задачиЧто мы сделали
Как можно дольше удерживать внимание пользователя— Интересные игры и розыгрыши, яркий интерфейс, привлекательные описания — на сайте хочется оставаться и продолжать играть;
— Понятная навигация: легко найти нужную информацию;
— Реклама не раздражает пользователей: не закрывает элементы сайта, возникает в паузах, например во время ожидания результатов лотереи
Собирать контакты пользователей— Шанс выиграть ценные призы мотивирует пользователей зарегистрироваться на сайте — они сами вводят свои контактные данные.
— Есть также упрощенная регистрация через 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 токенов. Чем больше заявок, тем больше шансов на победу.

Пока этот механизм реализован в ручном режиме для проверки и отладки. После официального запуска проекта мы настроим автоматический расчет коэффициентов.

Комбинация 666 выпадет на игровом аппарате с вероятностью 0,0002, тогда игрок получит 200 токенов

Результаты: за шесть месяцев сайт готов к запуску

  • Выпустили первую версию сайта тотализатора за 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.

В чем бы вы ни нуждались, мы можем помочь!

Расскажите нам, с какими проблемами вы сталкиваетесь в своем бизнесе. Мы с нетерпением ждем вашего ответа.

Получите ответ по смс

Ваше сообщение успешно отправлено!
Представьтесь пожалуйста
Укажите номер, на который придет ответ
Нажимая на кнопку, вы даете согласие
на обработку персональных данных.