Flexible Targeting

Combine different targeting options to reach a specific set of users in the flexible_spec with AND and OR statements. Facebook evaluates targeting in flexible_spec via AND with all segments outside the spec such as age, gender, geo locations. We also evaluate each top level array element in flexible_spec with AND; we evaluate second-level array elements with OR.

Targeting segments, such as behaviors specified inside flexible_spec, are not available for use outside of flexible_spec.

Fields

Field Description

flexible_spec

type: JSON Object

Array of arrays. Each contains a targeting segment in appropriate format, such as interests, behaviors, and demographics. The top level array has a limit of 25 and secondary level array has a limit of 1,000.

Use these fields in flexible targeting:

  • custom_audiences
  • interests
  • behaviors
  • college_years
  • education_majors
  • education_schools
  • education_statuses
  • family_statuses
  • income
  • industries
  • life_events
  • user_adclusters
  • work_positions
  • work_employers

Examples

Flexible Targeting

To target people who live in the U.S, aged between 18-43, who have not recently moved and are travelers or like soccer or movies and are newlyweds or like music:

curl \
  -F 'name=My AdSet' \
  -F 'optimization_goal=REACH' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'bid_amount=150' \
  -F 'daily_budget=2000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "age_max": 43, 
    "age_min": 18, 
    "flexible_spec": [ 
      { 
        "behaviors": [{"id":6002714895372,"name":"Frequent Travelers"}], 
        "interests": [ 
          {"id":6003107902433,"name":"Association football (Soccer)"}, 
          {"id":6003139266461,"name":"Movies"} 
        ] 
      }, 
      { 
        "interests": [{"id":6003020834693,"name":"Music"}], 
        "life_events": [{"id":6002714398172,"name":"Newlywed (1 year)"}] 
      } 
    ], 
    "geo_locations": {"countries":["US"]} 
  }' \
  -F 'status=ACTIVE' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets

With this flexible spec, the resulting audience is:

(segment 1 or segment2 or segment3) and (segment 4 or segment 5) and segment 6

flexible_spec=
[
  {
    'segment_type':[segment1, segment2], 
    'segment_type':[segment3]
  },
  { 
    'segment_type':[segment4, segment5]
  },
  { 
    'segment_type':[segment6]
  }
]