重要術語
- 資源
- Google Ads 中的實體,例如
campaign或ad_group。 - 區隔
- 用來將資料分組的維度,例如
segments.date或segments.device。 如果SELECT子句中包含區隔和指標,系統會依區隔劃分指標。 - 指標
- 效能評估指標,例如
metrics.impressions或metrics.clicks。 - 歸因資源
- 與子句中的主要資源隱含聯結的資源,可讓您選取其屬性以及主要資源屬性。
FROM
查詢資源或中繼資料資訊
Google Ads 查詢語言可向 Google Ads API 查詢下列類型的資訊:
使用
GoogleAdsService「Search」或 「SearchStream」查詢資源及其相關屬性、區隔和指標:GoogleAdsService查詢的結果是GoogleAdsRow執行個體清單,每個GoogleAdsRow代表一個資源。如果要求任何屬性或指標,資料列也會包含這些欄位。如果要求任何區隔,回應也會針對每個區隔資源元組顯示額外資料列。
可用欄位和資源的中繼資料:
GoogleAdsFieldService: 這項服務提供可查詢欄位的目錄,並詳細說明欄位的相容性和類型。GoogleAdsFieldService查詢的結果是GoogleAdsField執行個體清單,每個GoogleAdsField都包含所要求欄位的詳細資料。
如要進一步瞭解查詢結構,請參閱「查詢結構」和「Google Ads 查詢語言文法」。
查詢資源屬性
以下是廣告活動資源屬性的基本查詢範例,說明如何傳回廣告活動 ID、名稱和狀態:
SELECT
campaign.id,
campaign.name,
campaign.status
FROM campaign
ORDER BY campaign.id
這項查詢會依廣告活動 ID 排序。每個產生的 GoogleAdsRow 都代表一個 campaign 物件,其中填入所選欄位,包括廣告活動的 resource_name。
如要瞭解廣告活動查詢可用的其他欄位,請參閱 Campaign 參考說明文件。
查詢指標
除了特定資源的所選屬性,您也可以查詢相關指標:
SELECT
campaign.id,
campaign.name,
campaign.status,
metrics.impressions
FROM campaign
WHERE campaign.status = 'PAUSED'
AND metrics.impressions > 1000
ORDER BY campaign.id
這項查詢會篩選出狀態為 PAUSED 且曝光次數超過 1000 的廣告活動,並依廣告活動 ID 排序。每個產生的 GoogleAdsRow 都會有 metrics 欄位,其中填入所選指標。
如需可查詢的指標清單,請參閱 Metrics 說明文件。
查詢區隔
除了特定資源的所選屬性,您也可以查詢相關區隔:
SELECT
campaign.id,
campaign.name,
campaign.status,
metrics.impressions,
segments.date
FROM campaign
WHERE campaign.status = 'PAUSED'
AND metrics.impressions > 1000
AND segments.date DURING LAST_30_DAYS
ORDER BY campaign.id
與查詢指標類似,這項查詢只會篩選出狀態為 PAUSED 且曝光次數超過 1000 的廣告活動。不過,這項查詢會依日期區隔資料。因此每個結果都會代表廣告活動和日期區隔的元組。GoogleAdsRow區隔會分割所選指標,並依子句中的每個區隔分組。SELECT
如需可查詢的區隔清單,請參閱 Segments 說明文件。
查詢相關資源的屬性
在特定資源的查詢中,您或許可以加入其他相關資源 (如有)。這些相關資源稱為「已歸因資源」。在查詢中選取屬性,即可隱含地加入已歸因的資源。
SELECT
campaign.id,
campaign.name,
campaign.status,
bidding_strategy.name
FROM campaign
ORDER BY campaign.id
這項查詢不僅會選取廣告活動屬性,還會從選取的每個廣告活動中提取相關屬性。每個產生的 GoogleAdsRow 代表一個 campaign 物件,其中填入所選廣告活動屬性,以及所選出價策略屬性 bidding_strategy.name。
如要瞭解廣告活動查詢可用的歸因資源,請參閱 Campaign 參考說明文件。
最佳做法
- 請只選取需要的欄位,避免回覆時間過長和逾時。
- 在開發和測試期間,請使用
LIMIT,避免處理大量結果集。 - 在
WHERE子句中套用篩選器,盡量減少資料傳輸量和回應大小。 - 建構複雜查詢前,請先使用
GoogleAdsFieldService檢查欄位相容性和資料類型。 - 請注意,部分欄位 (尤其是涉及大量資料或複雜計算的欄位) 可能會增加查詢費用。
根據查詢結果進行變動
查詢特定資源時,您可以立即將傳回的結果視為物件、修改這些物件,然後傳回該資源服務的變動方法。以下是工作流程範例:
- 針對曝光次數超過 1000 的所有
PAUSED廣告活動執行查詢。 - 從回應中每個
GoogleAdsRow的campaign欄位取得Campaign物件。 - 將每個廣告活動的狀態從「
PAUSED」變更為「ENABLED」。 - 呼叫
CampaignService.MutateCampaigns,並提供修改後的廣告活動和對應的FieldMask來更新。
欄位中繼資料
傳送至 GoogleAdsFieldService 的查詢是用於擷取欄位中繼資料。這項資訊可用於瞭解如何在查詢中一併使用這些欄位。由於 API 提供資料,以及驗證或建構查詢所需的必要中繼資料,開發人員可以透過程式輔助方式執行這項操作。以下是中繼資料的典型查詢:
SELECT
name,
category,
selectable,
filterable,
sortable,
selectable_with,
data_type,
is_repeated
WHERE name = "<INSERT_RESOURCE_OR_FIELD>"
您可以在這項查詢中,將 <INSERT_RESOURCE_OR_FIELD> 替換為資源 (例如 customer 或 campaign) 或欄位 (例如 campaign.id、metrics.impressions 或 ad_group.id)。
如需可查詢的欄位清單,請參閱 GoogleAdsField 說明文件。
版本專屬差異
雖然所有支援的 Google Ads API 版本 (v23、v24 和 v25) 的 Google Ads 查詢語言語法、子句和運算子都相同,但可查詢的資源、區隔、指標和報表行為目錄會因主要版本而異。在目標 API 版本的端點查詢 GoogleAdsFieldService,檢查該版本的欄位和相容性規則:
- 生命週期目標資源:在第 25 版和後續版本中,所有生命週期目標 (獲取新客、顧客留存率和會員留存率) 都會從統一的
goal和campaign_goal_config資源查詢,取代customer_lifecycle_goal和campaign_lifecycle_goal(在第 24 版和先前的版本中,這些資源與goal和campaign_goal_config一起用於獲取新客目標,而goal和campaign_goal_config則用於顧客留存率目標)。 - 最終到達網址擴展素材資源檢視指標:在第 25 版和後續版本中,查詢
final_url_expansion_asset_view會傳回檢視畫面的所有可選取指標。在第 24 版和更早版本中,回應只會包含最高成效廣告活動的metrics.conversions和metrics.conversions_value,以及搜尋廣告活動的metrics.impressions。 - 應用程式廣告活動的購物產品報表:在第 24 版和後續版本中,
shopping_product資源除了購物、最高成效、需求開發和影片廣告活動外,也會傳回應用程式廣告活動的產品列 (在第 23 版中,應用程式廣告活動會從shopping_product結果中排除)。 - 特定版本的資源、區隔和指標:
- 第 25 版和後續版本:包含提升評估資源 (例如
lift_measurement_config)、區隔 (例如segments.ad_sub_format_type和segments.loyalty_membership),以及 YouTube 參與度指標 (metrics.youtube_likes、metrics.youtube_comments和metrics.youtube_shares)。移除local_services_lead.contact_details.email(可在第 24 版和先前的版本中選取)。 - 24 以上版本:包含
cart_data_sales_view資源、segments.conversion_attribution_event_type(位於shopping_performance_view)、segments.mobile_device_platform和segments.ad_network_type(位於performance_max_placement_view)。移除campaign.video_brand_safety_suitability(由customer.video_brand_safety_suitability取代)、segments.ad_sub_network_type(位於campaign_budget上) 和segments.click_type(位於ad_group_asset、campaign_asset和customer_asset上,僅適用於 v23)。
- 第 25 版和後續版本:包含提升評估資源 (例如
- 精細日期回溯錯誤代碼:查詢依
segments.date、segments.week或segments.hour區隔 (或篩選每月以下日期範圍) 時,若超出 37 個月的回溯期,則在第 24 版以上會傳回DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED(或在第 23 版中傳回DateRangeError.UNKNOWN)。詳情請參閱「日期範圍」。
程式碼範例
用戶端程式庫提供在 GoogleAdsService 中使用 Google Ads 查詢語言的範例。「basic operations」資料夾包含 GetCampaigns、GetKeywords 和 SearchForGoogleAdsFields 等範例。