## 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 could have been 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`.
They are used in the search condition of the `WHERE` clauses in
[Search Ads 360 Reporting API](https://developers.google.com/search-ads/reporting/query/query-structure#where_clause).

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 [below](https://developers.google.com/search-ads/reporting/query/zero-metrics#rows_returned)).

Segmenting a report is done by including any `segments` field in the search
query. 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 for which a query returns zero metrics for **all** selected metrics are
excluded from your reports by default. Custom Columns don't apply.

In this example query, if there are no `impressions` metrics for any day in the
last 30 days, the row for that day will be omitted from the report.

    SELECT
      campaign.name,
      metrics.impressions,
      segments.date
    FROM campaign
    WHERE segments.date DURING LAST_30_DAYS

In this example query, the row for any day will only be excluded from your
results if there are zero `impressions`, `clicks` **and** `conversions` metrics
for that day.

    SELECT
      campaign.name,
      metrics.impressions,
      metrics.clicks,
      metrics.conversions,
      segments.date
    FROM campaign
    WHERE segments.date DURING LAST_30_DAYS