AndroidApp LinksОтложенные прямые ссылкиПрямые ссылкиПрямые ссылки AndroidРазвитие отраслиУниверсальные ссылки

Универсальные ссылки, схемы URI, ссылки приложений и прямые ссылки: в чем разница?

By Октябрь 30, 2017 No Comments

Прямые ссылки, универсальные ссылки, схемы URI/URL и ссылки приложений — за последние годы все эти механизмы в значительной степени изменили принцип связи с содержимым в мобильных приложениях. У многих разработчиков приложений нет четкого понимания ни того, какую из этих технологий следует использовать, ни того, каким образом лучше всего использовать каждую из этих технологий.

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

Что такое прямые ссылки?

Разберемся с терминологией. Прямые ссылки (их еще называют глубинными ссылками) — это просто условное обозначение. Мы используем прямые ссылки ежедневно. Более того, вы, скорее всего, перешли в эту публикацию в блоге именно по прямой ссылке. Этот термин означает просто «любую ссылку, ведущую непосредственно на какое-либо содержимое». Если вы щелкаете URL-адрес типа http://example.com/my-awesome-content-page, то вряд ли предполагаете, что в браузере откроется начальная страница сайта http://example.com/ , а оттуда вам придется самостоятельно перелопачивать весь сайт, чтобы снова найти страницу my-awesome-content-page. Другими словами, большинство ссылок в Интернете являются именно прямыми ссылками, но мы их так обычно не называем. Для нас это просто ссылки.

Прямые ссылки в мобильных приложениях работают несколько сложнее, но все равно мобильные прямые ссылки — самый удобный способ прямого доступа к содержимому. Универсальные ссылки, схемы URI и ссылки приложений — это различные технические стандарты для реализации мобильных прямых ссылок, позволяющие соединять пользователей напрямую с содержимым в приложениях. Если вы хотите пригласить друга на страницу в мобильном приложении, то по прямой ссылке ваш друг попадет сразу на нужную страницу. Без прямой ссылки другу придется самостоятельно отыскивать эту страницу, а зачастую вместо страницы может открыться магазин приложений (хотя приложение может быть уже установлено) или мобильный веб-сайт.

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

Вот подробное описание различных стандартов мобильных прямых ссылок, используемых сейчас.

Mobile Deep Link Standards

Примечание. Системы iOS и Android вместе контролируют 99,3 % рынка мобильных платформ. Поэтому другие платформы поддерживаются решениями Branch в крайне незначительной степени, а в этой публикации другие платформы и вовсе не упоминаются ради простоты.

Разумеется, ни один из описываемых здесь стандартов не поддерживается сразу всеми платформами и версиями ОС.

OS Version of Deep Linking

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

Facebook App Links

Давайте подробнее рассмотрим каждый из этих стандартов.

Что такое схемы URI? Чем они отличаются от URL-адресов?

Если вам вдруг захочется, чтобы в комнате, где собралось много программистов, началась драка, можно завести спор о том, что лучше использовать для отступов в исходном коде программ: пробелы или табуляцию. Также можно затронуть и тему разницы между URI и URL. Этой теме посвящены целые статьи, но в рамках этой публикации давайте считать, что все URL-адреса также являются универсальными кодами ресурсов, то есть URI. Для нас здесь важнее первая часть — схема. Вам уже знакомы схемы http:// и https://. Возможно, вы встречали схемы ftp:// или feed://. Все они указывают тип запрашиваемого содержимого, а ваше мобильное приложение может зарегистрировать свою собственную схему URI. Например, myapp://.

Если вы читаете материалы, посвященные прямым ссылкам, то, возможно, не раз встречали статьи, посвященные схемам URI. В истории разработки приложений схемы URI были основным способом реализации прямых ссылок в приложениях как в iOS, так и в Android.

Ограничения схем URI

К сожалению, у настраиваемых схем URI немало недостатков, наиболее заметным из которых является неспособность удобно справляться с двумя следующими ситуациями:

  1. Если приложение не установлено.
  2. Если схему myapp:// одновременно пытаются присвоить несколько приложений.

У схем URI нет встроенной поддержки резервных действий: если на устройстве пользователя не установлено приложение, то при переходе по ссылке просто появится страница ошибки. Кроме того, нет и централизованной системы регистрации, то есть при доступе к URI могут возникать конфликты (официальная позиция Apple состоит в том, что в настоящее время «процесса для решения таких конфликтов не существует»). Многие разработчики пытались создавать обходные решения со сложной переадресацией в JavaScript, чтобы справиться с первой проблемой, но все эти решения перестают работать после выпуска каждой следующей версии iOS. Вторая же проблема, по-видимому, не будет решена никогда.

Из-за этих ограничений для iOS и Android было разработано второе поколение стандарта прямых ссылок: универсальные ссылки (в iOS)/ссылки приложений (в Android). После этого в Apple заблокировали переадресацию в JavaScript для схем URI, поэтому универсальные ссылки остались основным механизмом прямых ссылок в iOS. Ссылки приложений получили менее широкое распространение.

В чем разница между универсальными ссылками и ссылками приложений?

В отличие от схем URI, описывающих уникальный для вашего приложения «тип» содержимого, универсальные ссылки и ссылки приложений — это стандартные веб-ссылки (https://example.com), указывающие одновременно на веб-страницу и на конкретное содержимое в приложении. При переходе по такой ссылке устройство проверяет, зарегистрировано ли для этого домена какое-либо установленное приложение. Если да, то приложение сразу запускается даже без загрузки веб-страницы. Если нет, то в веб-браузер по умолчанию загружается URL-адрес веб-страницы (который может быть простой переадресацией в App Store или Play Store).

Если вы хоть немного занимаетесь сбором статистики и аналитикой, то, возможно, уже заметили проблему: поскольку «приложение запускается немедленно», традиционные методы отслеживания, предназначенные для маркетинга на веб-страницах и в электронной почте и работающие на основе цепочек переадресации, здесь не работают. Эта проблема может быть важной, причем в стандартах универсальных ссылок и ссылок приложений она сейчас никак не решена. Единственная доступная возможность — регистрация переходов задним числом после открытия приложения.

Универсальные ссылки являются стандартным решением в iOS в настоящее время, но не без недостатков

Универсальные ссылки не являются действительно «универсальными». На крупных платформах, таких как Facebook и Twitter, универсальные ссылки вообще не поддерживаются. Кнопка в правом верхнем углу выглядит безобидно, но «все уничтожает»: посетители могут очень просто и удобно отключить универсальные ссылки, даже не подозревая об этом. При этом вряд ли возможно, что обычные пользователи будут знать, как вернуть все обратно, скорее, они будут считать, что это ваше приложение не работает.

Yelp Screenshot

Хуже того, при развертывании универсальных ссылок не обошлось без ошибок, а тестировать их сложно, поскольку корпорация Apple даже не предоставила средств их проверки.

Схемы URL/URI устарели?

По мнению корпорации Apple, да. Начиная с iOS 9.2 корпорация Apple официально не поддерживает схемы URI для прямых ссылок, а разработчики были вынуждены применить универсальные ссылки для получения равноценной функциональности в iOS.

На самом деле смена поколений еще не произошла. Универсальные ссылки — отличное решение, когда они работают, но существует еще немало случаев, когда требуется использовать схемы URI в качестве резервного решения. Если полагаться только на универсальные ссылки, то вы рискуете упустить немало трафика. Сегментация экосистемы Android слишком сильна, чтобы можно было хоть сколько-нибудь всерьез задумываться о возможности отказа от схем URI в обозримом будущем.

Отложенные прямые ссылки

Еще одно важное понятие, которое мы пока оставили за кадром, — отложенные прямые ссылки. Обычные прямые ссылки, реализованные с помощью схем URI, универсальных ссылок или ссылок приложений, работают лишь в случае, если приложение уже установлено на устройстве. Если приложения нет, то обычные прямые ссылки могут разве что отправить пользователя в App Store или Play Store. А что, если нужно отправить пользователя к нужному содержимому в приложении, даже если сначала необходимо будет установить это приложение? Это возможно с помощью отложенных прямых ссылок: в течение всего процесса установки сохраняется контекст определенного содержимого, а после установки пользователь сразу попадает в нужное место.

Другие стандарты прямых ссылок

Вы могли сталкиваться еще с двумя менее распространенными стандартами прямых ссылок: намерениями Chrome и ссылками приложений Facebook.

Намерения Chrome

Команда Chrome создала собственное расширение для схем URI, чтобы обеспечить резервные действия на случай, если приложение не установлено. Это вполне изящное решение, но намерения Chrome поддерживаются только в браузере Chrome для Android и еще в нескольких сторонних приложениях. Из-за этого сложность реализации прямых ссылок лишь возросла, поскольку теперь приходится поддерживать и стандартные технологии, и узконаправленное решение для Chrome.

Ссылки приложений в Facebook

Корпорация Facebook создала ссылки приложений App Links в 2014 г. в качестве открытого стандарта, призванного преодолеть ограничения прямых ссылок, свойственные схемам URI. Стандарт App Links включает два основных компонента.

  1. Набор метатегов, добавляемых к адресу веб-страницы в стандартной ссылке http://. Теги указывают расположение схемы URI соответствующего содержимого внутри приложения, а также определяют поведение в случае, если приложение не установлено.
  2. Система переадресации, используемая внутри приложений для поддержки при открытии ссылок. Эта система перед открытием каждого URL-адреса проверяет наличие в нем тегов App Links, а затем либо запускает соответствующее приложение, либо выполняет предписанные резервные действия.
Facebook App Links

http://applinks.org/documentation/

У стандарта App Links есть серьезное ограничение: требуется, чтобы его поддерживали и исходные приложения (откуда указывает ссылка), и приложения назначения (на содержимое которых указывает ссылка). Компонент метатегов получил достаточно широкое распространение, но система переадресации была реализована лишь в приложениях Facebook и Messenger. При этом корпорация Facebook предпочитает не выпускать пользователей за пределы своей платформы и удалила систему переадресации отовсюду, кроме основного приложения для Android. Поскольку приложение Facebook также блокирует универсальные ссылки iOS, не существует надежного способа открывать сторонние приложения из Facebook и Messenger в iOS. Компания Branch выпустила решение, позволяющее обойти эти ограничения.

Универсальные ссылки, схемы URI и прямые ссылки в 2017 г.

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

Major Non-Browser Mobile Channels

Использовать прямые ссылки нужно, а для этого нужно применять все возможные стандарты. Отложенные прямые ссылки Branch работают на основе схем URI, универсальных ссылок, ссылок приложений, намерений Chrome и ссылок приложений Facebook. Мы позаботились сразу обо всем, чтобы вам не потребовалось этим заниматься.

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

shares