/app 엔드포인트를 사용하여 새 앱을 생성하고, 기존 앱을 업데이트하고, 앱 정보를 조회할 수 있습니다. 이는 대규모 앱 관리를 자동화하는 기본 엔드포인트입니다.
조회 작업(get app by token, get app by store ID, list all apps)은 이 API를 통해 생성되거나 업데이트된 앱만 반환합니다. 계정 내 모든 앱(대시보드에서 생성된 앱 포함)을 대상으로 작업하려면 앱 설정 엔드포인트를 사용하시기 바랍니다.
템플릿을 통한 앱 생성 또는 업데이트
이 엔드포인트는 템플릿 앱의 설정을 사용하여 새 앱을 생성하거나 기존 앱을 업데이트합니다. 앱 설정 자동화를 위한 주요 엔트리 포인트입니다.
작동 방식
- API가
store_id및platform과 일치하는 기존 앱을 찾습니다. - 일치하는 앱이 존재하지 않는 경우 제공된 상세 정보로 새로운 앱이 생성됩니다.
- 템플릿 앱에서 설정을 복사하기 위해 백그라운드 작업이 대기열에 추가됩니다.
- 응답에는 마이그레이션 진행 상황을 추적하는
ticket_token이 포함됩니다.
다음 조건 중 하나라도 충족되면 백그라운드 작업이 트리거됩니다.
- 앱이 새로 생성됨
channel_setup,override_settings,editors또는ios_pv_shared_secrets필드가 업데이됨force_update설정:true
API 프로토콜
엔드포인트: https://automate.adjust.com/app-automation/app
호출하여 트래킹할 수 있습니다: POST
요청 본문: 앱 페이로드 생성/업데이트
응답: 앱 마이그레이션 응답
파라미터
| 파라미터 | 데이터 유형 | 필수 | 설명 |
|---|---|---|---|
store_id | String | O | iOS 앱 : iTunes Store ID(숫자). Android 앱 : 번들 ID(예: com.example.app). |
platform | String | O | 타겟 플랫폼. android, ios 중 하나. |
bundle_id | String | O | 앱의 번들 ID(예: com.example.app). |
name | String | O | 앱의 표시 이름. |
template_app_token | String | 아니요 | 설정을 복사할 앱 토큰. 제공되지 않은 경우 계정에 구성된 토큰을 사용합니다. |
sections | Array[String] | 아니요 | 마이그레이션할 앱 섹션 목록. 공란일 경우 모든 섹션이 마이그레이션됩니다. |
force_update | Boolean | 아니요 | 앱이 변경되지 않은 경우에도 마이그레이션 작업을 강제 실행하려면 true로 설정합니다. 기본값은 false입니다. |
channel_setup | Object | 아니요 | 파트너별 구성. 자세한 내용은 채널 설정을 참조하세요. |
override_settings | Object | 아니요 | 템플릿 앱에서 재정의할 설정. 자세한 내용은 재정의 설정을 참조하세요. |
editors | Array[String] | 아니요 | 앱에 대한 액세스가 필요한 커스텀 사용자의 이메일 주소. 관리자, 편집자, 읽기 전용 역할의 사용자는 자동으로 액세스 권한을 확보합니다. |
ios_pv_shared_secret | String | 아니요 | 이 앱에 대한 iOS 결제 검증 공유 시크릿. |
verification | Boolean | 아니요 | iOS 앱을 인증하려면 true로 설정합니다. 계정의 인증이 활성화된 iOS 앱에만 적용됩니다. 기본값은 false입니다. |
섹션
특정 설정만 마이그레이션하려면 sections 파라미터를 사용합니다.
{ "sections": ["partners", "events", "fraud_prevention_settings"]}이용 가능한 섹션의 전체 목록은 앱 섹션을 참조하시기 바랍니다.
재정의 설정
앱의 특정 설정을 사용자 지정하려면 템플릿 앱의 값 대신 override_settings를 사용합니다. 재정의 설정은 저장되며 이후 마이그레이션에 자동으로 적용됩니다.
덮어쓰기 설정을 수행할 수 있는 3가지 작업이 있습니다.
| 작업 | 방법 |
|---|---|
| 보기 | GET /app/{app_token}/settings을 사용하여 현재 앱 설정을 볼 수 있습니다. GET /app/{app_token}을 사용하여 additional_info.overrides에서 저장된 덮어쓰기 페이로드를 볼 수 있습니다. |
| 생성 /업데이트 | override_settings을 POST /app 또는 POST /app/{app_token}에 보낼 수 있습니다. 새로운 값은 저장된 덮어쓰기에 병합되어, 변경하고자 하는 필드만 전송할 수 있습니다. |
| 초기화 | POST /app/{app_token}을 "override_settings": null와 함께 호출하여 앱에 대해 저장된 모든 덮어쓰기를 삭제합니다. |
partners 덮어쓰기의 경우:
GET /app/{app_token}/settings으로부터partners배열 형태를 사용합니다.- 파트너는
name으로 매칭됩니다. - 지원되는 포워딩 플래그:
revenue_forwarding,session_forwarding,parameter_forwarding,cost_forwarding,attributed_only,uninstall_forwarding,ad_revenue_forwarding,limited_data_use,inactive_user_definition. channel_setup은 파트너 특정 필드의 고정 키 값 매핑입니다. Dashboard API는 파트너가 지원하지 않는 키를 무시할 수 있습니다.events_linking은 앱 이벤트 이름을 파트너 이벤트 이름에 매핑한 것입니다.app_info는 읽기 전용 섹션이며override_settings에서 지원되지 않습니다.channel_setup요청 수준channel_setup필드로부터의 값은 최우선순위를 가집니다.- 요청 수준
channel_setup에 키가 없는 경우, 앱 자동화는 저장된 엡channel_setup으로 폴백합니다. override_settings.partners[].channel_setup은 추가 폴백 소스로 사용됩니다.
{ "override_settings": { "partners": [ { "name": "facebook", "revenue_forwarding": false, "session_forwarding": false, "parameter_forwarding": false, "cost_forwarding": false, "attributed_only": false, "uninstall_forwarding": false, "ad_revenue_forwarding": false, "limited_data_use": true, "inactive_user_definition": false, "channel_setup": { "app_id": "651107451918933" }, "events_linking": { "purchase_inapp": "fb_mobile_purchase" } }, { "name": "snapchat", "limited_data_use": false, "channel_setup": { "app_id": "1404426295" } } ] }}예
새 Android 앱 생성
curl --location 'https://automate.adjust.com/app-automation/app' \--header 'Authorization: Bearer {your-adjust-api-token}' \--header 'Content-Type: application/json' \--data '{ "name": "My Android App", "bundle_id": "com.example.myapp", "store_id": "com.example.myapp", "platform": "android"}'{ "adjust_app_token": "abc123xyz", "name": "My Android App", "bundle_id": "com.example.myapp", "store_id": "com.example.myapp", "ticket_token": "e5b07bb3-b5f3-40a8-8a2d-197d30b6beff", "sk_app_id": null}채널 설정을 통해 iOS 앱 생성
curl --location 'https://automate.adjust.com/app-automation/app' \--header 'Authorization: Bearer {your-adjust-api-token}' \--header 'Content-Type: application/json' \--data '{ "name": "My iOS App", "bundle_id": "com.example.myiosapp", "store_id": "123456789", "platform": "ios", "channel_setup": { "facebook": { "app_id": "987654321" }, "google": { "link_id": "google_link_123" } }}'{ "adjust_app_token": "xyz789abc", "name": "My iOS App", "bundle_id": "com.example.myiosapp", "store_id": "123456789", "ticket_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "sk_app_id": "86372991152"}특정 섹션만 마이그레이션
curl --location 'https://automate.adjust.com/app-automation/app' \--header 'Authorization: Bearer {your-adjust-api-token}' \--header 'Content-Type: application/json' \--data '{ "name": "My App", "bundle_id": "com.example.app", "store_id": "com.example.app", "platform": "android", "sections": ["events", "partners", "callbacks"]}'기존 앱 강제 업데이트
curl --location 'https://automate.adjust.com/app-automation/app' \--header 'Authorization: Bearer {your-adjust-api-token}' \--header 'Content-Type: application/json' \--data '{ "name": "My App", "bundle_id": "com.example.app", "store_id": "com.example.app", "platform": "android", "force_update": true}'SDK Signature(SDK 서명) 구성
Android 앱 트래픽을 보호하기 위해 Adjust 서명 라이브러리를 사용하는 경우, App Automation API를 사용하여 서명 검증을 시행하고 앱의 인증서 핑거프린트(android_signature_hash)를 관리할 수 있습니다.
작동 방식
서명 구성은 다음과 같이 템플릿 앱 메서드를 통해 처리됩니다.
- 템플릿 앱의 모든 활성 인증서 핑거프린트(
android_signature_hash)가 타겟 앱으로 복사됩니다. - 템플릿 앱의
enforce_signature설정도 적용됩니다. - 어카운트 매니저가 별도의 조치를 취할 필요 없이 즉시 사용 가능합니다.
템플릿 앱에 인증서 핑거프린트를 추가하고 서명 검증을 활성화하는 방법은 SDK 서명 설정 가이드를 참조하시기 바랍니다.
서명 설정 재정의
override_settings 필드를 사용하여 타겟 앱에 대해 android_signature_hash, enforce_signature 또는 두 항목 모두를 재정의할 수 있습니다.
- Android 서명 해시만 재정의하려면
override_settings에android_signature_hash를 지정합니다. - 시행 설정만 재정의하려면
override_settings에enforce_signature를 지정합니다. - 두 항목을 모두 재정의하려면
override_settings에 두 필드를 모두 포함합니다.
예
템플릿 앱에서 서명 마이그레이션
curl --location 'https://automate.adjust.com/app-automation/app' \--header 'Authorization: Bearer {your-adjust-api-token}' \--header 'Content-Type: application/json' \--data '{ "name": "My Android App", "bundle_id": "com.example.myapp", "store_id": "com.example.myapp", "platform": "android", "sections": ["signature"], "force_update": true}'android_signature_hash만 재정의
curl --location 'https://automate.adjust.com/app-automation/app' \--header 'Authorization: Bearer {your-adjust-api-token}' \--header 'Content-Type: application/json' \--data '{ "name": "My Android App", "bundle_id": "com.example.myapp", "store_id": "com.example.myapp", "platform": "android", "sections": ["signature"], "override_settings": { "signature": { "android_signature_hash": [ "AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AB" ] } }}'enforce_signature만 재정의
curl --location 'https://automate.adjust.com/app-automation/app' \--header 'Authorization: Bearer {your-adjust-api-token}' \--header 'Content-Type: application/json' \--data '{ "name": "My Android App", "bundle_id": "com.example.myapp", "store_id": "com.example.myapp", "platform": "android", "sections": ["signature"], "override_settings": { "signature": { "enforce_signature": true } }, "force_update": true}'android_signature_hash 및 enforce_signature 둘 다 재정의
curl --location 'https://automate.adjust.com/app-automation/app' \--header 'Authorization: Bearer {your-adjust-api-token}' \--header 'Content-Type: application/json' \--data '{ "name": "My Android App", "bundle_id": "com.example.myapp", "store_id": "com.example.myapp", "platform": "android", "sections": ["signature"], "override_settings": { "signature": { "android_signature_hash": [ "AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AB", "BB:BB:BB:BB:BB:BB:BB:BB:BB:BB:BB:BB:BB:BB:BB:BB:BB:BB:BB:BC" ], "enforce_signature": true } }, "force_update": true}'앱 설정 업데이트
기존 앱의 이름, 스토어 ID 또는 번들 ID를 업데이트합니다. 또한 추후 마이그레이션을 위해 저장된 override_settings을 관리할 수 있습니다.
API 프로토콜
엔드포인트: https://automate.adjust.com/app-automation/app/{app_token}
호출하여 트래킹할 수 있습니다: POST
응답: 앱 응답 업데이트
파라미터
| 파라미터 | 데이터 유형 | In | 필수 | 설명 |
|---|---|---|---|---|
app_token | String | Path | O | Adjust 앱 토큰. |
name | String | Body | O | 앱의 새로운 표시 이름. |
store_id | String | Body | 아니요 | 새 스토어 ID. iOS : iTunes Store ID. Android : 번들 ID. |
bundle_id | String | Body | 아니요 | 새 번들 ID. |
override_settings | Object | Body | 아니요 | 추후 마이그레이션을 위해 저장된 덮어쓰기 설정을 업데이트합니다. 저장된 모든 덮어쓰기를 초기화하려면 null로 설정합니다. |
예
curl --location 'https://automate.adjust.com/app-automation/app/abc123xyz' \--header 'Authorization: Bearer {your-adjust-api-token}' \--header 'Content-Type: application/json' \--data '{ "name": "My Renamed App", "store_id": "com.example.newapp"}'{ "store_id": "com.example.newapp", "name": "My Renamed App", "ticket_token": "f1e2d3c4-b5a6-7890-1234-567890abcdef"}저장된 덮어쓰기 설정 초기화
curl --location 'https://automate.adjust.com/app-automation/app/abc123xyz' \--header 'Authorization: Bearer {your-adjust-api-token}' \--header 'Content-Type: application/json' \--data '{ "name": "My Renamed App", "store_id": "com.example.newapp", "override_settings": null}'스토어 ID로 앱 조회
스토어 ID와 플랫폼을 사용하여 앱의 상세 정보를 조회할 수 있습니다.
API 프로토콜
엔드포인트: https://automate.adjust.com/app-automation/app
호출하여 트래킹할 수 있습니다: GET
응답: 앱 조회 응답
파라미터
| 파라미터 | 데이터 유형 | In | 필수 | 설명 |
|---|---|---|---|---|
store_id | String | Query | O | iOS : iTunes Store ID. Android : 번들 ID. |
platform | String | Query | O | 타겟 플랫폼. android, ios 중 하나. |
예
curl --location 'https://automate.adjust.com/app-automation/app?store_id=com.example.myapp&platform=android' \--header 'Authorization: Bearer {your-adjust-api-token}'{ "name": "My Android App", "store_id": "com.example.myapp", "platform": "android", "adjust_app_token": "abc123xyz", "additional_info": { "overrides": {} }, "channel_setup": { "facebook": { "app_id": "123456789" }, "google": { "link_id": "adwords_link_id" } }, "cross_promo_token": "hgj3li1"}토큰으로 앱 조회
Adjust 앱 토큰을 사용하여 앱의 상세 정보를 조회할 수 있습니다.
API 프로토콜
엔드포인트: https://automate.adjust.com/app-automation/app/{app_token}
호출하여 트래킹할 수 있습니다: GET
응답: 앱 조회 응답
파라미터
| 파라미터 | 데이터 유형 | In | 필수 | 설명 |
|---|---|---|---|---|
app_token | String | Path | O | Adjust 앱 토큰. |
예
curl --location 'https://automate.adjust.com/app-automation/app/abc123xyz' \--header 'Authorization: Bearer {your-adjust-api-token}'{ "name": "My Android App", "store_id": "com.example.myapp", "platform": "android", "adjust_app_token": "abc123xyz", "additional_info": { "overrides": {} }, "channel_setup": { "facebook": { "app_id": "123456789" } }, "cross_promo_token": "hgj3li1"}모든 앱 나열
계정의 모든 앱 목록을 조회합니다. 생성일을 기준으로 필터링하는 옵션도 있습니다.
API 프로토콜
엔드포인트: https://automate.adjust.com/app-automation/apps/list
호출하여 트래킹할 수 있습니다: GET
응답: 앱 이름 토큰 객체의 배열
파라미터
| 파라미터 | 데이터 유형 | In | 필수 | 설명 |
|---|---|---|---|---|
start_date | String | Query | 아니요 | 이 날짜 또는 그 이후에 생성된 앱을 필터링합니다. ISO 8601 형식(예: 2024-01-01T00:00:00Z). |
end_date | String | Query | 아니요 | 이 날짜 또는 그 이전에 생성된 앱을 필터링합니다. ISO 8601 형식. |
예
curl --location 'https://automate.adjust.com/app-automation/apps/list' \--header 'Authorization: Bearer {your-adjust-api-token}'[ { "name": "My Android App", "token": "abc123xyz" }, { "name": "My iOS App", "token": "xyz789abc" }, { "name": "Another App", "token": "def456uvw" }]기간별로 필터링
curl --location 'https://automate.adjust.com/app-automation/apps/list?start_date=2024-01-01T00:00:00Z&end_date=2024-06-30T23:59:59Z' \--header 'Authorization: Bearer {your-adjust-api-token}'데이터 모델
앱 페이로드 생성/업데이트
| 파라미터 | 데이터 유형 | 설명 |
|---|---|---|
store_id* | String | iOS 앱 : iTunes Store ID. Android 앱 : 번들 ID. |
platform* | String | 타겟 플랫폼. android, ios 중 하나. |
bundle_id* | String | 앱의 번들 ID. |
name* | String | 앱의 표시 이름. |
template_app_token | String | 설정을 복사할 앱 토큰. 제공되지 않은 경우 구성된 기본값을 사용합니다. |
sections | Array[String] | 마이그레이션할 앱 섹션. 제공되지 않은 경우 모든 섹션을 마이그레이션합니다. |
force_update | Boolean | 앱이 변경되지 않은 경우에도 마이그레이션을 강제로 실행합니다. 기본값은 false입니다. |
channel_setup | Object | 파트너별 구성. 채널 설정을 참조하세요. |
override_settings | Object | 템플릿 앱에서 재정의할 설정. |
editors | Array[String] | 앱에 대한 액세스가 필요한 사용자의 이메일 주소. |
ios_pv_shared_secret | String | iOS 결제 검증 공유 시크릿. |
verification | Boolean | iOS 앱 인증 여부. 기본값은 false입니다. |
앱 마이그레이션 응답
| 파라미터 | 데이터 유형 | 설명 |
|---|---|---|
adjust_app_token* | String | 생성/업데이트된 앱에 대한 Adjust 앱 토큰. |
name* | String | 앱의 표시 이름. |
bundle_id* | String | 앱의 번들 ID. |
store_id* | String | 앱의 스토어 ID. |
ticket_token* | String | 마이그레이션 작업 상태를 추적하기 위한 UUID. 상태 엔드포인트와 함께 사용합니다. |
sk_app_id | String | 인증된 iOS 앱에 대한 StoreKit 앱 ID. 해당되지 않는 경우 null. |
앱 조회 응답
| 파라미터 | 데이터 유형 | 설명 |
|---|---|---|
name* | String | 앱의 표시 이름. |
store_id* | String | 앱의 스토어 ID. |
platform* | String | 타겟 플랫폼: android 또는 ios. |
adjust_app_token* | String | Adjust 앱 토큰. |
additional_info* | Object | 재정의 설정을 포함한 추가 앱 정보. |
channel_setup | Object | 파트너별 구성. |
cross_promo_token | String | 크로스 프로모션 링크 토큰. |
앱 업데이트 응답
| 파라미터 | 데이터 유형 | 설명 |
|---|---|---|
store_id* | String | 업데이트된 스토어 ID. |
name* | String | 업데이트된 표시 이름. |
ticket_token* | String | 업데이트 작업 상태를 추적하기 위한 UUID. |
앱 이름 토큰
| 파라미터 | 데이터 유형 | 설명 |
|---|---|---|
name* | String | 앱의 표시 이름. |
token* | String | Adjust 앱 토큰 |