Skip to main content
Glama
AdLoop: Google Ads, Reddit Ads & GA4

AdLoop: Google Ads, Reddit Ads & GA4

Estimate a Reddit ad group

estimate_reddit_ad_group
Read-only

Estimate audience size, delivery, and suggested bid for a planned Reddit ad group before drafting; read-only and creates nothing.

Instructions

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.
view_through_conversion_typeNoSEVEN_DAY_CLICKS or SEVEN_DAY_CLICKS_ONE_DAY_VIEW, as draft_reddit_ad_group takes it. Empty: Reddit's default for CONVERSIONS and CATALOG_SALES.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.37.0
    • addedInput schema / properties / view_through_conversion_type
      Added value: +{
      +  "default": "",
      +  "description": "SEVEN_DAY_CLICKS or\nSEVEN_DAY_CLICKS_ONE_DAY_VIEW, as draft_reddit_ad_group takes it.\nEmpty: Reddit's default for CONVERSIONS and CATALOG_SALES.",
      +  "type": "string"
      +}
  2. Changed21 schema fields changedv0.27.1
    • 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 / 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 / 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 / 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."
      +}
    • 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. Addedv0.14.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/destructiveHint=false, but the description adds real behavioral context beyond them: the fixed 30-day audience basis, the specific insight triggers (audience under 10,000 people, bid_value below the suggested minimum), currency scoping of the bid range, and an explicit "Nothing is created." That is exactly the extra layer annotations cannot convey.

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

Conciseness5/5

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

Purpose and read-only guarantee are front-loaded in the first clause, followed by the output contract and the input constraint, with a docs link at the tail. Every sentence carries information; nothing restates the name or title.

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 22-parameter, zero-required tool this is complete: annotations cover safety, a 100%-covered schema covers field formats, an output schema covers the return shape, and the description supplies the sequencing, the cross-field requirement, and the interpretation of the returned insights. Nothing an agent needs to invoke it 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 the per-parameter baseline is 3; the description adds meaning the schema does not, notably the cross-parameter constraint that at least one targeting dimension is mandatory and that the suggestion is keyed to bid_type in account currency. It stops short of explaining how objective/bid_strategy interact with the estimate, so not a 5.

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 (estimate) plus the resource (a planned Reddit ad group) and enumerates the three outputs: audience size, delivery estimate and suggested bid. It explicitly distinguishes itself from estimate_budget ("Reddit's counterpart") and from draft_reddit_ad_group, so an agent can route correctly 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 Guidelines4/5

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

Gives clear timing and sequencing ("ahead of drafting", takes the same targeting and budget as draft_reddit_ad_group) plus a hard prerequisite that at least one of geolocations/communities/interests/keywords is required. It does not state any explicit when-not-to-use case or rate/cost caveats, which keeps it below a 5.

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