본문 바로가기

Develop

딥링크(Deeplink) : URI스킴, 유니버셜 링크, 앱링크 구분과 이해

출처 - https://help.dfinery.io/hc/ko/articles/360039757433-%EB%94%A5%EB%A7%81%ED%81%AC-Deeplink-URI%EC%8A%A4%ED%82%B4-%EC%9C%A0%EB%8B%88%EB%B2%84%EC%85%9C-%EB%A7%81%ED%81%AC-%EC%95%B1%EB%A7%81%ED%81%AC-%EA%B5%AC%EB%B6%84%EA%B3%BC-%EC%9D%B4%ED%95%B4#toc9


딥링크(Deeplink) : URI스킴, 유니버셜 링크, 앱링크 구분과 이해

 

 

딥링크 (Deeplink)

http 혹은 https 로 시작하는 인터넷 주소는 모두 특정 서비스의 웹페이지로 이동합니다.

https://igaworks.com 을 주소창에 입력하면 IGAWorks 홈페이지로 이동합니다.
https://adbrix.io 를 주소창에 입력하면 애드브릭스 홈페이지로 이동합니다.

모바일 앱에서도 이와 유사한 기능을 하는 것이 있습니다.
바로 딥링크(Deeplink) 입니다.

딥링크는 특정 주소 혹은 값을 입력하면 앱이 실행되거나 앱 내 특정 화면으로 이동시키는 기능을 수행합니다.
즉, 딥링크가 사용되면 광고에 반응한 이용자는 앱이 바로 실행되어 특정 화면으로 이동하는 경험을 하게 됩니다. 혹은 앱 설치 후 실행하면 특정 화면으로 바로 이동하게 됩니다(지연된 딥링크). 따라서 광고를 운영하는 마케터 입장에서는 광고 성과 최적화를 위해 반드시 활용해야 하는 기능입니다.

딥링크는 3가지 방식으로 구분됩니다.

  • URI 스킴 방식 : 앱에 URI 스킴(scheme) 값을 등록하여 딥링크 사용
  • 앱링크(App Link) : Android 제공 - 도메인 주소를 이용한 딥링크 사용
  • 유니버셜 링크 (Universal Link) : iOS 제공  - 도메인 주소를 이용한 딥링크 사용

모두 딥링크 기능을 수행 함에도 왜 'URI 스킴', '앱링크', '유니버셜 링크' 방식으로 각각 구분하는 것일까요?
각각의 기능과 차이점에 대해서 알아보겠습니다.

'URI Scheme' 방식의 딥링크

'URI Scheme' 방식 이해

가장 일반적으로 사용되는 딥링크 방식은 URI Scheme(URI 스킴) 방식 입니다.

URI 스킴을 이용한 딥링크는 앱에 Scheme값을 등록하는 형태로 앱을 구분합니다. 스킴은 앱마다 등록할 수 있는 값으로 "특정 스킴값을 호출하면 특정 앱이 오픈된다." 라는 약속을 실행합니다. 여러분이 트위터 앱을 오픈하고자 한다면 twitter:// 라는 스킴값을 이용하면 됩니다. 이 스킴값은 앱 개발시 효율적인 앱 오픈을 위해 자체적으로 개발사에서 자신들만의 값으로 등록을 하게 됩니다.

앱 내에서의 특정 페이지는 'path' 값으로 구분합니다. 예를 들어, 트위터 앱의 회원가입 페이지를 오픈하고자 한다면 twitter://signup 이라는 값을 사용합니다.

정리하면, URI 스킴 방식은 Scheme://Path라는 두개의 요소로 구성됩니다.

  • Scheme://Path
  • Scheme = 앱을 특정함 (트위터)
  • Path = 앱 내 페이지를 특정함 (트위터 내 회원가입 페이지)

안드로이드의 경우 아래와 같이 Androidmanifest.xml 이라는 파일에 스킴값을 등록합니다.

[위 스크린샷에서 android:scheme 라고 적힌 항목이 스킴값입니다.]

iOS 의 경우 앱 정보 화면에서 URL Scheme 항목에 스킴값을 입력할 수 있습니다. 

[iOS 에서 스킴값을 등록하는 화면]


URI 스킴 방식의 한계

URI 스킴 방식의 딥링크는 앱의 수가 상대적으로 적었던 시기에는 광고를 통해 앱을 바로 실행시키는 훌륭한 마케팅 수단이었습니다. 그러나 앱 수가 증가하면서 생각하지 못한 문제가 발생하기 시작하였습니다.  바로 앱 스킴값이 서로 중복되는 경우에 대한 문제입니다. 앱 개발자 입장에서는 앱에 등록된 스킴값이 자신들의 앱만 사용하는 고유값인지 확인할 방법이 현재는 없습니다.

구글플레이 앱은 자신들의 앱을 오픈하기 위한 스킴 값으로 market:// 란 값을 사용하고 있습니다. OneStore, 삼성 앱스토어 등의 오픈 마켓 또한 이 스킴 값을 사용합니다. 따라서 안드로이드 이용자들은 아래처럼 어떤 앱을 실행시켜야 하는지에 선택하는 화면을 보게 됩니다.

[서로 동일한 market:// 스킴값을 사용할 경우 발생하는 문제.]

즉, 안드로이드 시스템이 현재 market:// 란 스킴값으로 앱을 열려고 할 때 사용자에게 " 이 3종의 앱이 모두 "market://" 란 스킴값을 사용하는데 어떤 앱을 열어야 하나요?" 라고 물어보는 화면입니다. 안드로이드, iOS 모두 이와 비슷한 문제를 가지고 있습니다. 앱을 개발하는 개발자가 자신이 적용한 스킴값이 다른앱은 사용하지 않는 고유값인지 아닌지 확인할 수 있는 방법이 없고 다른 앱이 자신의 스킴값을 사용한다 할지라도 이를 방지할 방법이 없는 상황입니다.

애플과 구글의 개발자들은 이를 근본적으로 막을 수 있는 방법은 없을지 고민했습니다. 그 고민끝에 탄생한 것이 유니버셜 링크 (iOS 제공)와 앱링크 (Android 제공) 입니다.
  

유니버셜 링크와 앱링크

웹페이지 주소를 사용한 딥링크

현재 여러분이 사용하고 있는 사이트의 인터넷 주소는 모두 고유의 값을 가지고 있습니다. 가령 아이지에이웍스는 igaworks.com 이라는 고유의 인터넷 주소를 가지고 있고 애드브릭스 역시 adbrix.io 라는 고유의 주소를 가지고 있습니다. 이를 도메인 (Domain) 주소라고 합니다.

애플과 구글의 개발자들은 이 도메인 주소를 딥링크 실행값으로 사용하기로 결정합니다.  예를 들면, 스마트폰 브라우저 앱 주소창에 http://naver.com 을 입력하면 네이버 앱이 바로 오픈되어 사용할 수 있도록 한 것입니다.

바로 이 기능을 iOS 에서는 유니버셜 링크(Universal Link), Android 에서는 앱링크(App Link)라고 부릅니다.

참고자료 (1) : [Add Android App Links]
참고자료 (2) : [Universal Links for Developers]

안드로이드의 경우 Androidmanifest.xml 라는 파일에서 아래와 같이 앱링크 도메인을 등록할 수 있습니다.
(아래 예시는 애드브릭스 트랙킹 링크의 유니버셜 링크, 앱링크 연동을 기준으로 작성하였습니다.)

 
iOS 의 경우 Singing & Capabilities 에서 Associated Domains 에서 등록할 수 있습니다.

 

유니버셜 링크와 앱링크의 한계

하지만 안타깝게도 유니버셜 링크와 앱링크가 아직까지는 완전하지 않습니다. 모든 앱에서 유니버셜 링크와 앱링크 오픈을 지원하는 것이 아니기 때문입니다.

앱링크는 구글에서 만든 앱에서만 동작하고, 구글 이외에 앱에서는 정상적으로 동작하지 않습니다. 유니버셜 링크 역시 애플에서 만든 앱 이외에는 정상적으로 동작하지 않습니다.

애드브릭스 팀에서는 주요 환경 별 유니버셜 링크, 앱링크 실행 결과를 확인했습니다.
결과를 보면 하나의 방식이 모든 환경에 완벽하게 대응하지 못하고 있습니다. 따라서 원활한 광고 운영과 어트리뷰션을 위해서는 URI스킴 방식, 유니버셜 링크, 앱링크 모두 연동이 필요하다는 결론에 도달합니다.

 

앱링크 테스트 결과

 테스트 환경테스트 결과
1 안드로이드 카메라 앱에서 QR 코드 촬영하여 앱 실행 앱링크 작동
2 Gmail 앱에서 링크를 클릭하여 앱 실행 앱링크 작동
3 카카오톡에서 링크를 클릭하여 앱 실행 URI스킴 방식 작동
4 네이버 앱에서 주소창에 링크 입력 후 앱 실행 URI스킴 방식 작동
5 네이버 앱에서 카메라로 QR 코드 촬영하여 앱 실행 URI스킴 방식 작동
6 크롬에서 주소창에 트래킹 링크 입력 후 앱 실행 딥링크가 동작하지 않음
7 크롬에서 링크를 클릭하여 앱 실행 앱링크 작동
8 삼성 브라우저에서 주소창에 링크 입력 후 앱 실행 딥링크가 동작하지 않음
9 삼성 브라우저에서 링크를 클릭하여 앱 실행 앱링크 작동

 

유니버셜 링크 테스트 결과

 테스트 환경테스트 결과
  사파리 브라우저 주소창에 링크 입력 후 앱 실행 URI스킴 방식 작동
(경우에 따라 유니버셜 링크 작동)
2 사파리 브라우저에서 링크를 클릭하여 앱 실행 URI스킴 방식 작동
3 아이폰 카메라 앱으로 QA 코드 촬영하여 앱 실행 유니버셜 링크 작동
4 아이폰 이메일 앱에서 링크를 클릭하여 앱 실행 유니버셜 링크 작동
5 Gmail 앱에서 링크를 클릭하여 앱 실행 URI스킴 방식 작동
6 카카오톡에서 링크를 클릭하여 앱 실행 URI스킴 방식 작동
7 네이버 앱에서 주소창에 링크 입력 후 앱 실행 URI스킴 방식 작동
8 네이버 앱에서 카메라로 QR 코드 촬영 후 앱 실행 URI스킴 방식 작동
9 크롬 주소창에 링크 입력 후 앱 실행 URI스킴 방식 작동
10 크롬에서 링크를 클릭하여 앱 앱 실행 URI스킴 방식 작동

 

딥링크, 더 알아두기

앱에 딥링크 적용하기

애드브릭스는 앱에 설정된 딥링크 설정값을 받아 실행하는 역할을 수행할 뿐, 딥링크 그 자체는 앱 내에 먼저 설정이 되어있어야 합니다. 즉, 앱 내에 자체적으로 딥링크 설정이 완료 되어야만 딥링크 기능을 이용할 수 있습니다. 문을 열기 위한 열쇠는 광고주 앱이 직접 만들어야 하고, 그 열쇠를 받아서 문을 여는 역할만 애드브릭스가 수행한다고 생각하면 이해하기 쉽습니다.

따라서 마케터가 딥링크를 사용하고자 한다면, 앱 개발팀을 통해 딥링크 사용에 필요한 설정값(스킴과 패스값, url값)을 확보한 후 트래킹링크 설정 옵션에 입력해야 합니다. (Ad-Landing 세팅, 트래킹링크 발급)

지연된 딥링크

지연된 딥링크(Deferred Deep Link) 란 마켓에 랜딩되어 앱 설치 후 실행한 이용자가 앱 첫 화면이 아닌, 지정된 특정 앱 페이지로 이동되는 기능을 의미합니다. 예를 들어, 'A운동화 광고' 트래킹링크가 적용된 광고에 참여한 이용자가 마켓으로 이동하여 앱을 설치하고 실행하면 'A운동화' 상품 페이지로 바로 이동합니다.
 

애드브릭스 All-Link : URI스킴, 앱링크, 유니버셜 링크 모두 사용하기

앞서 살펴본 것 처럼 URI스킴, 유니버셜 링크, 앱링크 중 하나의 딥링크 방식 만으로는 모든 환경에 대응하지 못합니다.
따라서 광고UX 최적화를 위해서는 3개 방법을 모두 적용하여 상호보완적으로 사용하는것이 최선의 방법입니다.

애드브릭스의 트래킹 링크는 URI스킴, 유니버셜 링크, 앱링크를 하나의 링크로 지원하는 All-Link 기능을 제공합니다. 애드브릭스 트랙킹 링크의 도메인을 이용하여 유니버셜 링크, 앱링크를 만들수 있습니다. 유니버셜 링크와 앱링크를 지원하지 않는 앱에서도 정상적으로 어트리뷰션이 될 수 있도록 URI스킴 방식 동작 또한 지원합니다. 즉, 유니버셜 링크와 앱링크가 작동되지 않는 환경에서는 2순위로 URI스킴 방식을 작동시켜 앱 실행과 목적된 화면 이동이 정상적으로 완료될 수 있도록 지원합니다.

자세한 내용은 아래 연동 가이드에서 확인하실 수 있습니다.

참고자료 : [Android 앱링크 연동하기]
참고자료 : [iOS 유니버셜 링크 연동하기] 

 

'Develop' 카테고리의 다른 글

비교 표현식 (gt, lt, ge, le, eq, ne / gte, lte)  (0) 2023.03.14
개발 일정 - 공수산정  (0) 2022.12.01
개발도구  (0) 2021.03.12
CSS 코드작성 규칙  (0) 2019.07.03
워드프레스 서버 이전 및 500 에러 해결  (0) 2018.04.10