adjust-icon

다이렉트 딥링크 설정

앱이 설치된 사용자가 Adjust 링크를 클릭하면 다이렉트 딥링킹을 통해 앱 내의 특정 콘텐츠로 바로 이동할 수 있습니다.

설정

iOS는 앱 구현에 따라 다이렉트 딥링크를 수신하는 몇 가지 메서드를 제공합니다.

이러한 메서드에 따라 다음 메서드 중 하나를 사용하여 Adjust SDK에 딥링크를 전달할 수 있습니다.

processDeeplink(_:completionHandler:) 메서드를 사용하여 다음 작업을 수행합니다.

  • 딥링크 클릭에서 어트리뷰션 기록
  • 짧은 브랜드 링크를 해당 긴 브랜드 링크로 변환
  • 다른 모든 링크를 그대로 전달

앱은 해결된 링크를 분석하여 적절한 화면으로 이동함으로써 처리할 수 있습니다. Adjust의 긴 브랜드 링크, 기타 유니버설 링크, 앱 스킴 딥링크를 포함한 모든 딥링크에 이 메서드를 사용할 수 있습니다.

메서드 서명
+ (void)processDeeplink:(nonnull NSURL *)deeplink
completionHandler:(void (^_Nonnull)(NSString * _Nonnull resolvedLink))completionHandler;

Adjust SDK에는 짧은 브랜드 링크를 사용하지 않는 경우 딥링크 클릭에서 어트리뷰션을 기록할 수 있는 appWillOpen(_:) 메서드가 있습니다.

메서드 서명
+ (void)appWillOpenUrl:(nonnull NSURL *)url;

그러나 processDeeplink(_:completionHandler:) 메서드는 이 레거시 메서드의 기능을 대체하므로, 이 새로운 메서드를 사용하는 것이 권장됩니다.

중요 구현 참고 사항

다음 딥링크 처리 모범 사례를 따르세요.

  1. 링크 처리 요구사항

    • 귀하의 앱은 Adjust 브랜드 링크(brandname.go.link)와 유니버설 링크(example.com)를 동일하게 처리해야 합니다. 앱에서 도메인 허용 리스트를 사용하는 경우 Adjust 브랜드 도메인이 포함되어 있는지 확인하세요. 예를 들어, 다음 두 링크는 모두 동일한 화면으로 이동해야 합니다.

      • Adjust 브랜드 링크: https://brandname.go.link/summer-clothes?promo=beach
      • 유니버설 링크: https://example.com/summer-clothes?promo=beach
    • 귀하의 앱은 Adjust 브랜드 링크와 앱 스킴 딥링크를 동일하게 처리해야 합니다. iOS가 유니버설 링크를 지원하지 않는 경우, Adjust는 이를 해당 앱 스킴 형식으로 변환합니다. 예를 들어, 다음 두 링크는 모두 동일한 화면으로 이동해야 합니다.

      • Adjust 브랜드 링크: https://brandname.go.link/summer-clothes?promo=beach
      • 앱 스킴 딥링크: example://summer-clothes?promo=beach
  2. 앱 상태 고려사항

    • 앱이 어떤 상태에서든(‘실행 중이 아님’, 백그라운드, 또는 해당되는 경우 포그라운드) 링크를 올바르게 처리하는지 확인하세요.
    • 사용자가 아직 인증되지 않은 경우와 같이 즉시 처리할 수 없는 경우 딥링크를 저장했다가 앱이 탐색할 준비가 되면 처리하는 것을 고려하세요.
  3. 인앱 탐색

    • 앱이 UIApplication.open(_:options:completionHandler:) 또는 SwiftUI의 openURL을 호출하여 자체 유니버설 링크를 열려고 할 때, iOS는 이를 앱이 아닌 Safari에서 엽니다. 이러한 메서드를 내부 탐색을 위해 사용하려면 앱 스킴 딥링크만 전달할 수 있습니다. 또는 앱 내에 유니버설 링크를 배치하고 딥링크 처리 로직을 사용하여 이를 파싱하고 적절한 화면으로 이동할 수 있습니다.

구현

앱의 구조에 맞는 구현을 사용하세요.

AppDelegate 라이프사이클을 사용하는 UIKit 앱

iOS 다이렉트 딥링킹 메서드를 구현하려면 AppDelegate를 업데이트하세요.

SceneDelegate 라이프사이클을 사용하는 UIKit 앱

iOS 다이렉트 딥링킹 메서드를 구현하려면 SceneDelegate를 업데이트하세요.

AppDelegate 라이프사이클을 사용하는 SwiftUI 앱

아직 만들지 않았다면 아래 App.swift 파일 예시와 같이 프로젝트의 기본 디렉터리에 AppDelegate.swift 파일을 만들고 기본 애플리케이션 파일에서 이 파일을 참조하세요. 이는 앱 라이프사이클 이벤트 및 Adjust SDK 연동을 처리하는 데 필요합니다. 또한 앱이 설치되면 유니버설 링크와 앱 스킴 딥링크를 수신하는 onOpenURL SwiftUI 수정자를 구현하세요.

SceneDelegate 라이프사이클을 사용하는 SwiftUI 앱

AppDelegate 라이프사이클을 사용하는 SwiftUI 앱 섹션의 지침을 따르세요. onOpenURL SwiftUI 수정자는 앱이 설치된 상태에서 링크가 백그라운드 또는 포그라운드 상태에서 앱을 열 때 유니버설 링크와 앱 스킴 딥링크를 수신합니다.

또한 SceneDelegate 라이프사이클을 사용하는 UIKit 앱 섹션에서 scene(_:willConnectTo:options:) 메서드를 구현합니다. 이 메서드는 앱이 설치되어 있고 링크가 ‘실행되지 않는’ 상태에서 앱을 열 때 유니버설 링크 및 앱 스킴 딥링크를 수신합니다.