• 딥링크는 특정 주소 혹은 값을 입력하면 앱이 실행되거나 앱 내 특정 화면으로 이동시키는 기능을 수행합니다.

    즉, 딥링크가 사용되면 광고에 반응한 이용자는 앱이 바로 실행되어 특정 화면으로 이동하는 경험을 하게 됩니다. 혹은 앱 설치 후 실행하면 특정 화면으로 바로 이동하게 됩니다(지연된 딥링크 - Deferred Deep Link).

  • 딥링크의 두 가지 유형

    • 기본형

      기본적인 형태의 딥링크는 앱이 설치된 경우에만 사용자를 앱으로 연결합니다. 앱이 설치되어 있지 않은 경우 링크를 통해 앱의 최종목적지에 도달할 수 없기 때문에 오류 메시지가 표시됩니다.

    • 디퍼드(Deferred) 딥링크

      디퍼드 딥링크는 사용자가 앱을 설치하지 않은 경우에는 사용자를 앱 스토어, Play 스토어, 또는 앱에 대한 자세한 정보를 얻을 수 있는 웹사이트와 같은 다른 위치로 안내한 다음, 원래 의도된 페이지를 열 수 있도록 합니다.

      예를 들어 사용자가 신발 광고를 클릭했지만 해당 이커머스 앱이 설치되지 않은 경우, 먼저 이 앱을 다운로드할 수 있도록 앱 스토어로 연결됩니다. 앱 설치 후 실행 시 원래 유저를 보내려 했던 제품 페이지가 표시됩니다.

  • 딥링크 3가지 방식

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

    • 초기에 사용된 딥링크 구현방식입니다.
    • URI Scheme 패턴
    {scheme}://{path}?xxxx=1234  
    - scheme: 어떤 앱인지 
    - path: 어떤 화면을 보여줄건지
    
    // e.g
    heydealer://register?car=xxxx&action=review_list
    
    • URI Scheme 한계

      • 앱이 설치되어 있을 때만 실행할 수 있음
      • 원하는 스킴을 아무나 만들 수 있어서 같은 스킴을 사용하는 경우가 생김 (Scheme의 주인이 없음)
      • 같은 스킴일 경우 Android는 어떤 앱으로 열지 선택하는 팝업이 뜨고, iOS는 마지막에 설치한 앱이 열림

      Android

      Android

    • URI Scheme의 한계를 극복하기 위해 탄생한 방법

      • Android: 앱링크(App Link)
      • iOS: 유니버셜 링크(Universal Link)
  • 앱링크 / 유니버셜 링크

    • 패턴
    // e.g
    <https://www.heydealer.com/chat>
    <https://deeplink.heydealer.com/cars/xxx>
    <https://heydealer.com/events?id=123>
    
    • 실행 동작

      • 앱이 설치되어 있다면 해당 딥링크에 맞는 화면이 실행됨
      • 앱이 설치되어 있지 않다면, 웹 URL로 인식되어 실제 해당 웹 링크를 열려고 시도함
      • 실제 해당 웹 링크 ****서비스도 함께 제공하고 있다면, 해당 웹 서비스에서 맞는 컨텐츠를 보여 줌
      • 그렇지 않다면, 해당 URL로 웹으로 열었을때, 앱 마켓(구글 플레이, 앱스토어)으로 이동시키도록 처리 필요
    • 문제점

      • 브라우저 주소 입력창에 딥링크를 직접 복사/입력 하는 경우 동작하지 않음
      • 각각의 플랫폼에서 자신들이 만든 앱(크롬, 사파리, 메일 등)으로 실행하면 의도대로 잘 동작하지만 그외에서는 동작하지 않는 경우도 있음
      • 자체 브라우저를 사용하는 앱들(카카오톡, 페이스북, 인스타그램)에 따라서 이 유형의 딥링크가 잘 동작하는 경우도 있고 동작하지 않는 경우도 있음

      (https://www.airbridge.io/blog-ko/deeplink-101-for-marketers-and-developers)

      (https://www.airbridge.io/blog-ko/deeplink-101-for-marketers-and-developers)

    • 추가 방법

      • 앱링크(https://jaeryo2357.tistory.com/88)

      Android 앱에 등록된 링크

      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>
      
      • 유니버셜 링크(Universal link)

      IOS 앱에 등록된 링크

      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
      • 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가 작동하지 않습니다.

  • 참고

    • https://help.dfinery.io/hc/ko/articles/360039757433-딥링크-Deeplink-URI스킴-유니버셜-링크-앱링크-구분과-이해
    • https://medium.com/prnd/딥링크의-모든것-feat-app-link-universal-link-deferred-deeplink-61d6cf63a0a5
    • 브라우저에 따른 딥링크 솔루션