Ads · Ad Targeting
Forecasts an ad delivery without changing anything. Works with LinkedIn Ads.
https://api.pozy.ai/v1/ads/targeting/supply-forecastGuides: LinkedIn Ads, Targeting
Request
Send your API key as Authorization: Bearer pz_live_.... Read-only keys cannot call it. Keys with the ads resource group disabled get 403 resource_group_disabled. Authentication
Request body
application/json, required
accountIdstringrequiredadAccountIdstringrequiredspecobjectrequired31 child fields
userOsarray of stringAt least 1 item.
userDevicearray of stringAt least 1 item.
countriesarray of stringregionsarray of string or objectOne of:
string
Option 2 (2 fields)
keystringrequirednamestring
citiesarray of string or objectOne of:
string
Option 2 (4 fields)
keystringrequirednamestringradiusnumberdistanceUnitstringOne of
mile,kilometer.
zipsarray of object2 child fields
keystringrequirednamestring
metrosarray of object2 child fields
keystringrequirednamestring
countryGroupsarray of stringEach item: one of
africa,asia,europe,north_america,south_america,oceania,central_america,caribbean,eea,euro_area,nafta,mercosur,afta,apec,gcc,cisfta,emerging_markets,itunes_app_store,android_free_store,android_paid_store.customLocationsarray of object6 child fields
latitudenumberrequired-90 to 90.
longitudenumberrequired-180 to 180.
radiusnumberrequireddistanceUnitstringrequiredOne of
mile,kilometer.namestringaddressstring
excludedLocationsobject8 child fields
countriesarray of stringcountryGroupsarray of stringEach item: one of
africa,asia,europe,north_america,south_america,oceania,central_america,caribbean,eea,euro_area,nafta,mercosur,afta,apec,gcc,cisfta,emerging_markets,itunes_app_store,android_free_store,android_paid_store.regionsarray of object2 child fields
keystringrequirednamestring
citiesarray of object3 child fields
keystringrequiredradiusnumberdistanceUnitstringOne of
mile,kilometer.
zipsarray of object2 child fields
keystringrequirednamestring
placesarray of object1 child field
keystringrequired
neighborhoodsarray of object1 child field
keystringrequired
customLocationsarray of object6 child fields
latitudenumberrequired-90 to 90.
longitudenumberrequired-180 to 180.
radiusnumberrequireddistanceUnitstringrequiredOne of
mile,kilometer.namestringaddressstring
ageMininteger13 to 100.
ageMaxinteger13 to 100.
genderstringOne of
all,male,female.incomeTierstringOne of
top_5,top_10,top_10_25,top_25_50.languagesarray of stringinterestsarray of object2 child fields
idstringrequirednamestring
behaviorsarray of object2 child fields
idstringrequirednamestring
workPositionsarray of object2 child fields
idstringrequirednamestring
workEmployersarray of object2 child fields
idstringrequirednamestring
workIndustriesarray of object2 child fields
idstringrequirednamestring
industriesarray of stringcompanySizesarray of stringsenioritiesarray of stringjobFunctionsarray of stringskillsarray of stringaudienceIncludearray of stringaudienceExcludearray of stringcommunitiesarray of stringexcludedCommunitiesarray of stringconversationKeywordsarray of stringexcludedConversationKeywordsarray of string
campaignTypestringOne of
SPONSORED_UPDATES,SPONSORED_INMAILS,DYNAMIC.timeRangeStartintegerrequiredtimeRangeEndintegerrequiredobjectiveTypestringoptimizationTargetstringdailyBudgetnumbertotalBudgetnumbercurrencystring3 to 3 characters.
competingBidobjectbidTypestringrequiredOne of
CPM,CPC,CPV.amountnumberrequired
enableAudienceNetworkbooleanenableAudienceExpansionbooleanconnectedTelevisionOnlyboolean
Example
curl -X POST "https://api.pozy.ai/v1/ads/targeting/supply-forecast" \
-H "Authorization: Bearer $POZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "696e0b682d0a31188e7a2ba9",
"adAccountId": "666219aad7bab67ace411e4f",
"spec": {
"userOs": [
"string"
],
"userDevice": [
"string"
],
"countries": [
"string"
]
},
"timeRangeStart": 1,
"timeRangeEnd": 1
}'const res = await fetch("https://api.pozy.ai/v1/ads/targeting/supply-forecast", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.POZY_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
accountId: "696e0b682d0a31188e7a2ba9",
adAccountId: "666219aad7bab67ace411e4f",
spec: {
userOs: [
"string"
],
userDevice: [
"string"
],
countries: [
"string"
]
},
timeRangeStart: 1,
timeRangeEnd: 1
}),
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `Request failed with status ${res.status}`);
console.log(data);import os
import requests
resp = requests.post(
"https://api.pozy.ai/v1/ads/targeting/supply-forecast",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
json={
"accountId": "696e0b682d0a31188e7a2ba9",
"adAccountId": "666219aad7bab67ace411e4f",
"spec": {
"userOs": [
"string",
],
"userDevice": [
"string",
],
"countries": [
"string",
],
},
"timeRangeStart": 1,
"timeRangeEnd": 1,
},
timeout=30,
)
resp.raise_for_status()
print(resp.json())Response
200 on success
availablebooleanrequiredforecastarray of objectmetricTypestringgranularitystringOne of
DAILY,SEVEN_DAY,THIRTY_DAY,CUSTOM.timeSeriesarray of object3 child fields
timestampintegervaluenumberadForecastRangeobject2 child fields
lowEndnumberhighEndnumber
{
"available": true,
"forecast": [
{
"metricType": "string",
"granularity": "DAILY",
"timeSeries": [
{
"timestamp": 1,
"value": 12.5,
"adForecastRange": {
"lowEnd": 12.5,
"highEnd": 12.5
}
}
]
}
]
}Errors
Errors use one shape: { error, type, code, param?, details? }. The ones you are most likely to see here:
| 400 | invalid_request_error | A parameter or body field is missing or invalid. param names it. |
| 401 | authentication_error | The API key is missing, revoked or expired. |
| 403 | permission_error | The key is read-only, scoped to other profiles, or has this resource group disabled. |
| 429 | rate_limit_error | Too many requests this minute. Wait for Retry-After seconds. |
Every code is listed in Errors.