Upsert Google campaign
PUT/ad-publishing/google/ads
Create or update a full Google Ads campaign structure
Request
API Version
v3- application/json
- Body
- Example (auto)
Bodyrequired
Campaign identifier
Campaign name
Location identifier
Advertising channel. Only SEARCH and DEMAND_GEN campaigns can be built and published by this product; the other Google channels are readable on existing campaigns but cannot be created here.
SEARCHDEMAND_GENChannel sub type
DEMAND_GENGoal type
WEBSITE_TRAFFICLEADCampaign budget
Campaign audience targeting
Network settings
Bidding strategy config
Campaign assets
EU political ads flag
Campaign ad groups
Campaign goal config
Ad schedule rules
Publishing status
DRAFTSCHEDULEDPUBLISHEDPUBLISHINGFAILEDIN_REVIEWPAUSEDARCHIVEDWITH_ISSUESREJECTEDGoogle Ad account identifier
Whether the campaign has unpublished changes
Maximum CPC bid in micros
Google Ads campaign resource ID
Traffic source
Advanced options
User-provided overrides for custom_values merge tags used in ad copy
{
"id": "camp_abc123",
"name": "My Campaign",
"locationId": "loc_abc123",
"advertisingChannelType": "SEARCH",
"advertisingChannelSubType": "DEMAND_GEN",
"goalType": "WEBSITE_TRAFFIC",
"budget": {
"budgetType": "DAILY",
"amount": 5000,
"scheduleStartDate": "2024-01-01"
},
"audience": {
"geoLocations": [
{
"key": "geoTargetConstants/2840",
"name": "United States"
}
]
},
"networkSettings": {
"targetSearchNetwork": true,
"targetContentNetwork": false
},
"biddingStrategy": {
"type": "MAXIMIZE_CONVERSIONS",
"value": 1000000
},
"assets": {
"calls": [],
"sitelinks": [],
"images": []
},
"isEuPoliticalAds": false,
"adGroups": [
{
"id": "ag_1",
"name": "Ad Group 1",
"adContent": []
}
],
"campaignGoal": {
"type": "WEBSITE_TRAFFIC",
"isCustomConversionGoal": false
},
"adSchedule": [
{
"dayOfWeek": "MONDAY",
"from": "09:00",
"to": "17:00"
}
],
"publishingStatus": "PUBLISHED",
"googleAdAccountId": "123-456-7890",
"unpublishedChanges": false,
"maximumCpc": 2000000,
"googleCampaignId": "customers/123/campaigns/456",
"source": "WEBSITE",
"advancedOptions": {
"source": "WEBSITE",
"postId": "post_abc123"
},
"customValueMappings": {
"{{ custom_values.pet_name }}": "Fluffy"
}
}
The saved campaign document, same shape as GET /ads/{adId}
- application/json
- Schema
- Example (auto)
Schema
Campaign identifier
Campaign name
Location identifier
Google Ads customer id the campaign belongs to
Advertising channel
SEARCHDEMAND_GENPublishing status
DRAFTSCHEDULEDPUBLISHEDPUBLISHINGFAILEDIN_REVIEWPAUSEDARCHIVEDWITH_ISSUESREJECTEDWhere the campaign was created from
Budget configuration
Network placement settings
Bidding configuration
Campaign goal
Attached assets by kind
Campaign level targeting
Ad scheduling windows, empty when the campaign runs continuously
Ad groups with their ads
Whether the campaign has edits not yet published
Whether the campaign is declared as EU political advertising
Ancillary campaign metadata
User who created the campaign
User who last updated the campaign
Created at
Updated at
{
"id": "6a846b1eb112242a53b21cb0",
"name": "Spring promotion",
"locationId": "fRMewNQIxSyZ5R4nQyit",
"googleAdAccountId": "6776452901",
"advertisingChannelType": "DEMAND_GEN",
"publishingStatus": "DRAFT",
"source": "AD_MANAGER",
"budget": {
"budgetType": "DAILY",
"amount": 50,
"scheduleStartDate": "2026-08-18T00:00:00.000Z",
"scheduleEndDate": "2026-09-18T00:00:00.000Z"
},
"networkSettings": {
"targetSearchNetwork": true,
"targetContentNetwork": false
},
"biddingStrategy": {
"type": "MAXIMIZE_CONVERSIONS",
"value": 0
},
"campaignGoal": {
"type": "CONVERSIONS",
"value": "ADD_TO_CART",
"isCustomConversionGoal": false
},
"assets": {
"calls": [],
"sitelinks": [],
"leadForm": "",
"images": []
},
"audience": {
"locales": [
{
"name": "English",
"key": "1000",
"id": "1000",
"resourceName": "languageConstants/1000"
}
],
"geoLocations": [
{
"key": "geoTargetConstants/2840",
"id": "ChIJOwg_06VPwokRYv534QaPC8g",
"name": "New York",
"countryName": "United States",
"type": "city",
"radius": 25,
"radiusUnit": "mi",
"selectionType": "include",
"resourceName": "customers/123/geoTargetConstants/2840",
"placeId": "ChIJOwg_06VPwokRYv534QaPC8g",
"formattedAddress": "New York, NY, USA",
"geometry": {
"location": {
"lat": 40.7128,
"lng": -74.006
},
"locationType": "APPROXIMATE"
},
"addressComponents": [
{
"longName": "New York",
"shortName": "NY",
"types": [
"locality",
"political"
]
}
]
}
],
"gender": [
{
"enum": "MALE",
"negative": false
}
],
"ageRange": [
{
"enum": "AGE_RANGE_25_34",
"negative": false
}
],
"segments": [],
"targetInterests": {
"affinity": [],
"inMarket": []
}
},
"adSchedule": [
{
"dayOfWeek": "ALL_DAYS",
"from": "09_00",
"to": "17_30",
"_id": "6a855ca9867e604d24f4b8fa"
}
],
"adGroups": [
{
"id": "6a846b2db112242a53b21d01",
"name": "Ad Group 1",
"adCampaignId": "6a846b1eb112242a53b21cb0",
"googleAdGroupId": "",
"publishingStatus": "DRAFT",
"adGroupError": "",
"keywords": {
"positives": [],
"negatives": []
},
"customChannels": false,
"selectedChannels": [
"GMAIL",
"YOUTUBE_IN_STREAM"
],
"audience": {
"locales": [
{
"name": "English",
"key": "1000",
"id": "1000",
"resourceName": "languageConstants/1000"
}
],
"geoLocations": [
{
"key": "geoTargetConstants/2840",
"id": "ChIJOwg_06VPwokRYv534QaPC8g",
"name": "New York",
"countryName": "United States",
"type": "city",
"radius": 25,
"radiusUnit": "mi",
"selectionType": "include",
"resourceName": "customers/123/geoTargetConstants/2840",
"placeId": "ChIJOwg_06VPwokRYv534QaPC8g",
"formattedAddress": "New York, NY, USA",
"geometry": {
"location": {
"lat": 40.7128,
"lng": -74.006
},
"locationType": "APPROXIMATE"
},
"addressComponents": [
{
"longName": "New York",
"shortName": "NY",
"types": [
"locality",
"political"
]
}
]
}
],
"gender": [
{
"enum": "MALE",
"negative": false
}
],
"ageRange": [
{
"enum": "AGE_RANGE_25_34",
"negative": false
}
],
"segments": [],
"targetInterests": {
"affinity": [],
"inMarket": []
}
},
"googleAudienceId": "",
"adContent": [
{
"id": "ad_abc123",
"name": "Summer Sale Ad",
"mediaType": "IMAGE",
"headlines": [
"Buy Now",
"Best Deals"
],
"longHeadlines": [
"Discover Great Deals Today"
],
"descriptions": [
"Great products"
],
"finalUrl": "https://example.com",
"path1": "products",
"path2": "deals",
"isDeleted": false,
"adError": "Landing page URL is invalid",
"publishingStatus": "PUBLISHED",
"adId": "ad_internal_abc",
"adCampaignId": "camp_abc123",
"adGroupId": "ag_abc123",
"googleAdId": "customers/123/ads/456",
"media": [
{
"type": "IMAGE",
"src": "https://example.com/ad.jpg"
}
],
"callToActionLabel": "LEARN_MORE",
"businessName": "Acme Corp",
"youtubeVideoLinks": [
{
"youtubeVideoId": "dQw4w9WgXcQ"
}
],
"carouselCards": [
{
"headline": "Shop Now",
"finalUrl": "https://example.com",
"callToActionLabel": "LEARN_MORE"
}
],
"placements": [
"YOUTUBE_IN_STREAM"
],
"customChannels": false
}
],
"createdAt": "2026-08-18T14:24:45.722Z",
"updatedAt": "2026-08-18T14:36:29.400Z"
}
],
"unpublishedChanges": false,
"isEuPoliticalAds": false,
"meta": {
"evaluate": "{\"opportunityScore\":18,\"confidence\":\"High\",\"band\":\"Low\",\"categories\":[],\"fixItems\":[]}"
},
"createdBy": "hzN33mfYO5c1LHqsExRC",
"updatedBy": "hzN33mfYO5c1LHqsExRC",
"createdAt": "2026-08-18T14:24:30.868Z",
"updatedAt": "2026-08-18T14:36:29.195Z"
}