콘텐츠로 이동

딥링크 정리 - URL Scheme, Universal Link·App Link, 디퍼드 딥링크

딥링크는 특정 콘텐츠(페이지)에 직접 도달할 수 있는 모든 링크를 말한다.

형태는 스킴(scheme)과 호스트(host)로 구성된 URL(Uniform Resource Locator)이다. 모바일에서는 앱을 실행하는 링크를 가리킨다.

운영하던 모바일 게임은 Android와 iOS 모두 myapp:// 형태의 스킴으로 딥링크를 등록해 두었다. 대시보드에서도 collection:// 같은 URL Scheme을 배너 클릭 이벤트에 연결하고, 클라이언트가 이 URL을 파싱해 원하는 콘텐츠(예: 컬렉션 메인 팝업)로 이동시킨다.

URL Scheme 방식 딥링크에는 단점이 있다.

  1. 스킴이 유니크하지 않다. https:// 같은 스킴을 호출하면 여러 후보 앱(Chrome, Whale, Firefox 등)이 함께 뜬다.
  2. 스킴이 실패했을 때의 fallback URL을 정의할 수 없다. URL Scheme이 동작하지 않으면 아무 일도 일어나지 않는다.
  3. 스킴만으로는 앱 설치 여부를 알 수 없다.

이 단점을 보완하려고 나온 것이 iOS의 Universal Link, Android의 App Link다.

유니크한 도메인을 활용해 서버 호출 시 메타데이터에서 딥링크 정보를 받아 오므로 중복을 피할 수 있다. 앱이 있으면 앱을 실행하고, 없으면 fallback URL로 다운로드를 유도하거나 대체 URL로 보낼 수 있다. 두 방식 모두 2015년 하반기에 나왔다.

  • iOS 설정: Xcode의 Info - URL Types 항목에서 입력한다.
  • Android 설정: AndroidManifest.xml에서 원하는 Activity의 <intent-filter> 안에 추가한다.

Universal Link와 App Link에도 단점이 있다.

  1. 사용자 트리거(클릭 등)로만 동작한다.
  2. JavaScript 등으로 클릭을 유발하면 앱이 설치되어 있어도 fallback으로 떨어져 대체 URL로 이동한다.
  3. 신규 사용자가 어떤 링크를 거쳐 설치했는지 추적할 수 없다.

디퍼드 딥링크(deferred deep link)는 이 단점을 극복하려고 나왔다. 이름 그대로 딥링크 처리를 지연시켜, 앱 설치 과정을 거친 뒤에 딥링크를 실행한다. 그래서 다음 특징이 있다.

  • 신규 가입자(NRU)를 집계할 수 있다.
  • 사용자가 원하는 콘텐츠를 설치와 동시에 보여 줄 수 있다.
  • 앱 내 콘텐츠를 목적으로 설치한 사용자의 동선을 줄일 수 있다(예: 푸시 알림 → 바로 컬렉션 팝업 노출).

디퍼드 딥링크는 어트리뷰션 솔루션(Branch, Firebase Dynamic Links, AppsFlyer OneLink) 중 하나를 골라 쓴다. 이 프로젝트는 AppsFlyer를 썼다.

  • 하나의 URL로 각 OS에 맞게 앱 내 특정 페이지로 자동 이동시켜 준다.
  • 어떤 광고로 설치했는지, 어떤 흐름으로 유입되었는지 분석할 수 있다.