Android 딥링크 예제 - android diblingkeu yeje

웹에서 앱을 실행시키는 방법을 알아보다 딥링크라는 개념을 알게되어 정리해 봤습니다.

딥링크란?

http 혹은 https로 시작하는 인터넷 주소는 모두 특정페이지로 이동하는데 앱에서도 이와 유사한 기능을 제공하는데 이를 딥링크라고 합니다.
딥링크를 적용하기위해선 앱의 매니페스트파일상에 설정을 해주어야하고 웹에서 접근 시 앱에서 지정한 경로를 지정해줘야 합니다.

제공방식은 3가지로 구분된다.

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

'URI Scheme' 방식의 딥링크

URI 스킴 방식은 Scheme://Path라는 두개의 요소로 구성됩니다.
Scheme 는 앱의 이름, Path는 접근 경로 (host) 를 지정합니다.

안드로이드 매니페스트 설정

<activity​ android:name=".MainActivity" android:screenOrientation="portrait"> 
	<intent-filter> 
		<action android:name="android.intent.action.MAIN" /> 
		<category android:name="android.intent.category.LAUNCHER" /> 
	</intent-filter> 
    <intent-filter> 
		<action android:name="android.intent.action.VIEW" /> 
		<category android:name="android.intent.category.DEFAULT" /> 
		<category android:name="android.intent.category.BROWSABLE" /> 
		<data​ android:host="main_web" android:scheme="myappandroi" /> 
	</intent-filter> 
</activity>

Javascript 이동 링크

// 앱이 있으면 앱 실행, 없으면 마켓 이동
let pakageName = 'com.myappandroi.m'
location.href ='intent://main_web#Intent;scheme=myappandroi;package=com.myappandroi.m;end';

안드로이드 공식 홈페이지 참고하면 더 자세한 내용들이 많습니다.

참고자료
딥링크의 이해
예제1 - 전체적인 참고
예제2 - 웹 사용 포멧 참고
안드로이드 공식 홈페이지 - 딥링크

모바일 앱 딥링킹은 사용자가 웹 페이지 또는 다른 앱에서 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, iOS 및 iOS 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 브라우저에서 사용해야 할 솔루션을 보여줍니다.