営業リスト自動化ツールを作るときに注意すべき「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を使ったリスト生成
メールアドレス抽出
営業フロー自動化

など対応可能です。

ご興味があれば、プロフィール・サービスからご相談ください。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら