Skip to main content
  • Label: Search (Image)
  • Description: Image search analytics.
  • Default group key: image_hash

Metrics

  • requests (requests)
    • Number of image search requests.
    • Example: COUNT_DISTINCT(requests)
  • results_count (results)
    • Results returned per search request.
    • Example: AVG(results_count)
  • total_sales (USD)
    • Gross sales from orders traced back to an image search, credited in full to that search. Shown in the dashboard as Attributed Sales. Measures line-item price after line-item discounts, in the store’s own currency: before tax and shipping, and not reduced by refunds or cancellations.
    • Example: SUM(total_sales)
  • quantity_purchased (items)
    • Number of items purchased from image search traffic.
    • Example: SUM(quantity_purchased)
  • view_sessions (sessions)
    • Distinct sessions in which a product was viewed from image search results. Counts sessions, not views. Shown in the dashboard as Viewing Sessions.
  • cart_sessions (sessions)
    • Sessions where a product from image search results was added to cart.
  • quantity_added_to_cart (items)
    • Items added to cart from image search results.
  • avg_click_depth (position)
    • Average deepest result position clicked in each tracked image search response.
    • Example: SHOW avg_click_depth
  • max_click_depth (position)
    • Deepest result position clicked in a tracked image search response during the period.
    • Example: SHOW max_click_depth
  • click_depth_requests (requests)
    • Image search responses with a tracked click position. This is the sample count for click-depth metrics, not a count of sessions or all requests.
    • Example: SHOW click_depth_requests
  • avg_view_depth (position)
    • Average deepest result position viewed in each tracked image search response.
    • Example: SHOW avg_view_depth
  • max_view_depth (position)
    • Deepest result position viewed in a tracked image search response during the period.
    • Example: SHOW max_view_depth
  • view_depth_requests (requests)
    • Image search responses with a tracked view position. This is the sample count for view-depth metrics, not a count of sessions or all requests.
    • Example: SHOW view_depth_requests
  • filtered_requests (requests)
    • Distinct image search requests where the shopper applied at least one filter. Filters injected by a request transform do not count.
    • Example: COUNT_DISTINCT(filtered_requests)
  • filter_usage_rate (rate)
    • Share of image search requests with filters applied. Computed as filtered_requests / requests.
    • Example: SHOW filter_usage_rate
  • filtered_zero_results (requests)
    • Filtered image search requests that returned no products.
    • Example: COUNT_DISTINCT(filtered_zero_results)
  • filtered_zero_result_rate (rate)
    • Share of filtered image search requests with zero results. Computed as filtered_zero_results / filtered_requests.
    • Example: SHOW filtered_zero_result_rate
  • ctr (rate)
    • Click-through rate: share of image search requests with at least one product click.
    • Example: SHOW ctr
  • atc_rate (rate)
    • Add-to-cart rate: share of image search requests with at least one add to cart.
    • Example: SHOW atc_rate
  • cvr (rate)
    • Conversion rate: share of clicked image search requests that produced an order.
    • Example: SHOW cvr
  • purchase_rate (rate)
    • Share of image search requests that produced an order.
    • Example: SHOW purchase_rate
  • aov (USD)
    • Average order value: blended revenue divided by blended order credit.
    • Example: SHOW aov
  • rpi (USD)
    • Revenue per impression: blended revenue divided by engagement-covered image search requests.
    • Example: SHOW rpi
  • hover_rate (rate)
    • Product hovers divided by product impressions.
    • Example: SHOW hover_rate
  • touch_rate (rate)
    • Product touches divided by product impressions.
    • Example: SHOW touch_rate
Result depth uses the deepest tracked product or content click or impression for each response. Positions include pagination offsets. Only responses with a valid tracked position contribute; missing tracking is NULL, not zero. App-channel responses are excluded. These metrics measure result position, not page scrolling or depth across a shopper’s whole visit.
Rates are computed over requests on channels that emit engagement events. Channels that record impressions but never emit click, cart, or purchase events (such as the mobile app) are excluded from the denominator, so each rate is the share observed on instrumented traffic. Every rate’s numerator is a subset of its denominator, so a rate can never exceed 100%. A rate returns NULL (an empty value) when its denominator is zero (for example, cvr on a row with requests but no clicks), rather than 0 or 100%.

Dimensions

  • image_hash: Hashed representation of the image query.
  • num_results: Number of results returned.
  • shopping_channel: The shopping channel (web or app).
  • locale: Storefront locale code active for the request (e.g., en, fr, pt-br).
  • currency: ISO 4217 currency code applied to the request (e.g., USD, EUR).
  • session_returning: Session type — new or returning.
  • customer_state: Whether the shopper is authenticated — signed_in or guest.
  • customer_returning: Customer type — new or returning, based on prior order count.
  • b2b_company: Shopify B2B company location identifier for the signed-in company account.
  • billable: Whether this request is counted for billing.
  • attribution_token: Token used to attribute downstream events/purchases.
  • experiment_id: Experiment identifier.
  • experiment_group: Experiment group/variant.
  • device: Device category.
  • os: Operating system.
  • geo_country: Two-letter country code.
  • geo_state: Up to three-letter province code.
  • geo_city: City name as captured.
  • marketing_source: UTM source.
  • marketing_medium: UTM medium.
  • marketing_campaign: UTM campaign.
  • filter_property: The shopper-applied filter property (for example, option.color, metafield.custom.material). Transform-injected filters are excluded.
  • filter_operator: The operator used for the selection (in, notIn, eq, neq, range, geo, etc.).
  • filter_value: The selected value. Populated for in, notIn, eq, and neq; NULL for range and geo operators, which emit one row per request without values.
  • filter_name: Display-only merchant label for the filter property, resolved from the attribute’s nickname. Group by filter_property to populate this label.
Grouping by a filter dimension explodes each request into one row per selected value. SUM(requests) and other request-denominated sums will overcount; use COUNT_DISTINCT(filtered_requests) to count distinct requests. Grouping or segmenting by a filter dimension also disables the filter_usage_rate and filtered_zero_result_rate ratios. Use COUNT_DISTINCT(filtered_requests) (or filtered_zero_results) directly instead.

Examples

Image search requests by country (last 7 days)
Image search conversion by device (this month)

Next steps