Places Insights を使用すると、Google マップの豊富な場所とブランドのデータを分析して、Google マップの場所または地図スポット(POI)データから統計情報を得ることができます。データは、BigQuery データ エクスチェンジのリスティングを使用してデプロイされ、データ保護が実施されているため、データ共有と分析のための安全で保護された環境が実現します。
プレイス データについて
Google マップは、世界中の数百万の施設に関する場所データをキュレートしています。Places Insights は、BigQuery でプレイスデータを利用できるようにします。これにより、プレイスの種類、評価、営業時間、車椅子対応など、さまざまな属性に基づいて Google マップのプレイスデータに関する集約された分析情報を得ることができます。
Places Insights を使用するには、BigQuery でSQL クエリを記述します。このクエリは、スポットデータに関する統計分析情報を返します。これらの分析情報を使用すると、次のような質問に答えることができます。
- 新しい店舗の候補地の近くで、類似のビジネスがいくつ営業しているか。
- 最も成功している店舗の近くには、どのような種類のビジネスが最も多く見られますか?
- ターゲット顧客を引き付ける可能性のある補完的なビジネスが集中しているエリアはどこですか?
- マドリードで午後 8 時に営業しており、車椅子で利用できる駐車場があり、テイクアウトができる 5 つ星の寿司店は何軒ありますか?
集計データは、次のようなさまざまなユースケースに対応できます。
- サイトの選択: 新しいビジネスや物理的なアセットの配置に最適な場所を評価、選択します。
- 店舗のパフォーマンス評価: スーパーマーケットやイベント会場などの特定の種類の POI までの距離など、どの地理空間変数が店舗のパフォーマンスの高さ / 低さに影響するかを特定します。
- 地域ターゲティング マーケティング: ある地域でどのようなマーケティング キャンペーンや広告が成功するかを判断します。
- 売上予測: 見込みのある店舗の将来の売上を予測します。
- 市場調査: 次にビジネスやサービスを拡大する地域を特定します。
ブランドデータについて
プレイス データに加えて、プレイス分析情報には、同じブランド名で複数の店舗を運営しているブランドや店舗に関するデータも含まれます。
ブランドを使用すると、次のような疑問を解決できます。
- あるエリアのブランド別の店舗数を教えてください。
- このエリアで上位 3 つの競合他社ブランドの数はどれくらいですか?
- このエリアにあるコーヒー ショップのうち、これらのブランド以外の店舗の数はいくつですか?
BigQuery について
BigQuery リスティングでデータを利用できるようにすることで、Places Insights では次のことが可能になります。
自社のデータと 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) );
エリア内のレストランの数を取得する
ホテル周辺の営業中のレストランの密度を顧客に伝えるため、SQL クエリを記述して、各ホテルから 1, 000 メートル以内のレストランの数を返します。
SELECT WITH AGGREGATION_THRESHOLD h.name, COUNT(*) AS count FROM `PROJECT_NAME.places_insights___us___sample.places_sample` 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 メートル以内のレストランに加えてバーも取得します。
SELECT WITH AGGREGATION_THRESHOLD h.name, r.primary_type, COUNT(*) AS count FROM `PROJECT_NAME.places_insights___us___sample.places_sample` 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
次の画像は、このクエリの出力例を示しています。
エリア内の中価格帯のレストランとバーの数を取得する
次に、バーやレストランがどの顧客層にサービスを提供しているかを確認します。ホテルが中価格帯をターゲットにしているため、その価格帯で評価の高い近隣の施設のみを宣伝したい。
価格帯が PRICE_LEVEL_MODERATE
で、評価が 4 つ星以上のバーとレストランのみを返すようにクエリを制限します。このクエリでは、各ホテルの半径を 1,500 メートルに拡大しています。
SELECT WITH AGGREGATION_THRESHOLD h.name, r.primary_type, COUNT(*) AS count FROM `PROJECT_NAME.places_insights___us___sample.places_sample` 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
次の画像は、このクエリの出力例を示しています。