---
title: shop_product_impressions
description: >-
  Reference for the ShopifyQL `shop_product_impressions` schema. Every metric
  and dimension, paired with worked example queries.
api_version: 2026-10
source_url:
  html: >-
    https://shopify.dev/docs/api/shopifyql/latest/schemas/sessions_and_behavior/shop_product_impressions
  md: >-
    https://shopify.dev/docs/api/shopifyql/latest/schemas/sessions_and_behavior/shop_product_impressions.md
api_name: shopifyql
---

# shop\_​product\_​impressions

The `shop_product_impressions` [schema](https://shopify.dev/docs/api/shopifyql/latest/schemas) captures product impressions in the Shop channel. It's the Shop-channel source for product reporting by product and impression time.

### Use cases

* **Impressions by product**: Group [`shop_product_impressions`](#shopproductimpressionsmetric-propertydetail-shopproductimpressions) by [`product_id`](#shopproductimpressionsdimension-propertydetail-productid) to rank products by exposure on Shop.
* **Impression trend**: Trend [`shop_product_impressions`](#shopproductimpressionsmetric-propertydetail-shopproductimpressions) by month to see how product exposure on Shop changes over time.

### Examples

* #### Rank products by impressions over the last 30 days

  ##### Description

  Rank the top 50 products over the last 30 days by \[\`shop\_product\_impressions\`]\(#shopproductimpressionsmetric-propertydetail-shopproductimpressions). This example ranks on impressions alone, without a conversion metric.

  ##### ShopifyQL

  ```shopifyql
  FROM shop_product_impressions
    SHOW shop_product_impressions
    GROUP BY product_title
    SINCE startOfDay(-30d) UNTIL today
    ORDER BY shop_product_impressions DESC
    LIMIT 50
  VISUALIZE shop_product_impressions TYPE bar
  ```

* #### Map impressions by day and hour this year

  ##### Description

  Show \[\`shop\_product\_impressions\`]\(#shopproductimpressionsmetric-propertydetail-shopproductimpressions) by day of week and hour of day this year. This example uses \`TYPE heatmap\` to render the two-dimension grouping as a color-coded grid, so peak impression windows stand out.

  ##### ShopifyQL

  ```shopifyql
  FROM shop_product_impressions
    SHOW shop_product_impressions
    GROUP BY day_of_week, hour_of_day WITH TOTALS
    SINCE this_year UNTIL today
    ORDER BY day_of_week ASC, hour_of_day ASC
  VISUALIZE shop_product_impressions TYPE heatmap
  ```

* #### Track weekly product impressions against last quarter

  ##### Description

  Track weekly \`shop\_product\_impressions\` this quarter, each week compared to the quarter before. This example uses \[\`COMPARE TO previous\_period\`]\(/docs/api/shopifyql/latest/syntax/compare-to) to benchmark your date range against the equal-length period right before it.

  ##### ShopifyQL

  ```shopifyql
  FROM shop_product_impressions
    SHOW shop_product_impressions
    TIMESERIES week WITH PERCENT_CHANGE
    DURING this_quarter
    COMPARE TO previous_period
    ORDER BY week ASC
  VISUALIZE shop_product_impressions TYPE bar
  ```

* #### Track weekly product impressions last quarter

  ##### Description

  Track weekly \`shop\_product\_impressions\` across last quarter. This example uses \[\`WITH TOTALS\`]\(/docs/api/shopifyql/latest/syntax/with#total-columns) to add a total for last quarter beside the weekly rows.

  ##### ShopifyQL

  ```shopifyql
  FROM shop_product_impressions
    SHOW shop_product_impressions
    TIMESERIES week WITH TOTALS
    DURING last_quarter
    ORDER BY week ASC
  VISUALIZE shop_product_impressions TYPE line
  ```

***

## Metrics

Counts and calculations that let you track key business indicators. Metrics show up as the columns when queried.

Metrics you can use when querying `FROM shop_product_impressions`.

* **shop\_​product\_​impressions**

  **INTEGER**

  One impression means one product view in Shopify's Shop app channel.

### INTEGER

Whole number without decimal places, used for counts and quantities

```ts
```

***

## Dimensions

Attributes of your data that let you look more granularly at aspects of the data. Group and filter by dimensions to shape the rows your query returns.

Dimensions you can use when querying `FROM shop_product_impressions`.

* **day**

  **DAY\_TIMESTAMP**

  The day when a product view in the Shop app occurred.

* **day\_​of\_​week**

  **DAY\_OF\_WEEK**

  The recurring day of the week when a product view in the Shop app occurred, with values Monday through Sunday.

* **hour**

  **HOUR\_TIMESTAMP**

  The hour when a product view in the Shop app occurred.

* **hour\_​of\_​day**

  **HOUR\_OF\_DAY**

  The recurring hour of the day when a product view in the Shop app occurred, with values 0 through 23.

* **minute**

  **MINUTE\_TIMESTAMP**

  The minute when a product view in the Shop app occurred.

* **month**

  **MONTH\_TIMESTAMP**

  The month when a product view in the Shop app occurred.

* **month\_​of\_​year**

  **MONTH\_OF\_YEAR**

  The recurring month of the year when a product view in the Shop app occurred, with values 1 through 12.

* **product\_​id**

  **IDENTITY**

  Use [`product_id`](#shopproductimpressionsdimension-propertydetail-productid) with [`product_title`](#shopproductimpressionsdimension-propertydetail-producttitle) to show readable labels.

* **quarter**

  **QUARTER\_TIMESTAMP**

  The quarter when a product view in the Shop app occurred.

* **second**

  **SECOND\_TIMESTAMP**

  The second when a product view in the Shop app occurred.

* **shop\_​id**

  **IDENTITY**

  The unique Shopify identifier for your store. Use [`shop_id`](#shopproductimpressionsdimension-propertydetail-shopid) with [`shop_name`](#shopproductimpressionsdimension-propertydetail-shopname) to show readable store labels.

* **week**

  **WEEK\_TIMESTAMP**

  The week when a product view in the Shop app occurred.

* **week\_​of\_​year**

  **WEEK\_OF\_YEAR**

  The recurring week of the year when a product view in the Shop app occurred, with values 1 through 53.

* **year**

  **YEAR\_TIMESTAMP**

  The year when a product view in the Shop app occurred.

* **product\_​status**

  **STRING**

  The product's current publishing state, with values Active, Archived, Draft, Suspended, and Unlisted.

* **product\_​title**

  **STRING**

  Display name of the product that your customers see

* **product\_​type**

  **STRING**

  Type (category) that you've assigned to the product

* **product\_​vendor**

  **STRING**

  Vendor of the product

* **shop\_​name**

  **STRING**

  Name of your store

* **product\_​collection**

  **STRING**

  Collection associated with the product

* **product\_​collections**

  **ARRAY\<STRING>**

  Set of collections associated with the product

* **app\_​product\_​creation**

  **STRING**

  The app that created the product, shown as an app name.

* **product\_​tag**

  **STRING**

  Tag associated with the product

* **product\_​tags**

  **ARRAY\<STRING>**

  Set of tags associated with the product

### DAY\_TIMESTAMP

Date with the time of day removed

```ts
```

### DAY\_OF\_WEEK

Day of the week, used to group or filter data by weekday

```ts
```

### HOUR\_TIMESTAMP

Date and time with minutes and seconds removed

```ts
```

### HOUR\_OF\_DAY

Hour of the day, shown as a whole number from 0 to 23

```ts
```

### MINUTE\_TIMESTAMP

Date and time with seconds removed

```ts
```

### MONTH\_TIMESTAMP

Date for the start of a month

```ts
```

### MONTH\_OF\_YEAR

Month number within a year

```ts
```

### IDENTITY

Unique identifier for a Shopify resource such as a customer or order

```ts
```

### QUARTER\_TIMESTAMP

Date for the start of a fiscal quarter

```ts
```

### SECOND\_TIMESTAMP

Date and time with fractions of a second removed

```ts
```

### WEEK\_TIMESTAMP

Date for the start of a week

```ts
```

### WEEK\_OF\_YEAR

Week number within a year

```ts
```

### YEAR\_TIMESTAMP

Date for the start of a year

```ts
```

### STRING

Text made of letters, numbers, or symbols

```ts
```

### ARRAY

A list of values. The element type appears inside angle brackets, such as ARRAY\<STRING>.

```ts
```

***

## Related schemas

* [`shop_campaign_insights`](https://shopify.dev/docs/api/shopifyql/latest/schemas/marketing/shop_campaign_insights): Switch to this to see whether paid Shop Campaigns drove the exposure.

***
