딥링크는 특정 주소 혹은 값을 입력하면 앱이 실행되거나 앱 내 특정 화면으로 이동시키는 기능을 수행합니다.
즉, 딥링크가 사용되면 광고에 반응한 이용자는 앱이 바로 실행되어 특정 화면으로 이동하는 경험을 하게 됩니다. 혹은 앱 설치 후 실행하면 특정 화면으로 바로 이동하게 됩니다(지연된 딥링크 - Deferred Deep Link).
딥링크의 두 가지 유형
기본형
기본적인 형태의 딥링크는 앱이 설치된 경우에만 사용자를 앱으로 연결합니다. 앱이 설치되어 있지 않은 경우 링크를 통해 앱의 최종목적지에 도달할 수 없기 때문에 오류 메시지가 표시됩니다.
디퍼드(Deferred) 딥링크
디퍼드 딥링크는 사용자가 앱을 설치하지 않은 경우에는 사용자를 앱 스토어, Play 스토어, 또는 앱에 대한 자세한 정보를 얻을 수 있는 웹사이트와 같은 다른 위치로 안내한 다음, 원래 의도된 페이지를 열 수 있도록 합니다.
예를 들어 사용자가 신발 광고를 클릭했지만 해당 이커머스 앱이 설치되지 않은 경우, 먼저 이 앱을 다운로드할 수 있도록 앱 스토어로 연결됩니다. 앱 설치 후 실행 시 원래 유저를 보내려 했던 제품 페이지가 표시됩니다.
딥링크 3가지 방식
URI Scheme
{scheme}://{path}?xxxx=1234
- scheme: 어떤 앱인지
- path: 어떤 화면을 보여줄건지
// e.g
heydealer://register?car=xxxx&action=review_list
URI Scheme 한계
Android
URI Scheme의 한계를 극복하기 위해 탄생한 방법
앱링크 / 유니버셜 링크
// e.g
<https://www.heydealer.com/chat>
<https://deeplink.heydealer.com/cars/xxx>
<https://heydealer.com/events?id=123>
실행 동작
문제점
(https://www.airbridge.io/blog-ko/deeplink-101-for-marketers-and-developers)
추가 방법
Android 앱에 등록된 링크
// 실행 - Chrome for Android 버전 25 이상부터 적용 X -> Chrome Intent 방식 사용
<a href='<https://voilwqss0yxo1mes7swxq.adtouch.adbrix.io>'>APP 설치</a>
// Intent 방식
<a href='intent://path/#Intent;scheme=yourapp;package=com.yourapp.example;end'>APP 설치</a>
// e.g
<a href=`intent://voilwqss0yxo1mes7swxq.adtouch.adbrix.io/#Intent;scheme=https;package=${com.yourapp.example};end`>APP 설치</a>
IOS 앱에 등록된 링크
// 실행
<a href='<https://voilwqss0yxo1mes7swxq.adtouch.adbrix.io>'>APP 설치</a>
/*
앱스토어 실행 - scheme만 고정(itms-apps)이고,
host는 실제 pc itunes 주소와 일치
*/
<a href=`itms-apps://itunes.apple.com/app/${AppleID}`>App Store 실행</a>
실제 적용사례
https://engineering.linecorp.com/ko/blog/how-to-use-deeplink-in-trackit
https://velog.io/@ann0905/모바일-웹에서-앱-띄우기딥링크 앱 스토어 실행
P.S. 첫 번째 적용 사례에 보면 Android Chrome의 경우 Android Intents with Chrome 방식을 사용해서 URL Schemes 방식이 적용되지 않는다.(크롬 Intent 문서)
결국, 안드로이드의 경우 URL Schemes 방식과 크롬 인텐트 방식 둘다 구현해야할 필요가 있다.
제한 사항
Universal link는 Safari와 Chrome에서만 작동합니다.
다른 사이트에서 Universal link로 리디렉션되는 경우, Safari나 Chrome 내에서 클릭이 발생하는 경우에만 작동합니다.
(예를 들어 이메일 앱의 https://anotherDomain.com/라는 링크에서 universal link인 https://yourDomain.com/dress/1로 리디렉션되는 경우, 앱으로 딥링크되지 않습니다. 하지만 Safari에서 https://anotherDomain.com 링크를 클릭하면 딥링크가 작동합니다.)
링크를 주소창에 직접 붙여 넣으면 Universal link가 작동하지 않습니다.
자바 스크립트에 의해 리디렉션이 트리거되면 universal link가 작동하지 않습니다.
앱 내에서 openUrl과 같은 프로그래밍 방식으로 링크를 열면 universal link가 작동하지 않습니다.
참고