앱이 기기에 사전 설치된 경우에는 사전 설치 링크를 사용하여 사용자를 어트리뷰션해야 합니다. Adjust의 스토어 & 사전 설치 툴(adjust-dtt
)은 APK에 이러한 정보를 삽입할 수 있도록 해줍니다. Adjust SDK는 adjust-dtt
에 의해 삽입된 정보를 읽습니다. 이를 통해 사전 설치된 앱의 사용자를 특정 Adjust 링크로 어트리뷰션할 수 있습니다.
시작에 앞서
우선 adjust-dtt
툴을 GitHub에서 다운로드합니다. 툴 사용을 위해 해당 파일을 실행 파일로 만들어야 합니다. 다음의 명령어를 실행하여 파일을 실행 파일로 만드시기 바랍니다.
먼저 시스템을 설정한 후에 adjust-dtt
를 사용할 수 있습니다. adjust-dtt
를 사용하려면 기기에 다음 툴을 설치해야 합니다.
ruby
:adjust-dtt
실행에 사용하는 언어 툴.apktool
: APK의 언패킹 및 리패킹에 사용하는 툴.jarsigner
: APK 서명에 사용하는 툴.
다음 지침에 따라 각 항목을 설치합니다.
Ruby
Ruby는 macOS 기기에 사전 설치되어 있습니다.
ruby-lang 웹사이트의 배포 관련 지침을 참조하시기 바랍니다.
apktool
Homebrew를 사용하여 Apktool을 설치할 수 있습니다.
또는 Apktool 웹사이트의 지침을 참조하시기 바랍니다.
Apktool 웹사이트의 배포 관련 지침을 참조하시기 바랍니다.
jarsigner
jarsigner
JDK(Java Development Kit)의 일부로 포함되어 있습니다. 이는 OpenJDK와 Oracle JDK 모두에서 이용 가능합니다. OpenJDK는 Homebrew를 사용하여 설치할 수 있습니다. 다음의 명령어를 실행하시기 바랍니다.
Oracle JDK를 사용하는 경우, Oracle 웹사이트의 지침을 참조하시기 바랍니다.
jarsigner
JDK(Java Development Kit)의 일부로 포함되어 있습니다. 이는 OpenJDK와 Oracle JDK 모두에서 이용 가능합니다. OpenJDK는 다양한 주요 배포 버전의 리포지터리에서 찾을 수 있습니다. 배포 버전의 설치 설명서를 검색하여 OpenJDK를 설치하시기 바랍니다. jarsigner
를 사용하려면 개발 패키지를 설치해야 합니다.
Oracle JDK를 사용하는 경우, Oracle 웹사이트의 지침을 참조하시기 바랍니다.
사전 설치 링크 정보 추가
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
를 실행해야 합니다.
2단계: 링크 생성
이후 Adjust 대시보드에서 링크를 생성해야 합니다. 링크 토큰은 사전 설치 앱에 대한 기본 설정 캠페인으로 사용하게 됩니다. 따라서 사전 설치된 앱이 있는 모든 사용자는 해당 토큰에 어트리뷰션 됩니다.
3단계: config 파일 생성하기
keystore 파일과 링크 토큰이 모두 준비되면 configuration 파일을 생성할 수 있습니다. adjust-dtt
는 설정을 읽기 위해 adjust-config.yaml
configuration 파일을 사용합니다. 이 파일은 설정해야 하는 모든 앱 스토어에 대한 설정을 포함합니다.
파라미터 | 데이터 유형 | 글로벌 또는 스토어 | 설명 |
---|---|---|---|
apk_path | String | 둘 다 | APK에 대한 절대 경로 |
keystore_path | String | 둘 다 | keystore 파일에 대한 절대 경로 |
keystore_pass | String | 둘 다 | keystore 서명 암호 |
keystore_alias | String | 둘 다 | Your keystore alias. |
default_tracker | String | Per-store | 사전 설치 어트리뷰션을 위한 Adjust 링크 토큰 |
본 예시의 adjust-config.yaml
파일은 store_1
, store_2
, store_3
라는 이름의 3개 스토어에 대한 설정을 포함합니다.
각 스토어에 동일한 설정을 사용하고자 하는 경우, 파일의 루트에 글로벌 파라미터를 정의할 수 있습니다. 스토어별로 설정된 파라미터는 해당 스토어에 대한 글로벌 파라미터보다 우선으로 취급됩니다. 그 예는 다음과 같습니다.
본 예시에서 adjust-dtt
툴은 store_1
에 대한 APK 생성 시 differentkeystore.jks
, differentkeystorepass
differentkeystorealias
를 사용합니다. 이 툴은 각 스토어에 대해 수정된 APK를 생성합니다.
4단계: adjust-dtt 툴 실행하기
adjust-dtt
툴은 adjust-config.yaml
파일에 대한 경로를 인수로 사용합니다. 캠페인 정보를 APK에 추가하려면 툴을 다음과 같이 실행합니다.
adjust-dtt
다음을 수행합니다.
-
APK를 폴더로 언패킹합니다. 폴더는 APK와 동일한 디렉터리에 위치할 것입니다. 이름 또한 APK와 동일합니다.
-
assets
폴더와adjust_config.properties
파일을 검색합니다.adjust_config.properties
파일은 디폴트 캠페인 정보를 포함합니다.- 해당 폴더와 파일이 없는 경우,
assets
폴더와adjust_config.properties
파일을 생성합니다. 이 툴은default_tracker
정보를adjust_config.properties
파일에 씁니다. adjust_config.properties
파일이 있는 경우 해당 파일에default_tracker
정보를 씁니다. 파일이 이미 디폴트 캠페인 값을 포함한 경우에는 두 값이 비교됩니다. 두 값이 다른 경우,adjust-config.yaml
파일의 값은 기존의 값을 덮어쓰게 됩니다.
- 해당 폴더와 파일이 없는 경우,
-
APK를 리패키징합니다.
-
adjust-config.yaml
에 명시된 정보로 APK가 서명됩니다.keystore_path
,keystore_pass
,keystore_alias
파라미터를 사용합니다. -
원본과 동일한 이름과
_[store_name]
접미사를 가진 APK 생성. 위 예시에서 툴은 3개의 APK 파일을 생성합니다. 이 메서드의 이름은example-release_store_1.apk
,example-release_store_2.apk
,example-release_store_3.apk
입니다. 툴이 파일 생성을 완료한 이후 이름을 변경할 수 있습니다.
본 툴과 관련한 문의 사항 및 문제 발생 시 support@adjust.com으로 연락주시기 바랍니다.