요구 사항
관리자 권한 :
관리자, 편집자 또는 커스텀 편집자 권한 :
앱 생성
Adjust 대시보드에서 앱을 생성 합니다.
Adjust 대시보드는 각 앱에 대해 하나의 앱 ID(예: com.example.app)와 APP SCHEME(예: example://)만 지원합니다. 앱이 릴리스 및 디버그 빌드에 서로 다른 앱 ID 및/또는 APP SCHEME을 사용하는 경우 별도의 디버그 앱을 만드세요.
앱의 플랫폼 설정 에 Android를 추가하세요. 앱 ID가 아직 없거나 확실하지 않은 경우, 아직 앱 ID가 없습니다 체크박스를 선택하시기 바랍니다. 이 가이드의 나머지 부분을 따라 모든 필요한 데이터 포인트를 수집한 후, 대시보드의 플랫폼 설정으로 돌아가서 구성을 완료합니다.
브랜드 도메인 설정
Adjust 대시보드에서 Adjust의 go.link 도메인(예: brandname.go.link)을 사용하여 브랜드 도메인을 설정 합니다. 회사에서 엔터프라이즈 도메인 을 사용하는 경우, 엔터프라이즈 도메인도 함께 설정하시기 바랍니다.
iOS 앱과 Android 앱이 Adjust에서 별도의 앱을 사용하는 경우, Adjust 대시보드에서 두 앱에 대해 동일한 브랜드 도메인(brandname.go.link)을 선택해야 합니다.
릴리스 빌드와 디버그 빌드에 별도의 앱을 사용하는 경우, 디버그 앱에 대해 별도의 브랜드 도메인을 생성합니다(brandnamedebug.go.link). Adjust에서 디버그 앱이 iOS와 Android에 대해 별도의 앱을 사용하는 경우, Adjust 대시보드에서 두 디버그 앱에 대해 동일한 브랜드 도메인을 선택해야 합니다.
다음 섹션에서 Android Studio에 구성할 브랜드 도메인을 기록해 두세요.
앱 ID와 APP SCHEME 찾기
딥링킹을 구성하려면 앱 ID 와 APP SCHEME 을 식별해야 합니다. 설정은 일반적으로 다음 구성 중 하나와 일치합니다. 아래 예시를 참조하여 값을 확인하시기 바랍니다.
이 설정에서는 앱 ID가 빌드 gradle 파일에 정의되고, APP SCHEME은 앱 수준 AndroidManifest.xml에 하드코드됩니다.
applicationId = "com.example.app"
이는 릴리스 및 디버그 빌드가 다른 앱에서 일반적인 설정입니다. 앱 ID와 APP SCHEME이 모두 빌드 gradle 파일에서 동적으로 정의됩니다.
applicationId = "com.example.app"
manifestPlaceholders[ "appScheme" ] = "example"
// Debug App ID: com.example.app.debug
applicationIdSuffix = ".debug"
manifestPlaceholders[ "appScheme" ] = "exampleDebug"
Adjust 대시보드에서 구성할 수 있도록 앱 ID와 App Scheme을 기록해 두세요. 이러한 파일을 확인한 후에도 App Scheme을 찾을 수 없는 경우, 다음 섹션에서 APP SCHEME을 생성합니다.
앱 수준의 AndroidManifest.xml 파일을 열고 다음 각 항목에 대한 인텐트 필터를 추가합니다.
Android 앱 링크
Adjust 브랜드 도메인(brandname.go.link) 릴리스
엔터프라이즈 도메인(click.brandname.com)(해당되는 경우)
Adjust 브랜드 링크 디버그(brandnamedebug.go.link)(해당되는 경우)
App Schemes
아직 App Scheme이 없다면 추가합니다. 이는 http 또는 https 이외의 값이어야 합니다.
App Scheme 릴리스(example://)
APP SCHEME 디버그(exampleDebug://)(해당되는 경우)
다음은 기존 태스크가 있는 경우 항상 딥링크를 통해 해당 태스크에서 앱이 열리도록 보장하는 두 가지 방법입니다. 앱의 현재 메인 액티비티 실행 모드 구성에 상응하는 접근법을 선택하시기 바랍니다.
메인 액티비티 접근법
메인 액티비티가 이미 singleTask 또는 singleInstance 인 경우에 사용합니다.
메인 액티비티가 딥링크를 직접 수신합니다.
전용 딥링크 액티비티 접근법
메인 액티비티가 singleTop, standard이거나 실행 모드를 지정하지 않은 경우에 사용합니다.
별도의 singleTask 액티비티가 딥링크 인텐트를 수신하고, 메인 액티비티로 전달한 후 종료됩니다.
이 옵션을 사용하면 메인 액티비티의 실행 모드를 변경하지 않고도 딥링크가 올바르게 작동하도록 할 수 있습니다. 자세한 내용은 Android 실행 모드 문서 를 참조하시기 바랍니다.
<!-- Use this approach if MainActivity is already singleTask or singleInstance -->
android:name = ".MainActivity"
android:launchMode = "singleTask"
<!-- Your existing LAUNCHER intent-filter -->
< action android:name = "android.intent.action.MAIN" />
< category android:name = "android.intent.category.LAUNCHER" />
<!-- Add this intent filter for your Adjust branded domain -->
< 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" />
android:host = "brandname.go.link" />
<!-- Add this intent filter for your app scheme -->
< action android:name = "android.intent.action.VIEW" />
< category android:name = "android.intent.category.DEFAULT" />
< category android:name = "android.intent.category.BROWSABLE" />
< data android:scheme = "example" />
<!-- Use this approach if MainActivity is singleTop, standard, or doesn't specify a launch mode -->
android:name = ".MainActivity"
android:launchMode = "singleTop"
<!-- Your existing LAUNCHER intent-filter -->
< action android:name = "android.intent.action.MAIN" />
< category android:name = "android.intent.category.LAUNCHER" />
<!-- Add this new activity to your manifest to receive deep links -->
android:name = ".DedicatedDeepLinkActivity"
android:launchMode = "singleTask"
android:theme = "@android:style/Theme.Translucent.NoTitleBar" >
<!-- Add this intent filter for your Adjust branded domain -->
< 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" />
android:host = "brandname.go.link" />
<!-- Add this intent filter for your app scheme -->
< action android:name = "android.intent.action.VIEW" />
< category android:name = "android.intent.category.DEFAULT" />
< category android:name = "android.intent.category.BROWSABLE" />
< data android:scheme = "example" />
중요 메인 액티비티에 `android:taskAffinity=""`를 설정하지 마시기 바랍니다. 비어 있는 태스크 어피니티는 `DedicatedDeepLinkActivity`가 기존의 앱 태스크를 찾는 것을 방해하여 그 결과로 두 번째 앱 인스턴스가 실행될 수 있습니다.
Adjust 대시보드에서 수집한 데이터 포인트를 사용하여 앱의 Android 플랫폼 설정 을 완료합니다.
데이터 포인트 예시 필수 요건 릴리스 App ID com.example.app 필수 디버그 App ID com.example.app.debug 디버그 앱 ID가 릴리스 앱 ID와 다른 경우 필수입니다. 릴리스 APP SCHEME example:// Android 앱 링크가 지원되지 않는 사용 사례에 필수입니다. 디버그 APP SCHEME exampleDebug:// 디버그 APP SCHEME이 릴리스 APP SCHEME과 다른 경우 필수입니다.
Android 앱 링크 설정을 통해 딥링킹 을 구성하려면 릴리스 및 디버그 빌드에 대한 SHA-256 인증 핑거프린트도 조회 해야 합니다.