Opus Growth

Create Meta Instagram Post Ad

Turns an EXISTING Instagram post/Reel into an ad (Ads Manager's "Use existing post → Instagram").

Type
Makes changes
Credits
8
Platform
Meta Ads
Approval
Preview first, applied after you approve

What it does

Turns an EXISTING Instagram post/Reel into an ad (Ads Manager's "Use existing post → Instagram"). No new creative — the organic Instagram media runs as-is. This WORKS TODAY and needs no Instagram content permission: it is a pure Marketing API write (AdCreative source_instagram_media_id + instagram_user_id, no object_story_id). ig_media_id is the Instagram media id — from list_meta_instagram_posts (media_id, including its advertised_media list) or from Ads Manager → Use existing post → Instagram. The connected Instagram account is resolved automatically from page_id, or from the ad account when neither page_id nor ig_user_id is given; pass ig_user_id directly (list_meta_instagram_accounts) when the account has no Facebook Page. CLICK-TO-WHATSAPP / MESSENGER FROM AN ORGANIC POST: welcome_message = the ready-written text that auto-populates the person's WhatsApp/Messenger compose box (without it the thread opens empty, so it looks like the business started the conversation and the business's auto-reply never fires), greeting = optional in-thread greeting, ice_breakers = up to 4 tappable quick replies (≤80 chars each; they replace the auto-fill). Engagement still accrues on the ORGANIC post. Leave cta_type empty and the button is derived from the ad set's destination_type — that is the normal path; only pass cta_type (WHATSAPP_MESSAGE / SEND_MESSAGE) together with link when you want to override it, because Meta rejects a call-to-action with no link on this creative. Advantage+ creative enhancements are OFF by default; pass enhancements only to explicitly enroll named features, and the result verifies the enrollment. To add a welcome message to an ad that ALREADY exists, use update_meta_instagram_post_ad — it keeps the organic post, the ad id and its learning. The ad is created PAUSED and goes through Meta review. confirm=false = preview.

MCP: create_meta_instagram_post_ad

How to use it

You don't call tools by name. Write what you want in ChatGPT, Claude or another assistant connected to Opus Growth, in your own words; it picks this tool when it fits.

Because this tool changes your account, your assistant first shows a preview of exactly what will change. Nothing is applied until you say yes, and every applied change is written to your audit log.

Parameters

NameTypeRequiredDefault
account_idstringRequired·Advertising account identifier to query or change. Use the exact ID returned by the relevant account-listing tool, not the display name.
adset_idstringRequired·Exact adset identifier to target. Use the ID returned by an Opus Growth list or create operation, not a display name.
namestringRequired·Human-readable name for the resource being created or updated.
ig_media_idstringRequired·Exact ig media identifier to target. Use the ID returned by an Opus Growth list or create operation, not a display name.
page_idstringOptional·Exact page identifier to target. Use the ID returned by an Opus Growth list or create operation, not a display name.
ig_user_idstringOptional·Exact ig user identifier to target. Use the ID returned by an Opus Growth list or create operation, not a display name.
welcome_messagestringOptional·Exact welcome message value for create meta instagram post ad. Supply text in the provider's required format; when it selects an existing resource, use the exact identifier returned by the relevant list or search operation.
greetingstringOptional·Exact greeting value for create meta instagram post ad. Supply text in the provider's required format; when it selects an existing resource, use the exact identifier returned by the relevant list or search operation.
ice_breakersarrayOptional·Ice breakers value for create meta instagram post ad. Follow the documented provider format and use values returned by Opus Growth discovery tools where possible.
cta_typestringOptional·Call-to-action button type accepted by the provider, such as LEARN_MORE or SIGN_UP.
linkstringOptional·Destination link or link object for the ad or resource, in the provider format required by this operation.
enhancementsarrayOptional·Creative-enhancement settings object accepted by the provider for this ad or creative.
statusstringOptionalPAUSEDDesired provider status for this resource; choose an allowed value from this schema.
confirmbooleanOptionalfalseSafety confirmation for a state-changing operation. Leave false to preview or validate; set true only after the user explicitly approves the shown change.