딥링크란 앱의 특정 화면으로 이동시키기 위한 링크를 의미한다. 안드로이드 애플 모두 URI스킴 방식을 사용하고 있었으나, URI스킴의 문제점으로 인해 현재는 App link (안드로이드), Universal link(애플)를 사용하고 있다고 한다.
<intent-filter>
<data android:host="main" android:scheme="appname" />
</intent-filter>
Scheme의 unique를 보장할 수 없음
Google Play, 원스토어, Galaxy Store 모두 market 이라는 Scheme을 사용하고 있어서 URI 스킴을 눌렀을 때 이 중 어떤 것으로 동작하도록 할 것인지 선택해야함
(iOS는 가장 마지막에 설치된 앱으로만 연결된다고…)
url을 통해서 앱의 특정 화면으로 이동하도록 처리하는 방법. 안드로이드는 App link라고 부르고 있고, 애플은 Universal link라고 부르고 있음
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="url" android:pathPrefix="/prefix" />
</intent-filter>
applinks:url
형태로 등록Direct Deeplink
Deferred Deeplink
딥링크 클릭
딥링크 서버에 클릭한 유저 구분자와 링크 정보를 저장
애플의 경우 유저 구분자로써 IDFA(광고식별자)를 사용하고 있는데, iOS 14부터 이에 대한 권한을 허용 받는 식으로 변경되었음
구글은 AAID를 활용하고 있고, 이건 권한 없어도 가져올 수 있는 정보
앱 설치 후 실행시 서버에 해당 유저가 열렸어야 했던 링크 정보가 있는지 확인
서버에서 열렸어야할 딥링크 주소를 전달
앱에서 다시 해당 링크의 딥링크 동작을 반복하여 지정된 앱 내 특정 페이지를 열어줌
App link & Universal link 한계