adjust-icon

Android SDK 연동 가이드

Adjust Android SDK를 사용하면 Android 앱에서의 어트리뷰션, 이벤트 등을 기록할 수 있습니다. 본 가이드의 단계를 수행하여 Adjust SDK와 연동되도록 앱을 설정하시기 바랍니다.

시작에 앞서

SDK v5로 업데이트하기 전에 다음을 수행하시기 바랍니다.

  1. SDK v5는 SDK Signature 인증을 기본적으로 지원합니다. 현재 SDK 서명 라이브러리를 사용하는 경우 먼저 이것을 삭제해야 합니다.
  2. 앱이 21보다 낮은 버전의 API를 대상으로 하는 경우 SDK v5를 사용하려면 앱을 업데이트해야 합니다.

1. 환경 설정

Adjust SDK를 사용하려면 프로젝트에 Adjust SDK를 디펜던시로 추가해야 합니다. Adjust SDK는 Maven에서 사용 가능합니다.

프로젝트에 Adjust SDK를 추가하는 방법:

  1. Adjust SDK와 Android 설치 리퍼러 구현 사항을 build.gradle 파일에 추가합니다. 앱에서 웹뷰를 사용하는 경우 Adjust 웹뷰 브릿지를 선택적으로 추가합니다.

    build.gradle
    dependencies {
    implementation 'com.adjust.sdk:adjust-android:5.0.0'
    implementation 'com.android.installreferrer:installreferrer:2.2'
    // Add the following if you are using the Adjust SDK inside web views on your app
    implementation 'com.adjust.sdk:adjust-android-webbridge:5.0.0'
    }

2. Google 플레이 서비스 추가

Google 플레이 스토어를 타겟으로 하는 앱은 기기 식별을 위해 gps_adid(Google 광고 ID)를 사용해야 합니다. gps_adid에 액세스하기 위해 프로젝트에 play-services-ads-identifier AAR을 추가해야 합니다.

Maven을 사용하는 경우, build.gradle 파일에 다음을 추가합니다.

build.gradle
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
}

3. 권한 추가

Adjust SDK에 기기 정보에 대한 액세스 권한을 부여하려면 앱에서 요구하는 권한을 선언해야 합니다. 이를 위해 AndroidManifest.xml 파일에 권한을 추가합니다.

온라인 기능에 액세스하려면 다음 권한을 추가하시기 바랍니다.

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

앱이 Google 플레이 스토어를 타겟으로 하지 않는 경우 기기의 네트워크 상태에 액세스하는 다음 권한을 추가합니다.

AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

Adjust SDK에는 com.google.android.gms.AD_ID 권한이 기본값으로 포함됩니다. 앱이 COPPA(Children’s Online Privacy Protection Act, 어린이 온라인 개인정보 보호법) 준수 대상이거나 Google 플레이 스토어를 타겟으로하지 않는 경우 remove를 사용하여 이 권한을 삭제해야 합니다.

AndroidManifest.xml
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

4. Proguard 설정

앱 최적화를 위해 Proguard를 사용하는 경우 Proguard가 클래스를 삭제하는 것을 방지하는 규칙을 추가해야 합니다.

Proguard.pro
-keep class com.adjust.sdk.** { *; }
-keep class com.google.android.gms.common.ConnectionResult {
int SUCCESS;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
java.lang.String getId();
boolean isLimitAdTrackingEnabled();
}
-keep public class com.android.installreferrer.** { *; }

Google 플레이 스토어에서 앱을 게시하지 않는 경우 다음의 규칙을 추가합니다.

Proguard.pro
-keep public class com.adjust.sdk.** { *; }

5. 설치 리퍼러 설정

설치 리퍼러는 설치를 소스에 어트리뷰션하는 데 사용할 수 있는 고유한 식별자입니다. Adjust SDK는 어트리뷰션을 위해 이 정보가 필요합니다. 다음 메서드 중 하나를 사용하여 설치 리퍼러 정보를 조회하시기 바랍니다.

Google Play Referrer API

Google Play 리퍼러 API는 Google 플레이 스토어를 타겟으로 하는 앱에서 사용할 수 있습니다.

Google Play 리퍼러 API를 지원하려면 build.gradle 파일에 다음을 추가합니다.

build.gradle
dependencies {
implementation 'com.android.installreferrer:installreferrer:2.2'
}

Proguard를 사용하는 경우 dependency가 삭제되는 것을 방지하는 규칙을 추가해야 합니다.

Proguard.pro
-keep public class com.android.installreferrer.** { *; }

Huawei 리퍼러 API

Huawei 리퍼러 API는 Huawei 기기를 타겟으로 하는 앱에서 사용할 수 있습니다. Adjust SDK는 Adjust Huawei 리퍼러 플러그인을 사용하는 Huawei 기기에서의 설치를 기록할 수 있습니다.

이 플러그인을 설치하려면 다음 디펜던시를 build.gradle 파일에 추가합니다.

build.gradle
dependencies {
implementation: "com.adjust.sdk:adjust-android-huawei-referrer:5.0.0"
}

Xiaomi 리퍼러 플러그인

Xiaomi 리퍼러 플러그인을 사용하면 Xiaomi 기기를 타겟으로 하는 앱의 설치 리퍼러 값을 기록할 수 있습니다. 자세한 설치 방법은 플러그인 문서를 참조하시기 바랍니다.

삼성 리퍼러 플러그인

Samsung 리퍼러 플러그인을 사용하면 Samsung Galaxy 스토어를 타겟으로 하는 앱의 설치 리퍼러 값을 기록할 수 있습니다. 자세한 설치 방법은 플러그인 문서를 참조하시기 바랍니다.

Meta 리퍼러 연동

Adjust SDK는 Adjust Meta 설치 리퍼러 플러그인을 사용하는 Meta 설치 리퍼러를 지원합니다. 연동 세부 정보에 관한 문서를 참조하시기 바랍니다.

6. SDK 서명 설정

SDK v5는 SDK Signature 라이브러리 를 포함합니다. 테스트 가이드 를 참조하여 연동이 잘 작동하는지 확인하시기 바랍니다.

서명 보호는 기본 설정에 따라 비활성화되어 있습니다. 활성화하려면 다음이 필요합니다.

  1. Signature 검증 시행.
  2. 테스트하기 전에 앱의 SHA-1 핑커프린트를 제공합니다.

7. Adjust SDK 연동

Adjust SDK를 초기화하려면 다음 정보가 필요합니다.

  • appToken: Adjust 앱 토큰입니다.
  • environment: 앱이 실행 중인 환경. 로컬에서 앱을 테스트하려면 이 값을 AdjustConfig.ENVIRONMENT_SANDBOX 로 설정하시기 바랍니다.

Adjust SDK를 초기화하는 권장 방식은 글로벌 Android 애플리케이션 클래스에서 수행하는 것입니다. 아직 설정하지 않은 경우 다음 단계에 따라 앱을 설정하시기 바랍니다.

  1. Application을 확장하는 클래스를 생성합니다.

  2. AndroidManifest.xml 파일을 열고 <application> 요소를 찾습니다.

  3. <application> 요소에 android:name 어트리뷰션을 추가하고 애플리케이션 클래스의 이름으로 설정합니다. 예를 들어 Application 클래스 이름이 GlobalApplication인 경우 다음과 같이 설정합니다.

    AndroidManifest.xml
    <application android:name=".GlobalApplication">
    <!-- ... -->
    </application>
  4. Application 클래스에서 initSdk 메서드를 찾거나 존재하지 않는 경우 메서드를 추가합니다. 다음 파라미터를 전달하여 Adjust SDK를 초기화합니다.

    • 고객사 전담팀 appToken
    • 앱을 실행할 environment
    • 기록할 LogLevel

Adjust 웹뷰 SDK 연동

앱이 웹뷰를 사용하는 경우 Adjust 웹뷰 SDK를 사용하여 정보를 기록해야 합니다. 먼저 WebView 객체에 대한 레퍼런스를 얻은 후에 다음 단계를 수행합니다.

  1. webView.getSettings().setJavaScriptEnabled(true)를 호출하여 웹뷰에서 자바스크립트를 활성화합니다.
  2. AdjustBridge.registerAndGetInstance(getApplication(), webview)를 호출하여 디폴트 AdjustBridgeInstance를 시작합니다. 이는 Adjust 브릿지를 웹뷰에서 자바스크립트 인터페이스로 등록합니다.
  3. AdjustBridge.setWebView()를 호출하여 새로운WebView를 설정합니다.
  4. AdjustBridge.unregister()를 호출하여 AdjustBridgeInstanceWebView의 등록을 취소합니다.
  5. 전체 설정에 대한 예시는 다음과 같습니다.
  1. HTML로 Adjust 자바스크립트 파일을 가져옵니다.

    <script type="text/javascript" src="adjust.js"></script>
    <script type="text/javascript" src="adjust_event.js"></script>
    <script type="text/javascript" src="adjust_third_party_sharing.js"></script>
    <script type="text/javascript" src="adjust_config.js"></script>
  2. 이제 appTokenenvironmentAdjustConfig 클래스로 전달하여 웹뷰에서 Adjust SDK를 초기화할 수 있습니다.

    let yourAppToken = "{YourAppToken}";
    let environment = AdjustConfig.EnvironmentSandbox;
    let adjustConfig = new AdjustConfig(yourAppToken, environment);
    adjustConfig.setLogLevel(AdjustConfig.LogLevelVerbose);
    Adjust.initSdk(adjustConfig);

8. 프로덕션을 위한 앱 빌드

테스트를 완료한 후에 프로덕션을 위한 앱을 빌드할 수 있습니다. 이를 위해 config 객체를 업데이트해야 합니다.

  1. 필요한 항목만 반환하도록 로그 수준을 조정합니다.
  2. environmentAdjustConfig.ENVIRONMENT_PRODUCTION로 설정합니다.