List portfolio bid strategies
Lists a Google Ads account's shared bid strategies with how many campaigns use each and how they performed.
Bidding strategy report: type, status, campaign count, clicks, cost, cost per conversion, impressions, average CPC and conversions over the date range (default last 30 days). Reads Google's bidding_strategy resource, cached for the quota window. Draws on the shared Google Ads operations budget. The response carries cachedAt and stale, set when a quota-exhausted call falls back to the last-good copy instead of a live read.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Query Parameters
Google ads SocialAccount id.
Platform ad account ID (Google customer ID, digits only). Defaults to the account's connected customer.
Alias of adAccountId, kept for existing callers
Defaults to 30 days ago.
dateDefaults to today.
dateResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.adcampaigns.listBidStrategies({ query: { accountId: 'account_abc123', },});console.log(data);{ "customerId": "string", "currency": "string", "strategies": [ { "id": "string", "name": "string", "type": "TARGET_CPA", "status": "string", "campaignCount": 0, "clicks": 0, "cost": 0, "costPerConversion": 0, "impressions": 0, "averageCpc": 0, "conversions": 0, "targetCpa": 0, "targetRoas": 0, "targetImpressionShare": { "location": "ANYWHERE_ON_PAGE", "percent": 1, "maxCpc": 1 } } ], "cachedAt": "2019-08-24T14:15:22Z", "stale": true}Read a campaign's current bidding
Shows a Google campaign's current bidding strategy and targets, ready to prefill an edit. Read of the campaign's bidding strategy on Google, cached for the quota window, for pre-filling the bid strategy block before a PUT to /v1/ads/campaigns/{campaignId}. Google Ads only; `platform` is required and rejected when it is anything else, since a `campaignId` is not globally unique. The response carries `cachedAt` and `stale`, set when a quota-exhausted call falls back to the last-good copy instead of a live read. Maps Google's bidding strategy onto the same triplet PUT accepts: `LOWEST_COST_WITHOUT_CAP` (Maximize Conversions, no target), `COST_CAP` + `bidAmount` (Target CPA), `LOWEST_COST_WITH_MIN_ROAS` + `roasAverageFloor` (Target ROAS), `LOWEST_COST_WITH_BID_CAP` + `bidAmount` (Maximize Clicks with a CPC ceiling). A campaign on a portfolio strategy returns `portfolio` (id + name) and `bidSpec.portfolioBidStrategyId` instead of the triplet. Anything else (Manual CPC, Target Impression Share, ...) returns `bidSpec: null`; show `biddingStrategyType` as-is.
Create portfolio bid strategy
Creates a Google Ads bid strategy that several campaigns can share, such as one target CPA or ROAS. Attach it to a campaign with `portfolioBidStrategyId` on POST /v1/ads/create, PUT /v1/ads/campaigns/{campaignId}, or PUT /v1/ads/ad-sets/{adSetId}. Attaching a strategy aligned to a shared budget fails there with a 400 (Google's `BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED`); this is not retryable.