googleapis/google/analytics/admin/v1alpha/resources.proto
Google APIs 113746270b feat: add the CreateReportingDataAnnotation method
feat: add the `GetReportingDataAnnotation` method
feat: add the `ListReportingDataAnnotations` method
feat: add the `UpdateReportingDataAnnotation` method
feat: add the `DeleteReportingDataAnnotation` method
feat: add the `SubmitUserDeletion` method
feat: add the `REPORTING_DATA_ANNOTATION` resource type to the `ChangeHistoryResourceType` enum
fix!: change an existing value KEY_EVENT = 32 to KEY_EVENT = 30 in enum `ChangeHistoryResourceType`.
fix!: rename an existing field `key_event` to `reporting_data_annotation` in `ChangeHistoryChange`.
feat: add the `ReportingDataAnnotation` type
feat: add `key_event`, `reporting_data_annotation` fields to the `ChangeHistoryResource` resource
docs: announce the deprecation of the `sharing_with_google_any_sales_enabled` field of the `DataSharingSettings` type
docs: update the documentation of `sharing_with_google_support_enabled`, `sharing_with_google_assigned_sales_enabled`, 'sharing_with_google_products_enabled', 'sharing_with_others_enabled' fields of the `DataSharingSettings` type

PiperOrigin-RevId: 748054282
2025-04-15 15:54:39 -07:00

2128 lines
77 KiB
Protocol Buffer

// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.analytics.admin.v1alpha;
import "google/analytics/admin/v1alpha/audience.proto";
import "google/analytics/admin/v1alpha/channel_group.proto";
import "google/analytics/admin/v1alpha/event_create_and_edit.proto";
import "google/analytics/admin/v1alpha/expanded_data_set.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/type/date.proto";
option go_package = "cloud.google.com/go/analytics/admin/apiv1alpha/adminpb;adminpb";
option java_multiple_files = true;
option java_outer_classname = "ResourcesProto";
option java_package = "com.google.analytics.admin.v1alpha";
option (google.api.resource_definition) = {
type: "marketingplatformadmin.googleapis.com/Organization"
pattern: "organizations/{organization}"
};
// The category selected for this property, used for industry benchmarking.
enum IndustryCategory {
// Industry category unspecified
INDUSTRY_CATEGORY_UNSPECIFIED = 0;
// Automotive
AUTOMOTIVE = 1;
// Business and industrial markets
BUSINESS_AND_INDUSTRIAL_MARKETS = 2;
// Finance
FINANCE = 3;
// Healthcare
HEALTHCARE = 4;
// Technology
TECHNOLOGY = 5;
// Travel
TRAVEL = 6;
// Other
OTHER = 7;
// Arts and entertainment
ARTS_AND_ENTERTAINMENT = 8;
// Beauty and fitness
BEAUTY_AND_FITNESS = 9;
// Books and literature
BOOKS_AND_LITERATURE = 10;
// Food and drink
FOOD_AND_DRINK = 11;
// Games
GAMES = 12;
// Hobbies and leisure
HOBBIES_AND_LEISURE = 13;
// Home and garden
HOME_AND_GARDEN = 14;
// Internet and telecom
INTERNET_AND_TELECOM = 15;
// Law and government
LAW_AND_GOVERNMENT = 16;
// News
NEWS = 17;
// Online communities
ONLINE_COMMUNITIES = 18;
// People and society
PEOPLE_AND_SOCIETY = 19;
// Pets and animals
PETS_AND_ANIMALS = 20;
// Real estate
REAL_ESTATE = 21;
// Reference
REFERENCE = 22;
// Science
SCIENCE = 23;
// Sports
SPORTS = 24;
// Jobs and education
JOBS_AND_EDUCATION = 25;
// Shopping
SHOPPING = 26;
}
// Various levels of service for Google Analytics.
enum ServiceLevel {
// Service level not specified or invalid.
SERVICE_LEVEL_UNSPECIFIED = 0;
// The standard version of Google Analytics.
GOOGLE_ANALYTICS_STANDARD = 1;
// The paid, premium version of Google Analytics.
GOOGLE_ANALYTICS_360 = 2;
}
// Different kinds of actors that can make changes to Google Analytics
// resources.
enum ActorType {
// Unknown or unspecified actor type.
ACTOR_TYPE_UNSPECIFIED = 0;
// Changes made by the user specified in actor_email.
USER = 1;
// Changes made by the Google Analytics system.
SYSTEM = 2;
// Changes made by Google Analytics support team staff.
SUPPORT = 3;
}
// Types of actions that may change a resource.
enum ActionType {
// Action type unknown or not specified.
ACTION_TYPE_UNSPECIFIED = 0;
// Resource was created in this change.
CREATED = 1;
// Resource was updated in this change.
UPDATED = 2;
// Resource was deleted in this change.
DELETED = 3;
}
// Types of resources whose changes may be returned from change history.
enum ChangeHistoryResourceType {
// Resource type unknown or not specified.
CHANGE_HISTORY_RESOURCE_TYPE_UNSPECIFIED = 0;
// Account resource
ACCOUNT = 1;
// Property resource
PROPERTY = 2;
// FirebaseLink resource
FIREBASE_LINK = 6;
// GoogleAdsLink resource
GOOGLE_ADS_LINK = 7;
// GoogleSignalsSettings resource
GOOGLE_SIGNALS_SETTINGS = 8;
// ConversionEvent resource
CONVERSION_EVENT = 9;
// MeasurementProtocolSecret resource
MEASUREMENT_PROTOCOL_SECRET = 10;
// CustomDimension resource
CUSTOM_DIMENSION = 11;
// CustomMetric resource
CUSTOM_METRIC = 12;
// DataRetentionSettings resource
DATA_RETENTION_SETTINGS = 13;
// DisplayVideo360AdvertiserLink resource
DISPLAY_VIDEO_360_ADVERTISER_LINK = 14;
// DisplayVideo360AdvertiserLinkProposal resource
DISPLAY_VIDEO_360_ADVERTISER_LINK_PROPOSAL = 15;
// SearchAds360Link resource
SEARCH_ADS_360_LINK = 16;
// DataStream resource
DATA_STREAM = 18;
// AttributionSettings resource
ATTRIBUTION_SETTINGS = 20;
// ExpandedDataSet resource
EXPANDED_DATA_SET = 21;
// ChannelGroup resource
CHANNEL_GROUP = 22;
// BigQuery link resource
BIGQUERY_LINK = 23;
// EnhancedMeasurementSettings resource
ENHANCED_MEASUREMENT_SETTINGS = 24;
// DataRedactionSettings resource
DATA_REDACTION_SETTINGS = 25;
// SKAdNetworkConversionValueSchema resource
SKADNETWORK_CONVERSION_VALUE_SCHEMA = 26;
// AdSenseLink resource
ADSENSE_LINK = 27;
// Audience resource
AUDIENCE = 28;
// EventCreateRule resource
EVENT_CREATE_RULE = 29;
// KeyEvent resource
KEY_EVENT = 30;
// CalculatedMetric resource
CALCULATED_METRIC = 31;
// ReportingDataAnnotation resource
REPORTING_DATA_ANNOTATION = 32;
}
// Status of the Google Signals settings.
enum GoogleSignalsState {
// Google Signals status defaults to GOOGLE_SIGNALS_STATE_UNSPECIFIED to
// represent that the user has not made an explicit choice.
GOOGLE_SIGNALS_STATE_UNSPECIFIED = 0;
// Google Signals is enabled.
GOOGLE_SIGNALS_ENABLED = 1;
// Google Signals is disabled.
GOOGLE_SIGNALS_DISABLED = 2;
}
// Consent field of the Google Signals settings.
enum GoogleSignalsConsent {
// Google Signals consent value defaults to
// GOOGLE_SIGNALS_CONSENT_UNSPECIFIED. This will be treated as
// GOOGLE_SIGNALS_CONSENT_NOT_CONSENTED.
GOOGLE_SIGNALS_CONSENT_UNSPECIFIED = 0;
// Terms of service have been accepted
GOOGLE_SIGNALS_CONSENT_CONSENTED = 2;
// Terms of service have not been accepted
GOOGLE_SIGNALS_CONSENT_NOT_CONSENTED = 1;
}
// An indication of which product the user initiated a link proposal from.
enum LinkProposalInitiatingProduct {
// Unspecified product.
LINK_PROPOSAL_INITIATING_PRODUCT_UNSPECIFIED = 0;
// This proposal was created by a user from Google Analytics.
GOOGLE_ANALYTICS = 1;
// This proposal was created by a user from a linked product (not Google
// Analytics).
LINKED_PRODUCT = 2;
}
// The state of a link proposal resource.
enum LinkProposalState {
// Unspecified state
LINK_PROPOSAL_STATE_UNSPECIFIED = 0;
// This proposal is awaiting review from a Google Analytics user. This
// proposal will automatically expire after some time.
AWAITING_REVIEW_FROM_GOOGLE_ANALYTICS = 1;
// This proposal is awaiting review from a user of a linked product. This
// proposal will automatically expire after some time.
AWAITING_REVIEW_FROM_LINKED_PRODUCT = 2;
// This proposal has been withdrawn by an admin on the initiating product.
// This proposal will be automatically deleted after some time.
WITHDRAWN = 3;
// This proposal has been declined by an admin on the receiving product. This
// proposal will be automatically deleted after some time.
DECLINED = 4;
// This proposal expired due to lack of response from an admin on the
// receiving product. This proposal will be automatically deleted after some
// time.
EXPIRED = 5;
// This proposal has become obsolete because a link was directly created to
// the same external product resource that this proposal specifies. This
// proposal will be automatically deleted after some time.
OBSOLETE = 6;
}
// Types of `Property` resources.
enum PropertyType {
// Unknown or unspecified property type
PROPERTY_TYPE_UNSPECIFIED = 0;
// Ordinary Google Analytics property
PROPERTY_TYPE_ORDINARY = 1;
// Google Analytics subproperty
PROPERTY_TYPE_SUBPROPERTY = 2;
// Google Analytics rollup property
PROPERTY_TYPE_ROLLUP = 3;
}
// The coarse conversion value set on the updatePostbackConversionValue SDK call
// when a ConversionValues.event_mappings conditions are satisfied. For
// more information, see
// [SKAdNetwork.CoarseConversionValue](https://developer.apple.com/documentation/storekit/skadnetwork/coarseconversionvalue).
enum CoarseValue {
// Coarse value not specified.
COARSE_VALUE_UNSPECIFIED = 0;
// Coarse value of low.
COARSE_VALUE_LOW = 1;
// Coarse value of medium.
COARSE_VALUE_MEDIUM = 2;
// Coarse value of high.
COARSE_VALUE_HIGH = 3;
}
// A resource message representing a Google Analytics account.
message Account {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/Account"
pattern: "accounts/{account}"
};
// Output only. Resource name of this account.
// Format: accounts/{account}
// Example: "accounts/100"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Time when this account was originally created.
google.protobuf.Timestamp create_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Time when account payload fields were last updated.
google.protobuf.Timestamp update_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Required. Human-readable display name for this account.
string display_name = 4 [(google.api.field_behavior) = REQUIRED];
// Country of business. Must be a Unicode CLDR region code.
string region_code = 5;
// Output only. Indicates whether this Account is soft-deleted or not. Deleted
// accounts are excluded from List results unless specifically requested.
bool deleted = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The URI for a Google Marketing Platform organization resource.
// Only set when this account is connected to a GMP organization.
// Format: marketingplatformadmin.googleapis.com/organizations/{org_id}
string gmp_organization = 7 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "marketingplatformadmin.googleapis.com/Organization"
}
];
}
// A resource message representing a Google Analytics property.
message Property {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/Property"
pattern: "properties/{property}"
};
// Output only. Resource name of this property.
// Format: properties/{property_id}
// Example: "properties/1000"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
PropertyType property_type = 14 [(google.api.field_behavior) = IMMUTABLE];
// Output only. Time when the entity was originally created.
google.protobuf.Timestamp create_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Time when entity payload fields were last updated.
google.protobuf.Timestamp update_time = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
// 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"
string parent = 2 [(google.api.field_behavior) = IMMUTABLE];
// Required. Human-readable display name for this property.
//
// The max allowed display name length is 100 UTF-16 code units.
string display_name = 5 [(google.api.field_behavior) = REQUIRED];
// Industry associated with this property
// Example: AUTOMOTIVE, FOOD_AND_DRINK
IndustryCategory industry_category = 6;
// 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"
string time_zone = 7 [(google.api.field_behavior) = REQUIRED];
// The currency type used in reports involving monetary values.
//
//
// Format: https://en.wikipedia.org/wiki/ISO_4217
// Examples: "USD", "EUR", "JPY"
string currency_code = 8;
// Output only. The Google Analytics service level that applies to this
// property.
ServiceLevel service_level = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
google.protobuf.Timestamp delete_time = 11
[(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
google.protobuf.Timestamp expire_time = 12
[(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. The resource name of the parent account
// Format: accounts/{account_id}
// Example: "accounts/123"
string account = 13 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.resource_reference) = {
type: "analyticsadmin.googleapis.com/Account"
}
];
}
// A resource message representing a data stream.
message DataStream {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/DataStream"
pattern: "properties/{property}/dataStreams/{data_stream}"
};
// Data specific to web streams.
message WebStreamData {
// Output only. Analytics Measurement ID.
//
// Example: "G-1A2BCD345E"
string measurement_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. ID of the corresponding web app in Firebase, if any.
// This ID can change if the web app is deleted and recreated.
string firebase_app_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Domain name of the web app being measured, or empty.
// Example: "http://www.google.com", "https://www.google.com"
string default_uri = 3;
}
// Data specific to Android app streams.
message AndroidAppStreamData {
// Output only. ID of the corresponding Android app in Firebase, if any.
// This ID can change if the Android app is deleted and recreated.
string firebase_app_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. The package name for the app being measured.
// Example: "com.example.myandroidapp"
string package_name = 2 [(google.api.field_behavior) = IMMUTABLE];
}
// Data specific to iOS app streams.
message IosAppStreamData {
// Output only. ID of the corresponding iOS app in Firebase, if any.
// This ID can change if the iOS app is deleted and recreated.
string firebase_app_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. Immutable. The Apple App Store Bundle ID for the app
// Example: "com.example.myiosapp"
string bundle_id = 2 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.field_behavior) = REQUIRED
];
}
// The type of the data stream.
enum DataStreamType {
// Type unknown or not specified.
DATA_STREAM_TYPE_UNSPECIFIED = 0;
// Web data stream.
WEB_DATA_STREAM = 1;
// Android app data stream.
ANDROID_APP_DATA_STREAM = 2;
// iOS app data stream.
IOS_APP_DATA_STREAM = 3;
}
// Data for specific data stream types. The message that will be
// set corresponds to the type of this stream.
oneof stream_data {
// Data specific to web streams. Must be populated if type is
// WEB_DATA_STREAM.
WebStreamData web_stream_data = 6;
// Data specific to Android app streams. Must be populated if type is
// ANDROID_APP_DATA_STREAM.
AndroidAppStreamData android_app_stream_data = 7;
// Data specific to iOS app streams. Must be populated if type is
// IOS_APP_DATA_STREAM.
IosAppStreamData ios_app_stream_data = 8;
}
// Output only. Resource name of this Data Stream.
// Format: properties/{property_id}/dataStreams/{stream_id}
// Example: "properties/1000/dataStreams/2000"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. Immutable. The type of this DataStream resource.
DataStreamType type = 2 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.field_behavior) = REQUIRED
];
// 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.
string display_name = 3;
// Output only. Time when this stream was originally created.
google.protobuf.Timestamp create_time = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Time when stream payload fields were last updated.
google.protobuf.Timestamp update_time = 5
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// A link between a Google Analytics property and a Firebase project.
message FirebaseLink {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/FirebaseLink"
pattern: "properties/{property}/firebaseLinks/{firebase_link}"
};
// Output only. Example format: properties/1234/firebaseLinks/5678
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// 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'
string project = 2 [(google.api.field_behavior) = IMMUTABLE];
// Output only. Time when this FirebaseLink was originally created.
google.protobuf.Timestamp create_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Read-only resource with the tag for sending data from a website to a
// DataStream. Only present for web DataStream resources.
message GlobalSiteTag {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/GlobalSiteTag"
pattern: "properties/{property}/dataStreams/{data_stream}/globalSiteTag"
};
// Output only. Resource name for this GlobalSiteTag resource.
// Format: properties/{property_id}/dataStreams/{stream_id}/globalSiteTag
// Example: "properties/123/dataStreams/456/globalSiteTag"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. JavaScript code snippet to be pasted as the first item into the
// head tag of every webpage to measure.
string snippet = 2 [(google.api.field_behavior) = IMMUTABLE];
}
// A link between a Google Analytics property and a Google Ads account.
message GoogleAdsLink {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/GoogleAdsLink"
pattern: "properties/{property}/googleAdsLinks/{google_ads_link}"
};
// Output only. Format:
// properties/{propertyId}/googleAdsLinks/{googleAdsLinkId}
//
// Note: googleAdsLinkId is not the Google Ads customer ID.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. Google Ads customer ID.
string customer_id = 3 [(google.api.field_behavior) = IMMUTABLE];
// Output only. If true, this link is for a Google Ads manager account.
bool can_manage_clients = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
google.protobuf.BoolValue ads_personalization_enabled = 5;
// Output only. Time when this link was originally created.
google.protobuf.Timestamp create_time = 7
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Time when this link was last updated.
google.protobuf.Timestamp update_time = 8
[(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
string creator_email_address = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// A resource message representing data sharing settings of a Google Analytics
// account.
message DataSharingSettings {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/DataSharingSettings"
pattern: "accounts/{account}/dataSharingSettings"
};
// Output only. Resource name.
// Format: accounts/{account}/dataSharingSettings
// Example: "accounts/1000/dataSharingSettings"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Allows Google technical support representatives access to your Google
// Analytics data and account when necessary to provide service and find
// solutions to technical issues.
//
// This field maps to the "Technical support" field in the Google Analytics
// Admin UI.
bool sharing_with_google_support_enabled = 2;
// Allows Google access to your Google Analytics account data, including
// account usage and configuration data, product spending, and users
// associated with your Google Analytics account, so that Google can help you
// make the most of Google products, providing you with insights, offers,
// recommendations, and optimization tips across Google Analytics and other
// Google products for business.
//
// This field maps to the "Recommendations for your business" field in the
// Google Analytics Admin UI.
bool sharing_with_google_assigned_sales_enabled = 3;
// Deprecated. This field is no longer used and always returns false.
bool sharing_with_google_any_sales_enabled = 4 [deprecated = true];
// Allows Google to use the data to improve other Google products or services.
//
// This fields maps to the "Google products & services" field in the Google
// Analytics Admin UI.
bool sharing_with_google_products_enabled = 5;
// Enable features like predictions, modeled data, and benchmarking that can
// provide you with richer business insights when you contribute aggregated
// measurement data. The data you share (including information about the
// property from which it is shared) is aggregated and de-identified before
// being used to generate business insights.
//
// This field maps to the "Modeling contributions & business insights" field
// in the Google Analytics Admin UI.
bool sharing_with_others_enabled = 6;
}
// A virtual resource representing an overview of an account and
// all its child Google Analytics properties.
message AccountSummary {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/AccountSummary"
pattern: "accountSummaries/{account_summary}"
};
// Resource name for this account summary.
// Format: accountSummaries/{account_id}
// Example: "accountSummaries/1000"
string name = 1;
// Resource name of account referred to by this account summary
// Format: accounts/{account_id}
// Example: "accounts/1000"
string account = 2 [(google.api.resource_reference) = {
type: "analyticsadmin.googleapis.com/Account"
}];
// Display name for the account referred to in this account summary.
string display_name = 3;
// List of summaries for child accounts of this account.
repeated PropertySummary property_summaries = 4;
}
// A virtual resource representing metadata for a Google Analytics property.
message PropertySummary {
// Resource name of property referred to by this property summary
// Format: properties/{property_id}
// Example: "properties/1000"
string property = 1 [(google.api.resource_reference) = {
type: "analyticsadmin.googleapis.com/Property"
}];
// Display name for the property referred to in this property summary.
string display_name = 2;
// The property's property type.
PropertyType property_type = 3;
// 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/200"
string parent = 4;
}
// A secret value used for sending hits to Measurement Protocol.
message MeasurementProtocolSecret {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret"
pattern: "properties/{property}/dataStreams/{data_stream}/measurementProtocolSecrets/{measurement_protocol_secret}"
};
// 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}
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. Human-readable display name for this secret.
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
// 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.
string secret_value = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// SKAdNetwork conversion value schema of an iOS stream.
message SKAdNetworkConversionValueSchema {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/SKAdNetworkConversionValueSchema"
pattern: "properties/{property}/dataStreams/{data_stream}/sKAdNetworkConversionValueSchema/{skadnetwork_conversion_value_schema}"
};
// Output only. Resource name of the schema. This will be child of ONLY an iOS
// stream, and there can be at most one such child under an iOS stream.
// Format:
// properties/{property}/dataStreams/{dataStream}/sKAdNetworkConversionValueSchema
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The conversion value settings for the first postback window.
// These differ from values for postback window two and three in that they
// contain a "Fine" grained conversion value (a numeric value).
//
// Conversion values for this postback window must be set. The other windows
// are optional and may inherit this window's settings if unset or disabled.
PostbackWindow postback_window_one = 2
[(google.api.field_behavior) = REQUIRED];
// The conversion value settings for the second postback window.
//
// This field should only be configured if there is a need to define different
// conversion values for this postback window.
//
// If enable_postback_window_settings is set to false for this postback
// window, the values from postback_window_one will be used.
PostbackWindow postback_window_two = 3;
// The conversion value settings for the third postback window.
//
// This field should only be set if the user chose to define different
// conversion values for this postback window. It is allowed to configure
// window 3 without setting window 2. In case window 1 & 2 settings are set
// and enable_postback_window_settings for this postback window is set to
// false, the schema will inherit settings from postback_window_two.
PostbackWindow postback_window_three = 4;
// If enabled, the GA SDK will set conversion values using this schema
// definition, and schema will be exported to any Google Ads accounts linked
// to this property. If disabled, the GA SDK will not automatically set
// conversion values, and also the schema will not be exported to Ads.
bool apply_conversion_values = 5;
}
// Settings for a SKAdNetwork conversion postback window.
message PostbackWindow {
// Ordering of the repeated field will be used to prioritize the conversion
// value settings. Lower indexed entries are prioritized higher. The first
// conversion value setting that evaluates to true will be selected. It must
// have at least one entry if enable_postback_window_settings is set to
// true. It can have maximum of 128 entries.
repeated ConversionValues conversion_values = 1;
// If enable_postback_window_settings is true, conversion_values
// must be populated and will be used for determining when and how to set the
// Conversion Value on a client device and exporting schema to linked Ads
// accounts. If false, the settings are not used, but are retained in case
// they may be used in the future. This must always be true for
// postback_window_one.
bool postback_window_settings_enabled = 2;
}
// Conversion value settings for a postback window for SKAdNetwork conversion
// value schema.
message ConversionValues {
// Display name of the SKAdNetwork conversion value.
// The max allowed display name length is 50 UTF-16 code units.
string display_name = 1;
// The fine-grained conversion value. This is applicable only to the first
// postback window. Its valid values are [0,63], both inclusive. It must be
// set for postback window 1, and must not be set for postback window 2 & 3.
// This value is not guaranteed to be unique.
//
// If the configuration for the first postback window is re-used for second or
// third postback windows this field has no effect.
optional int32 fine_value = 2;
// Required. A coarse grained conversion value.
//
// This value is not guaranteed to be unique.
CoarseValue coarse_value = 3 [(google.api.field_behavior) = REQUIRED];
// Event conditions that must be met for this Conversion Value to be achieved.
// The conditions in this list are ANDed together. It must have minimum of 1
// entry and maximum of 3 entries, if the postback window is enabled.
repeated EventMapping event_mappings = 4;
// If true, the SDK should lock to this conversion value for the current
// postback window.
bool lock_enabled = 5;
}
// Event setting conditions to match an event.
message EventMapping {
// Required. Name of the Google Analytics event. It must always be set.
// The max allowed display name length is 40 UTF-16 code units.
string event_name = 1 [(google.api.field_behavior) = REQUIRED];
// At least one of the following four min/max values must be set. The
// values set will be ANDed together to qualify an event.
// The minimum number of times the event occurred. If not set, minimum event
// count won't be checked.
optional int64 min_event_count = 2;
// The maximum number of times the event occurred. If not set, maximum event
// count won't be checked.
optional int64 max_event_count = 3;
// The minimum revenue generated due to the event. Revenue currency will be
// defined at the property level. If not set, minimum event value won't be
// checked.
optional double min_event_value = 4;
// The maximum revenue generated due to the event. Revenue currency will be
// defined at the property level. If not set, maximum event value won't be
// checked.
optional double max_event_value = 5;
}
// A set of changes within a Google Analytics account or its child properties
// that resulted from the same cause. Common causes would be updates made in the
// Google Analytics UI, changes from customer support, or automatic Google
// Analytics system changes.
message ChangeHistoryEvent {
// ID of this change history event. This ID is unique across Google Analytics.
string id = 1;
// Time when change was made.
google.protobuf.Timestamp change_time = 2;
// The type of actor that made this change.
ActorType actor_type = 3;
// Email address of the Google account that made the change. This will be a
// valid email address if the actor field is set to USER, and empty otherwise.
// Google accounts that have been deleted will cause an error.
string user_actor_email = 4;
// If true, then the list of changes returned was filtered, and does not
// represent all changes that occurred in this event.
bool changes_filtered = 5;
// A list of changes made in this change history event that fit the filters
// specified in SearchChangeHistoryEventsRequest.
repeated ChangeHistoryChange changes = 6;
}
// A description of a change to a single Google Analytics resource.
message ChangeHistoryChange {
// A snapshot of a resource as before or after the result of a change in
// change history.
message ChangeHistoryResource {
oneof resource {
// A snapshot of an Account resource in change history.
Account account = 1;
// A snapshot of a Property resource in change history.
Property property = 2;
// A snapshot of a FirebaseLink resource in change history.
FirebaseLink firebase_link = 6;
// A snapshot of a GoogleAdsLink resource in change history.
GoogleAdsLink google_ads_link = 7;
// A snapshot of a GoogleSignalsSettings resource in change history.
GoogleSignalsSettings google_signals_settings = 8;
// A snapshot of a DisplayVideo360AdvertiserLink resource in change
// history.
DisplayVideo360AdvertiserLink display_video_360_advertiser_link = 9;
// A snapshot of a DisplayVideo360AdvertiserLinkProposal resource in
// change history.
DisplayVideo360AdvertiserLinkProposal
display_video_360_advertiser_link_proposal = 10;
// A snapshot of a ConversionEvent resource in change history.
ConversionEvent conversion_event = 11;
// A snapshot of a MeasurementProtocolSecret resource in change history.
MeasurementProtocolSecret measurement_protocol_secret = 12;
// A snapshot of a CustomDimension resource in change history.
CustomDimension custom_dimension = 13;
// A snapshot of a CustomMetric resource in change history.
CustomMetric custom_metric = 14;
// A snapshot of a data retention settings resource in change history.
DataRetentionSettings data_retention_settings = 15;
// A snapshot of a SearchAds360Link resource in change history.
SearchAds360Link search_ads_360_link = 16;
// A snapshot of a DataStream resource in change history.
DataStream data_stream = 18;
// A snapshot of AttributionSettings resource in change history.
AttributionSettings attribution_settings = 20;
// A snapshot of an ExpandedDataSet resource in change history.
ExpandedDataSet expanded_data_set = 21;
// A snapshot of a ChannelGroup resource in change history.
ChannelGroup channel_group = 22;
// A snapshot of a BigQuery link resource in change history.
BigQueryLink bigquery_link = 23;
// A snapshot of EnhancedMeasurementSettings resource in change history.
EnhancedMeasurementSettings enhanced_measurement_settings = 24;
// A snapshot of DataRedactionSettings resource in change history.
DataRedactionSettings data_redaction_settings = 25;
// A snapshot of SKAdNetworkConversionValueSchema resource in change
// history.
SKAdNetworkConversionValueSchema skadnetwork_conversion_value_schema = 26;
// A snapshot of an AdSenseLink resource in change history.
AdSenseLink adsense_link = 27;
// A snapshot of an Audience resource in change history.
Audience audience = 28;
// A snapshot of an EventCreateRule resource in change history.
EventCreateRule event_create_rule = 29;
// A snapshot of a KeyEvent resource in change history.
KeyEvent key_event = 30;
// A snapshot of a CalculatedMetric resource in change history.
CalculatedMetric calculated_metric = 31;
// A snapshot of a ReportingDataAnnotation resource in change history.
ReportingDataAnnotation reporting_data_annotation = 32;
}
}
// Resource name of the resource whose changes are described by this entry.
string resource = 1;
// The type of action that changed this resource.
ActionType action = 2;
// Resource contents from before the change was made. If this resource was
// created in this change, this field will be missing.
ChangeHistoryResource resource_before_change = 3;
// Resource contents from after the change was made. If this resource was
// deleted in this change, this field will be missing.
ChangeHistoryResource resource_after_change = 4;
}
// A link between a Google Analytics property and a Display & Video 360
// advertiser.
message DisplayVideo360AdvertiserLink {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/DisplayVideo360AdvertiserLink"
pattern: "properties/{property}/displayVideo360AdvertiserLinks/{display_video_360_advertiser_link}"
};
// Output only. The resource name for this DisplayVideo360AdvertiserLink
// resource. Format:
// properties/{propertyId}/displayVideo360AdvertiserLinks/{linkId}
//
// Note: linkId is not the Display & Video 360 Advertiser ID
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. The Display & Video 360 Advertiser's advertiser ID.
string advertiser_id = 2 [(google.api.field_behavior) = IMMUTABLE];
// Output only. The display name of the Display & Video 360 Advertiser.
string advertiser_display_name = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Enables personalized advertising features with this integration.
// If this field is not set on create/update, it will be defaulted to true.
google.protobuf.BoolValue ads_personalization_enabled = 4;
// Immutable. Enables the import of campaign data from Display & Video 360
// into the Google Analytics property. After link creation, this can only be
// updated from the Display & Video 360 product. If this field is not set on
// create, it will be defaulted to true.
google.protobuf.BoolValue campaign_data_sharing_enabled = 5
[(google.api.field_behavior) = IMMUTABLE];
// Immutable. Enables the import of cost data from Display & Video 360 into
// the Google Analytics property. This can only be enabled if
// `campaign_data_sharing_enabled` is true. After link creation, this can
// only be updated from the Display & Video 360 product. If this field is not
// set on create, it will be defaulted to true.
google.protobuf.BoolValue cost_data_sharing_enabled = 6
[(google.api.field_behavior) = IMMUTABLE];
}
// A proposal for a link between a Google Analytics property and a Display &
// Video 360 advertiser.
//
// A proposal is converted to a DisplayVideo360AdvertiserLink once approved.
// Google Analytics admins approve inbound proposals while Display & Video 360
// admins approve outbound proposals.
message DisplayVideo360AdvertiserLinkProposal {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/DisplayVideo360AdvertiserLinkProposal"
pattern: "properties/{property}/displayVideo360AdvertiserLinkProposals/{display_video_360_advertiser_link_proposal}"
};
// Output only. The resource name for this
// DisplayVideo360AdvertiserLinkProposal resource. Format:
// properties/{propertyId}/displayVideo360AdvertiserLinkProposals/{proposalId}
//
// Note: proposalId is not the Display & Video 360 Advertiser ID
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. The Display & Video 360 Advertiser's advertiser ID.
string advertiser_id = 2 [(google.api.field_behavior) = IMMUTABLE];
// Output only. The status information for this link proposal.
LinkProposalStatusDetails link_proposal_status_details = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The display name of the Display & Video Advertiser.
// Only populated for proposals that originated from Display & Video 360.
string advertiser_display_name = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
// Input only. On a proposal being sent to Display & Video 360, this field
// must be set to the email address of an admin on the target advertiser. This
// is used to verify that the Google Analytics admin is aware of at least one
// admin on the Display & Video 360 Advertiser. This does not restrict
// approval of the proposal to a single user. Any admin on the Display & Video
// 360 Advertiser may approve the proposal.
string validation_email = 5 [(google.api.field_behavior) = INPUT_ONLY];
// Immutable. Enables personalized advertising features with this integration.
// If this field is not set on create, it will be defaulted to true.
google.protobuf.BoolValue ads_personalization_enabled = 6
[(google.api.field_behavior) = IMMUTABLE];
// Immutable. Enables the import of campaign data from Display & Video 360.
// If this field is not set on create, it will be defaulted to true.
google.protobuf.BoolValue campaign_data_sharing_enabled = 7
[(google.api.field_behavior) = IMMUTABLE];
// Immutable. Enables the import of cost data from Display & Video 360.
// This can only be enabled if campaign_data_sharing_enabled is enabled.
// If this field is not set on create, it will be defaulted to true.
google.protobuf.BoolValue cost_data_sharing_enabled = 8
[(google.api.field_behavior) = IMMUTABLE];
}
// A link between a Google Analytics property and a Search Ads 360 entity.
message SearchAds360Link {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/SearchAds360Link"
pattern: "properties/{property}/searchAds360Links/{search_ads_360_link}"
};
// Output only. The resource name for this SearchAds360Link resource.
// Format: properties/{propertyId}/searchAds360Links/{linkId}
//
// Note: linkId is not the Search Ads 360 advertiser ID
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. This field represents the Advertiser ID of the Search Ads 360
// Advertiser. that has been linked.
string advertiser_id = 2 [(google.api.field_behavior) = IMMUTABLE];
// Immutable. Enables the import of campaign data from Search Ads 360 into the
// Google Analytics property. After link creation, this can only be updated
// from the Search Ads 360 product. If this field is not set on create, it
// will be defaulted to true.
google.protobuf.BoolValue campaign_data_sharing_enabled = 3
[(google.api.field_behavior) = IMMUTABLE];
// Immutable. Enables the import of cost data from Search Ads 360 to the
// Google Analytics property. This can only be enabled if
// campaign_data_sharing_enabled is enabled. After link creation, this can
// only be updated from the Search Ads 360 product. If this field is not set
// on create, it will be defaulted to true.
google.protobuf.BoolValue cost_data_sharing_enabled = 4
[(google.api.field_behavior) = IMMUTABLE];
// Output only. The display name of the Search Ads 360 Advertiser.
// Allows users to easily identify the linked resource.
string advertiser_display_name = 5
[(google.api.field_behavior) = OUTPUT_ONLY];
// Enables personalized advertising features with this integration.
// If this field is not set on create, it will be defaulted to true.
google.protobuf.BoolValue ads_personalization_enabled = 6;
// Enables export of site stats with this integration.
// If this field is not set on create, it will be defaulted to true.
google.protobuf.BoolValue site_stats_sharing_enabled = 7;
}
// Status information for a link proposal.
message LinkProposalStatusDetails {
// Output only. The source of this proposal.
LinkProposalInitiatingProduct link_proposal_initiating_product = 1
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The email address of the user that proposed this linkage.
string requestor_email = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The state of this proposal.
LinkProposalState link_proposal_state = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// A conversion event in a Google Analytics property.
message ConversionEvent {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/ConversionEvent"
pattern: "properties/{property}/conversionEvents/{conversion_event}"
};
// Defines a default value/currency for a conversion event. Both value and
// currency must be provided.
message DefaultConversionValue {
// This value will be used to populate the value for all conversions
// of the specified event_name where the event "value" parameter is unset.
optional double value = 1;
// When a conversion event for this event_name has no set currency,
// this currency will be applied as the default. Must be in ISO 4217
// currency code format. See https://en.wikipedia.org/wiki/ISO_4217 for
// more information.
optional string currency_code = 2;
}
// The method by which conversions will be counted across multiple events
// within a session.
enum ConversionCountingMethod {
// Counting method not specified.
CONVERSION_COUNTING_METHOD_UNSPECIFIED = 0;
// Each Event instance is considered a Conversion.
ONCE_PER_EVENT = 1;
// An Event instance is considered a Conversion at most once per session per
// user.
ONCE_PER_SESSION = 2;
}
// Output only. Resource name of this conversion event.
// Format: properties/{property}/conversionEvents/{conversion_event}
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. The event name for this conversion event.
// Examples: 'click', 'purchase'
string event_name = 2 [(google.api.field_behavior) = IMMUTABLE];
// Output only. Time when this conversion event was created in the property.
google.protobuf.Timestamp create_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. If set, this event can currently be deleted with
// DeleteConversionEvent.
bool deletable = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
bool custom = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The method by which conversions will be counted across multiple
// events within a session. If this value is not provided, it will be set to
// `ONCE_PER_EVENT`.
ConversionCountingMethod counting_method = 6
[(google.api.field_behavior) = OPTIONAL];
// Optional. Defines a default value/currency for a conversion event.
optional DefaultConversionValue default_conversion_value = 7
[(google.api.field_behavior) = OPTIONAL];
}
// A key event in a Google Analytics property.
message KeyEvent {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/KeyEvent"
pattern: "properties/{property}/keyEvents/{key_event}"
plural: "keyEvents"
singular: "keyEvent"
};
// Defines a default value/currency for a key event.
message DefaultValue {
// Required. This will be used to populate the "value" parameter for all
// occurrences of this Key Event (specified by event_name) where that
// parameter is unset.
double numeric_value = 1 [(google.api.field_behavior) = REQUIRED];
// Required. When an occurrence of this Key Event (specified by event_name)
// has no set currency this currency will be applied as the default. Must be
// in ISO 4217 currency code format.
//
// See https://en.wikipedia.org/wiki/ISO_4217 for more information.
string currency_code = 2 [(google.api.field_behavior) = REQUIRED];
}
// The method by which Key Events will be counted across multiple events
// within a session.
enum CountingMethod {
// Counting method not specified.
COUNTING_METHOD_UNSPECIFIED = 0;
// Each Event instance is considered a Key Event.
ONCE_PER_EVENT = 1;
// An Event instance is considered a Key Event at most once per session per
// user.
ONCE_PER_SESSION = 2;
}
// Output only. Resource name of this key event.
// Format: properties/{property}/keyEvents/{key_event}
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. The event name for this key event.
// Examples: 'click', 'purchase'
string event_name = 2 [(google.api.field_behavior) = IMMUTABLE];
// Output only. Time when this key event was created in the property.
google.protobuf.Timestamp create_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. If set to true, this event can be deleted.
bool deletable = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. If set to true, this key event refers to a custom event. If
// set to false, this key 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 key events that may be created per property.
bool custom = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The method by which Key Events will be counted across multiple
// events within a session.
CountingMethod counting_method = 6 [(google.api.field_behavior) = REQUIRED];
// Optional. Defines a default value/currency for a key event.
DefaultValue default_value = 7 [(google.api.field_behavior) = OPTIONAL];
}
// Settings values for Google Signals. This is a singleton resource.
message GoogleSignalsSettings {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/GoogleSignalsSettings"
pattern: "properties/{property}/googleSignalsSettings"
};
// Output only. Resource name of this setting.
// Format: properties/{property_id}/googleSignalsSettings
// Example: "properties/1000/googleSignalsSettings"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Status of this setting.
GoogleSignalsState state = 3;
// Output only. Terms of Service acceptance.
GoogleSignalsConsent consent = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// A definition for a CustomDimension.
message CustomDimension {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/CustomDimension"
pattern: "properties/{property}/customDimensions/{custom_dimension}"
};
// Valid values for the scope of this dimension.
enum DimensionScope {
// Scope unknown or not specified.
DIMENSION_SCOPE_UNSPECIFIED = 0;
// Dimension scoped to an event.
EVENT = 1;
// Dimension scoped to a user.
USER = 2;
// Dimension scoped to eCommerce items
ITEM = 3;
}
// Output only. Resource name for this CustomDimension resource.
// Format: properties/{property}/customDimensions/{customDimension}
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
string parameter_name = 2 [
(google.api.field_behavior) = REQUIRED,
(google.api.field_behavior) = IMMUTABLE
];
// 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.
string display_name = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. Description for this custom dimension. Max length of 150
// characters.
string description = 4 [(google.api.field_behavior) = OPTIONAL];
// Required. Immutable. The scope of this dimension.
DimensionScope scope = 5 [
(google.api.field_behavior) = REQUIRED,
(google.api.field_behavior) = IMMUTABLE
];
// 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.
bool disallow_ads_personalization = 6
[(google.api.field_behavior) = OPTIONAL];
}
// A definition for a custom metric.
message CustomMetric {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/CustomMetric"
pattern: "properties/{property}/customMetrics/{custom_metric}"
};
// Possible types of representing the custom metric's value.
//
// Currency representation may change in the future, requiring a breaking API
// change.
enum MeasurementUnit {
// MeasurementUnit unspecified or missing.
MEASUREMENT_UNIT_UNSPECIFIED = 0;
// This metric uses default units.
STANDARD = 1;
// This metric measures a currency.
CURRENCY = 2;
// This metric measures feet.
FEET = 3;
// This metric measures meters.
METERS = 4;
// This metric measures kilometers.
KILOMETERS = 5;
// This metric measures miles.
MILES = 6;
// This metric measures milliseconds.
MILLISECONDS = 7;
// This metric measures seconds.
SECONDS = 8;
// This metric measures minutes.
MINUTES = 9;
// This metric measures hours.
HOURS = 10;
}
// The scope of this metric.
enum MetricScope {
// Scope unknown or not specified.
METRIC_SCOPE_UNSPECIFIED = 0;
// Metric scoped to an event.
EVENT = 1;
}
// Labels that mark the data in this custom metric as data that should be
// restricted to specific users.
enum RestrictedMetricType {
// Type unknown or unspecified.
RESTRICTED_METRIC_TYPE_UNSPECIFIED = 0;
// Metric reports cost data.
COST_DATA = 1;
// Metric reports revenue data.
REVENUE_DATA = 2;
}
// Output only. Resource name for this CustomMetric resource.
// Format: properties/{property}/customMetrics/{customMetric}
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
string parameter_name = 2 [
(google.api.field_behavior) = REQUIRED,
(google.api.field_behavior) = IMMUTABLE
];
// 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.
string display_name = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. Description for this custom dimension.
// Max length of 150 characters.
string description = 4 [(google.api.field_behavior) = OPTIONAL];
// Required. The type for the custom metric's value.
MeasurementUnit measurement_unit = 5 [(google.api.field_behavior) = REQUIRED];
// Required. Immutable. The scope of this custom metric.
MetricScope scope = 6 [
(google.api.field_behavior) = REQUIRED,
(google.api.field_behavior) = IMMUTABLE
];
// 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.
repeated RestrictedMetricType restricted_metric_type = 8
[(google.api.field_behavior) = OPTIONAL];
}
// A definition for a calculated metric.
message CalculatedMetric {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/CalculatedMetric"
pattern: "properties/{property}/calculatedMetrics/{calculated_metric}"
plural: "calculatedMetrics"
singular: "calculatedMetric"
};
// Possible types of representing the calculated metric's value.
enum MetricUnit {
// MetricUnit unspecified or missing.
METRIC_UNIT_UNSPECIFIED = 0;
// This metric uses default units.
STANDARD = 1;
// This metric measures a currency.
CURRENCY = 2;
// This metric measures feet.
FEET = 3;
// This metric measures miles.
MILES = 4;
// This metric measures meters.
METERS = 5;
// This metric measures kilometers.
KILOMETERS = 6;
// This metric measures milliseconds.
MILLISECONDS = 7;
// This metric measures seconds.
SECONDS = 8;
// This metric measures minutes.
MINUTES = 9;
// This metric measures hours.
HOURS = 10;
}
// Labels that mark the data in calculated metric used in conjunction with
// user roles that restrict access to cost and/or revenue metrics.
enum RestrictedMetricType {
// Type unknown or unspecified.
RESTRICTED_METRIC_TYPE_UNSPECIFIED = 0;
// Metric reports cost data.
COST_DATA = 1;
// Metric reports revenue data.
REVENUE_DATA = 2;
}
// Output only. Resource name for this CalculatedMetric.
// Format: 'properties/{property_id}/calculatedMetrics/{calculated_metric_id}'
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Description for this calculated metric.
// Max length of 4096 characters.
string description = 2 [(google.api.field_behavior) = OPTIONAL];
// Required. Display name for this calculated metric as shown in the
// Google Analytics UI. Max length 82 characters.
string display_name = 3 [(google.api.field_behavior) = REQUIRED];
// Output only. The ID to use for the calculated metric. In the UI, this is
// referred to as the "API name."
//
// The calculated_metric_id is used when referencing this calculated metric
// from external APIs. For example, "calcMetric:{calculated_metric_id}".
string calculated_metric_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The type for the calculated metric's value.
MetricUnit metric_unit = 5 [(google.api.field_behavior) = REQUIRED];
// Output only. Types of restricted data that this metric contains.
repeated RestrictedMetricType restricted_metric_type = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The calculated metric's definition. Maximum number of unique
// referenced custom metrics is 5. Formulas supports the following operations:
// + (addition), - (subtraction), - (negative), * (multiplication), /
// (division), () (parenthesis). Any valid real numbers are acceptable that
// fit in a Long (64bit integer) or a Double (64 bit floating point number).
// Example formula:
// "( customEvent:parameter_name + cartPurchaseQuantity ) / 2.0"
string formula = 7 [(google.api.field_behavior) = REQUIRED];
// Output only. If true, this calculated metric has a invalid metric
// reference. Anything using a calculated metric with invalid_metric_reference
// set to true may fail, produce warnings, or produce unexpected results.
bool invalid_metric_reference = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Settings values for data retention. This is a singleton resource.
message DataRetentionSettings {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/DataRetentionSettings"
pattern: "properties/{property}/dataRetentionSettings"
};
// Valid values for the data retention duration.
enum RetentionDuration {
// Data retention time duration is not specified.
RETENTION_DURATION_UNSPECIFIED = 0;
// The data retention time duration is 2 months.
TWO_MONTHS = 1;
// The data retention time duration is 14 months.
FOURTEEN_MONTHS = 3;
// The data retention time duration is 26 months.
// Available to 360 properties only. Available for event data only.
TWENTY_SIX_MONTHS = 4;
// The data retention time duration is 38 months.
// Available to 360 properties only. Available for event data only.
THIRTY_EIGHT_MONTHS = 5;
// The data retention time duration is 50 months.
// Available to 360 properties only. Available for event data only.
FIFTY_MONTHS = 6;
}
// Output only. Resource name for this DataRetentionSetting resource.
// Format: properties/{property}/dataRetentionSettings
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The length of time that event-level data is retained.
RetentionDuration event_data_retention = 2
[(google.api.field_behavior) = REQUIRED];
// Required. The length of time that user-level data is retained.
RetentionDuration user_data_retention = 4
[(google.api.field_behavior) = REQUIRED];
// If true, reset the retention period for the user identifier with every
// event from that user.
bool reset_user_data_on_new_activity = 3;
}
// The attribution settings used for a given property. This is a singleton
// resource.
message AttributionSettings {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/AttributionSettings"
pattern: "properties/{property}/attributionSettings"
};
// How far back in time events should be considered for inclusion in a
// converting path which leads to the first install of an app or the first
// visit to a site.
enum AcquisitionConversionEventLookbackWindow {
// Lookback window size unspecified.
ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_UNSPECIFIED = 0;
// 7-day lookback window.
ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_7_DAYS = 1;
// 30-day lookback window.
ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_30_DAYS = 2;
}
// How far back in time events should be considered for inclusion in a
// converting path for all conversions other than first app install/first site
// visit.
enum OtherConversionEventLookbackWindow {
// Lookback window size unspecified.
OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_UNSPECIFIED = 0;
// 30-day lookback window.
OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_30_DAYS = 1;
// 60-day lookback window.
OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_60_DAYS = 2;
// 90-day lookback window.
OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_90_DAYS = 3;
}
// The reporting attribution model used to calculate conversion credit in this
// property's reports.
enum ReportingAttributionModel {
// Reporting attribution model unspecified.
REPORTING_ATTRIBUTION_MODEL_UNSPECIFIED = 0;
// Data-driven attribution distributes credit for the conversion based on
// data for each conversion event. Each Data-driven model is specific to
// each advertiser and each conversion event.
// Previously CROSS_CHANNEL_DATA_DRIVEN
PAID_AND_ORGANIC_CHANNELS_DATA_DRIVEN = 1;
// Ignores direct traffic and attributes 100% of the conversion value to the
// last channel that the customer clicked through (or engaged view through
// for YouTube) before converting.
// Previously CROSS_CHANNEL_LAST_CLICK
PAID_AND_ORGANIC_CHANNELS_LAST_CLICK = 2;
// Attributes 100% of the conversion value to the last Google Paid channel
// that the customer clicked through before converting.
// Previously ADS_PREFERRED_LAST_CLICK
GOOGLE_PAID_CHANNELS_LAST_CLICK = 7;
}
// The Conversion Export Scope for data exported to linked Ads Accounts.
enum AdsWebConversionDataExportScope {
// Default value. This value is unused.
ADS_WEB_CONVERSION_DATA_EXPORT_SCOPE_UNSPECIFIED = 0;
// No data export scope selected yet.
// Export scope can never be changed back to this value.
NOT_SELECTED_YET = 1;
// Paid and organic channels are eligible to receive conversion credit, but
// only credit assigned to Google Ads channels will appear in your Ads
// accounts. To learn more, see [Paid and Organic
// channels](https://support.google.com/analytics/answer/10632359).
PAID_AND_ORGANIC_CHANNELS = 2;
// Only Google Ads paid channels are eligible to receive conversion credit.
// To learn more, see [Google Paid
// channels](https://support.google.com/analytics/answer/10632359).
GOOGLE_PAID_CHANNELS = 3;
}
// Output only. Resource name of this attribution settings resource.
// Format: properties/{property_id}/attributionSettings
// Example: "properties/1000/attributionSettings"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The lookback window configuration for acquisition conversion
// events. The default window size is 30 days.
AcquisitionConversionEventLookbackWindow
acquisition_conversion_event_lookback_window = 2
[(google.api.field_behavior) = REQUIRED];
// Required. The lookback window for all other, non-acquisition conversion
// events. The default window size is 90 days.
OtherConversionEventLookbackWindow other_conversion_event_lookback_window = 3
[(google.api.field_behavior) = REQUIRED];
// Required. The reporting attribution model used to calculate conversion
// credit in this property's reports.
//
// Changing the attribution model will apply to both historical and future
// data. These changes will be reflected in reports with conversion and
// revenue data. User and session data will be unaffected.
ReportingAttributionModel reporting_attribution_model = 4
[(google.api.field_behavior) = REQUIRED];
// Required. The Conversion Export Scope for data exported to linked Ads
// Accounts.
AdsWebConversionDataExportScope ads_web_conversion_data_export_scope = 5
[(google.api.field_behavior) = REQUIRED];
}
// A binding of a user to a set of roles.
message AccessBinding {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/AccessBinding"
pattern: "accounts/{account}/accessBindings/{access_binding}"
pattern: "properties/{property}/accessBindings/{access_binding}"
};
// The target for which to set roles for.
oneof access_target {
// If set, the email address of the user to set roles for.
// Format: "someuser@gmail.com"
string user = 2;
}
// Output only. Resource name of this binding.
//
// Format: accounts/{account}/accessBindings/{access_binding} or
// properties/{property}/accessBindings/{access_binding}
//
// Example:
// "accounts/100/accessBindings/200"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// A list of roles for to grant to the parent resource.
//
// Valid values:
// predefinedRoles/viewer
// predefinedRoles/analyst
// predefinedRoles/editor
// predefinedRoles/admin
// predefinedRoles/no-cost-data
// predefinedRoles/no-revenue-data
//
// For users, if an empty list of roles is set, this AccessBinding will be
// deleted.
repeated string roles = 3;
}
// A link between a Google Analytics property and BigQuery project.
message BigQueryLink {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/BigQueryLink"
pattern: "properties/{property}/bigQueryLinks/{bigquery_link}"
};
// Output only. Resource name of this BigQuery link.
// Format: 'properties/{property_id}/bigQueryLinks/{bigquery_link_id}'
// Format: 'properties/1234/bigQueryLinks/abc567'
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. The linked Google Cloud project. When creating a BigQueryLink,
// you may provide this resource name using either a project number or project
// ID. Once this resource has been created, the returned project will always
// have a project that contains a project number.
// Format: 'projects/{project number}'
// Example: 'projects/1234'
string project = 2 [(google.api.field_behavior) = IMMUTABLE];
// Output only. Time when the link was created.
google.protobuf.Timestamp create_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// If set true, enables daily data export to the linked Google Cloud project.
bool daily_export_enabled = 4;
// If set true, enables streaming export to the linked Google Cloud project.
bool streaming_export_enabled = 5;
// If set true, enables fresh daily export to the linked Google Cloud project.
bool fresh_daily_export_enabled = 9;
// If set true, exported data will include advertising identifiers for mobile
// app streams.
bool include_advertising_id = 6;
// The list of streams under the parent property for which data will be
// exported.
// Format: properties/{property_id}/dataStreams/{stream_id}
// Example: ['properties/1000/dataStreams/2000']
repeated string export_streams = 7;
// The list of event names that will be excluded from exports.
repeated string excluded_events = 8;
// Required. Immutable. The geographic location where the created BigQuery
// dataset should reside. See https://cloud.google.com/bigquery/docs/locations
// for supported locations.
string dataset_location = 10 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.field_behavior) = REQUIRED
];
}
// Singleton resource under a web DataStream, configuring measurement of
// additional site interactions and content.
message EnhancedMeasurementSettings {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/EnhancedMeasurementSettings"
pattern: "properties/{property}/dataStreams/{data_stream}/enhancedMeasurementSettings"
};
// Output only. Resource name of the Enhanced Measurement Settings.
// Format:
// properties/{property_id}/dataStreams/{data_stream}/enhancedMeasurementSettings
// Example: "properties/1000/dataStreams/2000/enhancedMeasurementSettings"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Indicates whether Enhanced Measurement Settings will be used to
// automatically measure interactions and content on this web stream.
//
// Changing this value does not affect the settings themselves, but determines
// whether they are respected.
bool stream_enabled = 2;
// If enabled, capture scroll events each time a visitor gets to the bottom of
// a page.
bool scrolls_enabled = 3;
// If enabled, capture an outbound click event each time a visitor clicks a
// link that leads them away from your domain.
bool outbound_clicks_enabled = 4;
// If enabled, capture a view search results event each time a visitor
// performs a search on your site (based on a query parameter).
bool site_search_enabled = 5;
// If enabled, capture video play, progress, and complete events as visitors
// view embedded videos on your site.
bool video_engagement_enabled = 6;
// If enabled, capture a file download event each time a link is clicked with
// a common document, compressed file, application, video, or audio extension.
bool file_downloads_enabled = 7;
// If enabled, capture a page view event each time the website changes the
// browser history state.
bool page_changes_enabled = 8;
// If enabled, capture a form interaction event each time a visitor interacts
// with a form on your website.
// False by default.
bool form_interactions_enabled = 9;
// Required. URL query parameters to interpret as site search parameters.
// Max length is 1024 characters. Must not be empty.
string search_query_parameter = 10 [(google.api.field_behavior) = REQUIRED];
// Additional URL query parameters.
// Max length is 1024 characters.
string uri_query_parameter = 11;
}
// Configuration for a specific Connected Site Tag.
message ConnectedSiteTag {
// Required. User-provided display name for the connected site tag. Must be
// less than 256 characters.
string display_name = 1 [(google.api.field_behavior) = REQUIRED];
// Required. "Tag ID to forward events to. Also known as the Measurement ID,
// or the "G-ID" (For example: G-12345).
string tag_id = 2 [(google.api.field_behavior) = REQUIRED];
}
// Settings for client-side data redaction. Singleton resource under a Web
// Stream.
message DataRedactionSettings {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/DataRedactionSettings"
pattern: "properties/{property}/dataStreams/{data_stream}/dataRedactionSettings"
};
// Output only. Name of this Data Redaction Settings resource.
// Format:
// properties/{property_id}/dataStreams/{data_stream}/dataRedactionSettings
// Example: "properties/1000/dataStreams/2000/dataRedactionSettings"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// If enabled, any event parameter or user property values that look like an
// email will be redacted.
bool email_redaction_enabled = 2;
// Query Parameter redaction removes the key and value portions of a
// query parameter if it is in the configured set of query parameters.
//
// If enabled, URL query replacement logic will be run for the Stream. Any
// query parameters defined in query_parameter_keys will be redacted.
bool query_parameter_redaction_enabled = 3;
// The query parameter keys to apply redaction logic to if present in the URL.
// Query parameter matching is case-insensitive.
//
// Must contain at least one element if query_parameter_replacement_enabled
// is true. Keys cannot contain commas.
repeated string query_parameter_keys = 4;
}
// A link between a Google Analytics property and an AdSense for Content ad
// client.
message AdSenseLink {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/AdSenseLink"
pattern: "properties/{property}/adSenseLinks/{adsense_link}"
};
// Output only. The resource name for this AdSense Link resource.
// Format: properties/{propertyId}/adSenseLinks/{linkId}
// Example: properties/1234/adSenseLinks/6789
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. The AdSense ad client code that the Google Analytics property is
// linked to. Example format: "ca-pub-1234567890"
string ad_client_code = 2 [(google.api.field_behavior) = IMMUTABLE];
}
// A link that references a source property under the parent rollup property.
message RollupPropertySourceLink {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/RollupPropertySourceLink"
pattern: "properties/{property}/rollupPropertySourceLinks/{rollup_property_source_link}"
plural: "rollupPropertySourceLinks"
singular: "rollupPropertySourceLink"
};
// Output only. Resource name of this RollupPropertySourceLink.
// Format:
// 'properties/{property_id}/rollupPropertySourceLinks/{rollup_property_source_link}'
// Format: 'properties/123/rollupPropertySourceLinks/456'
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Immutable. Resource name of the source property.
// Format: properties/{property_id}
// Example: "properties/789"
string source_property = 2 [(google.api.field_behavior) = IMMUTABLE];
}
// A Reporting Data Annotation is a comment connected to certain dates for
// reporting data.
message ReportingDataAnnotation {
option (google.api.resource) = {
type: "analyticsadmin.googleapis.com/ReportingDataAnnotation"
pattern: "properties/{property}/reportingDataAnnotations/{reporting_data_annotation}"
plural: "reportingDataAnnotations"
singular: "reportingDataAnnotation"
};
// Represents a Reporting Data Annotation's date range, both start and end
// dates are inclusive. Time zones are based on the parent property.
message DateRange {
// Required. The start date for this range. Must be a valid date with
// year, month, and day set. The date may be in the past, present, or
// future.
google.type.Date start_date = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The end date for this range. Must be a valid date with
// year, month, and day set. This date must be greater than or equal to
// the start date.
google.type.Date end_date = 2 [(google.api.field_behavior) = REQUIRED];
}
// Colors that may be used for this Reporting Data Annotation
enum Color {
// Color unknown or not specified.
COLOR_UNSPECIFIED = 0;
// Purple color.
PURPLE = 1;
// Brown color.
BROWN = 2;
// Blue color.
BLUE = 3;
// Green color.
GREEN = 4;
// Red color.
RED = 5;
// Cyan color.
CYAN = 6;
// Orange color. (Only used for system-generated annotations)
ORANGE = 7;
}
// Target for this Reporting Data Annotation
oneof target {
// If set, the Reporting Data Annotation is for a specific date represented
// by this field. The date must be a valid date with year, month and day
// set. The date may be in the past, present, or future.
google.type.Date annotation_date = 4;
// If set, the Reporting Data Annotation is for a range of dates represented
// by this field.
DateRange annotation_date_range = 5;
}
// Required. Identifier. Resource name of this Reporting Data Annotation.
// Format:
// 'properties/{property_id}/reportingDataAnnotations/{reporting_data_annotation}'
// Format: 'properties/123/reportingDataAnnotations/456'
string name = 1 [
(google.api.field_behavior) = IDENTIFIER,
(google.api.field_behavior) = REQUIRED
];
// Required. Human-readable title for this Reporting Data Annotation.
string title = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. Description for this Reporting Data Annotation.
string description = 3 [(google.api.field_behavior) = OPTIONAL];
// Required. The color used for display of this Reporting Data Annotation.
Color color = 6 [(google.api.field_behavior) = REQUIRED];
// Output only. If true, this annotation was generated by the Google Analytics
// system. System-generated annotations cannot be updated or deleted.
bool system_generated = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
}