모바일 딥링크 기술에 대해 알아보자
1. 딥링크 (DeepLink)
위 웹 링크를 클릭하면 네이버 웹페이지로 이동하듯이, 딥링크는 앱을 실행시키고 사용자를 앱 내 특정 페이지로 이동해주는 기술입니다. 예를 들어 무신사에서 결제 수단으로 토스페이를 선택을 하면, 아래 왼쪽 화면이 나오고 ‘다음’을 누르면 토스 앱의 결제 페이지로 이동하는데 이때 사용된 기술이 바로 딥링크입니다.
출처: https://docs.tosspayments.com/resources/glossary/deep-link
이러한 딥링크는 특히 마케팅에서 유용하게 사용될 수 있는데, 결국 딥링크를 구축하는 것은 개발자의 영역이기에 이 글에서는 딥링크의 필요성을 시작으로 구현 방식과 지금까지 어떻게 발전해왔는지에 대해 알아보겠습니다.
2. 딥링크의 필요성
딥링크의 중요성에 대해서는 100번, 1000번을 얘기해도 부족하지 않습니다. 딥링크는 마케팅의 관점에서 매우 중요한 역할을 하는데요. adjust의 모바일 앱 딥링킹 심층 분석에서 소개한 예시를 살펴보겠습니다.
만약 배가 엄청 고픈 사용자가 휴대폰으로 Facebook을 넘겨 보다가 파스타 레시피 광고를 발견했다고 생각해 봅시다. 이때 이미 해당 브랜드의 앱이 설치되어 있다면, 링크를 클릭했을 때 앱으로 이동하여 홈페이지가 열리게 될 것입니다. 그리고 이제 사용자는 홈페이지에서 수백 개의 파스타 레시피 중 앞서 광고에서 본 파스타 레시피를 찾아야 합니다.
이때, 앱에서 파스타 레시피를 빠르게 발견하지 못한다면 아마 앱을 종료하고 다시 Facebook으로 돌아가게 될 것입니다. 이는 사용자에게 실망스러운 경험이 될 것이며, 앱은 곧바로 삭제될 것입니다. 😓
하지만 딥링크를 통해 곧바로 파스타 레시피 페이지로 이동되었다면, 사용자 여정이 간소화되어 사용자에게 좋은 경험을 제공해줄 수 있게 됩니다. 이것이 바로 딥링크가 필요한 이유입니다.
출처: https://www.adjust.com/ko/blog/dive-into-deeplinking/
3. 딥링크 구현 방식
딥링크는 크게 3가지로 구분될 수 있습니다.
- URI Scheme: 앱에 URI Scheme 값을 등록하여 사용
- App Link: 도메인 주소를 이용한 딥링크 사용 (Android)
- Universal Link: 도메인 주소를 이용한 딥링크 사용 (iOS)
3-1) URI 스킴 (URI Scheme)
스킴 (Scheme)
앱에서 설정할 수 있는 고유 값으로 모든 앱들은 각각의 스킴 값을 가집니다.
- 유튜브:
youtube://
- 트위터:
twitter://
출처: https://docs.tosspayments.com/resources/glossary/deep-link
가장 일반적으로 사용되는 딥링크 방식으로, 특정한 목적이나 애플리케이션에 맞게 사용자가 정의한 스킴을 커스텀 스킴이라고 합니다. 각각의 구성 요소는 다음과 같은 성격을 가집니다.
- App scheme: 앱을 식별하는 고유한 스킴(프로토콜) 이름
- Hostname: 앱 내부 요청의 도메인 역할을 하며, 앱의 특정 기능을 분류하거나 구분
- Path: 앱 내에서 더 구체적인 경로를 지정하여 특정 화면이나 기능으로 이동
- Query paremeters: 특정 화면에 전달할 추가적인 데이터를 포함
URI 스킴 설정하기
위 아코디언을 펼쳐보면 확인할 수 있듯이 URI 스킴은 React Navigation의 Deep linking를 참고하여 쉽고 빠르게 설정할 수 있습니다. 하지만 URI 스킴 방식에는 다양한 한계점이 있습니다.
3-2) URI 스킴의 한계와 유니버셜 링크(Universal Link) & 앱링크(App Link)의 탄생
URI 스킴에는 다양한 한계점이 존재합니다.
1. 앱이 설치되어 있는 경우에만 동작
URI 스킴은 앱의 고유한 스킴을 나타내며, 앱이 설치되어 있는 경우에만 정상적으로 동작합니다. 즉, 앱이 설치되어 있지 않은 경우에는 URI 스킴이 동작하지 않습니다.
2. 중복된 스킴의 존재 가능성
안드로이드에서 Google play 스토어를 실행시키기 위해 market://
스킴으로 이동하려고 하면, 다음과 같이 중복된 스킴 값을 가진 마켓들이 표시되며 어떤 앱을 실행시켜야 하는지 선택하는 화면을 보게 됩니다.
출처: https://help.dfinery.io/hc/ko/articles/360039757433-딥링크-Deeplink-URI스킴-유니버셜-링크-앱링크-구분과-이해
앱을 개발하는 개발자들은 자신이 적용한 스킴 값이 다른 앱에서는 사용되지 않는지 확인할 수 있는 방법이 없으며, 확인하더라도 다른 앱에서 이러한 스킴 값을 사용하게 된다면 스킴이 중복되게 됩니다.
이러한 문제점에 대해, 애플과 구글 각각에서 제시한 해결 방안이 유니버셜 링크와 앱링크 입니다.
3-3) 유니버셜 링크와 앱 링크
유니버셜 링크와 앱링크는 웹사이트 형태의 URL로 만들어지며, 도메인 주소를 이용하기 때문에 URI 스킴과 달리 유일성을 보장할 수 있습니다. 또한 앱이 설치되어 있지 않은 경우 웹 사이트로 안내하여 URI 스킴의 문제를 해결할 수 있습니다.
이때 고유한 웹사이트 주소를 이용하기 위해서는 Android, iOS 각각 도메인 소유자를 인증하는 과정을 거쳐야 합니다. 도메인의 .well-known
위치에 앱의 고유 id 혹은 패키지 정보가 포함되어 있는 파일을 업로드하면 됩니다.
- 안드로이드: https://{domain}/.well-known/assetlinks.json
- iOS: https://{domain}/.well-known/apple-app-site-association
heydealer의 Android & iOS Deeplink WebSite 예시
최종적으로 URI Scheme과 Universal Links를 모두 적용한 플로우는 아래와 같습니다.
- 딥링크 클릭
- 앱이 설치되어 있다면 앱 내부 특정 페이지로 이동
- 앱이 설치되어 있지 않으며, 웹 링크가 존재한다면 웹 링크로 이동
- 웹 서비스가 제공되고 있다면 웹 서비스에 맞는 컨텐츠 서빙
- 그렇지 않다면 해당 웹링크를 열었을 때 마켓(구글 플레이 스토어, 앱 스토어)으로 이동
- 앱이 설치되어 있지 않으며, 웹 링크가 존재하지 않는다면 반응 없음
3-4) 유니버셜 링크와 앱 링크의 한계
유니버셜 링크와 앱링크가 모든 것을 해결해줄 것처럼 보이지만, 이러한 딥링크에도 한계점이 있습니다.
- 브라우저 주소창에 딥링크를 직접 복사/입력하는 경우에는 정상적으로 동작하지 않음
- 앱링크는 구글에서 만든 앱에서만 정상 동작
- 유니버셜 링크는 애플에서 만든 앱에서만 정상 동작
DFINERY에서 앱링크와 유니버셜 링크 테스트의 결과를 확인해보면 다음과 같습니다.
앱링크 테스트 결과
유니버셜 링크 테스트 결과
즉, 하나의 방식이 모든 환경에 유연하게 대응하지 못하기 때문에 원활한 광고 운영과 모바일 어트리뷰션을 위해서는 URI 스킴과 유니버셜, 앱링크 모두를 연동해야 합니다.
모바일 어트리뷰션 (Mobile Attribution)
특정 행동이나 결과(예: 앱 설치, 구매, 가입 등)가 어떤 마케팅 채널, 캠페인, 또는 광고에서 유래했는지를 추적하고 확인하는 과정
4. 디퍼드 딥링크 (Deferred DeepLink)
앞서 딥링크의 개념에서 더 나아가 광고 마케팅에 적극 활용될 수 있는 디퍼드 딥링크에 대해서 알아보겠습니다.
딥링크 방식을 이용하면, 사용자에게 앱 내 콘텐츠를 바로 보여줄 수 있도록 안내할 수 있지만 아래 이미지처럼 불편한 사용자 경험을 제공할 수 있습니다.
- 웹 사이트가 없는 경우 광고에서 본 상품 페이지를 빠르게 확인할 수 없음
- 광고에서 본 상품 페이지를 탐색하기 위해 사용자는 앱을 설치하고, 앱 내부에서 상품 목록을 스크롤링하며 탐색해야 함
- 물론, 앱을 설치한 후 다시 광고의 링크를 클릭하면 상품 페이지로 이동 가능하지만 이는 불편한 사용자 경험
이러한 문제를 해결하기 위해 사용할 수 있는 기술이 바로 디퍼드 딥링크입니다.
디퍼드 딥링크란 앱이 설치되어 있지 않은 경우 원래 이동하려는 딥링크의 랜딩 뷰를 기억하고 있다가, 앱이 설치된 이후 원래 이동하려는 딥링크의 랜딩 뷰로 안내하는 기술입니다.
이를 구현하기 위해서는 랜딩 뷰에 대한 정보를 저장하고 있다가 앱이 설치된 후 앱으로 이동할 때, 저장한 랜딩 뷰를 다시 전달하여야 하는데 이를 식별하기 위해서는 UUID 등 다양한 정보를 사용해야 합니다. 하지만 iOS의 보보복잡한 개인정보 방침으로 인해 신경써야 할 게 많아서 굉장히 복잡합니다..
그래서, 이러한 기능을 제공하는 써드파티 툴들이 존재합니다.
- Appsflyer
- Firebase Dynamic Links - 2025년 8월 25일 기준으로 서비스 종료
- Airbridge
- Adjust
- Branch
이러한 써드파티 툴들은 원링크(OneLink)/다이나믹 링크(Dynamic Links)와 같은 방식으로 처리하는데 자세한 내용은 각 써드파티의 참고 자료를 확인해보시면 좋을 것 같습니다.
지루한 글을 읽어주셔서 감사합니다.
참고
- [딥링크101] 마케터와 개발자를 위한 딥링크 시작하기
- tosspayments 개발자센터 - 딥링크(Deep Link)
- 모바일 앱 딥링킹 심층 분석
- 딥링크(Deeplink) : URI스킴, 유니버셜 링크, 앱링크 구분과 이해
- 딥링크의 모든것(feat. App Link, Universal Link, Deferred DeepLink)
- [iOS] Deferred Deeplink 적용기 (Appsflyer Onelink)
- 10분컷 딥링크 마스터! : 정의, 종류 및 전환율 높이는 디퍼드 딥링크의 중요성
- DeepLink란? :: 원링크, 딥링크, 디퍼드 딥링크