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
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.