Google Ads · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Google Ads Customers API

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

What the actions change

x-apievangelist-phrasing

Targets 34 · first 16 shown; the file carries all of them

$.info
$.paths['/v18/customers/{customerId}'].get
$.paths['/v18/customers:listAccessibleCustomers'].get
$.paths['/v25/customers/{customersId}:generateShareablePreviews'].post
$.paths['/v25/customers:listAccessibleCustomers'].get
$.paths['/v25/customers/{customersId}:generateKeywordHistoricalMetrics'].post
$.paths['/v25/customers/{customersId}:suggestKeywordThemes'].post
$.paths['/v25/customers/{customersId}:generateAudienceDefinition'].post
$.paths['/v25/customers/{customersId}:generateTrendingInsights'].post
$.paths['/v25/customers/{customersId}:generateAudienceOverlapInsights'].post
$.paths['/v25/customers/{customersId}:suggestSmartCampaignBudgetOptions'].post
$.paths['/v25/customers/{customersId}:generateSuggestedTargetingInsights'].post
$.paths['/v25/customers/{customersId}:generateKeywordForecastMetrics'].post
$.paths['/v25/customers/{customersId}:generateCreatorInsights'].post
$.paths['/v25/customers/{customersId}:uploadClickConversions'].post
$.paths['/v25/customers/{customersId}:suggestTravelAssets'].post

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 Ads Customers API
  version: 1.0.0
extends: openapi/google-ads-customers-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-02'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 33
- target: $.paths['/v18/customers/{customerId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a Google Ads account's details
      effect: read
      questions:
      - What details can I pull back about a single Google Ads account through the v18 API?
      - Can I tell whether an account is a manager account or a regular client account?
      instructions:
      - text: Get the full account details for Google Ads customer {customer} using the v18 endpoint.
        slots:
          customer: path.customerId
      - text: Show me the v18 account record for {customer}, including whether it is a manager account.
        slots:
          customer: path.customerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v18/customers:listAccessibleCustomers'].get
  update:
    x-apievangelist-phrasing:
      intent: List accounts my login can access (v18)
      effect: read
      questions:
      - Which Google Ads accounts can my OAuth login reach directly on the v18 API?
      - Is there a way to find my customer IDs without already knowing one?
      instructions:
      - text: Using developer token {devtoken}, list every account my credentials can access on v18.
        slots:
          devtoken: header.developer-token
      - text: Find the v18 customer resource names I can reach with developer token {devtoken}.
        slots:
          devtoken: header.developer-token
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v25/customers/{customersId}:generateShareablePreviews'].post
  update:
    x-apievangelist-phrasing:
      intent: Generate shareable ad previews
      effect: read
      questions:
      - Can I produce a preview link of my ads to share with a client who has no account access?
      - What does a shareable preview for an asset group look like before it goes live?
      instructions:
      - text: Generate shareable previews for account {customer}.
        slots:
          customer: path.customersId
      - text: Create a shareable preview link in account {customer} using preview request {operation}.
        slots:
          customer: path.customersId
          operation: requestBody.operation
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers:listAccessibleCustomers'].get
  update:
    x-apievangelist-phrasing:
      intent: List accounts my login can access (v25)
      effect: read
      questions:
      - Which customer accounts does my authenticated user reach directly on the current v25 API?
      - What comes back from the v25 accessible-customers call when I have several accounts?
      instructions:
      - text: List the customer resource names my current credentials can access on v25.
      - text: Show all accounts directly accessible to the user I authenticated as, via v25.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v25/customers/{customersId}:generateKeywordHistoricalMetrics'].post
  update:
    x-apievangelist-phrasing:
      intent: Get historical metrics for keywords
      effect: read
      questions:
      - How many monthly searches did a set of keywords get historically?
      - Can I see past search volume and competition for keywords in one language and location?
      - Does the historical keyword metrics call let me exclude adult keywords?
      instructions:
      - text: Get historical search metrics for keywords {keywords} in account {customer}.
        slots:
          keywords: requestBody.keywords
          customer: path.customersId
      - text: Pull historical volume for {keywords} in language {language} for account {customer}.
        slots:
          keywords: requestBody.keywords
          language: requestBody.language
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:suggestKeywordThemes'].post
  update:
    x-apievangelist-phrasing:
      intent: Suggest keyword themes for a Smart campaign
      effect: read
      questions:
      - What keyword themes would suit my business for a Smart campaign?
      - Can I get keyword theme suggestions based on my business details?
      instructions:
      - text: Suggest keyword themes to advertise on for account {customer}.
        slots:
          customer: path.customersId
      - text: Suggest keyword themes for account {customer} from business info {info}.
        slots:
          customer: path.customersId
          info: requestBody.suggestionInfo
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateAudienceDefinition'].post
  update:
    x-apievangelist-phrasing:
      intent: Turn a text description into an audience
      effect: read
      questions:
      - Can I describe my ideal audience in plain words and get targetable attributes back?
      - Which audience attributes does generative AI suggest for a written audience description?
      instructions:
      - text: Generate audience attributes for account {customer} from the description {description}.
        slots:
          customer: path.customersId
          description: requestBody.audienceDescription
      - text: Use AI to build an audience definition in account {customer} for {description}.
        slots:
          customer: path.customersId
          description: requestBody.audienceDescription
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateTrendingInsights'].post
  update:
    x-apievangelist-phrasing:
      intent: Get trending YouTube content insights
      effect: read
      questions:
      - What content is trending on YouTube for my audience in a given country?
      - Can I see trending YouTube topics filtered to specific search topics?
      instructions:
      - text: Show trending YouTube content insights for account {customer} in country {country}.
        slots:
          customer: path.customersId
          country: requestBody.countryLocation
      - text: Get trending insights for account {customer} around topics {topics}.
        slots:
          customer: path.customersId
          topics: requestBody.searchTopics
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateAudienceOverlapInsights'].post
  update:
    x-apievangelist-phrasing:
      intent: Estimate audience overlap on YouTube
      effect: read
      questions:
      - How much does one audience attribute's YouTube reach overlap with others?
      - Which attributes share the most potential reach with my primary audience?
      instructions:
      - text: Estimate YouTube reach overlap with attribute {primary} for account {customer} in {country}.
        slots:
          primary: requestBody.primaryAttribute
          customer: path.customersId
          country: requestBody.countryLocation
      - text: Compare audience overlap for primary attribute {primary} in account {customer}.
        slots:
          primary: requestBody.primaryAttribute
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:suggestSmartCampaignBudgetOptions'].post
  update:
    x-apievangelist-phrasing:
      intent: Suggest budgets for a Smart campaign
      effect: read
      questions:
      - What daily budget options are recommended for a Smart campaign?
      - Can I get budget suggestions for an existing Smart campaign rather than a new one?
      instructions:
      - text: Suggest Smart campaign budget options for account {customer}.
        slots:
          customer: path.customersId
      - text: Get budget option suggestions for Smart campaign {campaign} in account {customer}.
        slots:
          campaign: requestBody.campaign
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateSuggestedTargetingInsights'].post
  update:
    x-apievangelist-phrasing:
      intent: Suggest audiences relevant to my audience
      effect: read
      questions:
      - Which targetable audiences are relevant to the audience I care about?
      - Can I get targeting suggestions from a free-text audience description?
      instructions:
      - text: Suggest targeting insights for account {customer} based on audience {audience}.
        slots:
          customer: path.customersId
          audience: requestBody.audienceDefinition
      - text: Find targetable audiences in account {customer} matching the description {description}.
        slots:
          customer: path.customersId
          description: requestBody.audienceDescription
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateKeywordForecastMetrics'].post
  update:
    x-apievangelist-phrasing:
      intent: Forecast clicks and cost for a keyword plan
      effect: read
      questions:
      - What impressions, clicks and cost should I expect from a planned campaign's keywords?
      - Can I forecast keyword performance over a specific future period and currency?
      instructions:
      - text: Forecast keyword metrics for campaign {campaign} in account {customer}.
        slots:
          campaign: requestBody.campaign
          customer: path.customersId
      - text: Forecast impressions and cost for {campaign} over period {period} in account {customer}.
        slots:
          campaign: requestBody.campaign
          period: requestBody.forecastPeriod
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateCreatorInsights'].post
  update:
    x-apievangelist-phrasing:
      intent: Get insights on YouTube creators
      effect: read
      questions:
      - Which YouTube creators and channels reach audiences in my target countries?
      - Can I look up insights for specific YouTube channels I already have in mind?
      instructions:
      - text: Get creator insights for channels {channels} in account {customer}.
        slots:
          channels: requestBody.searchChannels
          customer: path.customersId
      - text: Find YouTube creators on topics {topics} in countries {countries} for account {customer}.
        slots:
          topics: requestBody.searchTopics
          countries: requestBody.countryLocations
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:uploadClickConversions'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload offline click conversions
      effect: write
      questions:
      - How do I send offline sales tied to ad clicks back to my account?
      - Can a click conversion upload accept some rows even when others fail?
      - Is there a validate-only mode for testing click conversion uploads?
      instructions:
      - text: Upload click conversions {conversions} to account {customer}.
        slots:
          conversions: requestBody.conversions
          customer: path.customersId
      - text: Validate click conversions {conversions} for account {customer} without saving them.
        slots:
          conversions: requestBody.conversions
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:suggestTravelAssets'].post
  update:
    x-apievangelist-phrasing:
      intent: Suggest travel assets for hotels
      effect: read
      questions:
      - Can I get ad asset suggestions for a hotel property from its place ID?
      - Which travel assets are suggested for my hotels, and is every asset type guaranteed?
      instructions:
      - text: Suggest travel assets for place IDs {places} in account {customer}.
        slots:
          places: requestBody.placeIds
          customer: path.customersId
      - text: Get hotel asset suggestions in language {language} for {places} in account {customer}.
        slots:
          language: requestBody.languageOption
          places: requestBody.placeIds
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:uploadUserData'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload user data to a Customer Match list
      effect: write
      questions:
      - What's the direct way to add hashed contact data to a Customer Match list?
      - Can I push user data straight into a list without creating an offline job first?
      instructions:
      - text: Upload user data operations {operations} to account {customer}.
        slots:
          operations: requestBody.operations
          customer: path.customersId
      - text: Add these customers {operations} to the Customer Match list {metadata} in account {customer}.
        slots:
          operations: requestBody.operations
          metadata: requestBody.customerMatchUserListMetadata
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:uploadConversionAdjustments'].post
  update:
    x-apievangelist-phrasing:
      intent: Adjust or retract reported conversions
      effect: write
      questions:
      - Can I restate the value of a conversion that was already reported?
      - How do I retract conversions for orders that were later refunded?
      instructions:
      - text: Upload conversion adjustments {adjustments} to account {customer}.
        slots:
          adjustments: requestBody.conversionAdjustments
          customer: path.customersId
      - text: Retract or restate conversions {adjustments} in account {customer}, allowing partial failure.
        slots:
          adjustments: requestBody.conversionAdjustments
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:removeCampaignAutomaticallyCreatedAsset'].post
  update:
    x-apievangelist-phrasing:
      intent: Remove auto-created assets from a campaign
      effect: destructive
      questions:
      - Can I get rid of assets Google created automatically at the campaign level?
      - What happens to campaign assets I didn't write myself if I remove them?
      instructions:
      - text: Remove the automatically created campaign assets {operations} in account {customer}.
        slots:
          operations: requestBody.operations
          customer: path.customersId
      - text: Strip auto-generated assets from campaigns in account {customer}.
        slots:
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateAudienceCompositionInsights'].post
  update:
    x-apievangelist-phrasing:
      intent: Compare an audience's makeup to a baseline
      effect: read
      questions:
      - What attributes over-index in my audience compared with a baseline audience?
      - Can I see audience composition for a particular data month?
      instructions:
      - text: Generate audience composition insights for audience {audience} in account {customer}.
        slots:
          audience: requestBody.audience
          customer: path.customersId
      - text: Compare audience {audience} against baseline {baseline} for account {customer}.
        slots:
          audience: requestBody.audience
          baseline: requestBody.baselineAudience
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:suggestSmartCampaignAd'].post
  update:
    x-apievangelist-phrasing:
      intent: Suggest a Smart campaign ad
      effect: read
      questions:
      - Can Google write a Smart campaign ad for me from my business details?
      - What ad text is suggested for a Smart campaign based on targeting and business info?
      instructions:
      - text: Suggest a Smart campaign ad for account {customer}.
        slots:
          customer: path.customersId
      - text: Draft a Smart campaign ad in account {customer} using business info {info}.
        slots:
          customer: path.customersId
          info: requestBody.suggestionInfo
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:startIdentityVerification'].post
  update:
    x-apievangelist-phrasing:
      intent: Start advertiser identity verification
      effect: write
      questions:
      - How do I kick off advertiser identity verification for my account?
      - Which verification program can I start through the API?
      instructions:
      - text: Start identity verification for account {customer}.
        slots:
          customer: path.customersId
      - text: Begin verification program {program} for account {customer}.
        slots:
          program: requestBody.verificationProgram
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateReachForecast'].post
  update:
    x-apievangelist-phrasing:
      intent: Forecast reach for a YouTube media plan
      effect: read
      questions:
      - How many people could a planned YouTube product mix reach for my budget?
      - Can I forecast reach with a frequency cap and a set campaign duration?
      instructions:
      - text: Generate a reach forecast for account {customer} with planned products {products}.
        slots:
          customer: path.customersId
          products: requestBody.plannedProducts
      - text: Forecast reach for {products} over {duration} in currency {currency} for account {customer}.
        slots:
          products: requestBody.plannedProducts
          duration: requestBody.campaignDuration
          currency: requestBody.currencyCode
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}/getIdentityVerification'].get
  update:
    x-apievangelist-phrasing:
      intent: Check identity verification status
      effect: read
      questions:
      - Has my account finished advertiser identity verification yet?
      - Where can I see the current verification status and deadlines for an account?
      instructions:
      - text: Get the identity verification status for account {customer}.
        slots:
          customer: path.customersId
      - text: Check whether account {customer} still needs to verify its identity.
        slots:
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:suggestBrands'].post
  update:
    x-apievangelist-phrasing:
      intent: Look up brands by name prefix
      effect: read
      questions:
      - Can I search for a brand by typing the first few letters of its name?
      - Which brands match a prefix, excluding ones I've already selected?
      instructions:
      - text: Suggest brands starting with {prefix} for account {customer}.
        slots:
          prefix: requestBody.brandPrefix
          customer: path.customersId
      - text: Find matching brands for {prefix} in account {customer}, skipping {selected}.
        slots:
          prefix: requestBody.brandPrefix
          customer: path.customersId
          selected: requestBody.selectedBrands
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:mutate'].post
  update:
    x-apievangelist-phrasing:
      intent: Update an account's settings
      effect: write
      questions:
      - Can I change settings on an existing customer account, like its tracking template?
      - Is there a way to check an account update is valid without applying it?
      instructions:
      - text: Update account {customer} with change {operation}.
        slots:
          customer: path.customersId
          operation: requestBody.operation
      - text: Validate the account settings change {operation} on {customer} without applying it.
        slots:
          operation: requestBody.operation
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateKeywordIdeas'].post
  update:
    x-apievangelist-phrasing:
      intent: Generate new keyword ideas
      effect: read
      questions:
      - What new keywords should I target based on a seed keyword or my website URL?
      - Can I get keyword ideas for a specific language and set of locations?
      - Is it possible to page through a long list of keyword ideas?
      instructions:
      - text: Generate keyword ideas for account {customer} from seed {seed}.
        slots:
          customer: path.customersId
          seed: requestBody.keywordSeed
      - text: Suggest keywords from the page {url} for account {customer}.
        slots:
          url: requestBody.urlSeed
          customer: path.customersId
      - text: Find keyword ideas for site {site} in account {customer}.
        slots:
          site: requestBody.siteSeed
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateInsightsFinderReport'].post
  update:
    x-apievangelist-phrasing:
      intent: Save an Insights Finder report
      effect: write
      questions:
      - Can I create a saved report to open later in the Insights Finder tool?
      - How can I share an audience comparison as an Insights Finder report?
      instructions:
      - text: Create an Insights Finder report for audience {audience} in account {customer}.
        slots:
          audience: requestBody.specificAudience
          customer: path.customersId
      - text: Save an Insights Finder report comparing {audience} to {baseline} for account {customer}.
        slots:
          audience: requestBody.specificAudience
          baseline: requestBody.baselineAudience
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:uploadCallConversions'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload phone call conversions
      effect: write
      questions:
      - Can I report conversions that happened over the phone from my ads?
      - What happens if some rows in a call conversion upload are invalid?
      instructions:
      - text: Upload call conversions {conversions} to account {customer}.
        slots:
          conversions: requestBody.conversions
          customer: path.customersId
      - text: Validate call conversions {conversions} for account {customer} without recording them.
        slots:
          conversions: requestBody.conversions
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateAdGroupThemes'].post
  update:
    x-apievangelist-phrasing:
      intent: Suggest ad groups for a set of keywords
      effect: read
      questions:
      - Which of my ad groups should each new keyword go into?
      - Can I get suggested match types and text tweaks when grouping keywords?
      instructions:
      - text: Suggest ad group themes for keywords {keywords} in account {customer}.
        slots:
          keywords: requestBody.keywords
          customer: path.customersId
      - text: Match keywords {keywords} to ad groups {adgroups} in account {customer}.
        slots:
          keywords: requestBody.keywords
          adgroups: requestBody.adGroups
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:createCustomerClient'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a client account under a manager
      effect: write
      questions:
      - How do I open a new client account under my manager account?
      - Can I invite a user by email with an access role when creating a client account?
      instructions:
      - text: Create a new client account {client} under manager {customer}.
        slots:
          client: requestBody.customerClient
          customer: path.customersId
      - text: Create client {client} under manager {customer} and invite {email} as {role}.
        slots:
          client: requestBody.customerClient
          customer: path.customersId
          email: requestBody.emailAddress
          role: requestBody.accessRole
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateBenchmarksMetrics'].post
  update:
    x-apievangelist-phrasing:
      intent: Benchmark YouTube ad metrics vs industry
      effect: read
      questions:
      - How do my YouTube ad metrics compare with industry benchmarks?
      - Can I benchmark against a specific location and date range?
      instructions:
      - text: Benchmark YouTube ad metrics for account {customer} over {range}.
        slots:
          customer: path.customersId
          range: requestBody.dateRange
      - text: Compare account {customer} to benchmarks source {source} in location {location}.
        slots:
          customer: path.customersId
          source: requestBody.benchmarksSource
          location: requestBody.location
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:searchAudienceInsightsAttributes'].post
  update:
    x-apievangelist-phrasing:
      intent: Search audience attributes for insights
      effect: read
      questions:
      - Which audience attributes can I use when generating audience insights?
      - Can I search attributes by free text and limit them to certain countries?
      instructions:
      - text: Search audience insight attributes matching {text} in account {customer}.
        slots:
          text: requestBody.queryText
          customer: path.customersId
      - text: Find audience attributes for {text} across dimensions {dimensions} in account {customer}.
        slots:
          text: requestBody.queryText
          dimensions: requestBody.dimensions
          customer: path.customersId
      method: generated
      generated: '2026-10-02'
- target: $.paths['/v25/customers/{customersId}:generateTargetingSuggestionMetrics'].post
  update:
    x-apievangelist-phrasing:
      intent: Estimate reach for targetable audiences
      effect: read
      questions:
      - How many men aged 18+ interested in camping can I reach on YouTube?
      - What potential reach do my candidate audiences have?
      instructions:
      - text: Estimate potential reach for audiences {audiences} in account {customer}.
        slots:
          audiences: requestBody.audiences
          customer: path.customersId
      - text: Get targeting suggestion metrics for account {customer}.
        slots:
          customer: path.customersId
      method: generated
      generated: '2026-10-02'