Zernio
Zernio
API Reference

Campaigns and Ads

Overview

Get campaign treeGETGet daily account metricsGET

Campaigns

List campaignsGETCreate a standalone campaignPOSTUpdate a campaignPUTDuplicate a campaignPOSTDelete a campaignDELETEPause or resume a campaignPUTPause or resume many campaignsPOSTList campaign assetsGETAttach campaign assetsPOSTUpdate campaign assetsPUTRemove campaign assetsDELETERead a Google campaign's device, location, and language targetingGETEdit a Google campaign's device, location, or language targetingPUTList Performance Max asset groupsGET

Ad Sets

List ad setsGETCreate a standalone ad groupPOSTGet live ad-set detailsGETUpdate an ad setPUTDuplicate an ad setPOSTDelete an ad setDELETEPause or resume a single ad setPUTList ad-group assetsGETAttach ad-group assetsPOSTUpdate ad-group assetsPUTRemove ad-group assetsDELETE

Ads

List adsGETGet ad detailsGETCreate standalone adPOSTBoost post as adPOSTUpdate adPUTDuplicate an adPOSTCancel an adDELETEPause or resume a single adPUT

Keywords

List Search keywordsGETAdd Search ad-group keywordsPOSTPause or enable a Search keywordPATCHRemove a Search keywordDELETEList campaign-level negative keywordsGETReplace campaign-level negative keywordsPUTList campaign negative listsGETReplace campaign negative listsPUT

Bidding

Read a campaign's current biddingGETList portfolio bid strategiesGETCreate portfolio bid strategyPOSTUpdate portfolio bid strategyPATCH

Other

Create a Performance Max asset groupPOSTLink or unlink asset group assetsPOSTGet live campaign detailsGETRead a campaign's ad schedule (dayparting)GETGet campaign conversion goalsGETGet a Performance Max asset groupGETRemove a Performance Max asset groupDELETEReplace an asset group's listing-group treePUTReplace a campaign's ad schedule (dayparting)PUTUpdate campaign conversion goalsPATCHUpdate a Performance Max asset groupPATCH
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Campaigns and Ads

Update a Performance Max asset group

Change the name, status (ENABLED or PAUSED), final URLs or display paths. Only the fields sent are written; null on path1 or path2 clears it. Change assets with the /assets endpoint and product targeting with /listing-group-filters. validateOnly: true validates without writing.


PlatformsGoogle
PATCH
/v1/ads/campaigns/{campaignId}/asset-groups/{assetGroupId}

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Path Parameters

campaignId*string

Google Ads campaign id.

Match^\d+$
assetGroupId*string

Google asset group id.

Match^\d+$

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

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.updateGoogleAssetGroup({  path: {    campaignId: 'campaign_abc123',    assetGroupId: 'assetgroup_abc123',  },  body: {    name: 'Example',    status: 'ENABLED',    finalUrls: [      'https://example.com',    ],  },});console.log(data);
{  "assetGroupId": "string",  "updated": [    "string"  ],  "validateOnly": true}
Was this page helpful?

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.

Creative library

Lists the ad account's creative library (Meta's `/act_X/adcreatives`), rows returned verbatim. The default projection covers id, name, status, object type, thumbnail, object_story_spec / asset_feed_spec and url_tags; `fields` is a raw-passthrough override. Any creative id here is reusable on the create endpoints via `existingCreativeId`.

name?string
Length1 <= length <= 128
status?string

Value in

  • "ENABLED"
  • "PAUSED"
finalUrls?array<>
Items1 <= items <= 10
finalMobileUrls?array<>
Items1 <= items <= 10
path1?|
Lengthlength <= 15
path2?|
Lengthlength <= 15
validateOnly?boolean
Defaultfalse