adjust-icon

Adjust 스토어 & 사전 설치 툴

앱이 기기에 사전 설치된 경우에는 사전 설치 링크를 사용하여 사용자를 어트리뷰션해야 합니다. Adjust의 스토어 & 사전 설치 툴(adjust-dtt)은 APK에 이러한 정보를 삽입할 수 있도록 해줍니다. Adjust SDK는 adjust-dtt에 의해 삽입된 정보를 읽습니다. 이를 통해 사전 설치된 앱의 사용자를 특정 Adjust 링크로 어트리뷰션할 수 있습니다.

시작에 앞서

우선 adjust-dtt 툴을 GitHub에서 다운로드합니다. 툴 사용을 위해 해당 파일을 실행 파일로 만들어야 합니다. 다음의 명령어를 실행하여 파일을 실행 파일로 만드시기 바랍니다.

Terminal window
$ chmod +x adjust-dtt

먼저 시스템을 설정한 후에 adjust-dtt를 사용할 수 있습니다. adjust-dtt를 사용하려면 기기에 다음 툴을 설치해야 합니다.

  • ruby: adjust-dtt 실행에 사용하는 언어 툴.
  • apktool: APK의 언패킹 및 리패킹에 사용하는 툴.
  • jarsigner: APK 서명에 사용하는 툴.

다음 지침에 따라 각 항목을 설치합니다.

Ruby

apktool

jarsigner

1단계: keystore 파일 얻기

APK를 생성하면 Android Studio가 이를 서명할 것입니다. 이는 APK의 “비서명” 버전을 생성한 경우에도 마찬가지입니다. 이 경우 Android Studio는 APK를 기본 설정된 디버그 서명 keystore 파일로 서명합니다. 이 keystore 파일은 기본 설정에 따라 ~/.android/debug.keystore 에 있습니다.

Android Studio에서 서명된 SPK를 내보내기 하는 경우, APK를 커스텀 서명 keystore 파일로 서명하게 됩니다.

adjust-dtt를 사용하려면, 이러한 기본 설정 keystore 파일 또는 커스텀 keystore 파일에 액세스할 수 있어야 합니다. APK 언패킹을 위해 apktool 사용 시 모든 서명이 삭제되기 때문입니다. APK 리패킹이 완료되면 서명은 재활성화 될 수 없습니다. Android 기기로 전달하기 위해 APK를 재서명하려면 서명 정보와 함께 jarsigner를 실행해야 합니다.

이후 Adjust 대시보드에서 링크를 생성해야 합니다. 링크 토큰은 사전 설치 앱에 대한 기본 설정 캠페인으로 사용하게 됩니다. 따라서 사전 설치된 앱이 있는 모든 사용자는 해당 토큰에 어트리뷰션 됩니다.

3단계: config 파일 생성하기

keystore 파일과 링크 토큰이 모두 준비되면 configuration 파일을 생성할 수 있습니다. adjust-dtt는 설정을 읽기 위해 adjust-config.yaml configuration 파일을 사용합니다. 이 파일은 설정해야 하는 모든 앱 스토어에 대한 설정을 포함합니다.

파라미터데이터 유형글로벌 또는 스토어설명
apk_pathString둘 다APK에 대한 절대 경로
keystore_pathString둘 다keystore 파일에 대한 절대 경로
keystore_passString둘 다keystore 서명 암호
keystore_aliasString둘 다Your keystore alias.
default_trackerStringPer-store사전 설치 어트리뷰션을 위한 Adjust 링크 토큰

본 예시의 adjust-config.yaml 파일은 store_1, store_2, store_3라는 이름의 3개 스토어에 대한 설정을 포함합니다.

adjust-config.yaml
apk_path: /Users/username/Desktop/apk/example-release.apk
keystore_path: /Users/username/Desktop/apk/mykeystore.jks
keystore_pass: mykeystorepass
keystore_alias: mykeystorealias
stores:
store_1:
default_tracker: abc123
store_2:
default_tracker: abc456
store_3:
default_tracker: abc789

각 스토어에 동일한 설정을 사용하고자 하는 경우, 파일의 루트에 글로벌 파라미터를 정의할 수 있습니다. 스토어별로 설정된 파라미터는 해당 스토어에 대한 글로벌 파라미터보다 우선으로 취급됩니다. 그 예는 다음과 같습니다.

adjust-config.yaml
apk_path: /Users/username/Desktop/apk/example-release.apk
keystore_path: /Users/username/Desktop/apk/mykeystore.jks
keystore_pass: mykeystorepass
keystore_alias: mykeystorealias
stores:
store_1:
default_tracker: abc123
keystore_path: /Users/username/Desktop/apk/differentkeystore.jks
keystore_pass: differentkeystorepass
keystore_alias: differentkeystorealias
store_2:
default_tracker: abc456
store_3:
default_tracker: abc789

본 예시에서 adjust-dtt 툴은 store_1에 대한 APK 생성 시 differentkeystore.jks, differentkeystorepass differentkeystorealias를 사용합니다. 이 툴은 각 스토어에 대해 수정된 APK를 생성합니다.

4단계: adjust-dtt 툴 실행하기

adjust-dtt 툴은 adjust-config.yaml 파일에 대한 경로를 인수로 사용합니다. 캠페인 정보를 APK에 추가하려면 툴을 다음과 같이 실행합니다.

Terminal window
$ adjust-dtt adjust-config.yaml

adjust-dtt 다음을 수행합니다.

  1. APK를 폴더로 언패킹합니다. 폴더는 APK와 동일한 디렉터리에 위치할 것입니다. 이름 또한 APK와 동일합니다.

  2. assets 폴더와 adjust_config.properties 파일을 검색합니다. adjust_config.properties 파일은 디폴트 캠페인 정보를 포함합니다.

    1. 해당 폴더와 파일이 없는 경우, assets 폴더와 adjust_config.properties 파일을 생성합니다. 이 툴은 default_tracker 정보를 adjust_config.properties 파일에 씁니다.
    2. adjust_config.properties 파일이 있는 경우 해당 파일에 default_tracker 정보를 씁니다. 파일이 이미 디폴트 캠페인 값을 포함한 경우에는 두 값이 비교됩니다. 두 값이 다른 경우, adjust-config.yaml 파일의 값은 기존의 값을 덮어쓰게 됩니다.
  3. APK를 리패키징합니다.

  4. adjust-config.yaml에 명시된 정보로 APK가 서명됩니다. keystore_path, keystore_pass, keystore_alias 파라미터를 사용합니다.

  5. 원본과 동일한 이름과 _[store_name] 접미사를 가진 APK 생성. 위 예시에서 툴은 3개의 APK 파일을 생성합니다. 이 메서드의 이름은 example-release_store_1.apk, example-release_store_2.apk , example-release_store_3.apk 입니다. 툴이 파일 생성을 완료한 이후 이름을 변경할 수 있습니다.

본 툴과 관련한 문의 사항 및 문제 발생 시 support@adjust.com으로 연락주시기 바랍니다.