В этом руководстве объясняется, почему в отчетах Google Ads API появляются строки с нулевыми показателями и как исключить или обработать их в запросах.
Нулевые показатели в результатах поиска
При выполнении запроса вы можете столкнуться с нулевыми значениями показателей для объектов. Возможные причины:
- Объекты не подходят для показа.
- Они были приостановлены в течение диапазона дат отчета.
В результатах запросов часто требуется получить информацию об эффективности кампаний. В этом контексте нулевые показатели могут быть нежелательны. Чтобы отчет был более полезным, вы можете исключить нулевые показатели.
Как исключить нулевые показатели с помощью предиката
Предикат – это выражение, которое принимает значение TRUE, FALSE или UNKNOWN.
Предикаты используются в условиях поиска в предложениях WHERE в языке запросов Google Рекламы.
В следующем запросе показано, как явно удалить нулевые показатели с помощью предиката:
SELECT
campaign.id,
metrics.impressions
FROM campaign
WHERE metrics.impressions > 0
Как исключить нулевые показатели с помощью сегментирования
При сегментировании отчета нулевые показатели всегда исключаются, если все выбранные показатели равны нулю (см. раздел Строки с нулевыми показателями).
Чтобы сегментировать отчет, добавьте любое поле segments в условие SELECT поискового запроса. Если вы отфильтруете базовый сегмент дат в условии WHERE, не выбрав его в условии SELECT, отчет не будет сегментирован. Например, если вы сегментируете отчет по параметру segments.date, показатели будут разбиты по строкам для каждой даты. Даты, для которых нет показателей, в отчет не включаются.
В отчете по следующему запросу не будет строк с нулевыми показателями:
SELECT
campaign.name,
metrics.impressions,
segments.date
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Возвращенные строки с нулевыми показателями
Строки, в которых все выбранные показатели равны нулю, не будут возвращены при сегментировании. Например, рассмотрим следующий запрос, который выбирает metrics.impressions, metrics.clicks и 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'
В итоговом отчете не будет строк, в которых все три выбранных показателя равны нулю, но будут строки, в которых хотя бы один из трех выбранных показателей больше нуля.
При запросе статистики за период, превышающий срок хранения данных, подробные данные за период более 37 месяцев будут недоступны и строки не будут возвращены. Запросы подробных сегментов дат (segments.date, segments.week и segments.hour) для диапазонов более 37 месяцев возвращают ошибку DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED в версии 24 и более поздних (или DateRangeError.UNKNOWN в версии 23). Обобщенные агрегированные данные (segments.month, segments.quarter и segments.year) хранятся в течение 11 лет, начиная со следующего полного календарного периода. Например, если 11-летний период ретроспективного анализа заканчивается 2015-03-22 (или 2015-03-01), то ежемесячные данные доступны начиная с первого полного календарного месяца после окончания периода (2015-04-01). Подробнее о диапазонах дат…
Скрытие показателей охвата и нулевые значения
Помимо объектов, для которых не было выполненных показов, показатели охвата (например, metrics.unique_users и показатели частоты показов metrics.unique_users_two_plus–metrics.unique_users_ten_plus) могут быть равны нулю или отсутствовать, если данные об охвате не учитываются. Показатель metrics.unique_users (и metrics.unique_users_info) поддерживается в медийных и видеокампаниях, а также в кампаниях для приложений и для создания спроса. Показатели диапазона частоты показов metrics.unique_users_*_plus (и metrics.unique_users_*_plus_info) применяются к видеокампаниям.
Охват может быть ограничен по нескольким причинам:
- Пороговые значения конфиденциальности. Данные об охвате не показываются, если количество пользователей не соответствует пороговым значениям конфиденциальности (например, k-анонимности), которые нужны для защиты идентификационных данных пользователей.
- Пороги качества. Данные об охвате могут не показываться, если они не соответствуют стандартам качества.
- Хранение данных. Статистика охвата хранится в течение трех лет (36 месяцев). Запросы, охватывающие даты за пределами этого 3-летнего периода хранения, не могут возвращать показатели охвата. Запросы, охватывающие даты от 36 до 37 месяцев назад, выполняются без возврата
DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED, описанного в предыдущем разделе, но они пропускают показатели охвата (и возвращаютDATE_RANGE_BEYOND_RETENTION, когда выбраны метаданные сопутствующего охвата).
В версии 26 и более поздних у каждого показателя охвата уникальных пользователей есть сопутствующее поле метаданных типа ReachMetricInfo (например, metrics.unique_users_info и metrics.unique_users_two_plus_info–metrics.unique_users_ten_plus_info).
В языке запросов Google Рекламы (GAQL) поля сопутствующего охвата – это показатели MESSAGE, выбранные непосредственно в пункте SELECT (например, metrics.unique_users_info). Не добавляйте .reach_metric_states в пункт SELECT, поскольку выбор вложенных полей сообщений в GAQL приводит к ошибке UNRECOGNIZED_FIELD. Вместо этого при выборе metrics.unique_users_info возвращается сообщение ReachMetricInfo, содержащее повторяющееся поле перечисления reach_metric_states типа ReachMetricState, которое описывает, был ли показатель скрыт или он полный.
Если показатель охвата скрыт или находится за пределами окна хранения (PRIVACY_SUPPRESSION, QUALITY_SUPPRESSION или DATE_RANGE_BEYOND_RETENTION), его поле optional int64 в Metrics не задано (что соответствует 0, если наличие поля не проверяется), а в LOW_QUALITY по-прежнему указывается числовой показатель:
COMPLETE– показатель охвата полный, без исключений.PRIVACY_SUPPRESSION: данные об охвате скрыты для защиты конфиденциальности.QUALITY_SUPPRESSION: данные об охвате скрыты из-за проблем с качеством.LOW_QUALITY– показатель охвата рассчитан, но помечен как низкокачественный.DATE_RANGE_BEYOND_RETENTION: показатели охвата недоступны, поскольку выбранный диапазон дат выходит за пределы трехлетнего срока хранения данных об охвате.
Выбрав показатель охвата и связанное с ним поле метаданных, вы сможете различать нулевой охват и скрытые значения охвата.
SELECT
campaign.id,
campaign.name,
metrics.unique_users,
metrics.unique_users_info,
metrics.unique_users_two_plus,
metrics.unique_users_two_plus_info,
metrics.unique_users_ten_plus,
metrics.unique_users_ten_plus_info
FROM campaign
WHERE campaign.advertising_channel_type = 'VIDEO'
AND segments.date DURING LAST_30_DAYS