adjust-icon

딥링크 설정

사용자를 앱의 특정 페이지로 이동시키기 위해 딥링크를 생성할 수 있습니다. Adjust SDK는 사용자 기기에 앱이 이미 설치되어 있는지 여부에 따라 다른 로직을 적용합니다.

  • 다이렉트 딥링킹: 사용자 기기에 앱이 이미 설치되어 있는 경우에 사용됩니다. 사용자는 링크가 의도한 페이지로 이동됩니다.
  • 디퍼드 딥링킹: 사용자가 아직 앱을 설치하지 않은 경우에 사용됩니다. 링크는 먼저 사용자를 앱을 설치할 수 있는 스토어 페이지로 이동시킵니다. 사용자가 앱을 설치한 이후에 링크는 의도한 페이지를 엽니다.

SDK는 사용자가 링크를 통해 앱을 실행한 이후에 딥링크 데이터를 읽을 수 있습니다.

스킴 이름 설정

사용자가 앱을 설치한 경우, 사용자가 딥링크 정보가 포함된 링크를 클릭하면 딥링크가 실행됩니다. Adjust SDK는 앱에서 사용하기 위해 딥링크 정보를 파싱할 수 있는 툴을 포함하고 있습니다. 딥링킹을 설정하려면 고유한 스킴 이름 을 선택해야 합니다.

사용자가 딥링크를 클릭할 때 특정 활동이 실행되도록 설정할 수 있습니다. 이를 위해 다음을 수행하시기 바랍니다.

  1. 스킴 이름AndroidManifest.xml 파일 내 활동에 지정합니다.
  2. 활동 정의에 intent-filter 노드를 추가합니다.
  3. intent-filter 노드에 스킴 이름 을 포함하는 android:scheme 데이터 노드를 추가합니다.

이 예시에서는 스킴 이름 adjustExample을 사용하여 MainActivity라는 활동을 열도록 설정하는 방법을 보여줍니다.

AndroidManifest.xml
<activity android:name=".MainActivity" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" 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:scheme="adjustExample" />
</intent-filter>
</activity>

이제 앱이 URI 스킴을 처리할 수 있습니다. 사용자가 스킴 이름 을 포함하는 deep_link 파라미터가 포함된 링크를 클릭하면 이 활동이 실행됩니다.

https://app.adjust.com/abc123?deep_link=adjustExample%3A%2F%2F

Android 앱 링크의 경우, intent 필터를 추가하여 앱이 처리할 수 있는 URL을 지정합니다. android:autoVerify="true" 필터에 data 어트리뷰션과 함께 AndroidManifest.xml 요소를 포함합니다.

이제 앱이 Android 앱 링크를 처리할 수 있습니다. 사용자가 insights.go.link 도메인이 포함된 링크를 클릭하면 앱이 자동으로 실행됩니다.

https://insights.go.link/login?adj_t=abc123

deep_link 파라미터의 콘텐츠 전송 위치를 지정할 수 있습니다. 이를 위해 AndroidManifest.xml 파일에서 활동에서 android:launchMode 속성을 설정합니다.

Adjust SDK는 onCreate 또는 onNewIntent 메서드를 사용하여 활동의 인텐트 객체 내에서 딥링크 정보를 전달합니다. 앱이 실행되고 두 메서드 중 하나가 실행된 후에 딥링크 콘텐츠에 액세스할 수 있습니다. 이후에 해당 정보를 앱의 다른 부분에서 액세스할 수 있습니다.

onCreate 또는 onNewIntent 메서드 내에서 getData() 메서드를 호출하여 딥링크 정보를 추출할 수 있습니다.

디퍼드 딥링크

Adjust SDK는 기본 설정에 따라 디퍼드 딥링크를 실행합니다. 추가 설정은 필요하지 않습니다. 이 행동을 비활성화하려면 AdjustConfig.setOnDeferredDeeplinkResponseListener 메서드를 사용하여 디퍼드 딥링크 콜백을 설정해야 합니다.

메서드 서명
public void setOnDeferredDeeplinkResponseListener(OnDeferredDeeplinkResponseListener onDeferredDeeplinkResponseListener)

디퍼드 딥링크 수신 시 델리게이트 함수를 호출하도록 Adjust SDK를 구성할 수 있습니다. 이 델리게이트 함수는 딥링크를 String 인수로 수신합니다.

딥링크를 열려면 델리게이트 함수에서 true를 반환합니다. 열지 않으려면 false를 반환합니다.

다음 예시에서는 콜백 함수에서 false 값을 반환하여 SDK가 활동을 시작하는 것을 방지하는 방법을 보여줍니다.

메서드 서명
public static void processDeeplink(AdjustDeeplink adjustDeeplink, Context context)

Adjust를 통해 딥링크를 사용하여 리인게이지먼트 캠페인을 집행할 수 있습니다. 자세한 내용은 Campaign Lab에서 딥링크를 설정하는 방법을 확인하시기 바랍니다.

사용자를 리어트리뷰션하려면 가장 먼저 표시되는 액티비티의 onCreateonNewIntent 메서드에서 Adjust.processDeeplink 메서드를 호출해야 합니다. 이후 Adjust SDK는 딥링크 내에서 새로운 어트리뷰션 데이터를 찾습니다. SDK가 새로운 정보를 찾으면 이는 리어트리뷰션을 위해 Adjust 서버로 전달됩니다.

메서드 서명
public static void getLastDeeplink(final Context context, final OnLastDeeplinkReadListener onLastDeeplinkReadListener)

Adjust.getLastDeeplink() 메서드를 호출하여 Adjust.processDeeplink() 또는 Adjust.processAndResolveDeepLink() 메서드 에 의해 해석된 마지막 딥링크 URL을 반환할 수 있습니다. 이 메서드는 마지막으로 해석된 딥링크를 딥링크 객체로 반환합니다.

메서드 서명
public static void resolveLink(final String url,
final String[] resolveUrlSuffixArray,
final AdjustLinkResolutionCallback adjustLinkResolutionCallback)

일부 ESP(이메일 서비스 제공자)는 마케팅 캠페인에서 자체 커스텀 도메인을 사용합니다. 커스텀 도메인을 통해 클릭을 측정해야 하는 경우, 해당 링크를 해석하기 위해 SDK를 설정해야 합니다. 이를 위해 AdjustLinkResolution 클래스의 resolveLink 메서드를 호출합니다. Adjust SDK는 이후 딥링크를 열 때 해당 커스텀 링크를 따라가 해석합니다. 이를 통해 이메일 측정 캠페인과의 상호작용을 기록할 수 있습니다.

resolveLinkWithUrl 메서드는 다음 인수를 사용합니다.

  • url (String): 애플리케이션을 연 딥링크
  • resolveUrlSuffixArray (String[]): 해석해야 하는 구성된 캠페인의 커스텀 도메인
  • adjustLinkResolutionCallback (AdjustLinkResolutionCallback): 최종 URL을 반환하는 콜백.

메서드는 딥링크를 resolveUrlSuffixArray의 도메인에 대해 확인합니다. 일치하는 것이 없는 경우 딥링크 URL을 그대로 전달합니다. 일치하는 것이 있는 경우 링크를 해석하고, 결과 딥링크를 반환하도록 시도합니다. 이후 이를 콜백 파라미터에 보관합니다.

반환된 딥링크를 사용하여 사용자를 리어트리뷰션할 수 있습니다. 이를 위해 딥링크를 Adjust.processDeeplink 메서드로 전달합니다.