Skip to main content
Glama

Get Delivery Estimate

adsap_get_delivery_estimate

Get Meta's delivery estimate for a proposed audience and optimization configuration. Returns the estimated monthly audience range and an audience size assessment (too_narrow/narrow/moderate/broad/very_broad); Meta no longer returns daily reach or outcome curves. Sizes detailed targeting groups and demographics (targeting_spec.flexible_spec, the same shape adsap_create_ad_sets takes), so size an audience here before creating it; targeting_summary states the logic in words, e.g. (Cooking or Frequent Travelers) and Parents (All). Use during onboarding to validate strategies or in audits to check targeting breadth.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daily_budgetNoDaily budget in cents. If provided, estimates are budget-constrained.
ad_account_idYesMust include act_ prefix.
targeting_specYesTargeting specification. Must include at least countries. Detailed targeting and demographics go in flexible_spec groups (a top-level demographic key is rejected). Meta ANDs the separate interests and behaviors lists with each other.
promoted_objectNoRequired for conversion goals. E.g. { pixel_id: '123', custom_event_type: 'Purchase' }
optimization_goalYesOptimization goal for the estimate.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / targeting_spec / description
      Previous value: -"Targeting specification. Must include at least countries. Meta ANDs the interests list with the behaviors list. Detailed targeting groups (flexible_spec) and demographics cannot be sized by this estimate yet: say so instead of quoting a group audience from it."New value: +"Targeting specification. Must include at least countries. Detailed targeting and demographics go in flexible_spec groups (a top-level demographic key is rejected). Meta ANDs the separate interests and behaviors lists with each other."
    • addedInput schema / properties / targeting_spec / properties / flexible_spec
      Added value: +{
      +  "description": "Detailed targeting groups, the same shape adsap_create_ad_sets takes: OR inside a group, AND between groups. [{\"interests\":[A],\"behaviors\":[B]},{\"family_statuses\":[C]}] sizes people who match (A or B) and C. Group keys are Meta segment types: take each item's type and id from adsap_search_detailed_targeting. Max 25 groups. If interests / behaviors are also given, each becomes an extra group (ANDed).",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "behaviors": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "college_years": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "education_majors": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "education_schools": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "education_statuses": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "family_statuses": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "income": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "industries": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "interests": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "id": {
      +              "pattern": "^\\d+$",
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "life_events": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "relationship_statuses": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "user_adclusters": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "work_employers": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      },
      +      "work_positions": {
      +        "items": {
      +          "$ref": "#/properties/targeting_spec/properties/flexible_spec/items/properties/interests/items"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "maxItems": 25,
      +  "type": "array"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / targeting_spec / description
      Previous value: -"Targeting specification. Must include at least countries."New value: +"Targeting specification. Must include at least countries. Meta ANDs the interests list with the behaviors list. Detailed targeting groups (flexible_spec) and demographics cannot be sized by this estimate yet: say so instead of quoting a group audience from it."
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations the description carries the full burden, and it delivers: it discloses the return shape (monthly range + too_narrow/narrow/moderate/broad/very_broad assessment) and a key behavioral caveat that Meta no longer returns daily reach or outcome curves. It does not explicitly confirm the operation is non-mutating, but 'Get' plus the read-only output description make that clear.

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 core purpose and return values, then adds the workflow guidance and a worked targeting example. It is somewhat dense, but each sentence contributes distinct information and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex nested-schema tool with no output schema, the description compensates by describing the return values and the deprecated fields. Combined with full schema coverage and the cross-reference to create_ad_sets, an agent has enough to call it correctly; only minor details (auth/permission requirements) are unstated.

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 already 100%, so the baseline is 3; the description goes beyond it by cross-referencing the flexible_spec shape to adsap_create_ad_sets, explaining the OR-inside/AND-between grouping semantics, and illustrating targeting_summary phrasing. It adds real meaning on top of 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+resource (get Meta's delivery estimate for a proposed audience and optimization configuration) and immediately names the return artifacts (monthly audience range, size assessment). It is unmistakable versus siblings like adsap_get_insights or adsap_search_detailed_targeting.

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 context: 'size an audience here before creating it' and 'use during onboarding to validate strategies or in audits to check targeting breadth,' which ties it directly to the adsap_create_ad_sets workflow. It lacks an explicit when-not-to-use statement or a named alternative for pure targeting lookup (adsap_search_detailed_targeting), keeping it just below the top.

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