List Performance Max asset groups
Read Performance Max asset groups and their linked text, image and YouTube assets. campaignId is the platform campaign id returned by creation or the campaign list. The campaign must be visible to the caller. Uses a 10-minute cache, with the last successful response served as stale when Google quota is exhausted. Removed groups and asset links are excluded. Campaign-level brand assets on campaigns with brand guidelines enabled are not included.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Google Ads campaign id.
^\d+$Response Body
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.listGoogleAssetGroups({ path: { campaignId: 'campaign_abc123', },});console.log(data);{ "assetGroups": [ { "id": "123456789", "resourceName": "customers/9122445560/assetGroups/123456789", "name": "Social publishing", "status": "ENABLED", "finalUrls": [ "https://zernio.com" ], "assets": [ { "resourceName": "customers/9122445560/assets/987654321", "fieldType": "HEADLINE", "status": "ENABLED", "text": "Schedule posts" } ] } ], "cachedAt": "2026-09-10T09:00:00Z", "stale": false}Update campaign conversion goals
Sets `biddable` on campaign goals, switches `goalConfigLevel`, and/or points the campaign at a custom conversion goal, in one mutate. `customConversionGoalId: null` clears it; Google refuses that (400) while the campaign stays at CAMPAIGN level with no biddable goals, so send `goalConfigLevel: CUSTOMER` with it to fall back to the account goals. Returns the re-read campaign goals.
Create a Performance Max asset group
Add an asset group to an existing Performance Max campaign. The group, any new assets, their links and an optional listing-group tree are created in one atomic request, so Google checks the asset minimums (for non-retail campaigns) against the whole set. Created PAUSED unless status is ENABLED. validateOnly: true runs Google's validation without creating anything.