課題: フォーマット爆発
テンプレートフォーマットを使わない場合、寸法が異なるたびに個別のフォーマット定義と format_id が必要です。解決策: パラメータ付きテンプレートフォーマット
1 つのテンプレートフォーマット定義(例:display_static)が format_id オブジェクト内の寸法フィールドを受け入れ、クリエイティブが正確な寸法を指定できるようにします。
フォーマットタイプと format_id
2 種類のフォーマット定義 があり、そこから 3 種類の format_id が生成されます。フォーマット定義
-
具体的フォーマット - 定義内で寸法が固定
- 明示的な寸法を持つ
renders配列を持つ - 例:
display_300x250は常に 300×250px - パラメータは受け付けない
- 明示的な寸法を持つ
-
テンプレートフォーマット - format_id でパラメータを受け取る
accepts_parameters配列で受け付けるパラメータを列挙- 例:
display_staticは任意の寸法を取れる - パラメータ有無のどちらでも利用可
format_id の種類
-
具体的 format_id - 具体的フォーマットを参照
- 例:
{id: "display_300x250"} - パラメータなし(受け付けない)
- 例:
-
テンプレート format_id - パラメータなしでテンプレートを参照
- 例:
{id: "display_static"} - 任意寸法を受け入れるプレースメントで使用
- 例:
-
パラメータ付き format_id - テンプレート + パラメータ
- 例:
{id: "display_static", width: 300, height: 250} - クリエイティブがピクセル寸法を明示するときに使用
- 例:
テンプレートフォーマット定義
パラメータを受け付けるフォーマット定義の例:accepts_parameters: ["dimensions"]- format_id に寸法(width/height ピクセル)を受け付けるrenders[].parameters_from_format_id: true- レンダリング寸法を format_id から取得requirements.parameters_from_format_id: true- アセット寸法は format_id と一致する必要がある
パラメータ付き format_id(クリエイティブマニフェスト)
クリエイティブは format_id で正確な寸法を指定してテンプレートフォーマットを利用します。パラメータの種類
テンプレートフォーマットは次の標準パラメータを受け付けられます。カスタムパラメータも定義できますが、標準を優先してください。dimensions(推奨)
width(number): ピクセル幅height(number): ピクセル高さ- オプション:
min_width/min_height/max_width/max_height(フォーマット定義のrequirementsで使用)
duration
duration_ms(number): 再生時間(ミリ秒)- 動画/オーディオ/DOOH など尺が変化するフォーマット向け
aspect_ratio
aspect_ratio(string): 例"16:9","9:16","1:1"- DOOH/動画でアスペクトを指定する場合
additional parameters
locale,language,placement_typeなど、ユースケースに応じて拡張可能
スキーマ設計のポイント
accepts_parameters
- 受け付けるパラメータ名の配列
- 例:
"accepts_parameters": ["dimensions"] - 受け付けないパラメータは validation で拒否
parameters_from_format_id
renders[]やrequirementsで設定- true の場合、format_id に含まれる値がここへ流用される
- フォーマット定義内で寸法/尺を固定せず、format_id から注入する
parameters_in_assets
- アセット要件に
parameters_from_format_id: trueを設定すると、アセット寸法が format_id と一致することを強制 - 例: 300x250 バナーの画像は
width: 300,height: 250を必須に
ベストプラクティス
- dimensions を標準化: 幅と高さを個別フィールドで表現し、文字列結合は避ける
- format_id を正規化: 同じパラメータセットなら同一の format_id オブジェクトになるようにする
- パラメータを必須化する場所を明確に: プレースメントでは常にパラメータ付き format_id を要求
- 部分指定を禁止:
widthだけ、heightだけは無効(両方必須) - パラメータ検証をスキーマで行う: Validation で不正な組み合わせを拒否
format_id の正規化ルール
等価性
format_id は次のフィールドを含めた完全一致で比較します。agent_urlid- すべてのパラメータ(例: width/height または duration_ms)
許可されない部分パラメータ
width のみ、height のみなど、必要パラメータの一部だけを渡すことはできません。スキーマが拒否します。
マッチングロジック
プレースメント検証
重要: プレースメントは必ずパラメータ付き format_id(寸法/尺を明示)を指定する必要があります。パラメータなしのテンプレート format_id はプレースメントでは使用不可です。 プレースメントでのパラメータ付きフォーマット(必須パターン):具体フォーマットからの移行
移行前(フォーマット爆発):よくあるパターン
IAB 標準ディスプレイサイズ
15 個の IAB サイズごとにフォーマットを定義する代わりに、1 つのテンプレートを使います。- 300×250:
{id: "display_static", width: 300, height: 250} - 728×90:
{id: "display_static", width: 728, height: 90} - 160×600:
{id: "display_static", width: 160, height: 600} - など
動画の尺バリエーション
15/30/60 秒ごとに別定義を作る代わりに:{id: "video_hosted", duration_ms: 30000}
DOOH のスクリーンサイズ
ビルボードごとにフォーマットを作る代わりに:{id: "dooh_static", width: 1920, height: 560}
注: すべての寸法はピクセル。実際の物理サイズ(例: 48 フィート × 14 フィート)はプレースメントのメタデータで管理します。
参考
- Creative Manifests - マニフェストの全体構造
- Format Discovery - バイヤーがフォーマットを見つける方法
- Placement Targeting - クリエイティブをプレースメントに割り当てる方法