Places Insights overview

Places Insights makes available to you Google Map's rich places and brands data in Analytics Hub and BigQuery to derive statistical insights about Google Maps' places data. The data is deployed in BigQuery data clean rooms which provide a secure environment for data sharing.

About places data

Google Maps curates places data for millions of establishments worldwide. Places Insights makes places data available in BigQuery so that you can derive aggregated insights about Google Maps' places data based on a variety of attributes such as place types, ratings, store hours, wheelchair accessibility, and more.

To use Places Insights you write SQL queries in BigQuery that returns statistical insights about places data. These insights let you answer questions such as:

  • How many similar businesses are operating near a potential new store location?
  • What kinds of businesses are most commonly found near my most successful stores?
  • Are there any areas with a high concentration of complementary businesses that could attract my target customers?
  • Where should I place outdoor advertising to reach my target audience?
  • How many 5 star sushi restaurants are open at 8pm in Madrid, have wheelchair accessible parking, and offer takeout?

The aggregation data can support your site selection and location performance evaluation use cases, where:

  • Site selection is the process of evaluating and choosing the most suitable locations for a new business or placement of a physical asset

  • Location performance evaluation is the assessment for what variables, such as proximity to certain geospatial characteristics like POIs, affect positive or negative performance of your locations.

About brands data

Along with the places data, Places Insights includes data about brands, or stores that have multiple locations that operate under the same brand name.

You can use brands to answer questions such as:

  • What is the count of all stores by brand in an area?
  • What is the count of my top three competitor brands in the area?
  • What is the count of all of the coffee shops excluding these brands in this area?

About BigQuery

By storing data in BigQuery clean rooms, Places Insights lets you:

  • Securely combine your data with Places Insights data. You can store your proprietary data in a BigQuery data clean room alongside the places data.

  • Write flexible SQL queries to uncover aggregated insights for your specific business needs.

  • Use the same BigQuery tools that you are already using with your private data.

  • Let BigQuery handle massive datasets with ease so you can analyze data at scale.

Example use case

This example joins your data with Places Insights data in BigQuery to derive aggregation information. For this example, you are a hotel owner in New York City, with multiple locations. You now want to join your hotel location data with Places Insights data to discover the concentration of predefined business types near your hotels.

Prerequisites

For this example, you subscribe to the Places Insights dataset for the United States.

Your hotel dataset is named mydata and defines the locations of your two hotels in New York City. The following SQL creates this dataset:

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) );

Get the count of restaurants in the area

To give your customers an idea of the density of operational restaurants near your hotels, you write a SQL query to return the number of restaurants within 1000 meters of each hotel:

SELECT WITH AGGREGATION_THRESHOLD h.name, COUNT(*) AS count
FROM `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

The following image shows an example output to this query:

Query results for counting restaurants within 1000 meters from each hotel.

Get the count of restaurants and bars in the area

Modify your query to include bars along with restaurants within 1000 meters of each hotel:

SELECT WITH AGGREGATION_THRESHOLD h.name, r.primary_type, COUNT(*) AS count
FROM `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

The following image shows an example output to this query:

Query results for counting restaurants and bars within 1000 meters from each hotel.

Get the count of moderately priced restaurants and bars in the area

You next want to know which customer demographic is served by the bars and restaurants. Because your hotels target a moderate price point, you only want to advertise the existence of nearby establishments that are at that price point and are well reviewed.

Restrict the query to only return bars and restaurants if they are at the PRICE_LEVEL_MODERATE price point, and rated 4 stars or above. This query also extends the radius to 1500 meters around each hotel:

SELECT WITH AGGREGATION_THRESHOLD h.name, r.primary_type, COUNT(*) AS count
FROM `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

The following image shows an example output to this query:

Query results for moderately priced bars and restaurants within 1500 meters from each hotel.

What's next