딥링크의 목적과 딥링크 구현을 위해 사용되는 기술에 대해 안내합니다. Singular의 딥링크에 대해 더 많은 정보가 필요하면 Singular 링크 FAQ를 참조하세요.
딥링크는 복귀 사용자를 고객사 앱의 핵심 포인트로 유도하는 기술로, 웹사이트에서 일반 웹 링크가 사이트 내의 특정 페이지로 이동하는 것과 유사하게 기능합니다. 앱에 딥링크를 설정하는 약간의 수고를 감수한다면 사용자를 앱 내의 특정 화면으로 이동시키거나 사용자가 앱에 진입하는 시점에 맞춤형 경험을 선사할 수도 있습니다.
개발자들은 딥링크를 위해 여러가지 방법을 사용합니다.
주의: Singular 링크의 기술은 iOS와 Android의 딥링크 트렌드에 맞게 개발되었습니다. Singular에서 트래킹 링크를 생성하면 해당 링크는 자동으로 Singular에서 트래킹 링크를 생성하면 Apple Universal Links, Android app Links 링크 및 Android 인텐트 기술 등, 호환되는 딥링크 기술을 통해 링크가 자동으로 활성화됩니다. 또한 Singular SDK는 쉽게 딥링크 및 디퍼드 딥링크를 사용할 수 있도록 설계되었습니다. 자세한 내용은 Singular 링크 FAQ 를 참조하세요.
- URI Schemes (예: "myapp://path/to/page?pageid=1"): 이 이전 딥링킹 방법론을 사용하는 경우 앱 개발자가 앱에 "scheme"을 등록해서 사용자가 해당 스킴을 가진 링크를 클릭할 때마다 디바이스의 플랫폼이 이를 인식해서 해당 앱을 열 수 있도록 합니다. 위 예제에서는 "myapp://"으로 시작하는 모든 링크를 뜻합니다.
- 디바이스에 이미 앱이 설치된 경우라면 앱이 열리고 링크의 나머지 부분을 파싱해서 사용자를 앱 내의 특정 페이지로 이동시키거나 특정 경험을 제공할 수 있습니다.
- 디바이스에 아직 앱이 설치되지 않았다면 폴백 URL이 존재하지 않고 에러가 발생하게 됩니다.
- iOS Universal Links (iOS 9+): 이 기술은 iOS에서 URL 스킴 기반의 딥링킹을 개선하기 위해 개발되었습니다. 구현을 위해서 앱 개발자는 "myapp.com"과 같이 검증된 웹 도메인을 설정해서 앱을 위한 Universal Links를 제공해야 합니다. 사용자가 "https://www.myapp.com/path/to/page?pageid=1"과 같은 Universal Link를 클릭하면 디바이스 플랫폼이 특정 앱을 열어야 한다는 것을 인식합니다.
- 디바이스에 이미 앱이 설치된 경우라면 앱이 열리고 링크의 나머지 부분을 파싱해서 사용자를 앱 내의 특정 페이지로 이동시키거나 특정 경험을 제공할 수 있습니다.
- 디바이스에 아직 앱이 설치되지 않았다면 유저는 별다른 불편없이 기본 브라우저를 활용하여 웹 URL로 이동합니다.
- Android App Links (Android 6.0+): 이 기술은 Android에서 URL 스킴 기반의 딥링킹을 개선하기 위해 개발되었습니다. 구현을 위해서 개발자는 검증된 웹 도메인을 설정해서 앱을 위한 App Links를 제공해야 합니다. 사용자가 app link를 클릭하면 디바이스 플랫폼이 특정 앱을 열어야 한다는 것을 인식합니다.
- 디바이스에 이미 앱이 설치된 경우라면 앱이 열리고 링크의 나머지 부분을 파싱해서 사용자를 앱 내의 특정 페이지로 이동시키거나 특정 경험을 제공할 수 있습니다.
- 디바이스에 아직 앱이 설치되지 않았다면 유저는 별다른 불편없이 기본 브라우저를 활용하여 웹 URL로 이동합니다.
디퍼드 딥링크(Deferred deep-links) 역시 딥링크를 개선하기 위해 제공됩니다. 이를 사용하면 사용자가 딥링크를 클릭했지만 디바이스에 아직 앱이 설치되지 않은 경우에 사용자를 앱 스토어로 리디렉션할 뿐만 아니라 사용자에게 어떤 페이지 혹은 경험을 제공할 것인지 지정하는 딥링크 파라미터가 유실되지 않습니다.사용자가 이후에 앱 스토어에서 앱을 설치하고 실행하면, 앱이 딥링크 파라미터에 접근하여 사용자에게 특정 경험을 제공할 수 있습니다.
딥링크와 다르게 디퍼드 딥링크는 어트리뷰션 트래커를 통해서만 설정할 수 있습니다.
- 트래커는 설치 이전의 터치포인트, 즉 클릭과 뷰에 대한 정보를 수집할 수 있습니다.
- 앱 내에 연동된 트래커의 SDK는 위와 같은 설치 이전의 사항을 파악할 수 있습니다.
- 앱은 SDK를 통해 사용자가 원래 유입된 딥링크가 무엇이었는지 파악하고 앱이 최초로 실행된 시점에 해당 페이지 혹은 개인화된 경험을 제공할 수 있습니다.
딥링크는 유저 획득에 매우 유용하지만, 마케팅 채널에 이를 제대로 사용하려면 사용법과 한계에 대해서 명확히 파악해야 합니다.
URI 스킴의 한계
URI 스킴 사용은 앱이 이미 사용자의 디바이스에 설치되지 않은 경우 링크를 클릭하면 에러가 발생하고 사용자 인게이지먼트를 급격히 감소시킬 수 있기 때문에 일반적으로 권장되지 않습니다. Android에서는 Android intents를 사용해서 에러 메시지를 노출하는 대신 사용자를 Google Play store로 이동시킬 수 있습니다.
또한 URL 스킴 기반의 딥링킹은 보안에 취약합니다. 다른 앱이 귀사의 앱과 같은 URI 스킴을 등록하고 딥링크를 가로챌 수도 있습니다.
iOS에서 Universal Link라는 권장 딥링킹 방법이 실패한다면 URI 스킴 기반 딥링킹이 유일한 대안이 될 수 있습니다. 하지만 URI 스킴 딥링킹에 기반한 유저 경험은 매끄럽지 못하고 기본 iOS 브라우저 환경에 따라 팝업이 노출될 수 있음에 유의하세요.
iOS URI 스킴 딥링킹에서의 유저 경험 예시 |
|
딥링킹 전 유저 확인 요청 |
앱이 인스톨되지 않은 경우 에러 팝업 노출, OK를 클릭하면 폴백 목적으로 이동됨 |
다음 섹션에서는 iOS Universal Link 딥링킹이 실패하는 주된 이유를 다룹니다.
Android에서는 Android intents를 사용해서 에러 메시지를 노출하는 대신 사용자를 Google Play store로 이동시킬 수 있습니다.
또한 URL 스킴 기반의 딥링킹은 보안에 취약합니다. 다른 앱이 귀사의 앱과 같은 URI 스킴을 등록하고 딥링크를 가로챌 수도 있습니다.
iOS Universal Links의 제약 사항
- 소셜 미디어 앱: 어떤 소셜 미디어 앱은 의도적으로 딥링크를 동작하지 않게 하거나 동작에 제약을 걸기도 합니다. 특히 내부 웹 브라우저 뷰를 사용하는 소설 미디어 앱에서 이러한 행태가 자주 보입니다.
- 다른 링크로 감싸기: Universal Links는 해당 링크를 다른 링크로 감싸는 것(link wrapping), 즉 별도의 URL에서 universal link로 리디렉션하는 것을 허용하지 않습니다. 이는bit.ly와 같은 짧은 링크 역시 포함됩니다.
- 브라우저의 URL 필드에 붙여넣기: 만약 Universal Links를 모바일 브라우저의 주소창에 입력한다면 딥링크가 동작하지 않습니다.
- Javascript로 링크 발동: URL 리디렉션을 발동하는 스크립트가 존재하는 경우 사용자 동작에 의한 것이 아닌 이상 딥링크가 동작하지 않습니다.
Android App Links의 제약 사항
- 소셜 미디어 앱: 어떤 소셜 미디어 앱은 의도적으로 딥링크를 동작하지 않게 하거나 동작에 제약을 걸기도 합니다. 특히 내부 웹 브라우저 뷰를 사용하는 소설 미디어 앱에서 이러한 행태가 자주 보입니다.