https://adcontextprotocol.org/schemas/v3/signals/activate-signal-request.json
レスポンススキーマ: https://adcontextprotocol.org/schemas/v3/signals/activate-signal-response.json
activate_signal は次を含む有効化ライフサイクル全体を扱います。
- 有効化リクエストの開始
- 進行状況の監視
- 最終的なデプロイステータスの返却
リクエストパラメーター
Governance
シグナル有効化は、選択したシグナルがアクティベーション、利用、CPM 料金を運ぶとき、支出コミットイベントです。ガバナンス対象のアカウントでは、バイヤー側オーケストレーターはactivate_signal の前に、purchase_type: "signal_activation" と、total_budget や budget のような支出基準を含む正規化された有効化ペイロードで check_governance を呼ばなければなりません(MUST)。
check_governance が有効化を承認したら、返された governance_context を activate_signal に渡します。アカウントに sync_governance で登録されたガバナンスエージェントがあり、リクエストが有効な governance_context を省略する場合、シグナルエージェントは PERMISSION_DENIED でリクエストを拒否しなければなりません(MUST)。check_governance が有効化を拒否した場合、バイヤーは activate_signal を呼んではなりません(MUST NOT)。
Destination Object
各デプロイ先はtype フィールドでプラットフォームベースかエージェントベースかを区別します。
*
platform は type=“platform” の場合必須、agent_url は type=“agent” の場合必須。
Activation Keys: 認証済みの呼び出し元がリクエスト中のいずれかのデプロイ先にアクセス権を持つ場合、シグナルエージェントはレスポンスにそのデプロイメント用の activation_key を含めます。
Permission Model: キーの付与はリクエストのフラグではなく、シグナルエージェント側の認証・認可に基づきます。
- セールスエージェントは自分の
agent_urlに一致するデプロイメントのキーを受け取ります - 複数 DSP への認証情報を持つバイヤーは、それらすべてのキーを受け取ります
- アクセス可否はシグナルエージェントの権限モデルで決定されます
レスポンス構造
すべての AdCP レスポンスは次を含みます。- message: 有効化ステータスの概要
- context_id: 進行状況追跡用のセッション ID
- data: タスク固有のペイロード(下記 Response Data 参照)
- MCP: 平坦な JSON を返却
- A2A: アーティファクトで返却(text パートに message、data パートにデータ)
- ステータス追跡: task_id で完了状況を確認
- 進行更新: 有効化進捗のリアルタイム更新
レスポンスデータ
フィールド説明
- deployments: 各デプロイ先の結果
- platform: DSP のプラットフォーム ID(platform か agent_url のいずれかが入る)
- agent_url: デプロイメントエージェントの URL(platform か agent_url のいずれかが入る)
- account: 必要に応じたアカウント ID
- activation_key: ターゲティングに使用するキー(下記参照)。認証済みの呼び出し元がそのデプロイにアクセスできる場合にのみ含まれます。
- estimated_activation_duration_minutes: 非同期処理の所要時間目安
- deployed_at: 有効化完了時刻(ISO 8601)
- errors: 有効化中のエラーや警告
- code: プログラムで扱いやすいエラーコード
- message: 文脈を含む説明
- field: エラーに関連するフィールド(任意)
- suggestion: 解決策の提案(任意)
- details: 有効化固有の追加情報(任意)
Activation Key Object
デプロイ先でのシグナル利用方法を示します。セグメント ID かキー/バリューのいずれかです。 セグメント ID 形式(DSP で一般的):アクティベーションキーの使用
アクティベーションキーは、デスティネーションでシグナルをどう参照するかをバイヤーに伝えます。実行パスはデスティネーションタイプによります: プラットフォームデスティネーション —activation_key はプラットフォームネイティブの識別子 segment_id を含みます。シグナルエージェントはセグメントデータを DSP にプッシュしました。バイヤーはそのプラットフォームでキャンペーンターゲティングを設定する際にこのキーを参照します。バイヤーは、有効化プラットフォームがキャンペーンを実行する場所と一致することを保証する責任があります。
エージェントデスティネーション — activation_key はシグナルがセールスエージェント上でライブであることを確認します。SA は有効化を内部で記録し、create_media_buy を通じてメディアバイを履行するときにシグナルベースのターゲティングを適用できます。セラーがインライン Product.signal_targeting_options を通じて、またはインラインオプションを省略するホールセールプロダクトについて get_signals を通じて選択可能なシグナルを公開する場合、バイヤーはそれらのシグナルを packages[].targeting_overlay.signal_targeting_groups で選択し、選択した signal_ref、必要な場合は pricing_option_id、プロダクトオプションまたはシグナル結果が要求する別個のセラー実行ハンドルを運びます。バイヤーは SA がどの DSP を使うかを知る必要はありません — ダウンストリームのプラットフォーム連携は SA の責任です。
デスティネーションタイプの選択: DSP で直接購入するときは type: "platform" を使います。セールスエージェント経由で購入するときは type: "agent" を使います — SA は独自の DSP ターゲティングを実装の詳細として調整します。
プロトコル別の例
AdCP のペイロードはプロトコル間で同一で、ラッパーのみ異なります。MCP リクエスト - セールスエージェントへの有効化
MCP レスポンス - 同期(キー/バリュー)
即時レスポンスとアクティベーションキー:MCP リクエスト - DSP 有効化
MCP レスポンス - 非同期(セグメント ID)
初期レスポンス:A2A リクエスト
自然言語での呼び出し
スキルを明示して呼び出す
A2A レスポンス(ストリーミング)
初期レスポンス:プロトコルトランスポート
- MCP: ポーリングや webhook による非同期トラッキング用の task_id を返す
- A2A: SSE で進捗と完了をリアルタイム送信
- データ整合性: どちらも同一の AdCP データ構造とバージョン情報を含みます
Webhook サポート
初期レスポンスがsubmitted となる長時間処理では、webhook を設定して完了時のレスポンスを受け取ります。
activate_signal のフルレスポンスが届きます。
シナリオ
非同期有効化 - 初期レスポンス(保留)
Message: “I’ve initiated activation of ‘Luxury Automotive Context’ on PubMatic for account brand-456-pm. This typically takes about 60 minutes. I’ll monitor the progress and notify you when it’s ready to use.” Complete Response:非同期有効化 - 最終レスポンス(デプロイ済み)
Message: “Excellent! The ‘Luxury Automotive Context’ signal is now live on PubMatic. You can start using it immediately with the activation key provided. The activation completed faster than expected - just 52 minutes.” Complete Response:同期有効化 - セールスエージェント(即時)
Message: “Signal successfully activated on Wonderstruck sales agent. Use the key-value pair in your targeting configuration.” Complete Response:成功(警告付き)
Message: “Successfully activated ‘Luxury Automotive Context’ on PubMatic, but noted some configuration issues. The signal is live and ready to use, though performance may be sub-optimal until the account settings are updated.” Complete Response:エラーレスポンス(失敗)
Message: “I couldn’t activate the signal on PubMatic. Your account ‘brand-456-pm’ doesn’t have permission to use Peer39 data. Please contact your PubMatic account manager to enable Peer39 access, then we can try again.” Complete Response:エラーコード
Activation Errors
REFERENCE_NOT_FOUND: 参照されたsignal_agent_segment_idが存在しないか、呼び出しアカウントからアクセスできません(error.fieldが失敗パラメーターを識別します)ACTIVATION_FAILED: 何らかの理由で有効化できませんALREADY_ACTIVATED: 指定プラットフォーム/アカウントですでに有効化済みDEPLOYMENT_UNAUTHORIZED: 権限不足でデプロイ不可INVALID_PRICING_MODEL: リクエストした課金モデルが利用できません
Configuration Warnings
SUBOPTIMAL_CONFIGURATION: 有効化したが設定により性能に影響の可能性SLOW_ACTIVATION: 想定より時間がかかっているが進行中FREQUENCY_CAP_RESTRICTIVE: 有効化済みだがフリークエンシーキャップが厳しい可能性
エラーハンドリングの考え方
ステータスとエラーの区別
- タスクステータス: 有効化の全体結果(
deployed、failedなど) - errors 配列: 具体的な問題や警告、対応策
- 部分成功:
errorsに警告があってもdeployedとなる場合があります
エラーの種類
- 致命的エラー: 有効化を阻害(status =
failed) - 警告: 有効化は成功するが注意点あり(status =
deployed+ errors) - 設定上の問題: パフォーマンスに影響する非致命的な課題
利用上の注意
- アカウント指定: アカウント単位で有効化する場合は
accountを含めます - プラットフォーム全体: プラットフォーム全体で有効化する場合は
accountを省略 - 非同期処理: ステータス更新がある長時間タスク
- 監視: ポーリングまたは SSE で task_id を監視
- 冗長性: 失敗時はリトライ可能(冪等)
実装ガイド
有効化メッセージの生成
message フィールドは明確なステータスとアクションを伝えるべきです。