Appearance
Asset Customization Rules
Updated: Jun 28, 2026
Use asset customization rules to define which creative assets appear in your ads. At the time of ad creation, you can pick the combination of assets you want to display, based on your asset customization rules. Examples of creative assets are images, videos, text, and ad body.
Three APIs use asset customization rules:
- Placement Asset Customization: Customize the creative assets displayed in different ad placements.
- Multi-Language Ads: Customize different parts of ad creative such as the image, video, text, and body of an ad to reach speakers of different languages.
- Segment Asset Customization: Customize ad assets according to targeting types.
All ads using asset_feed_spec must contain at least two target customization rules. If your creative uses asset_feed_specand includes fewer than two rules, you will not be able to create that ad.
Get started
- Step 1: Create ad campaign and ad set.
- Step 2: Provide the ad creative.
- Step 3: Create your ad.
- Step 4: Get insights and analyze your results.
Step 1: Create campaign and ad set
You can create a standard ad campaign for asset customization rules, but there are limitations:
| API | Supported campaign objectives |
|---|---|
| Segment Asset Customization | APP_INSTALLS, BRAND_AWARENESS, CONVERSIONS, LINK_CLICKS, REACH, VIDEO_VIEWS. |
| Placement Asset Customization | APP_INSTALLS, BRAND_AWARENESS, CONVERSIONS, LEAD_GENERATION, LINK_CLICKS, REACH, VIDEO_VIEWS. |
| Multi-Language Ads | APP_INSTALLS, BRAND_AWARENESS, CONVERSIONS, LINK_CLICKS, REACH, VIDEO_VIEWS. |
For the Ad Set, use the standard ad set endpoint and set is_dynamic_creative to false.
To create an ad set in a campaign with optimization_goal set to conversions:
curl \
-F 'status=PAUSED'
-F 'name=Sample Ad Set'
-F 'campaign_id=<CAMPAIGN_ID>'
-F 'optimization_goal=OFFSITE_CONVERSIONS'
-F 'is_dynamic_creative=false'
-F 'lifetime_budget=1000'
-F 'promoted_object={"pixel_id": "<PIXEL_ID>", "custom_event_type": "PURCHASE"}'
-F 'billing_event=IMPRESSIONS'
-F 'bid_strategy=LOWEST_COST_WITHOUT_CAP'
-F 'targeting={"geo_locations": {"countries": ["US"]}}'
-F 'start_time=2019-04-02'
-F 'end_time=2019-04-09'
-F 'access_token=<ACCESS_TOKEN>'
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adsetsIf you use asset_feed_spec with an ad set optimized for APP_INSTALLS, specify link_url, such as https://www.example.com. The link_urlmust be the same asobject_store_url in promoted_object. Provide only one link_url parameter in asset_feed_spec.
asset_feed_spec provides creative for Dynamic Creative, Placement Asset Customization, Multi-Language Ads, and Segment Asset Customization. The spec's format is different for each solution.
Step 2: Provide the ad creative
Provide your creative through asset_feed_spec. An asset feed is a collection of different creative elements, such as images, titles, bodies, and so on. You can specify multiple creative assets for each asset type.
Create an asset_feed_spec at /adcreative. To apply customization options, set asset_customization_rules inside your asset_feed_spec.
- Asset Feed Setup for Placement Asset Customization
- Asset Feed Setup for Multi-Language Ads
- Asset Feed Setup for Segment Asset Customization
After setup, verify your asset_feed_spec:
curl -G
-d "access_token=<ACCESS_TOKEN>"
-d "fields=asset_feed_spec"
https://graph.facebook.com/v25.0/<AD_CREATIVE_ID>Step 3: Create your ad
When you create your ad, provide a reference to the creative ID. You can create multiple ads per ad set.
curl
-F 'name=Asset Custom Rule Ad'
-F 'adset_id=<ADSET_ID>'
-F 'access_token=<ACCESS_TOKEN>'
-F 'creative={
"creative_id": <CREATIVE_ID>,
}'
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adsAfter creation:
- Your campaign appears in Ads Manager.
- Meta reviews your ad and checks if it meets our Advertising Policies.