@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Google Analytics Admin API
@base https://analyticsadmin.googleapis.com/
@version v1beta
@auth OAuth2 | OAuth2
@endpoints 26
@hint download_for_search
@toc v1beta(26)

@endpoint GET /v1beta/accountSummaries
@desc Returns summaries of all accounts accessible by the caller.
@optional {pageSize: int # The maximum number of AccountSummary resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum), pageToken: str # A page token, received from a previous `ListAccountSummaries` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAccountSummaries` must match the call that provided the page token.}
@returns(200) {accountSummaries: [map], nextPageToken: str} # Successful response

@endpoint GET /v1beta/accounts
@desc Returns all accounts accessible by the caller. Note that these accounts might not currently have GA4 properties. Soft-deleted (ie: "trashed") accounts are excluded by default. Returns an empty list if no relevant accounts are found.
@optional {pageSize: int # The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum), pageToken: str # A page token, received from a previous `ListAccounts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAccounts` must match the call that provided the page token., showDeleted: bool # Whether to include soft-deleted (ie: "trashed") Accounts in the results. Accounts can be inspected to determine whether they are deleted or not.}
@returns(200) {accounts: [map], nextPageToken: str} # Successful response

@endpoint POST /v1beta/accounts:provisionAccountTicket
@desc Requests a ticket for creating an account.
@optional {account: map{createTime: str(google-datetime), deleted: bool, displayName: str, name: str, regionCode: str, updateTime: str(google-datetime)} # A resource message representing a Google Analytics account., redirectUri: str # Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in Cloud Console as a Redirect URI.}
@returns(200) {accountTicketId: str} # Successful response

@endpoint GET /v1beta/properties
@desc Returns child Properties under the specified parent Account. Only "GA4" properties will be returned. Properties will be excluded if the caller does not have access. Soft-deleted (ie: "trashed") properties are excluded by default. Returns an empty list if no relevant properties are found.
@optional {filter: str # Required. An expression for filtering the results of the request. Fields eligible for filtering are: `parent:`(The resource name of the parent account/property) or `ancestor:`(The resource name of the parent account) or `firebase_project:`(The id or number of the linked firebase project). Some examples of filters: ``` | Filter | Description | |-----------------------------|-------------------------------------------| | parent:accounts/123 | The account with account id: 123. | | parent:properties/123 | The property with property id: 123. | | ancestor:accounts/123 | The account with account id: 123. | | firebase_project:project-id | The firebase project with id: project-id. | | firebase_project:123 | The firebase project with number: 123. | ```, pageSize: int # The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum), pageToken: str # A page token, received from a previous `ListProperties` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListProperties` must match the call that provided the page token., showDeleted: bool # Whether to include soft-deleted (ie: "trashed") Properties in the results. Properties can be inspected to determine whether they are deleted or not.}
@returns(200) {nextPageToken: str, properties: [map]} # Successful response

@endpoint POST /v1beta/properties
@desc Creates an "GA4" property with the specified location and attributes.
@optional {account: str # Immutable. The resource name of the parent account Format: accounts/{account_id} Example: "accounts/123", createTime: str(google-datetime) # Output only. Time when the entity was originally created., currencyCode: str # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: "USD", "EUR", "JPY", deleteTime: str(google-datetime) # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can., displayName: str # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units., expireTime: str(google-datetime) # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted., industryCategory: str(INDUSTRY_CATEGORY_UNSPECIFIED/AUTOMOTIVE/BUSINESS_AND_INDUSTRIAL_MARKETS/FINANCE/HEALTHCARE/TECHNOLOGY/TRAVEL/OTHER/ARTS_AND_ENTERTAINMENT/BEAUTY_AND_FITNESS/BOOKS_AND_LITERATURE/FOOD_AND_DRINK/GAMES/HOBBIES_AND_LEISURE/HOME_AND_GARDEN/INTERNET_AND_TELECOM/LAW_AND_GOVERNMENT/NEWS/ONLINE_COMMUNITIES/PEOPLE_AND_SOCIETY/PETS_AND_ANIMALS/REAL_ESTATE/REFERENCE/SCIENCE/SPORTS/JOBS_AND_EDUCATION/SHOPPING) # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK, name: str # Output only. Resource name of this property. Format: properties/{property_id} Example: "properties/1000", parent: str # Immutable. Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account}, properties/{property} Example: "accounts/100", "properties/101", propertyType: str(PROPERTY_TYPE_UNSPECIFIED/PROPERTY_TYPE_ORDINARY/PROPERTY_TYPE_SUBPROPERTY/PROPERTY_TYPE_ROLLUP) # Immutable. The property type for this Property resource. When creating a property, if the type is "PROPERTY_TYPE_UNSPECIFIED", then "ORDINARY_PROPERTY" will be implied. "SUBPROPERTY" and "ROLLUP_PROPERTY" types cannot yet be created with the Google Analytics Admin API., serviceLevel: str(SERVICE_LEVEL_UNSPECIFIED/GOOGLE_ANALYTICS_STANDARD/GOOGLE_ANALYTICS_360) # Output only. The Google Analytics service level that applies to this property., timeZone: str # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: "America/Los_Angeles", updateTime: str(google-datetime) # Output only. Time when entity payload fields were last updated.}
@returns(200) {account: str, createTime: str(google-datetime), currencyCode: str, deleteTime: str(google-datetime), displayName: str, expireTime: str(google-datetime), industryCategory: str, name: str, parent: str, propertyType: str, serviceLevel: str, timeZone: str, updateTime: str(google-datetime)} # Successful response

@endpoint POST /v1beta/{account}:searchChangeHistoryEvents
@desc Searches through all changes to an account or its children given the specified set of filters.
@required {account: str # Required. The account resource for which to return change history resources.}
@optional {action: [str] # Optional. If set, only return changes that match one or more of these types of actions., actorEmail: [str] # Optional. If set, only return changes if they are made by a user in this list., earliestChangeTime: str(google-datetime) # Optional. If set, only return changes made after this time (inclusive)., latestChangeTime: str(google-datetime) # Optional. If set, only return changes made before this time (inclusive)., pageSize: int(int32) # Optional. The maximum number of ChangeHistoryEvent items to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 items will be returned. The maximum value is 200 (higher values will be coerced to the maximum)., pageToken: str # Optional. A page token, received from a previous `SearchChangeHistoryEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `SearchChangeHistoryEvents` must match the call that provided the page token., property: str # Optional. Resource name for a child property. If set, only return changes made to this property or its child resources., resourceType: [str] # Optional. If set, only return changes if they are for a resource that matches at least one of these types.}
@returns(200) {changeHistoryEvents: [map], nextPageToken: str} # Successful response

@endpoint POST /v1beta/{entity}:runAccessReport
@desc Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. The property must be in Google Analytics 360. This method is only available to Administrators. These data access records include GA4 UI Reporting, GA4 UI Explorations, GA4 Data API, and other products like Firebase & Admob that can retrieve data from Google Analytics through a linkage. These records don't include property configuration changes like adding a stream or changing a property's time zone. For configuration change history, see [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents).
@required {entity: str # The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for all properties under that account. To request at the property level, entity should be for example 'properties/123' if "123" is your GA4 property ID. To request at the account level, entity should be for example 'accounts/1234' if "1234" is your GA4 Account ID.}
@optional {dateRanges: [map{endDate: str, startDate: str}] # Date ranges of access records to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two date ranges overlap, the access records for the overlapping days is included in the response rows for both date ranges. Requests are allowed up to 2 date ranges., dimensionFilter: map{accessFilter: map, andGroup: map, notExpression: map, orGroup: map} # Expresses dimension or metric filters. The fields in the same expression need to be either all dimensions or all metrics., dimensions: [map{dimensionName: str}] # The dimensions requested and displayed in the response. Requests are allowed up to 9 dimensions., limit: str(int64) # The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for. `limit` must be positive. The API may return fewer rows than the requested `limit`, if there aren't as many remaining rows as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can't get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination)., metricFilter: map{accessFilter: map, andGroup: map, notExpression: map, orGroup: map} # Expresses dimension or metric filters. The fields in the same expression need to be either all dimensions or all metrics., metrics: [map{metricName: str}] # The metrics requested and displayed in the response. Requests are allowed up to 10 metrics., offset: str(int64) # The row count of the start row. The first row is counted as row 0. If offset is unspecified, it is treated as 0. If offset is zero, then this method will return the first page of results with `limit` entries. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination)., orderBys: [map{desc: bool, dimension: map, metric: map}] # Specifies how rows are ordered in the response., returnEntityQuota: bool # Toggles whether to return the current state of this Analytics Property's quota. Quota is returned in [AccessQuota](#AccessQuota). For account-level requests, this field must be false., timeZone: str # This request's time zone if specified. If unspecified, the property's time zone is used. The request's time zone is used to interpret the start & end dates of the report. Formatted as strings from the IANA Time Zone database (https://www.iana.org/time-zones); for example "America/New_York" or "Asia/Tokyo".}
@returns(200) {dimensionHeaders: [map], metricHeaders: [map], quota: map{concurrentRequests: map{consumed: int(int32), remaining: int(int32)}, serverErrorsPerProjectPerHour: map{consumed: int(int32), remaining: int(int32)}, tokensPerDay: map{consumed: int(int32), remaining: int(int32)}, tokensPerHour: map{consumed: int(int32), remaining: int(int32)}, tokensPerProjectPerHour: map{consumed: int(int32), remaining: int(int32)}}, rowCount: int(int32), rows: [map]} # Successful response

@endpoint DELETE /v1beta/{name}
@desc Deletes a GoogleAdsLink on a property
@required {name: str # Required. Example format: properties/1234/googleAdsLinks/5678}
@returns(200) Successful response

@endpoint GET /v1beta/{name}
@desc Lookup for a single "GA4" MeasurementProtocolSecret.
@required {name: str # Required. The name of the measurement protocol secret to lookup. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}}
@returns(200) {displayName: str, name: str, secretValue: str} # Successful response

@endpoint PATCH /v1beta/{name}
@desc Updates a GoogleAdsLink on a property
@required {name: str # Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId is not the Google Ads customer ID.}
@optional {updateMask: str # Required. The list of fields to be updated. Field names must be in snake case (e.g., "field_to_update"). Omitted fields will not be updated. To replace the entire entity, use one path with the string "*" to match all fields., adsPersonalizationEnabled: bool # Enable personalized advertising features with this integration. Automatically publish my Google Analytics audience lists and Google Analytics remarketing events/parameters to the linked Google Ads account. If this field is not set on create/update, it will be defaulted to true., canManageClients: bool # Output only. If true, this link is for a Google Ads manager account., createTime: str(google-datetime) # Output only. Time when this link was originally created., creatorEmailAddress: str # Output only. Email address of the user that created the link. An empty string will be returned if the email address can't be retrieved., customerId: str # Immutable. Google Ads customer ID., name: str # Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId is not the Google Ads customer ID., updateTime: str(google-datetime) # Output only. Time when this link was last updated.}
@returns(200) {adsPersonalizationEnabled: bool, canManageClients: bool, createTime: str(google-datetime), creatorEmailAddress: str, customerId: str, name: str, updateTime: str(google-datetime)} # Successful response

@endpoint POST /v1beta/{name}:archive
@desc Archives a CustomMetric on a property.
@required {name: str # Required. The name of the CustomMetric to archive. Example format: properties/1234/customMetrics/5678}
@returns(200) Successful response

@endpoint GET /v1beta/{parent}/conversionEvents
@desc Returns a list of conversion events in the specified parent property. Returns an empty list if no conversion events are found.
@required {parent: str # Required. The resource name of the parent property. Example: 'properties/123'}
@optional {pageSize: int # The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum), pageToken: str # A page token, received from a previous `ListConversionEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListConversionEvents` must match the call that provided the page token.}
@returns(200) {conversionEvents: [map], nextPageToken: str} # Successful response

@endpoint POST /v1beta/{parent}/conversionEvents
@desc Creates a conversion event with the specified attributes.
@required {parent: str # Required. The resource name of the parent property where this conversion event will be created. Format: properties/123}
@optional {createTime: str(google-datetime) # Output only. Time when this conversion event was created in the property., custom: bool # Output only. If set to true, this conversion event refers to a custom event. If set to false, this conversion event refers to a default event in GA. Default events typically have special meaning in GA. Default events are usually created for you by the GA system, but in some cases can be created by property admins. Custom events count towards the maximum number of custom conversion events that may be created per property., deletable: bool # Output only. If set, this event can currently be deleted with DeleteConversionEvent., eventName: str # Immutable. The event name for this conversion event. Examples: 'click', 'purchase', name: str # Output only. Resource name of this conversion event. Format: properties/{property}/conversionEvents/{conversion_event}}
@returns(200) {createTime: str(google-datetime), custom: bool, deletable: bool, eventName: str, name: str} # Successful response

@endpoint GET /v1beta/{parent}/customDimensions
@desc Lists CustomDimensions on a property.
@required {parent: str # Required. Example format: properties/1234}
@optional {pageSize: int # The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum)., pageToken: str # A page token, received from a previous `ListCustomDimensions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCustomDimensions` must match the call that provided the page token.}
@returns(200) {customDimensions: [map], nextPageToken: str} # Successful response

@endpoint POST /v1beta/{parent}/customDimensions
@desc Creates a CustomDimension.
@required {parent: str # Required. Example format: properties/1234}
@optional {description: str # Optional. Description for this custom dimension. Max length of 150 characters., disallowAdsPersonalization: bool # Optional. If set to true, sets this dimension as NPA and excludes it from ads personalization. This is currently only supported by user-scoped custom dimensions., displayName: str # Required. Display name for this custom dimension as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets., name: str # Output only. Resource name for this CustomDimension resource. Format: properties/{property}/customDimensions/{customDimension}, parameterName: str # Required. Immutable. Tagging parameter name for this custom dimension. If this is a user-scoped dimension, then this is the user property name. If this is an event-scoped dimension, then this is the event parameter name. If this is an item-scoped dimension, then this is the parameter name found in the eCommerce items array. May only contain alphanumeric and underscore characters, starting with a letter. Max length of 24 characters for user-scoped dimensions, 40 characters for event-scoped dimensions., scope: str(DIMENSION_SCOPE_UNSPECIFIED/EVENT/USER/ITEM) # Required. Immutable. The scope of this dimension.}
@returns(200) {description: str, disallowAdsPersonalization: bool, displayName: str, name: str, parameterName: str, scope: str} # Successful response

@endpoint GET /v1beta/{parent}/customMetrics
@desc Lists CustomMetrics on a property.
@required {parent: str # Required. Example format: properties/1234}
@optional {pageSize: int # The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum)., pageToken: str # A page token, received from a previous `ListCustomMetrics` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCustomMetrics` must match the call that provided the page token.}
@returns(200) {customMetrics: [map], nextPageToken: str} # Successful response

@endpoint POST /v1beta/{parent}/customMetrics
@desc Creates a CustomMetric.
@required {parent: str # Required. Example format: properties/1234}
@optional {description: str # Optional. Description for this custom dimension. Max length of 150 characters., displayName: str # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets., measurementUnit: str(MEASUREMENT_UNIT_UNSPECIFIED/STANDARD/CURRENCY/FEET/METERS/KILOMETERS/MILES/MILLISECONDS/SECONDS/MINUTES/HOURS) # Required. The type for the custom metric's value., name: str # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric}, parameterName: str # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics., restrictedMetricType: [str] # Optional. Types of restricted data that this metric may contain. Required for metrics with CURRENCY measurement unit. Must be empty for metrics with a non-CURRENCY measurement unit., scope: str(METRIC_SCOPE_UNSPECIFIED/EVENT) # Required. Immutable. The scope of this custom metric.}
@returns(200) {description: str, displayName: str, measurementUnit: str, name: str, parameterName: str, restrictedMetricType: [str], scope: str} # Successful response

@endpoint GET /v1beta/{parent}/dataStreams
@desc Lists DataStreams on a property.
@required {parent: str # Required. Example format: properties/1234}
@optional {pageSize: int # The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum)., pageToken: str # A page token, received from a previous `ListDataStreams` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDataStreams` must match the call that provided the page token.}
@returns(200) {dataStreams: [map], nextPageToken: str} # Successful response

@endpoint POST /v1beta/{parent}/dataStreams
@desc Creates a DataStream.
@required {parent: str # Required. Example format: properties/1234}
@optional {androidAppStreamData: map{firebaseAppId: str, packageName: str} # Data specific to Android app streams., createTime: str(google-datetime) # Output only. Time when this stream was originally created., displayName: str # Human-readable display name for the Data Stream. Required for web data streams. The max allowed display name length is 255 UTF-16 code units., iosAppStreamData: map{bundleId: str, firebaseAppId: str} # Data specific to iOS app streams., name: str # Output only. Resource name of this Data Stream. Format: properties/{property_id}/dataStreams/{stream_id} Example: "properties/1000/dataStreams/2000", type: str(DATA_STREAM_TYPE_UNSPECIFIED/WEB_DATA_STREAM/ANDROID_APP_DATA_STREAM/IOS_APP_DATA_STREAM) # Required. Immutable. The type of this DataStream resource., updateTime: str(google-datetime) # Output only. Time when stream payload fields were last updated., webStreamData: map{defaultUri: str, firebaseAppId: str, measurementId: str} # Data specific to web streams.}
@returns(200) {androidAppStreamData: map{firebaseAppId: str, packageName: str}, createTime: str(google-datetime), displayName: str, iosAppStreamData: map{bundleId: str, firebaseAppId: str}, name: str, type: str, updateTime: str(google-datetime), webStreamData: map{defaultUri: str, firebaseAppId: str, measurementId: str}} # Successful response

@endpoint GET /v1beta/{parent}/firebaseLinks
@desc Lists FirebaseLinks on a property. Properties can have at most one FirebaseLink.
@required {parent: str # Required. Format: properties/{property_id} Example: properties/1234}
@optional {pageSize: int # The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum), pageToken: str # A page token, received from a previous `ListFirebaseLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListFirebaseLinks` must match the call that provided the page token.}
@returns(200) {firebaseLinks: [map], nextPageToken: str} # Successful response

@endpoint POST /v1beta/{parent}/firebaseLinks
@desc Creates a FirebaseLink. Properties can have at most one FirebaseLink.
@required {parent: str # Required. Format: properties/{property_id} Example: properties/1234}
@optional {createTime: str(google-datetime) # Output only. Time when this FirebaseLink was originally created., name: str # Output only. Example format: properties/1234/firebaseLinks/5678, project: str # Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: 'projects/{project number}' Example: 'projects/1234'}
@returns(200) {createTime: str(google-datetime), name: str, project: str} # Successful response

@endpoint GET /v1beta/{parent}/googleAdsLinks
@desc Lists GoogleAdsLinks on a property.
@required {parent: str # Required. Example format: properties/1234}
@optional {pageSize: int # The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum)., pageToken: str # A page token, received from a previous `ListGoogleAdsLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListGoogleAdsLinks` must match the call that provided the page token.}
@returns(200) {googleAdsLinks: [map], nextPageToken: str} # Successful response

@endpoint POST /v1beta/{parent}/googleAdsLinks
@desc Creates a GoogleAdsLink.
@required {parent: str # Required. Example format: properties/1234}
@optional {adsPersonalizationEnabled: bool # Enable personalized advertising features with this integration. Automatically publish my Google Analytics audience lists and Google Analytics remarketing events/parameters to the linked Google Ads account. If this field is not set on create/update, it will be defaulted to true., canManageClients: bool # Output only. If true, this link is for a Google Ads manager account., createTime: str(google-datetime) # Output only. Time when this link was originally created., creatorEmailAddress: str # Output only. Email address of the user that created the link. An empty string will be returned if the email address can't be retrieved., customerId: str # Immutable. Google Ads customer ID., name: str # Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId is not the Google Ads customer ID., updateTime: str(google-datetime) # Output only. Time when this link was last updated.}
@returns(200) {adsPersonalizationEnabled: bool, canManageClients: bool, createTime: str(google-datetime), creatorEmailAddress: str, customerId: str, name: str, updateTime: str(google-datetime)} # Successful response

@endpoint GET /v1beta/{parent}/measurementProtocolSecrets
@desc Returns child MeasurementProtocolSecrets under the specified parent Property.
@required {parent: str # Required. The resource name of the parent stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets}
@optional {pageSize: int # The maximum number of resources to return. If unspecified, at most 10 resources will be returned. The maximum value is 10. Higher values will be coerced to the maximum., pageToken: str # A page token, received from a previous `ListMeasurementProtocolSecrets` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListMeasurementProtocolSecrets` must match the call that provided the page token.}
@returns(200) {measurementProtocolSecrets: [map], nextPageToken: str} # Successful response

@endpoint POST /v1beta/{parent}/measurementProtocolSecrets
@desc Creates a measurement protocol secret.
@required {parent: str # Required. The parent resource where this secret will be created. Format: properties/{property}/dataStreams/{dataStream}}
@optional {displayName: str # Required. Human-readable display name for this secret., name: str # Output only. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}, secretValue: str # Output only. The measurement protocol secret value. Pass this value to the api_secret field of the Measurement Protocol API when sending hits to this secret's parent property.}
@returns(200) {displayName: str, name: str, secretValue: str} # Successful response

@endpoint POST /v1beta/{property}:acknowledgeUserDataCollection
@desc Acknowledges the terms of user data collection for the specified property. This acknowledgement must be completed (either in the Google Analytics UI or through this API) before MeasurementProtocolSecret resources may be created.
@required {property: str # Required. The property for which to acknowledge user data collection.}
@optional {acknowledgement: str # Required. An acknowledgement that the caller of this method understands the terms of user data collection. This field must contain the exact value: "I acknowledge that I have the necessary privacy disclosures and rights from my end users for the collection and processing of their data, including the association of such data with the visitation information Google Analytics collects from my site and/or app property."}
@returns(200) Successful response

@end
