Почему просто продать билет на стадион так чертовски сложно
Представьте себе, что вы айтишник, которому достался стадион.
Ладно, это я, если что, несколько лет назад. Я поломался в хоккее, что поставило крест на спортивной карьере, и вспомнил основную специальность. Через несколько лет стал продавать билеты: сначала — в Балашихе, а потом — в Омске на «Авангард».
Это нелинейный ад.
Вот представьте себе: у вас есть стадион на шесть тысяч мест, и вам надо продать билеты. Казалось бы, делов-то: бек с API на учёт мест, фронт на сайте, в приложении, выгрузка XML дистрибьюторам — и всё. То есть надо задекларировать, какие места есть и почём, — и всё.
Ага, щас!
Сначала — ещё до того, как вы расчертите стадион на схему мест и установите цены — вы с удивлением узнаете, что билеты на этот матч уже продают.
Вы купите один ради интереса — посмотреть, что будет, и вас кинут на 1 000 рублей. Потому что это был фишинговый сайт. Ещё таким же образом кинут примерно 1–5 % зрителей, если с этим ничего не делать, и эти зрители перегрузят вам охрану и стюартов на входе, потому что не смогут пройти и будут очень громко кричать.
Потом вам надо выделить билеты для фанатов приехавшей команды. Рассаживать их среди ваших фанатов немного опасно. Для приезжих — в первую очередь.
Затем вам нужны места для семей спортсменов, для прессы, для тренерского состава и так далее. Потом это надо состыковать с программой лояльности и учётом парковок.
А после этого приходит финальный босс — чёртовы перекупы. Борьба с ними — это примерно половина сложности продажи билета.
Перед матчем вы обнаружите, что у вас остались непроданные места, и побежите раздавать их бесплатно в школе напротив стадиона.
Но давайте начнём с самого начала. Итак, вам нужно интегрироваться с турникетами. Зачем? Надо!
Турникеты
У вас должна быть лицензия на продажу билетов на спорт. На концерт Шнура или Пугачёвой на тот же стадион — не надо. На хоккей или футбол — надо.
Билет не привязывается к паспорту. На самом билете персональных данных нет, потому что тогда их было бы очень сложно обрабатывать. Да и Закон «О персональных данных» довольно строг на этот счёт. На билете есть номер. По номеру можно проверить дату матча, место и не приходил ли уже человек на него, то есть идентифицировать, что податель сего имеет право пройти на такое-то место в таком-то секторе, и сегодня он этого ещё не делал.
Именно в этом месте работают перекупы.
В футболе с этим столкнулись довольно давно, потому что никак не могли забанить ультрас, проносящих на стадион в жопе файеры, плакаты «БЫШОВЕЦ» и вообще всячески нарушающих порядок и безопасность. В смысле там, где это не согласовано с клубом. Я сам лично фанатам из чужого города и ящик пива под скамейку подкладывал и много чего ещё делал — всё ради того, чтобы они веселее орали: это делает очень хорошую картинку в камере. Но иногда их надо банить — особо буйных, — а система проверки билетов не позволяет этого сделать.
Поэтому для них появился FanID, где надо показать лицо (биометрию) или паспорт.
В хоккее такого нет: надо показать только ШК (штрих-код).
Этот код нужно проверить.
Архитектурно это та же система, которая учитывает места.
Проверять можно вручную в бумажных журналах (это невероятно плохой план), в каком-нибудь гуглодоке (это очень плохой план) или в софте. Софт чаще всего интегрирован либо с ручными сканерами, либо с турникетами.
Турникетов или ручных сканеров должно быть МНОГО. Почему так? Потому что есть нормативы на время загрузки и выгрузки стадиона. Самое узкое место — металлодетекторы и интроскопы для баулов на входе, а также турникеты для проверки билетов. За 15 минут до матча через эти места пролезает половина чаши.
Если что, на хоккей ещё приезжают люди в инвалидных колясках. И это тоже должно нормально обрабатываться стадионом.
Поэтому, если вы мазохист и любите разовые ИТ-проекты, можно поставить 200 стюартов со сканерами, но уже после пятого-шестого матча выгоднее купить и интегрировать турникеты. Правда, под них ещё надо строить павильон, прокладывать слаботочку, делать модуль в софте и т. п.
Внутри стадиона у вас разграничение прав.
Ультрас обычно имеют выделенные сектора друг напротив друга, чтобы фанаты не дрались прямо на матче. Где и как они дерутся — они договариваются ещё до выезда, но это должно случиться за пределами стадиона. Если договориться не получилось, то они громят бар. Бар про это в курсе, поэтому берёт депозит на ремонт стойки и не выводит в этот день хрупких девушек.
Обычные работяги и обитатели небесных VIP-лож ходят в разные места. Для лож обычно есть второй внутренний контур. Если вы прямо совсем настоящий айтишник, то знаете, что люди могут выйти на перерыв, а потом зайти обратно и сделать это через разные выходы. Но такого уровня обычно никто не берёт, и турникеты просто отключают после начала матча. Во время перерывов на стадион часто попадают дополнительные люди. Ещё люди пересаживаются на места получше, и если в городе пробки, то их могут пытаться гонять опоздавшие законные обладатели этих мест. Кроме того, иногда к вам приезжают гости, у которых билеты проданы через их систему, вообще никак не стыкующуюся с вашей, и тогда вы отключаете свои турникеты и разрешаете им выставить своих стюартов с ручными сканерами. Например, это бывает, когда у вас на стадионе делают финал чемпионата по Counter-Strike, потому что это, конечно, спорт, но билеты там продают по-театральному.
Билетная система
Самое сладкое — это билетная система. Внутри неё что-то вроде инвенторной системы для авиации или АБС для банка, то есть какой-то код из 90-х, который умеет учитывать места. Вокруг — интеграции и всякие фичи, в последние годы — даже в микросервисах, правда, состыкованных по хардкору в цепочки жёстких зависимостей.
Первое, что делает билетная система, — это формирует билетную массу. Главный кассир (это root) садится и смотрит на SVG-картинку стадиона. Щёлкает по местам или секторам и назначает каждому цену. Билет на обычный матч стоит рублей 300, на любимого врага — около 1 000, на плей-офф — 1 500, на финал — 5 000. Места делятся на подороже и подешевле. Ещё у места есть классификатор, для какого типа зрителей оно предпочтительнее. Например, пресса, фанаты, одиночные мужики с кризисом среднего возраста, семьи, незамужние девушки и так далее. Потому что вы хотите, чтобы незамужние девушки были видны всем, в том числе — камере, а одиночные мужики с кризисом среднего возраста сидели с пивом рядом друг с другом и молча дружили. Кстати, в следующий раз мы их запомним и автоматом предложим места рядом друг с другом по умолчанию, чтобы была молчаливая радость узнавания. Через четыре-пять таких совпадений образуются новые фанатские сообщества.
Но до этих фичей мы ещё не дошли. Точнее, дошли в разных системах и не успели их интегрировать. Только продифференцировали.
Дальше главный кассир отправляет билетную массу в релиз.
По идее, она выгружается в API, и там можно зачерпывать билеты из неё через физическую кассу, приложение, сайт или дистрибьютора. На практике это не один путь, а часто два-три разных, потому что API — это не для тех людей, которых с детства били клюшкой по голове. На самом деле там часто дремучий код, писавшийся ещё в эпоху DOS, который отрефакторили под современные системы, но не поменяли архитектуру. Монолит звучит круто. Монолит — это надёжность!
Билетная система берётся у вендора.
В России есть четыре-пять самых популярных вендоров в зависимости от вида спорта. Многие из них, такие, как «Инфотех» или «Кассир.ру», изначально пришли из театральной или концертной сферы. Разницы, по сути, никакой нет, кроме одной уникальной специфики спорта — абонементы и зональное разделение. Вы не можете купить билетики на Киркорова на год, а потом использовать их на плей-офф. Киркоров в плей-офф вообще не выходит.
Базовый функционал билетной системы:
-
Онлайн. Клиент заходит и выбирает матч, сектор, ряд, место. Может указать ребёнка.
-
Главное место кассира — это бэк-офис, где настраивается вся билетная масса.
-
Место обычного кассира — это софт для кассира в офлайн-кассе. Кассир вбивает данные паспорта, проводя продажу внутри системы напрямую, а не через онлайн-бронирование.
Билетная масса обычно выгружается на месяц вперёд, как и календарь матчей. Дальше месяца возможны сдвиги, поэтому хрен вам, дорогие болельщики, а не купить авиабилеты заранее. В плей-офф в принципе неизвестно, кто с кем играет, поэтому билеты появляются в продаже вообще за три-четыре дня до матча.
Обычно билеты выгружаются сериями: в хоккее — домашние серии по пять (плюс-минус) матчей (потому что команда играет пять матчей дома, пять — на выезде), в футболе — по месяцам. Типа вот календарь на месяц, и вот вам билеты — раскупайте.
Перекупы
В этот самый момент в стройную систему врываются перекупы.
Если вы не делаете вообще никакой защиты, то все билеты на матч будут выкуплены в первые 8–10 секунд. Многие крупные вендоры научились выстраивать очереди болельщиков, но зачастую в плей-офф всё стабильно падает из-за резкого наплыва. Это как снег зимой в Питере: никто его не ждёт, а потом приходится сбивать сосули.
Перекупы — те ещё черти: способны разобрать весь стадион и дальше продавать его втридорога. Они не всегда выкупают онлайн, бывает, просто приходят в кассу и по дружески просят два билета в одни руки. Такое в регионах встречается повсеместно, поэтому кассы многим играют на руку: кассиры имеют с этого свою копейку.
Те, кто выкупает и так ограниченные билеты, мешают всем. У клуба есть квота, и на стадион во Владике вместимостью 6 000 зрителей обычно всё распродано и распределено. На стадион, кроме болельщиков, приходят льготники: студенты, инвалиды, школьники и пенсионеры. Зачастую именно простые болельщики страдают от деятельности перекупщиков.
Вообще клуб конкурирует за внимание зрителя с рестораном и кинотеатром. Семья может поехать на хоккей, а может пойти в театр или ужинать. Если билет будет на 500 рублей дороже — мы потеряем тех, кто делал этот сложный выбор досуга на вечер. 500 рублей для Омска, кстати, — не кварк денег, а вполне реальная ощутимая сумма.
Плюс перекупы вызывают недовольство, кладут нагрузкой системы и вообще те ещё гады.
К счастью, они живут прошлыми технологиями. Поэтому вы баните странные айпишники с нетипичными для человека действиями, не даёте больше 4–10 билетов на человека, проверяете его историю предавторизацией и так далее.
Правда, это не помогает. Потому что есть ещё умные перекупщики и те, у которых есть пачка симок и некоторое терпение.
Поэтому вы делаете привилегированные очереди и волны выпуска билетов. То есть выгружаете не все сразу во все каналы, а по частям. И сначала — тем, кто предавторизован. Это приоритетный выкуп.
То есть работает это так:
-
Право первого выкупа получают лояльные болельщики. Условно для тех, кто больше года с вами, вы выгружаете первые 2 000 билетов и даёте неделю на разграбление. Если что-то осталось — они идут во вторую волну. Это также даёт возможность клубу повышать стоимость на билеты, если они быстро разлетаются, или понижать, если спроса нет.
-
Потом вы предлагаете выкупить билеты тем, кто часто ходил, но при этом недавно с вами. Обычно это тоже позволяет найти самые хорошие места. Ещё неделя.
-
Затем — другие когорты: «потенциальные покупатели» по анализу бигдаты.
-
Отдельно — пиар-билеты для журналистов, блоки для семей спортсменов и клубов, блоки под социалку (например, чтобы приют приехал посмотреть на городскую команду): всего — около 20 категорий билетов.
-
Дистрибьюторы получают свои две-три волны где-то в середине всех этих очередей. Это, кстати, тоже интеграции и наборы правил.
-
Отдельный кусок билетной массы получает клуб, который привозит своих фанатов. То есть если к вам едут любимые враги, то вы звоните их главному кассиру или главе клуба и спрашиваете, сколько им надо билетов. Обычно они берут сектор или два и обязаны их сами полностью распродать. То есть это как чартер: выкупают рейс и делают что хотят. Могут раздать фанатам бесплатно (и часто так делают), могут выложить пустыми местами икс, игрек и что-то там с производной, могут просто все билеты выкинуть в Неву и радоваться. Но от их поведения зависит, сколько билетов и по какой цене вы им дадите в следующий раз.
Есть ещё такая штука, как аккредитация СМИ. Это когда журналисты местных СМИ приходят на хоккей, и чтобы пройти они не покупают билет, а получают квоту. Так вот недавно накрыли большую шайку, которая получала такие квоты и перепродавала их далеко не журналистам. Служба безопасности всегда на страже!
Снова системы клуба
На стадионе клуб зарабатывает не только с билетов и абонементов.
Ещё хорошо, если вы купите хотя бы полшарфика, чашку чая или кружку пива, сыграете в забивание шайбы со спонсором и так далее. Плюс нам надо всех запарковать. В Омске на машинах приезжает до половины зрителей финала и до четверти — обычного матча. Вашу парковку надо просто куда-то интегрировать, чтобы можно было одновременно продать и билет, и парковку, а чужую — ну, это как повезёт. Парковка у стадиона, кстати, может быть городской, и тогда вас ждёт дорога приключений.
В итоге устоявшийся стандарт рынка — это когда болельщик авторизуется в двух-трёх разных местах минимум. Программа лояльности клуба — для баллов, магазин — для покупки билета, а также либо система парковок, либо что-то ещё из вспомогательного. Настоящие айтишники со временем это сводят в единую авторизацию в один клик, но мы живём в настоящем, а не в будущем, поэтому вам, скорее всего, достанутся три разных пельменя, а не бесшовный клиентский опыт. Причём один из пельменей почему-то всегда на Битриксе, то есть начинка в нём распределена равномерно, а не лежит там, где задумывалось по рецепту.
Поверх всего этого уже можно крутить фичи вроде тех, что я описывал выше про форсирование крепкой мужской дружбы. Ну или если вы хотите, чтобы девчонки автоматически рассаживались перед камерами. Про это я подробнее писал вот тут: в частности, очень важно посадить «перворазников» за ворота, чтобы шайба летела прямо в них. Это сильно повышает их шансы вернуться, но интуитивно они крайне редко выбирают эти места, поэтому именно им и именно туда надо давать скидку на первое посещение.
Плюс баллы лояльности за шаринг, плюс рефералка, плюс то, плюс это — и комбайн готов. Как я уже говорил, вендоры часто многое поддерживают «из коробки», но стыковать всё это вам, и «коробочные» решения тут как на производствах: некоторые можно рассматривать как фреймворк, а не как готовый софт.
По факту часть билетов в конце вы раздаёте в виде пригласительных, поэтому важно следить за динамикой продаж. Непроданные места надо либо продавать дешевле, либо просто раздать билеты (особенно если это рядовой матч сезона): нет ничего хуже пустых недоутилизированных трибун, потому что это не нравится ни каналам, ни спонсорам команд. Стадион должен быть полным. А ещё за это получают деньги клубы в конце сезона получают за это деньги.
И вот только теперь после всех этих сложностей — от налаживания юридических моментов и IT-инфраструктуры до борьбы с мошенниками, организации логистики, транспорта и маркетинга — вы наконец продали билет.
И это примерно 10 % работы айтишника, которому достался стадион.
Автор: zarubin_v

