コラム / 活用ガイド

全体最適を AI エージェントで回す

チャネルをまたいで判断するとき、最初に問題になるのは数字の意味です。広告の「リード」、LINE の「友だち」、営業の「有効リード」は同じ人なのか。そこを決めないまま足せば、ROAS も CPA も「その管理画面の中でだけ正しい数字」になります。全体最適の土台は 3 つです。言葉と正本(SSOT)を 1 つに決める。チャネルの数字は合計せずに並べる。失敗した理由をメモリ・パーミッション・オントロジーに書き戻す。

  • 扱うもの
  • 営業リスト・CRM
  • 広告アカウント
  • Web サイト
  • SNS・LINE・メール

ステップ 1オントロジー:出てくるモノと関係

業務に出てくるモノ(エンティティ)と関係を 1 枚にして、AI エージェントに渡します。

この図で答えたい問い

  • 先月、広告から来たリードのうち、商談になったのは何件か
  • この契約は、どの成果物から生まれたリードが元になっているか
  • この案件で、いま実際に数字を読み取れるアカウントはどれか
  • 既存の顧客への提案は、新規の提案と同じ方法で成約率を出せるか
  • 表示回数を、案件の合計として出してよいか
  • LINE の友だちと CRM の担当者は同じ人か(候補 / 確定 / 別人)
全体最適のオントロジーです。成果物 → 計測イベント → リード → 商談 → 契約 → 運用案件 → 媒体アカウントが獲得の循環、成果物 → 数値 → レポート → 商談が運用の循環。点線の名寄せは、人が確定するまで関係が無いものとして扱います。図は教科書 第 2 章の「本書全体の図」のままで、各エンティティの一意キーだけ、同じ章のステップ 2 の規則を当てはめて補いました。
全体最適のオントロジーです。成果物 → 計測イベント → リード → 商談 → 契約 → 運用案件 → 媒体アカウントが獲得の循環、成果物 → 数値 → レポート → 商談が運用の循環。点線の名寄せは、人が確定するまで関係が無いものとして扱います。図は教科書 第 2 章の「本書全体の図」のままで、各エンティティの一意キーだけ、同じ章のステップ 2 の規則を当てはめて補いました。

図を原寸で開く

図の元になった mermaid を見る(AI エージェントにそのまま渡せます)
mermaid
flowchart TB
  COMPANY["企業<br/>key: 自社の ID + 法人名・ドメイン"] -->|"担当者を抱える"| CONTACT["担当者<br/>key: 自社の ID + メールアドレス"]
  SUB["登録者<br/>別名: 友だち(LINE)/ 購読者(メール)<br/>有効 / ブロック・配信停止"] -.->|"同一人物か<br/>候補 / 確定 / 別人"| CONTACT
  ASSET["成果物 = 発生経路<br/>広告 / 投稿 / 記事・LP<br/>key: 媒体が発行した ID"] -->|"発生させる"| EVENT["計測イベント<br/>媒体側の名前 / 成果として数えるか"]
  EVENT -->|"登録者を起こす"| SUB
  EVENT -->|"リードを起こす"| LEAD["リード<br/>新規 / 有効 / 商談化 / 対象外"]
  SUB -->|"リードを起こす"| LEAD
  CONTACT -->|"リードを起こす"| LEAD
  LEAD -->|"商談を起こす"| DEAL["商談<br/>提案中 / 合意 / 失注"]
  DEAL -->|"契約を結ぶ"| CONTRACT["契約<br/>開始前 / 稼働中 / 停止 / 終了"]
  CONTRACT -->|"請求を起こす"| INVOICE["請求<br/>未請求 / 未入金 / 入金済"]
  CONTRACT -->|"案件を持つ"| PJ["運用案件<br/>稼働中 / 停止 / 終了"]
  PJ -->|"アカウントを持つ"| ACCOUNT["媒体アカウント・サイト<br/>接続中 / 失効 / 未連携"]
  ACCOUNT -->|"成果物を持つ"| ASSET
  ACCOUNT -->|"数値を生む"| METRIC
  ASSET -->|"数値を生む"| METRIC["数値<br/>単位 / 期間の基準 / 取得経路<br/>取得済 / 暫定 / 未取得"]
  METRIC -->|"定例の材料になる"| REPORT["レポート"]
  REPORT -->|"次の商談を起こす"| DEAL
エンティティの一意キーと、数値の状態を表で見る

エンティティと一意キー

エンティティ一意キー(同じ 1 件の見分け方)説明
企業自社で採番した ID + 名寄せキー(法人名 + ドメイン)自社のコントロール外なので、変えない ID と名寄せに使うキーの 2 つを持つ
担当者自社で採番した ID + 名寄せキー(メールアドレス)企業が抱える人。キーは企業と同じく 2 つ
登録者媒体側の IDLINE の友だち・メールの購読者の正式名。媒体の中で識別でき、配信を届けられる人
成果物媒体(またはサイト)が発行した ID広告・投稿・記事・LP を 1 つにまとめる。作った広告と成果を出した広告を分けない
計測イベント媒体側の ID媒体側の名前と、成果として数えるかを属性に持つ
リード・商談自社で採番した ID解約・停止・失注は出来事なので、エンティティにせず状態にする
契約と運用案件自社で採番した ID1 つの契約に複数の案件があるので分ける。目標・担当者・定例の単位は案件ごと
媒体アカウント・サイト媒体側の ID1 つの案件が同じ媒体のアカウントを複数持つことがあるので、案件と分ける
数値対象 × 期間 × 指標単位・期間の基準・取得経路を属性に持つ。売上・LTV・継続率は請求と契約から計算し、エンティティにしない

数値の状態

状態意味この状態に入る条件
取得済実際に取得でき、単位と期間の基準が確定している媒体やツールから取得し、取得経路を記録したとき
暫定後から計上されて増えることがある直近数日の CV のように、まだ値が動く期間を含むとき。注記して載せる
未取得取れなかった。0 ではない認証エラー・連携切れなどで取得できなかったとき。0 で埋めず、つなぎ直す方法を添える

AI にさせてよい操作

  • AI が行う実績を取得する(読み取りだけ)
  • AI が行う分析・集計・レポート・下書きを作る
  • AI が行う名寄せの候補を出す
  • AI が行う失敗の原因を特定し、メモリ・オントロジー・Skill の直し案を作る
  • 承認してから投稿を予約する、メール・メッセージを送る
  • 承認してから広告の配信を開始する(作成の承認とは別に)
  • 承認してから広告の予算を増やす
  • 人が行う名寄せを確定する(統合した後は戻せない)
  • 人が行う媒体ごとの予算の配分を決める
  • 人が行うパーミッション(許可の範囲)を変える

ステップ 2業務フローの棚卸し

左から、業務と頻度 → AI エージェントがやること → 人が決めること(黒) → 使う Skill(点線)。 毎週・毎月の取得とレポートは定期実行に任せられます。ただ、人がいない実行では確認が必要な操作が断られるので、載せるのは読み取りと下書きまでです。
左から、業務と頻度 → AI エージェントがやること → 人が決めること(黒) → 使う Skill(点線)。 毎週・毎月の取得とレポートは定期実行に任せられます。ただ、人がいない実行では確認が必要な操作が断られるので、載せるのは読み取りと下書きまでです。

図を原寸で開く

図の元になった mermaid を見る(AI エージェントにそのまま渡せます)
mermaid
flowchart TB
  subgraph R1[" "]
    direction LR
    J1["1. 答えるべき問いを決める<br/>初回・業務を足したとき"] --> A1["業務の名詞を書き出し、問いの案を 5〜10 個並べる"]
    A1 --> H1["いま自動化したい判断をどれにするか"]:::human
    H1 --> S1["—"]:::out
  end
  subgraph R2[" "]
    direction LR
    J2["2. オントロジーを描く<br/>初回・問いを足したとき"] --> A2["エンティティ・一意キー・関係・状態と操作の案を作り、問いで検査する"]
    A2 --> H2["正式名と別名、操作の一覧"]:::human
    H2 --> S2["オントロジーを管理する"]:::out
  end
  subgraph R3[" "]
    direction LR
    J3["3. 正本(SSOT)を決める<br/>初回・ツールを足したとき"] --> A3["同じ情報の置き場を洗い出し、写しと同期の向きを一覧にする"]
    A3 --> H3["どこを正本にするか"]:::human
    H3 --> S3["—"]:::out
  end
  subgraph R4[" "]
    direction LR
    J4["4. 名寄せ(顧客 ID をそろえる)<br/>登録者・担当者が増えたとき"] --> A4["法人名 + ドメイン、メールアドレスで同一人物の候補を出す"]
    A4 --> H4["同じ人かを確定する"]:::human
    H4 --> S4["—"]:::out
  end
  subgraph R5[" "]
    direction LR
    J5["5. 連携とパーミッションの設定<br/>初回・ツールを足したとき"] --> A5["ツールを読み取りと書き込みに分けた一覧を作る"]
    A5 --> H5["外部に反映する操作を確認の対象にする"]:::human
    H5 --> S5["—"]:::out
  end
  subgraph R6[" "]
    direction LR
    J6["6. チャネルごとの実績の取得<br/>毎週・毎月"] --> A6["同じ期間で取得し、取れなければ「未取得」と書く"]
    A6 --> H6["—"]:::human
    H6 --> S6["広告の週次レポート"]:::out
  end
  subgraph R7[" "]
    direction LR
    J7["7. 定例レポート<br/>毎月"] --> A7["チャネルごとに並べて判定する。合計の行は作らない"]
    A7 --> H7["次にやることを選ぶ"]:::human
    H7 --> S7["定例レポート"]:::out
  end
  subgraph R8[" "]
    direction LR
    J8["8. 打ち手の実験<br/>打ち手ごと"] --> A8["計画シートを書き、決めた件数に届いたら計算で判定する"]
    A8 --> H8["判定の基準を始める前に決める"]:::human
    H8 --> S8["実験で打ち手を確かめる"]:::out
  end
  subgraph R9[" "]
    direction LR
    J9["9. 媒体の選定と予算の配分<br/>予算を決めるとき"] --> A9["候補を絞り、自社の売上の台帳で媒体の効果を推定する"]
    A9 --> H9["配分を決め、予算を変える"]:::human
    H9 --> S9["媒体を選ぶ/媒体をまたいで効果を測る(MMM)"]:::out
  end
  subgraph R10[" "]
    direction LR
    J10["10. ハーネスの点検<br/>実行のたび・定期"] --> A10["記録から失敗の原因を特定し、直し案を作って検証する"]
    A10 --> H10["許可の範囲を変えるか"]:::human
    H10 --> S10["ハーネスを整備する"]:::out
  end
  R1 --> R2 --> R3 --> R4 --> R5 --> R6 --> R7 --> R8 --> R9 --> R10

ステップ 3AI エージェントで回す PDCA

黒い箱は人が決めるところ、オレンジの箱は承認を通るところ。ほかは AI エージェントが進めます。 確認画面(承認)を通すのは、外部に反映する操作だけです。予算の配分と許可の範囲は AI に変えさせず、人が決めます。
黒い箱は人が決めるところ、オレンジの箱は承認を通るところ。ほかは AI エージェントが進めます。 確認画面(承認)を通すのは、外部に反映する操作だけです。予算の配分と許可の範囲は AI に変えさせず、人が決めます。

図を原寸で開く

図の元になった mermaid を見る(AI エージェントにそのまま渡せます)
mermaid
flowchart TB
  Q["答えるべき問いを決める"] --> ONT["オントロジーと正本を更新する<br/>単位・期間の基準・取得経路"]
  ONT --> H1["【人】伸ばす数字と予算の配分を決める"]:::human
  H1 --> MAKE["AI が素材・下書き・設定案を作る"]
  MAKE --> G1("承認<br/>投稿・送信・配信開始・予算の増額"):::gate
  G1 --> LOG["実行と承認の記録を残す"]
  LOG --> GET["チャネルごとに同じ期間で実績を取る<br/>取れなければ未取得"]
  GET --> REP["チャネルごとの判定を並べる<br/>合計の行は作らない"]
  GET --> EXP["実験を計算で判定する<br/>勝ち / 負け / まだ分からない"]
  GET --> MMM["媒体をまたいだ効果を推定する<br/>自社の売上・予約の台帳"]
  REP --> H2["【人】次の仮説と配分を選ぶ"]:::human
  EXP --> H2
  MMM --> H2
  H2 --> FIX["失敗の理由を書き戻す<br/>メモリ・オントロジー・Skill"]
  FIX --> H3["【人】許可の範囲を変えるか決める"]:::human
  H3 -->|"次の回"| Q
段ごとの分担を表で見る
段AI がやること人が決めることSkill
Plan(計画)問いの案、オントロジーと正本の更新案、媒体の候補と比べる計画、配分を考える材料を出す伸ばす数字、どの仮説を選ぶか、予算の配分オントロジーを管理する/媒体を選ぶ/媒体をまたいで効果を測る(MMM)
Do(実行)素材・下書き・設定案を作る。外部に反映する操作は確認画面で止め、実行と承認を記録する確認画面で許可するか断る各チャネルの Skill
Check(確認)チャネルごとに同じ期間で取得して判定する。取れない数字は「未取得」、実験は計算で判定する—定例レポート/実験で打ち手を確かめる/広告の週次レポート
Act(改善)失敗の原因を特定し、メモリ・オントロジー・Skill を直して検証する次の仮説と配分、許可の範囲を変えるかハーネスを整備する

ステップ 4Skill の構成

入口の Skill が依頼を受けて、工程ごとの Skill へ振り分けます。矢印の文字は振り分ける条件。 入口は 2 つです。「全体の調子はどう?」なら定例レポートから、「予算をどう割るか」なら媒体を選ぶから入ります。どの Skill も、オントロジーの言葉で答えます。
入口の Skill が依頼を受けて、工程ごとの Skill へ振り分けます。矢印の文字は振り分ける条件。 入口は 2 つです。「全体の調子はどう?」なら定例レポートから、「予算をどう割るか」なら媒体を選ぶから入ります。どの Skill も、オントロジーの言葉で答えます。

図を原寸で開く

図の元になった mermaid を見る(AI エージェントにそのまま渡せます)
mermaid
flowchart TB
  R1(["今月の数字をまとめて<br/>全体の調子どう?"]) --> REV["定例レポート<br/>入口"]
  R2(["予算をどう割るか"]) --> SEL["媒体を選ぶ<br/>入口"]
  REV -->|"△ / ✕ のチャネルだけ"| CH["各チャネルの分析の Skill<br/>広告の週次レポートなど"]:::out
  REV -->|"勝ち負けは結果を引用"| EXP["実験で打ち手を確かめる"]
  SEL -->|"媒体が 2 つ以上になったら"| MMM["媒体をまたいで効果を測る(MMM)"]
  MMM --> HB["【人】配分を決め、予算を変える"]:::human
  SEL -.->|"図の言葉で答える"| ONT["オントロジーを管理する<br/>問い・操作の一覧"]
  LOGS["実行の記録<br/>ログ・成果物"] --> HAR["ハーネスを整備する<br/>定期実行"]
  HAR -->|"書き戻す"| ONT
  HAR --> HP["【人】許可の範囲を変える"]:::human
  • 入口定例レポート

    同じ期間の数字をチャネルごとに並べ、目標比・前回比・判定・次の一手までを 1 本にまとめる

    中身を見る

    入力

    • つながっているチャネル
    • 案件の目標
    • 前回のレポート

    手順

    1. つながっているチャネルを確かめ、実際に数字が取れたものだけを載せる
    2. 目標と前回の数字を集める(前回が見つからなければ「今回が基準」と書く)
    3. チャネルごとに同じ期間の数字を並べ、◎○△✕ の 4 段階と理由 1 行で判定する
    4. 気になることを「期間 + 実際の数字 + 変化量」で先頭に書く
    5. 次にやることを 3 つまで書き、△ か ✕ のチャネルだけを各チャネルの分析へ回す
    6. 末尾に次回のための数値表を残す

    返すもの

    • 一言でいうと・チャネル別の判定表・次にやること・次回のための数値表

    守ること

    • チャネルの数字を合計しない。広告費だけは合計してよいが、合計から 1 件あたりの費用は出さない
    • 予約が 0 件のときの 1 件あたりの費用は「—」と書く
    • 実験の勝ち負けは実験の Skill の結果をそのまま引用し、判定し直さない
  • 入口媒体を選ぶ

    候補の媒体を 2〜4 個に絞り、同じ素材・同じ金額・同じ期間で比べる計画まで作る

    中身を見る

    入力

    • 商材
    • CV ゴール
    • 狙う関心度層
    • 予算感・審査リスク

    手順

    1. 前提を整理し、今回狙う関心度層を 1 つに決める
    2. 誰に・なぜ今まで来なかったか・何を・どう伝えるかを整理する
    3. 候補を 2〜4 個に絞り、選んだ理由を 1〜2 文で書く
    4. 比べる計画と撤退ライン(目標の 1 件あたりの費用の倍数)を書く

    返すもの

    • 候補の媒体と理由
    • 比較検証の計画

    守ること

    • 年齢と性別だけで決めない
    • 媒体ごとの管理画面の予約件数を足し合わせた計画にしない
    • 利用者数には出典と時点を添える
    • 広告の作成や配信はしない
  • 媒体をまたいで効果を測る(MMM)

    自社の売上・予約の台帳から、「その媒体が無かったら減っていた売上」を推定する

    中身を見る

    入力

    • 売上・予約の台帳(週ごと)
    • 媒体別の出稿費
    • 季節性・価格・販促

    手順

    1. 毎回同じ結果が出るスクリプトを「検査 → 推定 → 診断 → 報告」の順に動かす
    2. 途中の 4 箇所で一度止まる
    3. 応答曲線を推定し、配分を考える材料にする

    返すもの

    • 応答曲線と配分の案

    守ること

    • 管理画面の CV ではなく、自社の売上を目的変数にする
    • 診断に落ちた配分は出さない
    • 媒体の予算は AI に変更させない
  • 実験で打ち手を確かめる

    伸ばす数字を 1 つ決め、始める前に書いた基準で「勝ち / 負け / まだ分からない」を判定する

    中身を見る

    入力

    • 伸ばす数字
    • お客さんが離れている段階
    • 過去に勝った案と負けた案

    手順

    1. 伸ばす数字を 1 つ決め、お客さんが離れている段階を 1 つ選ぶ
    2. 案を出し、効果の大きさ・確かさ・やりやすさで順番を付ける
    3. 計画シートを書き、一度止まって人の確認を取る
    4. 公開後の実際の数字で、計算によって判定する
    5. 勝った案も負けた案も記録に残す

    返すもの

    • 計画シート
    • 判定と記録

    守ること

    • 判定の基準は、始めたあとに変えない
    • 1 パターンで変えるのは 1 か所だけ
    • 測れていない数字は「未取得」と書き、0 で埋めない
  • 広告の週次レポート

    広告の先週の実績を媒体ごとに取得し、前週と比べる

    中身を見る

    入力

    • 媒体ごとの実績
    • 前週のレポート

    手順

    1. 期間を月曜から日曜の 7 日間に固定し、期間と取得日時を書く
    2. 媒体の MCP ツールで取得し、認証エラーならその媒体を「未取得」にして先へ進む
    3. キャンペーンは名前ではなく ID で前週と突き合わせる

    返すもの

    • 媒体別の実績の表と、前週からの変化

    守ること

    • 媒体をまたいで合計しない
    • CTR は媒体で単位が違う(パーセントと 0〜1 の比率)。金額は円に直してから表に入れる
    • 直近数日の CV は「暫定」と注記する
  • オントロジーを管理する

    複数の Skill が使う図を 1 箇所に置き、問いの一覧・操作の一覧と一緒に渡す

    中身を見る

    入力

    • 答えるべき問い
    • 業務に出てくる名詞

    手順

    1. 答えるべき問いを 5〜10 個書く
    2. エンティティ → 一意キー → 関係 → 状態と操作の順に描く
    3. 最初の問いに、図の言葉だけで答えられるかを検査する

    返すもの

    • 図
    • 答えるべき問いの一覧
    • 操作の一覧

    守ること

    • 図に無いエンティティ・矢印・状態は作らない。無ければ「定義がありません」と答え、追加を提案する
    • 同じ図を 2 つの Skill に貼らない(正本が 2 つになる)
    • 書き込めるのは操作の一覧にあるものだけ
  • ハーネスを整備する

    実行の記録から失敗の原因を特定し、メモリ・パーミッション・オントロジー・Skill のどれかを直す

    中身を見る

    入力

    • 実行の記録(ログ・成果物)

    手順

    1. 実行して記録を残す
    2. 失敗の原因を特定する
    3. メモリ・オントロジー・Skill のどれかを直す(パーミッションは直し案まで)
    4. 直した状態で検証してから次の実行に進む

    返すもの

    • 直し案と検証の結果

    守ること

    • モデルは変えない
    • 評価と許可の範囲はループの外に置く
    • 記録はエージェントが読む場所に残す。古くなった部品は外す

補足: チャネルをまたいで合計してよい数字

定例レポートでいちばん多い間違いは、全チャネルの数字を足してしまうことです。AI は頼まれなくても合計の行を作りがちです。どれなら合計してよいかを先に決め、Skill に書いておきます。

数字合計してよいか理由
広告費(消化額)同じ通貨のときだけ合計してよい合計した広告費を合計した件数で割った「1 件あたりの費用」は誤った値になる
成果の件数(予約・CV)合計しない媒体ごとに数え方が違う。広告を見て後日検索して買った人は、両方の媒体で 1 件ずつ数えられることがある
再生数と表示回数合計しないTikTok の再生数と Instagram の表示回数は、数えているものが違う
重複を除いた人数合計しない見た人の人数のような数字は、足すと同じ人を二度数える
表示回数・クリック単位と期間の基準がそろっているときだけ数値の属性(単位・期間の基準)を見てから判断する
CTR などの率率どうしを並べず、分子と分母から出し直す0〜1 の比率で返る媒体と、0〜100 のパーセントで返る媒体がある

このページは、コラム『マーケティングエンジニアの教科書』の 第 2 章「AI Agent の使いこなし方」・第 1 章「マーケティングエンジニアとは」・第 3 章「戦略設計を自動化する」 をもとにまとめたものです。