- 公式のGoogle Maps Platform APIでは、Googleマップに表示される順位は再現できません。収集する必要があります。
- 各店舗は、順位、名称、カテゴリ、住所、ウェブサイト、評価、口コミ数、CIDとともに返されます。
- 用途:都市ごとのローカルSEOの追跡、競合調査、市場調査。
Googleマップをスクレイピングするか、公式APIを使うか
まず解いておきたい誤解があります。公式のGoogle Maps Platform APIは、アプリ内で地図を表示したり、ルートを計算したり、住所をジオコーディングしたりするためのものです。その場所検索はビジネスを返しますが、特定の場所からGoogleマップで検索したときに検索ユーザーが見る順番では返しません。
Googleマップのスクレイピングとは、特定の場所からの検索(「レストラン」「水道修理」「ジム」)で返される店舗の一覧を、Googleが表示する順番で収集することです。ローカルSEOや市場調査に使われるのは、このデータです。
各店舗で取得できるデータ
| フィールド | 内容 |
|---|---|
rank_type、rank_serp | 検索結果での店舗の順位 |
title | 店舗・ビジネス名 |
cid | 店舗のGoogle ID。長期間変わりません |
type | カテゴリ。例:レストラン |
address | 住所 |
website | ウェブサイト |
rating、reviews | 5段階の平均評価と口コミ数 |
status_label、status_detail | 営業状況と、営業時間などの詳細 |
comment | 店舗情報に表示される抜粋 |
images | 店舗の画像 |
CIDは貴重です。名称や住所が変わっても、スナップショット間で同じ店舗を追跡できます。
位置ですべてが変わる
Googleマップの検索結果は、どこから検索するかで変わります。「水道修理」を市の中心部から検索するのと郊外から検索するのとでは、同じ店舗が同じ順番で返ることはありません。geolocationパラメータを使えば、任意の都市から、または任意でズームを付けた正確なGPS座標(43.7102,7.2620,16z)から検索できます。詳しくは地域別SERPで解説しています。
呼び出しの例
curl -X POST 'https://api.semscraper.com/v1/serp' \
-H 'Authorization: Bearer API_KEY' \
-H 'Content-Type: application/json' \
-d '[{"search_engine": "google_maps", "keyword": "ラーメン", "depth": 1, "location": "jp", "language": "ja", "geolocation": "Shibuya, Tokyo, Japan"}]'Google検索と同じリクエストで、search_engineをgoogle_mapsに設定します。料金も同じで、深度1なら1,000検索あたり€0.30です。
3つの具体的な活用例
ローカルSEOを追跡する
自社店舗のキーワードごとの順位を、都市別に毎週記録します。順位が下がっている店舗は、競合が口コミを増やしているか、カテゴリの選び方が適切でないことがよくあります。
地域の競合を調査する
検索結果に表示される周辺のビジネスの評価、口コミ数、カテゴリを比較します。上位3店舗との口コミ数の差が、目指すべき目標になります。
市場を調査する
カテゴリと都市のリストを掛け合わせれば、表示されているビジネスを住所とウェブサイト付きで網羅的に把握できます。競合の密度、手薄なエリア、出店しているチェーンなどがわかります。
Googleマップか、ローカルパックか
通常のGoogle検索結果に数件の店舗が表示されるブロック、ローカルパックは、Googleマップの検索とは別物です。ローカルパックはGoogle検索APIで、評価、口コミ数、価格帯とともに取得できます。GoogleマップAPIは、マップ検索そのものの店舗一覧を返します。両者は補い合う関係で、ローカルパックはGoogle検索での露出を、マップは地図上での順位を計測します。
