過去に制作したバナー・コピー・動画の台本を、業種・訴求・媒体・成果で探し、新しい制作の参考になるものを根拠付きで出す
新しい制作の依頼を受けたプランナーやデザイナーが、業種・訴求・媒体を指定し、文章かラフの画像で探すと、過去のバナー・コピー・動画の台本から近いものを成果の帯と一緒に並べます。制作前の参考探しが、人に聞いて回ることから見比べることに変わります。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- EC/小売/広告
- 対象部門
- マーケティング
- 対象業務
- 情報検索/比較検討
- 主な課題
- データ分析に時間がかかる/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 品質標準化/属人化解消/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 制作の依頼を受け、業種・商材・訴求・媒体を確かめる
- 同じ業種の過去の案件を思い出し、ファイルサーバーのフォルダを開いて探す
- 心当たりが無ければ、チャットで「〇〇業界でこういうバナー作ったことある人」と聞く
- 見つけたバナーの成果を知るため、広告運用チームに配信実績を問い合わせる
- 成果の良かったものと悪かったものを数枚ずつ選び、参考資料にまとめる
- 写真やモデルを使っているものは、使用期限が残っているかを制作管理表で確かめる
- 自動納品が終わった制作物を、制作管理表の「納品済み」を起点に取り込む
- 自動バナーは画像とコピーの文字、動画は台本と代表のコマの画像を1件にまとめる
- 自動Claude が画像と文字を見て、訴求の区分と見せ方の特徴を決めた語の中から付ける
- 人制作の担当者が訴求の区分を確かめて確定する
- 自動画像と文字を Cohere Embed v4 で埋め込みにし、OpenSearch に登録する
- 自動毎月、配信実績から制作物ごとの成果の帯を計算し、項目に書き込む
- 人新しい制作の前に、業種・訴求・媒体を選び、文章かラフの画像で探す
- 自動絞り込みのうえで近い制作物を引き、訴求・媒体ごとの件数も返す
- 自動Claude が上位の候補を見比べ、近いと判断した理由を1件ずつ書く
- 人候補を見て参考を選び、制作の打合せの資料に貼る
各工程の詳しい説明を読む
- 制作の依頼を受け、業種・商材・訴求・媒体を確かめる
- 同じ業種の過去の案件を思い出し、ファイルサーバーのフォルダを開いて探す
- 心当たりが無ければ、チャットで「〇〇業界でこういうバナー作ったことある人」と聞く
- 見つけたバナーの成果を知るため、広告運用チームに配信実績を問い合わせる
- 成果の良かったものと悪かったものを数枚ずつ選び、参考資料にまとめる
- 写真やモデルを使っているものは、使用期限が残っているかを制作管理表で確かめる
(a)探す先が人の記憶になっている。 2番目と3番目は、誰がどの業種を担当してきたかを知っている人でないとできません。入社2年目のデザイナーは、5年分のフォルダのどこに何があるかを知りません。
(b)成果の数字が別の場所にある。 4番目の問い合わせは、運用担当が手元の対応表から制作物を探して数字を返す作業になります。返ってくるまで半日かかることもあり、待てない日は成果を見ずに参考を選びます。
(c)媒体をまたいで数字を比べてしまう。 ある媒体のクリック率0.8%と、別の媒体の1.5%を並べて「こちらが良い」とすることが起きます。媒体とフォーマットが違えば、水準が違うのは当然です。
(d)使えない素材を参考にしてしまう。 参考として見るだけなら問題ありませんが、使用期限の切れた写真を「このまま流用しよう」となることがあります。
- 【自動】 納品が終わった制作物を、制作管理表の「納品済み」を起点に取り込む
- 【自動】 バナーは画像とコピーの文字、動画は台本と代表のコマの画像を1件にまとめる
- 【自動】 Claude が画像と文字を見て、訴求の区分と見せ方の特徴を決めた語の中から付ける
- 【人】 制作の担当者が訴求の区分を確かめて確定する
- 【自動】 画像と文字を Cohere Embed v4 で埋め込みにし、OpenSearch に登録する
- 【自動】 毎月、配信実績から制作物ごとの成果の帯を計算し、項目に書き込む
- 【人】 新しい制作の前に、業種・訴求・媒体を選び、文章かラフの画像で探す
- 【自動】 絞り込みのうえで近い制作物を引き、訴求・媒体ごとの件数も返す
- 【自動】 Claude が上位の候補を見比べ、近いと判断した理由を1件ずつ書く
- 【人】 候補を見て参考を選び、制作の打合せの資料に貼る
4番目が、検索の質を決めます。 訴求の区分は絞り込みに使うので、誤った区分のまま登録すると、探しても出てこない制作物が生まれます。 AIに付けさせるのは下書きまでで、確定は制作の担当者が行います。納品の直後なら、作った本人が数秒で確かめられます。
6番目の成果の帯は、AIを通しません。 配信実績の数字から、同じ媒体・同じフォーマットの中での順位を計算するだけです。数えれば分かることに推測を挟みません。
02今回想定するシステム構成
【取り込み】制作管理表(納品済み) ▼【トリガー】ステータスの変更 AWS Lambda ── ファイルサーバーから画像・コピー・台本を取り出す ▼ Claude API ── 画像と文字を見て、訴求の区分と見せ方の特徴を付ける(下書き) ▼【人】制作の担当者が確定 Cohere Embed v4(Amazon Bedrock)── 画像と文字をまとめて埋め込み ▼ Amazon OpenSearch Service(制作物の索引。業種・訴求・媒体・成果の帯・権利の状態) 【毎月】配信実績のレポート ─▶ AWS Lambda ── 成果の帯を計算して書き込む 【検索】検索画面(業種・訴求・媒体、文章またはラフの画像) ▼ Amazon OpenSearch Service ── k-NN 検索(絞り込みを検索の中で効かせる) │ + terms 集計で訴求・媒体ごとの件数 ▼ Claude API ── 上位の候補を見比べ、近いと判断した理由を書く ▼ プランナー・デザイナーが確認 → 打合せの資料へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service(k-NN の絞り込み、terms 集計) | Azure AI Search、Vertex AI Search(Agent Search) |
| 埋め込み | Cohere Embed v4(Amazon Bedrock。画像と文字をまとめて) | Amazon Titan Multimodal Embeddings G1(英語の文字に限る) |
| 生成AI | Claude API(訴求の区分の下書きと、候補の理由) | OpenAI API、Gemini API |
| 連携 | AWS Lambda(取り込み、成果の帯の計算、検索の呼び出し) | AWS Step Functions |
| 保管 | Amazon S3(制作物の写しとサムネイル) | 既存のファイルサーバー |
制作管理表と配信実績のレポートは、新しく足すものではありません。 読むだけで、書き込みはしません。制作管理表の形式と、配信実績と制作物の対応のとり方は会社によって違うため、この部分は利用環境に合わせた個別の実装になります。
埋め込みは、Cohere Embed v4 を想定します。 テキストと画像の両方を受け付けるマルチモーダルの埋め込みモデルで、文字と画像を交互に含む入力(inputs)を1件として埋め込めるとされています。バナーの画像と、そのコピーの文字、業種や媒体の名前を1件にまとめて埋め込めるのが、この題材で選ぶ理由です。出力の次元は256・512・1024・1536(既定)から選べます。
Amazon Titan Multimodal Embeddings G1 を本命にしない理由があります。 画像と文字を同じ空間に埋め込むモデルですが、入力の文字は256トークンまで、言語は英語とされています。日本語のコピーを文字として渡す使い方には合いません。英文のクリエイティブだけを扱う場合の代替にとどめます。
検索の中心は、OpenSearch の k-NN 検索の絞り込みです。 公式ドキュメントでは、Lucene の HNSW(2.4以降)、Faiss の HNSW(2.9以降)と IVF(2.10以降)で、絞り込みの条件を k-NN のクエリの中に書く方式がサポートされています。絞り込んだ件数に応じて、近似の検索と全件を比べる検索を自動で切り替えます。 Amazon OpenSearch Service は3.5・3.3・3.1・2.19などの版に対応しています。
03どうやって実装するのか
処理の起点を決める
取り込みと検索で、起点が2つあります。
取り込みは、制作管理表で制作物が「納品済み」になったことを起点にします。 制作途中の版や、広告主に出す前の案は取り込みません。採用されなかった案を、実際に配信されたもののように見せないためです。 ただし、比較用に作ったAパターン・Bパターンは両方とも配信されるので、両方を取り込みます。
成果の帯は、毎月の配信実績のレポートが出た日に書き込みます。 配信が終わって間もない制作物は数字が少なく、帯を付けません。表示回数が一定に達するまでは「判定前」とします。
過去5年分の約4万本は、別に一括で取り込みます。 訴求の区分は担当者の確認が取れないので、「未確認」の印を付けて区別します。
検索は、プランナーやデザイナーが検索画面で「探す」を押したときに動きます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 制作物の属性 | 制作物番号、広告主、業種、商材、媒体、フォーマット(サイズ・秒数)、納品日、制作者 | 制作管理表 |
| バナー | 画像ファイルと、画像に入っているコピーの文字 | ファイルサーバー |
| コピー | 見出し・説明文・行動喚起の文字 | ファイルサーバー |
| 動画 | 台本の文字と、絵コンテまたは代表のコマの画像 | ファイルサーバー |
| 配信実績 | 制作物番号ごとの表示回数・クリック率・コンバージョン率 | 配信実績のレポート |
| 権利の状態 | 写真・モデル・音源の使用期限、広告主の素材の利用条件 | 制作管理表 |
| 訴求の区分 | 価格、限定・期間、実績・権威、悩みの解決、比較、季節、体験談など20前後 | クリエイティブ局で決める一覧 |
質を決めるのは、業種と訴求の区分です。 業種が「化粧品」「コスメ」「スキンケア」とばらばらでは、絞り込みが効きません。業種は30程度、訴求は20前後の区分に先に固定します。 区分を後から変えると、全件の付け直しになります。
配信実績と制作物の対応は、運用担当の手元の表を1つにまとめるところから始めます。 制作物番号を広告の名前に入れる運用にすれば、以後は対応表が要らなくなります。
データの取得方法を決める
1件の単位は、制作物1本です。 動画は台本と代表のコマを、1本の制作物としてまとめます。
| 項目 | 型 | 使い方 |
|---|---|---|
embedding | k-NN のベクトル | 画像と文字をまとめた埋め込み |
industry appeal media format | keyword | 絞り込みと件数の集計 |
perf_band | keyword(上位/中位/下位/判定前) | 絞り込みと並べ替え |
rights_status | keyword(流用可/参考のみ/期限切れ) | 表示の注意書き |
advertiser_group | keyword | 閲覧できる人の制限 |
copy_text | text | 結果の表示と理由づけ |
埋め込みは、Cohere Embed v4 の inputs で作ります。 1件の入力に、制作物の文字(業種、媒体、フォーマット、コピー)と画像を並べ、input_type は search_document にします。検索時の文章やラフの画像は search_query で埋め込みます。 取り込みと検索で input_type を取り違えると、近さの計算がずれます。
絞り込みは、k-NN のクエリの中に書きます。
{
"size": 20,
"query": {
"knn": {
"embedding": {
"vector": [0.021, -0.008],
"k": 20,
"filter": { "bool": { "must": [
{ "term": { "industry": "スキンケア" } },
{ "terms": { "media": ["SNS_A", "SNS_B"] } },
{ "terms": { "advertiser_group": ["G01", "G07"] } }
] } }
}
}
},
"aggs": {
"by_appeal": { "terms": { "field": "appeal", "size": 20 } },
"by_band": { "terms": { "field": "perf_band" } }
}
}
ラフの画像で探すときも、search_query で埋め込みます。 手描きのラフは完成したバナーと見た目が違うので、依頼の文と一緒に入れたほうが近いものが出やすいと考えられます。 検索画面では、文とラフの両方を入れられるようにします。
絞り込みを k-NN の外に書かないでください。 近いものを先に20件引いてから業種で絞ると、20件のうち業種の合うものが2件しか残らないことが起きます。中に書けば、絞り込んだ範囲の中から20件を引けます。Faiss の場合、絞り込んだ件数が少なければ全件を比べる検索に切り替わるので、件数の少ない業種でも取りこぼしにくくなります。
件数の集計は terms 集計で返します。 訴求ごとの件数が並ぶと、「この業種では価格訴求が多く、体験談の訴求はまだ少ない」が見えます。terms 集計の既定は10個までなので、訴求の区分の数に合わせて size を20にします。項目は keyword 型である必要があります。
AIへ渡す前に整形する
- 画像の形式と大きさ … Cohere Embed v4 に渡す画像は png・jpeg・webp・gif で、1枚5MBまでです。大きなものはサムネイルを作って渡します
- 画像の縮小 … 2,458,624ピクセルを超える画像は縮小され、3,136ピクセル未満は拡大されるとされています。小さなバナー(320×50など)は拡大されるので、文字は別に渡します
- 画像の中の文字 … バナーに入っているコピーは、制作データの文字の層から取り出します。取れないものは Claude に画像から読ませ、担当者が確かめます
- 動画の代表のコマ … 冒頭・中盤・終盤の3コマを選び、台本の文字と一緒にします
- 要求の大きさ … 1回の要求は96件まで、全体で約20MBが上限です。一括の取り込みはこの範囲に分けます
- 広告主名の扱い … 画像の文字と属性に含まれる広告主名と商品名に印を付けます。閲覧の制限と、第13章の伏せ方に使います
- サイズ違いの束ね … 同じデザインのサイズ違い(300×250と728×90など)は、1本の制作物の派生として束ね、検索結果に同じデザインが並ばないようにします
- 成果の帯の計算 … 同じ媒体・同じフォーマットの制作物の中で、クリック率を並べて上位25%・中位・下位25%に分けます。表示回数が足りないものは「判定前」です
2番目を軽く見ないでください。 横長の小さなバナーは拡大されてぼやけ、画像の中の文字は埋め込みにほとんど効きません。 文字は必ず文字として一緒に渡します。
8番目は、第3章の(c)への答えです。 媒体をまたいで数字を比べるのをやめ、同じ土俵の中での位置だけを示します。
AIに処理させる
AIの仕事は2か所です。取り込み時の区分の下書きと、検索結果の理由づけです。
| 場面 | させること | 受け取る形 |
|---|---|---|
| 取り込み | 画像と文字を見て、訴求の区分(一覧から最大2つ)と見せ方の特徴(人物の有無、価格の表示、色調など)を付ける | JSON |
| 検索 | 上位の候補と新しい依頼を見比べ、1件ずつ近いと判断した理由を書く | JSON |
| させないこと | 理由 |
|---|---|
| 成果の帯や数字を書く | 帯は配信実績から計算した項目を表示する。AIに数字を書かせない |
| 一覧に無い訴求の区分を作る | 絞り込みが効かなくなる |
| 写真の人物が誰かを書く | 人物の特定はできないとされ、必要もない |
| 新しいコピーやデザインの案を作る | 本記事は探すところまで。案を作るのは制作者 |
| 権利の状態を判断する | 制作管理表の項目をそのまま出す |
| 「成果が良かった理由」を断定する | 帯は結果で、理由は分からない。見せ方の特徴を並べるまで |
いちばん下の行が、いちばん起きやすい失敗です。 上位の帯のバナーを見せると、「人物の笑顔が効いた」のような理由を自信をもって書きます。 配信の時期、予算、ターゲットの設定が違えば、同じ見せ方でも結果は変わります。理由の推測は、制作者どうしの打合せに任せます。
指示内容を固定する
取り込み時(訴求の区分の下書き)
あなたは広告会社のクリエイティブ局で、納品済みの制作物を整理する担当です。
画像と文字を見て、訴求の区分と見せ方の特徴を付けてください。
【訴求の区分】次の一覧から最大2つ選んでください。一覧に無い区分を
作らないでください。当てはまらなければ「該当なし」としてください。
{appeal_list}
【見せ方の特徴】次の項目について、画像から読み取れることだけを書いてください。
- 人物の有無(有/無) - 価格の表示(有/無) - 主な色調
- 商品の写り方(単体/使用場面/なし) - 行動喚起の文言(画像の中の文字を写す)
【厳守事項】
- 人物が誰かを書かないでください。
- 画像の中の文字が読み取りにくいときは、copy_text を空にし、
text_unreadable を true にしてください。推測で埋めないでください。
- 成果や効果についての評価を書かないでください。
検索時(候補の理由づけ)
あなたは制作の参考を探す手伝いをします。新しい依頼と、検索で引いた
過去の制作物の候補を見比べ、1件ずつ「どこが近いか」を書いてください。
【厳守事項】
- 理由は、候補の項目(業種・訴求・媒体・フォーマット・見せ方の特徴・
コピーの文字)と画像から読み取れることだけを根拠にしてください。
- 成果の帯、クリック率などの数字を書かないでください。表示はこちらで行います。
- 「この見せ方が成果につながった」のように、成果の理由を書かないでください。
- 近いと言えない候補は match を false にし、理由を1文で書いてください。
無理に近い点を探さないでください。
- 広告主名と商品名を理由の文に書かないでください。
【新しい依頼】業種:{industry}/訴求:{appeal}/媒体:{media}/
依頼の文:{brief_text}/ラフの画像:{rough_image}
【候補】{candidates} ※1件ずつ「候補1:」のように番号を付けて画像と項目を渡す
「無理に近い点を探さない」を書かないと、全件に近い点を見つけます。 検索で引いた以上どれかの点は近いので、20件すべてに「訴求が同じ」と書かれ、見比べる意味がなくなります。
候補に番号を付けて渡すのは、複数の画像を区別させるためです。 公式のガイドでも、複数の画像を送るときは Image 1: のような短いラベルを付けることが勧められています。
出力形式を固定する
検索時は、次の形のJSONで受け取ります。
{
"results": [
{
"candidate_no": 1,
"creative_id": "",
"match": true,
"match_points": ["訴求が同じ(限定・期間)", "商品の使用場面を大きく見せている"],
"differences": ["媒体のフォーマットが縦長"],
"reason": ""
}
]
}
JSONで受け取る理由は、表示とAIの出力を分けるためです。 検索画面には、サムネイル・成果の帯・権利の状態を OpenSearch の項目から表示し、AIの出力からは match_points と differences だけを並べます。数字と権利の状態がAIの文章に混ざらないので、写し間違いが起きません。
creative_id は、渡した候補の番号と照らします。 返った番号が候補に無ければ、その行は表示しません。
| 表示の列 | 出どころ |
|---|---|
| サムネイル、制作物番号、業種、媒体、フォーマット | OpenSearch の項目 |
| 成果の帯(上位/中位/下位/判定前) | 配信実績から計算した項目 |
| 権利の状態(流用可/参考のみ/期限切れ) | 制作管理表の項目 |
| 近い点・違う点 | Claude の出力 |
| 訴求・媒体ごとの件数 | terms 集計 |
terms 集計の件数は、近似になることがあります。 公式ドキュメントでは、シャードが複数あるとき、件数の誤差の上限が doc_count_error_upper_bound として返るとされています。件数は傾向を見るためのもので、正確な本数が要るときは別に数えます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 制作管理表 | 読み取り | 納品済みの制作物と属性、権利の状態を取る |
| ファイルサーバー | 読み取り | 画像・コピー・台本を取り出し、S3 に写しを置く |
| 配信実績のレポート | 毎月の読み取り | 制作物番号ごとの数字から成果の帯を計算する |
| Amazon Bedrock | API呼び出し | Cohere Embed v4 で埋め込みを作る |
| Amazon OpenSearch Service | 登録と検索 | 制作物の索引、k-NN の絞り込み、terms 集計 |
| Claude API | API呼び出し | 区分の下書きと、候補の理由づけ |
制作管理表とファイルサーバーには書き込みません。 訴求の区分を確定した結果も、OpenSearch の側に持ちます。元の制作データを、検索の仕組みが書き換えることはありません。
人が確認する
- 取り込み時:訴求の区分を確定する … 納品の直後に、作った本人が下書きを確かめます。直すのは区分だけで、数秒で済みます
- 検索時:候補を自分の目で見る … サムネイルを開き、近い点・違う点を読みます
- 成果の帯を鵜呑みにしない … 帯は結果で、理由ではありません。上位の帯の制作物は、配信の条件を運用担当に確かめてから参考にします
- 権利の状態を確かめる … 「参考のみ」「期限切れ」のものを、そのまま流用しません
「未確認」の印の付いた過去の制作物は、使う前に区分を確かめます。 一括で取り込んだ4万本は、訴求の区分がAIの下書きのままです。参考に選んだときにその場で直してもらうと、使われるものから順に確かになります。
目標は、360件をならして1件10分です。 絞り込みと候補の理由づけで見る数が減り、成果の帯と権利の状態が最初から並びます。残る10分は、候補を見比べて選ぶ時間です。 これは制作者の判断なので、減らしません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 絞り込みの結果が0件 | 業種を広げる候補(上位の区分)を検索画面に出す |
| 画像の中の文字が読めない | text_unreadable を立て、文字なしで登録。担当者が文字を入れる |
| 配信実績と制作物の対応が取れない | 成果の帯を「判定前」のままにする。推測で対応させない |
| 表示回数が足りない | 「判定前」。上位・下位の判定に入れない |
| 動画のファイルしか無く台本が無い | 代表のコマの画像だけで登録し、台本が無いことを印で示す |
| 使用期限が切れた素材 | rights_status を「期限切れ」にし、結果の表示で目立たせる |
| 返った制作物番号が候補に無い | その行を表示しない |
| 同じデザインのサイズ違いが上位を埋める | 派生として束ね、代表の1本だけを表示する |
| 埋め込み・検索・Claude API が応答しない | 再試行は3回まで。検索画面は絞り込みだけの一覧に切り替える |
3行目がいちばん大事です。 対応の取れない数字を推測で付けると、別のバナーの成果を参考にすることになります。 帯が付かないことは、正しい表示です。
記録を残す
- 取り込んだ制作物と、そのときの属性・権利の状態
- 訴求の区分の下書きと、担当者が確定した区分(直した場合はその差)
- 成果の帯を計算したときの元の数字と、計算した月
- 検索の条件(絞り込み、文章、ラフの画像の有無)と、返った候補の番号
- 候補のうち、打合せの資料に使われたもの
2つ目の差は、区分の一覧を見直す材料になります。 特定の区分ばかり直されているなら、その区分の定義があいまいです。
最後の行は、検索の質を測る数字になります。 上位に出たのに使われない候補が多ければ、埋め込みに渡す文字の組み立てを見直します。
04実装レベルの3段階
半自動化で、①の「探す」が縮みます。 ただし、成果の数字は運用担当への問い合わせのままです。本格構成で成果の帯が最初から並び、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の期間に、訴求の区分の付き方と、配信実績と制作物の対応のとり方を固めます。帯の計算を先に作ると、対応の取れない数字で帯が付きます。
05工数削減シミュレーション
導入後 360件 × 10分 ÷ 60 = 60 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 広告主の数が多く、バナー・コピー・動画を月に数百本制作している広告会社や、インハウスの制作部門を持つEC・小売の会社。過去の制作物がファイルサーバーに案件ごとに置かれ、どれが成果を出したかを知っている人が限られている場合。広告の配信実績を制作物の単位で取り出せる場合。
- 制作物が年に数十本で、担当者が全部を覚えていられる場合。配信実績が媒体の管理画面にしかなく、制作物との対応が取れていない場合(先に対応表を作る)。過去の制作物の写真・モデル・音源の使用期限が管理されていない場合。参考を見るのではなく、新しい案をAIに作らせたい場合(本記事は探すところまでです)。
07最小構成で試す方法
- 1つの業種を選び、過去のバナーを100本、サムネイルとコピーの文字を一覧にする
- そのうち成果の数字が分かるものに、同じ媒体の中での上位・中位・下位を手で付ける
- 最近の制作の依頼を3件選ぶ
- 手元のAIサービスに、100本の一覧から依頼ごとに近いものを10本ずつ選ばせる。「近い理由を書くこと。成果の理由は書かないこと」と指示する
- 選ばれた10本を、その業種に詳しいデザイナーが選ぶ10本と比べる
100本なら、検索の仕組みを作らずに確かめられます。 確かめたいのは、「画像と文字から、制作者が近いと感じるものを選べるか」です。
| 出てきた内容 | 判断 |
|---|---|
| デザイナーの10本と半分以上重なる | 取り込みと検索の仕組みに進む |
| 訴求は合うが見せ方が合わない | 画像を一緒に渡す意味がある。構成は有効 |
| 成果の理由を書いてしまう | 指示の書き方で直る |
| 業種の区分がばらばらで選べない | 区分を決めるのが先 |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 絞り込むと候補が数件しか残らない | 絞り込みを k-NN のクエリの中に書く |
| 媒体をまたいで成果を比べてしまう | 同じ媒体・同じフォーマットの中での帯にする |
| 小さなバナーの文字が効かない | 文字は文字として一緒に渡す |
| 取り込みと検索で埋め込みの種類が違う | search_document と search_query を使い分ける |
| 業種・訴求の区分がばらばら | 先に区分を固定し、一覧から選ばせる |
| AIが成果の理由を断定する | 理由は書かせず、近い点・違う点だけにする |
| 全候補に近い点が書かれる | 「無理に近い点を探さない」と指示する |
| 配信実績が制作物に対応しない | 帯を「判定前」にし、推測で対応させない |
| 期限切れの素材を流用する | 権利の状態を結果に目立たせる |
| 訴求ごとの件数が少しずれる | terms 集計は近似になりうる。傾向を見る用途に限る |
| 英語専用の埋め込みモデルを選ぶ | 日本語のコピーを扱うなら、多言語の文字を渡せるモデルにする |
上の2行が、この構成の失敗のほとんどです。 どちらも「出てくるものが少ない」「出てきた数字が比べられない」という形で現れ、制作者が使わなくなる理由になります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 広告主の制作物(未公開のものを含む)、商品名、配信実績の数字、写真・モデル・音源の権利の情報です。
- 競合する広告主の制作物を、別の広告主の担当に見せない … 同じ業種の広告主を複数担当している会社では、ある広告主の制作物と成果を、競合の広告主の制作者が見ることになります。 広告主のグループで閲覧できる範囲を決め、
advertiser_groupで絞り込みます。Amazon OpenSearch Service はインデックス・ドキュメント・フィールド単位のセキュリティを機能として持ちます - 社外に出す資料に、他の広告主の制作物を入れない … 参考は社内の打合せまでです。提案書に過去の制作物を載せるときは、その広告主の了解を取ります
- 権利の切れた素材を流用しない … 参考として見るのと、素材を使うのは別です。「期限切れ」の表示を消せないようにします
- 配信の前の制作物を外部のAPIに渡す範囲を決める … 埋め込みと理由づけのために画像を送ります。広告主との契約で、制作物を外部のサービスに渡してよいかを確かめます
- 人物の特定をさせない … 写真のモデルが誰かは、検索にも理由づけにも要りません
誤りが起きた場合のリスクは、別の広告主の制作物が見えてしまうことと、成果の数字を取り違えて参考を選ぶことの2つです。 前者は閲覧の絞り込みで、後者は帯を機械で計算することで防ぎます。
10まず何から始めるか
1週目:業種と訴求の区分を決める
クリエイティブ局と営業局で、業種を30程度、訴求を20前後の区分に決めます。 迷う例も一緒に書きます。
2週目:100本で試す
1つの業種の過去のバナー100本で、手元のAIサービスに近いものを選ばせ、デザイナーの選んだものと比べます。成果の理由を書いていないかを最優先で見ます。
3週目:配信実績と制作物の対応表を1つにする
運用担当の手元の表を集め、制作物番号と配信実績が1対1で引ける表を作ります。 今後は広告の名前に制作物番号を入れる運用にします。
4週目:取り込みを始める
OpenSearch のドメインを作り、直近1年分の制作物を取り込んで、業種・訴求・媒体で絞って探せる半自動化の状態にします。
2か月目: 成果の帯の計算を足し、残りの4年分を「未確認」の印付きで取り込みます。3か月目以降: 検索結果に近い点・違う点を並べ、打合せの資料に使われた候補を数えます。使われた候補の割合が安定し、制作者が人に聞く前に検索を開くようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| k-NN 検索の絞り込みが Lucene の HNSW(2.4以降)、Faiss の HNSW(2.9以降)と IVF(2.10以降)で使え、絞り込みを k-NN のクエリの中に書くこと。絞り込んだ件数に応じて全件を比べる検索に切り替えること | OpenSearch Documentation: Efficient k-NN filtering | 2026-10-06 |
terms 集計が項目の値ごとに件数を返し、既定が10個であること。シャードが複数あると件数が近似になり、doc_count_error_upper_bound が返ること。項目が keyword・数値などの型である必要があること | OpenSearch Documentation: Terms aggregations | 2026-10-06 |
| Amazon OpenSearch Service が 3.5・3.3・3.1・2.19 などの版に対応すること。インデックス・ドキュメント・フィールド単位のセキュリティを持つこと | AWS: What is Amazon OpenSearch Service? | 2026-10-06 |
Cohere Embed v4 がテキストと画像、その交互の入力(inputs)を受け付けること。input_type に search_document と search_query があること。出力が256・512・1024・1536次元であること。画像が png・jpeg・webp・gif で5MBまで、2,458,624ピクセル超は縮小、3,136ピクセル未満は拡大されること。1回96件・約20MBまでであること | Amazon Bedrock: Cohere Embed v4 | 2026-10-06 |
| Titan Multimodal Embeddings G1 が画像と文字を同じ空間に埋め込み、入力の文字が256トークンまで、言語が英語であること | Amazon Bedrock: Amazon Titan Multimodal Embeddings G1 model | 2026-10-06 |
Claude が JPEG・PNG・GIF・WebP の画像を受け付けること。複数の画像に Image 1: のようなラベルを付けることが勧められていること。画像の人物の名前を挙げる用途に使えないこと。200ピクセル未満の小さな画像では誤りが起きうること | Claude Docs: Vision | 2026-10-06 |
制作物を外部のサービスに渡してよいかは、広告主との契約で確かめてください。 本記事は公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0611)についてのご相談はこちらから。
