Write a query using brands data

Places Insights provides brand information for many categories of places. For example:

  • For the category of "ATMs, Banks, and Credit Unions", the brands data contains an entry for each of the brands PNC, UBS, and Chase banks.
  • For the category "Automotive Rentals", the data contains an entry for each of the brands Budget, Hertz, and Thrifty.

A typical use case for querying the brands dataset is to analyze brand presence or join it with the places dataset 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 brands of a specific category, such as "Fitness" or "Gas Station", in the area?

About the brands dataset

The brands dataset is supported in the US, the United Kingdom, Australia, and Canada. For example, the brands dataset for the US is named places_insights___us.brands.

Brands dataset schema

The schema for the brands dataset defines three fields:

  • id: The brand ID.
  • name: The brand name, such as "Hertz" or "Chase".
  • category: The brand type, such as "Gas Station", "Food and Drink", or "Lodging". For a list of possible values, see Category values.

Query brands data

The recommended method to analyze brands data is using Places Count Functions. Places Count functions natively support filtering by brand IDs using the brand_ids parameter, returning exact counts (including zero) and sample Place IDs without requiring complex SQL JOIN operations.

Step 1: Find the brand ID

The places dataset schema defines the brand_ids field. If a place in the places dataset is associated with a brand, its brand_ids field contains the corresponding brand ID.

To filter by a brand, first query the brands table to find the corresponding brand ID for the brand of interest:

SELECT id, name
FROM PROJECT_NAME.places_insights___us.brands
WHERE name = "McDonald's"

Step 2: Use brand_ids in a Places Count function

After obtaining the brand ID, pass it into the brand_ids filter parameter.

In this example, you query the density of McDonald's restaurants within 2,000 meters of the Empire State Building in New York City using PLACES_COUNT_PER_H3:

SELECT *
FROM PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_H3(
  JSON_OBJECT(
      'geography', ST_BUFFER(ST_GEOGPOINT(-73.9857, 40.7484), 2000),
      'business_status', ['OPERATIONAL'],
      'brand_ids', ["13992718219781496405"], -- McDonald's brand ID
      'h3_resolution', 8
  )
);

You can also use PLACES_COUNT_V2 to batch-count brand locations across custom search areas:

SELECT *
FROM PROJECT_NAME.places_insights___us.PLACES_COUNT_V2(
  TABLE PROJECT_NAME.YOUR_DATASET.my_search_areas,
  JSON_OBJECT(
      'geography_radius', 2000,
      'business_status', ['OPERATIONAL'],
      'brand_ids', ["13992718219781496405"]
  )
);

Category values

The category field for a brand can contain the following values:

Category type value
ATMs, Banks and Credit Unions
Automotive and Parts Dealers
Automotive Rentals
Automotive Services
Dental
Electric Vehicle Charging Stations
Electronics Retailers
Fitness
Food and Drink
Gas Station
Grocery and Liquor
Health and Personal Care Retailers
Hospital
Lodging
Merchandise Retail
Movie Theater
Parking
Telecommunications