January 29

Universal Link и другие ссылки в приложения

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

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

  • Конкретный товар в приложении ebay://item/view?id=360703170135
  • Раздел с обувью https://www.wildberries.ru/catalog/obuv
  • Координаты geo:55.79378663446035,49.11699501723111
  • Ссылка на почту mailto:[email protected]

Любая из ссылок выше может вести в приложение, а значит являться диплинком. Некоторые из них стандартизованы (https, geo, mailto), некоторые - нет (ebay).

Одну и ту же ссылку (geo, mailto) могут уметь обрабатывать несколько приложений. В этом случае для выбора пользователю показывается disambiguation dialog: “В каком приложении открыть ссылку?”, “А вы точно уверены?”, “А всегда открывать тут или только сейчас?”.

Ссылка может быть с фоллбеком на Web (http, https). Такие ссылки называются Web Link. Преимущество у Web Link очевидно - в случае если приложение не установлено, всегда есть фоллбек на браузер.

Чтобы избежать показа disambiguation dialog, необходимо верифицировать домен и ассоциировать его с конкретным приложением. После верификации ссылка остается такой же, но теперь можно называть ее Android App Link. Примерно так же оно работает для iOS, только называется Universal Link.

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

Что делать если приложение не установлено? Очевидно, на устройстве откроется браузер и у нас будет два варианта.

  1. Оставить пользователя в браузере. Чаще всего мы этого не хотим, нам нужно приложение, там выше конверсионность.
  2. Сразу же, либо по кнопке (А ВОТ СМОТРИ, У НАС ЕЩЕ ПРИЛОЖЕНИЕ ЕСТЬ) перенаправить пользователя в стор за приложением. А когда приложение будет установлено - все равно показать пользователю ту страницу, которую он хотел изначально.

Второе называется Deferred Deep Link. Работает это в основном на основе фингерпринта. На HTML странице JS библиотека (чаще всего AppsFlyer или branch.io) делает вызов сервера. Сервер запоминает модель устройства, IP адрес и время. После этого библиотека редиректит пользователя в стор. Когда пользователь скачивает приложение, SDK внутри приложения идентифицируют этого пользователя по фингерпринту и перенаправляет на нужную страницу.

Итого, еще раз зафиксируем базовые термины:

  • Deep link - ссылка, которая ведет приложение. Она также может содержать в себе параметры, которые приложение обработает.
  • Universal Link - разновидность Deep Link с протоколом https и реальным доменом. Причем домен ассоциирован с приложением (отдельно Apple и Google). Android App Link тоже будем называть Universal Link для удобства.
  • Deferred Deep Link - разновидность Universal Link, которая умеет дожидаться установки приложения и передавать в него параметры.

Источники - хорошая статья и вот еще одна