gads_list_rsas
List responsive search ads with headlines, descriptions, Ad Strength rating, and approval status. Filter by campaign or ad group to review ad performance and optimize ad copy.
Instructions
List Responsive Search Ads with all headlines, descriptions, Ad Strength rating, and approval status. Filter by campaign or ad group.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | No | Override GOOGLE_ADS_CUSTOMER_ID for this call | |
| campaign_id | No | Filter to a specific campaign ID | |
| ad_group_id | No | Filter to a specific ad group ID | |
| limit | No |
Implementation Reference
- src/index.ts:135-140 (registration)Tool 'gads_list_rsas' is registered with the MCP server using listRsasSchema and the listRsas handler.
server.tool( "gads_list_rsas", "List Responsive Search Ads with all headlines, descriptions, Ad Strength rating, and approval status. Filter by campaign or ad group.", listRsasSchema, async (args) => { try { return ok(await listRsas(args)); } catch (e) { return err(e); } } ); - src/tools/adCopy.ts:4-9 (schema)Schema definition for gads_list_rsas: accepts optional customer_id, campaign_id, ad_group_id filters and a limit (default 50, max 10000).
export const listRsasSchema = { customer_id: z.string().optional().describe("Override GOOGLE_ADS_CUSTOMER_ID for this call"), campaign_id: z.string().optional().describe("Filter to a specific campaign ID"), ad_group_id: z.string().optional().describe("Filter to a specific ad group ID"), limit: z.number().int().positive().max(10000).default(50), }; - src/tools/adCopy.ts:11-35 (handler)Handler function that queries Google Ads for Responsive Search Ads with headlines, descriptions, ad strength, approval status, filtered by campaign/ad group.
export async function listRsas(args: z.infer<z.ZodObject<typeof listRsasSchema>>) { const customer = getCustomer(args.customer_id); const adGroupClause = args.ad_group_id ? `AND ad_group.id = ${args.ad_group_id}` : ""; const campaignClause = args.campaign_id ? `AND campaign.id = ${args.campaign_id}` : ""; const rows = await customer.query(` SELECT campaign.id, campaign.name, ad_group.id, 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.final_urls, ad_group_ad.ad_strength, ad_group_ad.policy_summary.approval_status, ad_group_ad.status FROM ad_group_ad WHERE ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD' ${campaignClause} ${adGroupClause} LIMIT ${args.limit} `); return { rowCount: rows.length, rows }; } - src/client.ts:1-2 (helper)The getCustomer helper used by listRsas to create a Google Ads client.
import { GoogleAdsApi, Customer } from "google-ads-api";