使用 Adjust 自动化 API,以程序化的方式大规模创建、更新和管理应用。借助该 API,您可以复制模板应用设置,自动设置应用,无需进行重复的手动配置就能轻松管理多个应用。
操作前须知
以下是您在操作前需要了解的内容。
可用性
- 已启用 Adjust 自动化 API 功能的账户可使用该功能。请联系您的技术客户经理,获取访问权限。
- 使用此 API 前,您需要在账户中配置 模板应用 。您的技术客户经理可以协助进行设置。
要求
Base URL
所有 API 请求应发送至:
https://automate.adjust.com/app-automation认证
要访问 Adjust 自动化 API,您需要通过 Authorization 标头 (Bearer token) 提供 Adjust API 识别码。
如果您的组织启用了单点登录 (SSO),请联系您的 Adjust 代表,或发送电子邮件至 support@adjust.com,我们将帮您查找 API 识别码。
非单点登录账户的 API 识别码位于用户 个人档案 中。要找到该识别码,请按照下列步骤操作。
- 选择账户 (用户) 图标。
- 选择 账户设置 。
- 选择 个人档案 标签页。
- 您的 API 识别码 会显示在 用户详细信息 中。选择复制按钮来将识别码复制到您的系统剪贴板。
重置 Adjust API 识别码
您可以随时重置 Adjust API 识别码。重置后,旧的识别码将失效。请务必在所有使用识别码的位置进行替换。使用无效识别码发送的请求会被 Adjust 拒绝。
重置 Adjust API 识别码:
- 选择账户 (用户) 图标。
- 选择 账户设置 。
- 选择 个人档案 标签页。
- 您的 API 识别码 会显示在 用户详情 中。
- 选择 重置 API 识别码 。
- 在窗口中输入账户密码并选择 重置 来重置您的 API 识别码。屏幕右上角会显示确认信息。
- 选择 API 识别码 旁的复制按钮来将识别码复制到您的系统剪贴板。
使用案例
如果您需要管理大量应用,那么 Adjust 自动化 API 非常实用。手动设置每个新应用会产生大量成本。而该 API 能为您带来下列优势:
- 大规模创建应用 :复制模板应用的设置,使用单个 API 请求创建多个新应用。所有合作伙伴集成、事件、归因设置和其他配置都会被自动复制。
- 更新现有应用 :通过更新模板应用并触发迁移,将设置更改应用于多个应用。
- 以程序化方式管理事件 :无需使用控制面板,即可在单个或多个应用中创建和更新事件。
- 配置 SDK 签名 :自动为 Android 应用设置证书指纹并管理签名的执行。
- 跟踪作业状态 :监控处理设置迁移的后台作业进度。
工作原理
应Adjust 自动化 API 使用 模板应用 :
-
设置模板应用 :请与您的技术客户经理合作,在账户中配置模板应用。此应用应当包含您希望应用于其他应用的所有设置。
-
创建或更新应用 :向
/app终端发送带有应用详情的 POST 请求。该 API 将进行下列操作:- 创建新应用 (如不存在)
- 将复制模板应用设置的后台作业加入队列
- 返回工单识别码,用于跟踪作业状态
-
跟踪进度 :使用工单识别码,通过
/status终端查看设置迁移的状态。 -
覆盖设置 :在
override_settings或channel_setup中传递应用特定值,在沿用模板大部分设置的情况下定制单个应用设置。
可用终端
| 终端 | 描述 |
|---|---|
POST /app | 使用模板应用设置创建新应用或更新现有应用 |
POST /app/{app_token} | 更新应用名称、store ID 或 Bundle ID |
GET /app | 使用 store ID 和平台信息调取应用详情 |
GET /app/{app_token} | 通过应用识别码调取应用详情 |
GET /app/{app_token}/settings | 按应用部分查看详细应用设置 |
GET /apps/list | 以列表形式列出账户中所有应用 |
GET /status/{ticket_token} | 查看后台作业的状态 |
POST /events | 为一个或多个应用创建或更新事件 |
GET /settings/csv | 以 CSV 格式导出应用设置 |
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 密钥 |
应用部分
在创建或更新应用时,您可以指定要从模板应用中迁移的设置部分。如果未指定部分,则默认迁移所有部分。
| Section | 描述 |
|---|---|
app_info | 应用基本信息。 |
attribution_privacy_model | 归因隐私模型设置 (仅限 iOS) |
attribution_settings | 点击和展示归因窗口和再归因设置 |
callbacks | 服务器回传 URL |
csv_upload_settings | 云储存上传配置 |
events | 事件定义和设置 |
external_data_forwarding | 收入和参数转发设置 |
fraud_prevention_settings | 防作弊配置 |
partners | 合作伙伴模块配置和事件关联 |
purchase_verification | 收入验证设置 |
signature | Android 证书指纹和签名执行 |
sdk_secrets | SDK 密钥配置 |
skad_network | SKAdNetwork v3 设置 (仅限 iOS) |
skad_network_v4 | SKAdNetwork v4 设置 (仅限 iOS) |
preview_link_settings | 社交媒体分享预览配置 |
s2s | 服务器端到服务器端的安全设置 |
trackers | 跟踪链接配置 |
快速入门
创建您的第一个应用
发送 POST 请求,根据您的模板创建新应用:
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 --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 --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 | 验证错误 - 请求正文包含无效数据 |
500 | 内部服务器错误 (Internal 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 | 内部服务器错误。 |