블로그 모바일 앱 딥링킹에 대해 자세히 알아보세요

모바일 앱 딥링킹에 대해 자세히 알아보세요

모바일 앱 딥링킹은 사용자가 웹 페이지 또는 다른 앱에서 URL을 클릭하면 앱을 실행하고 특정 페이지를 여는 기술입니다. 딥링크를 구현하면 사용자 경험을 최적화하고 전환율을 높일 수 있습니다. 이번 포스트에서는 딥링크를 생성하는 방법과 이와 관련하여 도움이 될만한 정보를 살펴보도록 하겠습니다.

딥링크가 필요한 이유는?

여러분이 음악 앱을 출시했다고 가정해봅시다. 새로운 음악의 발매를 기념해 인기 웹사이트에서 캠페인을 진행하기 위해서 많은 비용을 들였습니다. 캠페인에서 짧은 미리듣기를 제공한 이후 여러분들은 사용자가 앱으로 연결되어 꾸준히 사용하는 것을 목표할 것입니다.

또 다른 예를 들어보겠습니다. 휴면 고객을 되찾기 위한 세일즈 캠페인을 진행한다고 가정해 보겠습니다. 이 캠페인에서 사용자는 내용에 대해 검색하거나 쿠폰 코드를 수동으로 입력할 필요 없이 한 번의 클릭으로 앱 내의 판매 제품 페이지로 이동합니다. 두 사례 모두 딥링크를 활용한 캠페인의 사례입니다.

모바일 앱 딥링크는 사용자 경험을 원활하게 하고 전환율과 유지율을 크게 높일 수 있습니다. 이 내용에 대해서 더 자세하게 알고 싶으시다면 딥링킹이 캠페인에 미치는 영향에 대한 블로그 포스팅을 확인하시길 바랍니다.

딥링크를 사용하는 이유는?

앞서 살펴본 것처럼 딥링크를 사용하면 앱과 웹에서의 편리한 유저 여정 구축이 가능합니다. 만족스러운 유저 경험은 전환율 증가를 이끌기 때문에 광고주에게도 유용한 방법입니다.

예를 들어 크리스마스 선물을 홍보하는 캠페인을 실행해 고객이 여러분의 이커머스 앱을 사용하도록 하고 싶다고 해봅시다. 캠페인에서 '크리스마스 선물'을 카테고리로 표시하고 상품을 미리 보여줄 수는 있겠지만, 여러분은 쇼핑객이 웹사이트가 아닌 앱에서 이 내용을 보기를 원할 것입니다. 이런 경우에 딥링크가 유용한 수단이 됩니다. 앱이 이미 설치된 경우 사용자가 링크를 클릭하면 앱이 열리고 제품이 바로 표시되도록 할 수 있습니다.

딥링크의 주요 목적은 사용자를 유지하는 것입니다. 딥링크는 사용자가 앱을 계속 사용하도록 하며, 리타겟팅 캠페인에서도 중요한 역할을 합니다. 궁극적으로 딥링킹은 앱 생태계 내에서 사용자를 안내하는 다양한 방법을 제공하여 더 나은 사용자 경험을 제공함으로써 판매, 전환 및 유지율을 높일 수 있습니다.

딥링크의 두 가지 유형

딥링크에는 기본 딥링크와 디퍼드(deferred) 딥링크의 두 가지가 있습니다.

기본형

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

기본 딥링크는 앱 마케터가 앱을 설치한 사용자를 찾아 이들이 앱을 다시 사용하도록 만드는 리타겟팅 캠페인에서 유용하게 쓰입니다.

디퍼드 딥링크

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

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

디퍼드 딥링크는 딥링킹 솔루션을 통해서만 제공되는 기능입니다. 디퍼드 딥링크는 SDK 연동을 통해 생성될 수 있으며, 더 자세한 내용은 Android는 이곳에서, iOS는 이곳에서 확인하실 수 있습니다.

컨텍스트 딥링크란?

컨텍스트 딥링크는 더 많은 정보를 저장할 수 있도록 하여 마케터들이 콘텐츠를 다양한 방식으로 활용할 수 있도록 하는 이점을 제공하는 링크입니다.

컨텍스트 딥링크는 기본 딥링크 또는 디퍼드 딥링크에 마케터가 파라미터를 추가한 형태입니다. 따라서 이러한 링크는 여러가지 정보를 포함합니다.

딥링크 생성 방법

가장 기본인 딥링크를 만드는 방법부터 시작해 보겠습니다. 먼저, 사용자를 원하는 목적지로 안내하는 링크를 구현하기 위해 마케터와 개발자 사이의 충분한 논의가 이루어져야 합니다.

이 과정 이후 수동으로 딥링크를 생성하는 것이 가능하나, 이는 오타 등의 상당한 인적 오류 발생 확률을 내포하고 있습니다. 따라서 딥링크를 자동으로 생성하는 솔루션을 사용하면 수동적인 프로세스에 낭비되는 시간을 줄이고, 캠페인과 전략을 최적화하는 데 시간과 리소스를 사용할 수 있습니다.

이러한 효율을 달성하게 하는 툴이 바로 Adjust 딥링크 생성기(Deeplink Generator)입니다. App Link(Android)와 Universal Link(iOS) 모두에서 작동하는 완전한 형식의 딥링크 URL을 통해 직접 딥링크를 구현하는 번거로움을 크게 줄일 수 있습니다.

스킴 기반 딥링크 (Android용 iOS용)와 iOS 9+ Universal Link에 대한 내용은 관련자료에서 더 자세히 살펴보실 수 있습니다. URL을 앱과 연결한다는 기본적인 아이디어는 유사합니다 (스킴 기반 딥링크: youapp://, universal link: https://yourdomain.com/). 즉, 사용자가 URL을 클릭하면 시스템이 설치된 앱을 실행합니다.

하지만 사용자가 딥링크 URL을 클릭했으나 앱이 이미 설치되어 있지 않은 경우는 어떨까요? 안타깝게도 사용자는 오류 메시지를 보게 되거나 아무 일도 일어나지 않을 것입니다. 웹 상에서 기기에 앱이 설치되어 있는지를 직접 확인할 수 있는 방법은 없지만, 앱이 설치되어 있다면 이를 불러오거나, 설치되어 있지 않다면 사용자를 App Store나 관련 웹사이트 또는 다른 장소로 연결할 수 방법은 여러가지가 있습니다.

Android, iOSiOS 9+ Universal Link 문서에서 스킴 기반 모바일 앱 딥링킹에 관한 세부내용을 확인하실 수 있습니다. 그렇다면 딥링크의 작동 예시를 살펴보도록 하겠습니다.

Android에서의 딥링크 구현

Android에서의 딥링크에 대한 예시로, 딥링크 URL이 yourapp://path/이고, 앱의 Bundle ID가 com.yourapp.example이라고 가정해봅시다.

자바 스크립트를 활용한 솔루션

이 문제를 해결하기 위한 일반적이면서 고전적인 방법은 iframe을 사용하여 딥링크 URL을 로드하고, 지연된 자바 스크립트를 스토어로 리디렉션하는 것입니다.

이렇게 하면 브라우저가 먼저 yourapp://path/를 로드하게 됩니다.

  • 앱이 설치된 경우 앱이 실행되고, 자바 스크립트는 실행되지 않습니다.
  • 앱이 설치되어 있지 않은 경우 yourapp://path/를 로드하는 중에 아무 작업도 수행되지 않을 것입니다. 2초 후에 자바 스크립트에 의해 페이지가 Play 스토어로 리디렉션되고, 사용자는 여기서 앱을 설치할 수 있습니다.

다만 위의 코드는 앱이 실행되고 사용자가 브라우저로 다시 전환한 후에도 자바 스크립트가 계속 실행되어 Play 스토어로 다시 리디렉션 되는 문제가 발생할 수 있습니다. 따라서 사용자가 스토어로 리디렉션 되어야 하는지 여부를 결정하기 위해 사용자가 브라우저로 다시 전환하는 시간을 확인하여 최적화를 수행할 수 있습니다.

Intent를 활용한 솔루션

Chrome 문서에 따르면 Chrome for Android 버전 25 이상부터 위 코드의 작동이 중지되었습니다. 다행히 Google은 더 향상된 솔루션인 Intent URL을 제공하고 있습니다. 사용자가 URL intent://path/#Intent;scheme=yourapp;package=com.yourapp.example;end,를 클릭하면

  • 앱이 설치된 경우 Chrome에서 실행됩니다.
  • 앱이 설치되어 있지 않은 경우 Chrome이 Play 스토어를 실행합니다.

어느 딥링크 솔루션을 활용할 것인가?

Intent 솔루션은 구현이 훨씬 간단하고 사용자 환경이 더 원활하기 때문에 이를 사용할 것을 적극 권장합니다. 그러나 Intent 솔루션을 사용하기 위해서는 브라우저 지원이 필요하며, Android 시스템은 너무 단편화되어 여전히 오래된 OS와 브라우저가 사용되는 경우가 많습니다. 또한 수많은 앱에서 사용하는 Android WebView는 기본적으로 Intent URL을 지원하지 않습니다. 다음 표는 주요 Android 브라우저에서 사용해야 할 솔루션을 보여줍니다.

브라우저 JavaScript Intent
Chrome 24 이하
Chrome 25 이상
Firefox
Android 브라우저
Facebook 인앱 브라우저
Twitter 인앱 브라우저
기타 브라우저

iOS에서의 딥링크 구현

딥링크 URL이 yourapp://path/이고 App Store의 앱 ID가 12345678이라고 가정해보겠습니다.

자바 스크립트를 활용한 솔루션

Android와 마찬가지로 iOS에서도 자바 스크립트를 활용할 수 있습니다.

html <script>

window.location.replace("yourapp://path/"); setTimeout(function () {

window.location.replace("https://itunes.apple.com/app/id12345678"); }, 2000);

/

  • 앱이 설치된 경우 첫 코드로 인해 앱이 실행되고, 이후의 스크립트는 실행되지 않습니다.
  • 앱이 설치되어 있지 않은 경우 첫 번째 재배치 코드는 아무 작업도 수행하지 않고, 사용자는 타임아웃 기능을 통해 App Store로 리디렉션됩니다.

그러나 이 스크립트는 Safari와 함께 사용할 경우 iOS 8 이하에서는 잘 작동하지만 다른 버전에서는 잘 작동하지 않는 것으로 확인됐습니다. 다음 표를 확인해보세요.

Browser JavaScript
iOS 8 이하 Safari
iOS Chrome
iOS 8 Facebook 인앱 브라우저 √*
iOS 8 Twitter 인앱 브라우저
iOS 9 이상

* 일부 작동은 Facebook 앱 버전에 따라 다름

Universal link를 활용한 솔루션

Apple은 iOS 9부터 [universal link](https://developer.apple.com/library /prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html){.a-link }를 지원하기 시작했습니다. 이 기능은 Android의 Intent와 유사하게 작동하지만 추가 설정을 필요로 합니다. 또한 iOS 9.2부터 Apple이 프롬프트 창을 비모달(non-modal)로 만든 이후 자바 스크립트 솔루션이 작동을 멈췄습니다.

Universal link를 사용하려면 앱과 연결된 SSL 인증 도메인(예) https://yourdomain.com/)이 있어야 하며 https://yourdomain.com/apple-app-site-association에 다음과 같은 특수한 JSON 파일을 제공해야 합니다.

이 파일은 어떤 경로가 어떤 앱의 딥링크로 사용되는지 기기에 알려줍니다.

그 다음 XCode에서 applinks:yourdomain.com in your com.apple.developer.associated-domains entitlement: 를 입력하시기 바랍니다.

하나의 도메인은 여러 개의 앱과 연결될 수 있으며 그 반대도 가능합니다.

다음으로, 앱이 링크를 수신하고 적절하게 처리할 수 있도록 Handoff에 UIApplicationDelegate 메서드 (application:continueUserActivity:restorationHandler:)를 사용해야 합니다.

JSON 파일에서 "paths": \ [ "/ dress /"]를 설정하여 https://yourdomain.com/dress/를 앱과 연결한다고 가정해 보겠습니다. 사용자가 Safari에서 https://yourdomain.com/dress/1 링크를 클릭하면,

  • 앱이 설치된 경우 앱이 열리고 https://yourdomain.com/dress/1이 UIApplicationDelegate에 전달됩니다. 여기서 어떤 뷰(View)를 열 것인지 결정할 수 있습니다.
  • 앱이 설치되어 있지 않은 경우 https://yourdomain.com/dress/1이 Safari로 열리 며, 웹사이트에 제품을 표시하거나 사용자를 App Store로 리디렉션할 수 있습니다.

Universal link는 iOS를 위한 완벽한 솔루션처럼 보입니다.

Universal link는 iOS를 위한 완벽한 솔루션으로 보입니다. 하지만 아쉽게도 이 방법에도 제약이 있습니다.

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

딥링크를 활용해보세요!

모바일 앱 딥링킹은 복잡한 과정이며 모든 상황에 일괄적으로 적용할 수 있는 방법은 없습니다. Adjust는 딥링크가 제대로 작동할 수 있도록 주요 용도를 감지하고 이에 맞는 최상의 전략을 선택할 수 있도록 돕습니다.

딥링크에 대한 Adjust의 추가 자료들도 확인해 보시기 바랍니다. 먼저 딥링크 가이드를 읽어보세요. 딥링크가 정확히 어떻게 작동하는지, 그리고 Adjust의 딥링크가 차별화되는 이유가 심층 분석 되어 있습니다. 이 밖에도 Universal Linking의 차이점에 대한 주요 가이드와 딥링크의 이점에 대한 설명 등 여러 블로그 게시물이 준비되어 있습니다. Adjust가 제공하는 딥링크에 대한 문서Universal link 쉽게 구현하기 페이지도 참고를 권장드립니다.

질문사항은 Adjust 고객지원 페이지에 언제든지 문의주시기 바랍니다.

월간 발행되는 Adjust 뉴스레터를 구독하고 최신 인사이트를 확인해 보세요.