List ad-group assets
Lists the sitelinks, callouts, snippets and images attached directly to a Google ad group, not those inherited from the campaign or account.
Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Numeric Google platform id.
^\d+$Query Parameters
Zernio Google Ads connection id.
^[a-fA-F0-9]{24}$Platform ad account ID (Google customer ID, digits only). Required when the connection has multiple customers.
^\d+$Alias of adAccountId, kept for existing callers
^\d+$Response Body
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.listAdGroupAssets({ path: { adSetId: 'adset_abc123', }, query: { accountId: 'account_abc123', },});console.log(data);{ "adGroupId": "string", "sitelinks": [ { "assetResourceName": "string", "adGroupAssetResourceName": "string", "text": "string", "linkUrl": "http://example.com", "description1": "string", "description2": "string" } ], "callouts": [ { "assetResourceName": "string", "adGroupAssetResourceName": "string", "calloutText": "string" } ], "structuredSnippets": [ { "assetResourceName": "string", "adGroupAssetResourceName": "string", "header": "string", "values": [ "string" ] } ], "images": [ { "assetResourceName": "string", "adGroupAssetResourceName": "string", "imageUrl": "http://example.com", "width": 0, "height": 0 } ], "cachedAt": "2019-08-24T14:15:22Z", "stale": true}Pause or resume a single ad set
Pauses or resumes one ad set without touching its campaign, its sibling ad sets or the switches of its ads. Thin wrapper over PUT /v1/ads/ad-sets/{adSetId} for callers that only want the status toggle and prefer a symmetric URL to /v1/ads/campaigns/{campaignId}/status. Writes the ad set's own on/off switch and nothing else, on every platform (Meta `configured_status`, TikTok ad group `operation_status`, Google ad group status, LinkedIn campaign, Pinterest ad group, X line item, ChatGPT (OpenAI) ad group, Reddit ad group `configured_status`). Its ads keep their own switches: an ad you paused individually stays paused when the ad set resumes. The campaign above is not touched either, so an ad set resumed under a paused campaign reads `status: paused` until the campaign is resumed too. See the Status model in the Ad Campaigns tag. **Live read, then write.** The ad set's switch is read from the platform first. When that live read shows it already in the requested state nothing is written (`updated: 0`, `skipped: 1`, with the reason). Otherwise the switch is written (`updated: 1`), read back and stored, and the delivery status of its ads (up to 20) is re-read and stored, so an immediate GET returns what the platform now reports. A stored switch never skips a write, and when the platform cannot be read the write always goes out. On Meta and Reddit the check reads the ad set's own switch (`status` / `configured_status`), so a repeated request skips even while `platformAdSetStatus` reads `CAMPAIGN_PAUSED`, `WITH_ISSUES` or `IN_PROCESS`.
Attach ad-group assets
Creates sitelinks, callouts, structured snippets or image assets and attaches them to a Google ad group in one step. Creates and attaches sitelinks, callouts, structured snippets and image assets in one Google mutation. Google shows images only on accounts it deems eligible (account age, policy history, vertical).