Google Campaign Manager · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Google Campaign Manager Campaign Manager 360 Ads API

6 actions 6 updates phrasing extends openapi/google-campaign-manager-ads-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Google Campaign Manager's API. It is a proposal applied on top of the contract, not a document Google Campaign Manager publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 6

$.info
$.paths['/userprofiles/{profileId}/ads'].get
$.paths['/userprofiles/{profileId}/ads'].post
$.paths['/userprofiles/{profileId}/ads/{adId}'].get
$.paths['/userprofiles/{profileId}/ads/{adId}'].put
$.paths['/userprofiles/{profileId}/ads/{adId}'].patch

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Google Campaign Manager Campaign Manager 360 Ads API
  version: 1.0.0
extends: openapi/google-campaign-manager-ads-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 5
- target: $.paths['/userprofiles/{profileId}/ads'].get
  update:
    x-apievangelist-phrasing:
      intent: List ads, optionally filtered
      effect: read
      questions:
      - Which ads are active in a given campaign right now?
      - Can I list only archived ads, or filter by ad type?
      - What ads are assigned to a particular placement?
      instructions:
      - text: List all ads for profile {profileId}.
        slots:
          profileId: path.profileId
      - text: Show active ads in campaign {campaignIds} for profile {profileId}.
        slots:
          campaignIds: query.campaignIds
          profileId: path.profileId
      - text: Find ads named like {searchString} assigned to placement {placementIds} for profile {profileId}.
        slots:
          searchString: query.searchString
          placementIds: query.placementIds
          profileId: path.profileId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/userprofiles/{profileId}/ads'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an ad in a campaign
      effect: write
      questions:
      - How do I create a new ad with a start and end date under my campaign?
      - Can I set geo and day-part targeting when I first create an ad?
      - What fields are required to add an ad to a campaign?
      instructions:
      - text: Create ad {name} of type {type} in campaign {campaignId} for advertiser {advertiserId}, running {startTime} to {endTime}, under profile {profileId}.
        slots:
          name: requestBody.name
          type: requestBody.type
          campaignId: requestBody.campaignId
          advertiserId: requestBody.advertiserId
          startTime: requestBody.startTime
          endTime: requestBody.endTime
          profileId: path.profileId
      - text: Add a new ad {name} to campaign {campaignId} on profile {profileId} with geo targeting {geoTargeting}.
        slots:
          name: requestBody.name
          campaignId: requestBody.campaignId
          profileId: path.profileId
          geoTargeting: requestBody.geoTargeting
      method: generated
      generated: '2026-10-01'
- target: $.paths['/userprofiles/{profileId}/ads/{adId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up one ad
      effect: read
      questions:
      - What targeting and creative rotation does a specific ad use?
      - Can I see the full settings of a single ad by its ID?
      instructions:
      - text: Show ad {adId} for profile {profileId}.
        slots:
          adId: path.adId
          profileId: path.profileId
      - text: Get the details of ad {adId} under profile {profileId}.
        slots:
          adId: path.adId
          profileId: path.profileId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/userprofiles/{profileId}/ads/{adId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace an ad's full configuration
      effect: write
      questions:
      - How do I resubmit an ad with all of its writable fields filled in?
      - Can I overwrite an existing ad's complete setup in one request?
      instructions:
      - text: 'Replace ad {adId} on profile {profileId} with a full body: name {name}, campaign {campaignId}, advertiser {advertiserId}, type {type}, {startTime} to {endTime}.'
        slots:
          adId: path.adId
          profileId: path.profileId
          name: requestBody.name
          campaignId: requestBody.campaignId
          advertiserId: requestBody.advertiserId
          type: requestBody.type
          startTime: requestBody.startTime
          endTime: requestBody.endTime
      - text: Overwrite every writable field of ad {adId} for profile {profileId}.
        slots:
          adId: path.adId
          profileId: path.profileId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/userprofiles/{profileId}/ads/{adId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change selected fields on an ad
      effect: write
      questions:
      - Can I pause an ad by changing only its active flag?
      - How do I push back just an ad's end date without resending everything?
      instructions:
      - text: Set only the active flag on ad {adId} for profile {profileId} to {active}.
        slots:
          adId: path.adId
          profileId: path.profileId
          active: requestBody.active
      - text: Just change the end time of ad {adId} on profile {profileId} to {endTime}.
        slots:
          adId: path.adId
          profileId: path.profileId
          endTime: requestBody.endTime
      method: generated
      generated: '2026-10-01'