adjust-icon

다이렉트 딥링크 설정

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

작동 방식

  1. 사용자가 Adjust 링크를 클릭합니다.
  2. OS는 앱을 실행하고, 딥링크를 네이티브 코드(iOS 또는 Android)로 전달합니다.
  3. Adjust SDK는 네이티브 코드에서 OS로부터의 딥링크를 수신하고 directDeeplinkCallback로 전달합니다.
  4. 코드는 어트리뷰션을 위해 링크를 Adjust SDK로 전달합니다. SDK는 단축 브랜드 링크도 해석합니다.
  5. 코드는 해석된 링크를 기반으로 사용자를 탐색합니다.

Adjust SDK 메서드

Adjust SDK가 네이티브 코드에서 수신한 딥링크를 받으려면 Adjust.initSdk를 호출하기 전에 AdjustConfig 객체에 directDeeplinkCallback를 설정하시기 바랍니다.

속성 선언
DirectDeeplinkCallback? directDeeplinkCallback;

Adjust.processAndResolveDeeplink 메서드를 사용하여 다음 작업을 수행합니다.

  • 딥링크 클릭에서 어트리뷰션 기록
  • 단축 브랜드 링크를 이에 상응하는 긴 브랜드 링크로 변환
  • 다른 모든 링크를 그대로 전달
메서드 서명
static Future<String?> processAndResolveDeeplink(AdjustDeeplink deeplink)

Adjust.processDeeplink 메서드는 단축 브랜드 링크를 사용하지 않는 경우 딥링크 클릭으로부터의 어트리뷰션을 기록합니다.

메서드 서명
static void processDeeplink(AdjustDeeplink deeplink)

processAndResolveDeeplink 메서드는 이 레거시 메서드를 대체합니다.

구현

Adjust.initSdk를 호출하기 전에 AdjustConfig 객체에 directDeeplinkCallback를 설정합니다. 콜백은 Adjust SDK가 네이티브 코드에서 OS로부터 딥링크를 수신할 때마다 실행됩니다.

AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
// Set direct deep link callback before initializing SDK
adjustConfig.directDeeplinkCallback = (String? incomingLink) async {
if (incomingLink == null) return;
// Create deep link object
final deeplink = AdjustDeeplink(incomingLink);
// Send deep link to Adjust's servers for attribution.
// If short branded link, receive long link.
// Otherwise, receive original link.
final resolvedLink = await Adjust.processAndResolveDeeplink(deeplink);
// Handle failure if resolvedLink is null
if (resolvedLink == null) return;
/*
* TODO: Handle the deep link and navigate to the appropriate screen.
*
* Possible resolvedLink formats:
*
* 1. https://brandname.go.link/?adj_t=def456&
* adj_link=https%3A%2F%2Fexample.com%2Fsummer-clothes%3Fpromo%3Dbeach
* -> extract and decode the deep link from adj_link
*
* 2. https://brandname.go.link/summer-clothes?promo=beach&adj_t=def456
* -> extract path from the URL
*
* 3. example://summer-clothes?promo=beach&adj_t=def456
* -> extract path from the URL
*
* Note (Android only): If your Android app scheme path differs from iOS,
* you may receive:
* https://brandname.go.link/?adj_t=def456&
* adj_deep_link=example%3A%2F%2Fandroid-specific-path%3Fparam%3Dvalue
* -> extract and decode the deep link from adj_deep_link
*/
};
Adjust.initSdk(adjustConfig);

메인 액티비티가 singleTop, standard이거나 실행 모드를 지정하지 않은 경우, 앱이 이미 실행 중일 때 딥링크가 올바르게 열리도록 전용 딥링크 액티비티를 생성해야 합니다.

적절하게 구성되어 있지 않으면 딥링크가 새로운 태스크에서 앱을 실행하거나 다른 앱의 태스크(예: 브라우저)에서 열리고, 이에 따라 앱의 두 인스턴스가 동시에 실행될 수 있기 때문에 필요합니다.

네이티브 Android 설정

  1. 전용 딥링크 액티비티 접근법을 사용하여 매니페스트 구성
  2. 딥링크를 메인 FlutterActivity로 전달하는 DedicatedDeepLinkActivity를 생성합니다.
  1. 사용자가 Adjust 링크를 클릭합니다.
  2. OS가 딥링크 인텐트와 함께 DedicatedDeepLinkActivity를 실행합니다.
  3. DedicatedDeepLinkActivity 기존 인스턴스를 앞으로 가져오는 플래그를 사용하여 인텐트를 메인 FlutterActivity로 전달합니다.
  4. Adjust SDK는 메인 FlutterActivity로부터 딥링크를 수신하고, 이를 directDeeplinkCallback으로 전달합니다.