app-quality-insights/play-vitals/model/proto/vitals_service.proto (1,755 lines of code) (raw):

syntax = "proto3"; package google.play.developer.reporting.v1beta1; import "metrics.proto"; option java_package = "com.google.play.developer.reporting"; option java_outer_classname = "VitalsServiceProto"; option java_multiple_files = true; // Reference: https://source.corp.google.com/piper///depot/google3/google/play/developer/reporting/v1main/vitals_service.proto // // Service to describe and query Android Vitals bad behavior data metrics, // such as crash rate, ANR rate, etc. service VitalsService { // Describes the properties of the metric set. rpc GetCrashRateMetricSet(GetCrashRateMetricSetRequest) returns (CrashRateMetricSet) { } // Queries the metrics in the metric set. rpc QueryCrashRateMetricSet(QueryCrashRateMetricSetRequest) returns (QueryCrashRateMetricSetResponse) { } // Describes the properties of the metric set. rpc GetAnrRateMetricSet(GetAnrRateMetricSetRequest) returns (AnrRateMetricSet) { } // Queries the metrics in the metric set. rpc QueryAnrRateMetricSet(QueryAnrRateMetricSetRequest) returns (QueryAnrRateMetricSetResponse) { } // Describes the properties of the metric set. rpc GetExcessiveWakeupRateMetricSet(GetExcessiveWakeupRateMetricSetRequest) returns (ExcessiveWakeupRateMetricSet) { } // Queries the metrics in the metric set. rpc QueryExcessiveWakeupRateMetricSet(QueryExcessiveWakeupRateMetricSetRequest) returns (QueryExcessiveWakeupRateMetricSetResponse) { } // Describes the properties of the metric set. rpc GetStuckBackgroundWakelockRateMetricSet(GetStuckBackgroundWakelockRateMetricSetRequest) returns (StuckBackgroundWakelockRateMetricSet) { } // Queries the metrics in the metric set. rpc QueryStuckBackgroundWakelockRateMetricSet(QueryStuckBackgroundWakelockRateMetricSetRequest) returns (QueryStuckBackgroundWakelockRateMetricSetResponse) { } // Describes the properties of the metric set. rpc GetSlowStartRateMetricSet(GetSlowStartRateMetricSetRequest) returns (SlowStartRateMetricSet) { } // Queries the metrics in the metric set. rpc QuerySlowStartRateMetricSet(QuerySlowStartRateMetricSetRequest) returns (QuerySlowStartRateMetricSetResponse) { } // Describes the properties of the metric set. rpc GetSlowRenderingRateMetricSet(GetSlowRenderingRateMetricSetRequest) returns (SlowRenderingRateMetricSet) { } // Queries the metrics in the metric set. rpc QuerySlowRenderingRateMetricSet(QuerySlowRenderingRateMetricSetRequest) returns (QuerySlowRenderingRateMetricSetResponse) { } } // Request message for // [GetCrashRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.GetCrashRateMetricSet]. message GetCrashRateMetricSetRequest { // The resource name. // // Format: apps/{app}/crashRateMetricSet string name = 1; } // Singleton resource representing the set of crashrate metrics. // // This metric set contains crashes data combined with usage data to produce a // normalized metric independent of user counts. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the only supported timezone is `America/Los_Angeles`. // * [HOURLY][google.play.developer.reporting.v1beta1.AggregationPeriod.HOURLY]: // metrics are aggregated in hourly intervals. The default and only // supported timezone is `UTC`. // // **Supported metrics:** // // * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the // aggregation period that experienced at least one crash. // * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value // of `crashRate` in the last 7 days. The daily values are weighted by the // count of distinct users for the day. Not supported in HOURLY granularity. // * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value // of `crashRate` in the last 28 days. The daily values are weighted by the // count of distinct users for the day. Not supported in HOURLY granularity. // * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that experienced at least one crash while // they were actively using your app // (a user-perceived crash). An app is considered to be in active use // if it is displaying any activity or executing any foreground service. // * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `userPerceivedCrashRate` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. Not // supported in HOURLY granularity. // * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `userPerceivedCrashRate` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. Not // supported in HOURLY granularity. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in // this metric if they used the app actively during the aggregation period. // An app is considered to be in active use // if it is displaying any activity or executing any foreground service. // Care must be taken not to aggregate this count further, as it may // result in users being counted multiple times. The value is rounded to the // nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the // magnitude of the value. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. // // **Required permissions**: to access this resource, the calling user needs the // _View app information (read-only)_ permission for the app. // // **Related metric sets:** // // * [vitals.errors][google.play.developer.reporting.v1beta1.ErrorCountMetricSet] // contains unnormalized version (absolute counts) of crashes. // * [vitals.errors][google.play.developer.reporting.v1beta1.AnrRateMetricSet] // contains normalized metrics about ANRs, another stability metric. // // (== resource_for v1beta1.vitals.crashrate ==) message CrashRateMetricSet { // The resource name. // // Format: apps/{app}/crashRateMetricSet string name = 1; // Summary about data freshness in this resource. FreshnessInfo freshness_info = 2; } // Request message for // [QueryCrashRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QueryCrashRateMetricSet]. message QueryCrashRateMetricSetRequest { // The resource name. // // Format: apps/{app}/crashRateMetricSet string name = 1; // Specification of the timeline aggregation parameters. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the default and only supported timezone is // `America/Los_Angeles`. // * [HOURLY][google.play.developer.reporting.v1beta1.AggregationPeriod.HOURLY]: // metrics are aggregated in hourly intervals. The default and only // supported timezone is `UTC`. TimelineSpec timeline_spec = 2; // Dimensions to slice the metrics by. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, // e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United // States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. repeated string dimensions = 3; // Metrics to aggregate. // // **Supported metrics:** // // * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the // aggregation period that experienced at least one crash. // * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value // of `crashRate` in the last 7 days. The daily values are weighted by the // count of distinct users for the day. // * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average // value of `crashRate` in the last 28 days. The daily values are weighted // by the count of distinct users for the day. Not supported in HOURLY // granularity. // * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that experienced at least one crash // while they were actively using your app (a user-perceived crash). An // app is considered to be in active use if it is displaying any activity // or executing any foreground service. // * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `userPerceivedCrashRate` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. Not // supported in HOURLY granularity. // * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `userPerceivedCrashRate` in the last 28 days. The // daily values are weighted by the count of distinct users for the day. // Not supported in HOURLY granularity. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in // this metric if they used the app actively during the aggregation // period. An app is considered to be in active use if it is displaying // any activity or executing any foreground service. Care must be taken // not to aggregate this count further, as it may result in users being // counted multiple times. The value is rounded to the nearest // multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of // the value. repeated string metrics = 4; // Filters to apply to data. The filtering expression follows // [AIP-160](https://google.aip.dev/160) standard and supports filtering // by equality of all breakdown dimensions. string filter = 7; // Maximum size of the returned data. // // If unspecified, at most 1000 rows will be returned. // The maximum value is 100,000; values above 100,000 will be coerced to // 100,000. int32 page_size = 5; // A page token, received from a previous call. // Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to the request must // match the call that provided the page token. string page_token = 6; // User view to select. The output data will correspond to the selected view. // // **Supported values:** // // * `OS_PUBLIC` // To select data from all publicly released Android versions. This is the // default. Supports all the above dimensions. // * `APP_TESTERS` // To select data from users who have opted in to be testers. Supports all // the above dimensions. // * `OS_BETA` // To select data from beta android versions only, excluding data from // released android versions. Only the following dimensions are supported: // // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `osBuild` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OS build of the user's device, e.g., "T1B2.220916.004". UserCohort user_cohort = 8; } // Response message for // [QueryCrashRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QueryCrashRateMetricSet]. message QueryCrashRateMetricSetResponse { // Returned rows of data. repeated MetricsRow rows = 1; // Continuation token to fetch the next page of data. string next_page_token = 2; } // Request message for // [GetAnrRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.GetAnrRateMetricSet]. message GetAnrRateMetricSetRequest { // The resource name. // // Format: apps/{app}/anrRateMetricSet string name = 1; } // Singleton resource representing the set of ANR (Application not responding) // metrics. // // This metric set contains ANRs data combined with usage data to produce a // normalized metric independent of user counts. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the only supported timezone is `America/Los_Angeles`. // * [HOURLY][google.play.developer.reporting.v1beta1.AggregationPeriod.HOURLY]: // metrics are aggregated in hourly intervals. The default and only // supported timezone is `UTC`. // // **Supported metrics:** // // * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the // aggregation period that experienced at least one ANR. // * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value // of `anrRate` in the last 7 days. The daily values are weighted by the // count of distinct users for the day. Not supported in HOURLY granularity. // * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average // value of `anrRate` in the last 28 days. The daily values are weighted // by the count of distinct users for the day. Not supported in HOURLY // granularity. // * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that experienced at least one // user-perceived ANR. User-perceived ANRs are currently those of 'Input // dispatching' type. // * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `userPerceivedAnrRate` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. Not // supported in HOURLY granularity. // * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `userPerceivedAnrRate` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this // metric if they used the app in the foreground during the aggregation // period. Care must be taken not to aggregate this count further, as it may // result in users being counted multiple times. The value is rounded to the // nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the // magnitude of the value. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. // // **Required permissions**: to access this resource, the calling user needs the // _View app information (read-only)_ permission for the app. // // **Related metric sets:** // // * [vitals.errors][google.play.developer.reporting.v1beta1.ErrorCountMetricSet] // contains unnormalized version (absolute counts) of crashes. // * [vitals.errors][google.play.developer.reporting.v1beta1.CrashRateMetricSet] // contains normalized metrics about crashes, another stability metric. // // (== resource_for v1beta1.vitals.anrrate ==) message AnrRateMetricSet { // The resource name. // // Format: apps/{app}/anrRateMetricSet string name = 1; // Summary about data freshness in this resource. FreshnessInfo freshness_info = 2; } // Request message for // [QueryAnrRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QueryAnrRateMetricSet]. message QueryAnrRateMetricSetRequest { // The resource name. // // Format: apps/{app}/anrRateMetricSet string name = 1; // Specification of the timeline aggregation parameters. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the default and only supported timezone is // `America/Los_Angeles`. // * [HOURLY][google.play.developer.reporting.v1beta1.AggregationPeriod.HOURLY]: // metrics are aggregated in hourly intervals. The default and only // supported timezone is `UTC`. TimelineSpec timeline_spec = 2; // Dimensions to slice the metrics by. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, // e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United // States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. repeated string dimensions = 3; // Metrics to aggregate. // // **Supported metrics:** // // * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the // aggregation period that experienced at least one ANR. // * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value // of `anrRate` in the last 7 days. The daily values are weighted by the // count of distinct users for the day. Not supported in HOURLY // granularity. // * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average // value of `anrRate` in the last 28 days. The daily values are weighted // by the count of distinct users for the day. Not supported in HOURLY // granularity. // * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that experienced at least one // user-perceived ANR. User-perceived ANRs are currently those of 'Input // dispatching' type. // * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `userPerceivedAnrRate` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. Not // supported in HOURLY granularity. // * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `userPerceivedAnrRate` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. Not // . supported in HOURLY granularity. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this // metric if they used the app in the foreground during the aggregation // period. Care must be taken not to aggregate this count further, as it // may result in users being counted multiple times. The value is rounded // to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on // the magnitude of the value. repeated string metrics = 4; // Filters to apply to data. The filtering expression follows // [AIP-160](https://google.aip.dev/160) standard and supports filtering // by equality of all breakdown dimensions. string filter = 7; // Maximum size of the returned data. // // If unspecified, at most 1000 rows will be returned. // The maximum value is 100,000; values above 100,000 will be coerced to // 100,000. int32 page_size = 5; // A page token, received from a previous call. // Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to the request must // match the call that provided the page token. string page_token = 6; // User view to select. The output data will correspond to the selected view. // // **Supported values:** // // * `OS_PUBLIC` // To select data from all publicly released Android versions. This is the // default. Supports all the above dimensions. // * `APP_TESTERS` // To select data from users who have opted in to be testers. Supports all // the above dimensions. // * `OS_BETA` // To select data from beta android versions only, excluding data from // released android versions. Only the following dimensions are supported: // // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `osBuild` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OS build of the user's device, e.g., "T1B2.220916.004". UserCohort user_cohort = 8; } // Response message for // [QueryAnrRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QueryAnrRateMetricSet]. message QueryAnrRateMetricSetResponse { // Returned rows of data. repeated MetricsRow rows = 1; // Continuation token to fetch the next page of data. string next_page_token = 2; } // Request message for // [GetExcessiveWakeupRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.GetExcessiveWakeupRateMetricSet]. message GetExcessiveWakeupRateMetricSetRequest { // The resource name. // // Format: apps/{app}/excessiveWakeupRateMetricSet string name = 1; } // Singleton resource representing the set of Excessive Weakeups metrics. // // This metric set contains AlarmManager wakeup counts data combined with // process state data to produce a normalized metric independent of user counts. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the only supported timezone is `America/Los_Angeles`. // // **Supported metrics:** // // * `excessiveWakeupRate` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that had more than 10 wakeups per hour. // * `excessiveWakeupRate7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `excessiveWakeupRate` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. // * `excessiveWakeupRate28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `excessiveWakeupRate` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `excessiveWakeupRate` metric. A user is counted in this metric if // they app was doing any work on the device, i.e., not just active // foreground usage but also background work. Care must be taken // not to aggregate this count further, as it may result in users being // counted multiple times. The value is rounded to the nearest // multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of // the value. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. // // **Required permissions**: to access this resource, the calling user needs the // _View app information (read-only)_ permission for the app. // // (== resource_for v1beta1.vitals.excessivewakeuprate ==) message ExcessiveWakeupRateMetricSet { // The resource name. // // Format: apps/{app}/excessiveWakeupRateMetricSet string name = 1; // Summary about data freshness in this resource. FreshnessInfo freshness_info = 2; } // Request message for // [QueryExcessiveWakeupRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QueryExcessiveWakeupRateMetricSet]. message QueryExcessiveWakeupRateMetricSetRequest { // The resource name. // // Format: apps/{app}/excessiveWakeupRateMetricSet string name = 1; // Specification of the timeline aggregation parameters. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the only supported timezone is `America/Los_Angeles`. TimelineSpec timeline_spec = 2; // Dimensions to slice the data by. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, // e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United // States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. repeated string dimensions = 3; // Metrics to aggregate. // // **Supported metrics:** // // * `excessiveWakeupRate` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that had more than 10 wakeups per hour. // * `excessiveWakeupRate7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `excessiveWakeupRate` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. // * `excessiveWakeupRate28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `excessiveWakeupRate` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `excessiveWakeupRate` metric. A user is counted in this metric if // they app was doing any work on the device, i.e., not just active // foreground usage but also background work. Care must be taken // not to aggregate this count further, as it may result in users being // counted multiple times. The value is rounded to the nearest // multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of // the value. repeated string metrics = 4; // Filters to apply to data. The filtering expression follows // [AIP-160](https://google.aip.dev/160) standard and supports filtering // by equality of all breakdown dimensions. string filter = 7; // Maximum size of the returned data. // // If unspecified, at most 1000 rows will be returned. // The maximum value is 100000; values above 100000 will be coerced to 100000. int32 page_size = 5; // A page token, received from a previous call. // Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to the request must // match the call that provided the page token. string page_token = 6; // User view to select. The output data will correspond to the selected view. // // **Supported values:** // // * `OS_PUBLIC` // To select data from all publicly released Android versions. This is the // default. Supports all the above dimensions. // * `APP_TESTERS` // To select data from users who have opted in to be testers. Supports all // the above dimensions. // * `OS_BETA` // To select data from beta android versions only, excluding data from // released android versions. Only the following dimensions are supported: // // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `osBuild` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OS build of the user's device, e.g., "T1B2.220916.004". UserCohort user_cohort = 8; } // Response message for // [QueryExcessiveWakeupRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QueryExcessiveWakeupRateMetricSet]. message QueryExcessiveWakeupRateMetricSetResponse { // Returned rows of data. repeated MetricsRow rows = 1; // Continuation token to fetch the next page of data. string next_page_token = 2; } // Request message for // [GetStuckBackgroundWakelockRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.GetStuckBackgroundWakelockRateMetricSet]. message GetStuckBackgroundWakelockRateMetricSetRequest { // The resource name. // // Format: apps/{app}/stuckBackgroundWakelockRateMetricSet string name = 1; } // Singleton resource representing the set of Stuck Background Wakelocks // metrics. // // This metric set contains PowerManager wakelock duration data combined with // process state data to produce a normalized metric independent of user counts. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the only supported timezone is `America/Los_Angeles`. // // **Supported metrics:** // // * `stuckBgWakelockRate` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that had a wakelock held in the // background for longer than 1 hour. // * `stuckBgWakelockRate7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `stuckBgWakelockRate` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. // * `stuckBgWakelockRate28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `stuckBgWakelockRate` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `stuckBgWakelockRate` metric. A user is counted in this metric if // their app was doing any work on the device, i.e., not just active // foreground usage but also background work. Care must be taken // not to aggregate this count further, as it may result in users being // counted multiple times. The value is rounded to the nearest // multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of // the value. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. // // **Required permissions**: to access this resource, the calling user needs the // _View app information (read-only)_ permission for the app. // // (== resource_for v1beta1.vitals.stuckbackgroundwakelockrate ==) message StuckBackgroundWakelockRateMetricSet { // The resource name. // // Format: apps/{app}/stuckBackgroundWakelockRateMetricSet string name = 1; // Summary about data freshness in this resource. FreshnessInfo freshness_info = 2; } // Request message for // [QueryStuckBackgroundWakelockRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QueryStuckBackgroundWakelockRateMetricSet]. message QueryStuckBackgroundWakelockRateMetricSetRequest { // The resource name. // // Format: apps/{app}/stuckBackgroundWakelockRateMetricSet string name = 1; // Specification of the timeline aggregation parameters. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the only supported timezone is `America/Los_Angeles`. TimelineSpec timeline_spec = 2; // Dimensions to slice the data by. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, // e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United // States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. repeated string dimensions = 3; // Metrics to aggregate. // // **Supported metrics:** // // * `stuckBgWakelockRate` (`google.type.Decimal`): Percentage of // distinct users in the aggregation period that had a wakelock held in the // background for longer than 1 hour. // * `stuckBgWakelockRate7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `stuckBgWakelockRate` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. // * `stuckBgWakelockRate28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `stuckBgWakelockRate` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `stuckBgWakelockRate` metric. A user is counted in this metric if // they app was doing any work on the device, i.e., not just active // foreground usage but also background work. Care must be taken // not to aggregate this count further, as it may result in users being // counted multiple times. The value is rounded to the nearest // multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of // the value. repeated string metrics = 4; // Filters to apply to data. The filtering expression follows // [AIP-160](https://google.aip.dev/160) standard and supports filtering // by equality of all breakdown dimensions. string filter = 7; // Maximum size of the returned data. // // If unspecified, at most 1000 rows will be returned. // The maximum value is 100000; values above 100000 will be coerced to 100000. int32 page_size = 5; // A page token, received from a previous call. // Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to the request must // match the call that provided the page token. string page_token = 6; // User view to select. The output data will correspond to the selected view. // // **Supported values:** // // * `OS_PUBLIC` // To select data from all publicly released Android versions. This is the // default. Supports all the above dimensions. // * `APP_TESTERS` // To select data from users who have opted in to be testers. Supports all // the above dimensions. // * `OS_BETA` // To select data from beta android versions only, excluding data from // released android versions. Only the following dimensions are supported: // // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `osBuild` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OS build of the user's device, e.g., "T1B2.220916.004". UserCohort user_cohort = 8; } // Response message for // [QueryStuckBackgroundWakelockRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QueryStuckBackgroundWakelockRateMetricSet]. message QueryStuckBackgroundWakelockRateMetricSetResponse { // Returned rows of data. repeated MetricsRow rows = 1; // Continuation token to fetch the next page of data. string next_page_token = 2; } // Request message for // [GetSlowStartRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.GetSlowStartRateMetricSet]. message GetSlowStartRateMetricSetRequest { // The resource name. // // Format: apps/{app}/slowStartRateMetricSet string name = 1; } // Singleton resource representing the set of Slow Start metrics. // // This metric set contains Activity start duration data. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the only supported timezone is `America/Los_Angeles`. // // **Supported metrics:** // // * `slowStartRate` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that had a slow start. // * `slowStartRate7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowStartRate` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. // * `slowStartRate28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowStartRate` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `slowStartRate` metric. A user is counted in this metric if // their app was launched in the device. Care must be taken // not to aggregate this count further, as it may result in users being // counted multiple times. The value is rounded to the nearest // multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of // the value. // // **Required dimension:** // // This dimension must be specified with each request for the request to be // valid. // // * `startType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type of start that was measured. Valid types are `HOT`, `WARM` and // `COLD`. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. // // **Required permissions**: to access this resource, the calling user needs the // _View app information (read-only)_ permission for the app. // // (== resource_for v1beta1.vitals.slowstartrate ==) message SlowStartRateMetricSet { // The resource name. // // Format: apps/{app}/slowStartRateMetricSet string name = 1; // Summary about data freshness in this resource. FreshnessInfo freshness_info = 2; } // Request message for // [QuerySlowStartRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QuerySlowStartRateMetricSet]. message QuerySlowStartRateMetricSetRequest { // The resource name. // // Format: apps/{app}/slowStartRateMetricSet string name = 1; // Specification of the timeline aggregation parameters. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the only supported timezone is `America/Los_Angeles`. TimelineSpec timeline_spec = 2; // Dimensions to slice the data by. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, // e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United // States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. repeated string dimensions = 3; // Metrics to aggregate. // // **Supported metrics:** // // * `slowStartRate` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that had a slow start. // * `slowStartRate7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowStartRate` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. // * `slowStartRate28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowStartRate` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `slowStartRate` metric. A user is counted in this metric if // their app was launched in the device. Care must be taken // not to aggregate this count further, as it may result in users being // counted multiple times. The value is rounded to the nearest // multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of // the value. repeated string metrics = 4; // Filters to apply to data. The filtering expression follows // [AIP-160](https://google.aip.dev/160) standard and supports filtering // by equality of all breakdown dimensions. string filter = 7; // Maximum size of the returned data. // // If unspecified, at most 1000 rows will be returned. // The maximum value is 100000; values above 100000 will be coerced to 100000. int32 page_size = 5; // A page token, received from a previous call. // Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to the request must // match the call that provided the page token. string page_token = 6; // User view to select. The output data will correspond to the selected view. // // **Supported values:** // // * `OS_PUBLIC` // To select data from all publicly released Android versions. This is the // default. Supports all the above dimensions. // * `APP_TESTERS` // To select data from users who have opted in to be testers. Supports all // the above dimensions. // * `OS_BETA` // To select data from beta Android versions only, excluding data from // released Android versions. Only the following dimensions are supported: // // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `osBuild` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OS build of the user's device, e.g., "T1B2.220916.004". UserCohort user_cohort = 8; } // Response message for // [QuerySlowStartRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QuerySlowStartRateMetricSet]. message QuerySlowStartRateMetricSetResponse { // Returned rows of data. repeated MetricsRow rows = 1; // Continuation token to fetch the next page of data. string next_page_token = 2; } // Request message for // [GetSlowRenderingRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.GetSlowRenderingRateMetricSet]. message GetSlowRenderingRateMetricSetRequest { // The resource name. // // Format: apps/{app}/slowRenderingRateMetricSet string name = 1; } // Singleton resource representing the set of Slow Rendering metrics. // // This metric set contains low-level rendering data captured by SurafeFlinger. // Sessions are evaluated based on the present-to-present histogram of frames // handled by any SurfaceFlinger layer owned by the app. // // A slow session is a session where more than 25% of frames for the session // did not meet the metric's target frame rate (either 20fps, or 30fps). // // *NOTE:* This metric set is only available for games. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the only supported timezone is `America/Los_Angeles`. // // **Supported metrics:** // // * `slowRenderingRate20Fps` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that had slow rendering. // * `slowRenderingRate20Fps7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowRenderingRate20Fps` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. // * `slowRenderingRate20Fps28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowRenderingRate20Fps` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. // * `slowRenderingRate30Fps` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that had slow rendering. // * `slowRenderingRate30Fps7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowRenderingRate30Fps` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. // * `slowRenderingRate30Fps28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowRenderingRate30Fps` in the last 28 days. The daily // values are weighted by the count of distinct users for the day. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `slowRenderingRate20Fps`/`slowRenderingRate30Fps` metric. A user is // counted in this metric if their app rendered any frames. Care must // be taken not to aggregate this count further, as it may result in users // being counted multiple times. The value is rounded to the nearest // multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of // the value. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. // // **Required permissions**: to access this resource, the calling user needs the // _View app information (read-only)_ permission for the app. // // (== resource_for v1beta1.vitals.slowrenderingrate ==) message SlowRenderingRateMetricSet { // The resource name. // // Format: apps/{app}/slowRenderingRateMetricSet string name = 1; // Summary about data freshness in this resource. FreshnessInfo freshness_info = 2; } // Request message for // [QuerySlowRenderingRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QuerySlowRenderingRateMetricSet]. message QuerySlowRenderingRateMetricSetRequest { // The resource name. // // Format: apps/{app}/slowRenderingRateMetricSet string name = 1; // Specification of the timeline aggregation parameters. // // **Supported aggregation periods:** // // * [DAILY][google.play.developer.reporting.v1beta1.AggregationPeriod.DAILY]: // metrics are aggregated in calendar date intervals. Due to historical // constraints, the only supported timezone is `America/Los_Angeles`. TimelineSpec timeline_spec = 2; // Dimensions to slice the data by. // // **Supported dimensions:** // // * `apiLevel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the API level of Android that was running on the user's device, // e.g., 26. // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `deviceModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device model. The form of the // identifier is 'deviceBrand/device', where deviceBrand corresponds // to Build.BRAND and device corresponds to Build.DEVICE, e.g., // google/coral. // * `deviceBrand` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // unique identifier of the user's device brand, e.g., google. // * `deviceType` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the type (also known as form factor) of the user's device, e.g., PHONE. // * `countryCode` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // the country or region of the user's device based on their IP address, // represented as a 2-letter ISO-3166 code (e.g. US for the United // States). // * `deviceRamBucket` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // RAM of the device, in MB, in buckets (3GB, 4GB, etc.). // * `deviceSocMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's primary system-on-chip, e.g., Samsung. // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) // * `deviceSocModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's primary system-on-chip, e.g., "Exynos 2100". // [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) // * `deviceCpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's CPU, e.g., Qualcomm. // * `deviceCpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's CPU, e.g., "Kryo 240". // * `deviceGpuMake` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Make of the device's GPU, e.g., ARM. // * `deviceGpuModel` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Model of the device's GPU, e.g., Mali. // * `deviceGpuVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Version of the device's GPU, e.g., T750. // * `deviceVulkanVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Vulkan version of the device, e.g., "4198400". // * `deviceGlEsVersion` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OpenGL ES version of the device, e.g., "196610". // * `deviceScreenSize` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen size of the device, e.g., NORMAL, LARGE. // * `deviceScreenDpi` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // Screen density of the device, e.g., mdpi, hdpi. repeated string dimensions = 3; // Metrics to aggregate. // // **Supported metrics:** // // * `slowRenderingRate20Fps` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that had a slow rendering. // * `slowRenderingRate20Fps7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowRenderingRate20Fps` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. // * `slowRenderingRate20Fps28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowRenderingRate20Fps` in the last 28 days. The // daily values are weighted by the count of distinct users for the day. // * `slowRenderingRate30Fps` (`google.type.Decimal`): Percentage of distinct // users in the aggregation period that had a slow rendering. // * `slowRenderingRate30Fps7dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowRenderingRate30Fps` in the last 7 days. The daily // values are weighted by the count of distinct users for the day. // * `slowRenderingRate30Fps28dUserWeighted` (`google.type.Decimal`): Rolling // average value of `slowRenderingRate30Fps` in the last 28 days. The // daily values are weighted by the count of distinct users for the day. // * `distinctUsers` (`google.type.Decimal`): Count of distinct users // in the aggregation period that were used as normalization value for the // `slowRenderingRate20Fps`/`slowRenderingRate30Fps` metric. A user is // counted in this metric if their app was launched in the device. Care // must be taken not to aggregate this count further, as it may result in // users being counted multiple times. The value is rounded to the nearest // multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of // the value. repeated string metrics = 4; // Filters to apply to data. The filtering expression follows // [AIP-160](https://google.aip.dev/160) standard and supports filtering // by equality of all breakdown dimensions. string filter = 7; // Maximum size of the returned data. // // If unspecified, at most 1000 rows will be returned. // The maximum value is 100000; values above 100000 will be coerced to 100000. int32 page_size = 5; // A page token, received from a previous call. // Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to the request must // match the call that provided the page token. string page_token = 6; // User view to select. The output data will correspond to the selected view. // // **Supported values:** // // * `OS_PUBLIC` // To select data from all publicly released Android versions. This is the // default. Supports all the above dimensions. // * `APP_TESTERS` // To select data from users who have opted in to be testers. Supports all // the above dimensions. // * `OS_BETA` // To select data from beta Android versions only, excluding data from // released Android versions. Only the following dimensions are supported: // // * `versionCode` // ([int64][google.play.developer.reporting.v1beta1.DimensionValue.int64_value]): // version of the app that was running on the user's device. // * `osBuild` // ([string][google.play.developer.reporting.v1beta1.DimensionValue.string_value]): // OS build of the user's device, e.g., "T1B2.220916.004". UserCohort user_cohort = 8; } // Response message for // [QuerySlowRenderingRateMetricSet][google.play.developer.reporting.v1beta1.VitalsService.QuerySlowRenderingRateMetricSet]. message QuerySlowRenderingRateMetricSetResponse { // Returned rows of data. repeated MetricsRow rows = 1; // Continuation token to fetch the next page of data. string next_page_token = 2; }