{"id":"mathiaschu-google-ads-analyzer","name":"google-ads-analyzer","homepage":null,"repo_url":"https://github.com/mathiaschu/google-ads-analyzer","category":"ai-ml","subcategories":[],"tags":["ai-ml","mcp","google-ads","marketing-automation","python","api-integration","automation","campaign-management"],"what_it_does":"Provides a local MCP server that connects to the Google Ads API, exposing read tools (GAQL search, list accessible customer IDs) and additional write tools (add negative keywords, pause/enable campaigns, update campaign budgets, change bidding strategies, and pause/enable ad groups/ads) so an LLM/agent can analyze and manage Google Ads accounts.","use_cases":["Agentic analysis of Google Ads performance via GAQL queries","Listing accessible Google Ads customer IDs for an authenticated user","Applying operational changes from natural language (e.g., pausing campaigns/ad groups/ads, updating budgets/bidding strategies)","Managing negative keywords at scale for campaigns via the assistant","Faster iteration cycles where an agent can inspect account data and then execute bounded changes"],"not_for":["Unattended, fully-automated budget/strategy changes without human review","Accounts or operations requiring a separate approvals workflow/audit trail beyond what the README describes","Teams that cannot provide and manage Google Ads API credentials securely","Applications needing a hosted public API/SDK instead of a local MCP server"],"best_when":"You want an agent connected to Google Ads that can both retrieve reporting data and perform specific write operations using Google’s official Ads API scopes/credentials.","avoid_when":"You cannot tolerate the risk of the model triggering write tools (even if unintended) or you lack guardrails, least-privilege credentials, and monitoring/auditing for changes.","alternatives":["googleads/google-ads-mcp (upstream, read-focused)","Google Ads API directly via the official client libraries (Python)","Custom internal tooling with explicit approval gates and typed GAQL/query builders"],"af_score":54.0,"security_score":71.5,"reliability_score":26.2,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T15:25:17.153913+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["Google Ads API authentication via Google Application Default Credentials (ADC) or Google Ads API Python client config","Google Ads developer token (GOOGLE_ADS_DEVELOPER_TOKEN)","Optional login customer ID for manager-account access (GOOGLE_ADS_LOGIN_CUSTOMER_ID)"],"oauth":true,"scopes":true,"notes":"Uses Google Application Default Credentials and requires the Google Ads API scope https://www.googleapis.com/auth/adwords (per README). OAuth complexity is managed by Google ADC; the MCP server setup requires correct environment variables and access permissions for the Ads account(s)."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"No pricing information in the provided README/repo metadata; costs would primarily be your own infrastructure plus Google Ads API usage (and any LLM tooling you connect to)."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":54.0,"security_score":71.5,"reliability_score":26.2,"mcp_server_quality":78.0,"documentation_accuracy":70.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":65.0,"rate_limit_clarity":20.0,"tls_enforcement":90.0,"auth_strength":75.0,"scope_granularity":70.0,"dependency_hygiene":45.0,"secret_handling":70.0,"security_notes":"Uses Google ADC and an Ads developer token (stronger than no auth). The README indicates required OAuth scope for adwords access, implying OAuth-based security. However, the provided content does not mention least-privilege scopes per tool, TLS/verification details for the MCP transport, nor how secrets are handled/logged by the server. Write tools increase operational risk if not protected by agent-level confirmation and access control.","uptime_documented":0.0,"version_stability":45.0,"breaking_changes_history":30.0,"error_recovery":30.0,"idempotency_support":"false","idempotency_notes":"No idempotency/duplicate-handling guidance is provided in the README. Write operations could be non-idempotent depending on the underlying Google Ads API behavior (e.g., keyword creation).","pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Write tools can materially change campaigns/budgets/bidding/keywords; agents must have guardrails/confirmation steps.","Many prompts require a customer ID; multi-customer workflows should ensure the correct customer context.","Negative keyword matching types (BROAD/PHRASE/EXACT) must be set correctly to avoid unintended keyword blocking.","Budget and bidding changes should be validated (currency/target values) before execution.","The README notes an extra header for usage data collection; ensure this is acceptable for your environment and that it does not leak sensitive info."]}}