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 the attached audience).
            - summary: {countries[], unresolvedIds[], partial}
            - query: {countryFilter, scanned, matched, unreadable[]}
            - limitations: []

            READING THE RESULT - these three distinctions are the whole point:
            - countries: [] means nothing is targeted. targeting.resolved false means it could NOT BE READ. Never report the second as the first.
            - 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?

Annotations already mark readOnlyHint=true and destructiveHint=false, but the description adds critical behavioral details: exclusions.readable is ALWAYS false, summary.partial indicates incomplete results, and truncation in limitations means the account wasn't fully scanned. These go far beyond the annotation's safety hints.

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?

The description is long but well-organized into keywords, when-to-use, returns, reading-the-result, and parameters. It front-loads the core purpose and uses bolded sections. Though verbose, each section carries essential caveats that an agent needs to interpret results correctly.

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?

Extremely complete for a complex read tool with no output schema. It explains the return structure in detail, covers interpretation pitfalls (empty vs unresolved, exclusions not readable, partial results, truncation), and parameter semantics. Nothing an agent needs to call and interpret 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 covers 100% of parameters, so baseline is 3. The description adds value by noting that country_names must match the platform catalog and unmatched names are reported, not dropped, and explains the default scan behavior when neither filter is provided. Slightly above baseline.

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+resource: reports where campaigns target by channel, resolving platform location ids to country/state names. Clearly differentiates from demographic_country_stats, which reports delivery, not targeting.

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?

Explicit WHEN TO USE section with concrete example questions and a DO NOT USE directive naming the sibling tool and explaining the delivery-vs-targeting distinction. Also advises when to use before editing or launching.

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