Skip to main content
Glama

Metadata MCP Connector

Get Campaign Targeting Locations

get_campaign_targeting_locations
Read-only

Where a campaign actually TARGETS, by channel, with the platform's location ids resolved to country and state names.

            KEYWORDS: campaign, targeting, location, geo, country, region, where, targets, germany, dach, emea, market, geographic

            WHEN TO USE:
            - "Which campaigns target <country>?" / "Do we run anything in Germany?"
            - "Where is this campaign targeted?" before editing or launching it
            - Any question about geographic TARGETING

            DO NOT ANSWER GEO TARGETING FROM demographic_country_stats. That tool reports where ads were SERVED (delivery); this one reports where they are AIMED. The two disagree routinely, and answering a targeting question from delivery data is how the agent once told an account with 68 Germany campaigns that it had none.

            RETURNS:
            - campaigns: [{campaignId, name, status, channels[], summary}]
            - channels[]: {channel, enabled, geoSource, targeting{resolved, countries[{id,name}], states[], ...}, exclusions}
              geoSource is "search_ad_location" (Google/Microsoft, held on the channel) or
              "native_audience" (LinkedIn/Meta/Reddit, held on included audiences or target groups).
            - Native targeting also carries audienceIds, targetGroupIds and resolvedFrom with the attached group names and member audience ids. Target group criteria supply that group's geo; its exclusion criteria are never included in the targeted country list.
            - summary: {countries[], unresolvedIds[], partial}
            - query: {countryFilter, scanned, matched, unreadable[]}
            - limitations: []

            READING THE RESULT - these three distinctions are the whole point:
            - countries: [] is not evidence that no audience is attached. Check audienceIds, targetGroupIds and resolvedFrom. A target group can be attached without a direct audience id. resolvedFrom.countrySource member_audience identifies countries derived from its included member audiences when the group has only non-country location criteria. targeting.resolved false means its geographic scope could NOT BE fully READ, including a native city or region whose country could not be derived. Never report that as no audience or no targeting.
            - exclusions.readable is ALWAYS false: the platform offers no GET for negative locations. Never state that a campaign excludes, or does not exclude, anywhere.
            - summary.partial true means this answer is incomplete. Say so rather than presenting it as a full list.
            - If `limitations` mentions truncation, you have NOT seen the whole account. Re-call with a higher max_campaigns before answering "there are none".

            PARAMETERS:
            - campaign_ids: specific wizard campaign ids (optional)
            - country_names: filter to campaigns targeting these, e.g. ["Germany"] (optional). Names must match the platform catalog; unmatched names are reported, never silently dropped.
            - max_campaigns: cap when scanning the account (default 25, max 100)

            With neither campaign_ids nor country_names, returns the most recent campaigns up to max_campaigns.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
campaign_idsNoWizard campaign ids to read. Omit to scan the account.
country_namesNoFilter to campaigns targeting these countries, e.g. ["Germany", "Austria"].
max_campaignsNoCap on campaigns read when scanning (default 25, max 100).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

With readOnlyHint/openWorldHint/destructiveHint already covering the safety profile, the description goes well beyond: it discloses that exclusions.readable is always false (no GET for negative locations), that summary.partial means incompleteness, that truncation limits in `limitations` require re-calling with higher max_campaigns, and that targeting.resolved false means unreadable scope. These are non-obvious behaviors an agent would otherwise misreport.

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

Conciseness4/5

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

Front-loaded with the core statement, then well-organized WHEN TO USE / RETURNS / READING THE RESULT / PARAMETERS headers. It is long, and the KEYWORDS line plus heavy all-caps emphasis add some bloat, but given no output schema the RETURNS section earns its space.

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?

No output schema exists, so the description carries the return-value burden and does so thoroughly (nested channels, targeting, exclusions, summary, query, limitations), including how to interpret ambiguous results. Nothing an agent needs to call and interpret this correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema: country_names 'must match the platform catalog; unmatched names are reported, never silently dropped', and it clarifies the no-filter default (most recent campaigns up to max_campaigns). Useful additions, though the core parameter docs are already in the schema.

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?

States a specific verb and resource ('Where a campaign actually TARGETS, by channel') plus the value-added transformation (platform location ids resolved to country/state names). It explicitly distinguishes itself from the sibling demographic_country_stats by aim-vs-delivery, so an agent can select it without opening a schema.

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?

Provides a concrete WHEN TO USE list with sample user phrasings and an explicit DO NOT clause naming the wrong alternative (demographic_country_stats) and why it is wrong. This is exactly the routing guidance the dimension asks for.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources