list_adsets
Retrieve ad sets by account or campaign ID. Specify ad_account_id for all adsets in account or campaign_id for adsets of one campaign. Returns key details like id, name, status, budget, bid, optimization goal, and targeting.
Instructions
List ad sets. Pass either ad_account_id (lists all adsets in account) OR campaign_id (lists adsets of one campaign). Returns id, name, campaign_id, status, daily_budget, bid_amount, billing_event, optimization_goal, targeting, is_dynamic_creative.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ad_account_id | No | 'act_123' or '123' | |
| campaign_id | No | ||
| limit | No | ||
| after | No | ||
| effective_status | No | ||
| fields | No |
Implementation Reference
- src/tools/adsets.ts:57-72 (handler)The handler function for list_adsets. Makes a GET request to Meta Graph API endpoint `/{parent}/adsets` (parent is either a campaign_id or ad_account_id). Supports optional limit, after (pagination), effective_status, and fields params.
handler: async (args) => { if (!args.ad_account_id && !args.campaign_id) { throw new Error( "Must provide either ad_account_id or campaign_id to list ad sets.", ); } const parent = args.campaign_id ? String(args.campaign_id) : toAdAccountPath(String(args.ad_account_id)); return metaGet(`/${parent}/adsets`, { fields: args.fields ?? DEFAULT_ADSET_FIELDS, limit: args.limit ?? 100, after: args.after, effective_status: args.effective_status, }); }, - src/tools/adsets.ts:49-56 (schema)Input schema for list_adsets. Defines optional Zod-validated params: ad_account_id, campaign_id, limit (int 1-500), after (cursor), effective_status (array of strings), and fields (string). At least one of ad_account_id or campaign_id is required (enforced in handler).
inputSchema: { ad_account_id: z.string().optional().describe("'act_123' or '123'"), campaign_id: z.string().optional(), limit: z.number().int().positive().max(500).optional(), after: z.string().optional(), effective_status: z.array(z.string()).optional(), fields: z.string().optional(), }, - src/tools/adsets.ts:42-73 (registration)ToolDef registration for list_adsets as part of the adsetTools array. Exported and spread into allTools in src/index.ts (line 50) and src/http.ts (line 33), then registered via server.registerTool() in both entry points.
export const adsetTools: ToolDef[] = [ { name: "list_adsets", description: "List ad sets. Pass either `ad_account_id` (lists all adsets in account) OR " + "`campaign_id` (lists adsets of one campaign). Returns id, name, campaign_id, status, " + "daily_budget, bid_amount, billing_event, optimization_goal, targeting, is_dynamic_creative.", inputSchema: { ad_account_id: z.string().optional().describe("'act_123' or '123'"), campaign_id: z.string().optional(), limit: z.number().int().positive().max(500).optional(), after: z.string().optional(), effective_status: z.array(z.string()).optional(), fields: z.string().optional(), }, handler: async (args) => { if (!args.ad_account_id && !args.campaign_id) { throw new Error( "Must provide either ad_account_id or campaign_id to list ad sets.", ); } const parent = args.campaign_id ? String(args.campaign_id) : toAdAccountPath(String(args.ad_account_id)); return metaGet(`/${parent}/adsets`, { fields: args.fields ?? DEFAULT_ADSET_FIELDS, limit: args.limit ?? 100, after: args.after, effective_status: args.effective_status, }); }, }, - src/tools/adsets.ts:5-7 (helper)Helper function toAdAccountPath: normalizes an ID to 'act_' prefix form, used by the list_adsets handler to build the API path.
function toAdAccountPath(idOrActId: string): string { return idOrActId.startsWith("act_") ? idOrActId : `act_${idOrActId}`; } - src/tools/adsets.ts:39-40 (helper)DEFAULT_ADSET_FIELDS constant string listing the default Meta Graph API fields returned by list_adsets.
const DEFAULT_ADSET_FIELDS = "id,name,campaign_id,status,effective_status,daily_budget,lifetime_budget,bid_amount,bid_strategy,billing_event,optimization_goal,targeting,start_time,end_time,is_dynamic_creative,pacing_type,created_time,updated_time";