新聞折込・ポスティングのチラシの過去の配布エリア・部数・内容と反響の記録から、次の配布の反響をエリアごとに見込み、部数の配分の案を広告主への提案に使う
広告主ごとの過去の配布の部数・エリア・内容と、町丁目ごとの反響の記録から、次の配布の反響をエリアごとに見込みます。決まった総部数の中で、反響の伸びが大きいエリアから部数を割り当てた配分の案を、広告主への提案の表にします。
- 連携・自動化
- Python
- 対象業界
- 不動産/小売/広告/飲食
- 対象部門
- マーケティング/営業
- 対象業務
- 比較検討/集計・分析
- 主な課題
- データ分析に時間がかかる/判断に時間がかかる/属人化している
- AIで行う処理
- 予測
- 主な効果
- 判断支援/属人化解消/工数削減
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 広告主から、次の配布の日・予算(総部数)・チラシの内容を聞く
- 手配の記録から、その広告主の過去の配布のエリアと部数を拾う
- 広告主から届いた過去の反響の報告を探し、配布の回ごとに並べる
- 地図のソフトで、店からの距離と、過去に配ったエリアを見比べる
- 経験から、配るエリアと部数を決め、提案の表を作る
- 広告主と打ち合わせ、エリアと部数を決めて手配する
- 配布の後、広告主から反響の報告をもらい、手配の記録の横に書き写す
- 人営業が、広告主から聞いた次の配布の日・総部数・方法・チラシの内容の区分を、提案の依頼の表に入れる
- 自動Python が、その広告主の過去の配布と町丁目ごとの反響を、手配の記録と反響の記録から集める
- 自動町丁目ごとの世帯の数と構成を、e-Stat の API で取った国勢調査の小地域の集計から引く
- 自動statsmodels の一般化線形モデルで、町丁目ごと・部数ごとの反響の見込みを、真ん中と幅で出す
- 自動総部数の中で、1,000部ずつ、反響の伸びが最も大きい町丁目に割り当てることをくり返して、配分の案を作る
- 自動過去の配分と案の配分を並べ、見込みの反響の真ん中と幅を比べた提案の表を作る
- 人営業が案を見て、広告主の事情(新しく出す店、配ってほしくない地域)を加えて直す
- 人広告主と打ち合わせ、エリアと部数を決めて手配する
- 自動配布の後、町丁目ごとの反響の報告を取り込み、見込みと並べて答え合わせをする
各工程の詳しい説明を読む
- 広告主から、次の配布の日・予算(総部数)・チラシの内容を聞く
- 手配の記録から、その広告主の過去の配布のエリアと部数を拾う
- 広告主から届いた過去の反響の報告を探し、配布の回ごとに並べる
- 地図のソフトで、店からの距離と、過去に配ったエリアを見比べる
- 経験から、配るエリアと部数を決め、提案の表を作る
- 広告主と打ち合わせ、エリアと部数を決めて手配する
- 配布の後、広告主から反響の報告をもらい、手配の記録の横に書き写す
(a)並べるのに時間がかかる。 過去の配布は手配の記録に、反響は広告主ごとのメールや表にあります。1つの広告主の1年分を並べるだけで、30分近くかかります。 並べ終わるころには、打ち合わせの時間が迫っています。
(b)エリアの選び方が人に頼っている。 「リフォームは築年数の古い戸建ての多い町」「賃貸は駅に近い集合住宅」といった勘所は、営業の頭の中にあります。同じ広告主でも、担当が替わると配るエリアが大きく変わります。
(c)部数を増やしたときの伸びが分からない。 広告主から「予算を増やしたら反響はどれだけ増えるか」と聞かれても、答えの根拠がありません。 前回うまくいったエリアに部数を足しても、同じ町に重ねて配った分は、思ったほど反響が増えません。
(d)振り返りが次に生きない。 反響の報告は書き写しても、どのエリアの反響が良かったかを次の提案で使える形になっていません。 結局、毎回の提案が前回の配布の写しになります。
- 【人】 営業が、広告主から聞いた次の配布の日・総部数・方法・チラシの内容の区分を、提案の依頼の表に入れる
- 【自動】 Python が、その広告主の過去の配布と町丁目ごとの反響を、手配の記録と反響の記録から集める
- 【自動】 町丁目ごとの世帯の数と構成を、e-Stat の API で取った国勢調査の小地域の集計から引く
- 【自動】 statsmodels の一般化線形モデルで、町丁目ごと・部数ごとの反響の見込みを、真ん中と幅で出す
- 【自動】 総部数の中で、1,000部ずつ、反響の伸びが最も大きい町丁目に割り当てることをくり返して、配分の案を作る
- 【自動】 過去の配分と案の配分を並べ、見込みの反響の真ん中と幅を比べた提案の表を作る
- 【人】 営業が案を見て、広告主の事情(新しく出す店、配ってほしくない地域)を加えて直す
- 【人】 広告主と打ち合わせ、エリアと部数を決めて手配する
- 【自動】 配布の後、町丁目ごとの反響の報告を取り込み、見込みと並べて答え合わせをする
7番目が、この設計の分かれ目です。 見込みは過去の配布と反響から出したものです。近くに競合の店が開いた、新しい分譲地ができた、といった事情は、営業と広告主しか知りません。 営業は配分を動かしてよく、動かした理由を残します。
9番目の答え合わせが、次の見込みを良くします。 見込みの幅に収まらなかった町丁目が続けば、チラシの内容の区分か、町丁目の特徴の取り方がずれています。
02今回想定するシステム構成
提案の依頼(広告主・配布日・総部数・方法・内容の区分)
│
▼【トリガー】依頼の表への登録
Python
├──▶ 手配の記録(過去の配布の町丁目・部数・方法)
├──▶ 反響の記録(町丁目ごとの来店・問い合わせの件数)
└──▶ e-Stat API(国勢調査の小地域の集計:世帯の数と構成)
▼
特徴の作成 ── 世帯あたりの配布の率(対数)/店からの距離/戸建ての割合/
内容の区分/季節/前回の配布からの週数
▼
statsmodels GLM(負の二項分布、対数のリンク、exposure=世帯の数)
▼
配分の計算 ── 1,000部ずつ、反響の伸びが最も大きい町丁目へ(上限つき)
▼
提案の表(町丁目ごとの部数・見込みの反響の真ん中と幅・前回との比べ)
▼
【営業が直し、広告主と決める】| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Python(pandas・statsmodels の一般化線形モデル) | R、BigQuery ML |
| 連携 | e-Stat の API(国勢調査の小地域の集計) | 自治体が公開する町丁目別の人口と世帯の数 |
| 集計 | Python(町丁目ごとの反響の件数と、配布の率の計算) | 手配の記録の表の集計 |
| データの取得元 | 手配の記録、広告主からの反響の記録 | 配布の会社の配布の報告 |
| 結果の出力先 | 営業部の共有フォルダの提案の表 | 地図のソフトへの書き出し |
手配の記録と、配布の会社への発注には書き込みません。 部数を決めて手配するのは、これまでどおり営業です。この構成は案を出すだけで、配布を動かす権限を持ちません。
町丁目ごとの世帯の数と構成は、e-Stat の API で取ります。 政府統計の総合窓口(e-Stat)の統計データを機械で読める形で取得できる API で、使うには e-Stat のユーザ登録と、アプリケーションごとのアプリケーションIDが必要です。小地域・地域メッシュのデータは統計表の一覧には出ず、検索の種別(searchKind)に2を指定して探し、版3.0の API で取るとされています。
API を使ったサービスを公開する場合は、決まった文のクレジット表示が求められています。 「このサービスは、政府統計総合窓口(e-Stat)のAPI機能を使用していますが、サービスの内容は国によって保証されたものではありません。」という文です。この構成は社内で使うものですが、提案の表を広告主に渡すときにも、世帯の数の出どころとして e-Stat の名前を書いておきます。
見込みには、statsmodels の一般化線形モデル(GLM)を使います。 分布の族(family)に負の二項分布を選び、exposure に町丁目の世帯の数を入れます。 exposure は対数をとって線形の予測に足されるもので、対数のリンクのときだけ使えるとされています。世帯の数で割った「世帯あたりの反響」を見込む形になり、大きな町と小さな町を同じ物差しで比べられます。
生成AIは使いません。 見込みも配分も数字と表で出します。エリアの良し悪しを文章で語らせると、根拠の無い地域の印象が提案に混ざります。
03どうやって実装するのか
処理の起点を決める
営業が提案の依頼の表に1行を入れたことを起点に、1件ずつ動かします。 依頼の表には、広告主、配布日、総部数、方法(折込かポスティングか)、チラシの内容の区分を入れます。数分で提案の表が共有フォルダに出て、営業はそれを持って打ち合わせの準備に入ります。
町丁目の世帯の数は、年に一度だけ取り直します。 国勢調査の小地域の集計は、新しい調査の結果が出たときに変わります。毎回 API を呼ぶ必要は無く、取ったものを社内の表に保存して使います。
モデルの学び直しは、月に一度にします。 前の月の配布の反響が出そろった月初に、全広告主の記録で作り直します。反響の報告は配布から2〜3週間かけて届くため、届ききっていない配布は学び直しに入れません。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 提案の依頼 | 広告主、配布日、総部数、方法、内容の区分(特売・イベント・物件の紹介・季節の案内など)、配ってはいけない町丁目 | 営業の依頼の表 |
| 過去の配布 | 配布ごとの町丁目、部数、方法、配布日、内容の区分 | 手配の記録 |
| 反響 | 配布ごと・町丁目ごとの来店、問い合わせ、成約の件数 | 広告主からの反響の記録 |
| 町丁目の世帯 | 世帯の数、一戸建ての世帯の割合、年齢の構成 | e-Stat の API(国勢調査の小地域の集計) |
| 店の場所 | 広告主の店や事務所の位置 | 広告主の情報 |
| 配布の上限 | 町丁目ごとのポスティングで配れる上限、販売店の区域ごとの折込の部数 | 配布の会社と販売店の資料 |
質を決めるのは、反響の記録の「町丁目」の列です。 どこから来た反響かが分からなければ、町丁目ごとの見込みは作れません。 来店ならチラシに刷ったクーポンの番号、問い合わせなら電話で聞いた町名や郵便番号から、町丁目を付けてもらいます。
配布の上限も外せません。 ポスティングは、配布の会社が配れる戸数を超えて配れません。折込は、販売店の区域の新聞の部数が上限です。上限を持たないと、反響の良い町に、配れない部数を割り当てた案が出ます。
データの取得方法を決める
e-Stat の API は、最初に統計表を探して、表の番号で値を取ります。 小地域のデータは、検索の種別に2を指定して探します。取りたいのは、町丁目ごとの世帯の数、一戸建ての世帯の数、年齢の階級ごとの人口で、広告主の商圏にあたる市区町村の分だけ取って、社内の表に保存します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 町丁目ごとの世帯の数 | e-Stat の API(小地域の集計) | exposure、配布の率の分母 |
| 一戸建ての世帯の割合、年齢の構成 | e-Stat の API(小地域の集計) | 町丁目の特徴 |
| 過去の配布の町丁目と部数 | 手配の記録 | 配布の率の特徴 |
| 町丁目ごとの反響の件数 | 反響の記録 | 見込む値 |
| 店からの距離 | 店の位置と町丁目の代表の点 | 町丁目の特徴 |
反響の記録は、広告主ごとに形がばらばらです。 最初に、配布日・町丁目・来店・問い合わせ・成約の5つの列にそろえる表を広告主に渡し、そこに書いてもらいます。書けない広告主の分は、郵便番号から町丁目に直す対応表を使います。
折込の区域と町丁目は、一致しません。 販売店の区域は、いくつもの町丁目にまたがります。区域の部数は、区域に含まれる町丁目の世帯の数で按分して、町丁目ごとの部数に直します。 按分した部数には印を付け、ポスティングの部数と分けて扱います。
AIへ渡す前に整形する
- 反響の待ちを決める … 配布日から3週間までに届いた反響を、その配布の反響とします。次の配布と重なる期間は、新しい配布の側に数えます
- 配布の率を作る … 町丁目ごとに、部数を世帯の数で割ります。モデルには、この率の対数を入れます
- 町丁目の特徴を作る … 店からの距離、一戸建ての割合、年齢の構成、前回の配布からの週数
- 配布の特徴を作る … 方法(折込・ポスティング)、内容の区分、配布の月
- 配らなかった町丁目を入れる … 商圏の中で配らなかった町丁目も、部数0の行として残し、そこからの反響(口コミ・店の前を通った人)も数えます
- 特殊な配布の印 … 雨の日の配布、配布の遅れ、チラシの刷り間違いのあった配布に印を付けます
2番目で「率の対数」を入れるのが、この構成の要です。 反響の見込みは対数のリンクなので、率の対数の係数が1より小さければ、配るほど伸びるが伸び方が鈍る形になります。係数がそのまま、町丁目に部数を足したときの効き方を表します。
5番目で配らなかった町丁目を残すのは、配らなくても来る反響を分けるためです。 店の近くの町丁目は、チラシが無くても来店があります。配らなかった町丁目の反響を数えておかないと、店の近くに配った効果を大きく見積もります。
AIに処理させる
この構成の「AI」は、町丁目ごと・部数ごとの反響の見込みだけです。 配分の計算と提案の表は、決まった規則で出します。
| 段 | させること | させないこと |
|---|---|---|
| 反響の見込み | 町丁目ごと・部数ごとの反響の件数の真ん中と幅 | 成約の金額の見込み |
| 伸びの計算 | 1,000部を足したときの反響の増え方 | 総部数・予算の決定 |
| 配分の案 | 伸びの大きい町丁目から上限まで割り当てる | 配ってはいけない町丁目の判断 |
| 比べ | 前回の配分と案の配分の見込みの差 | 反響の約束 |
見込みには、statsmodels の GLM を負の二項分布で使います。 反響は件数で、町丁目ごとのばらつきが大きく、平均より分散がずっと大きくなりがちです。 ポアソン分布では幅が狭く出すぎるため、負の二項分布を選びます。exposure に世帯の数を入れ、説明の変数に、配布の率の対数、店からの距離、一戸建ての割合、方法、内容の区分、月を入れます。
見込みの幅は、負の二項分布から出します。 真ん中の見込みと、ばらつきの大きさから、10回に8回はこの範囲に入るという幅(80%の範囲)を町丁目ごとに計算し、提案の表に並べます。
配分は、1,000部ずつ割り当てることをくり返します。 今の配分から各町丁目に1,000部を足したときの反響の増え方を計算し、いちばん増える町丁目に1,000部を足します。 総部数に達するか、すべての町丁目が上限に達したら止めます。伸び方が鈍る形のモデルなので、同じ町丁目に足し続けることにはなりません。
| 機械にさせないこと | 理由 |
|---|---|
| 総部数と予算を決める | 広告主の販促の計画と費用の判断 |
| 配ってはいけない町丁目を決める | 広告主の事情(取引先の地域、苦情のあった地域)を知らない |
| 反響の件数を約束する | 内容・天気・競合で大きく変わる |
| チラシの内容を良し悪しで評価する | 表示の法令と広告主の判断に関わる |
3行目がいちばん起きやすい失敗です。 提案の表に見込みの件数が載ると、広告主はそれを約束と受け取りがちです。真ん中だけを書くと、下回ったときに提案そのものの信用を失います。 表には必ず幅を並べ、「モデルによる見込み」と書きます。
指示内容を固定する
この構成は生成AIを使わないため、指示は Python の設定ファイルに書きます。 何をどう見込み、どの規則で配分するかを、営業部の誰が読んでも分かる形で残すためです。
# チラシの反響の見込みと配分の設定(flyer_forecast.yaml)
単位: 町丁目 × 配布の回
反響: 来店 + 問い合わせ(配布日から3週間)。成約は参考の列として別に持つ
世帯のデータ:
取得先: e-Stat API(国勢調査の小地域の集計。searchKind=2、版3.0)
項目: 世帯の数, 一戸建ての世帯の数, 年齢の階級ごとの人口
取り直し: 年1回(新しい集計の公表の後)
見込み:
モデル: GLM(family=負の二項分布, 対数のリンク, exposure=世帯の数)
変数: log(配布の率), 店からの距離, 一戸建ての割合, 方法, 内容の区分, 月,
前回の配布からの週数
幅: 80%の範囲(10回に8回はこの範囲)
学び直し: 月初(反響が出そろった配布だけ)
配分:
単位: 1,000部
規則: 足したときの反響の増え方が最も大きい町丁目へ
上限: ポスティングは配れる戸数、折込は区域の部数
止める: 総部数に達したとき、またはすべての町丁目が上限
除く: 依頼の表の「配ってはいけない町丁目」
守ること:
- log(配布の率) の係数が 1 以上になった広告主は、配分を出さずに印を付ける
- 過去の配布が3回未満の広告主は、同じ内容の区分のほかの広告主の記録で見込み、「参考」と書く
- 提案の表には真ん中と幅を必ず並べ、真ん中だけを書かない
- 手配の記録と配布の会社への発注には書き込まない
「率の係数が1以上なら配分を出さない」は、モデルの破れへの備えです。 係数が1以上だと、配るほど伸び方が強まる形になり、配分は1つの町丁目に全部を寄せます。 記録が少ないか、反響の良い町丁目に偏って配ってきた広告主で起きます。
「過去の配布が3回未満なら、ほかの広告主の記録で見込む」は、新しい広告主への備えです。 同じ内容の区分(たとえばリフォーム)の広告主の記録から、町丁目の特徴の効き方を借ります。その広告主の店の場所と、町丁目の特徴だけで見込むので、表には「参考」と書きます。
出力形式を固定する
提案1件ごとに、次の形のJSONと、それを表にした提案の表で出します。
{
"proposal_id": "P-2026-10-031",
"client": "(広告主)",
"delivery_date": "2026-10-24",
"method": "posting | newspaper_insert",
"content_class": "リフォーム・季節の案内",
"total_copies": 20000,
"model_version": "flyer-2026-10",
"dispersion": 0.0,
"log_rate_coef": 0.0,
"areas": [
{
"town_code": "",
"town_name": "",
"households": 0,
"distance_km": 0.0,
"prev_copies": 0,
"plan_copies": 0,
"cap_copies": 0,
"expected_median": 0.0,
"expected_low80": 0,
"expected_high80": 0,
"apportioned": false
}
],
"total_expected": { "prev_plan": 0.0, "new_plan": 0.0 },
"flags": [],
"sales_decision": { "changes": [], "reason": "" }
}
areas と total_expected は Python が埋め、sales_decision は営業が書きます。
1つ目の理由は、前回の配分と案の配分を同じ物差しで比べられることです。 prev_copies と plan_copies を並べ、同じ総部数で配り方だけを変えたら、見込みの反響がどれだけ変わるかを広告主に見せられます。
2つ目は、expected_low80 と expected_high80 で、幅を必ず添えられることです。 真ん中だけの表は作らない決まりを、出力の形で守ります。
3つ目は、apportioned で、折込の按分した部数を見分けられることです。 按分の部数は町丁目ごとの実際の配布の数ではないので、答え合わせのときに分けて見ます。
提案の表は、次の形にします。
| 町丁目 | 世帯の数 | 前回の部数 | 案の部数 | 見込みの反響(真ん中/80%の範囲) |
|---|---|---|---|---|
| (例)○○町2丁目 | 1,200 | 1,000 | 1,000 | 4.2件/2〜7件 |
| (例)△△町1丁目 | 900 | 0 | 900 | 3.1件/1〜5件 |
表の下に、「世帯の数は政府統計の総合窓口(e-Stat)の国勢調査の小地域の集計による。見込みは過去の配布と反響からのモデルによるもので、反響を約束するものではない」と書きます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 営業の依頼の表 | 読み取り | 広告主、配布日、総部数、方法、内容の区分、除く町丁目 |
| 手配の記録 | 読み取りのみ | 過去の配布の町丁目・部数・方法 |
| 反響の記録 | 読み取りのみ | 町丁目ごとの反響の件数 |
| e-Stat の API | HTTP の呼び出し(年1回、アプリケーションIDを付ける) | 町丁目の世帯の数と構成 |
| 共有フォルダ | 書き込み | 提案の表と、月次の答え合わせの表 |
e-Stat の API に送るのは、統計表の番号と地域のコードだけです。 広告主の名前や反響の件数は社外に送りません。アプリケーションIDは、社内の設定ファイルに置き、提案の表やログに書き出しません。
配布の会社と販売店への発注は、これまでどおり営業が行います。 案の部数をそのまま発注に流す経路は作りません。
人が確認する
営業は、提案の表を広告主に出す前に必ず見ます。
- 印を先に見る … 係数の破れ、記録の少ない広告主の「参考」、按分の部数が無いかを見ます
- 除く町丁目を確かめる … 広告主の事情で配ってはいけない町丁目が、依頼の表に入っているかを確かめます
- 新しい事情を加える … 新しい分譲地、競合の出店、店の改装など、記録に無い事情で部数を動かします
- 幅を確かめる … 幅の広い町丁目が多いなら、その旨を広告主に伝える言い方を考えます
- 決めた配分と理由を記録する …
sales_decisionに書きます
3番目を省かないでください。 見込みは過去の配布と反響から出したもので、新しい分譲地の住民は、過去の記録にいません。 そこに配るかどうかは、営業と広告主が決めることです。
月初の答え合わせの表は、企画の担当が見ます。 見込みの80%の範囲に収まらなかった町丁目の割合を、広告主ごと・内容の区分ごとに出し、偏りがあれば営業部の会議で取り上げます。
目標は、1件15分です。 印の無い提案は表を見て直すところまで10分前後、新しい広告主や大きく配り方を変える提案は、事情の聞き取りで20分以上かかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 反響の記録に町丁目が無い | 郵便番号から町丁目に直す。直せない分は「エリア不明」として数え、見込みには使わない |
| 過去の配布が3回未満 | 同じ内容の区分のほかの広告主の記録で見込み、「参考」と書く |
| 率の係数が1以上になった | 配分を出さず、前回の配分に見込みだけを付けて返す |
| e-Stat の API が応答しない | 保存してある前回の世帯の数で見込み、表に取得の日付を書く |
| 町丁目の名前や区域が変わった | 新旧の町丁目の対応表で直す。直せない町丁目は印を付けて人に見せる |
| 配布の遅れや雨の日の配布 | 特殊な配布の印を付け、学び直しでは印を変数として扱う |
| 反響が配布から3週間を過ぎて届いた | その配布の反響に足さず、遅れて届いた件数として別に数える |
| 総部数が上限の合計を超える | 上限まで割り当てて止め、配りきれない部数を表の冒頭に書く |
上の2行は、運用の最初から起きます。 反響の記録の形をそろえるまでは、エリア不明の反響が全体の半分を超える広告主もいます。 その広告主には見込みを出さず、記録のそろえ方から相談します。
記録を残す
- 提案の依頼の内容と登録の日時、そのときの手配の記録と反響の記録の版
- 取得した町丁目の世帯の数と構成、取得した日と統計表の番号
- モデルの版、学び直しの期間、率の係数と分散の大きさ
- 町丁目ごとの見込みの真ん中と幅、案の部数、付いた印
- 営業が決めた配分と理由(
sales_decision) - 配布の後の町丁目ごとの反響と、見込みの範囲に収まったかどうか
最後の行が、学び直しのいちばんの材料です。 範囲に収まらなかった町丁目が特定の内容の区分に偏っていれば、内容の区分の分け方が粗すぎるということです。
04実装レベルの3段階
半自動化だけでも、①の25分と④の5分はほぼ消えます。 記録を探して並べ、書き写す作業が無くなるからです。ただし、配るエリアと部数を決めるのは、まだ営業の勘所です。 本格構成で1件15分になり、この段階が本記事の想定です。 違いは、部数を足したときの反響の伸びが数字で出て、配分の案が根拠つきで並ぶことです。 段階を飛ばさないでください。 半自動化の振り返りの表を3か月使うと、反響の記録の欠けが多い広告主と、町丁目の付け方のくせが見えます。そこを直してから見込みを足すほうが、提案の空振りが減ります。
05工数削減シミュレーション
導入後 60件 × 15分 ÷ 60 = 15 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 地域の広告主から新聞折込とポスティングのチラシの手配を毎月受け、配布エリアと部数の配分を営業の経験で提案している広告会社。広告主ごとに、来店や問い合わせの反響をどの町丁目から来たかまで記録してもらえる場合。同じ広告主のチラシを年に何回も配り、過去の配布と反響の記録が1年分以上たまっている場合。リフォーム・不動産・飲食・小売など、店や事務所から近い範囲に配る広告主が多い場合。
- 配布が年に1〜2回の広告主。反響の記録が「全体で何件」だけで、どのエリアから来たかが分からない場合(まず反響のエリアを記録してもらうところから)。全国に一律で配る大規模な配布。なお、配布の総部数と予算の決定、チラシの内容の判断、広告の表示が法令に合っているかの判断は、この構成では代替できません。
07最小構成で試す方法
- 町丁目ごとの反響を記録している広告主を1社選ぶ
- その広告主の過去1年分の配布について、町丁目ごとの部数と反響を表に並べる
- e-Stat のサイトで、その町丁目の世帯の数を調べて並べる
- 手元のAIサービスに表を貼り、「世帯あたりの部数を増やしたとき、世帯あたりの反響はどう変わっているか。町丁目の違いで反響の多い少ないに共通点はあるか」と聞く
- 出てきた傾向を、担当の営業の勘所と比べる
この段階ではモデルを作りません。 確かめたいのは、部数を増やしたときに反響の伸びが鈍る形が、記録から見えるかです。
| 出てきた内容 | 判断 |
|---|---|
| 世帯あたりの部数を増やすと、反響は増えるが伸びが鈍る | Python でモデルを作り、配分の計算に進む |
| 反響の多い少ないが、店からの距離だけで説明できる | 距離で配る範囲を決めるだけで足りる。配分の計算は後回し |
| 町丁目ごとの反響の記録が少なすぎる | 見込むより、広告主と反響の記録の取り方を決めるのが先 |
3行目が出ることは珍しくありません。 失敗ではなく、どのエリアが効いたかを誰も数えていなかったことが分かったということです。チラシにエリアごとのクーポンの番号を刷る運用を3回の配布で続けてから、同じ確かめをやり直してください。手元のAIサービスに貼るのは町丁目と部数と件数だけにし、広告主の名前や顧客の情報は貼りません。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 反響の多くが「エリア不明」になる | 記録の形がばらばら。クーポンの番号と町名の聞き取りで町丁目を付けてもらう |
| 店の近くへの配布の効果が大きく出る | 配らなかった町丁目の反響を数えていない。部数0の行を残す |
| 配分が1つの町丁目に寄る | 率の係数が1以上。配分を出さず、記録を確かめる |
| 見込みの幅が狭く、実績がよく外れる | ポアソン分布を使っている。負の二項分布にする |
| 配れない部数が割り当てられる | 上限を持っていない。ポスティングの戸数と折込の区域の部数を入れる |
| 折込の町丁目ごとの答え合わせが合わない | 按分の部数を実際の部数と扱っている。apportioned で分けて見る |
| 町丁目の名前の変更で記録がつながらない | 新旧の町丁目の対応表を持つ |
| 広告主が見込みを約束と受け取る | 真ん中と幅を必ず並べ、「モデルによる見込み」と書く |
| 新しい広告主の見込みが出ない | 同じ内容の区分のほかの広告主の記録で見込み、「参考」と書く |
| 案の部数をそのまま発注したくなる | つながない。 発注は営業が決めてから行う |
上の2行が、見込みの失敗のほとんどです。 どちらも、反響の記録がどこまで町丁目に結びついているかで決まります。モデルを変えるより先に、記録の取り方を広告主と決めてください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 広告主ごとの配布の部数と費用、町丁目ごとの反響の件数、広告主の店の場所。反響の記録のもとには、来店した客や問い合わせた人の住所があります。
- 個人の住所を受け取らない … 広告主から受け取るのは、町丁目ごとに数えた件数だけにします。客の名前や番地まで入った記録を受け取らない決まりを、最初に広告主と取り交わします
- 広告主の記録を混ぜて見せない … 新しい広告主の見込みにほかの広告主の記録を使うときも、提案の表にはほかの広告主の名前や反響の件数を出しません
- 社外へ出さない … 見込みの計算は社内のパソコンで終わります。e-Stat の API に送るのは統計表の番号と地域のコードだけです
- 見込みを約束にしない … 提案の表には必ず幅を並べ、「モデルによる見込み」と書きます。反響の件数を保証する言い方をしません
- 出どころを書く … 世帯の数が e-Stat の国勢調査の小地域の集計によることを、提案の表に書きます
誤りが起きた場合のリスクは、見込みを高く見せて広告主の期待を外すことと、反響の良い町丁目を見落として配分を誤ることの2つです。 前者は幅を必ず並べることで、後者は月次の答え合わせと、営業が事情を加えることで防ぎます。
10まず何から始めるか
1週目:反響の記録の表を作る
配布日・町丁目・来店・問い合わせ・成約の5つの列の表を作り、毎月配る広告主5社に渡して、次の配布から書いてもらいます。クーポンの番号をエリアごとに変えられる広告主には、番号の振り方を相談します。
2週目:1社で伸び方を見る
町丁目ごとの反響の記録がすでにある広告主を1社選び、過去1年分を並べて、部数を増やしたときの伸び方が見えるかを確かめます。
3週目:世帯のデータをそろえる
e-Stat のユーザ登録をしてアプリケーションIDを取り、商圏の市区町村の町丁目ごとの世帯の数と構成を取って、社内の表に保存します。
4週目:振り返りの表を作る
Python で全広告主の配布と反響を町丁目ごとにそろえ、世帯の数と並べた振り返りの表を作ります。この時点では見込みを出さず、営業が表を見て配分を決めます。
2か月目: 負の二項分布のモデルで見込みと幅を出し、1,000部ずつの配分の案を付けます。3か月目以降: 月次の答え合わせを始め、内容の区分と町丁目の特徴を直します。見込みの80%の範囲に収まった町丁目の割合が、3か月続けて8割前後に落ち着いた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| API機能の利用に e-Stat のユーザ登録が必要なこと。API の利用時にアプリケーションIDを送信する必要があり、マイページでアプリケーションごとに取得すること。API を使用したアプリケーションを公開する際にクレジット表示が求められること | e-Stat API: 利用ガイド | 2026-10-08 |
小地域・地域メッシュのデータが統計表の一覧に表示されず、検索データの種別(searchKind)に2を指定して取得すること。当該データは版3.0に最新の情報が入っており、版3.0を使うこと | e-Stat API: 提供データ | 2026-10-08 |
| API機能を使用したサービスを公開する場合のクレジット表示の文(「このサービスは、政府統計総合窓口(e-Stat)のAPI機能を使用していますが、サービスの内容は国によって保証されたものではありません。」) | e-Stat API: クレジット表示 | 2026-10-08 |
GLM の family で分布の族を選べ、族に Poisson・NegativeBinomial などがあること。exposure は対数をとって線形の予測に足され、対数のリンクのときだけ有効なこと。offset を指定できること(statsmodels 0.15.0) | statsmodels: GLM | 2026-10-08 |
配布の総部数と予算、チラシの内容と表示が法令に合っているかは、広告主と営業の判断で決めてください。 本記事は公的な案内と製品の公開ドキュメントで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0941)についてのご相談はこちらから。
