本指南說明 Google Ads API 報表中出現指標為零的資料列的原因,以及如何在查詢中排除或處理這些資料列。
搜尋結果中的零指標
執行查詢時,您可能會遇到實體指標為零的情況。可能的原因如下:
- 實體不符合顯示資格。
- 在報表日期範圍內暫停。
您通常會想透過查詢結果,取得廣告活動成效的相關資訊。在這種情況下,指標為零可能不符合預期。如要產生更實用的報表,可以明確排除零指標。
使用述詞排除零指標
述詞是評估為 TRUE、FALSE 或 UNKNOWN 的運算式。述詞用於 Google Ads 查詢語言中 WHERE 子句的搜尋條件。
下列查詢示範如何使用述詞明確移除零指標:
SELECT
campaign.id,
metrics.impressions
FROM campaign
WHERE metrics.impressions > 0
透過區隔排除零指標
如果所有選取的指標都是零,則在區隔報表時,一律會排除零指標 (請參閱「傳回零指標的資料列」)。
如要區隔報表,請在搜尋查詢的 SELECT 子句中加入任何 segments 欄位 (在 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 個月,則在 v24 以上版本會傳回 DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED (在 v23 則傳回 DateRangeError.UNKNOWN)。高層級匯總資料 (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 匿名性),系統會隱藏觸及資料,保護使用者身分。
- 品質門檻:如果觸及資料不符合品質標準,系統可能會不予提供。
- 資料保留:歷來觸及資料會保留 3 年 (36 個月)。如果查詢日期超出 3 年保留期限,就無法傳回觸及指標。如果查詢涵蓋 36 到 37 個月
前的日期,雖然會成功,但不會傳回
上一節所述的
DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED,而是會省略觸及指標 (如果選取隨播廣告觸及中繼資料,則會傳回DATE_RANGE_BEYOND_RETENTION)。
在 v26 以上版本中,每個不重複使用者觸及指標都有一個 ReachMetricInfo 類型的隨附中繼資料欄位 (例如 metrics.unique_users_info 和 metrics.unique_users_two_plus_info 到 metrics.unique_users_ten_plus_info)。
在 Google Ads 查詢語言 (GAQL) 中,隨播觸及欄位是直接在 SELECT 子句中選取的 MESSAGE 指標 (例如 metrics.unique_users_info)。請勿在 SELECT 子句中附加 .reach_metric_states,因為在 GAQL 中選取巢狀訊息欄位會失敗,並顯示 UNRECOGNIZED_FIELD。相反地,選取 metrics.unique_users_info 會傳回 ReachMetricInfo 訊息,其中包含 ReachMetricState 類型的重複列舉欄位 reach_metric_states,說明指標是否遭到抑制或已完成。
每當觸及指標遭到抑制或超出保留期 (PRIVACY_SUPPRESSION、QUALITY_SUPPRESSION 或 DATE_RANGE_BEYOND_RETENTION) 時,Metrics 上的 optional int64 欄位就不會設定 (如果未檢查欄位是否存在,則會評估為 0),而 LOW_QUALITY 仍會填入數值指標:
COMPLETE:觸及指標資料完整,未經抑制。PRIVACY_SUPPRESSION:基於隱私權限制,系統已隱藏觸及資料。QUALITY_SUPPRESSION:由於資料品質問題,觸及資料遭到隱藏。LOW_QUALITY:已計算觸及指標,但標記為品質不佳。DATE_RANGE_BEYOND_RETENTION:日期範圍超出觸及資料的 3 年資料保留期限,因此無法提供觸及指標。
同時選取觸及指標和隨附的中繼資料欄位,應用程式就能區分真正的零觸及和遭隱藏的觸及值:
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