account | DynamicAccount | Yes | - | Select the Meta Ads account, ask the user for it if not provided |
page | string or SelectItem | Yes | - | Select Facebook page, ask the user for it if not provided |
instagram_user_id | string or SelectItem | No | - | Optional Instagram account override. Leave empty in nearly all cases — the Instagram account linked to the selected Page is used automatically. Only set this when the user wants to advertise with a different Instagram account they have access to. Value is the numeric IG user/business account id. |
structured_data | array (also accepts a comma-separated string) | Yes | - | Structured data containing carousel ad information. Each row represents one carousel ad with multiple cards (2-10 cards per ad). Required columns: adset_id, ad_name, ad_status, primary_text, website_url, card_1_media_url, card_1_headline, card_2_media_url, card_2_headline. Optional columns: card_N_description, card_N_website_url, card_N_call_to_action, card_N_story_media_url (for placement optimization), form_id (for lead form ads), disable_creative_enhancements (set to True to disable Meta’s automatic creative optimizations), disable_multi_advertiser_ads (set to True to opt out of showing your ad alongside other ads), pixel_id (optional, leave empty to inherit from adset and account), ad_start_time (schedule ad start, format: YYYY-MM-DD HH:MM or YYYY-MM-DD, in the ad account’s timezone), ad_end_time (schedule ad end, format: YYYY-MM-DD HH:MM or YYYY-MM-DD, in the ad account’s timezone). IMPORTANT: For additional cards (3-10), if ANY field is provided for a card, then both card_N_media_url AND card_N_headline become required. No incomplete card data allowed. Video thumbnails are auto-generated. Note: user can provide direct media URLs or Google Drive share links; Markifact will convert Drive links to direct URLs automatically, the only requirement is that the file sharing is set to ‘Anyone with the link’. |
creative_only | boolean | No | False | Set to true to create only the Meta ad creative without creating an ad. Useful when editing an existing ad: create a new creative with the updated carousel cards, media, text, or URLs, then attach it using replace_ad_creative. When true, adset_id is not required since you’re not creating a new ad, just an ad creative. Returns creative IDs instead of ad IDs. Default is false. |
return_detailed_results | boolean | No | False | If true, returns per-row results (success_count, failed_count, total_count, results[]) and does NOT raise an error on partial failures so the workflow can continue. If false (default), returns a simple summary and raises an error if any row fails. |