iOS

[iOS] Deffered Deep link를 클립보드로 구현하기

GODOLs 2023. 11. 28. 14:40

안녕하세요 오늘은 앱의 내부로 연결해주는 Deep Link에서 앱을 미설치시 설치후 링크로 갈 수 있게 하는 Deffered Deep Link를 구현하는 것을 진행하려고 합니다.

딥링크 알고리즘입니다.


Deffered Deeplink 란?

'Deferred Deep Linking'은 모바일 앱 마케팅 및 광고에서 사용되는 기술로, 사용자가 앱을 아직 설치하지 않았을 때 특정 콘텐츠나 페이지로 직접 이동시키는 링크입니다. 이 링크는 사용자가 앱을 설치하고 나서도 계속 작동합니다. 예를 들어, 특정 제품 페이지나 프로모션을 보여주는 광고를 클릭했을 때, 해당 앱이 설치되어 있지 않다면 우선 앱 스토어로 이동시키고, 앱을 설치한 후에는 사용자가 처음에 관심을 가졌던 페이지나 콘텐츠로 안내합니다. 

 

iOS 에서 Deffered Deeplink에서 문제점 

정확히 말하면 iOS에서는 Deffered Deep Link를 직접적으로 구현하는 것이 아닌 설치시 저장된 Clipboard를 이용해서 활용하고 있습니다.  iOS 14 이후에는 개인 보호 정책이 수립 됨에 따라 앱 설치시 붙여넣기 허용 이라는 Alert를 통해 사용할 수 있습니다.
(붙여넣기 허용을 거절하면 Deffred Deeplink는 실행이 되지 않습니다.)

코드 구현

UIApplicationDelegate Protocol을 상속 받은 AppDelegate Class에서 구현합니다.

아래 application 함수는 가장 앱을 첫 실행시에 작동하는 함수입니다.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
  	// 클립 보드 내용 확인해서 딥링크 url이 맞다면 처리할 수 있도록
    if let clipboardText = UIPasteboard.general.string {
		print("클립보드 내용 \(clipboardText))
    }
}

구현 방법

구현방법은 두가지 방법이 있습니다. 앱스토어에 올리고나서 구현 or XCode에서 앱 빌드후 실행하면서 구현

1.앱스토어 등록 되고 나서 테스트

우선 Firebase에서 제공하는 Dynamic link를 사용하면됩니다. https://preview.page.link/[앱정보] 이런식으로 제공을 하는데요.

체크박스가 체크가 된 상황에서 Open을 눌러야 Dynamic link가 작동합니다.

 

 

체크박스가 체크가 된 상황에서 Open을 누르면 앱 스토어 모달이 올라옵니다.
(체크박스가 체크가 되지 않는 상황이라면 Link가 클립보드에 저장이 되지 않기에 Deffred Deep Link를 사용할 수 없게 됩니다.) 

 

 

 

 

 

 

 

 

 

 


 

앱스토어 모달이 올라왔습니다. (트위터 앱으로 이미지를 대체 하겠습니다.) 이 앱을 설치를 하고 나서 앱을 실행하면 Alert가 올라옵니다.

 

 

 

 

 

 

 

 

 

 


 

붙여넣기를 허용을 눌러야지 Deffered Deep Link가 가능해집니다. 

 

 

 

 

 

 


2.로컬 테스트

간단합니다. Firebase에서 제공한 Link 텍스트를 복사합니다. (클립보드 저장과 같습니다) 
XCode 에서 빌드 및 설치를 진행합니다. 그러면 위에서 보여드렸던과 같은 붙여넣기 허용 유무를 판단하는 Alert가 뜰 것입니다.

기능을 추가하면서 다른 Deep Link는 쉽게 구현했지만 Deffered Deep Link로 설치시 링크 이동을 너무 허우적되어서
클립보드라는 것을 망각한채 애꿎은 다른 Application 함수만 일주일 동안 들여다 보았습니다.

여러분들은 저 처럼 삽질 보단 클립보드를 통해서 구현할 수 있다는 것을 활용하시면 좋을 것 같습니다.

반응형