Google Analytics · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Google Analytics Properties API

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

What the actions change

x-apievangelist-phrasing

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

$.info
$.paths['/v1beta/properties'].get
$.paths['/v1beta/properties'].post
$.paths['/v1beta/{entity}:runAccessReport'].post
$.paths['/v1beta/{name}'].get
$.paths['/v1beta/{name}'].delete
$.paths['/v1beta/{name}'].patch
$.paths['/v1beta/{name}:archive'].post
$.paths['/v1beta/{parent}/conversionEvents'].get
$.paths['/v1beta/{parent}/conversionEvents'].post
$.paths['/v1beta/{parent}/customDimensions'].get
$.paths['/v1beta/{parent}/customDimensions'].post
$.paths['/v1beta/{parent}/customMetrics'].get
$.paths['/v1beta/{parent}/customMetrics'].post
$.paths['/v1beta/{parent}/dataStreams'].get
$.paths['/v1beta/{parent}/dataStreams'].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 Analytics Properties API
  version: 1.0.0
extends: openapi/google-analytics-properties-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 249
- target: $.paths['/v1beta/properties'].get
  update:
    x-apievangelist-phrasing:
      intent: List GA4 properties under an account
      effect: read
      questions:
      - Which GA4 properties sit under my Google Analytics account?
      - Can I include trashed properties when listing what an account owns?
      - What does the properties list return if I have no access to some of them?
      instructions:
      - text: List the GA4 properties matching filter {filter}.
        slots:
          filter: query.filter
      - text: 'Show GA4 properties for {filter}, including soft-deleted ones: {showDeleted}.'
        slots:
          filter: query.filter
          showDeleted: query.showDeleted
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/properties'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a GA4 property
      effect: write
      questions:
      - Can I spin up a new GA4 property through the API instead of the Analytics UI?
      - What reporting time zone and currency does a new GA4 property need?
      instructions:
      - text: Create a GA4 property named {displayName} under account {parent}.
        slots:
          displayName: requestBody.displayName
          parent: requestBody.parent
      - text: Set up a new GA4 property {displayName} reporting in {timeZone} with currency {currencyCode}.
        slots:
          displayName: requestBody.displayName
          timeZone: requestBody.timeZone
          currencyCode: requestBody.currencyCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{entity}:runAccessReport'].post
  update:
    x-apievangelist-phrasing:
      intent: Report who read GA4 reporting data
      effect: read
      questions:
      - Who on my team has been reading Google Analytics reports, and when?
      - How far back do data access records go for a GA4 property or account?
      - Can a data access report be run at the account level rather than one property?
      instructions:
      - text: Run a data access report for {entity} covering {dateRanges}.
        slots:
          entity: path.entity
          dateRanges: requestBody.dateRanges
      - text: Show the top {limit} users who accessed reporting data on {entity}.
        slots:
          limit: requestBody.limit
          entity: path.entity
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{name}'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up one Measurement Protocol secret
      effect: read
      questions:
      - Can I fetch a single Measurement Protocol secret by its full resource name?
      - What details come back for one GA4 Measurement Protocol API secret?
      instructions:
      - text: Look up the Measurement Protocol secret at {name}.
        slots:
          name: path.name
      - text: Fetch secret resource {name} and show its display name and value.
        slots:
          name: path.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{name}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a Google Ads link by resource name
      effect: destructive
      questions:
      - Can I unlink a Google Ads account from a GA4 property using the link's resource name?
      - What happens to the connection when a Google Ads link resource is deleted?
      instructions:
      - text: Delete the Google Ads link {name}.
        slots:
          name: path.name
      - text: Disconnect Google Ads from the property by removing link resource {name}.
        slots:
          name: path.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{name}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a Google Ads link by resource name
      effect: write
      questions:
      - Can I turn ads personalization on or off for an existing Google Ads link?
      - Which Google Ads link settings can be changed after it is created?
      instructions:
      - text: Update Google Ads link {name} so ads personalization is {adsPersonalizationEnabled}.
        slots:
          name: path.name
          adsPersonalizationEnabled: requestBody.adsPersonalizationEnabled
      - text: Patch the fields {updateMask} on Google Ads link resource {name}.
        slots:
          updateMask: query.updateMask
          name: path.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{name}:archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Archive a custom metric by resource name
      effect: destructive
      questions:
      - Can I retire a custom metric I no longer need from a GA4 property?
      - What does archiving do to a custom metric identified by its full resource name?
      instructions:
      - text: Archive the custom metric {name}.
        slots:
          name: path.name
      - text: Retire custom metric resource {name} so it stops appearing in reports.
        slots:
          name: path.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/conversionEvents'].get
  update:
    x-apievangelist-phrasing:
      intent: List conversion events on a GA4 property
      effect: read
      questions:
      - Which events are marked as conversions on my GA4 property?
      - Does the conversion events list come back empty when none are configured?
      instructions:
      - text: List the conversion events under {parent}.
        slots:
          parent: path.parent
      - text: Show up to {pageSize} conversions configured on property {parent}.
        slots:
          pageSize: query.pageSize
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/conversionEvents'].post
  update:
    x-apievangelist-phrasing:
      intent: Mark an event as a conversion
      effect: write
      questions:
      - Can I flag an event like purchase as a conversion in GA4 programmatically?
      - Is it possible to set a default conversion value when marking an event as a conversion?
      instructions:
      - text: Mark event {eventName} as a conversion on {parent}.
        slots:
          eventName: requestBody.eventName
          parent: path.parent
      - text: Create a conversion for {eventName} on {parent} counted {countingMethod}.
        slots:
          eventName: requestBody.eventName
          parent: path.parent
          countingMethod: requestBody.countingMethod
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/customDimensions'].get
  update:
    x-apievangelist-phrasing:
      intent: List custom dimensions on a property
      effect: read
      questions:
      - What custom dimensions have been defined on this GA4 property?
      - Can I page through a long set of custom dimensions for one property?
      instructions:
      - text: List custom dimensions on {parent}.
        slots:
          parent: path.parent
      - text: Return the next page {pageToken} of custom dimensions for {parent}.
        slots:
          pageToken: query.pageToken
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/customDimensions'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a custom dimension
      effect: write
      questions:
      - Can I register an event parameter as a custom dimension in GA4?
      - What scope options exist when defining a new custom dimension?
      instructions:
      - text: Create custom dimension {displayName} from parameter {parameterName} on {parent}.
        slots:
          displayName: requestBody.displayName
          parameterName: requestBody.parameterName
          parent: path.parent
      - text: Add a {scope}-scoped custom dimension for parameter {parameterName} to {parent}.
        slots:
          scope: requestBody.scope
          parameterName: requestBody.parameterName
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/customMetrics'].get
  update:
    x-apievangelist-phrasing:
      intent: List custom metrics on a property
      effect: read
      questions:
      - Which custom metrics exist on my GA4 property right now?
      - Is there a page size limit when fetching a property's custom metrics?
      instructions:
      - text: List custom metrics under {parent}.
        slots:
          parent: path.parent
      - text: Show {pageSize} custom metrics per page for {parent}.
        slots:
          pageSize: query.pageSize
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/customMetrics'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a custom metric
      effect: write
      questions:
      - Can I turn a numeric event parameter into a custom metric?
      - What measurement units can a GA4 custom metric use, like currency or seconds?
      instructions:
      - text: Create custom metric {displayName} from parameter {parameterName} on {parent}.
        slots:
          displayName: requestBody.displayName
          parameterName: requestBody.parameterName
          parent: path.parent
      - text: Define a custom metric on {parent} measured in {measurementUnit} for {parameterName}.
        slots:
          parent: path.parent
          measurementUnit: requestBody.measurementUnit
          parameterName: requestBody.parameterName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/dataStreams'].get
  update:
    x-apievangelist-phrasing:
      intent: List data streams on a property
      effect: read
      questions:
      - What web and app data streams feed into this GA4 property?
      - Can I see all of a property's streams in one paged call?
      instructions:
      - text: List the data streams on {parent}.
        slots:
          parent: path.parent
      - text: Get the page {pageToken} of streams belonging to {parent}.
        slots:
          pageToken: query.pageToken
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/dataStreams'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a web or app data stream
      effect: write
      questions:
      - Can I add a new website stream to a GA4 property from code?
      - What stream types can I create, web, Android or iOS?
      instructions:
      - text: Create a {type} data stream named {displayName} on {parent}.
        slots:
          type: requestBody.type
          displayName: requestBody.displayName
          parent: path.parent
      - text: Add a web stream {displayName} for site {webStreamData} to {parent}.
        slots:
          displayName: requestBody.displayName
          webStreamData: requestBody.webStreamData
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/firebaseLinks'].get
  update:
    x-apievangelist-phrasing:
      intent: List Firebase links on a property
      effect: read
      questions:
      - Is my GA4 property linked to a Firebase project?
      - Can a property have more than one Firebase link?
      instructions:
      - text: List Firebase links under {parent}.
        slots:
          parent: path.parent
      - text: Check which Firebase project is attached to {parent}.
        slots:
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/firebaseLinks'].post
  update:
    x-apievangelist-phrasing:
      intent: Link a Firebase project
      effect: write
      questions:
      - Can I connect a Firebase project to my GA4 property through the API?
      - What happens if the property already has a Firebase link when I add one?
      instructions:
      - text: Link Firebase project {project} to {parent}.
        slots:
          project: requestBody.project
          parent: path.parent
      - text: Attach Firebase project {project} as the single Firebase link for {parent}.
        slots:
          project: requestBody.project
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/googleAdsLinks'].get
  update:
    x-apievangelist-phrasing:
      intent: List Google Ads links on a property
      effect: read
      questions:
      - Which Google Ads accounts are linked to this GA4 property?
      - Can I page through Google Ads links when a property has many?
      instructions:
      - text: List Google Ads links on {parent}.
        slots:
          parent: path.parent
      - text: Show {pageSize} Google Ads links at a time for {parent}.
        slots:
          pageSize: query.pageSize
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/googleAdsLinks'].post
  update:
    x-apievangelist-phrasing:
      intent: Link a Google Ads account
      effect: write
      questions:
      - Can I link a Google Ads customer ID to GA4 without using the admin screen?
      - Is ads personalization settable at the moment a Google Ads link is created?
      instructions:
      - text: Link Google Ads customer {customerId} to {parent}.
        slots:
          customerId: requestBody.customerId
          parent: path.parent
      - text: Create a Google Ads link on {parent} for {customerId} with personalization {adsPersonalizationEnabled}.
        slots:
          parent: path.parent
          customerId: requestBody.customerId
          adsPersonalizationEnabled: requestBody.adsPersonalizationEnabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/measurementProtocolSecrets'].get
  update:
    x-apievangelist-phrasing:
      intent: List Measurement Protocol secrets
      effect: read
      questions:
      - What Measurement Protocol API secrets exist on a data stream?
      - Can I list the secrets used to send server-side events to GA4?
      instructions:
      - text: List Measurement Protocol secrets under {parent}.
        slots:
          parent: path.parent
      - text: Show all API secrets for server-side hits on stream {parent}.
        slots:
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/measurementProtocolSecrets'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a Measurement Protocol secret
      effect: write
      questions:
      - Can I generate a new API secret for sending Measurement Protocol events?
      - Do I need to acknowledge user data collection before creating a secret?
      instructions:
      - text: Create a Measurement Protocol secret named {displayName} under {parent}.
        slots:
          displayName: requestBody.displayName
          parent: path.parent
      - text: Generate a server-side events API secret on stream {parent}.
        slots:
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{property}:acknowledgeUserDataCollection'].post
  update:
    x-apievangelist-phrasing:
      intent: Acknowledge user data collection terms
      effect: write
      questions:
      - Why can't I create a Measurement Protocol secret until I accept user data collection terms?
      - Can I accept the GA4 user data collection terms through the API?
      instructions:
      - text: Acknowledge user data collection for {property}.
        slots:
          property: path.property
      - text: Accept the data collection terms on {property} with acknowledgement {acknowledgement}.
        slots:
          property: path.property
          acknowledgement: requestBody.acknowledgement
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{name}:query'].post
  update:
    x-apievangelist-phrasing:
      intent: Fetch users in an audience export
      effect: read
      questions:
      - How can I pull the actual users from an audience export once it is ready?
      - Can I page through an exported audience with an offset and limit?
      instructions:
      - text: Fetch the users in audience export {name}.
        slots:
          name: path.name
      - text: Return {limit} rows starting at {offset} from audience export {name}.
        slots:
          limit: requestBody.limit
          offset: requestBody.offset
          name: path.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/audienceExports'].get
  update:
    x-apievangelist-phrasing:
      intent: List audience exports for a property
      effect: read
      questions:
      - Which audience exports have already been created for my property?
      - Can I reuse an existing audience export instead of making a new one?
      instructions:
      - text: List audience exports under {parent}.
        slots:
          parent: path.parent
      - text: Show existing audience exports for {parent} so I can reuse one.
        slots:
          parent: path.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{parent}/audienceExports'].post
  update:
    x-apievangelist-phrasing:
      intent: Start an audience export
      effect: write
      questions:
      - Can I export the members of a GA4 audience for use elsewhere?
      - Is an audience export ready immediately or does it build in the background?
      instructions:
      - text: Create an audience export of {audience} on {parent}.
        slots:
          audience: requestBody.audience
          parent: path.parent
      - text: Export audience {audience} for {parent} with dimensions {dimensions}.
        slots:
          audience: requestBody.audience
          parent: path.parent
          dimensions: requestBody.dimensions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{property}:batchRunPivotReports'].post
  update:
    x-apievangelist-phrasing:
      intent: Run several pivot reports at once
      effect: read
      questions:
      - Can I run multiple pivot reports in a single request?
      - Do all pivot reports in one batch have to target the same property?
      instructions:
      - text: Run this batch of pivot reports {requests} on {property}.
        slots:
          requests: requestBody.requests
          property: path.property
      - text: 'Batch these pivot table requests against {property}: {requests}.'
        slots:
          property: path.property
          requests: requestBody.requests
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{property}:batchRunReports'].post
  update:
    x-apievangelist-phrasing:
      intent: Run several standard reports at once
      effect: read
      questions:
      - Can I send several GA4 report requests together to save round trips?
      - Is there a single call that returns multiple core reports for one property?
      instructions:
      - text: Run the batch of reports {requests} for {property}.
        slots:
          requests: requestBody.requests
          property: path.property
      - text: 'Execute these report definitions together on {property}: {requests}.'
        slots:
          property: path.property
          requests: requestBody.requests
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{property}:checkCompatibility'].post
  update:
    x-apievangelist-phrasing:
      intent: Check which dimensions and metrics combine
      effect: read
      questions:
      - Why does my GA4 report fail when I mix certain dimensions and metrics?
      - Which dimensions can I still add to a report without breaking it?
      instructions:
      - text: Check whether dimensions {dimensions} and metrics {metrics} work together on {property}.
        slots:
          dimensions: requestBody.dimensions
          metrics: requestBody.metrics
          property: path.property
      - text: List fields compatible with my report on {property}, filtered by {compatibilityFilter}.
        slots:
          property: path.property
          compatibilityFilter: requestBody.compatibilityFilter
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{property}:runPivotReport'].post
  update:
    x-apievangelist-phrasing:
      intent: Run a pivot report
      effect: read
      questions:
      - Can I build a pivot table of GA4 event data through the API?
      - In a pivot report, why do dimensions only show up when included in a pivot?
      instructions:
      - text: Run a pivot report on {property} with pivots {pivots}.
        slots:
          property: path.property
          pivots: requestBody.pivots
      - text: Pivot metrics {metrics} by {dimensions} for {property} over {dateRanges}.
        slots:
          metrics: requestBody.metrics
          dimensions: requestBody.dimensions
          property: path.property
          dateRanges: requestBody.dateRanges
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{property}:runRealtimeReport'].post
  update:
    x-apievangelist-phrasing:
      intent: Run a realtime report
      effect: read
      questions:
      - How many people are on my site right now according to GA4?
      - Can realtime data be broken down by minute ranges?
      instructions:
      - text: Show realtime {metrics} for {property}.
        slots:
          metrics: requestBody.metrics
          property: path.property
      - text: Get live activity on {property} for the last {minuteRanges} split by {dimensions}.
        slots:
          property: path.property
          minuteRanges: requestBody.minuteRanges
          dimensions: requestBody.dimensions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1beta/{property}:runReport'].post
  update:
    x-apievangelist-phrasing:
      intent: Run a standard GA4 report
      effect: read
      questions:
      - How do I pull sessions and users by country from GA4?
      - Can I sort and limit rows when running a core Google Analytics report?
      - What date ranges can a single GA4 report cover?
      instructions:
      - text: Run a report on {property} of {metrics} by {dimensions}.
        slots:
          property: path.property
          metrics: requestBody.metrics
          dimensions: requestBody.dimensions
      - text: Report {metrics} for {property} across {dateRanges}, top {limit} rows.
        slots:
          metrics: requestBody.metrics
          property: path.property
          dateRanges: requestBody.dateRanges
          limit: requestBody.limit
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties/{propertiesId}:acknowledgeUserDataCollection'].post
  update:
    x-apievangelist-phrasing:
      intent: Accept data collection terms (v1alpha)
      effect: write
      questions:
      - On the v1alpha admin API, where do I confirm the user data collection acknowledgement for a property?
      - Is the alpha acknowledgement call a prerequisite for Measurement Protocol secrets?
      instructions:
      - text: Using the alpha admin API, confirm user data collection for property {propertiesId}.
        slots:
          propertiesId: path.propertiesId
      - text: Send acknowledgement {acknowledgement} via v1alpha for property {propertiesId}.
        slots:
          acknowledgement: requestBody.acknowledgement
          propertiesId: path.propertiesId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties'].get
  update:
    x-apievangelist-phrasing:
      intent: List properties via the alpha admin API
      effect: read
      questions:
      - With the v1alpha admin API, can I list every property I can see under an account?
      - Are trashed properties hidden unless I ask the alpha list call for them?
      instructions:
      - text: Using v1alpha, list properties that match {filter}.
        slots:
          filter: query.filter
      - text: Page through alpha property results {pageSize} at a time for {filter}.
        slots:
          pageSize: query.pageSize
          filter: query.filter
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a property via the alpha admin API
      effect: write
      questions:
      - Does the v1alpha admin API let me create a property with an industry category?
      - Can the alpha create call set a property type such as ordinary or subproperty?
      instructions:
      - text: Via v1alpha, create property {displayName} in industry {industryCategory}.
        slots:
          displayName: requestBody.displayName
          industryCategory: requestBody.industryCategory
      - text: Make an alpha-API property {displayName} of type {propertyType} under {parent}.
        slots:
          displayName: requestBody.displayName
          propertyType: requestBody.propertyType
          parent: requestBody.parent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties:createRollupProperty'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a roll-up property with sources
      effect: write
      questions:
      - Can I combine several GA4 properties into one roll-up property?
      - What source properties does a new roll-up property pull data from?
      instructions:
      - text: Create a roll-up property {rollupProperty} fed by {sourceProperties}.
        slots:
          rollupProperty: requestBody.rollupProperty
          sourceProperties: requestBody.sourceProperties
      - text: Build a roll-up that aggregates properties {sourceProperties}.
        slots:
          sourceProperties: requestBody.sourceProperties
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties/{propertiesId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one property (v1alpha)
      effect: read
      questions:
      - Through the alpha admin API, what settings does a single property report?
      - Can v1alpha tell me a property's service level and time zone?
      instructions:
      - text: Using v1alpha, fetch property {propertiesId}.
        slots:
          propertiesId: path.propertiesId
      - text: Show the alpha-API record for property {propertiesId}, including its service level.
        slots:
          propertiesId: path.propertiesId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties/{propertiesId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Trash a property (v1alpha)
      effect: destructive
      questions:
      - If I trash a property with the v1alpha API, can it still be restored?
      - How long before a property soft-deleted via alpha is permanently purged?
      instructions:
      - text: Using the alpha API, move property {propertiesId} to the trash.
        slots:
          propertiesId: path.propertiesId
      - text: Soft-delete property {propertiesId} through v1alpha.
        slots:
          propertiesId: path.propertiesId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties/{propertiesId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a property (v1alpha)
      effect: write
      questions:
      - Can I rename a property or change its currency via the v1alpha admin API?
      - Which property fields does the alpha update accept in its update mask?
      instructions:
      - text: Via v1alpha, rename property {propertiesId} to {displayName}.
        slots:
          propertiesId: path.propertiesId
          displayName: requestBody.displayName
      - text: Change the alpha property {propertiesId} time zone to {timeZone}.
        slots:
          propertiesId: path.propertiesId
          timeZone: requestBody.timeZone
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties/{propertiesId}/attributionSettings'].get
  update:
    x-apievangelist-phrasing:
      intent: View a property's attribution settings
      effect: read
      questions:
      - Which attribution model is my GA4 property using for reporting?
      - What lookback windows are set for acquisition and other key events?
      instructions:
      - text: Show attribution settings for property {propertiesId}.
        slots:
          propertiesId: path.propertiesId
      - text: Tell me the reporting attribution model on property {propertiesId}.
        slots:
          propertiesId: path.propertiesId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties/{propertiesId}/attributionSettings'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change a property's attribution settings
      effect: write
      questions:
      - Can I switch my property from data-driven to last click attribution?
      - Is the conversion lookback window adjustable through the API?
      instructions:
      - text: Set the reporting attribution model on property {propertiesId} to {reportingAttributionModel}.
        slots:
          propertiesId: path.propertiesId
          reportingAttributionModel: requestBody.reportingAttributionModel
      - text: Change the acquisition lookback on property {propertiesId} to {acquisitionConversionEventLookbackWindow}.
        slots:
          propertiesId: path.propertiesId
          acquisitionConversionEventLookbackWindow: requestBody.acquisitionConversionEventLookbackWindow
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties/{propertiesId}/dataRetentionSettings'].get
  update:
    x-apievangelist-phrasing:
      intent: View data retention settings (v1alpha)
      effect: read
      questions:
      - Using the alpha admin API, how long is event data retained on a property?
      - Does v1alpha show whether user data resets on new activity?
      instructions:
      - text: Via v1alpha, show how long property {propertiesId} keeps event data.
        slots:
          propertiesId: path.propertiesId
      - text: Read alpha retention settings for property {propertiesId}.
        slots:
          propertiesId: path.propertiesId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties/{propertiesId}/dataRetentionSettings'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change data retention settings (v1alpha)
      effect: write
      questions:
      - With the v1alpha API, can I extend event data retention to 14 months?
      - Can the alpha retention update turn off resetting user data on new activity?
      instructions:
      - text: Via v1alpha, set event data retention on property {propertiesId} to {eventDataRetention}.
        slots:
          propertiesId: path.propertiesId
          eventDataRetention: requestBody.eventDataRetention
      - text: Using alpha, set user data retention for property {propertiesId} to {userDataRetention}.
        slots:
          propertiesId: path.propertiesId
          userDataRetention: requestBody.userDataRetention
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1alpha/properties/{propertiesId}/googleSignalsSettings'].get
  update:
    x-apievangelist-phrasing:
      intent: View Google Signals settings
      effect: read
      questions:
      - Is Google Signals turned on for my GA4 property?
      - Has consent been recorded for Google Signals on this property?
      instructions:
      - text: Show Google Signals status for property {propertiesId}.
        slots:
          propertiesId: path.propertiesId
      - text: Check whether property {propertiesId} has Google Signals consent.
        slots:
          propertiesId: path.propertiesId
      method: generated
      generated: '2026-09-26'


# --- truncated at 32 KB (209 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/google-analytics/refs/heads/main/overlays/google-analytics-properties-api-phrasing-overlay.yaml

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/google-analytics-properties-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.