딥링크 생성기 API를 사용하여 앱에 대한 긴/단축 딥링크를 개별 또는 일괄로 생성할 수 있습니다. 이러한 맞춤형 딥링크는 다양한 플랫폼에서 사용자 경험을 향상시킵니다.
시작에 앞서
시작하기 전에 알아야 할 사항은 다음과 같습니다.
가용성
- 딥링크 생성기 API에 액세스하려면 TrueLink Core 또는 Enterprise 패키지를 사용해야 합니다.
- 딥링크 생성기 API를 사용하여 생성된 링크는 Campaign Lab에 표시되지 않습니다.
- 딥링크 생성기 API로 생성된 단축 링크의 TTL(time-to-live)은 120일입니다.
요구 사항
-
관리자, 편집자 또는 사용자 지정 편집자 권한.
-
iOS와 Android 앱에 대해 동일한 브랜드 도메인을 설정합니다.
- iOS 앱의 경우 브랜드 도메인을 Associated Domain으로 추가하시기 바랍니다. 이렇게 하면 도메인이 유니버셜 링크로 구성되도록 설정됩니다.
- Android 앱의 경우 브랜드 도메인을 Android 앱 링크로 정의하시기 바랍니다.
-
딥링크를 생성하려면 유효한 커스텀 링크 토큰이 필요합니다.
- 단일 앱(단일 플랫폼 또는 멀티 플랫폼)의 경우 Campaign Lab에서 커스텀 링크를 생성하여 단일 링크 토큰을 받으시기 바랍니다.
- 앱이 여러 개인 경우에는 두 가지 옵션이 있습니다.
- Campaign Lab에서 복합 커스텀 링크를 생성합니다. 이를 통해 여러 앱을 위한 단일 링크 토큰을 생성합니다. 자세한 내용은 플랫폼별 링크 토큰을 참조하시기 바랍니다.
- 2개의 기존 커스텀 링크를 사용하고
linkTokenA_linkTokenB
와 같이 밑줄(_
)을 사용하여 토큰을 연결합니다.
-
단축 링크 해석을 위해 Adjust SDK를 업데이트 하시기 바랍니다.
-
데이터 레지던시를 설정한 경우, iOS와 Android 앱에 동일한 지역을 사용해야 합니다.
속도 제한
모든 클라이언트에서 최적의 성능과 공정한 사용을 보장하기 위해 딥링크 생성기 API는 다음과 같은 속도 제한을 적용합니다.
-
앱당 단축 링크 생성 제한은 다음과 같습니다.
- 단일 앱 기준 초당 최대 50건의 단축 링크 생성 요청이 가능합니다.
- 대량 링크 생성은 2초당 최대 100건을 요청할 수 있습니다.
-
계정당 모든 링크 생성 제한 및 업데이트 작업 제한은 다음과 같습니다.
- 단일 계정 내 모든 앱에서 초당 최대 200건 요청이 가능합니다.
이러한 제한 중 하나라도 초과하면 API는 429 Too Many Requests 상태로 응답합니다. 이 응답을 받은 후 요청을 재시도하기 전에 속도 제한 창이 재설정될 때까지 기다려야 합니다.
특히 처리량이 많은 환경에서 이러한 제한에 도달하지 않기 위해 다음을 구현할 것을 권장합니다.
- 재시도 간 지연을 점진적으로 늘리는 지수 백오프 전략을 사용하는 자동 재시도 로직
- 동시 요청 수를 효과적으로 제한하기 위한 글로벌 동시성 제어는 다음과 같습니다.
asyncio.Semaphore
- Pythonasync-sema
- Node.jsjava.util.concurrent
의Semaphore
- Java
적절한 속도 제한 관리는 서비스 액세스를 중단 없이 유지하고 스로틀링을 방지하는 데 필수적입니다.
인증
딥링크 생성기 API는 인증을 위해 베어러 토큰을 사용합니다. 반드시 딥링크 생성기 API에 대한 각 요청과 함께 Authorization
헤더에 Adjust API 토큰을 포함해야 합니다.
Single Sign-On (SSO)를 활성화한 경우, Adjust 담당자에게 연락하거나 support@adjust.com 으로 이메일을 보내 API를 찾는 데 도움을 받으시기 바랍니다.
비 SSO 계정의 경우, API는 사용자의 프로필 에서 확인하실 수 있습니다. Adjust API 토큰을 확인하려면 다음 단계를 따르시기 바랍니다.
- 계정(사용자) 아이콘을 선택합니다.
- 계정 설정 을 선택합니다.
- 내 프로필 탭을 선택합니다.
- API 토큰 은 사용자 세부 사항 과 함께 표시됩니다. 시스템 클립보드에 토큰을 복사하기 위해 복사를 선택합니다.
Adjust API 토큰 재설정
Adjust API 토큰은 언제든지 재설정할 수 있습니다. 토큰을 재설정하면 이전의 토큰은 무효화됩니다. Adjust API 토큰을 재설정한 경우 기존 토큰이 사용되는 모든 곳에서 교체해야 합니다. 무효화된 토큰에 대한 요청은 Adjust에 의해 거부됩니다.
Adjust API 토큰 재설정:
- 계정(사용자) 아이콘을 선택합니다.
- 계정 설정 을 선택합니다.
- 내 프로필 탭을 선택합니다.
- API 토큰 은 사용자 세부 사항 과 함께 표시됩니다.
- API 토큰 재설정 을 선택합니다.
- 모달에 계정 비밀번호를 입력한 후 API 토큰 재설정을 위해 재설정 을 선택합니다. 화면 우측 상단에 확인 메시지가 나타납니다.
- 시스템 클립보드에 API 토큰 을 복사하기 위해 복사를 선택합니다.
할당량 및 사용량
딥링크 생성기 API를 사용하면 긴 링크를 무제한 으로 생성할 수 있으며, 단축 링크 의 수는 계약 조건에 따라 다릅니다.
- 고유 단축 링크 만 할당량 계산에 포함됩니다. 동일한 파라미터 세트가 여러 번 전송되는 경우 할당량은 한 번 만 줄어듭니다.
- 단축 링크 할당량은 계약서에 명시되어 있습니다.
- 할당량이 소진되거나 계약이 만료되면 API는
shorten_url
파라미터 값과 관계없이 자동으로 긴 링크를 생성 합니다.
현재 할당량 정보 요청
다음 요청을 실행하여 현재 할당량 잔액을 조회합니다. 응답은 실시간으로 잔액을 반영합니다.
엔드포인트: https://automate.adjust.com/engage/deep-links/quota
호출하여 트래킹할 수 있습니다: GET
응답: 할당량 데이터
응답 헤더
대부분의 API 응답에는 다음과 같은 헤더가 포함되어 있어 단축 링크 할당량과 계약 상태에를 실시간으로 확인할 수 있습니다.
X-ShortLink-Quota-Limit: 100000 # Total short link quota allocatedX-ShortLink-Quota-Remaining: 86129 # Remaining short link generationsX-Contract-Status: active # Current contract status. One of: "active", "inactive". "inactive" is returned when the contract has ended or the contract information is not yet availableX-Contract-End-Date: 2025-12-31 # Contract expiration dateX-Contract-Start-Date: 2024-12-31 # Contract start date
단일 딥링크 생성
이 작업을 통해 단일 플랫폼, 멀티 플랫폼 또는 복합 앱 구성에 대해 긴 딥링크 또는 단축 딥링크를 생성할 수 있습니다. 단일 딥링크를 동적으로 생성해야 하는 경우에 사용하시기 바랍니다.
API 프로토콜
엔드포인트: https://automate.adjust.com/engage/deep-links
호출하여 트래킹할 수 있습니다: POST
요청 본문: 링크 생성 페이로드
예
단일 플랫폼 앱
curl --location 'https://automate.adjust.com/engage/deep-links' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer adjustApiToken' \--data '{ "link_token": "1c52mluz", "redirect": "https://example.com/redirect", "fallback": "https://example.com/fallback", "deep_link_path": "/custom-path" }'
{"url": "https://example.go.link/fryYl"}
멀티 플랫폼 앱
curl --location 'https://automate.adjust.com/engage/deep-links' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer adjustApiToken' \--data '{ "link_token": "2d41nkvy", "redirect": "https://example.com/redirect", "fallback": "https://example.com/fallback", "android_deep_link_path": "/custom-path", "redirect_macos": "https://www.example.com/redirectmacos" }'
{ "url": "https://example.go.link/jlbKj" }
복합 링크
curl --location 'https://automate.adjust.com/engage/deep-links' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer adjustApiToken' \--data '{ "link_token": "1c2n7ybx_1cjet4nl", "redirect": "https://example.com/redirect", "fallback": "https://example.com/fallback", "ios_deep_link_path": "/custom-path-ios", "android_deep_link_path": "/custom-path-android", "redirect_macos": "https://www.example.com/redirectmacos" }'
{"url": "https://example.go.link/6JtQx"}
딥링크 일괄 생성
이 작업을 통해 단일 요청에서 여러 개의 딥링크를 생성할 수 있습니다. 다양한 앱 유형에 긴 링크와 단축 링크 모두를 지원합니다. 한 번에 최대 100개의 링크를 생성할 때 일괄 생성을 사용하여 성능을 최적화하고 요청 오버헤드를 줄일 수 있습니다.
API 프로토콜
엔드포인트: https://automate.adjust.com/engage/deep-links/bulk
호출하여 트래킹할 수 있습니다: POST
요청 본문:
파라미터 | 데이터 유형 |
---|---|
data* | Array[링크 생성 페이로드] |
응답:
파라미터 | 데이터 유형 |
---|---|
data* | Array[딥링크 또는 오류 응답] |
예
curl --location 'https://automate.adjust.com/engage/deep-links/bulk' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer adjustApiToken' \--data '{"data": [ { "link_token": "1doptv0c", "redirect": "https://example.com/redirect", "fallback": "https://example.com/fallback", "campaign": "custom-campaign" }, { "link_token": "ERRORDATA" }, { "link_token": "1df3xslh_1dsykkaa", "redirect": "https://example.com/redirect", "fallback": "https://example.com/fallback", "ios_deep_link_path": "/custom-path-ios", "android_deep_link_path": "/custom-path-android" }, { "link_token": "1dzwtdjt", "redirect": "https://example.com/redirect", "fallback": "https://example.com/fallback", "android_deep_link_path": "/custom-path" } ]}'
{ "data": [ { "url": "https://example.go.link/4IlkC" }, { "error_code": "service_error", "error_desc": "[ERROR MESSAGE]" }, { "url": "https://example.go.link/6KnoE" }, { "url": "https://example.go.link/5JmnD" } ]}
단축 링크 데이터 조회
이 작업을 통해 만료일 및 리다이렉트 파라미터와 같이 이전에 생성된 단축 링크에 대한 메타데이터를 조회할 수 있습니다. 이를 사용하여 단축 링크 상태를 검사하거나 확인할 수 있습니다.
API 프로토콜
엔드포인트: https://automate.adjust.com/engage/deep-links/short-link?short_token={short_token}&app_token={app_token}
호출하여 트래킹할 수 있습니다: GET
응답: 단축 토큰 메타데이터
예
curl --location --request GET 'https://automate.adjust.com/engage/deep-links/short-link?short_token=4IlkC&app_token=zgvhg75bw83k' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer adjustApiToken'
{ "created_at": "2025-03-19T13:31:31Z", "expires_at": "2025-10-08T17:04:24.201134367Z", "token": "4IlkC", "ulink": "example", "url": "https://example.go.link/?adj_t=1g41cvql_1gb5zq24&adj_fallback=https%3A%2F%2Fexample.com%2Ffallback-1&adj_redirect=https%3A%2F%2Fexample.com%2Fredirect"}
단축 링크 연결 주소 업데이트
이 작업을 통해 기존 단축 링크의 리다이렉트 연결 주소(긴 링크)를 업데이트합니다. 단축 링크 자체는 변경되지 않습니다 .
API 프로토콜
엔드포인트: https://automate.adjust.com/engage/deep-links/{short_token}
호출하여 트래킹할 수 있습니다: PUT
요청 본문: 링크 생성 페이로드
응답: HTTP 204 No Content
(성공 시)
예
curl --location --request PUT 'https://automate.adjust.com/engage/deep-links/4IlkC' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer adjustApiToken' \--data '{ "link_token": "1doptv0c", "redirect": "https://example.com/new-redirect", "fallback": "https://example.com/new-fallback", "deep_link_path": "/new-custom-path"}'
204 No Content
데이터 모델
링크 생성 페이로드
파라미터 | 데이터 유형 | 설명 |
---|---|---|
link_token * | String | 커스텀 링크의 링크 토큰입니다. 단일 토큰이거나 linkTokenA_linkTokenB 형식으로 결합된 여러 토큰일 수 있습니다. |
shorten_url | Boolean | 링크 단축 여부를 나타냅니다. 기본값은 true 입니다. |
short_token | String | 커스텀 단축 토큰입니다. 이 파라미터를 사용하여 사전 정의된 값으로 단축 링크를 생성할 수 있습니다. 예를 들어, campaign2026 을 전달하면 결과 링크는 example.go.link/campaign2026 이 됩니다. 토큰은 하나의 브랜드 도메인 내에서 고유한 상태여야 합니다. |
campaign | String | 캠페인의 커스텀 이름입니다. 이 파라미터를 사용하여 커스텀 링크의 값을 재정의합니다. |
adgroup | String | 광고그룹의 커스텀 이름입니다. 이 파라미터를 사용하여 커스텀 링크의 값을 재정의합니다. |
creative | String | 크리에이티브의 커스텀 이름입니다. 이 파라미터를 사용하여 커스텀 링크의 값을 재정의합니다. |
deep_link_path | String | 사용자를 이동시킬 인앱 목적지를 지정합니다. 단일 플랫폼 앱에 사용하시기 바랍니다. |
ios_deep_link_path | String | 사용자를 이동시킬 iOS 인앱 목적지를 지정합니다. 멀티 플랫폼 iOS 앱 또는 복합 링크에 사용하시기 바랍니다. |
android_deep_link_path | String | 사용자를 이동시킬 Android 인앱 목적지를 지정합니다. 멀티 플랫폼 Android 앱 또는 복합 링크에 사용하시기 바랍니다. |
fallback | String | 오프 플랫폼 사용자를 위한 랜딩 페이지입니다. fallback URL을 지정할 때 redirect_macos 및 redirect_windows 또한 함께 지정할 것을 권장합니다. |
redirect | String | Adjust의 기본 리다이렉트를 재정의하기 위한 리다이렉트 URL입니다. |
redirect_ios | String | iOS 앱에 대해서만 Adjust의 기본 리다이렉트를 재정의하기 위한 리다이렉트 URL입니다. 멀티 플랫폼 iOS 앱 또는 복합 링크에 사용하시기 바랍니다. |
redirect_android | String | Android 앱에 대해서만 Adjust의 기본 리다이렉트를 재정의하기 위한 리다이렉트 URL입니다. 멀티 플랫폼 Android 앱 또는 복합 링크에 사용하시기 바랍니다. |
redirect_macos | String | macOS에 대한 Adjust의 디폴트 리다이렉트를 오버라이드하기 위한 리다이렉트 URL. fallback 을 지정할 때 macOS 사용자에 대해 이 파라미터를 설정하는 것을 권장합니다. |
redirect_windows | String | Windows에 대한 Adjust의 기본 리다이렉트를 재정의하기 위한 리다이렉트 URL입니다. fallback 을 지정할 때 Windows 사용자에 대해 이 파라미터를 지정할 것을 권장합니다. |
label | String | 링크에 커스텀 데이터를 추가합니다. 이 파라미터를 사용하여 사용자가 앱에서 단축 링크를 공유할 때 자동으로 입력되는 고유한 사용자 리퍼러 ID 를 추가할 수 있습니다. |
og_title | String | 링크의 소셜 공유 미리보기 제목입니다. |
og_description | String | 링크의 소셜 공유 미리보기 설명입니다. |
og_image | String | 링크의 소셜 공유 미리보기를 위한 최소 200 x 200 픽셀 크기의 JPG 또는 PNG 이미지에 대한 URL. |
딥링크
파라미터 | 데이터 유형 | 설명 |
---|---|---|
url * | String | 최종 링크: 단축 링크 또는 긴 링크 |
long_url * | String | 이에 상응하는 긴 링크 |
단축 토큰 메타데이터
파라미터 | 데이터 유형 | 설명 |
---|---|---|
created_at * | String | ISO 날짜/시간 객체 |
expires_at * | String | 단축 링크 만료일의 ISO 날짜/시간 객체 |
updated_at | String | 마지막 링크 업데이트의 ISO 날짜/시간 객체 |
token * | String | 토큰 |
ulink * | String | 브랜드 도메인 |
url * | String | 전체 긴 링크 |
할당량 데이터
파라미터 | 데이터 유형 | 설명 |
---|---|---|
limit * | Integer | 총 단축 링크 할당량입니다 |
remaining * | Integer | 남은 단축 링크 생성 횟수입니다 |
contract_status * | String | 현재 계약 상태입니다. ‘active’, ‘inactive’ 중 하나. ‘inactive’는 계약 종료되었거나 계약 정보를 아직 이용할 수 없는 경우 반환됩니다. |
contract_start_date | String | ISO 날짜 객체입니다. 계약 시작일입니다. |
contract_end_date | String | ISO 날짜 객체입니다. 계약 만료일입니다. |
오류 응답
파라미터 | 데이터 유형 | 설명 |
---|---|---|
error_code * | String | 오류 코드: request_error , auth_error , validation_error , service_error |
error_desc * | String | 읽을 수 있는 오류 설명 |
error_desc_details | Array | 추가적인 메타데이터 |