Placement Asset Customization

Placement Asset Customization allows you to customize the image or video creative you want to appear per each placement, allowing you to use several different placements in one ad while retaining control over the creative.

High-Level Steps

Asset Feed

Create an asset_feed_spec with rules for custom assets by specifying asset_customization_rules. You can provide asset customization rules for an asset feed. For each rule, you need to specify the customization_spec and the asset labels. You should provide conditions in customization_spec for a single rule.

Property Name Description Type Required

customization_spec

Assets in the rule display in these placements.

See table below for allowed fields.

Required.

image_label

Label attached the image assets in asset_feed_spec which displays.

{"name": "{LABEL_NAME}"}`

Required for SINGLE_IMAGE format.

video_label

Label attached the video assets in asset_feed_spec which displays.

{"name": "{LABEL_NAME}"}`

Required for SINGLE_VIDEO format.

Fields allowed in customization_spec:

Property Name Options Required

publisher_platforms

facebook, instagram, audience_network

Required.

facebook_positions

feed

Not required.

instagram_positions

stream, story

Not required.

audience_network_positions

classic

Not required.

device_platforms

mobile, desktop

Not required.

See also all available options for Asset Feed Spec.

For example:

curl 
  -F 'object_story_spec={
       "page_id": "PAGE-ID",
       "instagram_actor_id": "INSTAGRAM-ID",
     }' 
  -F 'asset_feed_spec={
    "videos": [
      {
        "adlabels": [
          {
            "name": "labelfb",
          }
        ],
        "video_id": "10154618295707554"
      },
      {
        "adlabels": [
          {
            "name": "labelig",
          }
        ],
        "video_id": "10154618298562554"
      }
    ],
    "bodies": [
      {
        "text": "Begin Your Adventure"
      }
    ],
    "link_urls": [
      {
        "website_url": "WEBSITE_URL",
        "display_url": "DISPLAY_URL"
      }
    ],
    "titles": [
      {
        "text": "Level Up"
      }
    ],
    "ad_formats": [
      "SINGLE_VIDEO"
    ],
    "call_to_action_types": [
      "WATCH_MORE"
    ],
    "descriptions": [
      {
        "text": ""
      }
    ],
    "asset_customization_rules": [
      {
        "customization_spec": {          
          "publisher_platforms": [
            "facebook"
          ],          
          "facebook_positions": [
            "feed",
            "instream_video"
          ]
        },
        "video_label": {
          "name": "labelfb",
        }
      },
      {
        "customization_spec": {          
          "publisher_platforms": [
            "instagram"
          ],          
          "instagram_positions": [
            "stream"           
          ]
        },
        "video_label": {
          "name": "labelig",
        }
      }
    ]
  }' 
https://graph.facebook.com/API_VERSION/act_AD_ACCOUNT_ID/adcreatives

To verify this, read asset_feed_spec from ad creative:

curl -G 
-d "access_token=ACCESS_TOKEN"
-d "fields=asset_feed_spec" 
https://graph.facebook.com/API_VERSION/AD_CREATIVE_ID