Интеграция приложения с Google Maps, или Как заинтересовать в своем продукте IТ-гиганта

В этой статье я поделюсь опытом, как нам удалось запартнериться с Google, как выполнили интеграцию нашего мобильного приложения с Google Maps с помощью протокола Protobuf, а также поделюсь впечатлениями о взаимодействии с сотрудниками IT-гиганта.

Что собой представляет Allset

Случалось ли вам когда-нибудь прийти в ресторан, а свободных столиков там нет? Или чтобы вы хотели быстро поесть, а официант и повар, как назло, делали все, будто в slow-mo? Именно такие вызовы жизни современного человека решает Allset. Через мобильное приложение вы можете заказать столик, выбрать еду и оплатить счет, а когда придете в ресторан, то вкусные блюда уже будут ожидать вас.

Основатели Allset (слева направо): Дмитрий Никулин, Анна Полищук, Павел Тирон и Стас Матвиенко

За четыре года существования мы привлекли более 10 млн долларов США инвестиций, и сейчас сервис работает в 11 крупнейших городах Америки с более чем 2500 заведений.

Как и положено настоящему стартапу, Allset начинался с небольшой группы основателей. Сейчас же в компании работает 65 человек: 53 в Киеве и 12 в Сан-Франциско. Команда постоянно увеличивается, ведь рыночный оборот ресторанного бизнеса в США составляет уже около 800 млрд долларов, а заказы через мобильные приложения выросли на 50% в 2018 году. Команды из киевского офиса периодически ездят в США, чтобы лучше понимать все нюансы работы продукта и тестировать его в реальных условиях.

Сотрудничество с Google

Google постоянно работает над совершенствованием своих карт и пытается интегрировать туда различные сервисы. Например, когда сегодня человек выбирает ресторан на карте, то получает не просто информацию о нем, включая отзывы, но и предложение Find a table, чтобы забронировать там столик через соответствующий сервис.

Мне сразу стало очевидно, что наш продукт идеально подходит в эту секцию, так человек сможет не просто найти ресторан на карте, но и заранее заказать столик с едой.

К тому же это был классический win-win, где мы выигрываем, потому что нашим клиентам будет понятно, какие из соседних ресторанов поддерживают Allset, а Google сможет предоставить большую вариативность сервисов пользователям Maps.

Как найти нужного человека

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

На самом деле, найти их несложно. Заходишь в LinkedIn, выставляешь необходимый фильтр в поиске и получаешь имена и контакты. Правда, не помешает определить, кто в структуре за что отвечает, ведь мы хотели предложить сотрудничество.

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

Я написал, что знаком с их Knowledge Panel, упомянул об Allset и удивился, почему нашего сервиса там нет. То есть я представил ситуацию так, что стало казаться, словно наше отсутствие в этой панели — это скорее упущение с их стороны. Это сработало, и почти сразу мне ответила Head of Product Partnership, сказав, что слышала о нас, и предложила встречу в офисе Google в Нью-Йорке.

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

Мы просто поговорили о том, что делаем, чем восхищаемся в работе. Она поделилась планами Google обогнать Yelp в сфере предоставления информации о бизнесах и интеграции сервисов для взаимодействия с ними и спросила, что я об этом думаю. Только после этого мы поговорили о самом Allset. Я рассказал о наших отличиях от конкурентов, и это заинтересовало представителя Google, чем — я поделюсь ниже.

Если вы планируете работать с крупной компанией вроде Google, то у меня для вас несколько советов:

  • Найдите правильного человека. Того, который отвечает за нужное вам направление. Лучший вариант — если это один человек, но это может быть и группа лиц.
  • Пробудите интерес. Определив адресата или адресатов, напишите на почту, объясните, почему обратились именно к нему и почему вас следует выслушать.
  • Помните о персональном подходе. На всех этапах старайтесь установить личный контакт. Не стоит сразу пытаться «продавать», а лучше немного пообщаться, пусть даже о хобби или любимой еде.

Уникальность импонирует Google

Если хотите заинтересовать компанию, подумайте, чем именно вы отличаетесь от конкурентов, что можете предложить нового. Google заинтересовалась нами, потому что таким способом могла увеличить количество услуг, которые получают пользователи их карт. Например, Allset, в отличие от конкурентов, работает с ресторанами быстрого питания и теми, которые размещены на фуд-кортах. Мы — единственное решение, дающее потребителю возможность гарантированно получить столик в заведениях такого типа.

В крупных городах США, особенно в Нью-Йорке, привычно в обеденное время увидеть людей, которые сидят в ресторанах, обедая из коробок to-go. Все потому, что они хотят быстро поесть, заказав и оплатив сразу, однако не хотят обедать на улице. Наш сервис дает им возможность заказать столик и еду заранее, оплатить, а потом прийти и быстро поесть, но не из коробок или из рук, а, как и положено в ресторане, с тарелок.

Google оценила это и решила не просто включить нас в перечень сервисов, а внести как отдельную фичу в свою Knowledge Panel. Большинство других сервисов попадают только в общий список.

После заинтересованности компании началась техническая реализация сотрудничества. Отмечу лишь, что с момента первой встречи и до завершения интеграции прошел всего один месяц.

Интеграция за 10 дней

Всю интеграцию наш экс-техдиректор Павел Тирон сделал сам (сейчас должность Head of Engineering занимает Тарас Березовский). Основная задача, которая стояла перед технической командой, — обеспечить поддержку системы обмена сообщениями в Google Maps. Там все реализовано через протокол Protobuf, который Google сама придумала и применяет достаточно часто. Самое сложное было скомпилировать данные.

Стандартная интеграция подразумевает работу через API: либо мы запрашиваем данные, либо отдаем их. Но у нас была нестандартная интеграция, построенная на обмене файлами с помощью SFTP. Мы сериализировали данные в файлы, размещали их на сервере Google, а они забирали эти файлы и обрабатывали. Нюанс в том, что у нас свои данные, а в Google свои, поэтому их нужно было скомпилировать.

Часть данных совпадала и передавалась автоматически, но приблизительно 20% нужно было проверять и обрабатывать вручную. Этим занимались менеджеры Google, ответственные за интеграцию.

Наш экс-техдиректор ранее уже работал с Protobuf, но в банковской сфере. Там этот протокол используют, чтобы уменьшить расходы на обмен данными между различными подразделениями, где происходят финансовые трансакции. Протокол не только хорошо сжимает данные, но и повышает безопасность, ведь передает уже зашифрованную информацию. Благодаря предыдущему опыту Павел взялся за эту работу, не привлекая помощников.

Особенности работы с Protobuf

Работа с Protobuf имеет как свои преимущества, так и предостережения:

  • Одно из главных преимуществ — простое взаимодействие языков и возможность добавлять поддержку новых языков с помощью плагинов. Protobuf реализован на разных языках, и это значительно упрощает совместимость с приложениями, написанными на разных языках в вашей архитектуре. Если вы добавляете новый сервис, например на Java или Go, либо работаете с бэкендом, написанным на Node, Clojure или Scala, вам нужно просто передать прототип файла генератору кода, написанному на целевом языке. Безопасность и совместимость между этими архитектурами гарантируется.
  • Protobuf обеспечит хорошую скорость работы.
  • Протокол помогает создать компактный бинарный формат, который будет занимать намного меньше места, чем XML и JSON. Но если ваше приложение написано на JavaScript или вы хотите, чтобы данные были удобочитаемыми или напрямую потреблялись веб-браузером, то в таких случаях JSON подойдет лучше. Protobuf не предназначен для чтения пользователем и представляет собой двоичный формат. Для десериализации данных необходим отдельный PROTO-файл, в котором определяется формат сообщения.
  • Protobuf является суперкомпактным форматом и поможет сделать многоязыковую сериализацию, то есть вы сможете обмениваться данными на любых операционных системах (Windows, Linux), и эта сериализация будет простой в использовании.

Протокол Protobuf достаточно сложный для первичной адаптации, но, так как интеграция с Google Maps работает только через него, это было главным аргументом в его пользу. Без предыдущего опыта реализация Protobuf займет много времени. В целом стоит задействовать его в специализированных интеграциях, как в нашем случае, где такое использование было обязательным условием. В других случаях лучше применять более универсальные платформы, такие как JSON или XML.

Коммуникация с Google

Она там построена очень эффективно. За один звонок нам объяснили, что необходимо сделать для успешной интеграции, и даже больше, рассказали о том, где у нас могут возникнуть трудности с Protobuf. Мы получили замечательную панель управления, где видели все наши данные, которые затем попадают в Google Maps, и могли удобно руководить процессами. Через пять дней техническая команда уже начала тестирование.

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

Все работало хорошо, однако возникла проблема. Один из ресторанов, с которым мы сотрудничали, закрылся. Соответственно, мы удалили его из нашей системы, но в Google Maps он все не исчезал. Мы сообщили техподдержке, которая молниеносно отреагировала и, пока этот вопрос решался, постоянно держала нас в курсе.

В целом это была самая легкая интеграция в нашей истории. Перед этим мы проводили интеграцию с POS-системами ресторанов, где и коммуникация была местами сложной, и сам процесс затягивался.

В чем особенности работы с IT-гигантом

Если говорить с практической точки зрения, то в Google очень важно попасть к «правильному человеку», потому что тогда ты сможешь очень быстро решить все свои вопросы. При этом у другого гиганта, с которым мы работали, Apple, есть своя структура и обязательные этапы, которые ты просто обязан пройти. Там все по правилам. Независимо от того, к кому ты попал, есть четкая иерархия, и ты должен пройти от менеджера к менеджеру. В Google же ты можешь избежать этой бюрократической цепочки, потому что каждый человек имеет гораздо большую свободу действий.

Если в Google видят перспективу, то пытаются оперативно сделать все, чтобы ею воспользоваться. Конкретные работники готовы проталкивать определенные вопросы и имеют больше свободы в принятии решений. Я не думаю, что решение о партнерстве с нами утверждали C-level или топы компании. Все было одобрено в рамках отдела, который отвечает за партнерства Google Maps.

С технической стороны в Google каждый человек четко знает, что он делает и за что отвечает. Они очень хорошо понимают экосистему, в которой работают. Речь здесь не только о технических специалистах, а буквально обо всех сотрудниках.

Напоследок

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

Материал создан в соавторстве с Павлом Тироном.

Похожие статьи:
Южнокорейская компания LG Electronics представила первые Android Wear часы LG Watch Urbane 2nd Editio с возможностью подключения к мобильным сетям. Теперь...
Це 13-й випуск проєкту «Що має знати Senior», і нарешті ми дійшли до Node.js. За даними DOU, кількість вакансій для фахівців з Node.js...
21 липня Національний банк України зафіксував новий офіційний валютний курс — 36,5 грн за долар, а також запровадив низку...
Організатори стартап-змагання Slush анулювали перемогу російської платформи для релокації IT-фахівців Immigram у міжнародному...
Компания Lenovo объявила о старте продаж в России смартфона Vibe X3 со стереофоническими динамиками и усовершенствованной...
Яндекс.Метрика