
生成AIで広告動画の候補を増やすと、制作のボトルネックは「生成」から「比較と承認」に移る。ここでは、公開ページで案内される入力・調整の流れをもとに、特定の生成モデルや DOM 実装を仮定せず、広告クリエイティブをレビュー可能にする最小のテスト設計をまとめる。
タグ: 要件定義 テスト フロントエンド QA UI
前提: 生成結果と公開可否を分ける
生成完了は、広告として公開してよいことを意味しない。字幕、商品説明、権利、媒体規約、最終表現は別のゲートとして残す。公開されている Nextify の案内では、参照画像やテキストからテンプレート・スタイルを選び、生成後に調整する流れが示されている。以下はその UI をブラックボックスで捉えた設計提案であり、内部コードや性能値の記述ではない。
要件を「固定値」と「比較軸」に分離する
AI Advertising Video Production の公開フローには、商品参照、スタイル、プロンプト、尺、画質、プラットフォーム比率がある。比較対象を作るときは、商品と対象者を固定し、変更する軸を一つにする。
AI Promo Video Generator では、テンプレート、商品画像、プロンプト、9:16/16:9、プレビュー後の修正と再生成が案内される。ここでも「前案を残して、どの軸を変えたか」を要件に含める。
| 項目 | 例 | 扱い |
|---|---|---|
| 商品参照 | 承認済みの商品画像 | 固定 |
| 対象者 | 初回購入を検討中の人 | 固定 |
| 冒頭 | 商品寄り / 開封シーン | 比較軸 |
| 比率 | 9:16 | 固定、または別テスト |
| 承認状態 | draft / review / approved | 生成とは独立 |
データモデルの例
type CreativeCandidate = {
id: string;
briefId: string;
revision: number;
changedAxis: 'opening' | 'voice' | 'visual' | 'ratio';
ratio: '9:16' | '16:9';
status: 'draft' | 'generating' | 'review' | 'approved' | 'rejected';
previousId?: string;
};
previousId を残すと、再生成が前の案を消していないか確認できる。changedAxis がなければ、差分の説明を要求するバリデーションを入れる。
UI 契約をテストケースにする
| ケース | 操作 | 期待する契約 |
|---|---|---|
| 必須入力 | 商品参照なしで生成 | 何が不足しているか表示される |
| 比較軸 | 変更軸なしで再生成 | 差分の指定を促す |
| 再試行 | 生成失敗後に再試行 | 元の依頼と失敗状態を参照できる |
| 比率 | 9:16 を選択 | レビュー画面にも比率が見える |
| 承認 | 生成完了直後 | 自動で approved にならない |
次の Playwright は、実際のセレクタや画面を検証済みという意味ではない。フォームと状態表示に対する契約を、実装前に共有するための例である。
import { test, expect } from '@playwright/test';
test('retry keeps the original brief visible', async ({ page }) => {
await page.goto('/creative-drafts/example');
await page.getByRole('button', { name: 'Retry' }).click();
await expect(page.getByText('Original brief')).toBeVisible();
await expect(page.getByText('changed axis')).toBeVisible();
});
最後のレビューを人に残す
テストで確認できるのは、入力、状態、差分、表示の整合性までである。音なしで商品が分かるか、字幕が読めるか、根拠のない表現が混ざっていないか、音声・画像の利用条件と媒体規約を確認したかは、レビュー担当者の明示的な判断として残す。
候補数を増やすだけでは検証にならない。固定条件、変更軸、前案、承認状態を最小データとして持つと、生成 UI は単なる出力画面から、再現可能なクリエイティブ実験の場になる。