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
.
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 |
---|---|
type: string | ID of |
type: array of JSON objects | Human-readable description of the targeting spec. Each object contains |
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 |
---|---|
type: JSON object | Required. Get targeting description for this targeting specs. |
type: bool | Optional. Whether response has requested |
Responses have these fields:
Name | Description |
---|---|
type: array of JSON objects | The human-readable description of targeting spec. Each object has |
type: JSON object | The targeting spec you provided. |