Предположим, вы хотите создать свою версию Google Maps. Для этого пришлось бы отследить каждую дорогу, здание, город и побережье на планете. Не исключено, что понадобился бы парк автомобилей, чтобы ездить по всему миру, фотографировать и проводить вычисления, как это делала Google для Google Maps. Кроме того, нужно будет встроить функции панорамирования, масштабирования и алгоритмы для поиска направления движения между двумя точками.
Мягко говоря, это очень сложно. Даже Apple Maps критиковали за то, что их стандарт качества не дотягивает до уровня Google Maps.
Поэтому когда таким приложениям, как Uber, Pokemon Go и Yelp, нужно добавить карту, показывающую, где находятся доступные автомобили, помочь игрокам, найти диких покемонов или показать ближайшие рестораны, они, скорее всего, не захотят тратить миллиарды долларов и тысячи часов на создание новой карты.
Если вы когда-либо пользовались этими приложениями, то наверняка знаете, как они решают эту проблему: встраивают карты Google Maps в свое приложение. Ищете ресторан? Yelp закрепляет отметку на карте Google в зависимости от вашего местоположения. Хотите доехать до центра на Uber? Приложение строит маршрут на карте Google и рассчитывает примерное время, которое понадобится на поездку.
Uber использует интерфейс Google Maps, чтобы сгенерировать карту и предсказать время в пути. Источник: Uber on Android
Google позволяет добавить небольшой фрагмент кода в приложение, чтобы создать Google Maps. Она также предоставляет другие фрагменты кода, позволяющие рисовать на картах, вычислять направления движения между точками и даже определять ограничение скорости для конкретной дороги. Все это дешево или даже бесплатно. Эти средства – большая победа для разработчиков; они могут использовать технологию, на совершенствование которой у Google ушли годы, дополнив ее всего несколькими строчками кода. Не нужно изобретать велосипед!
Фрагменты кода, которые позволяют заимствовать функционал или данные другого приложения, называются API-интерфейсами или программным интерфейсом приложения. Если коротко, API позволяет приложениям взаимодействовать друг с другом. Давайте рассмотрим три основных типа API.
Первый тип API, называемый feature API, позволяет одному приложению обратиться к другому, специализированному, для решения конкретной задачи, например для определения направления движения, отправки текстовых сообщений или перевода предложений. Это как вызвать сантехника или плотника, а не пытаться устранить засор или починить шкаф самостоятельно. Приложения используют все типы feature API. Программистам утомительно писать код, который будет отправлять электронные письма или текстовые сообщения, поэтому, если приложениям вроде Venmo нужно это сделать, они просто используют специализированный API. Обработка платежей по кредитным картам – достаточно сложный процесс, поэтому Uber передал эту задачу на аутсортсинг API-интерфейсу Braintree PayPal, который позволяет любому использовать алгоритм обработки кредитных карт PayPal, задействуя всего несколько строчек кода.
Второй тип API, называемый data API, позволяет одному приложению «попросить» другое передать какую-нибудь интересную информацию, например результаты спортивных соревнований, ретвиты или погоду на сегодня. Это похоже на звонок в турфирму, чтобы узнать, какие музеи и рестораны они рекомендуют посетить. ESPN предлагает API-интерфейс, позволяющий получать списки каждой спортивной команды Высшей лиги и счет каждой игры. Приложение метро Нью-Йорка позволяет отслеживать местонахождение поезда и прогнозировать время прибытия следующего на станцию. Существует даже API для получения случайных изображений котиков.
Последний вид API, hardware API, предоставляет разработчикам доступ к функциям самого устройства. Instagram устанавливает API-интерфейс в камеру телефона для увеличения, фокусировки и фотосъемки. Google Maps сами используют API геолокации телефона, чтобы выяснить, где находится пользователь. В телефоне даже есть такие датчики, как акселерометры и гироскопы, которые используются в фитнес-приложениях и определяют направление и скорость перемещения.
Стоит отметить, что API не идеальны. Их использование не только упрощает жизнь разработчикам приложений, но и делает приложения зависимыми от API. Если API для отправки электронной почты не работает, все приложения, использующие его, не смогут отправить электронные письма.
Если Google решит запустить собственный каршеринг, то теоретически она может ограничить доступ Uber к API Google Maps, чтобы снизить конкуренцию. Если бы Uber создал собственные карты, они не зависели бы от Google.
Несмотря на потенциальные риски для бизнеса, использовать API специализированной компании проще, надежнее и зачастую дешевле, чем пытаться разработать его самостоятельно.
Все это возвращает нас к вопросу: что общего между технологиями Uber, Yelp и Pokemon Go? Все они используют API, а именно API Google Maps, чтобы не изобретать велосипед. API-интерфейсы действительно являются основной частью практически любого приложения.
Если вы когда-либо использовали приложение для знакомств Tinder, то знаете, что прежде чем создать профиль, можно залогиниться через аккаунт на Facebook. При входе в аккаунт в Tinder загружается аватар, возраст, список друзей и страницы Facebook, которые вы лайкнули. Как вы уже, наверное, догадались, это делается через API, предлагаемый Facebook. С помощью технологии единого входа (SSO) API любое приложение позволяет пользователям создавать учетные записи, привязывая профили Facebook.
Зачем Tinder использует API? С одной стороны, это гарантирует отсутствие пустых профилей (которые никто не захочет свайпнуть), поскольку основная информация всегда импортируется из Facebook. Кроме того, требование входа через него предотвращает появление ботов и фейковых аккаунтов – Facebook уже проделала много работы для того, чтобы свернуть их деятельность. Также это помогает Tinder находить лучшие совпадения: собирая список друзей, он может показать, сколько у пользователя общих друзей с каждым потенциальным партнером, и это чувство связи, возможно, подталкивает людей к тому, чтобы свайпнуть еще. Наконец, получив доступ к профилям Facebook всех своих пользователей, Tinder может лучше понять их базовый контингент, например, возраст, местожительство или интересы. Такая информация помогает Tinder изменить дизайн приложения или стратегию рекламы.
Для пользователей вход через Facebook тоже удобен. Создавать профиль в Tinder намного быстрее, если большая часть основной информации и фотографий уже импортирована из Facebook. Просмотр более полных профилей и наличие меньшего количества ботов также повышают удобство пользования.
Tinder на Android. Обратите внимание, что вход в систему осуществляется через Facebook
Кроме того, вход через Facebook означает, что не придется запоминать еще один логин и пароль.
Почему Facebook предлагает API, позволяющий людям залогиниться на других сайтах, используя свои учетные данные Facebook? При использовании технологии единого входа (SSO) API, которую предлагает сервис для регистрации в Tinder, Facebook понимает, что вы являетесь пользователем Tinder. Она получает аналогичные элементы данных, когда вы хотите залогиниться на других сайтах через него. В дальнейшем Facebook может использовать эти данные для более эффективной таргетированной рекламы, например, показывая пользователям Tinder больше объявлений о свиданиях.
В 2018 году Tinder объявила, что пользователи смогут заходить в свой аккаунт по номеру мобильного телефона вместо учетной записи Facebook. Зачем?
Если коротко – конкуренция. В 2018 году Facebook анонсировала новый сервис для знакомств, который в значительной степени рассматривался как конкурент Tinder, при этом цена на акции основной компании-учредителя Tinder рухнула на 20 %. Tinder, вероятно, побоялась, что Facebook перекроет доступ к API, и хотела создать новый способ входа в систему без привязки к нему.
Как показывает эта история, API-интерфейсы – отличный способ для компаний получить данные и обеспечить частое использование. Они помогают приложениям сэкономить время на разработку и обеспечить более качественный функционал, но такое предложение не исключает риски.
Взгляните на эти скриншоты одного и того же фрагмента Washington Post. Заметили разницу?
Разные версии одного и того же заголовка в Washington Post. Источник: The Washington Post
Заголовки различаются! В 2016 году газета Washington Post предоставила авторам возможность указывать два разных заголовка одной статьи. Но зачем?
На самом деле этот эксперимент проводился для того, чтобы максимально увеличить количество кликов на статьи. В ходе него одной группе, скажем, половине случайно выбранных пользователей, автоматически показывается одна версия заголовка, остальным предлагается другая. Через некоторое время после начала эксперимента разработчики получают конкретную статистику или показатели, например количество кликов на заголовок. Они решают, какая версия лучше, и представляют ту, которая набрала большее количество кликов. Это простой, но действенный способ повысить эффективность работы приложения. Например, на первую версию вышеуказанного заголовка кликнули 3,3 %, а на вторую – 3,9 %. Изменение всего нескольких слов дало прирост в 18 %!
Эта методика называется A/B-тестирование – отличный способ повысить эффективность работы онлайн-продукта с помощью компьютера. Методика получила такое название потому, что сравнивается как минимум два варианта – A и B.
A/B-тестирование показывает как минимум два варианта одного и того же элемента (A и B), сравнивая соответствующие значения, чтобы выяснить, какой вариант показать всем пользователям. В данном случае – вариант А, с более высоким коэффициентом выполнения требуемых действий пользователей (или «кликов»). Источник: VWO
Не знаете, какой слоган заставит людей покупать? Вместо бесконечных дебатов просто проведите A/B-тестирование! Не знаете, какая кнопка «зарегистрироваться» будет более популярна среди пользователей – зеленая или красная? Проведите тестирование! (К слову, в ходе одного эксперимента на красную кнопку кликнули на 34 % больше респондентов.) Не знаете, какой аватар в Tinder больше свайпнут? Сервис позволяет запустить A/B-тестирование, чтобы выяснить, какие фотографии, если они есть в основных изображениях профиля, помогут получить больше свайпов вправо.
Вернемся к вопросу: почему же в каждой статье Washington Post предлагается две версии каждого заголовка? Это часть системы A/B-тестирования, которая называется Bandito. Она тестирует разные версии заголовка, чтобы понять, какой из них более кликабельный, чтобы потом чаще его показывать.
A/B-тестирование очень широко используется новостными агентствами. С помощью него BuzzFeed ищет самые кликабельные заголовки. Upworthy, конкурент BuzzFeed, обычно проверяет до 25 версий одного заголовка, стараясь найти идеальный вариант. A/B-тестирование играет очень важную роль: согласно Upworthy, разница между хорошим и идеальным заголовком – тысяча против миллиона просмотров.
Многие другие приложения и веб-сайты также проводят A/B-тестирование. Например, Facebook постоянно внедряет новые функции для «ограниченной группы испытуемых». Snapchat позволяет рекламодателям проводить A/B-тестирование своей рекламы, чтобы выбрать наиболее популярную. Даже обычные магазины могут проводить такое тестирование: на основании его результатов магазин может поменять фоновую музыку в торговом зале, чтобы покупатель максимально увеличил свои расходы.
Есть один важный момент, который необходимо учитывать при статистическом тестировании: нужно проверить, полученный результат реален или это просто случайность. Допустим, если подбросить монетку шесть раз и пять из них выпадет орел. В этом случае нельзя однозначно утверждать, что монетка действительно перевешивает в сторону орла – это может быть просто случайность. Но если подбросить монетку шестьсот раз и пятьсот из них выпадет орел, это уже о чем-то говорит.
О проекте
О подписке