Get delivery estimate (adsap_get_delivery_estimate)
Platform: Meta · Read or write: Read · Plan: All plans · Consumes a task: No · Preview supported: No
What it does
Asks Meta for a delivery estimate for a proposed audience and optimization goal. It returns a monthly audience size range and an audience size label on a five-step scale from too_narrow to very_broad. It sizes detailed targeting groups and demographics the same way adsap_create_ad_sets creates them. Meta no longer includes daily reach or outcome curves in these estimates. Use it to sanity-check targeting before you build an ad set.
When to use it
- Use it before you build an ad set, to check whether the audience is too small or too wide for the goal.
targeting_specneeds at least one country code. Detailed targeting IDs come fromadsap_search_detailed_targeting.- Detailed targeting goes in
targeting_spec.flexible_spec, the same groupsadsap_create_ad_setstakes: or inside a group, and between groups. Pass exactly the targeting you plan to create, so the number matches the ad set. - Meta combines the separate
interestsandbehaviorslists with and, so an audience built from both is smaller than either list alone. - A conversion goal needs a
promoted_object, for example a pixel ID and an event.daily_budgetis in cents. - Meta has removed the daily reach figure and the outcome curve from its estimates.
estimate_daucomes back as0anddaily_outcomes_curvecomes back empty, with a note indau_curve_note. - Size the audience from
estimate_mau_lower,estimate_mau_upperandaudience_size_assessment.
Worked example
You ask
“How many people in France like cooking or travel often, and are parents? Check it on act_1234567890 before we build the ad set.”
The assistant calls adsap_get_delivery_estimate
{
"ad_account_id": "act_1234567890",
"targeting_spec": {
"countries": ["FR"],
"flexible_spec": [
{
"interests": [
{ "id": "6003659420716", "name": "Cooking (food & drink)" }
],
"behaviors": [
{ "id": "6002714895372", "name": "Frequent Travelers" }
]
},
{
"family_statuses": [
{ "id": "6002714398372", "name": "Parents (All)" }
]
}
]
},
"optimization_goal": "LINK_CLICKS"
}Adsap returns
The field names are the ones Adsap returns. The values are examples.
{
"ad_account_id": "act_1234567890",
"optimization_goal": "LINK_CLICKS",
"targeting_summary": "Countries: FR. Detailed targeting: (Cooking (food & drink) or Frequent Travelers) and Parents (All)",
"estimate_dau": 0,
"estimate_mau_lower": 5900000,
"estimate_mau_upper": 6900000,
"daily_outcomes_curve": [],
"delivery_curve_available": false,
"dau_unavailable": true,
"dau_curve_note": "Meta removed estimate_dau and daily_outcomes_curve from delivery estimates (v26, all versions from 2026-10-27). Use estimate_mau_lower / estimate_mau_upper + audience_size_assessment for sizing guidance.",
"audience_size_assessment": "broad"
}How to read it
targeting_summary states the logic in words: people who like cooking or travel often, and are parents. estimate_mau_lower and estimate_mau_upper are Meta’s range of monthly active people who match the targeting. audience_size_assessment labels the midpoint of that range. Under 10,000 is too_narrow, under 100,000 is narrow, under 1 million is moderate, under 10 million is broad, and anything above is very_broad. Here 6.4 million people is broad.
Each extra group narrows the audience, and each extra item inside a group widens it. delivery_curve_available is false and dau_unavailable is true because Meta no longer sends those figures. The payload also carries a human_readable_summary sentence. If the label is too_narrow, widen the targeting and run the estimate again.
Parameters
Descriptions are shortened from the tool schema. Your assistant sees the full text.
| Name | Type | Required | Description |
|---|---|---|---|
ad_account_id | string | Yes | Must include act_ prefix. |
targeting_spec | object | Yes | Targeting specification. Must include at least countries. Detailed targeting and demographics go in flexible_spec groups (a top-level demographic key is rejected). |
targeting_spec.countries | array of string | Yes | ISO 3166-1 alpha-2 codes (e.g. [‘FR’, ‘DE’]). |
targeting_spec.age_min | number | No | |
targeting_spec.age_max | number | No | |
targeting_spec.genders | array of number | No | [0]=all, [1]=male, [2]=female. |
targeting_spec.interests | array of object | No | |
targeting_spec.behaviors | array of object | No | |
targeting_spec.locales | array of number | No | |
targeting_spec.flexible_spec | array of object | No | 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. |
optimization_goal | one of OFFSITE_CONVERSIONS, LINK_CLICKS, IMPRESSIONS, REACH, LANDING_PAGE_VIEWS, LEAD_GENERATION, VALUE, APP_INSTALLS | Yes | Optimization goal for the estimate. |
daily_budget | number | No | Daily budget in cents. If provided, estimates are budget-constrained. |
promoted_object | object | No | Required for conversion goals. E.g. { pixel_id: ‘123’, custom_event_type: ‘Purchase’ }. |
promoted_object.pixel_id | string | No | |
promoted_object.custom_event_type | string | No | |
promoted_object.page_id | string | No | |
promoted_object.application_id | string | No | |
promoted_object.object_store_url | string | No |
Example prompts
- “How large is the audience of women 25 to 44 in France, optimizing for purchases?”
- “How many people in France like cooking or travel often, and are parents?”
- “Is this targeting broad enough before I build the ad set?”
Notes
Conversion goals need a promoted object, such as a pixel and an event. The targeting must include at least one country. Demographics such as parents or job titles go inside a flexible_spec group, never at the top level of targeting_spec.
Related tools
adsap_search_behaviors: Search Meta behavior targeting by keyword/category.adsap_search_geo_locations: Search Meta city/region location keys for targeting.adsap_search_interests: Search Meta interest targeting by keyword.
Guide
Read Audiences and targeting for the workflow around this tool, and the Tool reference for every tool.
The Meta Ads MCP server page shows how to connect Meta Ads to Claude, ChatGPT or Perplexity.