Media > AI活用ユースケース > マーケティング > インフルエンサーのキャンペーン応募フォームの内容とアカウントの情報から、募集条件とNGジャンルに合うかを判定して、選考リストを作る

インフルエンサーのキャンペーン応募フォームの内容とアカウントの情報から、募集条件とNGジャンルに合うかを判定して、選考リストを作る

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

インフルエンサーのキャンペーン応募フォームの回答と、応募者が出したインサイトの画面の画像を、募集条件とNGジャンルに照らして条件ごとに判定し、選考リストの1行にします。担当者はそのリストから起用の候補を選びます。

サマリー
生成AI
ChatGPT/Claude
連携・自動化
Make/n8n/Power Automate/Zapier
対象業界
EC/小売/広告/飲食
対象部門
マーケティング
対象業務
内容確認・チェック/分類・仕分け
主な課題
人手が足りない/判断に時間がかかる/確認ミスが多い
AIで行う処理
判定
主な効果
判断支援/品質標準化/工数削減
導入難易度
★★☆☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
60h/月
AI導入後
20h/月
想定削減
67%
年間削減
480h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 担当者がフォームの回答のスプレッドシートを開き、そのキャンペーンの応募を並べる
  2. 応募ごとに、フォロワー数と地域が募集条件に合うかを見る
  3. インサイトの画面の画像をドライブで開き、フォロワーの年齢層・性別の割合を読む
  4. 主なジャンルと自己紹介を読み、NGジャンルに触れていないかを見る
  5. 過去のPRの企業名を、広告主の競合ブランドの一覧と照らす
  6. 合いそうな応募者のアカウントを開き、投稿の雰囲気と広告の表示のしかたを見る
  7. 選考リストに、合う・合わないと理由を書き、広告主への提案の候補を選ぶ
導入後(After)
  1. 自動応募フォームに回答が届くたびに、ワークフローが動く
  2. 自動そのキャンペーンの募集条件・NGジャンル・競合ブランドの一覧を引く
  3. 自動インサイトの画面の画像をドライブから取り出す
  4. 自動AIが条件ごとに、合う・合わない・確かめられないを判定し、根拠を書く
  5. 自動条件ごとの判定から、候補・要確認・対象外の区分を規則で決める
  6. 自動選考リストに1件1行で書く
  7. 人担当者が「候補」と「要確認」の行を開き、アカウントで投稿と数字を確かめる
  8. 人「要確認」のうち画面の出し直しで済むものは、応募者に連絡する
  9. 人起用の候補を選び、広告主に提案する
各工程の詳しい説明を読む
  1. 担当者がフォームの回答のスプレッドシートを開き、そのキャンペーンの応募を並べる
  2. 応募ごとに、フォロワー数と地域が募集条件に合うかを見る
  3. インサイトの画面の画像をドライブで開き、フォロワーの年齢層・性別の割合を読む
  4. 主なジャンルと自己紹介を読み、NGジャンルに触れていないかを見る
  5. 過去のPRの企業名を、広告主の競合ブランドの一覧と照らす
  6. 合いそうな応募者のアカウントを開き、投稿の雰囲気と広告の表示のしかたを見る
  7. 選考リストに、合う・合わないと理由を書き、広告主への提案の候補を選ぶ

(a)応募ごとの確認が終わらない。 2番から5番は判断というより照らし合わせで、1件あたりは数分です。それが1つのキャンペーンで100件来ると、締め切りから提案までの数日がそれで埋まります。

(b)見る条件が担当者でずれる。 フォロワーの層の条件を厳しく見る担当者と、ゆるく見る担当者がいます。同じ応募者が、キャンペーンによって通ったり落ちたりします。 広告主から「なぜこの人が入っていないのか」と聞かれたとき、理由を説明できません。

(c)競合ブランドのPRを見落とす。 過去のPRの企業名はブランド名で書かれることも、会社名で書かれることもあります。競合ブランドの一覧と表記が違うと、照らしても当たりません。 起用が決まってから広告主に指摘されることがあります。

(d)画面が読めないものの扱いが決まっていない。 インサイトの画面が粗くて割合が読めない、年齢層の画面が出されていない、という応募は、担当者によって落とされたり、問い合わせたりします。

  1. 【自動】 応募フォームに回答が届くたびに、ワークフローが動く
  2. 【自動】 そのキャンペーンの募集条件・NGジャンル・競合ブランドの一覧を引く
  3. 【自動】 インサイトの画面の画像をドライブから取り出す
  4. 【自動】 AIが条件ごとに、合う・合わない・確かめられないを判定し、根拠を書く
  5. 【自動】 条件ごとの判定から、候補・要確認・対象外の区分を規則で決める
  6. 【自動】 選考リストに1件1行で書く
  7. 【人】 担当者が「候補」と「要確認」の行を開き、アカウントで投稿と数字を確かめる
  8. 【人】 「要確認」のうち画面の出し直しで済むものは、応募者に連絡する
  9. 【人】 起用の候補を選び、広告主に提案する

7番目が、この設計の分かれ目です。 担当者がアカウントを開くのは「候補」と「要確認」だけで、「対象外」は理由の列を流し見るだけにします。 全件のアカウントを開く設計にすると、時間はほとんど減りません。

5番目を規則で決めているのも、意図してのことです。 条件ごとの判定はAIにさせますが、どの条件が外れたら対象外にするかは、キャンペーンごとに担当者が決めます。 「フォロワー数が少し足りなくても、層が合っていれば候補に残す」といった決め方を、規則の側で変えられます。

02今回想定するシステム構成

構成図
応募フォーム(Google フォーム:アカウント・数字・ジャンル・過去のPR・インサイトの画像)
   ▼【トリガー】Make の Watch Responses
Make のシナリオ
   ├──▶ Google Sheets の Search Rows:キャンペーンの条件表を引く
   │        募集条件/NGジャンル/競合ブランド(社名とブランド名の対応)
   ├──▶ Google Drive の Download a File:インサイトの画面の画像
   ▼
Anthropic Claude(Make an API Call、画像+テキスト、構造化出力)
   │   条件ごとに meets / not_meets / unverifiable と根拠
   ▼
Make ── 規則で区分を決める(候補/要確認/対象外)
   ▼
Google Sheets の Add a Row:選考リスト
   ▼
【担当者】候補・要確認だけアカウントを確かめる → 広告主へ提案
役割想定する製品代替候補
ワークフローMakeZapier、n8n、Power Automate
生成AIClaude API(Make の Anthropic Claude アプリ。画像の入力と構造化出力)OpenAI API
連携Google スプレッドシート(条件表・選考リスト)Microsoft 365 のリスト
受付Google フォーム(ファイルのアップロードの質問)自社サイトのフォーム

新しく足すのは、Make のシナリオ1本と、キャンペーンの条件表だけです。 応募フォームと選考リストは今のものを使い、募集条件・NGジャンル・競合ブランドを、文章ではなく表の形で持つのが最初の準備作業です。

生成AIの代替候補に Gemini API を挙げていないのは、応募者に18歳未満が含まれうるためです。 Gemini API の利用規約は、18歳未満が利用する、または利用しうるサービスでの利用を認めていません。応募の段階では年齢を確かめきれないので、外しています。

入口は Make の Google Forms の Watch Responses です。 Google Forms のアプリには、回答を見張る Watch Responses のほか、回答を一覧にする List Responses、1件を取る Get a Response があります。応募が届くたびに1件ずつ処理します。

インサイトの画面は、フォームのファイルのアップロードの質問で受けます。 Google のヘルプでは、この質問に回答するには回答者が Google アカウントにログインする必要があるとされ、ファイルはフォームのオーナーのドライブの新しいフォルダに保存されます。フォームが共有ドライブにあると、この質問形式は使えません。

画像は Google Drive の Download a File で取り出します。 ファイルのIDを指定してダウンロードするモジュールで、取り出した画像を Claude に画像として渡します。

03どうやって実装するのか

Step1

処理の起点を決める

応募フォームへの回答が届くたびに、Watch Responses で1件ずつ処理します。 締め切りの後にまとめて処理する設計にはしません。締め切り直後に100件をまとめて流すと、判定の結果を見始めるのが翌日になります。 届くたびに処理しておけば、締め切りの時点で選考リストができています。

フォームは1つにし、最初の質問でキャンペーンを選んでもらいます。 キャンペーンごとにフォームを分けると、Make のシナリオもキャンペーンの数だけ要ります。

状態扱い
募集中のキャンペーンへの応募判定して選考リストへ
締め切りを過ぎたキャンペーンへの応募判定せず「締め切り後」として記録
同じアカウントから同じキャンペーンへの2回目の応募前の行に「再応募」と付け、新しい内容で判定し直す

締め切りを過ぎた応募を判定しないのは、条件表がその後に書き換わることがあるためです。 次のキャンペーンのために条件を変えた後で古い応募を判定すると、別のキャンペーンの条件で判定した結果が残ります。

Step2

入力データを集める

データ中身取得元
応募の回答キャンペーン、アカウントのURL、媒体、フォロワー数、主なジャンル、自己紹介、地域、18歳以上か、過去6か月のPRの企業名、広告の表示への同意Google フォーム(Watch Responses)
インサイトの画面フォロワーの年齢層・性別・地域の画面の画像(1〜3枚)Google ドライブ(Download a File)
募集条件フォロワー数の範囲、フォロワーの層、地域、ジャンル、年齢の条件キャンペーンの条件表(Search Rows)
NGジャンル広告主ごとのNGのジャンルと、その説明同上
競合ブランドの一覧競合の会社名と、その会社のブランド名の対応同上

質を決めるのは、競合ブランドの一覧です。 会社名だけの一覧だと、応募者が「○○(ブランド名)のPR」と書いたときに当たりません。会社名とブランド名の対応を表で持ち、両方をAIに渡します。

応募者の氏名と連絡先は、AIに渡しません。 判定に使うのはアカウントの情報と数字だけで、連絡先は選考リストの側で応募のIDと結び付けておきます。

Step3

データの取得方法を決める

キャンペーンの条件表は、Search Rows でキャンペーンのIDを絞って1行を引きます。 条件表は1キャンペーン1行で、列に条件を並べます。

列例
フォロワー数の範囲10,000〜100,000
フォロワーの層女性が60%以上、25〜34歳が最も多い
地域関東在住
ジャンル美容、スキンケア
年齢の条件20歳以上(酒類の広告主のとき)
NGジャンルギャンブル、成人向け、政治的な発信、医療行為の体験談
競合ブランド(会社名:ブランド名の対応表のシート名)
対象外にする条件競合ブランドのPR、NGジャンル、年齢の条件

最後の列が、第5章の5番目の規則です。 どの条件が外れたら対象外にするかを、キャンペーンごとにこの列で決めます。 書かれていない条件が外れた応募は、対象外ではなく「要確認」になります。

インサイトの画面は、フォームの回答に入っているファイルのIDで Download a File を呼びます。 画像が複数あれば、1枚ずつ取り出して全部を1回の依頼に入れます。

Step4

AIへ渡す前に整形する

  1. ファイルの形式の確認 … Claude が受け付けるのは JPEG、PNG、GIF、WebP です。それ以外(HEIC など)はフォームの側で受け付けないように設定します
  2. 画像の大きさの確認 … 1枚あたりの上限は、Claude API に直接渡す場合で base64 にして10MB、縦横は8000×8000ピクセルまでです
  3. フォロワー数の表記をそろえる … 「1.2万」「12k」「12,000」を数字にそろえます
  4. 競合ブランドの一覧の展開 … 条件表から、そのキャンペーンの競合の会社名とブランド名を全部引き出します
  5. 重複の確認 … 同じアカウントのURLで、同じキャンペーンの行が選考リストにあれば「再応募」にします

3番目は、AIに任せずワークフローの側で行います。 数字の比較は規則で行うほうが確実で、AIには「画面の数字と申告の数字が食い違っていないか」だけを見させます。

2番目の上限は、画面の写真を高い解像度のまま出してくる応募者がいるためです。 大きすぎる画像は縮小されて処理されるので、縮小で文字がつぶれないかを最初に数件で確かめます。

Step5

AIに処理させる

させるのは、条件ごとに、合う・合わない・確かめられないを判定し、根拠を書くことだけです。

見る条件判定の仕方確かめられないときの扱い
フォロワー数申告の数と、画面に写っている数が食い違っていないか画面に数が写っていなければ unverifiable
フォロワーの層画面の年齢層・性別の割合が条件に合うか年齢層の画面が無い、割合が読めなければ unverifiable
地域申告の地域と、画面の地域の割合地域の画面が無ければ申告だけで判定し、その旨を書く
ジャンル申告のジャンルと自己紹介が条件のジャンルに合うか自己紹介が空なら申告だけで判定
NGジャンル自己紹介・ジャンルにNGジャンルに当たる記載があるか—
競合ブランド過去のPRの企業名が、競合の会社名・ブランド名に当たるか表記が近いが一致しないものは unverifiable
年齢の条件18歳以上か(酒類のときは20歳以上か)の申告申告が無ければ unverifiable
広告の表示への同意フォームの同意の項目—

右端の列が、この構成でいちばん大事な区別です。 not_meets は条件から外れていると読めたもの、unverifiable は材料が足りなくて判定できないものです。前者は対象外の候補、後者は応募者に出し直してもらえば候補になりうる人です。

最後の行は、ステルスマーケティングの規制に関わります。 消費者庁のページでは、2023年10月1日からステルスマーケティングは景品表示法違反となり、広告には企業がインフルエンサー等の第三者に依頼・指示するものも含まれるとされています。規制の対象は広告主である事業者で、だからこそ、広告であることを表示することへの同意を応募の段階で確かめます。

させないこと理由
起用するかの結論投稿の雰囲気や広告主との相性は担当者が見る
画像が本物かの判定公式ドキュメントで、画像がAIで生成されたかを判断できないとされている
写っている人物の特定画像の人物を名指しすることはできないとされている
数字の補完画面が読めないときに、申告の数で埋めない
外見や容姿による評価募集条件に無い。評価の材料にしない

2行目が、この構成の前提です。 Claude の公式ドキュメントの制限事項に、画像がAIで生成されたものかを判断できず、尋ねられても誤ることがあるとあります。インサイトの画面が加工されていても、AIは写っている数字をそのまま読みます。だから候補に残った人は、担当者がアカウントで確かめます。

Step6

指示内容を固定する

あなたは広告会社のキャスティングの補助です。
インフルエンサーのキャンペーンへの応募が、募集条件に合うかを
条件ごとに判定します。起用するかどうかは判断しません。

【入力】
- 応募の回答:{application}
- インサイトの画面(画像1〜3):添付のとおり
- 募集条件:{conditions}
- NGジャンルとその説明:{ng_genres}
- 競合の会社名とブランド名の一覧:{competitors}

【条件ごとの status の選び方】
- meets ......... 材料から条件に合うと読める
- not_meets ..... 材料から条件に合わないと読める
- unverifiable .. 材料が無い、画像が読めない、表記が近いが一致しないなど、判定できない
迷ったときに meets も not_meets も選ばず、unverifiable にしてください。

【厳守事項】
- 画像に写っている数字や割合は、読めたとおりに写してください。
  読めない数字を申告の数で埋めないでください。
- 申告の数と画像の数が食い違うときは、両方を evidence に書いてください。
- 画像が加工されているか、本物かを判断しないでください。
- 画像に写っている人物が誰かを書かないでください。
- 外見や容姿について書かないでください。
- 競合ブランドは、一覧の会社名かブランド名と一致するときだけ not_meets にしてください。
  似ているだけのときは unverifiable にし、似ている名前を evidence に書いてください。
- 起用すべきか、候補に残すべきかを書かないでください。
- evidence には、判定の根拠にした回答の文言か、画像から読んだ値を書いてください。

「迷ったら unverifiable」を明記しないと、読めない画面を not_meets にします。 年齢層の画面が無いと「条件の層であることが確かめられない、よって合わない」と書き、出し直せば候補になる人を落とします。

競合ブランドを「一致するときだけ」にしているのは、逆の誤りを防ぐためです。 似た名前のブランドを競合と判定すると、関係の無い会社のPRをした人まで対象外になります。 似ているものは担当者に回します。

Step7

出力形式を固定する

Make an API Call で Messages API を呼び、画像のブロックとテキストを1回の依頼に入れ、構造化出力で次の形のJSONを受け取ります。 画像は base64 にして image のブロックで渡します。Claude API の構造化出力は、output_config.format に type: "json_schema" でスキーマを渡す形です。

{
  "application_id": "",
  "campaign_id": "",
  "checks": [
    { "condition": "follower_count",
      "status": "meets | not_meets | unverifiable",
      "declared": "", "observed": "", "evidence": "" }
  ],
  "image_readable": true,
  "notes_for_staff": ""
}

checks には条件の数だけ要素を並べます。condition は follower_count / audience / region / genre / ng_genre / competitor / age / disclosure_consent です。

1つ目の理由は、checks と区分を別の層に置けることです。 checks はAIが埋め、候補・要確認・対象外の区分はワークフローが条件表の「対象外にする条件」の列で決めます。キャンペーンごとに対象外の決め方が変わっても、直すのは条件表だけです。

区分決め方
対象外「対象外にする条件」の列にある条件が not_meets
要確認対象外ではなく、unverifiable が1つでもある、または列に無い条件が not_meets
候補すべてが meets

2つ目は、declared と observed を並べられることです。 申告のフォロワー数と画面に写っている数が並んでいれば、担当者は食い違いのある行だけを開けます。

注意が1つあります。 構造化出力でも、enum の値が大文字小文字だけ違って返ることがあるとされているので、区分を決める比較では大文字小文字を区別しません。

Step8

システムへ連携する

つなぎ先方式内容
応募フォームGoogle Forms の Watch Responses応募を1件ずつ受け取る
ドライブGoogle Drive の Download a Fileインサイトの画面の画像
条件表Google Sheets の Search Rowsキャンペーンの条件・NGジャンル・競合ブランド
Claude APIAnthropic Claude の Make an API Call(画像+構造化出力)条件ごとの判定
選考リストGoogle Sheets の Add a Row1件1行で判定と区分を書く

応募者への連絡は、この構成からは送りません。 対象外の連絡も、画面の出し直しの依頼も、担当者が選考リストを見てから送ります。判定が誤っていた1件の不採用の連絡は、取り消しが効きません。

Google Forms のアプリには、注意書きがあります。 Make のページでは、Google の OAuth のプロジェクトがテストの状態だと毎週つなぎ直しが要るとされています。自社の Google Cloud のプロジェクトでつなぐときは、公開の状態にしておかないと、ある週に応募が止まります。

Step9

人が確認する

担当者が開くのは「候補」と「要確認」の行です。 「対象外」は理由の列を流し見て、明らかな誤りが無いかだけを見ます。

  1. 「要確認」を先に見る … unverifiable の理由を読み、画面の出し直しで済むものは応募者に連絡します
  2. 「候補」のアカウントを開く … 画面に写っていた数字が、アカウントの表示と大きく違わないかを確かめます。画像は本物かをAIが見ていないので、ここは省けません
  3. 投稿の雰囲気と広告の表示のしかたを見る … 過去のPRの投稿に、広告であることが分かる表示があるかを見ます
  4. 起用の候補を選び、広告主に提案する … 選んだ理由を選考リストに書きます
  5. 判定を覆したら記録する … どの条件を、どちらに変えたかを残します

2番目を省かないでください。 インサイトの画面は応募者が撮ったもので、この構成はその数字を読んでいるだけです。 広告主に提案する人については、担当者が自分の目で確かめたという記録を残します。

目標は、600件をならして1件2分です。 「候補」と「要確認」が3割前後という想定で、それより多いキャンペーンは、条件表の書き方があいまいです。

Step10

例外に対処する

起きること対応
インサイトの画像が出されていない層と数の条件を unverifiable にし「要確認」へ
画像の形式が対応外フォームで受け付ける形式を絞る。届いたものは「要確認」へ
画像が粗くて割合が読めないimage_readable を false にし「要確認」へ。出し直しを依頼
媒体が条件と違う「対象外」。理由の列に媒体を書く
競合に似た名前のブランドのPRunverifiable。担当者が広告主に確かめる
同じアカウントから2回目の応募前の行に「再応募」を付け、新しい内容で判定
18歳以上かの申告が無いunverifiable。担当者が確かめるまで候補にしない
締め切り後の応募判定せず記録だけ
APIが応答しない・出力が途中で切れた選考リストに「未判定」で行を作り、後でやり直す

上から3行目までが大半を占めます。 どれもAIの問題ではなく、応募フォームの案内の問題です。 「フォロワーの年齢層・性別・地域の3つの画面を出してください」と見本の画像つきで案内すると、この3行は減ります。

Step11

記録を残す

  • 応募の回答と、インサイトの画面の画像のファイルID
  • 判定に使った条件表の内容(そのときのキャンペーンの条件)
  • AIが返したJSONの全文と、ワークフローが決めた区分
  • 担当者が判定を覆した記録(どの条件を、どちらに変えたか)
  • 担当者がアカウントで確かめた日時と、確かめた人
  • 起用した人と、広告主に提案したときの理由

2つ目で「そのときの条件」を残すのは、条件表が書き換わるためです。 広告主の要望で途中から層の条件を変えることがあり、当時の条件が残っていないと、なぜこの人が対象外だったかを説明できません。

4つ目は、条件表とプロンプトを直す材料です。 同じ条件で覆す件数が多ければ、その条件の書き方があいまいか、AIの読み方がずれています。

04実装レベルの3段階

最小構成:応募と画像を手でAIの画面に貼り、条件ごとに判定させる / 1件ごとの判定
半自動化:上記+ Make で応募を受けるたびに判定し、選考リストに書く / 判定と書き込み
本格構成:上記+条件表による区分の自動判定、再応募と締め切り後の扱い、画面の出し直しの依頼の下書き / 選考の前段の全体(起用の判断は人)

最小構成では件数がさばけません。 1件ずつ貼るので、月600件には使えません。確かめるための段階です。 半自動化で、1件6分が3分程度になります。 判定は自動になりますが、区分を担当者が決めるので、全行を読むことになります。本格構成で2分になり、この段階が本記事の想定です。 差が出るのは、区分が規則で決まり、担当者が「対象外」を開かずに済むからです。 段階を飛ばさないでください。 半自動化で1か月分の判定を見ると、どの条件で unverifiable が多いかが分かります。そこから応募フォームの案内と条件表の書き方を直してから、本格構成に進みます。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
4 名
月間件数
600 件
1件あたり現在時間
6 分
1件あたり導入後時間
2 分
現在  600件 × 6分 ÷ 60 = 60 時間/月
導入後 600件 × 2分 ÷ 60 = 20 時間/月
月間削減時間
40h
削減率
67%
年間削減時間
480h
年間金額換算(時間単価3,000円)
144万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 化粧品・食品・飲食店などの広告主から、インフルエンサーを使った商品の紹介のキャンペーンを毎月いくつも請け負い、応募フォームで公募して、1つのキャンペーンに数十から百を超える応募が来る広告会社やキャスティングの会社。募集条件(フォロワー数、フォロワーの層、地域、ジャンル)と、広告主ごとのNGジャンルや競合ブランドを、担当者が応募ごとに目で確かめている場合。
向いていない
  1. 起用するインフルエンサーを担当者が指名で決めていて、公募をしていない場合。応募が1つのキャンペーンに数件で、担当者がアカウントを開いて見れば足りる場合。募集条件やNGジャンルが文章で決まっておらず、担当者の感覚で選んでいる場合。なお、誰を起用するかの判断、広告主への提案、投稿の内容が景品表示法に照らして適切かの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 終わったキャンペーンから1つを選び、その応募から30件を取り出す(起用した人、落とした人、迷った人を混ぜる)
  2. 応募者の氏名と連絡先を消し、そのキャンペーンの条件表を作る
  3. 手元のAIサービスに、応募の内容とインサイトの画面の画像、条件表を貼り、第7章のプロンプトで判定させる
  4. 当時の担当者の判断と、条件ごとの判定を並べる
  5. not_meets と unverifiable の分かれ方が、当時の担当者の感覚と合っているかを聞く

30件は必ずやってください。 シナリオを組む前に、「インサイトの画面から、条件の判定に要る数字が読めるのか」を確かめます。

出てきた内容判断
当時の判断と条件ごとの判定が合ったシナリオに進む
読めない画面を not_meets にした指示の書き方で直る。構成は有効
画面が粗くて大半が読めない応募フォームの案内が先。 AIの問題ではない

3行目が出ても失敗ではありません。 担当者も同じ画面を読むのに時間をかけていたということです。見本の画像つきの案内に変えて、次のキャンペーンで同じことを試します。

08実装時につまずきやすいポイント

問題対策
読めない画面を not_meets にする迷ったら unverifiable と明記する。出し直せば候補になる人を落とさない
似た名前のブランドを競合にする一致するときだけ not_meets。似ているものは担当者へ
加工された画面の数字をそのまま信じるAIは本物かを判断できない。候補はアカウントで確かめる
読めない数字を申告の数で埋める画像から読めた値だけを observed に書かせる
起用の結論をAIが書く起用すべきかを書かないと明記する
条件表が書き換わり、過去の判定が説明できない判定に使った条件を行ごとに残す
毎週つなぎ直しが要るOAuth のプロジェクトを公開の状態にする
共有ドライブのフォームでアップロードが使えないフォームをマイドライブに置く
回答者がログインしていないファイルのアップロードには Google アカウントでのログインが要る。案内に書く
画像の形式が対応外JPEG・PNG・GIF・WebP に絞る
18歳未満の応募者が混ざる年齢の申告を確かめるまで候補にしない。Gemini API は使わない
対象外の連絡が自動で飛ぶ連絡は担当者が送る。この構成からは送らない

上の3行が、この構成の失敗のほとんどです。 どれも「材料が足りない、または確かでない」ことを、判定の側で埋めてしまうという同じ問題です。材料の不足は unverifiable として人に回し、確からしさはアカウントで人が確かめる線を守ります。

下から2行目も早く効いてきます。 公募では応募者の年齢を事前に絞れないので、年齢の申告を確かめるまで候補にしません。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 応募者のアカウントの情報、フォロワーの層の割合、過去のPRの企業名、そして選考リストの側に氏名と連絡先です。応募者には18歳未満が含まれることがあります。

  1. AIに渡す範囲をアカウントの情報と数字までに限る … 氏名と連絡先は渡さず、応募のIDで選考リストと結び付けます
  2. 18歳未満が含まれうる前提で製品を選ぶ … Gemini API の利用規約は18歳未満が利用しうるサービスでの利用を認めていないため、本構成では Claude API を使います
  3. 外見で評価しない … 画像に写る人物の容姿は、募集条件に無い限り判定の材料にせず、指示でも禁じます
  4. 応募者への連絡を自動で送らない … 不採用の連絡も、画面の出し直しの依頼も、担当者が選考リストを見てから送ります
  5. 広告であることの表示を起用の前提にする … 消費者庁のページでは、規制の対象は広告主である事業者で、企業がインフルエンサーに依頼・指示するものも広告に含まれるとされています。表示への同意を応募の段階で取り、投稿の前の原稿の点検は別に行います
  6. 選考に使わなかった応募の情報の扱いを決める … 応募者の情報と画像を、キャンペーンが終わった後にいつまで持つかを決め、応募フォームの案内に書きます

誤りが起きた場合のリスクは、条件に合う人を読めない画面のせいで落とすことと、加工された数字の人を広告主に提案することの2つです。 前者は unverifiable を分けることで、後者は候補をアカウントで確かめることで防ぎます。どちらも、AIに確からしさの判断をさせない設計から出ているので、そこだけは守ります。

10まず何から始めるか

1週目:条件表を作る

いま募集中のキャンペーンについて、募集条件・NGジャンル・競合ブランド(会社名とブランド名の対応)・対象外にする条件を表にします。広告主ごとの競合ブランドが分からないものは、担当の営業から広告主に確かめます。

2週目:30件で試す

終わったキャンペーンの応募から30件を選び、手元のAIサービスで条件ごとに判定させます。読めない画面を not_meets にしていないか、似た名前のブランドを競合にしていないかを最優先で見ます。

3週目:応募フォームを直す

フォームに、キャンペーンの選択、インサイトの3つの画面のアップロード(見本の画像つき)、18歳以上かの申告、広告の表示への同意を足します。フォームはマイドライブに置きます。

4週目:応募から選考リストまでをつなぐ

Make で Watch Responses から判定、選考リストへの書き込みまでを作ります。この時点では区分を出さず、条件ごとの判定だけを見ます。

2か月目: 条件表の「対象外にする条件」による区分を足し、担当者が「対象外」を開かずに済むかを確かめます。覆した件数を毎週数えます。3か月目以降: 1件6分が何分になったかを実測し、unverifiable の多い条件について応募フォームの案内を見直します。担当者が開くのが候補と要確認だけになり、広告主に条件ごとの理由で説明できるようになった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-08/最終更新:2026-10-08
確認した内容情報源確認日
ファイルのアップロードの質問では回答者が Google アカウントにログインする必要があること、ファイルがオーナーのドライブの新しいフォルダに保存されること、共有ドライブのフォームでは使えないこと、形式・数・大きさを作成者が指定できることGoogle ドキュメント エディタ ヘルプ: フォームの質問の形式を選択する2026-10-08
Google Forms のアプリに Watch Responses・List Responses・Get a Response があること、OAuth のプロジェクトがテストの状態だと毎週つなぎ直しが要ることMake: Google Forms2026-10-08
Download a File がファイルのIDを指定してドライブのファイルをダウンロードすることMake: Google Drive modules2026-10-08
Search Rows の絞り込み、Add a Row が表の一番下に行を足すことMake: Google Sheets2026-10-08
Anthropic Claude アプリに Create a Prompt と Make an API Call があり、API キーで接続することMake: Anthropic Claude2026-10-08
対応する画像の形式(JPEG・PNG・GIF・WebP)、1枚の上限(API に直接渡す場合 base64 で10MB、8000×8000ピクセル)、大きな画像は縮小されること、画像の人物を名指しできないこと、AIで生成された画像かを判断できないことClaude Docs: Vision2026-10-08
構造化出力を output_config.format に type: "json_schema" で指定すること、enum の値が大文字小文字だけ違って返ることがあることClaude Docs: Structured outputs2026-10-08
2023年10月1日からステルスマーケティングが景品表示法違反となること、広告には企業がインフルエンサー等の第三者に依頼・指示するものも含まれること、規制の対象が広告主である事業者であること消費者庁: 令和5年10月1日からステルスマーケティングは景品表示法違反となります2026-10-08
Gemini API の利用規約が、18歳未満が利用する、または利用しうるサービスでの利用を認めていないことGemini API Additional Terms of Service2026-10-08

どの応募者を起用するか、広告の表示が十分かは、広告主と自社の担当者が決めてください。 本記事は公開されている仕様で確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-1111)についてのご相談はこちらから。

AI活用について相談する
目次