Skip to content

Commit d0ce1ee

Browse files
authored
docs(create_ad_creative): promote Placement Asset Customization to a named mode (#126)
The PAC path (optimization_type=PLACEMENT + labelled videos[]/images[] + asset_customization_rules) was documented only inside individual parameter docs. Add it as a first-class mode in the top-of-docstring summary so callers can discover the dual-aspect, non-Dynamic-Creative shape without reading every parameter description. Notes the label-matching requirement and the matching error_subcode 1487390.
1 parent 14d7371 commit d0ce1ee

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

‎meta_ads_mcp/core/ads.py‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1629,13 +1629,19 @@ async def create_ad_creative(
16291629
"""
16301630
Create a new ad creative using an uploaded image hash, video ID, or an existing post.
16311631
1632-
Supports five creative modes:
1632+
Supports six creative modes:
16331633
- **Existing post**: Provide object_story_id (format: {page_id}_{post_id}) to promote an existing
16341634
organic or published post. No image_hash or video_id required. Optionally combine with
16351635
asset_customization_rules to attach a 9:16 video for Story/Reels placements.
16361636
- **Simple image/video**: Single image_hash or video_id with object_story_spec
16371637
- **Multi-variant copy**: Use plural text params (messages[], headlines[], descriptions[]) to test
16381638
multiple text variants with a single image/video. No optimization_type or is_dynamic_creative needed.
1639+
- **Placement Asset Customization (dual-aspect, non-DC)**: Serve different aspect ratios per placement
1640+
on a STANDARD ad set without is_dynamic_creative and without the one-ad-per-ad-set cap. Set
1641+
optimization_type="PLACEMENT" and pass videos=[{video_id, label}, ...] (or images=[{image_hash,
1642+
label}, ...]) together with asset_customization_rules whose customization_spec references those
1643+
labels via video_label/image_label. Every label in the rules MUST appear on a videos[]/images[]
1644+
entry, or Meta returns error_subcode=1487390 ("Adcreative Create Failed").
16391645
- **Dynamic Creative**: Multiple variants with dynamic_creative_spec (requires is_dynamic_creative on ad set)
16401646
- **FLEX/DOF (Advantage+)**: Set optimization_type="DEGREES_OF_FREEDOM" for Meta to auto-optimize
16411647
across all asset combinations without requiring is_dynamic_creative on the ad set

0 commit comments

Comments
 (0)