Ad Campaigns

Create a standalone ad group

Google Ads compliance row C.190: creates an ad group WITHOUT an ad, under an existing campaign. Ads join it later via adSetId on POST /v1/ads/create. Google only; every other platform returns 501.

Created PAUSED unless status: ACTIVE. The new ad group has no ad yet, so it will not appear in GET /v1/ads/tree (built purely from ads rows) until one is added; use GET /v1/ads/ad-sets to see it in the meantime.

Idempotency: send an Idempotency-Key header to make retries safe.

post/v1/ads/ad-sets

Headers

Idempotency-Keystring

Optional client-generated unique key (e.g. a UUID) that makes retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409. Only 2xx responses are stored, so a request that failed with a 4xx can be retried with a corrected body under the SAME key.

Request body

accountIdstring required

Zernio SocialAccount id owning the Google Ads connection.

platform'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' required

Only "google" is implemented today; every other value returns 501.

campaignIdstring required

Google platform campaign ID (numeric) the ad group is created under.

namestring required
status'ACTIVE' | 'PAUSED'
customerIdstring

Numeric Google Ads customer id. Only required when the connection has more than one.

Response

Ad group created

adSetIdstring

Platform id of the new ad group

campaignIdstring

Changes