Ads · Ad Campaigns
Returns portfolio bid strategies. Works with Google Ads.
Request
Send your API key as Authorization: Bearer pz_live_.... Read-only keys can call it. Keys with the ads resource group disabled get 403 resource_group_disabled. Authentication
Query parameters
| Name | Type | Notes |
|---|---|---|
accountIdrequired | string | |
adAccountId | string | |
customerId | string | |
fromDate | string (date) | |
toDate | string (date) |
Example
curl -X GET "https://api.pozy.ai/v1/ads/bid-strategies?accountId=696e0b682d0a31188e7a2ba9" \
-H "Authorization: Bearer $POZY_API_KEY"const res = await fetch("https://api.pozy.ai/v1/ads/bid-strategies?accountId=696e0b682d0a31188e7a2ba9", {
headers: { Authorization: `Bearer ${process.env.POZY_API_KEY}` },
});
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.get(
"https://api.pozy.ai/v1/ads/bid-strategies",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
params={
"accountId": "696e0b682d0a31188e7a2ba9",
},
timeout=30,
)
resp.raise_for_status()
print(resp.json())Response
200 on success
customerIdstringcurrencystringstrategiesarray of object14 child fields
idstringnamestringtypestringOne of
TARGET_CPA,TARGET_ROAS,MAXIMIZE_CONVERSIONS,MAXIMIZE_CONVERSION_VALUE,TARGET_IMPRESSION_SHARE.statusstringcampaignCountintegerclicksintegercostnumbercostPerConversionnumberimpressionsintegeraverageCpcnumberconversionsnumbertargetCpanumberCan be null.
targetRoasnumberCan be null.
targetImpressionShareobjectOne of:
Google Target Impression Share (3 fields)
locationstringrequiredOne of
ANYWHERE_ON_PAGE,TOP_OF_PAGE,ABSOLUTE_TOP_OF_PAGE.percentnumberrequiredAt most 100.
maxCpcnumberrequired
cachedAtstring (date-time)Can be null.
staleboolean
200 response
{
"customerId": "691909ff82eb5ed7c816716d",
"currency": "USD",
"strategies": [
{
"id": "6bfebd43ddc270f6d2c56fc5",
"name": "Acme",
"type": "TARGET_CPA",
"status": "active",
"campaignCount": 42,
"clicks": 1,
"cost": 12.5,
"costPerConversion": 12.5,
"impressions": 1,
"averageCpc": 12.5,
"conversions": 12.5,
"targetCpa": 12.5,
"targetRoas": 12.5,
"targetImpressionShare": {
"location": "ANYWHERE_ON_PAGE",
"percent": 12.5,
"maxCpc": 12.5
}
}
],
"cachedAt": "2026-10-02T09:00:00.000Z",
"stale": true
}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 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.
More in Ad Campaigns
GETList adsGETList Google Ads recommendationsPOSTApply Google Ads recommendationsPOSTDismiss Google Ads recommendationsPOSTCreate portfolio bid strategyPATCHUpdate portfolio bid strategyGETList shared budgetsPOSTCreate a shared budgetGETList Search keywordsPOSTAdd Search ad-group keywordsPATCHPause or enable a Search keywordDELRemove a Search keywordGETList campaignsPOSTCreate a standalone campaignPUTPause or resume a campaignGETRead a campaign's ad schedule (dayparting)PUTReplace a campaign's ad schedule (dayparting)GETRead a campaign's current biddingGETGet live campaign detailsPUTUpdate a campaignDELDelete a campaignGETList campaign-level negative keywordsPUTReplace campaign-level negative keywordsPOSTPause or resume many campaignsPOSTDuplicate a campaignGETRead a Google campaign's device, location, excluded location, and language targetingPUTEdit a Google campaign's device, location, excluded location, or language targetingGETList ad setsPOSTCreate a standalone ad groupPOSTDuplicate an ad setPOSTDuplicate an adGETGet live ad-set detailsPUTUpdate an ad setDELDelete an ad setGETRead a Reddit ad group's targeting and schedulePUTPause or resume a single ad setGETGet campaign treeGETGet daily account metricsGETGet ad detailsPUTUpdate adDELCancel an adPUTPause or resume a single adGETList campaign assetsPOSTAttach campaign assetsPUTUpdate campaign assetsDELRemove campaign assetsGETList ad-group assetsPOSTAttach ad-group assetsPUTUpdate ad-group assetsDELRemove ad-group assetsGETRead the platform's review verdict for an adGETReview status of each creative in a TikTok Smart+ adGETList ads that need attentionPOSTDismiss an ads alertGETReview status of every TikTok Smart+ ad of an advertiserGETList campaign negative listsPUTReplace campaign negative listsPOSTBoost post as adGETList Performance Max asset groupsPOSTCreate a Performance Max asset groupGETGet a Performance Max asset groupPATCHUpdate a Performance Max asset groupDELRemove a Performance Max asset groupPOSTLink or unlink asset group assetsPUTReplace an asset group's listing-group treePOSTCreate standalone adGETGet campaign conversion goalsPATCHUpdate campaign conversion goals