銀行・信用金庫の預金・ローン・投資信託の広告やチラシの原稿を、法令と業界の表示の規約・行内の表示ルールに照らして校正し、表示の抜けと直し案を出す
預金・ローン・投資信託の広告の原稿から、金利や優遇、試算などの表現を拾い、それぞれに必要な表示が添えられているかを校正します。抜けている表示と直し案を一覧にして、審査の担当に渡します。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/n8n/Power Automate/Python
- 対象業界
- 金融
- 対象部門
- マーケティング/法務
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 判断に時間がかかる/属人化している/確認ミスが多い
- AIで行う処理
- 校正
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 営業企画部が文案を作り、デザイン会社に原稿を頼む
- 戻ってきたPDFを、広告審査の申請に添えて提出する
- 審査の担当が原稿を印刷し、金利・優遇・試算・実績・「最高」などの言葉に印を付ける
- 印を付けた表現ごとに、チェックリストを見て、併せて表示すべき事項が書かれているかを探す
- 投資信託や外貨預金なら、損失のおそれや手数料の表示の文字が小さすぎないかを目で見る
- 指摘を申請の画面に書き、営業企画部に差し戻す
- 直した原稿が戻ってきたら、3番からやり直す
- 人営業企画部が、原稿のPDF(文字情報の入ったもの)と、広告の種類・媒体・対象の商品を広告審査の申請に添えて提出する
- 自動申請をきっかけにワークフローが動き、PDFから文字と文字の大きさ・位置を取り出す
- 自動前回の審査の原稿があれば、文字の差分を取り出す
- 自動生成AIが、原稿から金利・優遇・試算・実績・強調の表現と、表示されている事項を拾い、決まった形で返す
- 自動ルール表に照らして、拾った表現ごとに添えるべき事項がそろっているかを判定する
- 自動文字の大きさと、強調と打消しの表示の距離を、取り出した数値で測る
- 自動抜けている事項について、生成AIが直し案の文を作る
- 人審査の担当が、指摘の一覧を原稿と並べて確かめ、採る指摘と採らない指摘を決める
- 人担当が差し戻しを書いて営業企画部に戻す。または承認する
- 自動原稿、拾った結果、判定、担当の判断を審査記録に残す
各工程の詳しい説明を読む
- 営業企画部が文案を作り、デザイン会社に原稿を頼む
- 戻ってきたPDFを、広告審査の申請に添えて提出する
- 審査の担当が原稿を印刷し、金利・優遇・試算・実績・「最高」などの言葉に印を付ける
- 印を付けた表現ごとに、チェックリストを見て、併せて表示すべき事項が書かれているかを探す
- 投資信託や外貨預金なら、損失のおそれや手数料の表示の文字が小さすぎないかを目で見る
- 指摘を申請の画面に書き、営業企画部に差し戻す
- 直した原稿が戻ってきたら、3番からやり直す
(a)組み合わせの抜けを見落とす。 「金利0.5%上乗せ」と書いたキャンペーンで、上乗せの取引条件は書いてあるのに、中途解約したときの扱いが無い。 1つの原稿に表現が10個あれば、照らす組み合わせは何十になります。4番は、担当の注意力に頼った作業です。
(b)担当によって指摘が違う。 ある担当は「キャンペーン期間が小さすぎる」と指摘し、別の担当は指摘しない。営業企画部から見ると、誰に当たるかで差し戻しの数が変わります。 デザイン会社への直しの依頼も、そのたびに増えます。
(c)文字の大きさは目で見るしかない。 投資信託の広告で、損失のおそれの文字がほかの文字と比べて小さすぎないか。印刷した紙を並べて見比べる以外に、確かめる手段がありません。
(d)再審査で全部を読み直す。 直した原稿のどこが変わったかが分からないため、2回目も3回目も、最初から読み直します。
- 【人】 営業企画部が、原稿のPDF(文字情報の入ったもの)と、広告の種類・媒体・対象の商品を広告審査の申請に添えて提出する
- 【自動】 申請をきっかけにワークフローが動き、PDFから文字と文字の大きさ・位置を取り出す
- 【自動】 前回の審査の原稿があれば、文字の差分を取り出す
- 【自動】 生成AIが、原稿から金利・優遇・試算・実績・強調の表現と、表示されている事項を拾い、決まった形で返す
- 【自動】 ルール表に照らして、拾った表現ごとに添えるべき事項がそろっているかを判定する
- 【自動】 文字の大きさと、強調と打消しの表示の距離を、取り出した数値で測る
- 【自動】 抜けている事項について、生成AIが直し案の文を作る
- 【人】 審査の担当が、指摘の一覧を原稿と並べて確かめ、採る指摘と採らない指摘を決める
- 【人】 担当が差し戻しを書いて営業企画部に戻す。または承認する
- 【自動】 原稿、拾った結果、判定、担当の判断を審査記録に残す
5番目が、この設計の要です。 何を添えるべきかの判定は、生成AIではなくルール表と機械の照合で行います。 ルール表は、コンプライアンス統括部が表示規約と法令を読んで作るもので、規約が改正されたら直すのはルール表だけです。
8番目で担当が見るのは、指摘の一覧です。 原稿を最初から読むのではなく、指摘の根拠になった原稿の箇所を、一覧から1つずつ開いて確かめます。
02今回想定するシステム構成
【入力】原稿のPDF+広告の種類・媒体・商品 ▼【トリガー】広告審査の申請 Power Automate ▼ 文字と大きさの取り出し(Python・PyMuPDF) │ 文字、文字の大きさ、位置、ページ ├──▶ 前回の原稿との差分 ▼ Azure OpenAI(Microsoft Foundry。構造化出力) │ 表現の拾い出し(金利/優遇/試算/実績/強調/比較)と、表示されている事項 ▼ 照合(Python)── ルール表で添えるべき事項を判定、文字の大きさと距離を測る ▼ Azure OpenAI ── 抜けている事項の直し案 ▼ 【人】審査の担当が一覧を確かめ、差し戻しまたは承認 ▼ 審査記録(SharePoint)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | Claude API、Gemini API |
| 連携 | Power Automate | Make、n8n |
| 差異計算 | Python(PyMuPDF による文字と大きさの取り出し、ルール表との照合) | Google Apps Script |
| 保管 | SharePoint(原稿、ルール表、審査記録) | Box、Google ドライブ |
| 申請 | 行内の広告審査のワークフロー | 申請の画面を新しく作らず、メールで受け付ける |
ルール表は、1行が「表現の種類・商品・添えるべき事項・根拠・媒体ごとの扱い」の表です。 たとえば「預貯金の金利の表示」の行には、期間・金額・リスク・利息・税金・手数料・中途解約に関する事項を、「貸出の金利の表示」の行には、期間・金額・リスク・借入条件・利息・返済条件・手数料に関する事項を並べます。この表を作るのは、コンプライアンス統括部です。
ルール表の土台は3つあります。 1つ目は、全国銀行公正取引協議会が景品表示法にもとづき消費者庁・公正取引委員会の認定を受けて運用する「銀行業における表示に関する公正競争規約」です。適用されるのは協議会の会員銀行が行う一般消費者を対象とした表示で、信用金庫は自庫が会員かどうかと、自庫に当てはまる業界の規則を先に確かめます。 2つ目は、投資信託の広告に適用される金融商品取引法第37条と、その政令・内閣府令です。3つ目は、外貨預金など元本に損失が生ずるおそれのある特定預金等の契約について金融商品取引法の規定を準用する銀行法第13条の4です。
文字の大きさは、PyMuPDF で取り出します。 PyMuPDF の文書では、page.get_text("dict") が blocks → lines → spans の階層で返り、各 span に size(文字の大きさ)、font、bbox(位置)、text などのキーを持つとされています。この数値を使うので、原稿は文字情報の入ったPDFで受け取ることをデザイン会社との約束にします。
生成AIは、Azure OpenAI の構造化出力で呼びます。 Microsoft Learn では、構造化出力を使うとモデルは指定した JSON スキーマの定義に従うとされ、Chat Completions API では response_format に、Responses API では text.format にスキーマを書きます。拾った表現の種類と位置を、決まった形で受け取るために使います。
03どうやって実装するのか
処理の起点を決める
広告審査の申請が提出されたときに動きます。 申請の画面で、広告の種類(預金/ローン/投資信託/外貨預金/複合)、媒体(チラシ/ポスター/ウェブ/DM/新聞)、対象の商品を選んでもらい、原稿のPDFを添えます。媒体を選ばせるのは、媒体によって添えるべき事項の扱いが変わるためです。
再審査のときも同じ申請から動きます。 前回の審査の番号を入れてもらい、前回の原稿との差分を先に取り出してから、全体を見直します。
夜間にまとめて動かす設計にはしません。 キャンペーンの開始日が決まっていて、差し戻しの往復の1回分が、出稿の遅れに直結するからです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 原稿のPDF | 文字情報の入ったPDF。表と裏、ウェブはページ全体を印刷したPDF | 広告審査の申請 |
| 広告の属性 | 種類、媒体、商品、掲載期間 | 広告審査の申請 |
| ルール表 | 表現の種類ごとの、添えるべき事項と根拠、媒体ごとの扱い | SharePoint |
| 商品の条件表 | 金利、期間、最低預入額、手数料、中途解約の利率、キャンペーンの条件 | 営業企画部が商品ごとに持つ表 |
| 行内の表示ルール | 自行の名称の書き方、登録番号の書き方、問い合わせ先、禁止している言い回し | コンプライアンス統括部 |
| 前回の原稿と審査記録 | 再審査のときだけ | SharePoint |
質を決めるのは、ルール表と商品の条件表です。 ルール表が無ければ、何が抜けているかを判定できません。商品の条件表が無ければ、原稿に書かれた金利や期間が正しいかを照らす先がありません。 この構成では、条件表の値と原稿の値が違うときも指摘として出します。
行内の表示ルールは、規約や法令より細かいことが多くあります。 「最大」を使わない、問い合わせ先は代表番号を書く、のような取り決めです。ルール表の中で「行内」の印を付けて、規約・法令の行と分けて持ちます。 審査の担当が指摘を採るか決めるとき、根拠の重さが違うからです。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 文字・大きさ・位置 | PyMuPDF の get_text("dict") の span | 表現の位置、文字の大きさの比較、強調と打消しの距離 |
| 前回との差分 | 前回の原稿から同じ方法で取り出した文字との比較 | 再審査で変わった箇所の表示 |
| ルール表の該当行 | 広告の種類と媒体で絞る | 照合の基準と、生成AIに渡す表現の種類 |
| 商品の条件 | 申請で選んだ商品で引く | 原稿の値との照合 |
生成AIに渡すのは、文字を位置の順に並べたものです。 span ごとに番号を振り、[p1-s034] 年0.30% のように、どの箇所の文字かが分かる形にします。 生成AIが拾った表現には、この番号を付けて返させます。指摘から原稿の該当箇所へ戻れるのはこの番号のおかげです。
チラシの裏面やウェブのリンク先も、同じ申請に入れてもらいます。 表示規約の運用基準では、ウェブで金利の隣接箇所に必要表示事項のページへのリンクを設けている場合や、チラシの裏面に必要表示事項を表示している場合などは、同一箇所でなくても表示しているものとみなすとされています。裏面やリンク先が無いまま照合すると、抜けの指摘が実際より多く出ます。
AIへ渡す前に整形する
- 文字情報の確認 … PDFから文字が取り出せない(画像だけの)ページがあれば、照合をせずに差し戻します
- 位置の順への並べ替え … 段組みのあるチラシでは、取り出した順と読む順が違うことがあります。位置の座標で並べ直します
- span への番号付け … ページと順番で番号を振ります
- 大きさの集計 … 原稿の中で最も大きな文字の大きさを、ページごとに求めます
- 差分の取り出し … 再審査のときは、前回の原稿の文字と比べて変わった span に印を付けます
- ルール表の絞り込み … 広告の種類と媒体で、照合に使う行だけを選びます
1番目を省かないでください。 画像だけの原稿を通すと、何も書かれていないという判定になり、すべての事項が抜けとして出ます。 審査の担当が一覧を見て混乱するだけで、役に立ちません。
4番目の最大の文字は、投資信託の広告の照合に使います。 たとえばページの見出しが48ポイントで、損失のおそれの文が7ポイントなら、その比を一覧に出します。どの比から「著しく異なる」とするかは条文に数値が無いため、コンプライアンス統括部が行内の目安を決めてルール表に書きます。 機械が出すのは比の値までです。
2番目は、強調と打消しの距離を測るときに効きます。 表示規約の運用基準には、打消し表示について、文字の大きさ、強調表示の文字とのバランス、配置の箇所、ウェブ(PC)では強調表示と打消し表示が1スクロール以上離れていないか、といった留意事項が挙げられています。位置が正しく取れていないと、距離が測れません。
AIに処理させる
生成AIにさせるのは2つです。拾うことと、直し案の文を作ることです。 照らす仕事はさせません。
| させること | 中身 |
|---|---|
| 表現を拾う | 金利、金利の上乗せ・優遇、キャッシュバック、返済額などの試算、過去の運用実績、「最高」「No.1」「業界初」などの強調、他行との比較 |
| 種類を付ける | 拾った表現ごとに、ルール表の表現の種類のどれに当たるかを付ける |
| 表示されている事項を拾う | 期間、金額、税金、手数料、中途解約、借入条件、返済条件、損失のおそれ、指標、商号、登録番号など |
| 直し案を作る | 抜けていると判定された事項について、商品の条件表の値を使った文案を作る |
| させないこと | 理由 |
|---|---|
| 規約や法令に合っているかの結論 | 判断はルール表と審査の担当が行う |
| 文字の大きさの判断 | PDFから数値で測れる |
| 条件表に無い値を直し案に入れる | 金利や手数料を推測で書くと、誤った表示を作ることになる |
| 強調の表現を言い換えて残す | 実証できない「最高」を「トップクラス」に言い換えても、根拠の要否は変わらない |
| 表現の種類を作る | ルール表に無い種類は「その他」として返し、人が見る |
3行目がいちばん起きやすい失敗です。 直し案を頼むと、生成AIは「中途解約の場合は所定の中途解約利率を適用します」のようなそれらしい文を作ります。 「所定の」で済むのか、利率を書くべきかは行内の決まりです。直し案に入れる値は、商品の条件表にあるものだけにします。
4行目も大事です。 強調の言葉を指摘すると、生成AIは別の強調の言葉に言い換えた案を出しがちです。直し案では、根拠のデータを添えるか、表現を外すかの2択にします。
指示内容を固定する
あなたは銀行の広告審査で、原稿から表現を拾い出す係です。
判断はしません。原稿に書かれていることを、決まった形で書き出してください。
【拾う表現の種類】
rate_deposit(預貯金等の金利)/rate_loan(貸出の金利)/preferential(金利の上乗せ・
優遇・手数料の減免・キャッシュバック)/premium(景品)/simulation(将来の試算)/
past_performance(過去の実績)/superlative(最上級・唯一性の言葉)/
comparison(他者との比較)/risk_product(元本の損失のおそれがある商品の表示)/other
【守ること】
- 原稿の文字は [p1-s034] のような番号付きで渡します。
拾った表現には、必ず元の番号を付けてください。番号の無い表現を作らないでください。
- 原稿に書かれていない事項を、書かれているものとして扱わないでください。
「詳しくは店頭で」とだけある場合、その事項は書かれていません。
- 期間・金額・税金・手数料・中途解約などの事項を拾うときは、
どの表現についての事項かが原稿から分かる場合だけ、その表現に結び付けてください。
分からない場合は linked_to を空にしてください。
- 規約や法令に合っているか、問題があるかを書かないでください。
- 数値は原稿の文字のまま写してください。四捨五入や単位の変換をしないでください。
【広告の種類】{ad_type} 【媒体】{media}
【原稿(番号付き、位置の順)】{spans}
「判断はしません」を最初に置くのは、生成AIが自分から結論を出したがるからです。 広告審査という言葉を渡すと、「この表現は表示規約に抵触するおそれがあります」と書き始めます。その結論は、ルール表の照合の結果と食い違うことがあり、担当を迷わせます。
「詳しくは店頭で」を書かれていないものとして扱うよう明記するのも、同じ理由です。 書かないと、生成AIはこの一文を根拠に「中途解約の事項:店頭で案内」と拾います。それを表示として認めるかどうかは、ルール表と担当が決めることです。
出力形式を固定する
拾い出しの結果は、次の形のJSONで受け取ります。
{
"expressions": [
{ "id": "e1", "type": "rate_deposit", "span_ids": ["p1-s034"],
"text": "年0.30%", "note": "" }
],
"disclosures": [
{ "item": "tax", "span_ids": ["p2-s101"], "text": "", "linked_to": ["e1"] }
],
"unparsed_span_ids": []
}
item は、期間(term)、金額(amount)、リスク(risk)、利息(interest)、税金(tax)、手数料(fee)、中途解約(early_termination)、借入条件(loan_condition)、返済条件(repayment)、指標(index)、損失のおそれ(loss_risk)、商号(company_name)、登録番号(registration_no)などから選ばせます。
照合の結果は、ワークフローの側で次の形にまとめます。
| 列 | 中身 |
|---|---|
| 指摘の番号 | f1、f2 … |
| 表現 | 拾った表現と原稿の箇所(p1-s034) |
| ルール | ルール表の行と根拠(規約・法令・行内の別) |
| 判定 | missing(抜け)/size(文字の大きさ)/distance(打消しの距離)/value(条件表と違う)/review(人が見る) |
| 直し案 | 生成AIの文案(条件表の値だけを使う) |
審査の担当に返す一覧は、たとえば次のようになります。
【指摘の一覧】定期預金キャンペーン チラシ(表・裏) ルール表 v3
f1 value p1-s034 年0.30% ── 条件表は年0.25%(キャンペーン金利)
f2 missing p1-s034 年0.30% ── 中途解約に関する事項が見つからない(規約)
f3 missing p1-s041 +0.05%上乗せ ── 上乗せの提供時期が見つからない(規約)
f4 review p1-s012 地域No.1の金利 ── 最上級の言葉。根拠のデータの有無を確認
f5 distance p1-s050 「※条件あり」 ── 強調の箇所から離れて裏面にある(行内)
直し案 f2:中途解約の場合は、{条件表の中途解約利率}を適用します。
f1 を一番上に出すのは、後の「人間の確認」で見る順と合わせるためです。 金利そのものが違う広告は、抜けを直しても出せません。f4 のように最上級の言葉は、規約が客観的に実証されている場合にのみ使えるとしているため、根拠のデータがあるかを担当が確かめる review にします。
1つ目の理由は、拾う層と判定する層を分けられることです。 生成AIが返すのは expressions と disclosures だけで、missing を決めるのはルール表です。ルール表を直せば、同じ拾い出しの結果から判定をやり直せます。
2つ目は、span_ids で原稿へ戻れることです。 担当は指摘の一覧から原稿の該当箇所を開いて確かめます。番号が付いていない指摘は、原稿のどこを見ればよいかを探すことになります。
3つ目は、linked_to で組み合わせを照らせることです。 金利が2種類ある原稿では、どちらの金利についての税金の表示かが分からないと、片方の抜けを見落とします。結び付けが分からないものは空にさせ、照合の側で review にします。
構造化出力のスキーマでは、すべてのフィールドを必須にし、additionalProperties: false を付けます。type と item は列挙型(enum)で決めた値だけを返させます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 広告審査のワークフロー | Power Automate のトリガー | 申請の提出を検知し、原稿と属性を受け取る |
| Python の処理 | Power Automate からの呼び出し | 文字と大きさの取り出し、差分、照合 |
| Azure OpenAI | API呼び出し(構造化出力) | 表現の拾い出しと、直し案の文 |
| SharePoint | 読み取りと追記 | ルール表・条件表の読み取り、審査記録の保存 |
| 広告審査のワークフロー | 申請へのコメント | 指摘の一覧を審査の担当に返す |
承認と差し戻しは、従来どおり審査の担当が申請の画面で行います。 この構成は、指摘の一覧を申請に添えるところまでで、承認のボタンには触りません。
人が確認する
審査の担当が、すべての指摘を確かめてから差し戻しを書きます。
valueを先に見る … 原稿の金利や期間が商品の条件表と違う指摘です。誤った金利の広告は、ほかのどの抜けより重い誤りですmissingを根拠ごとに見る … 規約・法令の行の抜けは原則として指摘し、行内の行は媒体と目的に応じて担当が決めますsizeとdistanceを原稿で確かめる … 数値は機械が測っていますが、デザインの意図(裏面に事項をまとめた等)を見て判断しますreviewを読む … 拾った表現の種類や結び付けが付かなかったものです- 直し案を採るか決める … 採らない場合は、担当が自分で差し戻しの文を書きます
採らなかった指摘には、理由を一言残します。 「裏面に記載あり」「行内ルールの例外として承認済み」のような理由がたまると、ルール表のどの行が誤検知を出しているかが分かります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 原稿が画像だけのPDF | 照合せずに差し戻し、文字情報の入ったPDFを頼む |
| 裏面やリンク先が添付されていない | 抜けの指摘に「裏面・リンク先の未確認」を付けて返す |
| 商品が条件表に無い | value の照合を飛ばし、担当に知らせる |
拾った表現の種類が other | review に回す |
| 動画や音声の広告 | この構成の対象外として、従来の審査に回す |
| 複数の商品を1枚に載せた原稿 | 商品ごとに linked_to を見る。結び付かないものは review |
| 生成AIが応答しない | 申請は止めず、「自動の点検なし」として従来どおり目視で審査 |
| 規約やルール表が改正された | ルール表の版を上げ、改正前の審査記録には旧版の印を残す |
7行目で申請を止めないことが大事です。 自動の点検は審査を助けるもので、審査そのものの条件にはしません。 点検が止まって広告が出せない、という形にすると、点検を外す圧力が生まれます。
記録を残す
- 原稿のPDFと、取り出した文字・大きさ・位置
- 生成AIの拾い出しの結果(JSON)と、照合の結果の一覧
- 照合に使ったルール表の版と、商品の条件表の版
- 審査の担当が採った指摘、採らなかった指摘とその理由
- 差し戻しと承認の日時、再審査の回数
3つ目の版を残すのは、規約や行内のルールが後から変わるためです。 改正後に過去の広告を見返すと、当時は問題の無かった表示が、今の基準では抜けに見えます。 どの版で照らしたかが残っていれば、説明ができます。
採らなかった指摘の理由は、ルール表を直す材料です。 同じ行の指摘が毎回採られないなら、その行の書き方か媒体ごとの扱いが現場に合っていません。
04実装レベルの3段階
最小構成では、文字の大きさが見られません。 貼り付けた時点で大きさの情報が消えるためです。拾い出しの確かさを見るための段階です。 半自動化で、1件60分が35分程度になります。 拾い出しと抜けの判定は自動になりますが、条件表との照合と、差し戻しの文を書く作業が残ります。本格構成で20分になり、この段階が本記事の想定です。 再審査で差分だけを見られるようになることも、ここで効きます。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、ルール表のどの行が誤検知を出しているかが先に分かります。そこを直してから本格構成に進むほうが、担当が一覧を信用するまでの時間が短くなります。
05工数削減シミュレーション
導入後 90件 × 20分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 定期預金のキャンペーン、住宅ローン・カードローン、投資信託、外貨預金のチラシ・ポスター・ウェブの広告を毎月何十本も出している地域銀行・信用金庫。広告の審査をコンプライアンスの担当が目視で行っていて、担当によって指摘の細かさが違う場合。デザイン会社から原稿を文字情報の入ったPDFで受け取れる場合。行内で Microsoft Azure の利用が認められている場合。
- 広告が月に数本で、審査の担当が全件を丁寧に見られている場合。原稿が画像だけで届き、文字と文字の大きさを取り出せない場合。テレビ・ラジオのCMの台本と映像が中心の場合(本記事は紙とウェブの原稿に限る)。なお、表示が規約や法令に合っているかの最終の判断と、出稿の可否は、この構成では代替できません。
07最小構成で試す方法
- 過去の広告審査から20本を選ぶ(うち数本は、審査で抜けが見つかって差し戻したものを入れる)
- 定期預金のキャンペーンと住宅ローンの2種類について、表示規約の必要表示事項を表にする
- 原稿の文字をコピーして手元のAIサービスに貼り、「金利、上乗せ、試算、過去の実績、最上級の言葉を拾い、それぞれについて書かれている期間・金額・税金・手数料・中途解約などの事項を一覧にしてください。合っているかの判断はしないでください」と指示する
- 一覧を2番の表と見比べ、抜けを人が拾う
- 当時の審査の指摘と見比べる
この段階では、ルール表との照合は人が行います。 試すのは、生成AIが表現と事項を取りこぼさずに拾えるかどうかです。
| 出てきた内容 | 判断 |
|---|---|
| 当時の指摘と同じ抜けが見つかった | 文字の取り出しと照合の自動化に進む |
| 生成AIが「抵触のおそれ」と結論を書く | 指示の書き方で直る。構成は有効 |
| 事項がどの金利のものか結び付かない | 原稿の文字の並び順の問題が多い。 位置で並べ直す前処理を先に作る |
3行目は段組みのチラシでよく出ます。 コピーした文字の順番が読む順と違うためで、生成AIではなく取り出し方の問題です。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 生成AIが「抵触のおそれ」と結論を書く | 「判断はしない」を指示の最初に書く。 判定はルール表で行う |
| 直し案に推測の金利や手数料が入る | 条件表にある値だけを使わせる |
| 「詳しくは店頭で」が表示として拾われる | 書かれていないものとして扱うと明記する |
| 段組みで事項が別の金利に結び付く | 位置で並べ直す。結び付かないものは review |
| 画像だけの原稿で全部が抜けになる | 文字が取れない原稿は照合しない |
| 裏面やリンク先が無く抜けが多すぎる | 裏面・リンク先も同じ申請に入れてもらう |
| 強調の言葉を別の強調に言い換える | 直し案は「根拠を添える」か「外す」の2択にする |
| 行内ルールと規約の指摘が同じ重さで並ぶ | ルール表に根拠の別を持たせ、一覧で分けて出す |
| 再審査で全部を読み直す | 前回の原稿との差分を先に出す |
| 信用金庫で表示規約をそのまま使う | 会員かどうかと、自庫に当てはまる規則を先に確かめる |
| 投資信託の文字の大きさを目で見る | PDFの size で、最も大きな文字と比べる |
| 点検が止まると広告が出せない | 点検は審査の条件にしない |
上の3行が、この構成の失敗のほとんどです。 どれも、生成AIに拾う以上のことをさせたときに起きます。拾うことと照らすことを分けたままにしておけば、指摘の根拠はいつもルール表の行に戻れます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 公開前の広告の原稿、キャンペーンの条件と開始日、商品の条件表(金利・手数料・優遇の条件)、審査の記録です。
- 公開前の原稿と条件は、行内の情報として扱う … キャンペーンの金利と開始日は、公開までは他行に知られたくない情報です。生成AIは、行内で利用が認められた環境の Azure OpenAI に限ります
- 表示が合っているかの判断は人が行う … この構成が出すのは、ルール表に照らした抜けの一覧と直し案までです。出稿してよいかを決めるのは審査の担当で、承認の操作もこの構成からは行いません
- ルール表の根拠を原文で確かめる … 金融商品取引法第37条は、金融商品取引業者等が広告をするときに商号、金融商品取引業者等である旨と登録番号、顧客の判断に影響を及ぼす重要なものとして政令で定める事項を表示しなければならないとし、政令では手数料等や、指標の変動を直接の原因として損失が生ずるおそれがある場合のその指標とおそれがある旨・理由などが定められています。ルール表に書くときは、条文の原文に当たり、行内の読み方を法務と決めてください
- 特定預金等の扱いを分ける … 銀行法第13条の4は、特定預金等契約の締結について金融商品取引法の規定を準用していますが、準用から除かれている規定があります(第37条第1項第2号など)。外貨預金の広告のルール表を、投資信託の行の写しで作らないでください
- 規約の改正を追う … 全国銀行公正取引協議会は表示規約を一部改正しています。改正のたびにルール表の版を上げ、いつからどの版で照らしたかを残します
- 直し案をそのまま使わない … 直し案は条件表の値を使った文案です。表示のしかたとして適切かは、担当が原稿の中で確かめます
誤りが起きた場合のリスクは、必要な表示の抜けを見落として出稿することと、誤った金利や条件の直し案を採ってしまうことの2つです。 前者は組み合わせをルール表で照らすことで、後者は条件表にある値だけを使わせることで防ぎます。どちらも、生成AIに判断させない設計で守ります。
10まず何から始めるか
1週目:ルール表の最初の版を作る
コンプライアンス統括部が、定期預金のキャンペーンと住宅ローンの2種類について、表示規約の必要表示事項と金利の表示基準を行に書き出します。行内のチェックリストにある項目も、根拠を「行内」として同じ表に入れます。
2週目:20本で試す
過去の審査から20本を選び、手元のAIサービスで表現と事項を拾わせます。当時の差し戻しの指摘と見比べ、拾い漏れが無いかを最優先で見ます。
3週目:デザイン会社と原稿の受け取り方を決める
文字情報の入ったPDFで、裏面とリンク先のページも含めて納品してもらうことを約束します。あわせて、営業企画部が商品ごとの条件表をそろえます。
4週目:取り出しと照合を作る
Python で文字と大きさを取り出し、ルール表と照らして抜けの一覧を出すところまで作ります。この時点では申請とつながず、審査の担当が手元で一覧を見比べます。
2か月目: 投資信託と外貨預金の行をルール表に足し、文字の大きさの測定を加えます。申請からの自動の起動をつなぎ、採らなかった指摘の理由を集め始めます。3か月目以降: 商品の条件表との照合と、再審査の差分、直し案を足し、1件60分が何分になったかを実測します。採らなかった指摘の理由をもとにルール表を直し、誤検知が落ち着いた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
構造化出力で、モデルが指定した JSON スキーマの定義に従うこと。Chat Completions API では response_format、Responses API では text.format にスキーマを書くこと。すべてのフィールドを必須にし、additionalProperties: false が必要なこと。列挙型がサポートされること | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-07 |
| 全国銀行公正取引協議会が、景品表示法にもとづき消費者庁・公正取引委員会の認定を受けて、景品と表示に関する2つの公正競争規約を制定・運用していること。表示規約を一部改正していること | 全国銀行協会: 全国銀行公正取引協議会 | 2026-10-07 |
| 表示規約が会員銀行の一般消費者を対象とした表示に適用されること。預貯金等の金利(期間・金額・リスク・利息・税金・手数料・中途解約)、貸出の金利(期間・金額・リスク・借入条件・利息・返済条件・手数料、最も高い金利又は金利の範囲)、金利優遇等の必要表示事項。将来の試算・過去の実績の表示基準。最上級・唯一性の用語の使用基準。比較広告。打消し表示の留意事項。裏面やリンクによる表示のみなし | 全国銀行公正取引協議会: 銀行業における表示に関する公正競争規約 | 2026-10-07 |
| 金融商品取引法第37条第1項(商号、金融商品取引業者等である旨と登録番号、政令で定める重要事項の表示)と第2項(著しく事実に相違する表示等の禁止) | e-Gov 法令API: 金融商品取引法 | 2026-10-07 |
| 金融商品取引法施行令第16条第1項(手数料等、指標の変動により損失が生ずるおそれがある場合の指標とおそれがある旨・理由など) | e-Gov 法令API: 金融商品取引法施行令 | 2026-10-07 |
| 金融商品取引業等に関する内閣府令第73条(明瞭かつ正確な表示、損失のおそれ等の事項の文字を最も大きな文字と著しく異ならない大きさで表示)、第76条 | e-Gov 法令API: 金融商品取引業等に関する内閣府令 | 2026-10-07 |
| 銀行法第13条の4(特定預金等契約の締結について金融商品取引法の規定を準用し、第37条第1項第2号などを除くこと) | e-Gov 法令API: 銀行法 | 2026-10-07 |
page.get_text("dict") が blocks・lines・spans の階層で返り、span が size・font・bbox・text などを持つこと | PyMuPDF: Appendix 1(テキスト抽出の詳細) | 2026-10-07 |
表示が規約や法令に合っているかの判断と、出稿の可否は、自行の法務・コンプライアンスの担当が決めてください。 本記事は公開されている規約・法令・仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0735)についてのご相談はこちらから。
