adjust-icon

App Automation API

App Automation API를 사용하여 앱을 대규모로 프로그래매틱 방식으로 생성, 업데이트 및 관리할 수 있습니다. 이 API를 사용하면 템플릿 앱의 설정을 복제하여 앱 설정을 자동화할 수 있어, 여러 애플리케이션을 관리할 때 반복해서 수동으로 구성할 필요가 없습니다.

시작에 앞서

시작하기 전에 알아야 할 사항은 다음과 같습니다.

가용성

  • App Automation API는 해당 기능이 활성화된 계정에서 이용 가능합니다. 액세스 관련 내용은 담당 테크니컬 어카운트 매니저에게 문의하시기 바랍니다.
  • 이 API를 사용하려면 계정에서 템플릿 앱 을 구성해야 합니다. 담당 테크니컬 어카운트 매니저가 이 과정에 도움을 드릴 수 있습니다.

요구 사항

  1. Adjust에서의 관리자 또는 편집자 권한이 필요합니다.
  2. 유효한 Adjust API 토큰. 자세한 내용은 인증 가이드를 참조하시기 바랍니다.
  3. 계정에 구성된 템플릿 앱 토큰. 이 앱은 신규 또는 기존 앱에 설정을 복사하는 소스 역할을 합니다.

기본 URL

모든 API 요청은 다음으로 전송되어야 합니다.

기본 URL
https://automate.adjust.com/app-automation

인증

App Automation API에 액세스하려면 Authorization 헤더(베어러 토큰)를 통해 Adjust API 토큰을 제공해야 합니다.

Single Sign-On (SSO)를 활성화한 경우, Adjust 담당자에게 연락하거나 support@adjust.com 으로 이메일을 보내 API를 찾는 데 도움을 받으시기 바랍니다.

비 SSO 계정의 경우, API는 사용자의 프로필 에서 확인하실 수 있습니다. Adjust API 토큰을 확인하려면 다음 단계를 따르시기 바랍니다.

  1. 계정(사용자) 아이콘을 선택합니다.
  2. 계정 설정 을 선택합니다.
  3. 내 프로필 탭을 선택합니다.
  4. API 토큰사용자 세부 사항 과 함께 표시됩니다. 시스템 클립보드에 토큰을 복사하기 위해 복사를 선택합니다.

Adjust API 토큰 재설정

Adjust API 토큰은 언제든지 재설정할 수 있습니다. 재설정하면 이전 토큰이 무효화됩니다. 무효화된 토큰에 대한 요청은 Adjust에 의해 거부되므로 해당 토큰이 사용되는 모든 곳에서 토큰을 업데이트해야 합니다.

Adjust API 토큰 재설정:

  1. 계정(사용자) 아이콘을 선택합니다.
  2. 계정 설정 을 선택합니다.
  3. 내 프로필 탭을 선택합니다.
  4. API 토큰사용자 세부 사항 과 함께 표시됩니다.
  5. API 토큰 재설정 을 선택합니다.
  6. 모달에 계정 비밀번호를 입력한 후 API 토큰 재설정을 위해 재설정 을 선택합니다. 화면 우측 상단에 확인 메시지가 나타납니다.
  7. 시스템 클립보드에 API 토큰 을 복사하기 위해 복사를 선택합니다.

활용법

App Automation API는 다수의 애플리케이션을 관리하는 경우에 가장 유용합니다. 각각의 새로운 앱을 수동으로 설정하면 상당한 간접 비용이 발생합니다. 이 API를 사용하면 다음과 같은 효과를 통해 간접 비용을 최소화할 수 있습니다.

  1. 대규모 앱 생성 : 템플릿 앱의 설정을 복제하여 단 한 번의 API 요청으로 새로운 앱을 생성할 수 있습니다. 모든 파트너 연동, 이벤트, 어트리뷰션 설정 및 기타 구성은 자동으로 복사됩니다.
  2. 기존 앱 업데이트 : 템플릿 앱을 업데이트하고 마이그레이션을 트리거하여 여러 앱에 설정 변경 사항을 적용할 수 있습니다.
  3. 프로그래매틱 방식으로 이벤트 관리 : 대시보드를 사용하지 않고도 단일 앱 또는 여러 앱에서 이벤트를 생성하고 업데이트할 수 있습니다.
  4. SDK 서명 구성 : Android 앱에 대한 인증서 핑거프린트를 자동으로 설정하고 서명 적용을 관리합니다.
  5. 작업 상태 추적 : 설정 마이그레이션을 처리하는 백그라운드 작업의 진행 상황을 모니터링합니다.

작동 방식

App Automation API는 템플릿 앱 접근 방식을 사용합니다.

  1. 템플릿 앱 설정 : 테크니컬 어카운트 매니저와 상의하여 계정에서 템플릿 앱을 구성합니다. 이 앱은 다른 앱에 적용하고자 하는 모든 설정 항목을 포함하고 있습니다.

  2. 앱 생성 또는 업데이트 : 앱 상세 정보와 함께 POST 요청을 /app 엔드포인트로 전송합니다. API는 다음을 수행합니다.

    • 새로운 앱이 존재하지 않는 경우 새로 생성
    • 템플릿 앱에서 설정을 복사하기 위해 백그라운드 작업을 대기열에 추가
    • 작업 상태 추적을 위해 티켓 토큰 반환
  3. 진행 상황 추적 : 티켓 토큰을 사용하여 /status 엔드포인트를 통해 설정 마이그레이션 상태를 확인합니다.

  4. 설정 재정의 : override_settings 또는 channel_setup에 앱별 값을 전달하여 템플릿의 설정을 대부분 유지하면서 개별 앱을 사용자 지정합니다.

사용 가능한 엔드포인트

엔드포인트설명
POST /app템플릿 앱 설정을 사용하여 새 앱을 생성하거나 기존 앱 업데이트
POST /app/{app_token}앱 이름, 스토어 ID 또는 번들 ID 업데이트
GET /app스토어 ID와 플랫폼으로 앱 상세 정보 조회
GET /app/{app_token}앱 토큰으로 앱 상세 정보 조회
GET /app/{app_token}/settings섹션별 상세 앱 설정 조회
GET /apps/list계정의 모든 앱 나열
GET /status/{ticket_token}백그라운드 작업 상태 확인
POST /events1개 이상의 앱에 대한 이벤트 생성 또는 업데이트
GET /settings/csvCSV 형식으로 앱 설정 내보내기
POST /app/{app_token}/secrets/revoke_outdated오래된 SDK 시크릿 취소
POST /app/{app_token}/secrets/{secret_id}/revoke특정 SDK 시크릿 취소
POST /app/{app_token}/secrets/{secret_id}/reactivate취소된 SDK 시크릿 재활성화

앱 섹션

앱을 생성하거나 업데이트할 때, 템플릿 앱에서 마이그레이션할 설정 섹션을 지정할 수 있습니다. 섹션을 지정하지 않으면 기본 설정에 따라 모든 섹션이 마이그레이션됩니다.

섹션설명
app_info기본 앱 정보
attribution_privacy_model어트리뷰션 프라이버시 모델 설정(iOS만 해당)
attribution_settings클릭 및 노출 어트리뷰션 윈도우와 리어트리뷰션 설정
callbacks서버 콜백 URL
csv_upload_settings클라우드 스토리지 업로드 구성
events이벤트 정의 및 설정
external_data_forwarding매출 및 파라미터 포워딩 설정
fraud_prevention_settings해킹 예방 설정
partners파트너 모듈 구성 및 이벤트 링크
purchase_verification결제 검증 설정
signatureAndroid 인증서 핑거프린트 및 서명 적용
sdk_secretsSDK 시크릿 구성
skad_networkSKAdNetwork v3 설정(iOS만 해당)
skad_network_v4SKAdNetwork v4 설정(iOS만 해당)
preview_link_settings소셜 공유 미리보기 구성
s2s서버 간 보안 설정
trackers트래커(링크) 구성

빠른 시작

1. 첫 번째 앱 생성

템플릿을 기반으로 새 앱을 생성하기 위해 POST 요청을 전송합니다.

요청 - cURL
curl --location 'https://automate.adjust.com/app-automation/app' \
--header 'Authorization: Bearer {your-adjust-api-token}' \
--header 'Content-Type: application/json' \
--data '{
"name": "My New App",
"bundle_id": "com.example.myapp",
"store_id": "com.example.myapp",
"platform": "android"
}'
응답
{
"adjust_app_token": "abc123xyz",
"name": "My New App",
"bundle_id": "com.example.myapp",
"store_id": "com.example.myapp",
"ticket_token": "e5b07bb3-b5f3-40a8-8a2d-197d30b6beff",
"sk_app_id": null
}

2. 마이그레이션 상태 확인

응답에서 ticket_token을 사용하여 상태를 확인합니다.

요청 - cURL
curl --location 'https://automate.adjust.com/app-automation/status/e5b07bb3-b5f3-40a8-8a2d-197d30b6beff' \
--header 'Authorization: Bearer {your-adjust-api-token}'
응답
{
"status": "completed",
"kind": "migration",
"result": {
"events": { "successes": ["purchase", "registration"], "failures": [] },
"partners": { "successes": ["facebook", "google"], "failures": [] }
}
}

3. 앱 상세 정보 조회

마이그레이션이 완료되면 앱의 상세 정보를 조회합니다.

요청 - cURL
curl --location 'https://automate.adjust.com/app-automation/app/abc123xyz' \
--header 'Authorization: Bearer {your-adjust-api-token}'
응답
{
"name": "My New App",
"store_id": "com.example.myapp",
"platform": "android",
"adjust_app_token": "abc123xyz",
"additional_info": { "overrides": {} },
"channel_setup": {
"facebook": { "app_id": "123456789" }
}
}

오류 처리

API는 표준 HTTP 상태 코드와 JSON 오류 응답을 반환합니다.

상태 코드설명
200요청 성공
400잘못된 요청 - 요청 파라미터 확인
401승인 안 됨 - 유효하지 않거나 누락된 API 토큰
403금지됨 - 이 리소스에 대한 액세스 권한 없음
422검증 오류 - 요청 본문에 유효하지 않은 데이터가 포함됨
500Internal server error
오류 응답 형식
{
"error_code": "validation_error",
"error_desc": "Human-readable error description",
"error_desc_details": [
{ "loc": ["body", "platform"], "msg": "field required" }
]
}

오류 코드

오류 코드설명
request_error일반 요청 오류
auth_error인증 실패
validation_error요청 검증 실패
service_error내부 서버 오류