アプリオートメーションAPIを使用して、プログラムによってアプリを大規模に作成、アップデート、管理できます。このAPIを使用すると、テンプレートアプリから設定を複製してアプリの設定を自動化できるため、複数のアプリケーションを管理する際に手動で作業を繰り返す必要がなくなります。
事前準備
事前準備として、以下の内容をご確認ください。
ご利用の条件
- アプリオートメーションAPIは、この機能が利用可能なアカウントで使用できます。ご希望の場合は、担当のテクニカルアカウントマネージャーにお問い合わせください。
- このAPIを使用する前に、アカウントに テンプレートアプリ を設定する必要があります。担当のテクニカルアカウントマネージャーが設定をサポートします。
要件
- Adjustの管理者または編集者のアクセス権限。
- 有効なAdjust APIトークン。詳細については認証ガイドをご覧ください。
- アカウントに設定されたテンプレートアプリトークン。このアプリは、新規または既存のアプリに設定をコピーするためのソースとして機能します。
ベースURL
すべてのAPIリクエストは次に送信する必要があります。
https://automate.adjust.com/app-automation認証
アプリオートメーションAPIにアクセスするには、Authorizationヘッダーを介してAdjustのAPIトークン(ベアラートークン)を提供する必要があります。
自社でシングルサインオン(SSO)を有効にしている場合は、 Adjustの担当者またはsupport@adjust.comにお問い合わせください。APIトークンの取得方法についてサポートいたします。
SSO以外のアカウントの場合、APIガイドはユーザーの プロフィール に表示されます。トークンを確認するには、以下の手順に従ってください。
- アカウント(ユーザー)アイコンを選択します。
- アカウント設定(Account Settings) を選択します。
- マイプロフィール(My Profile) を選択します。
- APIトークン が ユーザー情報(User details) に表示されます。コピーボタンを選択して、トークンをクリップボードにコピーします。
Adjust APIトークンをリセットする
Adjust APIトークンはいつでもリセットできます。これを行うと、リセット前のトークンが無効になります。無効なトークンが付与されたリクエストはAdjustに拒否されるため、使用しているトークンをすべて更新してください。
Adjust APIトークンをリセットする方法:
- アカウント(ユーザー)アイコンを選択します。
- アカウント設定(Account Settings) を選択します。
- マイプロフィール(My Profile) を選択します。
- APIトークン が ユーザー情報(User details) に表示されます。
- APIトークンをリセットする(Reset API token) を選択します。
- 表示されたモーダルにアカウントのパスワードを入力し、 リセット を選択してAPIトークンをリセットします。画面の右上に確認メッセージが表示されます。
- APIトークン の横にあるコピーボタンを選択して、トークンをクリップボードにコピーします。
ユースケース
アプリオートメーションAPIはが最も役立つのは、多数のアプリケーションを管理する場合です。新しいアプリをそれぞれ手動で設定するには、大きな負担が伴います。このAPIを使用すると、以下のように作業を最小に抑制します。
- 大量にアプリを作成 :テンプレートアプリから設定を複製し、単一のAPIリクエストで新しいアプリを複数作成します。すべてのパートナー連携、イベント、アトリビューション設定、その他の設定が自動的にコピーされます。
- 既存アプリをアップデート :テンプレートアプリをアップデートし、移行をトリガーすることで、複数のアプリ全体に設定変更を適用します。
- イベントをプログラムで管理 :ダッシュボードを使用せずに、単一または複数のアプリにまたがるイベントを作成および更新できます。
- SDKシグネチャーを設定 :Androidアプリの証明書フィンガープリントを自動的に設定し、シグネチャーの適用を管理します。
- 計測操作ステータス :設定の移行を処理するバックグラウンドジョブの進捗を監視します。
仕組み
アプリオートメーションAPIでは、 テンプレートアプリ を採用しています。
-
テンプレートアプリを設定 :テクニカルアカウントマネージャーと協力して、アカウントにテンプレートアプリを設定します。テンプレートアプリには、他のアプリに適用するためのすべての設定が含まれます。
-
アプリを作成またはアップデート :アプリの詳細を含むPOSTリクエストを
/appエンドポイントに送信します。APIは以下を実行します。- アプリが存在しない場合は新規作成
- テンプレートアプリから設定をコピーするためのバックグラウンドジョブをキューに入れる
- 実行状況をトラッキングするためのチケットトークンを返す
-
進捗をトラッキング :
/statusエンドポイントを使用して、チケットトークンで設定の移行ステータスを確認できます。 -
設定をオーバーライド :ほとんどの設定はテンプレートから継承されますが、
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 /events | 1つまたは複数のアプリ用イベントを作成または更新 |
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シークレットを再有効化 |
アプリのセクション
アプリを作成またはアップデートする際に、テンプレートアプリから移行する設定セクションを指定することができます。セクションを指定しない場合、全てのセクションがデフォルトで移行されます。
| セクション | 説明 |
|---|---|
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 | トラッカー(リンク)の設定 |
クイックスタート
1.最初のアプリを作成する
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 | 内部サーバーエラー |
{ "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 | 内部サービスエラー |