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

# アカウント状態

> AdCP アカウント状態モデル: アカウントがカタログ、クリエイティブ、オーディエンス、イベントソース、キャンペーンを保持する方法。同期タスク、アップサートセマンティクス、非同期承認ワークフロー。

# アカウント状態

AdCP のアカウントはステートフルなコンテナです。バイヤーがセラーのプラットフォームでキャンペーンを実行する前に、アカウントに状態を構築します: プロダクトカタログ、クリエイティブアセット、オーディエンスリスト、コンバージョントラッキング。各状態には独自の同期タスク、独自の承認ワークフロー、独自のライフサイクルがあります。

これは AdCP の以前のバージョンとは異なります。以前はアカウントが請求の参照であり、ほとんどの操作がステートレスでしました。AdCP 3.0 では、アカウントがすべてを結びつける中心的なオブジェクトです。

## 状態ドメイン

アカウントは6つのカテゴリの状態を保持し、それぞれが専用のタスクで管理されます:

| ドメイン         | 同期タスク                | 管理対象                                | ライフサイクル                            |
| ------------ | -------------------- | ----------------------------------- | ---------------------------------- |
| **アイデンティティ** | `sync_accounts`      | バイヤーが誰か、どのブランド、請求条件                 | 一度セットアップ、まれに更新                     |
| **カタログ**     | `sync_catalogs`      | プロダクトフィード、インベントリ、ストア、プロモーション、オファリング | 継続的 — フィードは毎時/毎日更新                 |
| **クリエイティブ**  | `sync_creatives`     | フォーマット固有のマニフェストを持つクリエイティブアセット       | キャンペーンごと、必要に応じて更新                  |
| **オーディエンス**  | `sync_audiences`     | ファーストパーティ CRM オーディエンスリスト            | 増分 — メンバーを時間とともに追加/削除              |
| **イベントソース**  | `sync_event_sources` | コンバージョントラッキング設定（ピクセル、S2S、アプリイベント）   | ソースごとに一度セットアップ、まれに変更               |
| **ガバナンス**    | `sync_governance`    | このアカウントのガバナンスエージェント設定               | アカウントごとに一度セットアップ、ガバナンスエージェント変更時に更新 |
| **キャンペーン**   | `create_media_buy`   | パッケージとターゲティングを持つアクティブキャンペーン         | 準備できたら作成、フライト中に更新                  |

各同期タスクは同じパターンに従います:

* **アップサートセマンティクス** — アイテムは ID でマッチされ、新しければ作成、存在すれば更新
* **ディスカバリーモード** — アイテム配列を省略してアカウントに既存のものを確認
* **非同期承認** — プラットフォームはアクティベート前にアイテムをレビューすることがあります
* **アイテムごとのステータス** — 個別アイテムは独立して成功または失敗できます

## セットアップシーケンス

典型的なバイイングワークフローは依存関係の順でアカウント状態を構築します。各ステップは前のステップが完了していることが必要です:

```mermaid theme={null}
flowchart LR
    A[sync_accounts] --> B[sync_catalogs]
    A --> C[sync_event_sources]
    B --> D[sync_creatives]
    C --> D
    A --> E[sync_audiences]
    A --> G[sync_governance]
    D --> F[create_media_buy]
    E --> F
    G --> F
```

### 1. アカウントを確立します

`sync_accounts` はバイヤーが誰で、どのように支払うかを宣言します。セラーは関係を認め、ステータスと請求条件を返します。

```json theme={null}
{
  "accounts": [{
    "brand": { "domain": "acme-corp.com" },
    "operator": "pinnacle-media.com",
    "billing": "operator"
  }]
}
```

### 2. カタログを同期します

`sync_catalogs` はプロダクトデータをアカウントで利用可能にします。フォーマットは `assets` 配列の `catalog` アセットタイプを通じて必要なカタログタイプを宣言するため、バイヤーはクリエイティブを送信する前に適切なフィードを同期します。

```json theme={null}
{
  "account": { "account_id": "acct_001" },
  "catalogs": [
    {
      "catalog_id": "product-feed",
      "type": "product",
      "url": "https://feeds.acme.com/products.xml",
      "feed_format": "google_merchant_center",
      "update_frequency": "daily"
    },
    {
      "catalog_id": "store-locations",
      "type": "store",
      "url": "https://feeds.acme.com/stores.json",
      "feed_format": "custom",
      "update_frequency": "weekly"
    }
  ]
}
```

プラットフォームは各フィードを取得して検証します。アイテムは承認、拒否、または警告付きでフラグされることがあります — Google Merchant Center がプロダクトリスティングをレビューするのに似ています。

### 3. イベントソースを設定します

`sync_event_sources` はコンバージョントラッキングを設定して、プラットフォームが広告露出に結果を帰属させられるようにします。

```json theme={null}
{
  "account": { "account_id": "acct_001" },
  "event_sources": [{
    "event_source_id": "web-pixel",
    "name": "Website Conversions",
    "type": "pixel",
    "events": ["purchase", "add_to_cart", "lead"]
  }]
}
```

### 4. ガバナンスを設定します

[`sync_governance`](/docs/accounts/tasks/sync_governance) はアカウントにガバナンスエージェントを登録します。設定されると、ガバナンスをサポートするセラーはメディアバイを確定する前に [`check_governance`](/docs/governance/campaign/tasks/check_governance) を呼び出します。

```json theme={null}
{
  "account": { "account_id": "acct_001" },
  "governance_agents": [{
    "agent_url": "https://governance.acme-corp.com/adcp",
    "domains": ["campaign", "creative", "content_standards"]
  }]
}
```

<Note>
  稼働中のアカウントでガバナンスエージェントを変更すると、すべてのアクティブキャンペーンに影響します。ガバナンスエージェントが削除されると、セラーはそのドメインについて `check_governance` の呼び出しを停止します。新しいエージェントが追加されても、既存のキャンペーンは遡及的に検証されません。更新されたガバナンス設定を通るのは新しいトランザクションのみです。
</Note>

### 5. クリエイティブを同期します

`sync_creatives` は、ステップ 2 で同期されたカタログを参照するクリエイティブアセットを送信します。カタログ駆動フォーマットの場合、クリエイティブの `catalogs` フィールドはアイテムをインラインで埋め込む代わりに、`catalog_id` で同期されたカタログを参照します。

```json theme={null}
{
  "account": { "account_id": "acct_001" },
  "creatives": [{
    "creative_id": "product-carousel",
    "format_id": {
      "agent_url": "https://creative.retailer.com/adcp",
      "id": "product_carousel_with_inventory"
    },
    "catalogs": [{
      "catalog_id": "product-feed",
      "type": "product",
      "tags": ["summer"]
    }],
    "assets": {
      "banner_image": {
        "url": "https://cdn.acmecorp.com/carousel-hero.jpg",
        "width": 1200,
        "height": 628
      }
    }
  }]
}
```

### 6. オーディエンスをアップロードします

`sync_audiences` はターゲティング用のファーストパーティオーディエンスリストをアップロードします。送信前にメンバーはハッシュ化されます。

```json theme={null}
{
  "account": { "account_id": "acct_001" },
  "audiences": [{
    "audience_id": "high-value-customers",
    "name": "High Value Customers",
    "add": [
      { "hashed_email": "a1b2c3..." },
      { "hashed_email": "d4e5f6..." }
    ]
  }]
}
```

### 7. キャンペーンを作成します

すべての状態が整ったら、`create_media_buy` が同期された状態を参照するキャンペーンを活性化します:

```json theme={null}
{
  "account": { "account_id": "acct_001" },
  "name": "Summer Product Launch",
  "packages": [{
    "product_id": "sponsored-products",
    "creative_ids": ["product-carousel"],
    "targeting_overlay": {
      "audiences": { "include": ["high-value-customers"] }
    }
  }]
}
```

## ディスカバリー

すべての同期タスクは**ディスカバリーモード**をサポートします: アイテム配列なしでタスクを呼び出して、アカウントに既存の状態を確認します。これはバイイングエージェントがセラーがブランドについて既に知っていることを学ぶ方法です。

```json theme={null}
// このアカウントにはどんなカタログがあるか?
{ "account": { "account_id": "acct_001" } }

// レスポンス: アカウントに既存のカタログ
{
  "catalogs": [
    { "catalog_id": "product-feed", "action": "unchanged", "item_count": 1250 },
    { "catalog_id": "store-locations", "action": "unchanged", "item_count": 45 }
  ]
}
```

これが重要な理由: セラーはすでに他のソースからブランドデータを持っている可能性があります — 小売業者はコマースプラットフォームからブランドのプロダクトカタログを持っているかもしれないし、パブリッシャーは以前のキャンペーンからクリエイティブを持っているかもしれません。ディスカバリーにより、バイヤーはすべてを再アップロードするのではなく、既存の状態の上に構築できます。

## 承認ワークフロー

同期タスクは多くの場合非同期です。プラットフォームはアイテムをアクティブにする前にレビューする必要がある場合があります:

* **カタログ**: プロダクトリスティングはコンテンツポリシーチェックを経ます。アイテムは承認、拒否、または警告付きでフラグされることがあります。
* **クリエイティブ**: 生成クリエイティブは人間の承認が必要です。従来のクリエイティブはポリシーレビューが必要な場合があります。
* **オーディエンス**: プラットフォームはハッシュ化された識別子をユーザーベースと照合する時間が必要です。
* **イベントソース**: コンバージョントラッキングはピクセル検証が必要な場合があります。

すべての同期タスクは処理完了時のウェブフックコールバック用に `push_notification_config` をサポートします。長時間実行する操作の場合、プラットフォームは非同期ステータス更新（working、input-required、submitted）を返し、バイヤーがポーリングするかウェブフックで受け取ります。

## 状態の依存関係

一部の状態は他の状態に依存します。プラットフォームはこれらの依存関係を強制します:

* **クリエイティブはカタログを参照する** — `catalog_id: "product-feed"` を使用するクリエイティブは、そのカタログが最初に同期されていることが必要
* **キャンペーンはクリエイティブとオーディエンスを参照する** — `create_media_buy` は参照された `creative_ids` とオーディエンス ID がアカウントに存在することが必要
* **イベントソースは最適化を可能にする** — パッケージの最適化ゴールはアトリビューション用にイベントソースを参照します

依存関係が欠けている場合、プラットフォームは最初に何を同期する必要があるかを説明するエラーを返します。

## ステートレス vs ステートフル操作

すべてのものがアカウント状態を必要とするわけではありません。一部のタスクはステートレスクエリです:

| ステートレス（アカウント不要）                     | ステートフル（アカウント必要）                   |
| ----------------------------------- | --------------------------------- |
| `get_products` — インベントリを発見          | `create_media_buy` — インベントリを購入    |
| `list_creative_formats` — フォーマットを発見 | `sync_creatives` — クリエイティブをアップロード |
| `get_signals` — シグナルを発見             | `activate_signal` — シグナルを活性化      |
| `get_adcp_capabilities` — 機能を発見     | `sync_catalogs` — カタログをアップロード     |

パターン: **発見はステートレス、実行はステートフル**。アカウントなしでセラーのインベントリを閲覧できます。購入するにはアカウントが必要です。

## 関連ドキュメント

* **[アカウントとエージェント](/docs/building/by-layer/L2/accounts-and-agents)** — アカウントアイデンティティ、請求モデル、`sync_accounts` の詳細
* **[非同期操作](/docs/building/by-layer/L3/async-operations)** — 非同期承認ワークフローの仕組み
* **[ウェブフック](/docs/building/by-layer/L3/webhooks)** — 非同期操作完了時の通知受け取り
* **[カタログ](/docs/creative/catalogs)** — パブリッシャーが広告でレンダリングするアイテムを提供する型付きデータフィード
