Targeting Description

Get a human-readable descriptions for a set of targeting specs. To read targeting descriptions for specific ads make an HTTP GET to https://graph.facebook.com/{AD_ID}/targetingsentencelines.

Targeting Description for Existing Ads

To get targetingsentencelines connection of an existing ad:

use FacebookAds\Object\Ad;

$ad = new Ad(<AD_ID>);
$targeting_description = $ad->getTargetingDescription();

// Output targeting description
foreach ($targeting_description->targetingsentencelines as $description) {
  echo $description['content'].PHP_EOL;
  foreach ($description['children'] as $child) {
    echo "\t".$child.PHP_EOL;
  }
}
from facebookads.adobjects.ad import Ad

ad = Ad(<AD_ID>)
targeting_description = ad.get_targeting_sentence_lines().get_one()

# Output the targeting description
for description in targeting_description['targetingsentencelines']:
    print(description['content'])
    for child in description['children']:
        print("\t" + child)
curl -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.5/<AD_ID>/targetingsentencelines

The response:

{
    "id": "<AD_ID>/targetingsentencelines",
    "targetingsentencelines": [
    {
        "content": "Location - Living In:",
        "children": [
            "Japan",
            "United States"
        ]
    },
    {
        "content": "Age:",
        "children": [
            "20 - 24"
        ]
    },
    {
        "content": "Gender:",
        "children": [
            "Male"
        ]
    }]
}

Responses contain these fields:

Name Description

id

type: string

ID of targetingsentencelines.

targetingsentencelines

type: array of JSON objects

Human-readable description of the targeting spec. Each object contains content or targeting type, and children or targeting spec. This field only takes effective placements into consideration.

Targeting Description for Ad Accounts

You can also get targeting descriptions a targeting spec with a HTTP GET for an ads account at https://graph.facebook.com/{AD_ACCOUNT_ID}/targetingsentencelines.

For example, to get targeting descriptions for people who live in the US or Japan and are males between the age of 20-24:

use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\TargetingFields;
use FacebookAds\Object\Targeting;

$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$targeting = new Targeting();
$targeting->setData(array(
  TargetingFields::GEO_LOCATIONS => array(
    'countries' => array('US', 'JP')
  ),
  TargetingFields::GENDERS => array(1),
  TargetingFields::AGE_MIN => 20,
  TargetingFields::AGE_MAX => 24,
));

$params = array(
  'targeting_spec' => $targeting->exportData(),
);

foreach ($account->getTargetingSentenceLines(array(), $params) as $description) {
  echo $description->{'content'}.PHP_EOL;
  foreach ($description->{'children'} as $child) {
    echo " - ".$child.PHP_EOL;
  }
}
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.targeting import Targeting

account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
    'targeting_spec': {
        Targeting.Field.geo_locations: {
            Targeting.Field.countries: ['US', 'JP'],
        },
        Targeting.Field.genders: [1],
        Targeting.Field.age_min: 20,
        Targeting.Field.age_max: 24,
    },
}

targeting_description = account.get_targeting_sentence_lines(params=params) \
    .get_one()

# Output the targeting description
for description in targeting_description['targetingsentencelines']:
    print(description['content'])
    for child in description['children']:
        print("\t" + child)
curl -G \
  --data-urlencode 'targeting_spec={ 
    "age_max": 24, 
    "age_min": 20, 
    "genders": [1], 
    "geo_locations": {"countries":["US","JP"]} 
  }' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/targetingsentencelines

Response:

{
    "params": {
        "genders": [1],
        "age_min": 20,
        "age_max": 24,
        "geo_locations": {
            "countries": [
                "US",
                "JP"
            ]
        }
    },
    "targetingsentencelines": [{
        "content": "Location - Living In:",
        "children": [
            "Japan",
            "United States"
        ]
    }, {
        "content": "Age:",
        "children": [
            "20 - 24"
        ]
    }, {
        "content": "Gender:",
        "children": [
            "Male"
        ]
    }]
}

Additional parameters include:

Name Description

targeting_spec

type: JSON object

Required.

Get targeting description for this targeting specs.

hide_targeting_spec_from_return

type: bool

Optional.

Whether response has requested targeting_spec included. Default false.

Responses have these fields:

Name Description

targetingsentencelines

type: array of JSON objects

The human-readable description of targeting spec. Each object has content or targeting type and children or targeting spec.

params

type: JSON object

The targeting spec you provided.

params can differ from what you provide if Facebook autocorrects your parameters. For example, if you request {'age_min':10}, params, the reponse is {'age_min':13} which is the minimum supported.