営業リスト自動化ツールを作るときに注意すべき「APIコスト」の話【Google Maps API】
記事
IT・テクノロジー
営業リストを自動で作るツールを開発しようとすると、
Google Maps API(Places API)を使うケースが多いと思います。
実際に私も、
エリア指定
業種指定
店舗情報取得
CSV出力
といった営業リスト生成ツールを開発しました。
ただ、ここで一つ大きな落とし穴があります。
APIコストを考えないと普通に赤字になります
最初に結論です。
👉 APIは便利な機能ではなく「従量課金のインフラ」です
設計を間違えると、ツールを使うだけでお金が減ります。
実際に起きたこと
営業リストツールの処理はこんな流れでした。
Nearby Search → 店舗一覧取得
Place Details → 詳細情報取得(電話・HPなど)
HPからメールアドレス抽出
問題はこの部分です。
for (const place of places) {
const detail = await getDetails(place.place_id);
}
この実装だと、
同じ店舗を何度も取得
毎回Place Detailsを実行
APIコールが増え続ける
結果、
月13,000回以上のAPI呼び出し
無料枠を超過
数千円〜1万円の課金
という状態になりました。
なぜこうなるのか
原因はシンプルです。
👉 同じデータを毎回取りにいっているから
営業リストの場合、
同じエリアを何度も検索する
近隣エリアで同じ店舗が出る
再実行でも同じデータを取得する
つまり、
👉 重複データに対して毎回課金している状態
になります。
解決方法:キャッシュ
この問題はシンプルに解決できます。
👉 取得したデータを保存して再利用する
if (cache[placeId]) {
return cache[placeId];
}
これだけです。
キャッシュのポイント
キー:place_id
保存内容:店舗情報(電話・HPなど)
有効期限:30日程度
店舗情報は頻繁に変わらないので、
キャッシュしても問題ありません。
これだけでどう変わるか
重複APIコール削減
コスト削減
処理速度向上
👉 ツールとして「運用できる状態」になります
よくあるミス
営業リストツールを作るときに多いのがこれです。
とりあえず全部取得する
フィルタを後にする
キャッシュなし
これはすべて
👉 コスト増の原因
になります。
設計で重要な考え方
APIを使うときは必ずこれを考えます。
このデータは毎回必要か?
一度取ればいいのでは?
本当に全件必要か?
まとめ
営業リスト自動化ツールは非常に便利ですが、
👉 設計を間違えるとコストがかかり続けるツールになります
逆に言えば、
👉 設計を最適化すれば非常に強力な営業ツールになります
最後に(サービス導線)
営業リストの自動化や、AIを使った営業効率化ツールの開発を行っています。
Google Maps APIを使ったリスト生成
メールアドレス抽出
営業フロー自動化
など対応可能です。
ご興味があれば、プロフィール・サービスからご相談ください。