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

# 公開投稿参照クリエイティブ

> 製品が既存の投稿をブーストまたはスポンサーするとき、published_post 参照アセットで正準フォーマットを使う。

# 公開投稿参照クリエイティブ

公開投稿参照クリエイティブは、セラーがプラットフォーム認可とレビューの後に解決してサーブする既存の投稿です。それらは新しい `format_kind` を必要としません: クリエイティブ形状は依然として `video_hosted`、`image`、または `native_in_feed` です。違いは、バイヤーがアップロードされたメディアバイトの代わりに `published_post` 参照を出荷することです。

このパターンは、ソースオブジェクトがパブリッシャー、クリエイター、またはソーシャルプラットフォームに既に存在するブースト/スポンサー投稿製品に使います。カタログ駆動リテールメディアには使わないでください。リテールメディアは `source_catalog` スロットを持つ `sponsored_placement` のままです。

## 製品宣言

製品は正準フォーマットを宣言し、`asset_source: "publisher_owned_reference"` を設定し、適切なときアップロードされたバイトを拒否し、`published_post` スロットを使います。

```json theme={null}
{
  "format_kind": "video_hosted",
  "format_option_id": "shortloop_reference_video",
  "canonical_formats_only": true,
  "params": {
    "asset_source": "publisher_owned_reference",
    "buyer_asset_acceptance": "rejected",
    "reference_mutability": "mutable_requires_reapproval",
    "required_connections": [
      {
        "provider": "social.example",
        "connection_type": "advertiser_account",
        "required_for": ["sync_creatives", "create_media_buy"],
        "scope": "account"
      },
      {
        "provider": "social.example",
        "connection_type": "publisher_identity",
        "required_for": ["list_creatives", "sync_creatives", "create_media_buy"],
        "scope": "identity",
        "authorization_instructions": "Connect the creator or page that owns the source post."
      }
    ],
    "orientation": "vertical",
    "slots": [
      {
        "asset_group_id": "published_post",
        "asset_type": "published_post",
        "required": true
      },
      {
        "asset_group_id": "primary_text",
        "asset_type": "text",
        "required": false,
        "max_chars": 150
      },
      {
        "asset_group_id": "landing_page_url",
        "asset_type": "url",
        "required": false
      }
    ]
  }
}
```

`asset_source` は情報的です。バインディングコントラクトは依然として `params.slots[]` です: バイヤーは `video` アップロードではなく `published_post` アセットを提出しなければならないことを知ります。

## 下流接続

公開投稿製品はしばしば 1 つ以上の下流プラットフォーム付与を必要とします。短編動画プラットフォームは、例えば広告を買うための advertiser account 接続と、ソース投稿を所有するクリエイター、ページ、またはプロフィールのための別の publisher identity 接続を要求するかもしれません。

AdCP はそれらを複数の AdCP 認証としてモデル化しません。呼び出し元はセラーに一度認証します。セラーは下流接続を保存して使い、バイヤーに代わってプラットフォームを呼び、それらの要件を `params.required_connections[]` で宣言します。

プラットフォーム付与を区別するには `connection_type` を使います:

| Connection type      | Meaning                                               |
| -------------------- | ----------------------------------------------------- |
| `advertiser_account` | 広告を買う、管理する、またはレポートするために使われるプラットフォームアカウント。             |
| `publisher_identity` | 公開投稿を所有するクリエイター、ページ、チャネル、組織、またはプロフィール。                |
| `post_authorization` | プラットフォームが所有アイデンティティの代わりに、または加えて個別の投稿を認可するときの投稿スコープ付与。 |

それらの下流付与の 1 つが欠けている、期限切れ、または失効しているため呼び出しが進めない場合、`error.details.missing_connections[]` を伴う `AUTHORIZATION_REQUIRED` を返します。各ブロックされたエントリーは、バイヤーが人間を正しいプロバイダー固有の接続フローにルーティングできるよう、`provider` または `authorization_url` のいずれかを含まなければなりません。エントリーは `authorization_instructions` と、投稿 URL やプロフィール URL のような安全な `resource_ref` ヒントも運べます。

`required_for` は、広範なカテゴリーではなく具体的な AdCP 操作名を運びます。バイヤーエージェントが接続プロンプトを実行しようとする操作にルーティングできるよう、`list_creatives`、`sync_creatives`、`create_media_buy`、`get_media_buy_delivery`、`get_creative_delivery` のような値を優先します。

マニフェストが `post_url` なしで `platform_post_id` を使うとき、選択された製品またはフォーマットオプションが既にプラットフォームを絞らない限り `platform` を含めます。素のプラットフォームネイティブ id はそうでなければプロバイダー名前空間全体で曖昧です。

## クリエイティブマニフェスト

クリエイティブマニフェストは、他の任意の 3.1 クリエイティブと同じ正準パスを使います。唯一の新しい部分はアセットペイロードです。

```json theme={null}
{
  "format_kind": "video_hosted",
  "format_option_ref": {
    "scope": "product",
    "format_option_id": "shortloop_reference_video"
  },
  "assets": {
    "published_post": {
      "asset_type": "published_post",
      "post_url": "https://social.example/@acme/post/12345"
    },
    "primary_text": {
      "asset_type": "text",
      "content": "New seasonal styles are available now."
    },
    "landing_page_url": {
      "asset_type": "url",
      "url_type": "clickthrough",
      "url": "https://acme.example/summer"
    }
  }
}
```

セラーが投稿を解決できるが有料サーブ前にクリエイター/ページ認可を必要とする場合、`error.details`（できれば `missing_connections[]`）にリカバリー詳細を伴う `AUTHORIZATION_REQUIRED` を返します。

`published_post` アセットの `reference_authorization` はサーバー発行の認可状態です。セラーは読み取り表面でそれを返してもよいが、プラットフォーム拡張が署名付き証明を定義しセラーがその証明を検証しない限り、書き込みリクエストのバイヤー供給認可状態クレームを無視しなければなりません。

```json theme={null}
{
  "errors": [
    {
      "code": "AUTHORIZATION_REQUIRED",
      "message": "Connect the publisher identity that owns this post before paid serving.",
      "field": "creatives[0].assets.published_post",
      "details": {
        "missing_connections": [
          {
            "provider": "social.example",
            "connection_type": "publisher_identity",
            "required_for": ["sync_creatives"],
            "scope": "identity",
            "status": "missing",
            "resource_ref": {
              "post_url": "https://social.example/@acme/post/12345"
            },
            "authorization_url": "https://seller.example/connections/social/authorize?post=12345",
            "authorization_instructions": "Connect the creator or page that owns the source post."
          }
        ]
      }
    }
  ]
}
```

## ライフサイクル

公開投稿参照は承認後に利用不可になりうる。問題が回復可能なとき `suspended` を使います:

| Condition    | Lifecycle result                                       | Reason code                      |
| ------------ | ------------------------------------------------------ | -------------------------------- |
| 認可が失効        | `suspended`                                            | `identity_authorization_revoked` |
| 認可が期限切れ      | `suspended`                                            | `identity_authorization_expired` |
| ソース投稿が非公開になる | `suspended`                                            | `source_private`                 |
| ソース投稿が削除     | ステータス `archived`/`rejected`、または `creative.purged` イベント | `source_deleted`                 |

アクティブなバイには、suspended クリエイティブは `resource_type: "creative"` と `transition.to: "suspended"` を伴うメディアバイ機能低下も作ります。バイヤーは `list_creatives` 経由でクリエイティブスナップショットを、`get_media_buys` 経由でバイスナップショットを照合します。webhook 順序は保証されません。

セラーが後でそのクリエイティブの依存関係が復元できないと判断する場合、`identity_authorization_revoked` のような同じ理由ファミリーで `suspended → rejected` に遷移してもよい。バイヤーは次に参照された投稿を置き換えるか別のクリエイティブを再提出する必要があります。

## ディスカバリー境界

`list_creatives` はライブラリ/読み取り表面で、投稿検索 API ではありません。セラーは既に認可されたまたは以前同期された投稿参照を `list_creatives` の仮想クリエイティブとして露出してもよい（MAY）が、AdCP はセラーにすべてのネイティブプラットフォーム投稿を列挙することを要求しません。

publisher identity 認可を要求するプラットフォームには、`list_creatives` は接続されたアイデンティティを通じてセラーが見ることを許可された投稿のみを列挙できます。バイヤーが公開投稿ライブラリビューを求め必要な publisher identity 接続が欠けている場合、セラーは投稿がないと黙って暗示するのではなく `missing_connections[]` を伴う `AUTHORIZATION_REQUIRED` を返すべきです。

バイヤーが投稿 URL またはプラットフォーム投稿 ID を既に知っているとき、`sync_creatives` が正準書き込みパスです。認可が欠けているためセラーがまだそれをサーブできない場合、正しいレスポンスは新しいアイデンティティディスカバリータスクではなく `AUTHORIZATION_REQUIRED` です。
