Data Dictionary¶
The data dictionary service allows you to get a list of the supported values for different Native object attributes.
Note
The maximum number of objects that can be retrieved in a single GET call is 500. For optimal results, we recommend fetching in batches no larger than 100. For more information about pagination, refer to Pagination.
Endpoint¶
Resource URI
https://api.gemini.yahoo.com/v3/rest/dictionary/
Supported data dictionary types
To retrieve a list of the supported dictionary types, make a GET call to the dictionary endpoint.
Example: GET call to retrieve supported dictionary types.
https://api.gemini.yahoo.com/v3/rest/dictionary
The response will be an array of all the supported dictionary types and a description for them:
{
"errors": null,
"response": [
{
"name": "All acceptable campaign language values",
"value": "language"
},
{
"name": "All acceptable campaign booking/billing country values",
"value": "country"
},
{
"name": "All acceptable advertiser timezone values",
"value": "timezone"
},
{
"name": "All acceptable interest currency values",
"value": "currency"
},
{
"name": "All acceptable interest segment values",
"value": "interest_segments"
},
{
"name": "All acceptable woeid values",
"value": "woeid"
}
]
}
The dictionary type values can be used in the URI in order to get a list of the supported values for those dictionary types (see examples below). Note that supported dictionary types may be added over time, in which case the array in the response will grow. The GET call required in order to retrieve this list will not change.
Example: Get a List of Supported Languages¶
To retrieve a list of the supported languages for advertisers and campaigns, make a GET call to the dictionary endpoint and specify “language” in the URI:
GET https://api.gemini.yahoo.com/v3/rest/dictionary/language
The response will be an array of all the supported values for the language
dictionary type, along with a name describing each value:
{
"errors": null,
"timestamp": "2016-01-20 22:32:44",
"response": [
{
"name": Arabic, "value": "ar"
},
{
"name": Danish, "value": "da"
},
{
"name": German, "value": "de"
},
{
"name": Greek, "value": "el"
},
{
"name": English, "value": "en"
},
....
]
}
Example: Get a List of Supported Languages For Call to Action Text¶
If a campaign is set to Spanish, for example, callToActionText
won’t accept the values in English. You’ll need to use enum values, shown in the table below, which are supported for multiple languages in the data dictionary.
Make a GET call to these specific endpoints, depending on your choice of language:
English (which is the default):
https://api.gemini.yahoo.com/v3/rest/dictionary/call_to_action_text/
Spanish:
https://api.gemini.yahoo.com/v3/rest/dictionary/call_to_action_text/?language=es
French:
https://api.gemini.yahoo.com/v3/rest/dictionary/call_to_action_text/?language=fr
Japanese:
https://api.gemini.yahoo.com/v3/rest/dictionary/call_to_action_text/?language=ja
A response example looks like this:
{
"errors": null,
"timestamp": "2020-07-16 0:19:35",
"response": [
"Follow Now",
"Join Now",
"Start Now",
"Search Now",
"Read Now",
"Explore",
...
]
}
Example: Get a List of Supported Devices¶
To get a list of supported devices, make the following GET call:
GET https://api.gemini.yahoo.com/v3/rest/dictionary/device
The response will be an array of all the supported values for the device
dictionary type, along with a name describing each value:
{
"errors": null,
"response":
[
{ "value": "DESKTOP",
"name": "Desktop"
},
{ "value": "SMARTPHONE",
"name": "SmartPhone"
},
{ "value": "TABLET",
"name": "Tablet"
},
{ "value": "MOBILE_SMART_PHONES_APPLE",
"name": "Mobile/Smart Phones/Apple"
},
{ "value": "MOBILE_SMART_PHONES_APPLE_IPHONE",
"name": "Mobile/Smart Phones/Apple/iPhone"
},
{ "value": "MOBILE_SMART_PHONES_SAMSUNG",
"name": "Mobile/Smart Phones/Samsung"
},
...
]
}
Example: Get a List of Supported Currencies¶
To get a list of supported currencies, make the following GET call:
GET https://api.gemini.yahoo.com/v3/rest/dictionary/currency
The response will be an array of all the supported values for the “currency” dictionary type, along with a name describing each value:
{
"errors": null,
"timestamp": "2016-01-20 22:32:44",
"response":
[
{
"name": null, "value": "DKK"
},
{
"name": null, "value": "NZD"
},
{
"name": null, "value": "CNY"
},
{
"name": null, "value": "ILS"
},
{
"name": null, "value": "USD"
},
....
]
}
Looking up currency details by type
To get a list of specific currency information such as minimum budget or bid values, make the following GET call:
GET https://api.gemini.yahoo.com/v3/rest/dictionary/currency?code=USD
The response will include the relevant currency information:
{
"errors": null,
"timestamp": "2016-01-20 22:33:39",
"response":
{
"minCampaignBudget": 5,
"minBidCpm": 0.25,
"minBidCpmVideo": 4,
"minBidCpv": 0.01,
"minBidCpc": 0.05
}
}
Example: Get a List of Supported WOEIDs¶
WOEIDs represent location ids that are used for geo targeting on Native (refer to the targeting attribute service documentation for more details on working with WOEIDs). WOEIDs are different than other data dictionary types in that you need to specify which type of WOEID you are requesting the values for. Supported types are “country”, “region”, “state”, “DMA” and “city”.
For example, to get a list of supported city WOEIDs, make the following GET call:
GET https://api.gemini.yahoo.com/v3/rest/dictionary/woeid/?type=city
The response will be an array of all the supported city WOEIDs and a name describing them. The response will also include the parent WOEID for each value in that level:
{
"errors": null,
"response": [
{
"woeid": 2171688,
"parentWoeid": 23424781,
"type": "Town",
"name": "Zhangjiakou, China, null"
},
{
"woeid": 1180689,
"parentWoeid": 23424934,
"type": "Town",
"name": "Makati City, Philippines, null"
},
{
"woeid": 1915203,
"parentWoeid": 23424759,
"type": "Town",
"name": "Rajshahi, Bangladesh, null"
},
...
]
}
Important
Native Ad Platform API provides you with an additional parameter: fuzzy
. You can use this parameter to expand your search results. For instance, if your returned result doesn’t contain the WOEID you’re looking for, you can set this parameter to ‘true’ to perform a fuzzy search that will expand your search results. Note that this fuzzy
parameter only works for this dictionary API call using location search: ../dictionary/woeid?location=…&fuzzy=true.
Look up location by WOEID
You can use the data dictionary service to look up the locations specific WOEIDs represent. Here is an example of looking up the location for two specific WOEIDs:
https://api.gemini.yahoo.com/v3/rest/dictionary/woeid?woeid=23424804&woeid=2171688
The response will be an array of all the locations of the WOEIDs that were passed in the request:
{
"errors": null,
"response": [
{
"woeid": 23424804,
"parentWoeid": 23424804,
"type": "COUNTRY",
"name": "Equatorial Guinea"
},
{
"woeid": 2171688,
"parentWoeid": 23424781,
"type": "Town",
"name": "Zhangjiakou, China, null"
}
]
}
Looking up WOEIDs by location name
The WOEIDs returned by the dictionary service cover the locations the Yahoo Native API officially supports. You can still target WOEIDs that are not in the dictionary as long as they are in the country, state, DMA, or city level. On search campaigns zip code level targeting is supported as well. Note that while targeting locations that are not in the dictionary is possible, it will likely result in more limited audience reach.
Zip code level targeting is also available.
You can look up the WOEID for a location that may not be in the dictionary by passing in the location name as a parameter, as well as an optional ‘type’ parameter:
https://api.gemini.yahoo.com/v3/rest/dictionary/woeid?location=california&type=state
The response will include the relevant WOEID:
{
"errors": null,
"timestamp": "2015-11-07 2:35:08",
"response": [
{
"woeid": 2347563,
"name": "California, US",
"type": "State",
"parentWoeid": 23424977
}
]
}
Looking up WOEIDs by Zip code
The WOEIDs returned by the dictionary service cover the locations the Yahoo Native API officially supports. You can still target WOEIDs that are not in the dictionary as long as they are in the country, state, DMA, or city level. On search campaigns zip code level targeting is supported as well. Note that while targeting locations that are not in the dictionary is possible, it will likely result in more limited audience reach.
Zip code level targeting is also available.
You can look up the WOEID for a location that may not be in the dictionary by passing in the location name as a parameter, as well as an optional ‘type’ parameter:
https://api.gemini.yahoo.com/v3/rest/dictionary/woeid?location=01067&type=zip
The response will include the relevant WOEID:
{
"errors": null,
"timestamp": "2016-02-29 22:39:11",
"response": [
{
"woeid": 12831235,
"name": "01067, Dresden, Saxony, Germany",
"type": "Zip",
"parentWoeid": 2345493
}
]
}
Example: Get a List of Valid Site Names for Site X Device Targets¶
To accomplish this, make the following GET call:
GET https://api.gemini.yahoo.com/v3/rest/dictionary/bbsxd_supported_sites
This can be filtered by category. If no category is passed, then it will return all valid sites.
Note
This is case-insensitive.
The list of supported categories:
MAIL
HOMEPAGE
NEWS
FINANCE
TUMBLR
AFFILIATE
SPORTS
FANTASY_SPORTS
STYLE
CELEBRITY
WEATHER
ANSWERS
AUCTION
DICTIONARY
TELEVISION
MSN
If you wish to get a list of valid site names filtered by MAIL, make the following GET call:
GET https://api.gemini.yahoo.com/v3/rest/dictionary/bbsxd_supported_sites?category=MAIL
The response will be an array of all the valid supported sites under MAIL category. The value
will be the site name for site x device target, and it also includes a name
describing them.
{
"errors": null,
"response": [{
"category": "Mail",
"name": "AOL Mail",
"value": "AOL_MAIL"
}, {
"category": "Mail",
"name": "AT&T Mail US",
"value": "AT&T_MAIL_US"
}, {
"category": "Mail",
"name": "AT&T Mail US 2",
"value": "AT&T_MAIL_US_2"
}, {
"category": "Mail",
"name": "BT Mail UK",
"value": "BT_MAIL_UK"
},
...
]
}
Example: Get a List of Valid Site Group Names¶
To accomplish this, make the following GET call:
GET https://api.gemini.yahoo.com/v3/rest/dictionary/bbsxd_supported_site_groups
The response will be an array of all the valid supported site groups. The value will be the site group name for the site group x device target.
{
"response": [{
"category": "Mail",
"name": "Yahoo Mail",
"value": "YAHOO_MAIL"
}, {
"category": "Mail",
"name": "MSN Mail",
"value": "MSN_US"
}
]
}
Important
For purposes of clarity, note that /bbsxd_supported_site_groups fetches only site groups that can be targeted as a SITE_GROUP_X_DEVICE.
Note
If a SITE_X_DEVICE targeting is created or updated for a site that belongs to an active site group, an INVALID_INPUT error will be thrown with the appropriate error message.
Example: Get a List of Supported Flash Sale Countdown Prefix Text in a Certain Language¶
If a campaign is set to Spanish, for example, FlashSaleConfig.countdownPrefixText
won’t accept the values in English. You’ll need to use enum values, shown in the table below, which are supported for multiple languages in the data dictionary.
Make a GET call to these specific endpoints, depending on your choice of language:
For English (which is the default):
https://api.gemini.yahoo.com/v3/rest/flash_sale_countdown_prefix_text/
Spanish:
https://api.gemini.yahoo.com/v3/rest/dictionary/flash_sale_countdown_prefix_text/?language=es
French:
https://api.gemini.yahoo.com/v3/rest/dictionary/flash_sale_countdown_prefix_text/?language=fr
Japanese:
https://api.gemini.yahoo.com/v3/rest/dictionary/flash_sale_countdown_prefix_text/?language=ja
(The supported language is the same; the default is English.)
The Result:
{
"errors": null,
"response":[
"Starts in",
"Sale starts in",
"Launches in",
"Ends in",
"Sale ends in",
"Offer ends in",
"Deadline in",
"Deal ends in",
"Expires in",
"Time left",
"Premieres in"
]
}
3rd Party Interest Segments¶
Read data for list of 3rd-party interest segments
Method: To retrieve data for a list of 3rd-party interest segments, make a GET call using the following parameters:
Name |
Description |
Type |
Value |
Required? |
---|---|---|---|---|
|
The ID of the advertiser needed to filter the segments. |
int |
The ID of the advertiser. |
Yes |
|
The 3P data provider name, such as |
String |
The data provider name. |
Optional |
|
A string used for substring search. |
int |
If nothing is specified, the full list by pagination is returned. |
Optional |
|
The start index or the first element to retrieve. Only active segments are returned. |
int |
The start index. |
Optional |
|
The maximum number of rows to retrieve. |
int |
The default maximum rows is 500. |
Optional |
|
When id passed in, the search string is no longer honored. |
int |
The segment ID. |
Optional |
|
When parentID is passed in, it returns all the next level child segments. |
int |
The segment parent ID |
Optional |
Example: GET call for a list of 3rd-party interest segments:
https://api.gemini.yahoo.com/v3/rest/dictionary/interest_segments_3p?advertiserId=12345
{
"errors":null,
"timestamp":"2018-01-19 1:13:02",
"response":[
{
"name":"BlueKai",
"value":20097120
},
{
"name":"Adobe",
"value":50000040
}
]
}
Method: To retrieve data for interest segments for 3rd-party data providers, make a GET call using the following parameters:
Example: GET call for interest segments for 3rd-party data providers:
https://api.gemini.yahoo.com/v3/rest/dictionary/interest_segments_data_providers?advertiserId=12345
{
"errors":null,
"timestamp":"2018-01-19 1:13:02",
"response":[
{
"name": "Blue Collar Worker",
"description": null,
"parentId": 20086282,
"dataProvider": "DMP",
"value": 20075667
},
{
"name": "BlueKai",
"description": null,
"parentId": 20077359,
"dataProvider": "DMP",
"value": 20075819
}
]
}
Yahoo Native Interest Segments¶
Read data for a list of Yahoo Native interest segments
Method: To retrieve data for a list of Yahoo Native interest segments, make a GET call using the following parameters:
Name |
Description |
Type |
Value |
Required? |
---|---|---|---|---|
|
The ID of the advertiser needed to filter the segments. |
int |
The ID of the advertiser. |
Yes |
|
A string used for substring search. |
int |
If nothing is specified, the full list by pagination is returned. |
Optional |
|
The start index or the first element to retrieve. Only active segments are returned. |
int |
The start index. |
Optional |
|
The maximum number of rows to retrieve. |
int |
The default maximum rows is 500. |
Optional |
|
When id passed in, the search string is no longer honored. |
int |
The segment ID. |
Optional |
|
When parentID is passed in, it returns all the next level child segments. |
int |
The segment parent ID |
Optional |
Example: GET call for a list of Yahoo Native interest segments:
https://api.gemini.yahoo.com/v3/rest/dictionary/interest_segments_oath?advertiserId=12345
{
"errors":null,
"timestamp":"2018-01-19 1:13:02",
"response":[
{
"name": "Blue Collar Worker",
"description": null,
"parentId": 20086282,
"value": 20075667
},
{
"name": "BlueKai",
"description": null,
"parentId": 20077359,
"value": 20075819
}
]
}