Zero Impressions

Zero impressions in search results

When you execute a query, you may encounter impression metrics for entities that have not been viewed. 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 impression metrics may not be desirable. To produce a more useful report, you can explicitly exclude zero impressions.

Excluding zero impressions 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 Google Ads Query Language.

The following query demonstrates how to explicitly remove zero impressions with a predicate:

SELECT
  campaign.id,
  metrics.impressions
FROM campaign
WHERE metrics.impressions > 0

Excluding zero impressions by segmenting

Zero impressions are always excluded when segmenting a report, provided all metrics are zero (see below).

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 will be broken down with one row for each date. Any date that has no impressions will not returned in such a report.

For the following query, the report will not include zero impression rows:

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

Rows where all selected metrics are zero may still be returned

Take this example:

SELECT
  ad_group_criterion.criterion_id,
  metrics.impressions,
  metrics.clicks,
  metrics.conversions,
  segments.date
FROM keyword_view
WHERE segments.date BETWEEN <date1> AND <date2>

In the resulting report, rows where all three selected metrics are zero may not be filtered. If any metric is non-zero, even those not explicitly selected, a row is returned.