Skip to main content
Glama
kLOsk

AdLoop: Google Ads, Reddit Ads & GA4

Draft demographic targeting

draft_demographic_targeting

Draft age, gender, parental status, or income targeting criteria for Google Ads campaigns or ad groups and get a preview before applying exclusions or narrowed targeting.

Instructions

Draft demographic targeting (age/gender/parental status/income) — returns a PREVIEW.

By default, Google Ads serves to all demographic segments. This tool adds criteria that EXCLUDE a segment (negative=True, default) or NARROW targeting to it (negative=False — uncommon). Takes exactly one of ad_group_id or campaign_id, and at least one of the four demographic lists must contain a value.

Returns a preview with a plan_id, plus warnings when the change narrows targeting, excludes 'undetermined' users, or excludes nearly a whole dimension; nothing changes until confirm_and_apply applies it.

Google Ads API: https://developers.google.com/google-ads/api/docs/start

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
gendersNo'female', 'male', 'undetermined'.
negativeNoTrue (default) excludes the listed segments; False adds positive criteria that narrow an ad group's targeting to them.
age_rangesNoAge buckets '18-24', '25-34', '35-44', '45-54', '55-64', '65+', 'undetermined' (or canonical names such as AGE_RANGE_18_24). Google's buckets are FIXED — 'Exclude 23-35' has no exact mapping and needs a choice of buckets.
ad_group_idNoNumeric ad group ID to add the criteria to. Mutually exclusive with campaign_id.
campaign_idNoNumeric campaign ID to add the criteria to. Mutually exclusive with ad_group_id; campaign-level criteria can only be exclusions (negative=True).
customer_idNoGoogle Ads customer ID (digits, dashes optional). Defaults to the configured account.
income_rangesNoPERCENTILES (not currency): 'top-10', '11-20', '21-30', '31-40', '41-50', 'lower-50', 'undetermined'. Available in select countries only (US, AU, JP, etc.).
parental_statusesNo'parent', 'not_a_parent', 'undetermined'.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.27.1
    • addedInput schema / properties / ad_group_id / description
      Added value: +"Numeric ad group ID to add the criteria to. Mutually\nexclusive with campaign_id."
    • addedInput schema / properties / age_ranges / description
      Added value: +"Age buckets '18-24', '25-34', '35-44', '45-54', '55-64',\n'65+', 'undetermined' (or canonical names such as AGE_RANGE_18_24).\nGoogle's buckets are FIXED — 'Exclude 23-35' has no exact mapping\nand needs a choice of buckets."
    • addedInput schema / properties / campaign_id / description
      Added value: +"Numeric campaign ID to add the criteria to. Mutually\nexclusive with ad_group_id; campaign-level criteria can only be\nexclusions (negative=True)."
    • addedInput schema / properties / customer_id / description
      Added value: +"Google Ads customer ID (digits, dashes optional). Defaults to\nthe configured account."
    • addedInput schema / properties / genders / description
      Added value: +"'female', 'male', 'undetermined'."
    • addedInput schema / properties / income_ranges / description
      Added value: +"PERCENTILES (not currency): 'top-10', '11-20', '21-30',\n'31-40', '41-50', 'lower-50', 'undetermined'. Available in select\ncountries only (US, AU, JP, etc.)."
    • addedInput schema / properties / negative / description
      Added value: +"True (default) excludes the listed segments; False adds\npositive criteria that narrow an ad group's targeting to them."
    • addedInput schema / properties / parental_statuses / description
      Added value: +"'parent', 'not_a_parent', 'undetermined'."
  2. Addedv0.12.0

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: Google serves to all segments by default, the call is non-mutating until confirmed, the response carries a plan_id and specific warning classes (narrowing, excluding 'undetermined', excluding a near-total dimension). This is exactly the kind of side-effect and failure-mode disclosure annotations cannot carry.

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-loads the most important fact (it is a preview) and proceeds through semantics, constraints, and warnings without much fat. The density is high but each sentence carries distinct information; the API doc link is the only padding.

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?

With an output schema present, return values need no explanation, and the description still covers prerequisites, default behavior, mutation semantics, warning cases, and the confirm step. Nothing an agent needs to invoke 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 description coverage is already 100%, so the baseline is 3. The description nonetheless adds cross-parameter constraints not stated as such in the schema — 'at least one of the four demographic lists must contain a value' and the default-negative semantics — earning 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 ('Draft demographic targeting') and enumerates the four dimensions it covers (age/gender/parental status/income). The 'returns a PREVIEW' framing cleanly distinguishes it from the read-side sibling get_demographic_targeting and the write-side confirm_and_apply.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the key branch decision (negative=True excludes by default, negative=False narrows and is uncommon) and states prerequisites: exactly one of ad_group_id/campaign_id and at least one populated demographic list. It routes the agent to confirm_and_apply for the actual change, but does not name the read sibling for inspecting existing targeting or state explicit when-not conditions.

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

Deploy Server

Other Tools