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;
}