Для чего нужен диплинк

Как я перестал бояться и полюбил диплинкинг: ликбез по «глубинному связыванию»

Гид от Шани Розенфельдера, руководитель контент-отдела в компании AppsFlyer.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Для чего мы используем ссылки при работе с мобильными устройствами? Для привлечения пользователей к какому-либо продукту, для проведения промокампаний в Facebook, перенаправления в магазин приложений с сайтов или из электронной почты — вариантов много.

Метод диплинкинга, deep linking (англ. «глубинное связывание») — важный элемент любой маркетинговой кампании, которая проводится на мобильных устройствах. С его помощью получается создать удобный процесс переходов по типу приложение-сайт-приложение на смартфоне и обеспечить наилучший пользовательский опыт, несмотря на фрагментированность экосистемы. Проще говоря,

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

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

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Всё, что нужно знать о рекламе в мобильных играх

Аналитический обзор Gameloft: рекламные форматы, портрет аудитории, надёжные бенчмарки.

Что такое глубинное связывание. Просто веб-ссылка, которая является URL-адресом

Любая веб-ссылка представляет собой цифровой адрес, имя или путь к файлу в интернете. А вот диплинк — это веб-ссылка или специальный URL-адрес, которые перенаправляют пользователей на какое-то место на сайте или в приложении.

Ключевое понятие

Диплинк — маршрут пользователя к конкретным местам на веб-сайте или нативному приложению по ссылке. А вот версия термина mobile deep link говорит о том, что эта ссылка будет содержать в себе всю необходимую информацию о входе в приложение и в конкретное место в нём, а не только сам запуск установленной программы.

Таким образом, диплинкинг связан с URL-адресами и URI (англ. «универсальный идентификатор ресурсов»), которые представляют собой строку символов, используемых для идентификации имени ресурса в сети.

Приложения, которые установлены на устройстве, могут напрямую открываться через уникальную зарегистрированную схему, называемую схема URI. Можно провести аналогию между реальной почтой и веб-адресом в сети — схема URI будет работать только в том случае, если её обслуживают инженеры-«почтальоны» и номер ящика зарегистрирован в базе адресов (в данном случае — в магазине приложений).

Принцип диплинкинга

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Если приложение установлено, то ссылка сразу же перебрасывает пользователя в нужное место в нём, а если нет — то сперва предлагает установить приложение.

Диплинк или не диплинк — вот в чём вопрос

Диплинк?Пример ссылкиОписание
Нетhttps://cossa.ruЭто ссылка, которая отправляет на главную страницу ресурса, не давая пользователю проникнуть глубже в содержание сайта.
Даhttps://cossa.ru/trendsА вот это уже диплинк, потому что она позволяет попасть пользователю не на основную страницу, а чуть глубже.
Да (как бы)cossa://Это схема URI для iOS, запускающая приложение Соssa. Люди часто называют это диплинк, но она будет таковой, если только перенаправит пользователя в приложение откуда-либо, но сама по себе она аналогична домену высшего уровня.
Даcossa://ip/trends/179466//Диплинк в чистом виде, которая отправляет на конкретную статью в приложении Cossa.

Устраняем путаницу с понятием универсальных ссылок

Что общего между диплинк и Apple Universal Links (для iOS) / Android App Links (для Android)?

Apple Universal Links (AUL) и Android App Links (AAL) на деле являются не совсем ссылками, а скорее механизмами, которые применяются к некоторым ссылкам, контролирующим процесс «переправки» пользователей в приложение.

В определённых сценариях они превращают обычные старые ссылки в диплинки внутри приложений. Инструменты от Apple и Google становятся стандартами, которые можно применять к любой ссылке, а разработчики должны применять их в своей работе.

Тем не менее эти ссылки имеют свои ограничения, о которых важно знать — особенно в отношении Apple Universal Links. Самым важным будет то, что AUL не перенаправляет пользователей, а служит системой, применяемой к ссылкам для открытия приложений, поэтому с её помощью будет сложно отследить клики.

Поскольку приложение открывается сразу с помощью Apple Universal Links, то перенаправление через веб-страницу для подсчёта кликов на сервере будет недоступно. Чтобы обойти это ограничение, команде программистов придётся настраивать сервер и вручную подсчитывать каждый клик в приложении.

Более простым решением будет использовать методы распределения и диплинкинг, который поддерживается Apple Universal Links и поэтому будет автоматически выполнять этот тип отслеживания за вас.

Более наглядно на диаграмме.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Метод распределения и диплинкинг: 1–2 нокаутирующих удара

Несмотря на то, что вы уже слышали о методе распределения и диплинкинге, важно подчеркнуть, что глубинное связывание — это одно из свойств распределения (атрибуции), а не наоборот. Эффективный маркетинг будет возможен, если только вы будете учитывать в своей работе следующие правила:

Для того чтобы использовать метод диплинкинга наиболее эффективно, можно создавать контекстные глубокие ссылки. Их особенность заключается в том, что информация об условиях «переправки» в приложение, последующая навигация и идентификатор устройства хранятся на стороне сервера.

Благодаря этому у пользователя всё выглядит бесшовно, аккуратно и происходит оперативно.

Создаём диплинки

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

Создавать диплинки можно как в «ручном» режиме, так и с помощью специализированных сайтов и сервисов. Например, AppsFlyer, Branch, Firebase, Yozio, Adjust.

Небольшой словарь

Deep linking — способ, благодаря которому юзер может перемещаться между приложениями в заранее определённые разделы.

Tech stack — технический стек, набор инструментов, которые используются при работе над проектами и включающие в себя языки программирования, фреймворки, системы управления базами данных, компиляторы и так далее.

URI sheme — cхема использования единообразных идентификаторов ресурсов.

С полным гидом вы можете познакомиться в англоязычной версии статьи.

Источник

Как настраивать диплинки: инструкция для Firebase, AppsFlyer и Facebook

На связи Алексей Поддубный, iOS-разработчик AGIMA. Я расскажу, как в iOS работают диплинки, и разберу тонкости настройки популярных сервисов: где создавать ссылки с динамическими параметрами, как настраивать конфигурацию приложений и что делать после настройки. Инструкции основаны на оригинальных туториалах, которые мы перевели и адаптировали.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

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

Что такое глубинные ссылки?

Человек листал ленту Facebook и увидел рекламу: доставка бургеров за 15 минут. Он кликает по ссылке и попадает в браузер на главную страницу. Рекламных предложений с «быстрыми» бургерами там нет, а без авторизации написать менеджеру нельзя. В результате страница закрывается, человек остается голодным и недовольным, а бизнес недополучил прибыль.

Чтобы дать пользователю желаемое «здесь и сейчас» нужна глубинная ссылка — Deep Link. Или Deferred Deep Linking — отложенная глубинная ссылка — если приложение не установлено. В отложенном варианте пользователь сначала попадает в App Store или Play Market для Android, а после установки — в нужный раздел приложения.

Как можно использовать диплинки

Интегрировать в рекламные кампании и привлекать новых пользователей.

Переносить пользователей из веба в мобайл: после установки приложения можно продолжить работу сразу с того места, на котором человек остановился.

Перенаправлять с электронной почты или SMS-сообщений в приложение на нужный раздел или товар.

Обмениваться данными между пользователями: люди могут делиться между собой приглашениями установить приложение или ссылками на конкретный товар. С помощью диплинков можно отследить поведение пользователей и оптимизировать будущие маркетинговые кампании.

Сервисы для интеграции диплинков

Есть много сервисов по внедрению диплинков. Мы чаще всего используем Firebase, AppsFlyer и Facebook поэтому будем сравнивать их. Справедливости ради, можно обойтись и без сторонних сервисов, но в этой статье такой подход мы рассматривать не будем.

Firebase

AppsFlyer (OneLink)

Facebook

Сервис содержит модуль для интеграции диплинков, Crashlytics, Аналитику, Push-уведомления и другие популярные модули

Мощный и легкий в использовании инструмент для настройки диплинков, отслеживания установок и аналитики

Механизм для настройки рекламных диплинков внутри продуктов Facebook

Для чего использовать

Для рекламных диплинков ведущих на веб- и мобильные устройства

Для рекламных диплинков, ведущих на веб- и мобильные устройства

Используется только в рекламных кампаниях Facebook и Instagram (сторис, лента)

+ Ссылки могут участвовать в поисковой индексации

+ Можно создать ссылку с динамическими параметрами, например когда каждому пользователю нужно выдать по ссылке с уникальным параметром

+Можно добавлять UTM-параметры

+ Работает на всех платформах

+ Гибкая настройка диплинков, можно указать множество дополнительных параметров

+ Есть OneLink API для создания персонализированных ссылок и автоматизации процесса

+ Возможно создавать ссылки с динамическими параметрами

+ Deferred Deeplink без проблем работает в последних версиях iOS

+ Позволяет интегрировать в рекламу Facebook

+ Удобно тестировать через тестовые устройства

— Настраивается только для мобильных приложений на базе iOS / Android

— Нет API для генерации ссылок

— Нет возможности настраивать рекламные кампании в консоли Firebase

— Тестирование возможно только через установку приложения Facebook Messenger

— Из-за изменений в iOS 14 отложенный переход по глубинной ссылке больше не поддерживается

Удобство ЛК для отслеживания аналитики

Можно отслеживать количество кликов по ссылке после установки приложения

Система отслеживания аналитики с множеством параметров: географическое распределение пользователей, источники трафика, установки по дням, переходы по ссылкам, показы, открытия приложения, показатели конверсии, неорганические и органические установки

Отображает и разделяет количество органических и неорганических установок. Показывает время последней установки на каждой из платформ iOS / Android

Дальше разберем, как интегрировать диплинки через описанные фреймворки.

#1: Настройка через Firebase

Создание ссылки в консоли Firebase

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

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

2. Нажмите на New Dynamic Link и перейдите к созданию диплинка.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Сформируйте вид короткой ссылки и нажмите Next.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

3. Укажите ссылку, которая будет открываться у пользователей веба и в мобильном приложении. Правая часть ссылки — та, из которой будем извлекать параметры.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

4. В следующем пункте укажите «Open the deep link in your iOS App» и выберите приложение из выпадающего списка.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

5. Если ссылка будет использоваться для обеих платформ, то укажите и Android-приложение.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

6. Укажите метатеги, UTM-метки или другие дополнительные параметры, нажмите «Сохранить».

Все, диплинк готов к дальнейшему использованию.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Конфигурация приложения

Откройте проект в Xcode и перейдите во вкладку Signing & Capabilities, допишите префикс applinks и добавьте ваш домен в Associated Domains.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Чтобы проверить правильность настройки, установите приложение на телефон и перейдите по ссылке в виде https://your_dynamic_links_domain/apple-app-site-association. В нашем случае — https://tr4d1.page.link/apple-app-site-association. После нажатия на ссылку вы должны попасть в приложение.

Для получения и обработки диплинков добавьте Firebase SDK.

1. Добавьте и установите Firebase SDK через cocoapods выполнив pod install.

2. Импортируйте модуль Firebase в AppDelegate

3. В методе application:didFinishLaunchingWithOptions: вызовите FirebaseApp.configure() для инициализации SDK.

4. Реализуйте метод для открытия диплинков если приложение уже установлено у пользователя.

Настройка Deferred Deep Link для случаев когда приложение не было раньше установлено:

Метод для обработки диплинка:

Опишем синглтон для хранения диплинка

Опишем базовый контроллер

Таким образом, когда пользователь переходит по короткой ссылке вида https://tr4d1.page.link/subscription, в обработчик попадает внутренняя ссылка https://deeplinkexample/subscription. После ее успешной обработки получается enumDeepLinkType.subscription, который можно использовать для открытия соответствующего раздела приложения.

#2: Настройка через AppsFlyer (Onelink)

Создание шаблона OneLink

1. Перейдите по ссылке https://hq1.appsflyer.com/onelink/setup?onelinkId=new создайте базовый шаблон и укажите его название.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

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

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

3. Из выпадающего списка выберите название приложения. Если ссылка будет использоваться для обеих платформ, то укажите и Android-приложение.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

4. Настройте поведение ссылки для случаев если приложение не установлено. Здесь по умолчанию открывается приложение в AppStore, и этот параметр изменять не нужно, — он уже сконфигурирован на открытие приложения в AppStore.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

5. Выберите действия, которые необходимо выполнить если приложение установлено. Здесь нужно изменить на запуск приложения с использованием Universal Links указав Team Id и Bundle Id приложения.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

6. Если на вебе нужно открывать другую ссылку, а не перенаправлять пользователей в магазины приложений, укажите веб-ссылку. После этого шага нажмите «Сохранить» и перейдите к созданию самого диплинка.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Создание ссылки OneLink

1. Сформируйте вид короткий ссылки

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

2. Укажите название кампании

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

3. Добавьте дополнительные параметры атрибуции. Они могут быть предустановленными, например af_ad (имя рекламы), af_channel (канал рекламы) или свои собственные. Все параметры будут доступны в приложении после переходу по ссылке и ее обработки.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

4. После добавления параметров сохраните ссылку. Диплинк готов к использованию. Ссылка доступна в коротком и длинном варианте.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Конфигурация приложения

Откройте проект в Xcode и перейдите во вкладку Signing & Capabilities, добавьте ваш домен в Associated Domains, дописав префикс applinks: по аналогии с конфигурацией Firebase.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Для получения и обработки диплинков необходимо добавить AppsFlyer SDK.

1. Добавьте и установите AppSlyer SDK через cocoapods выполнив pod install

2. Импортируйте модуль AppsFlyer в AppDelegate

В методе application:didFinishLaunchingWithOptions: установите appsFlyerDevKey и appleAppID

3. Реализуйте методы для извлечения ссылки и передачи ее в обработчик AppsFlyer

4. Также реализуйте методы SDK AppsFlyer onConversionDataSuccess и onAppOpenAttribution для обработки диплинков

Переходя по короткой ссылке вида https://tr4d1.onelink.me/Jvu2/subscription, в обработчик попадает развернутая ссылка https://tr4d1.onelink.me/Jvu2?pid=subscription&c=subscription&custom_value=1&af_ad=subscription. Все параметры этой ссылки находятся в словаре. Извлекая параметры, можно выполнить соответствующие действия в приложении.

Оригинал инструкции для AppsFlyer https://support.appsflyer.com/hc/en-us/articles/207032066-AppsFlyer-SDK-Integration-iOS#core-apis-get-conversion-data

#3: Настройка через Facebook

Конфигурация приложения

Откройте проект в Xcode и перейдите в Info.plist. Здесь необходимо добавить данные вашего приложения из Facebook.

Для получения и обработки диплинков необходимо добавить Facebook SDK.

1. Добавьте и установите Facebook SDK через cocoapods выполнив pod install.

2. Импортируйте модуль Facebook в AppDelegate.

3. В Facebook для любого вида диплинков используется всего один метод:

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

Откладка диплинков

Для тестирования и дебаггинга глубинных отложенных диплинков нужно удалить приложение с телефона. Перейти по диплинку и попасть в AppStore на страницу приложения, но не скачивать его. После чего установить приложение через Xcode на девайс, установить брейкпоинты на методах извлечения диплинков соответствующих SDK и произвести отладку.

Для отладки обычных отложенных диплинков, когда приложение уже установлено и выполняется просто переход по ссылке, нужно предварительно установить приложение через Xcode, но не запускать его. Это делается с помощью нажатия Option+Cmd+R. Откроется окно, в котором нужно поставить галочку Wait for the executable to be launched.

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

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Рекомендации

Детально тестируйте каждую ссылку на открытие нужного раздела или продукта в приложении перед отправкой новой версии приложения с AppStore. Это экономит время на более быстрый старт будущих рекламных кампаний.

При добавлении каждого SDK или новой ссылки проверьте поведение ссылки при установленном приложении и, если оно отсутствует.

Интегрируйте сразу несколько SKD в одно приложение, например Facebook, Firebase и AppsFlyer. Тогда нужно смотреть чтобы добавление нового, не сломало работоспособность предыдущего. В таком случае хорошо иметь один обработчик, который будет вызываться каждым SDK.

Источник

Deep Linking для мобильных приложений

На WWDC 2015 инженеры компании Apple заявили, что пересмотрели подход к Deep Linking, в прошлом году компания Google анонсировала App Index — как новый взгляд на глубинные ссылки, в начале 2015 года в мире мобильной разработки заговорили о контекстных Deep Links. Что это за инструмент и как с ним работать применительно к iOS — расскажу в этой статье.

Что это?

Один из способов увеличения конверсии при продвижении IT-продукта — уменьшение барьеров для достижения пользователями искомой цели. В мобильной разработке эта проблема еще актуальней. При использовании e-mail, push или sms-рассылок с информацией о промо-акциях упрощение доступа к функционалу приложения просто необходимо. В такой ситуации просто запуск приложения из внешнего источника — не решение, ведь промо-акция — это конкретное спец.предложение в конкретном разделе. Чтобы после запуска приложения пользователю не пришлось по нему бродить, искать и раздражаться, нужен дополнительный инструмент, предопределяющий навигацию. И такой инструмент есть.
Deep Linking (глубинное связывание) — технология, благодаря которой пользователь может перемещаться между приложениями в заранее определенные разделы.

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

Как это работает?

Представим, что пиццерия решила провести рекламную кампанию, в рамках которой предлагает всем желающим купить пиццу «Маргарита» с 50% скидкой. У пиццерии есть веб-сайт и мобильное приложение (последнее, конечно, предпочтительнее для работы с клиентом по маркетинговым соображениям, да и операции с банковской картой в приложении гораздо удобнее, чем в браузере). Компания делает sms-рассылку по своей клиентской базе с информацией о спец.предложении и дает ссылку на нужный раздел сайта. Если на смартфоне клиента установлено приложение пиццерии, то при переходе по ссылке сервер сайта отправит клиента сразу в нужный раздел аппа для оформления заказа (это и есть механизм Deep Linking), если приложения на смартфоне нет, клиенту предложат установить его в сторе и затем повторно перейти по ссылке в sms (или продолжить пользоваться веб-версией).

В концепции всемирного Web механизм Deep Linking был заложен в HTTP и URL, как возможность перемещения между любыми документами в сети, а не только корневыми страницами. В мобильных операционных системах данный механизм реализуется разными способами.

Как это сделать в iOS

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

Классическая реализация в iOS

Общепринятая реализация состоит из следующих этапов:

1. Перевод запроса в URL-схему, её исполнение с возможностью обработки отсутствия схемы.
2. Обработка схемы и навигация внутри приложения к заданному разделу/экрану.

URL-схема (URL scheme) — часть URL до ://, ответственная за схему взаимодействия с ресурсом, на который ведет сама ссылка, в большинстве случаев имеется ввиду протокол.

Создание, выполнение и обработка результата выполнения URL-схемы

Для правильной конвертации HTTP-запроса в URL-схему необходимо хранить на сервере таблицу соответствия и/или заданное правило перевода.

Способов правильно выполнить URL-схему и обработать результат существует несколько. Все зависит от того, из какой среды URL-схема выполняется. Если это происходит в iOS приложении, то существуют стандартные способы проверить, зарегистрирована ли URL-схема в системе:

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

Если через 500 мс не выполнится переход по схеме “myapp://» (ранее сгенерированная схема), то будет осуществлен переход на “fallback.html”.

Данный скрипт необходимо встроить в ресурс, ответственный за переход.
На GitHub есть несколько более или менее удачных реализаций подобных решений.

Обработка полученной URL-схемы и навигация внутри приложения

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

Для этого, в первую очередь, необходимо зарегистрировать собственную URL-схему, которая будет проассоциирована с приложением.
В настройках основного таргета проекта в разделе Info необходимо добавить в пункте URL Types —URL тип вашей схемы (рис 2.)

Для чего нужен диплинк. Смотреть фото Для чего нужен диплинк. Смотреть картинку Для чего нужен диплинк. Картинка про Для чего нужен диплинк. Фото Для чего нужен диплинк

В поле Identifier необходимо указать bundleID приложения, а в поле URL Schemes — схему, с которой будет связано ваше приложение. Дальше необходимо реализовать механизм навигации в приложении. Для этого надо обработать возможную передачу в приложение URL. Передать её можно многими способами, мы рассмотрим непосредственное исполнение схемы в системе.

Для того чтобы обработать запуск приложения через URL, надо в AppDelegate приложения в методе:

Здесь необходимо использовать параметр url для дальнейшей навигации. Навигация в приложении — выбор исключительно личный, но я рекомендовал бы использовать шаблон Router. Во-первых, это не нарушает принцип Single Responsibility, во-вторых, позволит инкапсулировать и в дальнейшем эту навигацию использовать из любого места. Роутер должен принимать в себя URL (как ключ) и выдавать ViewController или же эту навигацию осуществлять.

Сторонние решения

Из сторонних решений можно рассмотреть Mobile Deeplinking (AppURL, AppLinks, UrbanAirShip и т.д.), данные фреймворки являются полноценными решениями для реализации всех компонент технологии Deep Linking. Содержат отдельные библиотеки со своими обработчиками внешних URL и механизмом навигации в приложении. Соответственно, подобные решения требуют интеграции своих SDK в проект.

Новый взгляд на Deep Linking

Что нам предлагает Google в технологии глубокого связывания.

Совсем недавно Google стартовал новое направление App Indexing. Конечно, по большей части оно нацелено на Android-разработку и реализовано максимально удобно именно для нее, но и iOS осталась не забыта, правда в ограниченой beta-версии.

Итак:
Помимо работоспособного Deep Linking появилось еще и индексирование приложения в поисковой системе Google. В результате поиска во всемирной сети будут отображаться ссылки на разделы приложения.

Для реализации необходимо:

1. Зарегистрировать еще одну URL-схему в проекте в формате:
gsd-

где, “scheme” — ваша схема, зарегистрированная выше.
2. Подключить фреймворк GoogleAppIndexing (можно через CocoaPods)
3. В вышеуказанных методах вашего приложения обработать переход следующим образом:

Это поможет связать ваше приложение c Google App Indexing и создаст панель для возврата в поиск.
4. Необходимо настроить ваш сайт, на который совершается переход. Для этого в хедер сайта надо добавить:

Также можно дать доступ GoogleBot к вашему сайту для полноценного индексирования.

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

Как избежать подобных ситуаций?

И вновь Apple нас не разочаровывает — начиная с iOS 9 добавлена поддержка HTTP и HTTPS с прямым переходом в приложение.
В июне 2015 года на WWDC “парни из Купертино” рассказали нам о новом подходе к реализации такого удобного механизма промоутинга мобильного приложения.

Назвали они его Seamless Linking, что можно перевести как “бесшовные ссылки”. Данный механизм позволяет использовать те же самые веб URL, что и при переходе по разделам вашего сайта, кроме того, связь между приложением и веб ресурсом происходит через Bundle ID приложения, что дает этой связи уникальность, также вы можете указать те разделы сайта, которые представлены в вашем мобильном приложении, и Deep Linking будет работать только для них. Ну круто же.

Как это работает?

Ссылка обрабатывается в системе и из нее извлекается домен (или хост) и непосредственно путь, через который вы можете управлять навигацией в приложении:

https://n-pizza.com/margarita_new

n-pizza и является в данном случае доменом. Домен должен быть проассоциирован с приложением посредством специального файла, защищенного SSL-сертификатом, который хранится на сервере сайта. Называться он должен apple-app-site-association и содержать специальную JSON структуру.

Далее созданный JSON необходимо подписать тем сертификатом, который используется на вашем веб-ресурсе, либо сгенерировать новый (допустимо использовать WildCard сертификат) подписать им JSON и добавить его на сервер. Сертификат, которым подписывается приложение в данном случае не используется.

Важно понимать, что для каждого домена должен быть уникальный apple-app-site-association файл

В приложении необходимо установить ассоциации с доменами, которые вы поддерживаете в пункте “Associated Domains”, в настройках проекта. А универсальные ссылки необходимо обрабатывать в методе AppDelegate:

Где, тип активности для универсальных ссылок будет:

Декомпозировать URL можно будет с помощью нативных средств, таких как: класс или сторонних фреймворков, как Bolts от Facebook. Далее навигация должна происходить по уже известной схеме, изложенной выше.

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

Контекстные Deep Linking

Все, что написано выше, прекрасно работает и дает необходимый эффект проникновения в приложение, только если приложение уже установлено. Если задуматься, то реальная польза будет для крупных компаний, чьи приложения установлены у большинства пользователей смартфонов, а их не больше 40-50 штук.

Если же приложение не установлено, а таких большинство в AppStore или Google Play, то пользователь окажется на странице сайта, либо в магазине приложений, что тоже не очень хорошо, т.к. после установки и запуска приложения будет показан главный экран. Любой из сценариев равносилен не работающему Deep Linking.

Для достижения полного эффекта работы Deep Linking существуют контекстные глубокие ссылки. Суть их работы заключается в том, что условие перехода в приложение (параметры в URL-схеме), по которому строится дальнейшая навигация, и идентификатор устройства сохраняются на серверной стороне. После установки и запуска приложения, это условие запрашивается и строится навигация. Для пользователя все выглядит аккуратно и бесшовно.

Можно реализовать данный подход совместно с любым вышеуказанным методом. Или воспользоваться готовым решением, встроив SDK.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *