概要
サンドボックスモードを使用すると、バイヤーは実際のプラットフォームコールや実際の費用なしに、メディア購入のライフサイクル全体 — 発見、キャンペーン作成、クリエイティブ、配信 — をテストできます。レスポンスにはシミュレートされたが現実的なデータが含まれます。 サンドボックスはリクエストごとではなくアカウントレベルで機能します。リクエストがサンドボックスアカウントを参照すると、リクエスト全体がサンドボックスとして扱われる。これにより、マルチステップフローで実際のトラフィックとテストトラフィックを誤って混在させるリスクを排除します。ケイパビリティの発見
セラーはget_adcp_capabilities でサンドボックスサポートを宣言する:
account.sandbox が宣言されていないか false の場合、セラーはサンドボックスをサポートしていません。
サンドボックスへの2つの経路
サンドボックスモードへの入り方は、セラーのアカウントモデル(require_operator_auth)によって異なります。2つの経路はまったく異なる — 正しい方に従うようにすること。
暗黙的アカウント(require_operator_auth: false)
セラーはエージェントを信頼し、オペレーターごとの認証を必要としません。サンドボックスはナチュラルキーの一部だ — 同じブランド/オペレーターのペアがプロダクションとサンドボックスの両方のアカウントを持つことができ、sandbox: true で区別されます。
セットアップ: アカウントエントリに sandbox: true を付けて sync_accounts でサンドボックスアカウントを宣言する:
sandbox: true を付けたナチュラルキーでサンドボックスアカウントを参照する:
明示的アカウント(require_operator_auth: true)
セラーは各オペレーターが直接認証することを要求します。サンドボックスアカウントはセラーのプラットフォーム上の既存のテストアカウントだ — Stripe のテストモード、Google Ads サンドボックスアカウント、Snap のテスト広告主アカウントのようなもの。作成するのではなく、発見します。
セットアップ: sandbox: true フィルターを使って list_accounts でサンドボックスアカウントを発見する:
account_id でサンドボックスアカウントを参照する:
クイックリファレンス
暗黙的(require_operator_auth: false) | 明示的(require_operator_auth: true) | |
|---|---|---|
| サンドボックスアカウント | バイヤーが sync_accounts で宣言 | セラーのプラットフォームに既存 |
| 発見方法 | N/A — バイヤーが作成 | sandbox: true で list_accounts |
| アカウント参照 | sandbox: true を持つナチュラルキー | account_id |
| 実世界の類似 | セルフサービステストモード | Stripe テストモード、Google Ads サンドボックス |
レスポンスの確認
成功レスポンスにはsandbox: true が含まれ、リクエストがサンドボックスモードで処理されたことを確認します:
完全なライフサイクルの例(暗黙的アカウント)
この例は暗黙的アカウントのパスを示します。明示的アカウントの場合、各ステップのナチュラルキーアカウント参照を{ "account_id": "acct_sandbox_acme_001" } に置き換える。
1. 商品の発見
2. メディアバイの作成
3. クリエイティブのアップロード
4. 配信の確認
サンドボックス vs ドライラン
一部のタスク(例:sync_creatives)は dry_run パラメータもサポートします。これらは異なる目的を持ちます:
| サンドボックスアカウント | dry_run | |
|---|---|---|
| 意味 | 何も実際ではない | 変更を適用せずにプレビュー |
| スコープ | すべてのタスク | sync_creatives のみ |
| 副作用 | なし(シミュレート) | なし(プレビューのみ) |
| ユースケース | 完全なライフサイクルのテスト | 同期が何を変えるかを確認 |
セラーの実装
リクエストがサンドボックスアカウントを参照する場合(ナチュラルキーのsandbox: true またはサンドボックスの account_id を通じて):
- 実際の広告プラットフォーム API コール(実際の注文、ラインアイテムなど)を行わない
- 実際のお金を請求したり、実際の請求レコードを作成しない
- プロダクションと同じ方法で入力を検証する(無効な予算、不正な日付などを拒否します)
- シミュレートされたデータを含むリアルなレスポンスシェイプを返す
- 成功レスポンスに
sandbox: trueを含めるべきだ (SHOULD)
list_accounts が sandbox: true でフィルタリングした際に返すことができる既存のサンドボックス/テストアカウントがあることを確認します。
暗黙的アカウントのセラー: sync_accounts とアカウント参照でナチュラルキーの一部として sandbox: true を受け入れる。(brand, operator, sandbox: true) を (brand, operator) とは別のアカウントとして扱います。
プロトコルコンプライアンス
ケイパビリティでaccount.sandbox: true を宣言するセラーは以下をしなければなりません (MUST):
- アカウントモデルに適したサンドボックスアカウントを受け入れる
- サンドボックスアカウントを参照するすべてのリクエストにサンドボックスセマンティクスを適用します
- 通常の入力検証を適用する(サンドボックスは検証をバイパスしない)
sandbox: true を含めるべきだ (SHOULD)。