本指南提供了 Google Ads 查询语言 (GAQL) 查询,这些查询可返回与常见 Google Ads 界面屏幕相同的数据,并可查找地理位置常量。您可以直接使用这些查询,也可以根据报告工作流对其进行调整。
如需了解界面报告与 API 资源的更广泛映射,请参阅 Google Ads 界面中的报告。使用 Google Ads API Reporting Extension 在 Google Ads 界面中检查 API 资源和字段。使用交互式查询构建器构建和验证自定义查询。
设置 curl 环境变量
curl 标签页会向 REST searchStream 端点发送压缩的流式传输请求。在运行 curl 命令之前,请在 shell 中设置以下环境变量:
API_VERSION:不带前导v的 API 版本号(例如26)。CUSTOMER_ID:10 位数的目标客户顾客 ID,不含连字符。MANAGER_CUSTOMER_ID:10 位数的经理账号 ID(不含连字符)。如果您直接以目标客户账号身份进行身份验证,请将MANAGER_CUSTOMER_ID设置为CUSTOMER_ID或省略login-customer-id标头(请参阅登录客户 ID)。OAUTH2_ACCESS_TOKEN:有效的 OAuth 2.0 访问令牌。
复制 Google Ads 界面屏幕
本部分展示了返回与 Google Ads 界面默认屏幕相同数据的 API 查询。如果您正在构建一款应用,该应用以类似于 Google Ads 的方式显示指标和数据,那么这些查询可以帮助您从 API 中提取类似的数据。
广告系列
从 Google Ads 界面中的默认广告系列概览屏幕检索数据。
GAQL
SELECT campaign.name, campaign_budget.amount_micros, campaign.status, campaign.optimization_score, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.bidding_strategy_type FROM campaign WHERE segments.date DURING LAST_7_DAYS AND campaign.status != 'REMOVED'
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT campaign.name, campaign_budget.amount_micros, campaign.status, campaign.optimization_score, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.bidding_strategy_type FROM campaign WHERE segments.date DURING LAST_7_DAYS AND campaign.status != 'REMOVED' " } EOF
广告组
从 Google Ads 界面中的默认广告组概览屏幕检索数据。
GAQL
SELECT ad_group.name, campaign.name, ad_group.status, ad_group.type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM ad_group WHERE segments.date DURING LAST_7_DAYS AND ad_group.status != 'REMOVED'
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT ad_group.name, campaign.name, ad_group.status, ad_group.type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM ad_group WHERE segments.date DURING LAST_7_DAYS AND ad_group.status != 'REMOVED' " } EOF
Ads
从 Google Ads 界面中的默认广告概览屏幕检索数据。此查询会提取自适应搜索广告 AdTextAsset 标题和广告内容描述、最终到达网址以及广告和广告效力列的广告效力。
GAQL
SELECT ad_group_ad.ad.responsive_search_ad.headlines, ad_group_ad.ad.responsive_search_ad.descriptions, ad_group_ad.ad.final_urls, campaign.name, ad_group.name, ad_group_ad.status, ad_group_ad.policy_summary.approval_status, ad_group_ad.ad.type, ad_group_ad.ad_strength, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM ad_group_ad WHERE segments.date DURING LAST_7_DAYS AND ad_group_ad.status != 'REMOVED'
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT ad_group_ad.ad.responsive_search_ad.headlines, ad_group_ad.ad.responsive_search_ad.descriptions, ad_group_ad.ad.final_urls, campaign.name, ad_group.name, ad_group_ad.status, ad_group_ad.policy_summary.approval_status, ad_group_ad.ad.type, ad_group_ad.ad_strength, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM ad_group_ad WHERE segments.date DURING LAST_7_DAYS AND ad_group_ad.status != 'REMOVED' " } EOF
搜索广告关键字
从 Google Ads 界面中的默认搜索广告关键字概览界面检索数据。
GAQL
SELECT ad_group_criterion.keyword.text, campaign.name, ad_group.name, ad_group_criterion.system_serving_status, ad_group_criterion.keyword.match_type, ad_group_criterion.approval_status, ad_group_criterion.final_urls, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM keyword_view WHERE segments.date DURING LAST_7_DAYS AND ad_group_criterion.status != 'REMOVED'
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT ad_group_criterion.keyword.text, campaign.name, ad_group.name, ad_group_criterion.system_serving_status, ad_group_criterion.keyword.match_type, ad_group_criterion.approval_status, ad_group_criterion.final_urls, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM keyword_view WHERE segments.date DURING LAST_7_DAYS AND ad_group_criterion.status != 'REMOVED' " } EOF
搜索字词
从 Google Ads 界面中的默认搜索字词概览界面检索数据。
GAQL
SELECT search_term_view.search_term, segments.keyword.info.match_type, search_term_view.status, campaign.name, ad_group.name, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.advertising_channel_type FROM search_term_view WHERE segments.date DURING LAST_7_DAYS
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT search_term_view.search_term, segments.keyword.info.match_type, search_term_view.status, campaign.name, ad_group.name, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.advertising_channel_type FROM search_term_view WHERE segments.date DURING LAST_7_DAYS " } EOF
受众群体
从 Google Ads 界面中的默认受众群体概览屏幕中检索数据。
GAQL
SELECT ad_group_criterion.resource_name, ad_group_criterion.type, campaign.name, ad_group.name, ad_group_criterion.system_serving_status, ad_group_criterion.bid_modifier, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.advertising_channel_type FROM ad_group_audience_view WHERE segments.date DURING LAST_7_DAYS
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT ad_group_criterion.resource_name, ad_group_criterion.type, campaign.name, ad_group.name, ad_group_criterion.system_serving_status, ad_group_criterion.bid_modifier, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.advertising_channel_type FROM ad_group_audience_view WHERE segments.date DURING LAST_7_DAYS " } EOF
年龄(受众特征)
从 Google Ads 界面中的默认年龄受众特征概览屏幕中检索数据。
GAQL
SELECT ad_group_criterion.age_range.type, campaign.name, ad_group.name, ad_group_criterion.system_serving_status, ad_group_criterion.bid_modifier, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.advertising_channel_type FROM age_range_view WHERE segments.date DURING LAST_7_DAYS
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT ad_group_criterion.age_range.type, campaign.name, ad_group.name, ad_group_criterion.system_serving_status, ad_group_criterion.bid_modifier, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.advertising_channel_type FROM age_range_view WHERE segments.date DURING LAST_7_DAYS " } EOF
性别(受众特征)
从 Google Ads 界面中的默认性别受众特征概览屏幕中检索数据。
GAQL
SELECT ad_group_criterion.gender.type, campaign.name, ad_group.name, ad_group_criterion.system_serving_status, ad_group_criterion.bid_modifier, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.advertising_channel_type FROM gender_view WHERE segments.date DURING LAST_7_DAYS
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT ad_group_criterion.gender.type, campaign.name, ad_group.name, ad_group_criterion.system_serving_status, ad_group_criterion.bid_modifier, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.advertising_channel_type FROM gender_view WHERE segments.date DURING LAST_7_DAYS " } EOF
位置
从 Google Ads 界面中的默认地理位置概览屏幕检索数据。
GAQL
SELECT campaign_criterion.location.geo_target_constant, campaign.name, campaign_criterion.bid_modifier, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM location_view WHERE segments.date DURING LAST_7_DAYS AND campaign_criterion.status != 'REMOVED'
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT campaign_criterion.location.geo_target_constant, campaign.name, campaign_criterion.bid_modifier, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM location_view WHERE segments.date DURING LAST_7_DAYS AND campaign_criterion.status != 'REMOVED' " } EOF
展示位置
通过查询 managed_placement_view 资源,从 Google Ads 界面中的内容 > 展示位置屏幕检索明确指定的展示位置的数据。
GAQL
SELECT ad_group_criterion.placement.url, campaign.name, ad_group.name, ad_group_criterion.status, ad_group_criterion.bid_modifier, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM managed_placement_view WHERE segments.date DURING LAST_7_DAYS AND ad_group_criterion.status != 'REMOVED'
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT ad_group_criterion.placement.url, campaign.name, ad_group.name, ad_group_criterion.status, ad_group_criterion.bid_modifier, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM managed_placement_view WHERE segments.date DURING LAST_7_DAYS AND ad_group_criterion.status != 'REMOVED' " } EOF
展示了广告的位置
通过查询 group_placement_view 资源,从 Google Ads 界面中的内容 > 展示了广告的位置界面检索网域、移动应用和 YouTube 频道展示位置数据。
GAQL
SELECT group_placement_view.display_name, group_placement_view.target_url, group_placement_view.placement_type, campaign.name, ad_group.name, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM group_placement_view WHERE segments.date DURING LAST_7_DAYS
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT group_placement_view.display_name, group_placement_view.target_url, group_placement_view.placement_type, campaign.name, ad_group.name, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM group_placement_view WHERE segments.date DURING LAST_7_DAYS " } EOF
展示位置详细信息
通过查询 detail_placement_view 资源,从 Google Ads 界面中的内容 > 展示了广告的位置 > 查看详情中检索网址级和视频级展示位置指标。
GAQL
SELECT detail_placement_view.display_name, detail_placement_view.target_url, detail_placement_view.group_placement_target_url, detail_placement_view.placement_type, campaign.name, ad_group.name, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM detail_placement_view WHERE segments.date DURING LAST_7_DAYS
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT detail_placement_view.display_name, detail_placement_view.target_url, detail_placement_view.group_placement_target_url, detail_placement_view.placement_type, campaign.name, ad_group.name, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM detail_placement_view WHERE segments.date DURING LAST_7_DAYS " } EOF
效果最大化广告系列展示位置
通过查询 performance_max_placement_view 资源,从数据洞见和报告 > 报告编辑器中的效果最大化广告系列展示位置预定义报告中检索展示位置展示次数。
GAQL
SELECT performance_max_placement_view.display_name, performance_max_placement_view.target_url, performance_max_placement_view.placement_type, campaign.name, metrics.impressions FROM performance_max_placement_view WHERE segments.date DURING LAST_7_DAYS
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT performance_max_placement_view.display_name, performance_max_placement_view.target_url, performance_max_placement_view.placement_type, campaign.name, metrics.impressions FROM performance_max_placement_view WHERE segments.date DURING LAST_7_DAYS " } EOF
着陆页
通过查询 landing_page_view 资源,从 Google Ads 界面中的默认着陆页界面检索数据。
GAQL
SELECT landing_page_view.unexpanded_final_url, campaign.name, metrics.mobile_friendly_clicks_percentage, metrics.speed_score, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM landing_page_view WHERE segments.date DURING LAST_7_DAYS
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT landing_page_view.unexpanded_final_url, campaign.name, metrics.mobile_friendly_clicks_percentage, metrics.speed_score, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM landing_page_view WHERE segments.date DURING LAST_7_DAYS " } EOF
素材资源组
通过查询 asset_group 资源,从 Google Ads 界面中效果最大化广告系列的素材资源组界面检索数据。
GAQL
SELECT asset_group.name, campaign.name, asset_group.status, asset_group.ad_strength, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, metrics.conversions FROM asset_group WHERE segments.date DURING LAST_7_DAYS AND asset_group.status != 'REMOVED'
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT asset_group.name, campaign.name, asset_group.status, asset_group.ad_strength, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, metrics.conversions FROM asset_group WHERE segments.date DURING LAST_7_DAYS AND asset_group.status != 'REMOVED' " } EOF
产品
通过查询 shopping_performance_view 资源,从 Google Ads 界面中购物广告系列和效果最大化广告系列的商品界面检索商品级指标。
GAQL
SELECT segments.product_item_id, segments.product_title, segments.product_brand, campaign.name, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, metrics.conversions FROM shopping_performance_view WHERE segments.date DURING LAST_7_DAYS
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT segments.product_item_id, segments.product_title, segments.product_brand, campaign.name, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, metrics.conversions FROM shopping_performance_view WHERE segments.date DURING LAST_7_DAYS " } EOF
查找地理位置常量
代码和格式页面提供了 API 中使用的大多数常量的参考表。不过,您也可以使用 Google Ads 查询语言动态查找一些常量。
此示例展示了如何按资源名称或显示名称查找位置。
按资源名称
按资源名称 geoTargetConstants/1014044 查找加利福尼亚州山景城。
GAQL
SELECT geo_target_constant.canonical_name, geo_target_constant.country_code, geo_target_constant.id, geo_target_constant.name, geo_target_constant.status, geo_target_constant.target_type FROM geo_target_constant WHERE geo_target_constant.resource_name = 'geoTargetConstants/1014044'
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT geo_target_constant.canonical_name, geo_target_constant.country_code, geo_target_constant.id, geo_target_constant.name, geo_target_constant.status, geo_target_constant.target_type FROM geo_target_constant WHERE geo_target_constant.resource_name = 'geoTargetConstants/1014044' " } EOF
按显示名称
查找美国城市名称“Mountain View”。
GAQL
SELECT geo_target_constant.canonical_name, geo_target_constant.country_code, geo_target_constant.id, geo_target_constant.name, geo_target_constant.status, geo_target_constant.target_type FROM geo_target_constant WHERE geo_target_constant.country_code = 'US' AND geo_target_constant.target_type = 'City' AND geo_target_constant.name = 'Mountain View' AND geo_target_constant.status = 'ENABLED'
curl
curl --compressed --fail-with-body --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<'EOF' { "query": " SELECT geo_target_constant.canonical_name, geo_target_constant.country_code, geo_target_constant.id, geo_target_constant.name, geo_target_constant.status, geo_target_constant.target_type FROM geo_target_constant WHERE geo_target_constant.country_code = 'US' AND geo_target_constant.target_type = 'City' AND geo_target_constant.name = 'Mountain View' AND geo_target_constant.status = 'ENABLED' " } EOF