Segment Asset Customization

Beyond customization based on ad placements, you can also customize assets based on other targeting types in a single ad.

High-Level Steps

Asset Feed

Provide different creatives at the ad set level for each unique audience. Specify rules to define each of these audiences and their associated creative. The supported customization types, based on usefulness are:

The format you should use to specify a rule is similar to the format for core targeting, see Targeting.

Rule Priority

When you set up rules, you can specify a priority for each rule. If you do not set a priority for each rule, we give each rule a priority number based on its position in the rules as provided. For example, the first rule on the list is assigned 1 and the last one gets priority number equal to the total number of rules.

Default Rule

Individual rules combined typically result in targeting at the ad set level which avoids delivering a random combination of assets to people who do not match any rules.

However, to actively prevent this scenario, you should also set up a default rule. We evaluate each rule in the ascending order of priority assigned to match a given user. To set up a default:

  • Create an empty customization_spec, with only opening and closing curly braces at the end of your rules, {}.
  • Assign this rule the lowest priority, which is the highest number, such as 101 if you already have 100 rules.

The default rule matches a creative asset to people who do not satisfy any preceding rules. This enables Facebook to deliver a sufficient number of your Dynamic Creative ads.

In general, you should set up rules so that a high percentage of your targeted audience also matches your non-default rules.

To run Dynamic Creative ads with asset customization rules:

  • Follow the same steps you do for all other Dynamic Creative ads, see High-Level Steps.
  • Create your feed with customization rules as described below.

Create asset_feed_spec with Customization Rules

Create an asset_feed_spec with asset customization rules by specifying asset_customization_rules fields in API spec. You can provide up to 50 multiple asset customization rules. For each rule, you need to specify the customization_spec, priority and the asset labels. You should provide no more than 50 conditions in customization_spec for a single rule.

See also all available options for Asset Feed Spec.

curl \
-F 'object_story_spec={
       "page_id": "<YOUR_PAGE_ID>",
       "instagram_actor_id" : "<INSTAGRAM_ACTOR_ID>"
    }' \
-F 'asset_feed_spec={
 "images": [
   {"hash":"<IMAGE_HASH>", "adlabels":[{"name":"image1"}]}, 
   {"hash":"<IMAGE_HASH>", "adlabels":[{"name":"image2"}]}
 ], 
 "bodies": [
   {"text":"Motor City Mission Corps", "adlabels":[{"name":"body1"}]}
 ], 
 "titles": [
   {"text":"Link title 1 goes here", "adlabels":[{"name":"title1"}]}, 
   {"text":"Link title 2 goes here", "adlabels":[{"name":"title2"}]},
   {"text":"Link title 3 goes here", "adlabels":[{"name":"title3"}]}
 ], 
 "call_to_action_types":[
   "LEARN_MORE"
 ],
 "descriptions": [
   {"text":"Begin Your Adventure"}
 ], 
 "ad_formats": [
   "SINGLE_IMAGE"
 ], 
 "link_urls": [
   {"website_url":"https://www.example.com/"}
 ],
 "asset_customization_rules": [
   { 
     "customization_spec": {
        "age_min": 18,
        "age_max": 24
     },
     "image_label": {"name": "image1"},
     "title_label": {"name": "title1"},
     "priority": 1
   },
   {
     "customization_spec": {
       "age_min": 25,
       "age_max": 34
     }, 
     "image_label": {"name": "image1"},
     "title_label": {"name": "title2"},
     "priority": 2
   },
   {
     "customization_spec": {
       "geo_locations": {
         "cities": [
           {"key": "2481714"},
           {"key": "2481868"}
         ]
       }
     },
     "image_label": {"name": "image1"},
     "title_label": {"name": "title3"},
     "priority": 4
   },
   {
     "customization_spec": {}, 
     "image_label": {"name":"image2"},
     "title_label": {"name":"title1"},
     "priority": 5
  }]}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/API_VERSION/act_AD_ACCOUNT_ID/adcreatives

Create an ad with the ad creative.

curl \
-F "name=Asset Customization Rules Test" \
-F "adset_id=<ADSET_ID>" \
-F "creative={'creative_id':'<AD_CREATIVE_ID>'}" \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/API_VERSION/act_AD_ACCOUNT_ID/ads

Restrictions

ObjectivesBRAND_AWARENESS, REACH, LINK_CLICKS, APP_INSTALLS, CONVERSIONS, and VIDEO_VIEWS. For LINK_CLICKS and CONVERSIONS, app engagement is unsupported.

Placements — Facebook Feed; Instagram Feed; Instagram Story; Audience Network Native, Banner and Interstitial; Audience Network Rewarded Video; Audience Network In-stream Video.

Buying typeReach and frequency or AUCTION.

asset_feed_spec restrictions - Are the same as those for asset-feed based ads without customization rules, except for the following:

  • Each image or video must have a label attached.
  • Only one image or video should be eligible for display per individual asset_customization_rule.
  • Ad Formats — Two ad_formats are supported: SINGLE_IMAGE and SINGLE_VIDEO. Only one ad_format is allowed in one asset feed.
  • You can only provide one item in call_to_actions_types.
  • For each placement setting in an ad set's targeting, you should provide at least one asset_customization_rule for it.