Skip to main content
Glama

google_ads_creative_research

Collects campaign, landing-page, RSA ad, search-term, and keyword data so an LLM can draft or refresh Google Ads creative for one campaign.

Instructions

Collect every input an LLM needs to draft or refresh Google Ads creative for a single campaign. Returns {campaign_id, url, lp_analysis (same shape as google_ads_landing_page_analyze), existing_ads:[{ad_id, headlines, descriptions, final_urls, impressions, clicks, conversions, ctr}] (top 5 RSA ads by impressions, REMOVED excluded), search_term_insights:{high_cv_terms (top 10 by conversions), high_click_terms (top 10 by clicks), total_terms}, keyword_suggestions (KeywordPlanIdeaService output for up to 5 seeds derived from LP title + h1 + meta_description), existing_keywords (list_keywords output), context_summary (string)}. A sub-step whose read fails keeps its key with null (unknown, not empty) and the envelope never raises. Side effect: one outbound LP fetch (same SSRF policy as google_ads_landing_page_analyze) plus several GAQL queries. For just the LP use google_ads_landing_page_analyze; for just RSA asset diagnostics use google_ads_rsa_assets_analyze.

Input Schema

NameRequiredDescriptionDefault
urlYesAbsolute landing page URL to analyze (http:// or https:// only, e.g. 'https://example.com/lp/'). SSRF-protected — private-range, loopback, and cloud-metadata hosts are rejected.
ad_group_idNoOptional ad group ID as a numeric string (e.g. '145680123456') to restrict results to a single ad group. Omit to include every ad group matching the campaign filter.
campaign_idYesCampaign ID as a numeric string without dashes (e.g. '23743184133'). Obtain via google_ads_campaigns_list.
customer_idNoGoogle Ads customer ID as a 10-digit string without dashes (e.g. '1234567890'). Optional — falls back to GOOGLE_ADS_CUSTOMER_ID / GOOGLE_ADS_LOGIN_CUSTOMER_ID from the configured credentials when omitted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.10.37
    • addedInput schema / additionalProperties
      Added value: +false
  2. Addedv0.9.12
  3. Removedv0.9.6
  4. Addedv0.9.2
  5. Removedv0.9.1
  6. Addedv1.0.5

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so thoroughly: it discloses one outbound LP fetch under the same SSRF policy, several GAQL queries, failure semantics where each failed sub-step keeps its key with null rather than empty, and that the envelope never raises. It also specifies exclusions such as REMOVED ads and top-5-by-impressions selection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well structured and front-loaded: purpose first, then return envelope, then failure behavior, side effects, and alternatives. Every sentence contributes necessary information for a complex multi-source research tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the detailed return-shape explanation is essential and present, including nested fields, selection rules, and null-on-failure behavior. Combined with the side-effect disclosure and alternatives, an agent has enough context to call and interpret the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameter meaning is already fully documented in the schema. The description adds some useful context about how the URL feeds LP analysis and keyword seed derivation, but it does not materially explain the other parameters beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Collect every input an LLM needs to draft or refresh Google Ads creative for a single campaign.' It clearly distinguishes the tool from narrower siblings by naming google_ads_landing_page_analyze and google_ads_rsa_assets_analyze for partial use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is explicit: preparing inputs for drafting or refreshing Google Ads creative for one campaign. The description also gives concrete alternatives — use google_ads_landing_page_analyze for just the LP, or google_ads_rsa_assets_analyze for just RSA diagnostics — making the routing decision unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools