gaql-query-patterns
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGAQL Query Patterns
GAQL 查询模式
Ready-to-use GAQL (Google Ads Query Language) query templates for common PPC analysis tasks.
用于常见 PPC 分析任务的开箱即用 GAQL(Google Ads Query Language)查询模板。
What This Skill Deliberately Does NOT Do
本 Skill 刻意不做的操作
- Run the queries. These are copy-paste templates, not a runner — paste them into your own API client, Google Ads Scripts, or to actually execute and export.
google-ads-query - Mutate anything. Every template is a read-only ; nothing here changes an account.
SELECT - Cover change-history queries. Pulling what changed and when needs a finite date window and a , and lives in
LIMIT— a windowless change query won't run.change-history-checker - Diagnose the results. The "Use for" and "Interpreting results" notes point you at the analysis; the actual root-causing lives in the diagnostic skills (e.g. for the impression-share query).
impression-share-diagnostics
- 执行查询。 这些是可复制粘贴的模板,而不是查询运行器——请将它们粘贴到你自己的 API 客户端、Google Ads Scripts,或 中,以实际执行和导出。
google-ads-query - 修改任何数据。 每个模板都是只读 ;这里的内容不会更改账户。
SELECT - 涵盖变更历史查询。 查询变更内容及变更时间需要设置有限的日期窗口和 ,相关功能位于
LIMIT——没有日期窗口的变更查询无法运行。change-history-checker - 诊断结果。 “适用于”和“结果解读”说明会指出分析方向;实际根因分析位于诊断类 Skills 中(例如,展示次数份额查询可使用 )。
impression-share-diagnostics
Campaign Queries
广告系列查询
7-Day Campaign Spend Analysis
7 天广告系列支出分析
sql
SELECT
campaign.id,
campaign.name,
campaign.status,
campaign.advertising_channel_type,
campaign.bidding_strategy_type,
campaign_budget.amount_micros,
campaign_budget.explicitly_shared,
metrics.cost_micros,
metrics.impressions,
metrics.clicks,
metrics.conversions,
metrics.conversions_value
FROM campaign
WHERE segments.date DURING LAST_7_DAYS
ORDER BY campaign.nameUse for: Recent spend analysis, budget utilization, campaign health checks
sql
SELECT
campaign.id,
campaign.name,
campaign.status,
campaign.advertising_channel_type,
campaign.bidding_strategy_type,
campaign_budget.amount_micros,
campaign_budget.explicitly_shared,
metrics.cost_micros,
metrics.impressions,
metrics.clicks,
metrics.conversions,
metrics.conversions_value
FROM campaign
WHERE segments.date DURING LAST_7_DAYS
ORDER BY campaign.name适用于: 近期支出分析、预算利用情况、广告系列健康状况检查
Month-to-Date Pacing
本月至今预算节奏
sql
SELECT
campaign.id,
campaign.name,
campaign_budget.amount_micros,
metrics.cost_micros
FROM campaign
WHERE segments.date DURING THIS_MONTH
ORDER BY campaign.nameUse for: Monthly pacing calculations, budget tracking
sql
SELECT
campaign.id,
campaign.name,
campaign_budget.amount_micros,
metrics.cost_micros
FROM campaign
WHERE segments.date DURING THIS_MONTH
ORDER BY campaign.name适用于: 月度预算节奏计算、预算跟踪
Campaign Settings Audit
广告系列设置审计
sql
SELECT
campaign.id,
campaign.name,
campaign.status,
campaign.advertising_channel_type,
campaign.bidding_strategy_type,
campaign.target_cpa.target_cpa_micros,
campaign.target_roas.target_roas,
campaign_budget.amount_micros,
campaign_budget.explicitly_shared
FROM campaign
WHERE campaign.status = 'ENABLED'Use for: Configuration audits, bidding strategy checks, budget review
sql
SELECT
campaign.id,
campaign.name,
campaign.status,
campaign.advertising_channel_type,
campaign.bidding_strategy_type,
campaign.target_cpa.target_cpa_micros,
campaign.target_roas.target_roas,
campaign_budget.amount_micros,
campaign_budget.explicitly_shared
FROM campaign
WHERE campaign.status = 'ENABLED'适用于: 配置审计、出价策略检查、预算审查
Impression Share
展示次数份额
Search Impression Share Analysis
搜索广告展示次数份额分析
sql
SELECT
campaign.id,
campaign.name,
campaign.advertising_channel_type,
metrics.search_impression_share,
metrics.search_budget_lost_impression_share,
metrics.search_rank_lost_impression_share,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_7_DAYS
AND campaign.advertising_channel_type IN ('SEARCH', 'PERFORMANCE_MAX')
ORDER BY metrics.search_budget_lost_impression_share DESCUse for: Diagnosing underspending, identifying budget constraints vs. quality issues
Interpreting results:
- High Budget Lost IS → increase budget to capture more impressions
- High Rank Lost IS → quality/relevance issue (not a budget problem)
- Both high → budget is primary constraint, but quality also needs work
sql
SELECT
campaign.id,
campaign.name,
campaign.advertising_channel_type,
metrics.search_impression_share,
metrics.search_budget_lost_impression_share,
metrics.search_rank_lost_impression_share,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_7_DAYS
AND campaign.advertising_channel_type IN ('SEARCH', 'PERFORMANCE_MAX')
ORDER BY metrics.search_budget_lost_impression_share DESC适用于: 诊断投放不足,区分预算限制与质量问题
结果解读:
- 预算损失展示次数份额较高 → 增加预算以获取更多展示次数
- 排名损失展示次数份额较高 → 属于质量或相关性问题(而非预算问题)
- 两者都高 → 预算是主要限制因素,但质量也需要改进
Search Terms
搜索字词
Search Term Report (Last 30 Days)
搜索字词报告(过去 30 天)
sql
SELECT
search_term_view.search_term,
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
search_term_view.status
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.impressions > 0
ORDER BY metrics.cost_micros DESCUse for: Negative keyword discovery, search term audits, intent analysis
sql
SELECT
search_term_view.search_term,
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
search_term_view.status
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.impressions > 0
ORDER BY metrics.cost_micros DESC适用于: 发现否定关键词、搜索字词审计、搜索意图分析
High-Spend Non-Converting Search Terms
高支出无转化搜索字词
sql
SELECT
search_term_view.search_term,
campaign.name,
metrics.clicks,
metrics.cost_micros,
metrics.conversions
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.conversions = 0
AND metrics.cost_micros > 0
ORDER BY metrics.cost_micros DESCUse for: Finding wasted spend, negative keyword candidates
sql
SELECT
search_term_view.search_term,
campaign.name,
metrics.clicks,
metrics.cost_micros,
metrics.conversions
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.conversions = 0
AND metrics.cost_micros > 0
ORDER BY metrics.cost_micros DESC适用于: 查找浪费的支出、筛选否定关键词候选项
Keywords
关键词
Keyword Performance with Quality Score
关键词表现与质量得分
sql
SELECT
ad_group.name,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type,
ad_group_criterion.quality_info.quality_score,
ad_group_criterion.quality_info.creative_quality_score,
ad_group_criterion.quality_info.post_click_quality_score,
ad_group_criterion.quality_info.search_predicted_ctr,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions
FROM keyword_view
WHERE segments.date DURING LAST_30_DAYS
AND ad_group_criterion.status = 'ENABLED'
ORDER BY metrics.cost_micros DESCUse for: Quality score audits, keyword performance analysis
sql
SELECT
ad_group.name,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type,
ad_group_criterion.quality_info.quality_score,
ad_group_criterion.quality_info.creative_quality_score,
ad_group_criterion.quality_info.post_click_quality_score,
ad_group_criterion.quality_info.search_predicted_ctr,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions
FROM keyword_view
WHERE segments.date DURING LAST_30_DAYS
AND ad_group_criterion.status = 'ENABLED'
ORDER BY metrics.cost_micros DESC适用于: 质量得分审计、关键词表现分析
Non-Serving Keywords (Zero Impressions)
未投放关键词(零展示次数)
sql
SELECT
campaign.name,
ad_group.name,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type,
ad_group_criterion.status,
metrics.impressions
FROM keyword_view
WHERE segments.date DURING LAST_180_DAYS
AND campaign.status = 'ENABLED'
AND ad_group.status = 'ENABLED'
AND ad_group_criterion.status = 'ENABLED'
AND metrics.impressions = 0Use for: Finding dead keywords to clean up, account hygiene
sql
SELECT
campaign.name,
ad_group.name,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type,
ad_group_criterion.status,
metrics.impressions
FROM keyword_view
WHERE segments.date DURING LAST_180_DAYS
AND campaign.status = 'ENABLED'
AND ad_group.status = 'ENABLED'
AND ad_group_criterion.status = 'ENABLED'
AND metrics.impressions = 0适用于: 查找需要清理的失效关键词、维护账户整洁
Ads
广告
RSA Performance
RSA 表现
sql
SELECT
campaign.name,
ad_group.name,
ad_group_ad.ad.id,
ad_group_ad.ad.responsive_search_ad.headlines,
ad_group_ad.ad.responsive_search_ad.descriptions,
ad_group_ad.ad_strength,
metrics.impressions,
metrics.clicks,
metrics.conversions,
metrics.cost_micros
FROM ad_group_ad
WHERE segments.date DURING LAST_30_DAYS
AND ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD'
AND ad_group_ad.status = 'ENABLED'
ORDER BY metrics.impressions DESCUse for: Ad performance review, RSA optimization
sql
SELECT
campaign.name,
ad_group.name,
ad_group_ad.ad.id,
ad_group_ad.ad.responsive_search_ad.headlines,
ad_group_ad.ad.responsive_search_ad.descriptions,
ad_group_ad.ad_strength,
metrics.impressions,
metrics.clicks,
metrics.conversions,
metrics.cost_micros
FROM ad_group_ad
WHERE segments.date DURING LAST_30_DAYS
AND ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD'
AND ad_group_ad.status = 'ENABLED'
ORDER BY metrics.impressions DESC适用于: 广告表现审查、RSA 优化
Conversions
转化
Conversion Actions List
转化操作列表
sql
SELECT
conversion_action.id,
conversion_action.name,
conversion_action.type,
conversion_action.status,
conversion_action.category,
conversion_action.value_settings.default_value,
conversion_action.counting_type,
conversion_action.attribution_model_settings.attribution_model
FROM conversion_action
WHERE conversion_action.status = 'ENABLED'
ORDER BY conversion_action.nameUse for: Conversion tracking audits, identifying misconfigured actions
sql
SELECT
conversion_action.id,
conversion_action.name,
conversion_action.type,
conversion_action.status,
conversion_action.category,
conversion_action.value_settings.default_value,
conversion_action.counting_type,
conversion_action.attribution_model_settings.attribution_model
FROM conversion_action
WHERE conversion_action.status = 'ENABLED'
ORDER BY conversion_action.name适用于: 转化跟踪审计、识别配置错误的转化操作
Conversion Performance by Action
按操作划分的转化表现
sql
SELECT
segments.conversion_action_name,
segments.conversion_action_category,
metrics.conversions,
metrics.conversions_value,
metrics.all_conversions,
metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.conversions DESCUse for: Understanding which conversion actions are firing, value distribution
sql
SELECT
segments.conversion_action_name,
segments.conversion_action_category,
metrics.conversions,
metrics.conversions_value,
metrics.all_conversions,
metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.conversions DESC适用于: 了解哪些转化操作正在触发、价值分布
Geographic Performance
地理表现
sql
SELECT
geographic_view.country_criterion_id,
geographic_view.location_type,
campaign.name,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions
FROM geographic_view
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESCUse for: Geographic bid adjustments, location targeting audits
sql
SELECT
geographic_view.country_criterion_id,
geographic_view.location_type,
campaign.name,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions
FROM geographic_view
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC适用于: 地理出价调整、定位目标审计
Device Performance
设备表现
sql
SELECT
campaign.name,
segments.device,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
metrics.average_cpc
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY campaign.name, segments.deviceUse for: Device bid adjustments, mobile vs. desktop analysis
sql
SELECT
campaign.name,
segments.device,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
metrics.average_cpc
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY campaign.name, segments.device适用于: 设备出价调整、移动端与桌面端分析
Account-Level Summary
账户级摘要
sql
SELECT
customer.id,
customer.descriptive_name,
metrics.cost_micros,
metrics.impressions,
metrics.clicks,
metrics.conversions,
metrics.conversions_value
FROM customer
WHERE segments.date DURING LAST_30_DAYSUse for: High-level account overview, executive reporting
sql
SELECT
customer.id,
customer.descriptive_name,
metrics.cost_micros,
metrics.impressions,
metrics.clicks,
metrics.conversions,
metrics.conversions_value
FROM customer
WHERE segments.date DURING LAST_30_DAYS适用于: 账户整体概览、管理层报告
Date Range Reference
日期范围参考
| Keyword | Meaning |
|---|---|
| Yesterday only |
| Today only |
| Last 7 days |
| Last 14 days |
| Last 30 days |
| Current month to date |
| Previous calendar month |
| This week (Monday to today) |
| 关键字 | 含义 |
|---|---|
| 仅昨天 |
| 仅今天 |
| 过去 7 天 |
| 过去 14 天 |
| 过去 30 天 |
| 本月截至今日 |
| 上一个自然月 |
| 本周(周一至今天) |
Key Field Notes
关键字段说明
Micros Conversion
Micros 换算
The API returns monetary values in micros (1,000,000 = $1):
50000000 micros = $50.00
1234567 micros = $1.23Always divide by 1,000,000 when displaying to users.
API 返回的货币值以 micros 为单位(1,000,000 = $1):
50000000 micros = $50.00
1234567 micros = $1.23向用户展示时,始终除以 1,000,000。
Impression Share Returns Decimals
展示次数份额返回小数值
The API returns impression share as decimals (0.0 - 1.0), NOT percentages:
- API value = 24.64% actual impression share
0.2464 - Always multiply by 100 when displaying
API 返回的展示次数份额是小数(0.0 - 1.0),而不是百分比:
- API 值 = 实际展示次数份额 24.64%
0.2464 - 展示时始终乘以 100
Metrics Require Date Segmentation
指标需要日期分段
Any query with fields MUST include a clause. Without it, the query will fail.
metrics.*WHERE segments.date任何包含 字段的查询都必须包含 子句。否则,查询将失败。
metrics.*WHERE segments.dateImpression Share is Search/PMax Only
展示次数份额仅适用于 Search/PMax
search_impression_sharesearch_budget_lost_impression_sharesearch_rank_lost_impression_sharesearch_impression_sharesearch_budget_lost_impression_sharesearch_rank_lost_impression_shareAND vs OR
AND 与 OR
GAQL doesn't support . Use instead:
ORINsql
-- Wrong
WHERE campaign.status = 'ENABLED' OR campaign.status = 'PAUSED'
-- Correct
WHERE campaign.status IN ('ENABLED', 'PAUSED')GAQL 不支持 。请改用 :
ORINsql
-- Wrong
WHERE campaign.status = 'ENABLED' OR campaign.status = 'PAUSED'
-- Correct
WHERE campaign.status IN ('ENABLED', 'PAUSED')When to Load Other Skills
何时加载其他 Skills
| Skill | When |
|---|---|
| To run these templates against an account and export the results to CSV — this skill is the templates, that one is the runner |
| For "what changed and when" queries — they require a finite date window (90-day / 30-day) and a |
| To interpret the impression-share query — Search IS, Budget Lost IS, and Rank Lost IS root-causing lives there |
Several skills reach for these templates when they outgrow their own — , , and all point back here for custom GAQL.
underspending-investigationbudget-recommendation-calculatormcc-hack-audit| Skill | 何时使用 |
|---|---|
| 用于针对账户运行这些模板并将结果导出为 CSV——本 Skill 提供模板,该 Skill 负责执行 |
| 用于查询“变更内容及变更时间”——这些查询需要有限日期窗口(90 天或 30 天)和 |
| 用于解读展示次数份额查询——Search IS、Budget Lost IS 和 Rank Lost IS 的根因分析应在该 Skill 中完成 |
当以下 Skills 超出自身适用范围时,会转用这些模板——、 和 都会指向此处以获取自定义 GAQL。
underspending-investigationbudget-recommendation-calculatormcc-hack-audit