Skip to content

GAQL-Abfragen (Rezepte)

Copy-paste-fertige Abfragen für den google-ads-mcp (Tool search_search). Alle für Konto Spanholtz (customer_id: 5062677310, Login-MCC 6641786149). In Claude reicht es, das Rezept zu beschreiben oder die Feldliste zu nennen — die Parameter unten entsprechen dem MCP-Tool-Format.

Felder nachschlagen

Unbekannte Felder nie raten: metadata_get_resource_metadata mit resource_name: "campaign" (o. ä.) listet alle selektier-/filterbaren Felder samt Metriken und Segmenten.

Immer beachten: Geldwerte in Micros (÷ 1.000.000 = €).

Aktive Kampagnen + Strategie + Budget

json
{
  "resource": "campaign",
  "fields": ["campaign.id", "campaign.name", "campaign.status",
    "campaign.advertising_channel_type", "campaign.bidding_strategy_type",
    "campaign.ai_max_setting.enable_ai_max", "campaign_budget.amount_micros"],
  "conditions": ["campaign.status = 'ENABLED'"]
}
json
{
  "resource": "campaign",
  "fields": ["campaign.id", "campaign.name", "campaign.bidding_strategy_system_status",
    "metrics.search_impression_share", "metrics.search_budget_lost_impression_share",
    "metrics.search_rank_lost_impression_share", "metrics.cost_micros", "metrics.conversions"],
  "conditions": ["campaign.status = 'ENABLED'",
    "segments.date DURING LAST_30_DAYS",
    "campaign.advertising_channel_type = 'SEARCH'"],
  "orderings": ["metrics.cost_micros DESC"]
}

Lesart: Budget-Verlust vs. Rang-Verlust → Regel 2. bidding_strategy_system_status = LEARNING_NEWKarenz.

Conversion-Mix je Kampagne

Die wichtigste Abfrage des Kontos — wie viele „Conversions" sind echte Buchungen?

json
{
  "resource": "campaign",
  "fields": ["campaign.id", "campaign.name", "segments.conversion_action_name",
    "metrics.conversions", "metrics.conversions_value"],
  "conditions": ["segments.date DURING LAST_30_DAYS", "metrics.conversions > 0"],
  "orderings": ["campaign.id", "metrics.conversions DESC"]
}

Lesart: Anteil terminbuchung_abgeschlossen = echte Buchungen; Anteil „Anrufe von Anzeigen" > 50 % → Regel 3. Echte CPA = cost_micros der Kampagne ÷ Buchungs-Conversions.

Periodenvergleich

Zweimal ausführen — einmal LAST_30_DAYS, einmal expliziter Vorzeitraum:

json
{
  "resource": "campaign",
  "fields": ["campaign.id", "campaign.name", "metrics.cost_micros",
    "metrics.conversions", "metrics.conversions_value", "metrics.clicks"],
  "conditions": ["campaign.status = 'ENABLED'",
    "segments.date BETWEEN '2026-05-29' AND '2026-06-27'"],
  "orderings": ["metrics.cost_micros DESC"]
}

Conversion-Actions (Hygiene-Check)

json
{
  "resource": "conversion_action",
  "fields": ["conversion_action.id", "conversion_action.name", "conversion_action.status",
    "conversion_action.category", "conversion_action.value_settings.default_value",
    "conversion_action.value_settings.always_use_default_value",
    "conversion_action.include_in_conversions_metric"],
  "conditions": ["conversion_action.status = 'ENABLED'"]
}

Lesart: include_in_conversions_metric = true = primär (steuert Bidding). Soll-Zustand: Wertgewichtung.

Teure Suchbegriffe

json
{
  "resource": "search_term_view",
  "fields": ["search_term_view.search_term", "campaign.name",
    "metrics.cost_micros", "metrics.clicks", "metrics.conversions"],
  "conditions": ["segments.date DURING LAST_30_DAYS", "metrics.cost_micros > 10000000"],
  "orderings": ["metrics.cost_micros DESC"],
  "limit": 40
}

(10000000 Micros = 10 €.) Lesart: Konkurrenznamen/Themenfremdes → Regel 4; Brand-Begriffe in Nicht-Brand-Kampagnen → Regel 5; gleicher Begriff mehrfach → Regel 8.

Keywords mit Qualitätsfaktor

json
{
  "resource": "keyword_view",
  "fields": ["campaign.name", "ad_group.name", "ad_group_criterion.keyword.text",
    "ad_group_criterion.keyword.match_type", "ad_group_criterion.quality_info.quality_score",
    "metrics.cost_micros", "metrics.conversions"],
  "conditions": ["segments.date DURING LAST_30_DAYS", "metrics.cost_micros > 20000000",
    "ad_group_criterion.status != 'REMOVED'"],
  "orderings": ["metrics.cost_micros DESC"],
  "limit": 40
}

Lesart: QS ≤ 4 bei relevanten Kosten → Anzeige/Zielseite verbessern oder pausieren. QS 0 = keine Daten.

Anzeigen: Ad Strength & Freigabestatus

json
{
  "resource": "ad_group_ad",
  "fields": ["campaign.name", "ad_group.name", "ad_group_ad.ad.id",
    "ad_group_ad.ad_strength", "ad_group_ad.policy_summary.approval_status",
    "ad_group_ad.status"],
  "conditions": ["ad_group_ad.status = 'ENABLED'", "campaign.status = 'ENABLED'",
    "ad_group.status = 'ENABLED'"]
}

Achtung: großes Ergebnis (Juli 2026: ~400 Zeilen) — Claude wertet es dann per jq aus. Lesart: DISAPPROVED sofort fixen; „Poor" + Rang-Verlust → Regel 7.

PMax-Asset-Gruppen

json
{
  "resource": "asset_group",
  "fields": ["campaign.name", "asset_group.name", "asset_group.ad_strength",
    "asset_group.status"],
  "conditions": ["asset_group.status = 'ENABLED'", "campaign.status = 'ENABLED'"]
}

Sub-Konten des MCC auflisten

Gegen das MCC (customer_id: 6641786149) ausführen:

json
{
  "resource": "customer_client",
  "fields": ["customer_client.id", "customer_client.descriptive_name",
    "customer_client.manager", "customer_client.level", "customer_client.status"]
}

Änderungshistorie (max. 30 Tage!)

json
{
  "resource": "change_event",
  "fields": ["change_event.change_date_time", "change_event.change_resource_type",
    "change_event.user_email", "change_event.client_type"],
  "conditions": ["change_event.change_date_time DURING LAST_14_DAYS"],
  "limit": 50
}

Älter als 30 Tage: nur die UI-Änderungshistorie.