Проекты

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

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

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

Коротко

  • 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.

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

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

Перезвонить вам, чтобы ответить на вопросы?

Когда с вами связаться?

Связаться по телефону:+7 499 321-59-32

Нажимая на кнопку, я принимаю условия политики и пользовательского соглашения

Фото эксперта
Дмитрий

Проектный менеджер

Получите ответ на ваш вопрос в любимом мессенджере

Выберите удобный мессенджер и начните диалог прямо сейчас

Telegram WhatsApp

Рассчитать стоимость проекта

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

Напишите ваше имя
Укажите ваш email

Выберите удобный для вас способ связи

Мы сразу получим ваш запрос и поможем в решении проблемы

Написать в Telegram

Написать в WhatsApp

Позвонить нам