Skip to main content
Glama

Estimate a Reddit ad group

estimate_reddit_ad_group
Read-only

Audience size, delivery estimate and Reddit's suggested bid for a planned ad group — read-only.

Reddit's counterpart of estimate_budget: takes the same targeting and budget as draft_reddit_ad_group, ahead of drafting. Returns the reachable and targetable audience (fixed 30-day basis), estimated impressions/clicks/reach for the schedule, the minimum/suggested bid range for bid_type in account currency, and insights (audience under 10,000 people, bid_value below the suggested minimum). Nothing is created. At least one of geolocations, communities, interests or keywords is required.

Reddit Ads API: https://ads-api.reddit.com/docs/v3/

Input Schema

NameRequiredDescriptionDefault
genderNoFEMALE or MALE; empty means all genders.
devicesNoDevice targets, objects like {"type": "MOBILE", "os": "IOS", "min_version": "16"} (type DESKTOP or MOBILE; optional os ANDROID or IOS, major OS versions, and label_map {make: [models]} with makes/models from search_reddit_targeting kind "devices"). Empty means every device.
bid_typeNoCPC (default), CPM, CPV, CPV6 or CPV15; the bid suggestion is for this bid type.CPC
carriersNoMobile carrier ids (from search_reddit_targeting kind "carriers", e.g. "O2_DEUTSCHLAND"). Empty means every carrier.
end_timeNoSchedule end, ISO 8601. Empty means 30 days after the default start.
keywordsNoKeywords to target.
bid_valueNoPlanned bid in account currency; compared with Reddit's suggested minimum.
interestsNoInterest ids to target (from search_reddit_targeting kind "interests").
languagesNoLanguage codes (ISO 639-1, upper-cased automatically, e.g. "DE"). Empty means all languages.
objectiveNoCampaign objective the estimate assumes, e.g. CLICKS (default), CONVERSIONS, IMPRESSIONS, LEAD_GENERATION, APP_INSTALLS, CATALOG_SALES or VIDEO_VIEWABLE_IMPRESSIONS.CLICKS
platformsNoPlatforms to target, e.g. ALL, DESKTOP, MOBILE_NATIVE, MOBILE_WEB. Empty means no platform restriction.
start_timeNoSchedule start, ISO 8601 (e.g. 2026-10-01T00:00:00Z). Empty means tomorrow 00:00 UTC.
communitiesNoCommunity (subreddit) names to target.
bid_strategyNoBIDLESS, MANUAL_BIDDING, MAXIMIZE_VOLUME or TARGET_CPX. Empty means BIDLESS.
daily_budgetNoDaily budget in account currency (positive). One of daily_budget or lifetime_budget is required; daily_budget wins when both are given.
geolocationsNoGeolocation ids to target (e.g. "DE" or "DE:2874225", from search_reddit_targeting kind "geolocations").
ad_account_idNoReddit ad account id (from list_reddit_accounts). Empty uses reddit.ad_account_id from the config.
lifetime_budgetNoLifetime budget in account currency (positive), used when daily_budget is not given.
optimization_goalNoPixel event to optimize for (PURCHASE, SIGN_UP, LEAD, PAGE_VISIT, ...). Empty means none.
excluded_communitiesNoCommunity names to exclude.
excluded_geolocationsNoGeolocation ids to exclude.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / carriers
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Mobile carrier ids (from search_reddit_targeting kind\n\"carriers\", e.g. \"O2_DEUTSCHLAND\"). Empty means every carrier."
      +}
    • addedInput schema / properties / devices
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Device targets, objects like {\"type\": \"MOBILE\", \"os\":\n\"IOS\", \"min_version\": \"16\"} (type DESKTOP or MOBILE; optional os\nANDROID or IOS, major OS versions, and label_map {make: [models]}\nwith makes/models from search_reddit_targeting kind \"devices\").\nEmpty means every device."
      +}
  2. Changed19 schema fields changed
    • addedInput schema / properties / ad_account_id / description
      Added value: +"Reddit ad account id (from list_reddit_accounts).\nEmpty uses reddit.ad_account_id from the config."
    • addedInput schema / properties / bid_strategy / description
      Added value: +"BIDLESS, MANUAL_BIDDING, MAXIMIZE_VOLUME or TARGET_CPX.\nEmpty means BIDLESS."
    • addedInput schema / properties / bid_type / description
      Added value: +"CPC (default), CPM, CPV, CPV6 or CPV15; the bid suggestion\nis for this bid type."
    • addedInput schema / properties / bid_value / description
      Added value: +"Planned bid in account currency; compared with Reddit's\nsuggested minimum."
    • addedInput schema / properties / communities / description
      Added value: +"Community (subreddit) names to target."
    • addedInput schema / properties / daily_budget / description
      Added value: +"Daily budget in account currency (positive). One of\ndaily_budget or lifetime_budget is required; daily_budget wins\nwhen both are given."
    • addedInput schema / properties / end_time / description
      Added value: +"Schedule end, ISO 8601. Empty means 30 days after the\ndefault start."
    • addedInput schema / properties / excluded_communities / description
      Added value: +"Community names to exclude."
    • addedInput schema / properties / excluded_geolocations / description
      Added value: +"Geolocation ids to exclude."
    • addedInput schema / properties / gender / description
      Added value: +"FEMALE or MALE; empty means all genders."
    • addedInput schema / properties / geolocations / description
      Added value: +"Geolocation ids to target (e.g. \"DE\" or \"DE:2874225\",\nfrom search_reddit_targeting kind \"geolocations\")."
    • addedInput schema / properties / interests / description
      Added value: +"Interest ids to target (from search_reddit_targeting kind\n\"interests\")."
    • addedInput schema / properties / keywords / description
      Added value: +"Keywords to target."
    • addedInput schema / properties / languages / description
      Added value: +"Language codes (ISO 639-1, upper-cased automatically,\ne.g. \"DE\"). Empty means all languages."
    • addedInput schema / properties / lifetime_budget / description
      Added value: +"Lifetime budget in account currency (positive),\nused when daily_budget is not given."
    • addedInput schema / properties / objective / description
      Added value: +"Campaign objective the estimate assumes, e.g. CLICKS\n(default), CONVERSIONS, IMPRESSIONS, LEAD_GENERATION,\nAPP_INSTALLS, CATALOG_SALES or VIDEO_VIEWABLE_IMPRESSIONS."
    • addedInput schema / properties / optimization_goal / description
      Added value: +"Pixel event to optimize for (PURCHASE, SIGN_UP,\nLEAD, PAGE_VISIT, ...). Empty means none."
    • addedInput schema / properties / platforms / description
      Added value: +"Platforms to target, e.g. ALL, DESKTOP, MOBILE_NATIVE,\nMOBILE_WEB. Empty means no platform restriction."
    • addedInput schema / properties / start_time / description
      Added value: +"Schedule start, ISO 8601 (e.g. 2026-10-01T00:00:00Z).\nEmpty means tomorrow 00:00 UTC."
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so 'read-only'/'Nothing is created' is partly redundant. The description still adds real behavioral context beyond the annotations: the fixed 30-day basis, the insight triggers (audience under 10,000, bid_value below suggested minimum), and the requirement that at least one of geolocations/communities/interests/keywords be supplied.

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 purpose in the first clause, then layers in workflow context, return contents, constraints, and a docs link. It is dense but each sentence carries information; the only slight slack is restating read-only twice ('read-only' and 'Nothing is created').

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?

For a 21-parameter, no-required-field estimation tool with an output schema and full annotations, the description supplies the missing pieces: workflow placement, the at-least-one-targeting constraint, and the meaning of the returned insights. Nothing an agent needs to invoke it correctly is absent.

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 the schema documents all 21 parameters and the baseline is 3. The description adds meaning the schema cannot convey: the cross-parameter constraint that at least one targeting dimension is required, and that the bid suggestion is tied specifically to bid_type in account currency.

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 (estimate a Reddit ad group) and explicitly frames it as the read-only counterpart of estimate_budget, distinguishing it from the sibling draft_reddit_ad_group. The returned artifacts (audience size, delivery estimate, suggested bid) are named up front.

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?

Explicitly places the tool in the workflow: it takes the same targeting and budget as draft_reddit_ad_group and is used 'ahead of drafting.' It also names its GA-side analogue (estimate_budget), so an agent can route correctly between the estimate and the draft.

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.