> ## Documentation Index
> Fetch the complete documentation index at: https://adcp-docs-ja.pier1.co.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# sync_plans

> sync_plans は、予算制限、チャンネル、フライト日程、コンプライアンスポリシーを含むキャンペーンプランを AdCP ガバナンスエージェントにプッシュします。

# sync\_plans

キャンペーンプランをガバナンスエージェントにプッシュします。プランはキャンペーンの認可パラメーター — 予算制限、チャンネル、フライト日程、認可市場、コンプライアンスポリシー — を定義し、すべての検証における真実の源泉として機能します。

## リクエスト

```json theme={null}
{
  "tool": "sync_plans",
  "arguments": {
    "plans": [
      {
        "plan_id": "plan_q1_2026_launch",
        "brand": {
          "domain": "acmecorp.com"
        },
        "objectives": "Drive awareness for spring product launch among 25-54 adults in the US, focusing on premium video and high-impact display.",
        "budget": {
          "total": 500000,
          "currency": "USD",
          "reallocation_threshold": 25000,
          "per_seller_max_pct": 40
        },
        "channels": {
          "required": ["olv"],
          "allowed": ["olv", "display", "ctv", "audio"],
          "mix_targets": {
            "olv": { "min_pct": 40, "max_pct": 70 },
            "display": { "min_pct": 10, "max_pct": 30 },
            "ctv": { "min_pct": 0, "max_pct": 20 },
            "audio": { "min_pct": 0, "max_pct": 10 }
          }
        },
        "flight": {
          "start": "2026-03-15T00:00:00Z",
          "end": "2026-06-15T00:00:00Z"
        },
        "countries": ["US"],
        "policy_categories": ["age_restricted"],
        "audience": {
          "include": [
            { "type": "description", "description": "Adults 25-54 interested in home improvement" }
          ],
          "exclude": [
            { "type": "description", "description": "Children under 13" }
          ]
        },
        "restricted_attributes": ["health_data"],
        "min_audience_size": 1000,
        "policy_ids": ["us_coppa", "alcohol_advertising"],
        "custom_policies": [
          "No advertising adjacent to competitor content"
        ],
        "approved_sellers": null,
        "ext": {}
      }
    ]
  }
}
```

## レスポンス

```json theme={null}
{
  "plans": [
    {
      "plan_id": "plan_q1_2026_launch",
      "status": "active",
      "version": 1,
      "categories": [
        { "category_id": "budget_authority", "status": "active" },
        { "category_id": "strategic_alignment", "status": "active" },
        { "category_id": "bias_fairness", "status": "active" },
        { "category_id": "regulatory_compliance", "status": "active" },
        { "category_id": "seller_verification", "status": "active" },
        { "category_id": "brand_policy", "status": "active" }
      ],
      "resolved_policies": [
        { "policy_id": "us_coppa", "source": "explicit", "enforcement": "must", "reason": "Referenced in plan policy_ids" },
        { "policy_id": "alcohol_advertising", "source": "explicit", "enforcement": "should", "reason": "Referenced in plan policy_ids" }
      ]
    }
  ]
}
```

## 仕組み

プランはエージェンシーのプランニングツール、ブランドの予算システム、インサーションオーダーなど外部システムから生まれる。`sync_plans` はそれらをガバナンスエージェントにプッシュして、何を検証すべきかをエージェントに伝える。

既存のプラン（同じ `plan_id`）を同期すると更新されます。ガバナンスエージェントはバージョンをインクリメントし、アクティブなキャンペーンを更新されたルールに対して再評価します。これにより、予算増加やチャンネル追加などのフライト中の変更に対応できます。コンテンツ標準のバージョンは別個の「購入時ピン留め」ルールに従います — [コンテンツ標準のバージョニング](/docs/governance/content-standards/index)を参照。

複数のキャンペーン（`check_governance` と `report_plan_outcome` の `governance_context` で識別）が同じプランを参照できます。ガバナンスエージェントはプランに紐付けられたすべてのキャンペーンにわたって予算を追跡します。

プランはキャンペーンコンテキスト — 予算、チャンネル、フライト日程、認可市場 — を指定します。ガバナンスエージェントはブランドのコンプライアンス設定から適用可能なポリシーを解決するが、プランは `policy_ids` でレジストリポリシーを直接参照したり、`custom_policies` でキャンペーン固有のルールを含めたりすることもできます。これにより、集中的なポリシー管理（ブランドレベル）と、バイイングチームが特定のキャンペーンに追加要件を必要とする場合のキャンペーン固有のオーバーライドの両方に対応できます。

`countries` と `regions` は2つの目的を果たす:

1. **ジオ強制** — ガバナンスエージェントはプランの市場外をターゲットにするメディアバイを拒否します。`regions: ["US-MA"]` のプランは明示的にマサチューセッツをターゲットにしないバイをブロックします。
2. **ポリシー解決** — エージェントはプランの市場と管轄が重なるすべてのポリシーを検索します。`countries: ["US"]` のプランはすべての米国連邦および州レベルのポリシーの対象となります。`regions: ["US-MA"]` のみのプランはマサチューセッツ固有および連邦ポリシーの対象となります。

これらのフィールドは `product-filters`、`offerings`、`create_media_buy` と同じ ISO コードおよびセマンティクスを使用し、プロトコル全体で一貫したジオ語彙を確保します。全国展開するファーマキャンペーンは `countries: ["US"]` を使用し、合法な州に限定される大麻キャンペーンは `regions: ["US-CO", "US-CA", "US-MA"]` を使用します。

## プランハッシュのプリイメージ

バイヤーがここで提供する各プランアイテムは、すべての[署名付き `governance_context`](/docs/building/by-layer/L1/security#署名付きガバナンスコンテキスト)で運ばれる監査層クレーム `plan_hash` を生成するためにガバナンスエージェントがハッシュ化するプリイメージです。正規化ルール、閉じた帳簿上の除外リスト、保持義務、および参照テストベクターの完全なセットは、[プランバインディングと監査](/docs/governance/campaign/specification#plan-binding-and-audit)で規定されています。ガバナンスエージェントの実装者は、出荷前に [`static/compliance/source/test-vectors/plan-hash/`](https://github.com/adcontextprotocol/adcp/tree/main/static/compliance/source/test-vectors/plan-hash) の 11 個のベクターに対してハッシュ化コードを実行すべきです（SHOULD）。

## フィールド

### リクエスト

| フィールド                                   | 型          | 必須  | 説明                                                                                                                                                    |
| --------------------------------------- | ---------- | --- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `plans`                                 | array      | Yes | 同期する1つ以上のキャンペーンプラン。                                                                                                                                   |
| `plans[].plan_id`                       | string     | Yes | このプランの一意識別子。                                                                                                                                          |
| `plans[].brand`                         | BrandRef   | Yes | ガバナンス対象のブランド。ガバナンスエージェントはブランドのコンプライアンス設定を解決して適用可能なポリシーを決定します。                                                                                         |
| `plans[].objectives`                    | string     | Yes | 自然言語のキャンペーン目標。戦略的整合性の検証に使用します。                                                                                                                        |
| `plans[].budget`                        | object     | Yes | 予算パラメーター。                                                                                                                                             |
| `plans[].budget.total`                  | number     | Yes | 認可された総予算。                                                                                                                                             |
| `plans[].budget.currency`               | string     | Yes | ISO 4217 通貨コード。                                                                                                                                       |
| `plans[].budget.reallocation_threshold` | number     | Yes | エージェントがエスカレーションなしに再配分できる金額。`0` はすべての再配分に人間の承認を要求し、`budget.total` 以上の値は実質的に無制限です。[仕様](/docs/governance/campaign/specification#budget-reallocation)を参照。 |
| `plans[].budget.per_seller_max_pct`     | number     | No  | 単一セラーに配分できる予算の最大割合。                                                                                                                                   |
| `plans[].channels`                      | object     | No  | チャンネル制約。省略した場合、すべてのチャンネルが許可されます。                                                                                                                      |
| `plans[].flight`                        | object     | Yes | 認可されたフライト日程。このウィンドウ外の日程を持つメディアバイは拒否されます。                                                                                                              |
| `plans[].countries`                     | array      | No  | 認可市場の ISO 3166-1 alpha-2 国コード。ガバナンスエージェントはこれらの国外をターゲットにするバイを拒否し、ポリシー管轄との照合によって適用可能なポリシーを解決します。                                                        |
| `plans[].regions`                       | array      | No  | 認可された国内サブ市場の ISO 3166-2 区画コード（例: `US-MA`）。指定した場合、国全体ではなくこれらの地域に限定します。                                                                                 |
| `plans[].policy_categories`             | array      | No  | このキャンペーンに適用される規制カテゴリ（例: `children_directed`、`fair_housing`）。ガバナンスエージェントが強制するポリシーレジームを決定します。省略した場合、ガバナンスエージェントはブランドの業種とキャンペーン目標から推論することがあります。          |
| `plans[].audience`                      | object     | No  | オーディエンスターゲティング制約。キャンペーンがリーチすべき対象（include）とリーチしてはなりません対象（exclude）を定義します。[オーディエンス制約](#オーディエンス制約)を参照。                                                    |
| `plans[].restricted_attributes`         | array      | No  | ターゲティングに使用してはなりません個人データカテゴリ（例: `health_data`、`racial_ethnic_origin`）。GDPR 第9条特別カテゴリ。ガバナンスエージェントはこれらの属性を参照するオーディエンスターゲティングにフラグを立てる。                    |
| `plans[].restricted_attributes_custom`  | array      | No  | enum でカバーされていない追加の制限属性。管轄固有の制限のための自由形式文字列（例: `financial_status`）。                                                                                     |
| `plans[].min_audience_size`             | integer    | No  | k-匿名性のための最小オーディエンスセグメントサイズ。複数の条件を使用する場合の推定交差オーディエンスに適用されます。                                                                                           |
| `plans[].policy_ids`                    | array      | No  | このプランに強制するレジストリポリシー ID。プランの countries/regions と交差させて、地理的に関連するポリシーのみをアクティブにします。                                                                        |
| `plans[].custom_policies`               | array      | No  | このキャンペーン固有の自然言語ポリシーステートメント（例: 「競合コンテンツに隣接した広告禁止」）。                                                                                                    |
| `plans[].mode`                          | enum       | No  | このプランのガバナンス強制モード: `enforce`、`advisory`、または `audit`。デフォルトは `enforce`。[ガバナンスモード](/docs/governance/campaign/specification#governance-modes)を参照。          |
| `plans[].approved_sellers`              | array/null | No  | 承認されたセラーエージェント URL のリスト。`null` は任意のセラーを意味します。                                                                                                         |
| `plans[].delegations`                   | array      | No  | このプランに対して実行権限を持つエージェント。[仕様](/docs/governance/campaign/specification#delegations)を参照。                                                                  |
| `plans[].delegations[].agent_url`       | string     | Yes | 委任されたエージェントの URL。                                                                                                                                     |
| `plans[].delegations[].authority`       | enum       | Yes | `full`、`execute_only`、または `propose_only`。                                                                                                             |
| `plans[].delegations[].budget_limit`    | object     | No  | このエージェントがコミットできる最大予算。                                                                                                                                 |
| `plans[].delegations[].markets`         | array      | No  | このエージェントが認可されている ISO 国/地域コード。                                                                                                                         |
| `plans[].delegations[].expires_at`      | string     | No  | ISO 8601 委任期限。                                                                                                                                        |
| `plans[].portfolio`                     | object     | No  | ポートフォリオレベルのガバナンス制約。[仕様](/docs/governance/campaign/specification#portfolio-governance)を参照。                                                             |
| `plans[].portfolio.member_plan_ids`     | array      | Yes | このポートフォリオプランでガバナンスされるプラン ID。                                                                                                                          |
| `plans[].portfolio.total_budget_cap`    | object     | No  | メンバープラン全体の最大累積予算。                                                                                                                                     |
| `plans[].portfolio.shared_policy_ids`   | array      | No  | すべてのメンバープランに強制されるレジストリポリシー ID。                                                                                                                        |
| `plans[].portfolio.shared_exclusions`   | array      | No  | すべてのメンバープランに対する自然言語除外ルール。                                                                                                                             |
| `plans[].ext`                           | object     | No  | 拡張データ。                                                                                                                                                |

### レスポンス

| フィールド                                     | 型      | 説明                                                                        |
| ----------------------------------------- | ------ | ------------------------------------------------------------------------- |
| `plans`                                   | array  | 同期された各プランのステータス。                                                          |
| `plans[].plan_id`                         | string | プラン識別子。                                                                   |
| `plans[].status`                          | enum   | `active`（同期成功）または `error`（同期失敗）。これは同期結果のステータスであり、プランのライフサイクルステータスではありません。 |
| `plans[].version`                         | number | プランバージョン（同期のたびにインクリメント）。                                                  |
| `plans[].categories`                      | array  | このプランでアクティブな検証カテゴリ。ガバナンスエージェントの宣言されたケイパビリティによって異なります。                     |
| `plans[].categories[].category_id`        | string | 検証カテゴリ識別子。                                                                |
| `plans[].categories[].status`             | enum   | `active` または `inactive`。                                                  |
| `plans[].resolved_policies`               | array  | このプランに対してガバナンスエージェントが強制するポリシー。明示的に参照されたポリシーと自動適用されたポリシーの両方を含みます。          |
| `plans[].resolved_policies[].policy_id`   | string | レジストリポリシー ID。                                                             |
| `plans[].resolved_policies[].source`      | enum   | `explicit`（設定またはプランで参照）または `auto_applied`（管轄/ポリシーカテゴリによってマッチ）。            |
| `plans[].resolved_policies[].enforcement` | enum   | `must`、`should`、または `may`。                                                |
| `plans[].resolved_policies[].reason`      | string | このポリシーが含まれた理由。                                                            |

## オーディエンス制約

プランは `audience` フィールドを使ってオーディエンスターゲティング制約を宣言できます。各制約は**オーディエンスセレクター** — 特定のシグナルへの参照または自然言語の説明のいずれか。

**シグナル参照** — データプロバイダーのカタログ内の特定のシグナルを指す:

```json theme={null}
{
  "type": "signal",
  "catalog_url": "https://signals.dataprovider.com/catalog.json",
  "signal_id": "likely_ev_buyers",
  "value": true
}
```

**説明** — 特定のシグナルにマップしない制約のための自然言語:

```json theme={null}
{
  "type": "description",
  "description": "Adults aged 25-54 in urban areas",
  "category": "demographic"
}
```

ガバナンスエージェントは `check_governance` 中にセラーのターゲティングをこれらの制約に対して評価します。シグナル参照は構造的なマッチングを可能にし、説明はセマンティックな比較を必要とします。

### 制限属性

`restricted_attributes` フィールドはターゲティングに使用してはなりません個人データカテゴリを宣言します。値は GDPR 第9条特別カテゴリ: `racial_ethnic_origin`、`political_opinions`、`religious_beliefs`、`trade_union_membership`、`health_data`、`sex_life_sexual_orientation`、`genetic_data`、`biometric_data`。

ガバナンスエージェントはこれらを独自の `restricted_attributes` を宣言しているシグナル定義と照合します。マッチする属性を持つシグナルはターゲティングからブロックされます。属性を宣言していないシグナルの場合、ガバナンスエージェントはシグナル名と説明からセマンティックな推論にフォールバックします。

### ポリシーカテゴリ

`policy_categories` フィールドは適用される規制レジームを宣言します。カテゴリは[ポリシーレジストリ](/docs/governance/policy-registry)で定義され、関連する規制をグループ化する — たとえば `children_directed` は COPPA、英国 AADC、GDPR 第8条をカバーします。

ポリシーカテゴリは `brand.industries` とは異なります。インダストリーは企業が何をするかを説明し、ポリシーカテゴリは特定のキャンペーンにどの規制レジームが適用されるかを説明します。一般的な認知キャンペーンを実施する製薬会社（`industries: ["pharmaceuticals"]`）は、特定の薬を宣伝しないキャンペーンには `pharmaceutical_advertising` をポリシーカテゴリとして必要としないかもしれない。

## エラーコード

| コード                      | 回復          | 説明                                                                               |
| ------------------------ | ----------- | -------------------------------------------------------------------------------- |
| `INVALID_PLAN`           | correctable | プランに必須フィールドがないか、値が無効です。                                                          |
| `BRAND_NOT_FOUND`        | correctable | ブランドドメインをブランドプロトコル経由で解決できなかった。ガバナンスエージェントは有効なブランド参照なしに適用可能なコンプライアンスポリシーを決定できません。 |
| `BUDGET_BELOW_COMMITTED` | correctable | プラン更新時に、すでにコミット済みの金額を下回る予算には削減できません。                                             |

## 関連タスク

* [`check_governance`](./check_governance) — このプランに対してアクションを検証します
* [`report_plan_outcome`](./report_plan_outcome) — プラン状態を更新するために結果を報告します
* [`get_plan_audit_logs`](./get_plan_audit_logs) — プラン状態と監査証跡を表示します
