Как трое одноклассников стали партнерами Facebook — история Revealbot
Реклама может казаться неприятной, но это — денежное сердце ИТ-индустрии. Google, Facebook и другие гиганты живут именно за счет нее. Рекламироваться вынуждены даже блокировщики рекламы.
Тысячи стартапов, появляющихся каждый год, зависят от рекламы. Акционеры Facebook, Google и других вкладывают сотни тысяч венчурных инвестиций в маленькие продукты, и даже если те не выстрелят — как минимум половину денег потратят на рекламу в тех же Facebook и Google, обеспечивая безостановочный оборот денег.
И создать продукт, который станет новым успешным словом в рекламе — это как создать еще одну соцсеть в 2019. Тем удивительнее, что российский стартап Revealbot смог это сделать. CEO Михаил Трофимов, CTO Михаил Салосин и CCO Искандер Мусаев рассказали мне свою историю — как у них получилось.
Как появились и что создали
Мы учились в одном классе и знаем друг друга больше пятнадцати лет. Потом поступили в разные университеты, но продолжали общаться и пробовали делать свои проекты. Мы работали над ними «парт-тайм», и не были достаточно сфокусированы чтобы действительно выстрелить. А хотелось полностью погрузиться в собственный продукт и не отвлекаться ни на какую работу. Идеальный способ для этого — уехать всей командой в другую страну, в какой-нибудь акселератор, где есть подходящая атмосфера и интересные люди вокруг.
Какой продукт нам было не важно — главное создать что-то, что нужно людям. Однажды нам предложили попасть в акселератор в Нью-Йорке, и мы согласились. Там оказалась очень крутая атмосфера, невероятное количество технологических компаний и венчурных фондов.
Слева направо: CEO Михаил Трофимов, CTO Михаил Салосин, CCO Искандер Мусаев.
Но наш первый проект не взлетел, и мы целый месяц искали, куда двигаться дальше. Мы познакомились с русскими ребятами, которые уже добились хороших результатов на американском рынке. Они помогли нам создать первую версию нашего продукта.
Мы увидели большой и интересный рынок рекламы в Фейсбуке. Там много нерешенных проблем, и мы в них окунулись. В то время на подъеме была волна всяких ботов для мессенджеров. Мы подумали, что было бы неплохо сделать бота для Slack, который бы вытаскивал статистику и присылал полезные уведомления о том, что происходит с рекламой. Это был самый первый шаг к автоматизации рекламы.
В итоге мы сделали инструмент, который позволяет алгоритмизировать процессы управления рекламой. С его помощью можно описать все условия, в какой момент реклама будет останавливаться и запускаться, изменяться бюджет и так далее. Словом — описать алгоритм, чтобы все процессы происходили автоматически. Он бы позволил менеджерам больше сфокусироваться на креативном процессе, на придумывании объявлений, картинок и текстов, а не на ручном управлении, включении и выключении.
По форме — это веб-сервис, никак не связанный с Фейсбуком. Мы получаем от пользователя разрешение пользоваться его рекламой на фейсбуке, доступ к статистике, аккаунтам, возможность управления рекламой, изменение рекламы и прочее — стандартный алгоритм авторизации с запросом нужных нам разрешений. После этого мы получаем токен от пользователя и используем api фейсбука для того чтобы совершать все действия: получить список рекламы, получить статистику по этой рекламе, найти рекламу, которая соответствует правилу, соответствует условиям в правиле и совершить над этой рекламой указанные пользователем действия. С точки зрения Фейсбука, это отдельное приложение, которое использует его api.
Звучит довольно просто, и, конечно, есть аналоги — в том числе в самом рекламном кабинете фейсбука. Но у наших клиентов бывают очень сложные стратегии, с которыми не справляется стандартный кабинет. Нужны сложные логические условия, цепочки, различные комбинации метрик и действий которые мы совершаем на основе этих метрик, поэтому продукт получается довольно сложный. Требуется хорошая подготовка чтобы полностью освоить все его возможности.
Когда мы начинали, нам говорили, что за чат-бот никто не будет платить нормальные деньги. Это оказалось правдой. Получился скорее маркетинговый продукт, который позволил нам заявить о себе на рынке, привлечь первых пользователей и собрать от них фидбек. Затем нам говорили, что рынок автоматизации рекламы в Фейсбуке уже супер переполнен, и там некуда ступить. Много чего говорили. Это нормально. Каждый стартап встречается со скепсисом в духе «у вас ничего не взлетит, вы занимаетесь ерундой».
На первых порах все делалось очень быстро с неведомыми костылями, чтобы быстро захватить аудиторию и начать расти, пока не кончились инвестиции. Работали с Bootstrap и Ruby on Rails, но через два месяца взяли Vue.js. Приходилось не писать тесты. Это очень бьет по скорости дальнейшей разработки. Но после того, как мы поняли, что продукт нужен, взялись за качество. Чтобы ни в коем случае пользователи не теряли деньги из-за наших багов. Мы стали писать тесты постоянно, весь важный функционал покрыт тестами сверху донизу, и сейчас уже с ними намного проще работать, чем на начальном этапе.
Как разработано и устроено внутри
Сейчас наше приложение состоит из двух частей состоит. Первая — это фронтенд, с которым взаимодействуют пользователи, и бэкенд для него. Формы создания правил, формы создания репортов. Все это работает на Ruby on Rails и vue.js. Процессингом созданных правил, репортов и прочего занимаются небольшие сервисы на Go. Это нельзя назвать микро-сервисной архитектурой, скорее всего это просто обособленные сервисы.
Всей командой учились играть в гольф, в центре Михаил Салосин.
Один сервис занимается обработкой правил автоматизации, другой обработкой репортов, третий созданием реклам, которые пользователь создает через наш интерфейс. На начальном этапе все это писалось быстро, там были проблемы с производительностью. Изначально мы не старались оптимизировать под большое количество правил, поэтому в какой-то момент уперлись в то, что процессинг работает медленно, запросы в фейсбучный api делаются не оптимально, все тормозит.
У Фейсбука есть лимит на количество вызовов. Если они видят, что мы делаем слишком много вызовов, то начинают выдавать ошибки. Соответственно нужно все это очень хорошо оптимизировать. Крупные компании настраивают правила, которые могут применяться к десяткам тысяч сущностей, десять тысяч реклам, и все это нужно очень быстро обрабатывать. Go позволяет очень просто обрабатывать данные параллельно.
Но нужно было переписывать постепенно. Поскольку у нас не было тестов, это было достаточно проблематично. В плане стека мы ничего кардинально не меняли. Он позволяет быстро вводить новых разработчиков в курс дела, даже если они никогда не программировали на Go. Рынок разработчиков на нем не такой большой как у php или python. Но если человек умеет программировать, он может за неделю разобраться с самим языком, потому что он очень простой.
А на Ruby on rails много хороших разработчиков, и я бы не сказал, что люди хотят уйти с него. Многие даже фанатеют от того, какой Руби классный. Как можно писать все в одну строку, чтобы потом никто никогда ничего не понял, но все работало.
Очень хорошо развивается Vue.js. Когда нужно было выбирать между react и vue, я просто почитал документацию на react, и мне все показалось очень абстрактным. Как будто оно писалось для людей, которые уже в теме. А я не фронтенд разработчик, и всю жизнь писал только бекенд. Но у vue.js была хорошая документация. Можно сразу использовать принципы, которые там описаны, есть рекомендации и примеры, как строить приложение.
По сравнению с React на Vue получается очень быстрый старт. Когда нашим фронтендом стал заниматься человек, который до этого работал на react — у него не возникло никаких проблем с переходом на vue.js. Идеологически они тоже довольно близки, нет сильного различия, которое бы коренным образом меняло разработку.
Культура и процессы
Изначально у нас в компании устоялась довольно неформальная культура. Мы все общаемся между собой насколько просто, насколько это вообще возможно. Нам это нравится и хотелось сохранить такую культуру, но чтобы при этом не страдала бизнес составляющая. Я бы даже сказал, что нам во многом не хватает формализации процессов. Сейчас у нас все отлично с точки зрения обстановки и атмосферы, но могло быть лучше с точки зрения эффективности.
Например, мы очень долго пытались понять как нам организовать процесс QA. У нас был не очень удачный опыт с наймом двоих людей. В итоге, сейчас у нас нету QA вообще. Если фича маленькая, ее тестирует тот, кто запрашивал. Если фича большая фича, то мы набираем волонтеров, составляем список того, какие фичи и как надо протестировать, куда потыкать, что попробовать сломать то, что вроде как ломаться не должно.
Мы стараемся, чтобы каждая фича была покрыта и фронтендовыми и бекендовыми тестами. Если мы нашли странный юзкейс, когда пользователь что-то сломал, а мы это не предусмотрели — пытаемся починить и тоже покрыть тестами. Поскольку я знаю практически весь продукт целиком и знаю нюансы работы с фейсбуком, я стараюсь добавить к каждой задаче пометки для тестирования — 4–5 пунктов, о том что потенциально нужно учесть. Например, лимит на запросы каких-то полей в фейсбуке, или что одна форма используется в нескольких местах, и это обязательно надо учесть, если ее будут переделывать. Получается некая база знаний из вещей, которые скрыты и не всегда очевидны, для того чтобы потом вводить в курс дела новых разработчиков.
Сейчас большая часть нашей команды находится в Казани, разработчики в том числе. Еще два человека в Москве, один в Питере. Когда мы вернулись из Штатов, находились удаленно друг от друга, и это заложилось в ДНК компании. Мы выстраиваем все процессы так, чтобы можно было работать удаленно. Хотя, конечно, живое общение часто необходимо, и мы регулярно собираемся. Последний раз мы собирали всех в Казани, устраивали большой корпоратив — у нас было два дня совместной работы и потом два дня совместного отдыха. Планируем хотя бы раз в полгода собираться всей компанией где-нибудь в Европе.
Раскрутка и развитие продукта
Мы делали разные маркетинговые активности. Нас находили через поиск, через статьи, через ответы Quora. Они конвертировались в плательщиков, и мы поняли, что правила автоматизации — конвертируют лучше всего и на них стоит сфокусироваться.
Наверное, самый большой скачок новых клиентов и рост произошел после запуска на AppSumo. Это скидочная платформа для компаний, где за небольшие деньги можно получить безлимитный доступ на самый дешевый безлимитный план. Таким образом про нас узнало сразу много людей.
Мы попали в золотую середину между продвинутостью продукта и большой ценой. Есть продукты с очень сложной автоматизацией, но их разработчики берут 5% от рекламного бюджета. Если компания тратит 1 млн. долларов — получается 50 тыс. долларов в месяц за софт. Это не реально большие деньги, и не все готовы столько платить за программное обеспечение. Или же наоборот, есть компании у которых довольно небольшой прайсинг, но при этом они предоставляют очень простые возможности для автоматизации.
Мы же выбрали золотую середину. Про нас начали рассказывать различные гуру фейсбук рекламы. В фейсбуке есть группа «ad buyers», и основатель этой группы часто рассказывает про наш продукт на конференциях и своих мастер классах. Благодаря такому инфлюенс маркетингу мы и растем. Плюс мы его подогреваем сами — у нас появилась реферальная программа, по которой пользователи могут получать долю выручки от клиентов, которых они привели.
В этот же момент мы стали вести переговоры с Фейсбуком для того, чтобы стать его партнерами. Это сложно. Только две компании в России смогли это сделать. Наверное, нам повезло потому что мы изначально таргетировались на международный рынок, и у нас получилось привлечь компании с большими расходами на рекламу. А для Фейсбука самое главное, чтобы через приложение проходило как можно большее количество рекламных бюджетов. У нас получилось их привлечь, и возможно это послужило главной причиной, почему нас решили включить в программу партнеров.
Мы начали делать и другие платформы. Запустили автоматизацию для гугла, потому что это большой рынок — раза в полтора или два больше, чем у Фейсбука. Но там сложнее, потому что у гугла есть свой инструмент для написания скриптов и управления рекламой. Мы пока не знаем, насколько рынку нужен такой же инструмент.
Но расти можно и на другие платформы — снепчат, бинг, твиттер. Они меньше, зато там мало инструментов, соответственно их рынок можно захватить с большей долей.
Есть идеи и как сделать более продвинутый и сложный инструмент для Фейсбука.
Мы созванивались с одной американской компанией, которая занимается мобильными играми, и он нас спрашивал о многих фичах, которых у нас до сих пор нет. Основная проблема — распределить приоритеты, а не что бы еще сделать. Запросов и идей просто безумное количество.
Я еще не встречал технического стартапа, который бы сделал продукт, остановился на этом, и больше ничего не надо было разрабатывать. На таком постоянно меняющимся рынке это нам точно не грозит.
Сейчас в команде 15 человек, работаем из Казани, Москвы, Санкт Петербурга, Красноярска и Лос Анджелеса. Есть офисы в Москве и Казани, в остальных городах мы готовы оплачивать коворкинг, если не хочется постоянно работать из дома. Помогаем с релокацией, поддерживаем путешествия и работаем по гибкому графику.