Back to News for Developers

Dynamic Creative

September 28, 2017ByZain Aziz

Deciding on what creative works best for a target audience or placements can sometimes be a challenge for your clients who advertise at scale.

At Facebook, we believe in building systems that do a better job at finding the best creative for an audience. This system is Dynamic Creative.

Dynamic Creative is a solution that automatically delivers the best combinations of your creative assets.

Dynamic Creative is geared towards performance-driven marketers who use manual techniques to find the best performing ad creative to use for a target audience. We've seen strong performance results in a wide variety of verticals, including gaming, e-commerce, entertainment, retail, auto, travel, and technology.

Starting today, Dynamic Creative is available in the Marketing APIs, with an initial phased rollout in [Ads Manager](

Decide the best creative for your audience

Discover what combinations of creative assets performs best for your audiences. Today, advertisers can optionally:

  • Manually create ads with permutations of assets and audience, which is arduous and time intensive.
  • Use the API to create hundreds and thousands of permutations of audiences and creatives, which is expensive and complex to manage.

Advertisers can use Dynamic Creative to automatically explore and spend on permutations of an ad creative (pictures, title, descriptions, call to action (CTA), and so on) across an audience and placements.

Instead of creating full ads, advertisers can provide Facebook with a creative asset feed of their images, titles, videos, and so on. The system then automatically generates the creative variants and finds the best performing combinations for the target audience.

Supported features with Dynamic Creative

Dynamic Creative supports these features:

  • Objectives—Conversions, mobile app installs, and website traffic
  • Formats—Single image, single video
  • Insights metrics—Basic asset-based insights
    • Breakdowns by asset type—Video, image, title, description, body, link, for all all the non-unique metrics
    • Breakdowns per asset+demographics—Image, age, gender, and so on
  • Placements
    • Facebook Feed (Desktop and Mobile)
    • Right Hand Column
    • Instagram Feed
    • Audience Network Classic
    • Audience Network Instream Video
    • Audience Network Rewarded Video
    • Instant Article
    • Suggested Video
    • Messenger Inbox
    • Not yet supported—Instagram Story, Messenger Thread
  • Creative variations dimensions:
    • Title
    • Image or video
    • Body
    • Description
    • CTA

Create a conversions ad using dynamic creative

Step 1: Create a campaign where:

  • objective—Must be CONVERSIONS.
  • buying_type—Must be AUCTION (default) or left blank.

curl \
-F "name=Dynamic Creative Sample Campaign" \
-F "objective=CONVERSIONS" \
-F "access_token=<ACCESS_TOKEN>" \<API_VERSION>/act_<AD_ACCOUNT_ID>/campaigns

Step 2: Create an ad set using these parameters:

  • optimization_goal=CONVERSIONS
  • is_autobid or bid_amount—Must specify one, must match bidding type and value for regular ad set if you're comparing Dynamic Creative ads and regular ads.
  • promoted_object—For pixel conversion, must provide pixel_id and custom_event_type. For app engagement, must provide application_id, custom_event_type, and object_store_url.
  • targeting='publisher_platforms':['facebook', 'audience_network']
  • lifetime_imps—Don't use.

curl \
  -F "name=Dynamic Creative Ad Set" \
  -F "campaign_id=<CAMPAIGN_ID>" \
  -F "optimization_goal=OFFSITE_CONVERSIONS" \
  -F "billing_event=IMPRESSIONS" \
  -F "is_autobid=true" \
  -F "promoted_object={'pixel_id':<PIXEL_ID>, 'custom_event_type':<EVENT_TYPE>}" \
  -F "lifetime_budget=500000" \
  -F "end_time=1461974400" \
  -F "targeting={
       'publisher_platforms':['facebook', 'audience_network'],
     }" \
  -F "access_token=<ACCESS_TOKEN>" \<API_VERSION>/act_<AD_ACCOUNT_ID>/adsets

Step 3: Create an ad creative.

If applicable, specify asset_feed_id or asset_feed_spec, page_id, and instagram_actor_id on the ad creative.

  • asset_feed_spec allows you to create the asset feed inline with the creative.
  • asset_feed_id requires you to create the asset feed first, then reference it in ad creative creation.

Example—Create a Dynamic Creative ad creative with asset_feed_spec; see asset feed parameters.

curl \
  -F 'access_token=<ACCESS_TOKEN>' \
  -F 'object_story_spec={
       "page_id": "<YOUR_PAGE_ID>"
       "instagram_actor_id" : "<INSTAGRAM_ACTOR_ID>", // only used for instagram placement
    }' \
  -F "asset_feed_spec={'images': [{'hash':'1cd8e1b5de5a76c24f989d94160bfb06'},   {'hash':'2cd8e1b5de5a76c24f989d94160bfb06'}], 'bodies': [{'text':'Begin Your Adventure'}, {'text':'Once a Trainer, always a Trainer.'}], 'titles': [{'text':'Level Up'}, {'text':'Swipe to evolve'}], 'descriptions': [{'text':'Begin Your Adventure'}], 'ad_formats': ['SINGLE_IMAGE'], 'link_urls': [{'website_url':'<WEBSITE_URL>'}]}" \<VERSION>/act_<AD_ACCOUNT_ID>/adcreatives

Step 4: Create an conversions ad using Dynamic Creative.

curl \
  -F 'name=Dynamic Creative Ad' \
  -F 'adset_id=<ADSET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  -F 'creative={
      "creative_id": <CREATIVE_ID>,
   }' \<VERSION>/act_<AD_ACCOUNT_ID>/ads

Now your ad will go to Facebook Ad Review before the campaign runs. Facebook verifies that your ad meets Facebook Advertising Policies.

Learn more about Dynamic Creative.