> ## 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.

# report_plan_outcome

> report_plan_outcome はアクションの結果を AdCP ガバナンスエージェントに送信し、予算追跡、状態、コンプライアンス記録を更新します。

# report\_plan\_outcome

アクションの結果をガバナンスエージェントに報告します。セラーが応答した後にオーケストレーター（バイヤーサイドエージェント）が呼び出す。これはガバナンスループの「after」の半分だ — 実際に何が起きたかをガバナンスエージェントに伝えて状態を更新し、問題があればフラグを立てる。

セラーはこのタスクを呼び出さない。セラーは `phase: "delivery"` を使った [`check_governance`](./check_governance) で配信データを報告します。

## セラーレスポンス（`create_media_buy` 後）

```json theme={null}
{
  "tool": "report_plan_outcome",
  "arguments": {
    "plan_id": "plan_q1_2026_launch",
    "check_id": "chk_xyz789",
    "outcome": "completed",
    "seller_response": {
      "media_buy_id": "mb_seller_456",
      "packages": [
        {
          "package_id": "pkg_001",
          "product_id": "premium_video_300k",
          "budget": 150000,
          "targeting_overlay": {
            "geo": { "include": [{ "type": "country", "code": "US" }] },
            "viewability": { "standard": "mrc", "threshold": 50 }
          }
        }
      ],
      "planned_delivery": {
        "geo": { "countries": ["US"] },
        "channels": ["olv"],
        "start_time": "2026-03-15T00:00:00Z",
        "end_time": "2026-06-15T00:00:00Z",
        "total_budget": 150000,
        "currency": "USD"
      },
      "creative_deadline": "2026-03-20T00:00:00Z"
    }
  }
}
```

### レスポンス（問題なし）

```json theme={null}
{
  "outcome_id": "out_001",
  "status": "accepted",
  "committed_budget": 150000,
  "plan_summary": {
    "total_committed": 425000,
    "budget_remaining": 75000
  }
}
```

ガバナンスエージェントは状態を更新します: セラーが確認した金額に基づいて予算がコミットされ、メディアバイが追跡されます。

### レスポンス（不一致検出）

同じアクションの別のシナリオで、セラーがリクエストを変更した場合:

```json theme={null}
{
  "outcome_id": "out_002",
  "status": "findings",
  "committed_budget": 120000,
  "findings": [
    {
      "category_id": "seller_verification",
      "severity": "warning",
      "explanation": "Seller reduced budget from $150,000 to $120,000 and added geo targeting for CA that was not requested.",
      "details": {
        "discrepancies": [
          { "field": "packages[0].budget", "requested": 150000, "received": 120000 },
          { "field": "packages[0].targeting_overlay.geo.include", "requested": ["US"], "received": ["US", "CA"] }
        ]
      }
    }
  ],
  "plan_summary": {
    "total_committed": 395000,
    "budget_remaining": 105000
  }
}
```

ガバナンスエージェントはセラーの実際の金額（要求した $150K ではなく $120K）をコミットするが、オーケストレーターが対処するための検出事項を返します。

## 配信データ（定期レポート）

```json theme={null}
{
  "tool": "report_plan_outcome",
  "arguments": {
    "plan_id": "plan_q1_2026_launch",
    "outcome": "delivery",
    "delivery": {
      "media_buy_id": "mb_seller_456",
      "reporting_period": {
        "start": "2026-03-15T00:00:00Z",
        "end": "2026-03-22T00:00:00Z"
      },
      "impressions": 1250000,
      "spend": 18750,
      "cpm": 15.00,
      "viewability_rate": 0.72,
      "completion_rate": 0.65
    }
  }
}
```

### レスポンス（順調）

```json theme={null}
{
  "outcome_id": "out_del_001",
  "status": "accepted"
}
```

### レスポンス（異常検出）

```json theme={null}
{
  "outcome_id": "out_del_002",
  "status": "findings",
  "findings": [
    {
      "category_id": "budget_authority",
      "severity": "warning",
      "explanation": "Spend is pacing 62% above plan. At current rate, budget will be exhausted 5 weeks early.",
      "details": {
        "planned_weekly_spend": 11538,
        "actual_weekly_spend": 18750,
        "overpace_pct": 62,
        "projected_exhaustion": "2026-05-03T00:00:00Z"
      }
    }
  ]
}
```

## 失敗したアクション

セラーがリクエストを拒否した場合、ガバナンスエージェントがプラン状態を更新できるよう報告する:

```json theme={null}
{
  "tool": "report_plan_outcome",
  "arguments": {
    "plan_id": "plan_q1_2026_launch",
    "check_id": "chk_xyz789",
    "outcome": "failed",
    "error": {
      "code": "PRODUCT_UNAVAILABLE",
      "message": "Product premium_video_300k is no longer available."
    }
  }
}
```

```json theme={null}
{
  "outcome_id": "out_003",
  "status": "accepted",
  "committed_budget": 0,
  "plan_summary": {
    "total_committed": 275000,
    "budget_remaining": 225000
  }
}
```

## フィールド

### リクエスト

| フィールド                               | 型       | 必須          | 説明                                                                                       |
| ----------------------------------- | ------- | ----------- | ---------------------------------------------------------------------------------------- |
| `plan_id`                           | string  | Yes         | この結果が対象のプラン。                                                                             |
| `check_id`                          | string  | Conditional | `check_governance` からの `check_id`。結果を承認したガバナンスチェックにリンクします。`completed` と `failed` の結果に必須。 |
| `outcome`                           | enum    | Yes         | `completed`、`failed`、または `delivery`。                                                     |
| `seller_response`                   | object  | No          | セラーの完全なレスポンス。`outcome` が `completed` の場合に必須。                                             |
| `seller_response.media_buy_id`      | string  | No          | セラーのメディアバイ識別子。                                                                           |
| `seller_response.committed_budget`  | number  | No          | 確認されたすべてのパッケージにわたってコミットされた総予算。存在する場合、ガバナンスエージェントは個々のパッケージ予算を合計する代わりにこれを直接使用します。          |
| `seller_response.packages`          | array   | No          | 実際の予算とターゲティングを含む確認済みパッケージ。                                                               |
| `seller_response.planned_delivery`  | object  | No          | セラーが配信すると言ったもの。セラーサイドガバナンスが設定されていない場合、これがガバナンスエージェントのセラーの配信パラメーターに対する唯一のビューとなります。        |
| `seller_response.creative_deadline` | string  | No          | クリエイティブ提出の ISO 8601 締め切り。                                                                |
| `delivery`                          | object  | No          | 配信メトリクス。`outcome` が `delivery` の場合に必須。                                                   |
| `delivery.media_buy_id`             | string  | No          | レポート対象のメディアバイ。                                                                           |
| `delivery.reporting_period`         | object  | No          | レポートウィンドウの開始と終了タイムスタンプ。                                                                  |
| `delivery.impressions`              | integer | No          | 期間中に配信されたインプレッション数。                                                                      |
| `delivery.spend`                    | number  | No          | 期間中の消化額。                                                                                 |
| `delivery.cpm`                      | number  | No          | 期間の実効 CPM。                                                                               |
| `delivery.viewability_rate`         | number  | No          | ビューアビリティ率（0-1）。                                                                          |
| `delivery.completion_rate`          | number  | No          | 動画完了率（0-1）。                                                                              |
| `error`                             | object  | No          | エラー詳細。`outcome` が `failed` の場合に必須。                                                       |
| `error.code`                        | string  | No          | セラーからのエラーコード。                                                                            |
| `error.message`                     | string  | No          | 人間が読めるエラーの説明。                                                                            |

### レスポンス

| フィールド                    | 型      | 説明                                            |
| ------------------------ | ------ | --------------------------------------------- |
| `outcome_id`             | string | この結果レコードの一意識別子。                               |
| `status`                 | enum   | `accepted`（状態更新、問題なし）または `findings`（問題検出）。    |
| `committed_budget`       | number | この結果からコミットされた予算（`completed`/`failed` の結果に存在）。 |
| `findings`               | array  | ステータスが `findings` の場合のみ存在。                    |
| `findings[].category_id` | string | 問題をフラグした検証カテゴリ。                               |
| `findings[].severity`    | enum   | `info`、`warning`、または `critical`。              |
| `findings[].explanation` | string | 問題の人間が読める説明。                                  |
| `findings[].details`     | object | プログラム的な処理のための構造化された詳細。                        |
| `plan_summary`           | object | 更新されたプランの予算状態（`completed`/`failed` の結果に存在）。   |

## エラーコード

| コード                  | 回復          | 説明                                                         |
| -------------------- | ----------- | ---------------------------------------------------------- |
| `PLAN_NOT_FOUND`     | correctable | この ID のプランが存在しません。                                         |
| `CHECK_NOT_FOUND`    | correctable | この `check_id` のガバナンスチェックが存在しません。                           |
| `CAMPAIGN_NOT_FOUND` | correctable | プラン内にこの `governance_context` のキャンペーンが存在しません。               |
| `CAMPAIGN_SUSPENDED` | correctable | プランが人間のレビューを待ちながら停止されています。エスカレーションが解決されるまで結果レポートはブロックされます。 |

## 関連タスク

* [`check_governance`](./check_governance) — アクションを承認したガバナンスチェック
* [`sync_plans`](./sync_plans) — プランをプッシュまたは更新します
* [`get_plan_audit_logs`](./get_plan_audit_logs) — プラン状態と監査証跡を表示します
