Places Insights の概要

Places Insights を使用すると、Google マップの豊富なプレイスデータに対して高度な統計分析を行うことができます。数百万のスポット(POI)データポイントの集計数と密度情報を提供し、強力な地理空間インテリジェンスを実現します。

主な機能:

  • 地理空間インテリジェンス: 特定の地理的エリアにおけるさまざまなカテゴリの POI(小売、レストラン、サービスなど)の密度と 分布を俯瞰的に把握できます。
  • 安全なデータアクセス: データは、データ保護が施された BigQuery データ交換 リスト を使用してデプロイされるため、データの共有と分析のための安全な環境 が実現します。
  • 実用的な詳細: Places Insights は集計された傾向に焦点を当てていますが、出力されたプレイス ID を使用して、他の Google Maps Platform API を使用して個々のプレイス情報をドリルダウンして取得し、統計的な分析情報から詳細なアクションにつなげることができます。

プレイスデータについて

Google マップは、世界中の数百万の施設に関するプレイスデータをキュレートしています。 Places Insights では、この包括的なプレイスデータを BigQuery で利用できるため、 プレイス の種類、評価、営業時間、 車椅子での利用のしやすさなど、さまざまな属性に基づいて Google マップのプレイスデータに関する集計された分析情報を取得できます。

Places Insights を使用するには、プレイスデータに関する統計分析情報を返す SQL クエリを BigQuery で作成します 。この分析情報を使用すると、次のような質問に答えることができます。

  • 新しい店舗の候補地の近くには、類似のビジネスがいくつありますか?
  • 最も成功している店舗の近くには、どのような種類のビジネスが最も多くありますか?
  • ターゲット ユーザーを引き付ける可能性のある補完的なビジネスが集中しているエリアはどこですか?
  • マドリードで午後 8 時に営業している、車椅子対応の駐車場があり、テイクアウトを提供している 5 つ星の寿司店は何軒ありますか?
  • カリフォルニア州のどの郵便番号に EV 充電ステーションが最も集中していますか?

Places Insights は、次のような複数のユースケースをサポートしています。

  • サイトの選択: 新しいビジネスや物理アセットの配置に最適な場所を評価して選択します。周辺の POI の密度と構成を分析することで、候補地が競合するビジネス環境と補完的なビジネス環境内で最適な位置にあることを確認できます。このデータドリブン アプローチにより、新しいロケーションへの投資に関連するリスクを軽減できます。
  • ロケーションのパフォーマンス評価: スーパーマーケットやイベント会場など、特定の種類の POI への近さなど、既存のロケーション全体のパフォーマンスの高さ / 低さと相関する地理空間変数を特定します。このデータを使用すると、ユースケースに最適な地理空間特性の組み合わせを共有する候補地を特定できます。また、この情報を使用して、周辺の POI コンテキストに基づいて新しいロケーションの将来のパフォーマンスを予測する予測モデルをデプロイすることもできます。
  • ジオターゲティング マーケティング: あるエリアで成功するマーケティング キャンペーンや 広告の種類を特定します。Places Insights は、商業活動を理解するために必要なコンテキストを提供し、関連するビジネスやアクティビティの集中度に基づいてメッセージを調整できます。
  • 売上予測: 候補地の将来の売上を予測します。 周辺の地理空間特性の影響をモデリングすることで、投資判断を促進する堅牢な予測モデルを作成できます。
  • 市場調査: 次にビジネスや サービスを拡大する地域を知らせます。既存の市場飽和度と POI 密度を分析して、最大の機会を提供するサービスが行き届いていないターゲット市場や、非常に集中しているターゲット市場を特定します。この分析は、戦略的な成長と拡大の取り組みをサポートする証拠を提供します。

Places Insights データセットを 直接クエリすることも、Places Count 関数を使用することもできます。

スキーマのリファレンスをご覧ください

ブランドデータについて

Places Insights には、プレイスデータに加えて、同じブランド名で複数のロケーションを運営しているブランドや店舗に関するデータも含まれています。

ブランドを使用すると、次のような質問に答えることができます。

  • あるエリアのブランド別のすべての店舗数は?
  • そのエリアの競合ブランドの上位 3 つの店舗数は?
  • このエリアで、これらのブランドを除くすべてのコーヒー ショップの数は?

BigQuery について

Places Insights では、BigQuery リストでデータを利用できるようにすることで、次のことが可能になります。

  • データを Places Insights データと安全に組み合わせる。
  • 柔軟な SQL クエリを作成して、特定のビジネスニーズに関する集計された分析情報を明らかにする。
  • プライベート データとワークフローですでに使用しているのと同じ BigQuery ツールを使用する。
  • BigQuery のスケールとパフォーマンスを活用して、大規模なデータセットを簡単に分析する。

使用例

この例では、BigQuery でデータを Places Insights データと結合して、集計情報を取得します。この例では、ニューヨーク市に複数のロケーションを持つホテルのオーナーであるとします。ホテルのロケーションデータを Places Insights データと結合して、ホテルの近くにある事前定義されたビジネスタイプの集中度を把握します。

前提条件

この例では、米国の Places Insights データセットを サブスクライブします。

ホテル データセットの名前は mydata で、ニューヨーク市にある 2 つのホテルのロケーションを定義します。次の SQL でこのデータセットを作成します。

CREATE OR REPLACE TABLE `mydata.hotels` ( name STRING, location GEOGRAPHY );
INSERT INTO `mydata.hotels` VALUES( 'Hotel 1', ST_GEOGPOINT(-73.9933, 40.75866) );
INSERT INTO `mydata.hotels` VALUES( 'Hotel 2', ST_GEOGPOINT(-73.977713, 40.752124) );

エリア内のレストランの数を取得する

ホテルの近くにある営業中のレストランの密度をユーザーに把握してもらうために、各ホテルから 1, 000 メートル以内にあるレストランの数を返す SQL クエリを作成します。

SELECT WITH AGGREGATION_THRESHOLD h.name, COUNT(*) AS count
FROM `PROJECT_NAME.places_insights___us.places` AS r, `mydata.hotels` AS h
WHERE
ST_DWITHIN(h.location, r.point, 1000)
AND r.primary_type = 'restaurant'
AND business_status = "OPERATIONAL"
GROUP BY 1

この画像は、このクエリの出力例を示しています。

各ホテルから 1,000 メートル以内のレストランの数をカウントするクエリの結果。

Places Count 関数を使用して、エリア内のレストランの数とプレイス ID を取得する

Places Count 関数

を使用して、ロケーションの近くにあるレストランの数を調べることもできます。Places Count 関数を使用すると、 プレイス ID のリストを取得できます。このリストを使用して、個々のプレイスの詳細を 検索できます。

DECLARE geo GEOGRAPHY;
SET geo = ST_GEOGPOINT(-73.9933, 40.75866); -- Location of hotel 1

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE`(
  JSON_OBJECT(
      'types', ["restaurant", "cafe", "bar"],
      'geography', geo,
      'geography_radius', 1000 -- Radius in meters
      )
);

この画像は、このクエリの出力例を示しています。

各ホテルから 1, 000 メートル以内のレストランのクエリ結果(プレイス ID を含む)。

エリア内のレストランとバーの数を取得する

クエリを変更して、各ホテルから 1,000 メートル以内にあるレストランに加えてバーを含めます。

SELECT WITH AGGREGATION_THRESHOLD h.name, r.primary_type, COUNT(*) AS count
FROM `PROJECT_NAME.places_insights___us.places` AS r, `mydata.hotels` AS h
WHERE
ST_DWITHIN(h.location, r.point, 1000)
AND r.primary_type IN UNNEST(['restaurant','bar'])
AND business_status = "OPERATIONAL"
GROUP BY 1, 2

この画像は、このクエリの出力例を示しています。

各ホテルから 1,000 メートル以内のレストランとバーの数をカウントするクエリの結果。

エリア内の中価格帯のレストランとバーの数を取得する

次に、バーやレストランがどのユーザー層にサービスを提供しているかを確認します。ホテルは中価格帯をターゲットにしているため、その価格帯で評価の高い近隣の施設のみを宣伝します。

クエリを制限して、価格帯が PRICE_LEVEL_MODERATE で、評価が 4 つ星以上のバーやレストランのみを返すようにします。このクエリでは、各ホテルの半径を 1,500 メートルに拡大しています。

SELECT WITH AGGREGATION_THRESHOLD h.name, r.primary_type, COUNT(*) AS count
FROM `PROJECT_NAME.places_insights___us.places` AS r, `mydata.hotels` AS h
WHERE
ST_DWITHIN(h.location, r.point, 1500)
AND r.primary_type IN UNNEST(['restaurant', 'bar'])
AND rating >= 4
AND business_status = "OPERATIONAL"
AND price_level = 'PRICE_LEVEL_MODERATE'
GROUP BY 1, 2

この画像は、このクエリの出力例を示しています。

各ホテルから 1,500 メートル以内の手頃な価格のバーやレストランのクエリ結果。

次のステップ