Meta Ads / API Reference
meta_ads_create_whatsapp_adset
Meta Ads tool. Create a paused click-to-WhatsApp ad set, already set the way Meta's own editor sets one up. USE THIS RATHER THAN meta_ads_create_adset for any WhatsApp campaign. The defaults here are the ones the ad set editor fills in when you pick WhatsApp as the destination, and each of them is a way the ad set goes wrong if left at the generic website values: * optimization_goal=CONVERSATIONS -- 'maximise number of conversations'. The generic default, LINK_CLICKS, buys clicks that open WhatsApp and go no further; Meta does not even offer it for this destination. * destination_type=WHATSAPP -- otherwise the ad sends people to a website that a click-to-message ad has no link for. * promoted_object={page_id} -- the Page whose linked WhatsApp number receives the messages. Required; the ad set is rejected without it. * status=PAUSED -- nothing spends until the user has seen it. The parent campaign needs objective OUTCOME_ENGAGEMENT (or OUTCOME_LEADS / OUTCOME_SALES); create it with meta_ads_create_campaign first. The Page must already have a WhatsApp number connected -- that is done in Page settings, not through this API. For anywhere smaller than a country, build `targeting` from meta_ads_find_location and meta_ads_build_geo_targeting rather than writing geo_locations by hand. Args: name: Ad set name. campaign_id: Parent campaign ID (objective OUTCOME_ENGAGEMENT). page_id: Facebook Page ID whose WhatsApp number receives the messages. Run meta_ads_pages to list the Pages every connected login can reach. Find it with meta_ads_find_page. targeting: JSON targeting spec. account_id: Meta ad account ID. Leave blank for the default. daily_budget: Daily budget in smallest currency unit, e.g. '5000' for ₪50. Leave blank in CBO campaigns. lifetime_budget: Lifetime budget in smallest currency unit. status: Default PAUSED. billing_event: Default IMPRESSIONS. optimization_goal: Default CONVERSATIONS. Override only if the user asks for something else specifically. destination_type: Default WHATSAPP. MESSENGER and INSTAGRAM_DIRECT work here too if the user wants those instead. bid_strategy: Default LOWEST_COST_WITHOUT_CAP, which avoids the bid cap that other strategies then require. whatsapp_number: Optional. A specific number in international format when the Page has more than one connected. Blank uses the Page default.
This is a write tool: it creates whatsapp adset in your Meta Ads account. Claude asks you to confirm before it runs.
Ask Claude
You do not call this tool yourself. Ask for the outcome and the client picks the tool:
Create whatsapp adset in my Meta Ads account for [name], [campaign id], [page id].
It takes 4 required and 9 optional parameters.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name |
campaign_id | string | Yes | Campaign Id |
page_id | string | Yes | Page Id |
targeting | string | Yes | Targeting |
account_id | string | No | Account Id |
daily_budget | string | No | Daily Budget |
lifetime_budget | string | No | Lifetime Budget |
status | string | No | Status |
billing_event | string | No | Billing Event |
optimization_goal | string | No | Optimization Goal |
destination_type | string | No | Destination Type |
bid_strategy | string | No | Bid Strategy |
whatsapp_number | string | No | Whatsapp Number |
Related Meta Ads tools
meta_ads_create_ab_testmeta_ads_create_admeta_ads_create_ad_creativemeta_ads_create_adsetmeta_ads_create_adset_with_daypartingmeta_ads_create_advantage_plus_campaign
Before you can call it
This tool needs a connected Meta Ads account. The Meta Ads connect guide covers the OAuth flow and the permissions it asks for, and the quickstart gets a client talking to the server in about five minutes.
Workflows that use this
Rather than calling tools one at a time, these skills run a whole procedure against the same account:
Start free — 30 tool calls a month
No card required. Connect Google Ads, Meta Ads, GA4 or Search Console and ask Claude for the outcome — it picks the tool.