Page Summary
-
Zero metrics in search results can occur if entities are ineligible for display or were paused within the report's date range.
-
You can explicitly exclude zero metrics using a predicate in the
WHEREclause of your Google Ads Query Language query. -
Zero metrics are always excluded when segmenting a report if all selected metrics are zero.
-
Rows where all selected metrics are zero will not be returned in search results.
This guide explains why rows with zero metrics appear in Google Ads API reports and how to exclude or handle them in your queries.
Zero metrics in search results
When you execute a query, you may encounter metrics for entities that are zero. This could be because:
- The entities are ineligible for display.
- They were paused within the report's date range.
With query results, you often want to obtain information about how your campaigns are performing. In this context, zero metrics may not be desirable. To produce a more useful report, you can explicitly exclude zero metrics.
Exclude zero metrics with a predicate
A predicate is an expression that evaluates to TRUE, FALSE, or UNKNOWN.
Predicates are used in the search condition of the WHERE clauses in
Google Ads Query Language.
The following query demonstrates how to explicitly remove zero metrics with a predicate:
SELECT
campaign.id,
metrics.impressions
FROM campaign
WHERE metrics.impressions > 0
Exclude zero metrics by segmenting
Zero metrics are always excluded when segmenting a report, provided all selected metrics are zero (see Returned rows with zero metrics).
Segmenting a report is done by including any segments field in the SELECT
clause of the search query (filtering on a core date segment in WHERE without
selecting it in SELECT does not segment the report). For example, if you
segment a report by segments.date, metrics are broken down with one row for
each date. Dates with no metrics are not returned in such a report.
For the following query, the report won't include zero-metric rows:
SELECT
campaign.name,
metrics.impressions,
segments.date
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Returned rows with zero metrics
Rows whose selected metrics are all zero won't be returned when segmenting. For
example, consider the following query that selects metrics.impressions,
metrics.clicks, and metrics.conversions:
SELECT
ad_group_criterion.criterion_id,
metrics.impressions,
metrics.clicks,
metrics.conversions,
segments.date
FROM keyword_view
WHERE segments.date BETWEEN '2026-01-01' AND '2026-01-31'
The resulting report won't contain any rows in which all three selected metrics are zero, but it will return rows where at least one of the three selected metrics is greater than zero.
When querying historical data beyond the
data retention period, granular data older than 37 months is
unavailable and won't return rows. Requests for granular date segments
(segments.date, segments.week, and segments.hour) covering ranges older
than 37 months return DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED
in v24 and later (or DateRangeError.UNKNOWN in v23). High-level aggregated
data (segments.month, segments.quarter, and segments.year) is retained for
11 years, aligned to the start of the next complete calendar period. For
example, if the 11-year lookback cutoff falls on 2015-03-22 (or 2015-03-01),
monthly data is available starting from the first full calendar month after the
cutoff (2015-04-01). See Date Ranges for details.