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.
Artifacts
アーティファクト は広告掲載面に隣接するコンテンツの単位です。ブランドセーフティ/適合性の評価とは「このアーティファクトは自社広告に適切か?」を問うことです。
アーティファクトとは
アーティファクトは広告表示コンテキストを表します:
- ウェブサイト上の ニュース記事
- 広告ブレーク間の ポッドキャストセグメント
- YouTube 動画内の 動画チャプター
- フィード内の ソーシャルメディア投稿
- CTV 番組の シーン
- チャット会話内の AI 生成画像
アーティファクトは property_id + artifact_id で識別します。property がコンテンツの所在地を、artifact_id がそのコンテンツ固有の識別子を表します。artifact_id の形式は柔軟で、URL パスやプラットフォーム固有 ID、内部で一貫して使う任意の ID で構いません。
Schema: artifact.json
{
"property_id": {"type": "domain", "value": "reddit.com"},
"artifact_id": "r_fitness_post_abc123",
"assets": [
{"type": "text", "role": "title", "content": "Best protein sources for muscle building", "language": "en"},
{"type": "text", "role": "paragraph", "content": "Looking for recommendations on high-quality protein sources...", "language": "en"},
{"type": "image", "url": "https://cdn.reddit.com/fitness-image.jpg", "alt_text": "Person lifting weights"}
]
}
必須フィールド
| Field | Description |
|---|
property_id | このアーティファクトの所在。標準の識別子型(domain, app_id, apple_podcast_id など)を使用 |
artifact_id | プロパティ内で一意の識別子。形式はプロパティ所有者が定義 |
assets | ドキュメント順のコンテンツ(テキスト、画像、動画、音声など) |
任意フィールド
| Field | Description |
|---|
variant_id | 特定のバリアント(A/B テスト、翻訳、時間差バージョン)を識別 |
format_id | フォーマットレジストリ参照(クリエイティブの format と同様) |
url | アーティファクトの Web URL がある場合 |
metadata | アーティファクト単位のメタデータ(OGP、JSON-LD、著者情報など) |
published_time | 公開日時 |
last_update_time | 最終更新日時 |
バリアント
同一アーティファクトに複数バリアントが存在する場合があります:
- Translations - 英語版 vs スペイン語版
- A/B tests - テスト中の異なるヘッドライン
- Temporal versions - 水曜日に変更されたコンテンツ
variant_id で区別します:
// English version
{
"property_id": {"type": "domain", "value": "nytimes.com"},
"artifact_id": "article_12345",
"variant_id": "en",
"assets": [
{"type": "text", "role": "title", "content": "Breaking News Story", "language": "en"}
]
}
// Spanish translation
{
"property_id": {"type": "domain", "value": "nytimes.com"},
"artifact_id": "article_12345",
"variant_id": "es",
"assets": [
{"type": "text", "role": "title", "content": "Noticia de última hora", "language": "es"}
]
}
// A/B test variant
{
"property_id": {"type": "domain", "value": "nytimes.com"},
"artifact_id": "article_12345",
"variant_id": "headline_test_b",
"assets": [
{"type": "text", "role": "title", "content": "Alternative Headline Being Tested", "language": "en"}
]
}
artifact_id と variant_id の組み合わせはプロパティ内で一意としてください。どのバリアントが配信されたかをレポートと突き合わせられます。
アセットタイプ
アセットはアーティファクト内の実コンテンツです。タイトル、本文、画像、動画などすべてアセットとして表現します。
Text
{"type": "text", "role": "title", "content": "Article Title", "language": "en"}
{"type": "text", "role": "paragraph", "content": "The article body text...", "language": "en"}
{"type": "text", "role": "description", "content": "A summary of the article", "language": "en"}
{"type": "text", "role": "heading", "content": "Section Header", "heading_level": 2}
{"type": "text", "role": "quote", "content": "A quoted statement"}
Roles: title, description, paragraph, heading, caption, quote, list_item
各テキストアセットは混在言語コンテンツのために独自の language タグを持てます。
画像 (Image)
{
"type": "image",
"url": "https://cdn.example.com/photo.jpg",
"alt_text": "Description of the image"
}
動画 (Video)
{
"type": "video",
"url": "https://cdn.example.com/video.mp4",
"transcript": "Full transcript of the video content...",
"duration_ms": 180000
}
音声 (Audio)
{
"type": "audio",
"url": "https://cdn.example.com/podcast.mp3",
"transcript": "Today we're discussing...",
"duration_ms": 3600000
}
メタデータ
アーティファクト全体を表すメタデータです。個別アセットではありません:
{
"metadata": {
"author": "Jane Smith",
"canonical": "https://example.com/article/12345",
"open_graph": {
"og:type": "article",
"og:site_name": "Example News"
},
"json_ld": [
{
"@type": "NewsArticle",
"datePublished": "2025-01-15"
}
]
}
}
これはコンテンツ自体ではなくアーティファクトコンテナに関する情報のため、アセットとは分離しています。
セキュアなアセットアクセス
AI 生成画像、プライベート会話、有料コンテンツなど公開されないアセットが多数あります。アーティファクトスキーマは認証付きアクセスをサポートします。
事前設定(推奨)
継続的な提携では、リクエストごとではなくオンボーディング時にアクセス設定を行います:
- サービスアカウント共有 - クラウドストレージへの検証エージェントアクセスを付与
- OAuth クライアント認証情報 - マシン間認証をセットアップ
- API キー交換 - セットアップ時に長期 API キーを共有
これはバイヤーからコンテンツスタンダードを初めて受け取ったセラーのアクティベーションフェーズで行います。
アセット単位の認証
事前設定ができない場合は、アセットごとに認証情報を含めます:
{
"type": "image",
"url": "https://cdn.openai.com/secured/img_abc123.png",
"access": {
"method": "bearer_token",
"token": "eyJhbGciOiJIUzI1NiIs..."
}
}
トークンサイズについての注意: 多数のアセットを持つアーティファクトでは、アセット単位のトークンによってペイロードサイズが大幅に増加する場合があります。以下の方法を検討してください:
- 事前設定アクセス - オンボーディング時にサービスアカウントアクセスを一度設定
- 共有トークン参照 - アーティファクトレベルでトークンを定義し ID で参照
- 署名付き URL - URL 自体が認証情報となる事前署名 URL を使用
url フィールドはアクセス URL で、アーティファクトの正規/公開 URL とは異なる場合があります。例えば https://news.example.com/article/123 として公開された記事が https://cdn.example.com/secured/... からアセット提供される場合があります。
Access Methods
| Method | Use Case |
|---|
bearer_token | OAuth2 bearer token in Authorization header |
service_account | GCP/AWS service account credentials |
signed_url | Pre-signed URL with embedded credentials (URL itself is the credential) |
Service Account Setup
For GCP:
{
"access": {
"method": "service_account",
"provider": "gcp",
"credentials": {
"type": "service_account",
"project_id": "my-project",
"private_key_id": "...",
"private_key": "-----BEGIN PRIVATE KEY-----\n...",
"client_email": "verification-agent@my-project.iam.gserviceaccount.com"
}
}
}
For AWS:
{
"access": {
"method": "service_account",
"provider": "aws",
"credentials": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "...",
"region": "us-east-1"
}
}
}
Pre-Signed URLs
認証情報を共有せずに一時的なアクセスを行う場合:
{
"type": "video",
"url": "https://storage.googleapis.com/bucket/video.mp4?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=...&X-Goog-Signature=...",
"access": {
"method": "signed_url"
}
}
URL 自体に認証情報が含まれているため、追加認証は不要です。
Property Identifier Types
property_id は AdCP プロパティスキーマの標準識別子型を使用します:
| Type | Example | Use Case |
|---|
domain | reddit.com | Websites |
app_id | com.spotify.music | Mobile apps |
apple_podcast_id | 1234567890 | Apple Podcasts |
spotify_show_id | 4rOoJ6Egrf8K2IrywzwOMk | Spotify podcasts |
youtube_channel_id | UCddiUEpeqJcYeBxX1IVBKvQ | YouTube channels |
rss_url | https://feeds.example.com/podcast.xml | RSS feeds |
Artifact ID Schemes
プロパティ所有者が artifact_id の形式を定義します。例:
| Property Type | Artifact ID Pattern | Example |
|---|
| News website | article_{id} | article_12345 |
| Reddit | r_{subreddit}_{post_id} | r_fitness_abc123 |
| Podcast | episode_{num}_segment_{num} | episode_42_segment_2 |
| CTV | show_{id}_s{season}e{episode}_scene_{num} | show_abc_s3e5_scene_12 |
| Social feed | post_{id} | post_xyz789 |
検証エージェントはこの形式を解釈する必要はなく、不透明なものとして扱います。プロパティ所有者は自社コンテンツとの突き合わせに使います。