Ладно, на самом деле, сколько-то раз я на него всё-таки нажал, но исключительно для ознакомления, так сказать, с предметной областью. Но начнём по порядку.
Это история о том, как я, студент третьего курса ТюмГУ, впервые в качестве разработчика смог заработать с помощью собственного проекта. Часть текста будет посвящена теме проекта, часть — аспектам реализации, а в конце — немного о раскрутке и монетизации.
Немного предыстории
Всё началось одним майским вечером, когда я катал очередную смену велокурьера в доставке. Несмотря на наличие какого-никакого опыта в web-разработке (мой путь начался ещё в старшей школе), во время универа я решил отказаться от фриланса во избежание лишнего стресса. Попытки устроиться на нормальную работу по специальности в начале третьего курса успехом не увенчались. Поэтому, я продолжал зарабатывать себе на жизнь, крутя педали, а иногда, в свободное от учения и кручения время, я занимался небольшим pet-проектом, который пока денег не приносил.
Коррективы в привычное положение дел внесло сообщение от одногруппника:
— Тут знакомый с электива ищет человека, который сайты умеет писать. Предлагает заработать с рекламы 50 на 50. Скинуть контакт?
Изначально я воспринял сообщение с долей скепсиса. Что там может быть? Сто процентов какая-нибудь муть. Но решил всё же хотя бы узнать, что там нужен за сайт.
Стоит упомянуть, что я мало чего знаю о криптовалютах, и в целом не особо им доверяю. Поэтому, когда разговор начался с вопроса «Ты в теме криптовалют разбираешься?», — доля скепсиса только увеличилась.
— Не, не особо.
— А про тапалки по типу NotCoin слышал?
Про NotCoin я слышал. Обычная игра-кликер, отличившаяся тем, что в какой-то момент все заработанные игроками монеты превратились в криптовалюту, которая теперь торгуется на бирже.
Как оказалось, после успеха Not, подобных "крипто-тапалок" наплодилось как грибов после дождя, а самой популярной из них стала Hamster Kombat. Что с этим можно сделать? Хорошая новость заключалась в том, что идеей было не создать очередную подобную "тапалку" на волне популярности, а что-то более оригинальное.
Суть проекта
Как и во многих других кликерах, в Хомяке за внутриигровую валюту есть возможность покупать усилители (здесь они именуются "карточки"), которые приносят определённое количество монет в час, избавляя от необходимости постоянно жать на кнопку. Короче говоря — пассивный доход. Карточек доступно довольно много, и их список постоянно пополняется.
Карточки стóят по-разному и дают разный доход. После покупки, каждую из карточек можно улучшать, "прокачивая" её на следующие уровни. С каждым новым уровнем карточка будет приносить всё больший доход, но и стоит каждый следующий уровень всё дороже. Получается, что для каждой из доступных прокачек можно посчитать, насколько быстро она окупится:
Важно упомянуть, стоимость прокачки на следующий уровень всегда растёт быстрее приносимого дохода: так, первый уровень карточки "Fan Tokens" стоит 10.000 монет и увеличивает прибыль на 950 в час, а десятый уровень стоит уже 139.000 монет, увеличивая прибыль лишь на 1700 монет в час. Следовательно, прокачка на каждый новый уровень окупается всё медленнее.
Чем быстрее окупается прокачка — тем она выгоднее.
Нетрудно догадаться, что то, какая карточка в конкретный момент будет самой выгодной, — будет отличаться от игрока к игроку в зависимости от имеющегося набора карточек.
Игроку, чтобы определить, какая прокачка — самая выгодная, нужно посчитать окупаемость всех доступных прокачек, и найти из них наименьшую. Поскольку карточек много и данные постоянно меняются по ходу прокачки карт на новые уровни, делать это вручную — довольно затруднительно.
Идея: Создать сайт, на котором игрок Hamster Kombat будет вводить данные своих карт и видеть, какая из карт будет самой выгодной для прокачки. По сути — калькулятор, который по каждой карточке делит её цену на прирост дохода, и выдаёт их ранжированный список.
Потенциальная аудитория: все игроки в хомяка, а их на тот момент было уже 70 миллионов, если судить по количеству подписчиков в официальном Telegram-канале.
Распределение ролей: я делаю сайт, а партнёр его раскручивает и работает с рекламодателями. Ни с тем, ни с другим, как он заверил, проблем не будет: он уже давно в теме и у него есть нужные связи.
Заработок: за счёт размещения рекламы на сайте. Рекламу продавать каналам, специализирующихся на подобных играх и криптовалютах; прибыль делить пополам.
И я решил попробовать.
Почему я согласился этим заняться?
На то было несколько причин, а аргументов "против" особо не нашлось:
Не нужно ни во что вкладываться, при том, что возможность заработать не казалась чем-то маловероятным. Банальная и понятная продажа рекламы. Единственная трата на старте — пара тысяч рублей на двоих на покупку домена и хостинга. Эту трату я посчитал незначительной. Из вложений остаётся только время. Об этом — следующий пункт.
Это не займёт много времени. Как я уже говорил — опыт у меня есть, и трудностей с таким небольшим проектом возникнуть не должно. Предметная область максимально понятна, оставалось уточнить пару нюансов реализации, а в целом — всё можно было сделать за неделю, максимум - две, учитывая, что я всё ещё продолжал учиться и работать (забегая вперёд, пару смен в доставке я всё же отменил).
-
Абсолютно не важно, окажется ли в итоге Хомяк скамом или нет. Если тема востребована, и если наш сайт действительно окажется полезен большому количеству игроков, то свою копейку мы в любом случае поимеем, а претензий, в случае чего, к нам будет не предъявить никаких. Вспоминается цитата героя Мэттью Макконахи из фильма "Волк с Уолл Стрит":
«Никто не знает, пойдут ли акции вверх, вниз, вбок или кругами, никто, и особенно брокеры. Клиент думает, что стал богатым, и он им стал. На бумаге. Но мы с тобой брокеры.
Мы уносим домой реальный нал, нашу комиссию, мать её за ногу!» (фото: Кинопоиск)Как брокерам с Уолл Стрит особо не важно куда пойдёт курс акций (лишь бы клиенты хотели их продавать и покупать), так и мне будет безразлично: озолотятся ли в итоге "тапальщики", или действительно окажутся хомяками, оправдав тем самым название проекта. Главное, чтобы они хотели зарабатывать эти нарисованные на экране цифры, да побольше и поэффективнее.
Несмотря на то, что я знал человека всего полчаса, — особых причин к недоверию не было. Дело в том, что Егор — гуманитарий, и в технических аспектах абсолютно не силён. В последствии, на протяжении всей совместной работы, у него даже не было пароля от панели управления хостингом: он всё равно бы не знал, что там делать. Поэтому, стоило бы чему-то пойти не так — и я мог убрать сайт из общего доступа, или просто начать вести дела без него.
На мне — только техническая реализация. Честно говоря, всю эту раскрутку я в гробу видал, и тратить на это время и силы совсем бы не хотелось. Поэтому, имея партнёра, который вызвался взять на себя все аспекты, кроме технических, — я получил идеальный расклад: долю в проекте, в котором мог заниматься только тем, что мне нравится. А, хотя проект и небольшой, заняться там было чем.
Поэтому, уже на следующий день я сел за ноутбук, открыл VS Code, и инициализировал проект.
Особенности реализации
Этот слегка затянутый и в меру задротский раздел — непосредственно о процессе разработки сайта. Если начнёте скучать — добро пожаловать в следующий раздел, посвященный раскрутке и монетизации.
Итак, чтобы пользоваться инструментом, пользователю придётся ввести цены и прибавки к прибыли следующих уровней всех своих карточек. Или нет? В идеале бы сделать так, чтобы нужно было вводить только уровень карты, а цена и прибавка к прибыли подставлялись сами. Однако, найти данные по каждому уровню каждой карточки в интернете не удалось. В таком случае, у нас есть два варианта:
Поначалу просить пользователей вводить и уровни, и цены, и прибыли для каждой карточки, из чего собрать базу данных, после чего уже в новой версии использовать собранные данные для автоподстановки.
Вывести формулы, по которым эти значения будут рассчитываться исходя из указанного уровня. Если это удастся сделать, то базу собирать не придётся.
Было решено сначала попробовать пойти по второму пути: этот вариант идеален в плане пользовательского опыта и менее затратен относительно реализации в коде.
Реверс-инжиниринг формул и коэффициентов
Егор, имеющий уже довольно продвинутый хомячий аккаунт, выписал цены и доходы по нескольким карточкам за прокачки на высокие уровни. Я же, с нулевым аккаунтом, для тех же карточек скупил несколько начальных уровней, на сколько хватило накликанных за полчаса монеток.
Вбив данные в Excel, выяснилось, что увеличение дохода (именно увеличение, а не сам доход) с каждым уровнем домножается на один и тот же множитель, причём он оставался неизменным как от уровня к уровню, так и от карты к карте. То есть — типичная геометрическая прогрессия. Путем нехитрых махинаций в том же Excel был подобран коэффициент прогрессии — как позже было подтверждено, единый для всех карточек.
![1. Выясняем примерный коэффициент (точным он не будет из-за округления в изначальных данных)2. Подбираем коэффициент, чтобы округлённые посчитанные значения совпали с реальными3. Тестируем коэффициент на остальных карточках (это осталось за кадром) 1. Выясняем примерный коэффициент (точным он не будет из-за округления в изначальных данных)2. Подбираем коэффициент, чтобы округлённые посчитанные значения совпали с реальными3. Тестируем коэффициент на остальных карточках (это осталось за кадром)](https://habrastorage.org/getpro/habr/upload_files/fb5/a2a/60d/fb5a2a60d8f26cc5d150a2fdce1e0034.png)
2. Подбираем коэффициент, чтобы округлённые посчитанные значения совпали с реальными
3. Тестируем коэффициент на остальных карточках (это осталось за кадром)
Интереснее получилось с ценами уровней: множители изменяются от уровня к уровню, но одинаковы для одних и тех же уровней разных карт. Дополнительный столбец в Excel помог выяснить, что мы имеем дело с прогрессией, которую не проходят в школе и название которой я не смог найти в интернете. ChatGPT назвал её "двойной геометрической прогрессией" (duh). Я бы назвал её "геометрической прогрессией второго порядка". Если знаете правильное название — дайте знать в комментариях. Отличается она тем, что коэффициенты, на которые домножаются члены последовательности, сами являются членами геометрической прогрессии.
![Как выяснилось, с каждым шагом множители домножаются на фиксированный коэффициент Как выяснилось, с каждым шагом множители домножаются на фиксированный коэффициент](https://habrastorage.org/getpro/habr/upload_files/d20/2a5/c3d/d202a5c3d514f19f7b528480eb36b920.png)
Таким образом, для вычисления членов такой прогрессии необходимо знать три значения: первый член прогрессии, первый множитель, и коэффициент прогрессии для вычисления множителей. Их удалось выяснить с помощью всё того же подбора, отталкивающегося от полученных примерных значений, и последующей сверки округлённого результата с реальными данными из игры.
По итогу, значения, полученные с помощью подобранных коэффициентов, идеально совпадали с реальными значениями, причём для всех карточек и на всех уровнях. Это дало возможность хранить данные только для первых уровней карт, а UX сделать максимально удобным: единственное, что пользователю нужно вводить — это уровни карточек. Всё остальное скрипт посчитает сам.
Разработка
Стек: фронтенд — SPA на Vue.js, бэкенд — на PHP. На первых порах бэкенд отсутствовал ввиду отсутствия функций, требующих его наличия.
Примерно через неделю была готова первая рабочая версия сайта, и выглядела она вот так:
![Название в шапке изменено чтобы не рекламировать Название в шапке изменено чтобы не рекламировать](https://habrastorage.org/getpro/habr/upload_files/90a/026/7c4/90a0267c4e31ccf4a485b74130752b35.png)
Предельно просто. Слева вводим уровни своих карт. Значения цены и дохода подставляются сами и не редактируемы. Справа выводится автоматически обновляющийся список карт, отсортированных по окупаемости. У каждой карты указан срок окупаемости и раздел, в котором она находится. В мобильной версии эти секции расположены под друг другом, а быстро проматывать вниз к секции рейтинга помогает большая кнопка "Рассчитать" внизу экрана.
Скелет так и остался неизменным, однако помимо базового функционала добавилось ещё пара фич, о которых я, как истинный задрот, не могу не рассказать.
Редактирование всех карт разом
Представим ситуацию: на сайт зашёл уже продвинутый игрок, у которого все карты уже далеко не нулевого уровня. Захочет ли он нажимать на "плюсик" по многу раз на каждой карточке? Я бы не захотел. Конечно, вместо этого можно вводить уровни с клавиатуры, но, во-первых, до этого можно и не догадаться, а во-вторых — для большого количества карт это всё равно довольно муторно, особенно с телефона.
Облегчим игроку жизнь: в меню добавим пункт "Установить один уровень для всех", который будет открывать окно для выбора уровня, который установится сразу для всех карт. Игрок укажет тот уровень, который имеет большинство его карт, а затем вручную подправит те карты, где уровни отличаются от заданного. Какой-то объём монотонной работы проделать всё равно придётся, однако теперь он сократился в разы.
![До кучи добавляем опцию "Сбросить все уровни", которая делает то же самое,что и установка всех уровней карт на ноль До кучи добавляем опцию "Сбросить все уровни",которая делает то же самое, что установка всех уровней на ноль](https://habrastorage.org/getpro/habr/upload_files/1a1/c5d/beb/1a1c5dbeb13034bcd259ad1f6345ecce.png)
что и установка всех уровней карт на ноль
![](https://habrastorage.org/getpro/habr/upload_files/98b/9b3/9c1/98b9b39c1659c67f9df2dc823939521f.png)
Чтобы пользователь точно не пропустил такую важную функцию — добавил подсказку, которая появится при первом использовании после того, как несколько раз подряд будет нажата кнопка изменения уровня.
![](https://habrastorage.org/getpro/habr/upload_files/2b8/17e/7c2/2b817e7c24fdb8e66fce963922d8b65d.png)
Заблокированные карточки
Не все карточки доступны для покупки игроком с самого начала. Некоторые из них открываются только после прокачки какой-то другой карточки до определённого уровня. Так, чтобы получить возможность приобрести первый уровень карточки Staking, сначала нужно улучшить карточку KYC до 7-го уровня. Отобразить информацию о том, доступна ли определённая карточка — проблем, разумеется, нет: в хранилище данных о картах добавляем необязательное поле requiredCard
, хранящей название и требуемый уровень карты, необходимой для разблокировки.
![](https://habrastorage.org/getpro/habr/upload_files/e5d/4f3/adb/e5d4f3adb2552c2e6b8c58a5ebde2c0c.png)
При отображении, ищем нужную карточку списке карт пользователя, смотрим её уровень, и если он недостаточный — отображаем карточку как заблокированную.
Для удобства добавляем возможность при клике по заблокированной карте увидеть необходимую для её разблокировки карту в списке (в оригинале такой фичи нет, ищи нужную карточку сам!), а для пущей красоты добавляем индикацию заблокированного состояния карточки в основном списке и анимацию при её разблокировке.
![Ну лепота? Ну лепота?](https://habrastorage.org/getpro/habr/upload_files/359/9eb/a66/3599eba66a0e1377ba8e0e1961e8ca23.gif)
С интерфейсной частью в общем списке карт разобрались. Но что с заблокированными картами делать в секции рейтинга? Поначалу я решил их просто не отображать: зачем рекомендовать к покупке карты, которые у игрока всё равно заблокированы? Но подумав еще немного, стало понятно, что такой подход — далеко не самый разумный.
Представим, что есть карточка A, которая сама по себе выгодная, и при этом карточка B, требуемая для её разблокировки — может, и не выгодная, но при этом — очень дешевая. В таком случае, может получиться так, что при добавлении цены карточки B в расчёт — выгодность A снизится совсем незначительно, и всё ещё останется наилучшим вариантом.
И я тут же нашёл подтверждение своему предположению. Для демонстрации одного из возможных случаев сделаем следующее: всем карточкам установим третий уровень, и станем отображать одну из заблокированных карточек, а именно — Staking.
![](https://habrastorage.org/getpro/habr/upload_files/619/7fa/39d/6197fa39d678de3eb68567c88b7f0c86.png)
Что мы видим? Покупка первого уровня карточки Staking — на первом месте по окупаемости. Посчитано это было по уже известной формуле, в которой стоимость делится на прибавку к прибыли:
Hidden text
Ошибки здесь нет: несмотря на то, что всем карточкам был установлен третий уровень, — для заблокированной карты считается окупаемость именно первого уровня, ведь карточка ещё не открыта, а значит — к этому моменту купить или прокачать её до какого-то уровня игрок не мог.
Однако, карточка сейчас заблокирована: чтобы её открыть, сначала нужно прокачать карту KYC до 7 уровня. Суммарно, прокачка KYC с 3 до 7 уровня будет стоить 1543 монеты, а ещё помимо этого она начнёт приносить дополнительный доход в 58 монет в час. Добавим эти данные в изначальное уравнение:
Это всё ещё выгоднее любой другой карты. Стоит отметить, что сама по себе карточка KYC не особо выгодная: её окупаемость на третьем уровне — 12 часа 55 минут, это 26-е место в рейтинге. При этом, благодаря ей разблокируется довольно много более выгодных карточек. Если игрок будет руководствоваться исключительно данными сайта, то он прокачает её совсем нескоро, а значит — долгое время не будет иметь доступа к по-настоящему выгодным карточкам.
И это не единичный случай. Выходит, что если просто скрывать заблокированные карточки, то из них будут упускаться те, что являются прибыльными даже с учётом затрат на их разблокировку. Вместо этого, следует учитывать их в рейтинге, рассчитывая их окупаемость по доработанной формуле, учитывающей дополнительные расходы.
Придётся также учесть, что встречаются целые цепочки, когда карточка А открывается только после прокачки В до уровня nb, В — при прокачке C до уровня nc, и так далее. Поэтому, функция для расчёта окупаемости должна быть рекурсивной.
Вышеописанный принцип был реализован в коде и протестирован в различных сценариях, а у заблокированных карт, которые теперь отображаются в рейтинге, появилось примечание:
![«Данные с учётом карт, необходимых для разблокировки» «Данные с учётом карт, необходимых для разблокировки»](https://habrastorage.org/getpro/habr/upload_files/a00/518/ed7/a00518ed76c5f785e093430654794f93.png)
Стоит признать, что такой вариант оформления — определённо, не самый лучший с точки зрения восприятия для пользователя. Стоило бы отображать своего рода последовательность: мол, сначала прокачай такую-то карту до такого-то уровня, потом — открывшуюся благодаря этому следующую, и суммарно это всё окупится за столько-то часов. Но до этого руки так и не дошли.
Нативная реклама, или как обмануть AdBlock
Мне всегда нравилась идея нативной рекламы в приложениях (куда лучше обычных баннеров), и я решил реализовать нечто подобное и на нашем сайте. За основу был взят уже существующий дизайн карточек. В десктопной версии сайта блок был размещён в секции анализа, а в мобильной версии — в списке карточек. Получилось, кажется, довольно неплохо.
![](https://habrastorage.org/getpro/habr/upload_files/e56/a0f/0f4/e56a0f0f4cbcd38aabcdd39c664a46f0.png)
Под блоком расположился контакт для связи, а рядом с ним — закрывающий рекламу крестик, который всплывал через три секунды после появления блока.
AdBlock не трогал эти блоки, и достичь этого оказалось не сложно: достаточно отсутствия ключевого слова "ad" в названиях CSS-классов, а также в путях к файлам и к API, откуда берутся данные для блоков. Поэтому, вместо слова ad
везде было использовано первое пришедшее на ум contact
, а данные долгое время и вовсе были захардкожены, а не доставались с сервера отдельным запросом.
Чуть позже мне стало казаться, что блок слишком сильно сливается с остальным интерфейсом, и ради эксперимента я решил выделить его цветом. Лучше ли стало смотреться или хуже — дело вкуса, но конверсия с того момента особо не поменялась.
![](https://habrastorage.org/getpro/habr/upload_files/71f/91c/78a/71f91c78a185f4fb02041ab6cf514ba6.png)
Раскрутка
Вкратце расскажу о жизни сайта после того, как он был выпущен в открытый доступ, а после — удалось ли на нём заработать.
Когда все основные функции были готовы — наступил черёд поработать моему партнёру. Использовалось два основных способа раскрутки.
1. Сотрудничество с Telegram-каналами
Метод заключался в том, чтобы искать каналы со смежной тематикой и писать их админам с предложением о взаимовыгодной сделке: на канале выкладывается пост о сайте, а на сайте на какое-то время размещается рекламный баннер о канале. Чтобы админы соглашались, величина аудитории их каналов, разумеется, должна быть сопоставима с охватами сайта, поэтому поначалу это были каналы на 100-200 подписчиков, а по мере роста просмотров у сайта — росло и количество подписчиков у каналов, которым мы не стеснялись писать. Далеко не все соглашались, некоторые вместо этого предлагали просто купить у них рекламу. Поиски не прекращались.
«Не надо никому ничё платить, ща всё полетит» — Егор
У самого крупного из каналов, с которыми нам удалось поработать в таком формате, было 15 тысяч подписчиков и по 1500-2000 просмотров на каждом посте. Наш ежедневный показатель просмотров на тот момент составлял 800 в день. Баннер на сайте был размещён на неделю.
По данным метрик, конверсия просмотров рекламы каналов в переходы на них составила в среднем полтора процента.
![Красная линия — изменение внешнего вида блока рекламы Красная линия — изменение внешнего вида блока рекламы](https://habrastorage.org/getpro/habr/upload_files/4f1/839/9b3/4f18399b3b2bb2dcac998b6572fcaa3a.png)
2. Рилзы и шортсы
У Егора был раскрученный, но на тот момент пустой профиль в инстаграме на 8000 подписчиков. Туда он начал активно выкладывать короткие ролики разной степени качества. В основном, это были всякие мемы с Меллстроем и прочий "вирусный" шлак. Мне такой подход не очень нравился, но это работало. Каждый ролик набирал минимум по 500 просмотров, какие-то — выстреливали, набирая по несколько тысяч, а самый популярный набрал порядка двадцати тысяч.
Я тоже захотел сделать пару роликов, но в совершенно ином жанре. Самый популярный из них (16 тыс. просмотров) выглядел так: снимая на камеру телефона, я подходил к ноутбуку со словами "Смотрите, какая тема для хомяка появилась", и вкратце рассказывал о сайте: зачем он нужен и как им пользоваться. Идея была в том, чтобы это выглядело как от лица случайного игрока, натолкнувшегося на сайт. Сработало неплохо: видео из этой серии стали лучшими по соотношению лайков и комментариев к просмотрам. Справедливым было предположить, что и конверсия в переходы на сайт тоже была выше, и графики в метриках в последствии это подтвердили.
И как успехи? Статистика и личные ощущения
Наш рекорд по просмотрам сайта в день — 2300. Он был установлен на двадцатый день после выхода сайта в открытый доступ, спустя пару дней после публикации рекламы в телеграм-канале самого крупного из наших партнёров, и на следующий день после того, как в инстаграм был выложен самый популярный ролик моего авторства.
Я помню тот день. Я проснулся в 11, по обыкновению заглянул на страницу Яндекс Метрики, и увидел показатель в 900 заходов за то время, что прошло с полуночи. До этого, такие цифры я видел только к концу дня, а тут — всего за 11 часов. Это при том, что пик всегда приходился на вечер. В течение дня показатель всё увеличивался, а я каждый час, или даже чаще, открывал страницу чтобы полюбоваться красивыми циферками и взмывающими вверх графиками.
Радости не было предела. Неужели это всё не зря?
После пика, показатель слегка снизился и стабилизировался в среднем на полутора тысячах просмотров в сутки. На следующей неделе просмотры стали колебаться уже в районе двух тысяч. Увеличилось количество постоянных пользователей, день ото дня их было больше, чем новых.
![1 — пост в самом популярном тг-канале из партнёрских2 и 4 — самые популярные ролики в инстаграме3 — обновление с комбо и шифрами 1 — пост в самом популярном тг-канале из партнёрских2 и 4 — самые популярные ролики в инстаграме3 — обновление с комбо и шифрами](https://habrastorage.org/getpro/habr/upload_files/8ce/02a/c00/8ce02ac0097a2bab48f0c245c5ce4141.png)
2 и 4 — самые популярные ролики в инстаграме
3 — обновление с комбо и шифрами
Стагнация
Однако не всё было так радужно. Эйфория прошла, и уже не было такой радости от хоть и хороших, но почти не растущих показателей. А пользы от них так и не появилось. К нам всё ещё никто и не обратился за рекламой. До того, как появятся рекламодатели, мы решили разместить на сайте рекламные блоки Яндекса. За месяц мы заработали на них 470 рублей. Несмотря на хороший старт, необходимо было продолжать наращивать аудиторию.
А с этим были проблемы. Всё упиралось в то, что нам больше никто не отвечал на предложения о партнёрстве, новых идей для видео не было, а других незатратных в финансовом плане методов раскрутки мы не знали. Казалось бы, нужно просто набраться терпения и постепенно копить аудиторию, но этому мешало одно "но".
Не стоит забывать, что сайт является вспомогательным инструментом для кликера HamsterKombat, а, как и в случае с NotCoin, в обозримом будущем ему предстоял листинг, то есть "превращение" всех монет игроков в криптовалюту, после чего возможность получить их через игру закроется, перечёркивая всякий смысл существования нашего сайта. Поэтому во времени мы были очень ограничены. Конечно, можно было бы переключиться на другие подобные игры (принцип-то у них один и тот же), но было очевидно, что после листинга самого популярного из подобных проектов — хайп начнёт сходить на нет, и бóльшего количества пользователей нам так и не видать. По крайней мере, без нормальной рекламы.
Через две недели после установления рекорда по просмотрам за сутки — он повторился вновь, но после этого — посещения стали неуклонно падать. Мы особо об этом не говорили, но чувствовалось, что всё идёт к закату. От партнёра особой активности не исходило, а у меня уже началась летняя практика, и я совсем забил думать о проекте. Что было по моей части — я реализовал, больше мне делать было нечего.
Это точно был конец. Почему же в заголовке я написал, что я заработал? Неужели речь о тех пяти сотнях рублей с рекламы Яндекса? Вообще, если бы дело было только в них — я бы всё равно рассказал эту историю. Но в самом её финале произошёл один неожиданный поворот.
Когда, казалось бы, уже всё...
Мы уже где-то неделю даже не переписывались. Каждый был занят своим. И тут, я получаю внезапное сообщение:
— Влад, привет! Написал один человек, у него своя тапалка и канал, предложил $1000 за сайт. Что думаешь?
Это была наинеожиданнейшая и наилучшая новость из всех возможных. Если бы предложение поступило двумя-тремя неделями ранее, когда у нас только начало что-то получаться — я бы ещё призадумался, но сейчас было очевидно: это самый лучший вариант, особенно если поторговаться. На носу листинг, у меня — практика, новых возможностей для роста не предвидится, а тут — такое предложение.
В результате недолгих переговоров была установлена цена в 1400 USDT. На следующий же день мы подписали договор и получили половину суммы, после чего передали все файлы, доступы к хостингу, домену и панели метрик, и получили вторую половину оплаты.
Лишь одно меня смущало: изначально речь шла о разделении доходов с рекламы (которой, к слову, так и не было) в пропорции 50 на 50. Логично, что при продаже доля останется такой же. Однако мне казалось, что я внёс несколько бóльший вклад в итоговый продукт. Я поделился этой мыслью с Егором, и он пошёл на встречу, предложив мне назвать пропорцию. Я наглеть не стал, и предложил 60 на 40. И мы пожали руки. В виде реакции на сообщение в Телеграме. Вживую мы ни разу не виделись.
The End.
Рефлексия. Зачем я написал эту статью?
В порыве я сел за неё в тот же день, когда мы завершили сделку. Вопрос "зачем?" появился только когда я написал уже больше половины задуманного текста. Ответить на этот вопрос оказалось не так-то просто. Почему я изначально захотел превратить эту историю в статью? Да просто хотелось рассказать о своём опыте и о всяких аспектах реализации, которые показались мне интересными. Я из тех людей, кто после нескольких дней попыток решить какую-то проблему в коде и наконец её решит, — идёт писать целое полотно в личные сообщения кому-нибудь из друзей-технарей, с подробным рассказом о том, что я только что сделал. В чём же будет польза в таком рассказе для читателя — ответить, пожалуй, сможет только читатель. В случае с сообщениями друзьям — читателя, разумеется, никто и не спрашивает :)
Буду рад, если история послужит мотивацией для таких же, как я — молодых людей, пока не успевших позаниматься чем-то серьёзным, но грезящих мечтами создать что-то своё, и, в идеале, ещё и заработать на этом. Вот только вечная проблема: где взять оригинальную идею? Как показал опыт, ключевую роль может сыграть одно удачное знакомство с нужным человеком, а идея не обязательно должна быть ни оригинальной, ни как-либо напрямую связанной с областью твоих знаний.
И ещё одна истина, которая существовала в качестве предположения в моей голове, и теперь была подтверждена на практике:
Даже маленький проект может быть успешен.
Не стоит бояться того, что вы потратите время на разработку продукта, а им в итоге не воспользуется миллион человек. Скорее всего, так оно и будет. Но и гораздо меньшие числа способны дать приятный результат.
Спасибо, что дочитали!
Комментарии (24)
gmtd
19.08.2024 15:05+27До того, как появятся рекламодатели, мы решили разместить на сайте рекламные блоки Яндекса. За месяц мы заработали на них 470 рублей.
Только ради этого стоило прочесть всю статью
Boolkin
19.08.2024 15:05+2Мне понравилась статья, воодушевляющая!
Я меня тоже частенько возникает желание поделиться с миром своими наработками, теми знаниями на которые убивается много времени, чтобы как бы помочь другим людям, кто когда-нибудь столкнется с чем-то похожим)
agranom555
19.08.2024 15:05+6А домен официально продали? Или на вас так и висит? А то потом зальют туда скам какой и придут к владельцу домена органы
frods
19.08.2024 15:05+8Удивило, что у человека такой складный слог, хорошие знания в программировании, а работа в доставке.
vLaZoV Автор
19.08.2024 15:05+19На полную ставку студентом не получилось бы работать (по крайней мере на 1 и 2 курсе), а на третьем курсе просто не брали никуда почему-то. Наверное, не настолько я хорош, чтобы переплюнуть 500 кандидатов на вакансию. Ну а про фриланс я упоминал. Но, хорошая новость: по итогам упомянутой в статье летней практики меня взяли на работу в компанию где я её проходил :) Уже три недели отработал
Vasian_01
19.08.2024 15:05+1Автор, спасибо за статью, прикольно придумано, классно написано, удачи тебе на новом рабочем месте, ты крут! :)
Vladminajev
Что сейчас стало с проектом?
Где можно воспользоваться?
Как добавлял новые карточки?
vLaZoV Автор
Сейчас сайт доступен в том же виде, в котором был продан. Рекламировать не буду, но можно легко найти в поиске по ключевым словам. Карточки были захардкожены в отдельной переменной - объекте TS, поэтому просто добавлял их в файл и по новой билдил проект. До полноценной админки руки дойти не успели.