Как я перестал бояться и полюбил диплинкинг: ликбез по «глубинному связыванию»
Гид от Шани Розенфельдера, руководитель контент-отдела в компании AppsFlyer.
Для чего мы используем ссылки при работе с мобильными устройствами? Для привлечения пользователей к какому-либо продукту, для проведения промокампаний в Facebook, перенаправления в магазин приложений с сайтов или из электронной почты — вариантов много.
Метод диплинкинга, deep linking (англ. «глубинное связывание») — важный элемент любой маркетинговой кампании, которая проводится на мобильных устройствах. С его помощью получается создать удобный процесс переходов по типу приложение-сайт-приложение на смартфоне и обеспечить наилучший пользовательский опыт, несмотря на фрагментированность экосистемы. Проще говоря,
диплинкинг позволяет уменьшить количество барьеров на пути юзера к конечной цели, которую хочет ему дать разработчик.
Но не все понимают, как правильно использовать его в работе, а типы ссылок часто из-за этого путаются, затрудняя маршрутизацию между «точками» A и В в мобильном устройстве. Поэтому мы решили разобраться, что к чему: от понятий «универсальные ссылки» до разницы между методами «привязки» и «приписывания».
Пять проблем, с которыми сталкиваются руководители во время найма, и как их решать
Читайте колонку Марины Хадиной, директора по развитию Talantix — облачной CRM-системы для найма от hh.ru.
Что такое глубинное связывание. Просто веб-ссылка, которая является 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хема использования единообразных идентификаторов ресурсов.
С полным гидом вы можете познакомиться в англоязычной версии статьи.
Что такое диплинк и как это создать
Владельцы коммерческих аккаунтов в соцсетях часто сталкиваются с потерей трафика. Это связано с тем, что ссылка на их профиль открывается в браузере. И чтобы пользователь смог подписаться на страницу или просмотреть пост, ему необходимо заново войти в аккаунт или скопировать логин из ссылки, вставить его в поиск по приложению — и только тогда попасть на нужную страницу.
За счет большого количества лишних действий конверсия ожидаемо снижается. Чтобы избежать подобных ситуаций, и используют диплинк. В этой статье мы подробно разберем, что такое deeplink и как с ним работать.
Содержание
Что такое диплинк
Deeplink, или диплинк — это гиперссылка, которая перенаправляет пользователя в конкретный раздел приложения или сайта. Эта функция сокращает количество промежуточных действий пользователя и помогает ему попасть на нужную страницу за минимальное количество кликов.
Зачем нужны диплинки
Глубинные ссылки — а именно так deeplink можно перевести с английского — актуальны для мобильного трафика. Они позволяют клиентам быстро перейти в нужное приложение, чтобы ознакомиться с предложением или изучить статью на вашей странице.
Очень часто SMM специалисты, таргетологи и маркетологи допускают одну и ту же ошибку — в рекламных объявлениях добавляют простые ссылки, да еще и без UTM меток. Получается, что они сами лишают себя возможности провести анализ по каналам переходов и — как следствие — не знают свою целевую аудиторию.
При переходе по обычной ссылке пользователю приходится совершать ряд бессмысленных действий, чтобы посмотреть товар в Инстаграме или подписаться на канал в мессенджере Телеграм. Таком образом, компания получает отказы, теряет трафик и сливает бюджет рекламной кампании.
Обратите внимание! Для каждого устройства нужно создавать в объявлениях удобные ссылки, по которым клиент сможет быстро переключаться между каналами и понимать, какие действия он должен совершить дальше.
Как работают диплинки
Принцип работы deeplink:
Если приложение не установлено на смартфоне, переход будет осуществлен в Google Play или App Store — в зависимости от того, на какой операционной системе работает ваш мобильный телефон: Android либо iOS.
Схема работы глубинной ссылки:

Виды deeplink
Как создать диплинк
А далее разберемся, в каких программах можно создавать deeplink.
Примечание! Если вы хотите самостоятельно заниматься глубинными ссылками, изучите гид для разработчиков.
Конструктор мультиссылок от SendPulse
Конструктор мультиссылок от SendPulse — инструмент для работы с несколькими ссылками. Позволяет настроить мобильный лендинг, мультиссылку для соцсетей или даже интернет-магазин.
Ниже приведен скриншот редактора мультиссылки — на нем слева расположены инструменты, а справа — настройки параметров. Вы можете добавить любое количество ссылок на соцсети и разделы сайта, чтобы пользователь мог сразу же перейти на нужные страницы и найти то, что его интересует. А также можно подключить форму подписки на чат-ботов в мессенджерах и на email и SMS рассылку.

А здесь показан скриншот с настройками сайта — общие параметры доменного имени и добавление фавикона, SEO-оптимизация и раздел с аналитикой.

Особенности:
Плюсы:
Минусы:
Deeplinkr
Deeplinkr — популярный сервис для работы с глубокими ссылками. В бесплатной версии у вас есть возможность создать до 1000 диплинков. Платный доступ позволяет устанавливать свой URL и устанавливать количество кликов.
Ниже показан личный кабинет сервиса, в котором можно удобно управлять ссылками и отслеживать статистику.

Особенности:
Плюсы:
Минусы:
Простой, но мощный конструктор лендингов
Создайте мобильный лендинг, интернет-магазин или мультиссылку для Instagram и продвигайте ее через чат-боты в мессенджерах, email и SMS — все это на одной платформе!
ВMBE deeplink
ВMBE deeplink — генератор глубинных ссылок. Пробная версия позволяет совершить до 500 кликов по гиперссылке. Далее необходимо приобрести подписку.
На скриншоте ниже показан личный кабинет сервиса и пример того, как могут выглядеть глубинные ссылки.

Особенности:
Плюсы:
Минусы:
Jusl — сервис, позволяющий быстро и без регистрации создать глубинную ссылку. Если вы хотите отслеживать статистику — подключите бота в Телеграм, оплатите подписку и работайте с аналитикой.
Ниже скриншот страницы сервиса — пример, как выглядит гиперссылка:

Особенности:
Плюсы:
Минусы:
Instadeep
Instadeep — платный сервис для работы с глубинными ссылками в Instagram. Есть пробная версия на семь дней.
Скриншот главной страницы сервиса:

Чтобы воспользоваться сервисом, оплатите подписку или подключите бесплатный доступ. В открывшемся окне введите email и ссылку, с которой будете работать.
После подтверждения данных вы получите такой ответ:

Робот обработает вашу заявку и пришлет на почту готовую ссылку:

Особенности:
Плюсы:
Минусы:
Surflink
Surflink — сервис для работы с гиперссылками. В бесплатной версии доступ ограничен. Платная подписка открывает больше возможностей — полная статистика по переходам, подключение своих доменов, неограниченное количество кликов, возможность задавать свои URL.
Скриншот личного кабинета в сервисе Surflink с готовой ссылкой:

Страница для отслеживания статистики по переходам:

Особенности:
Плюсы:
Минусы:
Заключение
В этой статье мы разобрали, что такое диплинк и как с ним работать.
Важное замечание.Facebook Ads негативно относится к глубинным ссылкам — отключает объявления или накладывает ограничения, поэтому мы рекомендуем использовать только официальные инструменты FB.
А чтобы сделать более плавный переход между каналами — регистрируйтесь в сервисе SendPulse и подключайте наши инструменты: создавайте мультиссылку или лендинг, используйте CRM, отправляйте email рассылки, Viber, SMS, WhatsApp рассылки, а также подключайте чат-боты в мессенджерах Facebook Messenger, ВКонтакте, WhatsApp и Telegram!
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.




