<!--
Copyright 2022 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!--
This file is used to generate a comprehensive list of histograms owned
by the Family Experiences team along with a detailed description for
each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md.
Also see go/famexp-metrics-guide for more specific tips and
documentation on adding new histograms to this file. For histogram
naming, consider
{Platform}.FamilyUser/FamilyLink/FamilyLinkUser prefix for platform
specific metrics and FamilyUser/FamilyLink/FamilyLinkUser prefix for
cross platform metrics.
Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
[email protected].
-->
<histogram-configuration>
<histograms>
<variants name="ProtoFetcherRequestType">
<variant name="FamilyLinkUser.ClassifyUrlRequest"
summary="Kids Management API::ClassifyUrl"/>
<variant name="FamilyLinkUser.CreatePermissionRequest"
summary="Kids Management API::CreatePermissionRequest"/>
<variant name="Signin.ListFamilyMembersRequest"
summary="Kids Management API::ListMembers"/>
</variants>
<histogram name="AddSupervisionDialog.Enrollment"
enum="AddSupervisionEnrollment" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of users who go through the Add Supervision process to
convert regular accounts to Geller accounts. Initiated count is incremented
when Add Supervision dialog is opened. Completed count is incremented when
supervision is successfully enrolled. Signed out count is incremented when
the user clicks "Sign out" after enrollment at the end of the
process in the dialog. Closed count is incremented when the Add Supervision
dialog is closed prior to enrollment, excluding sign out. Switched accounts
count is incremented when the user clicks "Sign out" within the
dialog to swich accounts before enrollment completion.
</summary>
</histogram>
<histogram name="AddSupervisionDialog.EnrollmentCompletedUserTime" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time in milliseconds for users to successfully enroll
in supervision. Elapsed time is measured starting from when the Add
Supervision dialog was first opened.
</summary>
</histogram>
<histogram name="AddSupervisionDialog.EnrollmentNotCompletedUserTime"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time in milliseconds for users to exit the Add
Supervision dialog without enrollment. This can happen if the user closes
the Add Supervision dialog or signs out to switch accounts. Elapsed time is
measured starting from when the Add Supervision dialog was first opened.
</summary>
</histogram>
<histogram name="AddSupervisionDialog.SignoutCompletedUserTime" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time in milliseconds for users to sign out after
enrolling in supervision. Elapsed time is measured starting from when the
Add Supervision dialog was first opened.
</summary>
</histogram>
<histogram name="ChildAccountReconcilor.ForcedUserExitOnReconcileError"
enum="BooleanHit" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of forced logouts for child accounts on an account reconciliation
error. Check `ChromeOSLimitedAccessAccountReconcilorDelegate`.
</summary>
</histogram>
<histogram name="ChromeOS.FamilyLink.ChildStatusReportRequest.Size" units="KB"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the size of the uploaded ChildStatusReportRequest proto in
kilobytes. This metric records right before the report uploads. The max
bucket value is 500MB.
</summary>
</histogram>
<histogram
name="ChromeOS.FamilyLink.ChildStatusReportRequest.TimeSinceLastReport"
units="minutes" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the time in between ChildStatusReportRequest uploads in minutes. The
default upload frequency is once every ten minutes. This metric records
right before the report uploads. The max bucket value is 100,000 minutes
(1667 hours).
</summary>
</histogram>
<histogram name="ChromeOS.FamilyLinkUser.FaviconAvailability"
enum="SupervisedUserFaviconAvailability" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the favicon is available when it is being requested. The
favicon is requested for UI related to supervised users, including the local
web approvals parent access dialog. This metric is only recorded on
ChromeOS.
</summary>
</histogram>
<histogram name="ChromeOS.FamilyLinkUser.LogSegment"
enum="FamilyLinkUserLogSegment" expires_after="never">
<!-- expires-never: used internally for filtering -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Categorizes the current user for the Family Experiences team's metrics.
WebApprovals metrics are included from M110 onwards. ExtensionApprovals
metrics are included from M115 onwards.
</summary>
</histogram>
<histogram name="ChromeOS.FamilyLinkUser.ParentAccess.FlowResult.{FlowType}"
enum="ParentAccessFlowResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the state at which the Parent Access dialog is closed for all parent
access flows. Allows to track the drop rate by important states during the
parent access flow. This metric is recorded for ChromeOS only. WebApprovals
metrics are available from M110 onwards. ExtensionApprovals metrics are
available from M115 onwards.
</summary>
<token key="FlowType">
<variant name="All"/>
<variant name="ExtensionApprovals"/>
<variant name="WebApprovals"/>
</token>
</histogram>
<histogram name="ChromeOS.FamilyLinkUser.ParentAccessWidgetError.{FlowType}"
enum="FamilyLinkUserParentAccessWidgetError" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records an error that occurs in the parent access widget. ChromeOS Only.
WebApprovals metrics are available from M110 onwards. ExtensionApprovals
metrics are available from M115 onwards.
</summary>
<token key="FlowType">
<variant name="All"/>
<variant name="ExtensionApprovals"/>
<variant name="WebApprovals"/>
</token>
</histogram>
<histogram
name="ChromeOS.FamilyLinkUser.ParentAccessWidgetShowDialogError.{FlowType}"
enum="FamilyLinkUserParentAccessWidgetShowDialogError"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records an error where the parent access widget dialog cannot be shown.
Reported by the browser when the dialog fails to show. ChromeOS only.
WebApprovals metrics are available from M110 onwards. ExtensionApprovals
metrics are available from M115 onwards.
</summary>
<token key="FlowType">
<variant name="All"/>
<variant name="ExtensionApprovals"/>
<variant name="WebApprovals"/>
</token>
</histogram>
<histogram name="ChromeOS.FamilyUser.LogSegment2" enum="FamilyUserLogSegment"
expires_after="never">
<!-- expires-never: used internally for filtering -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Categorizes the current user for the Family Experiences team's metrics.
Other is for all other users that do not fall into any of the below
categories. A Supervised User has a supervised primary account and no
secondary accounts. A Supervised Student has a supervised primary account
and one or more EDU secondary accounts, which is the only available option
for a secondary account in that scenario. A Student at Home has a K-12 EDU
primary account on an unmanaged ChromeOS device, regardless of the secondary
account. A Regular User is an unmanaged consumer user on any device. This
metric is logged with every UMA upload in ProvideCurrentSessionData().
</summary>
</histogram>
<histogram name="ChromeOS.FamilyUser.NumSecondaryAccounts" units="accounts"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the number of secondary accounts besides the primary user. This
metric is logged with every UMA upload in ProvideCurrentSessionData(). This
metric is not reported for guest users.
</summary>
</histogram>
<histogram name="ChromeOS.LegacySupervisedUsers.HiddenFromLoginScreen"
enum="LegacySupervisedUserStatus" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports "hidden" when the login screen hides a legacy supervised
user (LSU). Reports "displayed" when the login screen displays a
non-LSU Gaia user. Reports "deleted" when the login screen
attempts to delete a LSU. Recorded whenever the user sees the login screen.
</summary>
</histogram>
<histogram name="ChromeOS.OnDeviceControls.AppRemoval"
enum="OnDeviceControlsAppRemoval" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the success or failure of removing the oldest uninstalled app that
has been blocked by on-device parental controls. This occurs when the max
number of uninstalled blocked apps are stored in the blocked app registry.
</summary>
</histogram>
<histogram name="ChromeOS.OnDeviceControls.BlockAppAction"
enum="OnDeviceControlsBlockAppAction" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when the user interacts with apps with respect to on-device
parental controls. It records actions such as blocking apps, unblocking
apps, and uninstalling blocked apps. This histogram also records errors,
such as if an already-blocked app is being blocked again.
</summary>
</histogram>
<histogram name="ChromeOS.OnDeviceControls.BlockedAppDialogShown"
enum="OnDeviceControlsBlockedAppDialog" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when the user attempts to open an app blocked by on-device controls
and is shown the blocked app system dialog.
</summary>
</histogram>
<histogram name="ChromeOS.OnDeviceControls.BlockedAppsCount" units="Apps"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of apps blocked by on-device parental controls that a
user has. Recorded every time an app is blocked or unblocked.
</summary>
</histogram>
<histogram name="ChromeOS.OnDeviceControls.BlockedAppsEngagement" units="Apps"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of apps blocked with on-device parental controls that a
user has at the beginning of each user session.
</summary>
</histogram>
<histogram name="ChromeOS.OnDeviceControls.DialogAction.{DialogType}"
enum="OnDeviceControlsDialogAction" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records user interactions with the dialogs in OS settings related to the
on-device parental controls feature. Records actions such as the user
opening the dialog and the user completing the dialog flow.
</summary>
<token key="DialogType">
<variant name="SetUpControls"/>
<variant name="VerifyToDisableControls"/>
<variant name="VerifyToEnterControlsPage"/>
</token>
</histogram>
<histogram name="ChromeOS.OnDeviceControls.PinDialogError"
enum="OnDeviceControlsPinDialogError" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if the user encounters an error when verifying or setting up a PIN
for on-device parental controls.
</summary>
</histogram>
<histogram name="ChromeOS.OnDeviceControls.PinSetupCompleted" enum="Boolean"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the user has set up a PIN for on-device app parental
controls. Recorded at the beginning of each user session.
</summary>
</histogram>
<histogram name="FamilyLinkUser.FamilyInfoLogSource.FetchLatency" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time spent waiting for the Kids Management API::ListMembers fetch done
as part of populating the FamilyInfoLogSource in feedback reports. This is
recorded for every fetch on either getting a response from the fetcher or
timing out (whichever happens first).
</summary>
</histogram>
<histogram name="FamilyLinkUser.FamilyInfoLogSource.FetchStatus"
enum="FamilyInfoLogSourceFetchStatus" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of the Kids Management API::ListMembers fetch done as part of
populating the FamilyInfoLogSource in feedback reports. This is output for
every fetch on either getting a response from the fetcher or timing out.
</summary>
</histogram>
<histogram name="FamilyLinkUser.FamilyInfoLogSource.ImmediatelyAvailable"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether a fetch to the Kids Management API::ListMembers was necessary as a
part of populating the FamilyInfoLogSource in feedback reports.
</summary>
</histogram>
<histogram name="FamilyLinkUser.LocalWebApprovalCompleteRequestTotalDuration"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total elapsed time in milliseconds to complete the local web approval
verification flow, from the time the supervised user requests to the time
the webpage is approved or rejected by the parent. Available on Android
(M108+) and ChromeOS (M109+).
</summary>
</histogram>
<histogram name="FamilyLinkUser.LocalWebApprovalOutcome"
enum="FamilyLinkUserLocalWebApprovalOutcome" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The different outcomes that a user may come accross the local web approval
flow. Available on Android only.
</summary>
</histogram>
<histogram name="FamilyLinkUser.LocalWebApprovalResult"
enum="FamilyLinkUserLocalWebApprovalResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of local web approval request on ChromeOS and Android.
Reported by the browser once platform specific approval flow finishes and
returns the result.
</summary>
</histogram>
<histogram name="FamilyLinkUser.LogSegment" enum="FamilyLinkUserLogSegment"
expires_after="never">
<!-- expires-never: used internally for filtering -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Categorizes the current user based on Family Link user type. Recorded for
all supervised platforms except ChromeOS which uses
ChromeOS.FamilyLinkUser.LogSegment.
</summary>
</histogram>
<histogram name="FamilyUser.ChromeBrowserEngagement.Duration2" units="ms"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the Chrome OS user Chrome browser usage in milliseconds. Reports
current daily duration at the first session start on next day. Despite daily
reporting, the uploaded duration can still exceed 24 hours if the user
continuously stays active for that long. This is only logged for active
foreground time of Chrome browser. Ignores the time when video or audio is
playing in the background, or Chrome browser is invisible. Also ignores the
time when UsageTimeStateNotifier::UsageTimeState is inactive.
</summary>
</histogram>
<histogram name="FamilyUser.DeviceOwner" enum="Boolean"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the current primary user is the owner of device. Reports at
the beginning of the first active session daily.
</summary>
</histogram>
<histogram name="FamilyUser.FamilyLinkUsersCount" units="Number of Users"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of family link users on a Chrome OS device at the
beginning of the first active session daily.
</summary>
</histogram>
<histogram name="FamilyUser.GaiaUsersCount" units="Number of Users"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of Gaia users on a Chrome OS device, at the beginning of
the first active session daily for all user types except incognito session.
The user count could be 0 if the managed device has ephemeral user policy.
</summary>
</histogram>
<histogram name="FamilyUser.ManagedSiteList" enum="FamilyLinkManagedSiteList"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether managed sites approved list and blocked list are enabled for
currently active Family Link user. Prior to M93, this metric was recorded at
the beginning of first active session daily. In M93, this metric is now also
recorded when manual hosts and manual urls policies are changed. Ignores the
reports during OOBE and sign out.
</summary>
</histogram>
<histogram name="FamilyUser.ManagedSiteList.Conflict" enum="BooleanHasConflict"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the given url has a match in both the allowlist and the
block list which means a conflict. This metric is recorded if the given url
matches at least one manual rule.
</summary>
</histogram>
<histogram name="FamilyUser.ManagedSiteList.SubdomainConflictType"
enum="FamilyLinkFilteringSubdomainConflictType" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of the conflict during url filtering when a match exists in
both the allowlist and the blocklist.
</summary>
</histogram>
<histogram name="FamilyUser.ManagedSiteListCount.Approved"
units="Number of approved sites" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records number of approved urls and hosts for currently active Family Link
user. This metric is recorded at the beginning of first active session daily
and when manual hosts and manual urls policies are changed. Ignores the
reports during OOBE and sign out.
</summary>
</histogram>
<histogram name="FamilyUser.ManagedSiteListCount.Blocked"
units="Number of blocked sites" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records number of blocked urls and hosts for currently active Family Link
user. This metric is recorded at the beginning of first active session daily
and when manual hosts and manual urls policies are changed. Ignores the
reports during OOBE and sign out.
</summary>
</histogram>
<histogram name="FamilyUser.NewUserAdded" enum="NewUserAdded"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports NewUserAdded enum when a new Family Link user or regular user is
successfully added to Chrome OS device. Other user types fall into the other
bucket. Reports when the user session starts.
</summary>
</histogram>
<histogram name="FamilyUser.SessionEngagement.Duration" units="ms"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the Chrome OS user session duration in milliseconds. Reports current
daily duration at the first session start on next day. This is only logged
for active usage time of device, determined by UsageTimeState::ACTIVE.
</summary>
</histogram>
<histogram name="FamilyUser.SessionEngagement.Total" units="Hour of day"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the Chrome OS user engagement hour within the current day (0-23),
total of weekday and weekend. Logged on
UsageTimeStateNotifier::UsageTimeState changes to INACTIVE. Might report the
same hour multiple times.
</summary>
</histogram>
<histogram name="FamilyUser.SessionEngagement.Weekday" units="Hour of day"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the Chrome OS user engagement hour of day (0-23) on weekday. Logged
on UsageTimeStateNotifier::UsageTimeState changes to INACTIVE. Might report
the same hour multiple times.
</summary>
</histogram>
<histogram name="FamilyUser.SessionEngagement.Weekend" units="Hour of day"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the Chrome OS user engagement hour of day (0-23) on weekend. Logged
on UsageTimeStateNotifier::UsageTimeState changes to INACTIVE. Might report
the same hour multiple times.
</summary>
</histogram>
<histogram name="FamilyUser.TimeLimitPolicyTypes" enum="TimeLimitPolicyType"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records what time limit policy types are enabled for the currently active
Family Link user. Enabling multiple policies would report multiple buckets
to UMA. Prior to M93, this metric was recorded at the beginning of first
active session daily. In M93, this metric is now also recorded when bed time
limit, daily limit, override time limit, apps time limit and web time limit
policies are changed. App time limits does not include blocked apps.
</summary>
</histogram>
<histogram name="FamilyUser.WebFilterType" enum="FamilyLinkWebFilterType"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the web filter type for currently active Family Link user. Prior to
M93, this metric was recorded at the beginning of first active session
daily. In M93, this metric is now also recorded when web filter type policy
changed. This metric is not emitted during OOBE and sign out.
FamilyUser.WebFilterType.PerRecord is emitted for every UMA record, in which
there is an active supervised user, from the current session.
</summary>
</histogram>
<histogram name="FamilyUser.WebFilterType.PerRecord"
enum="FamilyLinkWebFilterType" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Categorizes the current user based on parental control web filter setting.
If there are multiple active supervised accounts on the device, records the
filter type if they all have the same filter type. If they have different
filter types, records the 'mixed' filter. Unsupervised users are ignored in
the process of deciding what to record. FamilyUser.WebFilterType.PerRecord
is emitted for every UMA record from the current session. In contrast,
FamilyUser.WebFilterType is recorded less frequently; see its histogram
description.
</summary>
</histogram>
<histogram name="FamilyUser.{AppType}AppsCount2" units="Number of Apps"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Around once per day, records the number of recently used {AppType} apps in
the past day.
</summary>
<token key="AppType">
<variant name="Arc"/>
<variant name="Borealis"/>
<variant name="BuiltIn"/>
<variant name="Crostini"/>
<variant name="Extension"/>
<variant name="Lacros"/>
<variant name="PluginVm"/>
<variant name="Remote"/>
<variant name="SystemWeb"/>
<variant name="Unknown"/>
<variant name="Web"/>
</token>
</histogram>
<histogram name="FamilyUser.{ExtensionStatus}ExtensionsCount2"
units="Number of Extensions" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of non-component {ExtensionStatus} regular browser
extensions and themes around once per day, regardless of when they were last
used.
</summary>
<token key="ExtensionStatus">
<!-- Note: the Disable variant is not used on ChromeOS. -->
<variant name="Disabled" summary="disabled"/>
<variant name="Enabled" summary="enabled"/>
<variant name="Installed" summary="installed"/>
</token>
</histogram>
<histogram name="ManagedMode.BlockingInterstitialCommand"
enum="ManagedModeBlockingCommand" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Which command was selected from the blocking interstitial.</summary>
</histogram>
<histogram name="ManagedUsers.BlockedIframeCount" units="iframes"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of blocked iframes per unblocked main frame load. The value is
recorded when the main frame finishes loading.
</summary>
</histogram>
<histogram name="ManagedUsers.FilteringResult"
enum="SupervisedUserSafetyFilterResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The counts of results from supervised user URL filtering. Each entry
includes the outcome of the filter (i.e. allowed, blocked, or unknown) and
the page transition type (how the user got there, e.g. typed URL, clicked
link). For a more general metric see ManagedUsers.TopLevelFilteringResult
</summary>
</histogram>
<histogram name="ManagedUsers.RequestPermissionSource"
enum="ManagedUserURLRequestPermissionSource" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The counts of request for permission sent from main frame or sub-frame.
</summary>
</histogram>
<histogram name="ManagedUsers.TopLevelFilteringResult"
enum="SupervisedUserFilterTopLevelResult" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records counts of results from supervised user URL filtering. Each entry
includes the outcome of the filter (allowed or blocked). If outcome is
blocked reason for the block (e.g. SafeSites, Blocklist) is also recorded.
For more granular information see ManagedUsers.FilteringResult.
</summary>
</histogram>
<histogram
name="SupervisedUsers.ClassifyUrlThrottle.EarlierThanContentResponse"
units="ms" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time difference between completing the url classification for
the navigation (including request and possible redirects), and the moment
where the classification was needed to decide whether or not to proceed with
navigation.
Recorded only in the mainline case when the navigation was not blocked.
Together with the complementary
SupervisedUsers.ClassifyUrlThrottle.LaterThanContentResponse metric it forms
a continuum of time, with 0 recorded in either (but only one) metric meaning
that the classification was ready exactly when it was needed.
</summary>
</histogram>
<histogram name="SupervisedUsers.ClassifyUrlThrottle.LaterThanContentResponse"
units="ms" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time difference between when the navigation needs a url
classification to proceed, and the time when that classification was
completed. In other words, it tracks the user-visible delay introduced to
the navigation by the url classification.
Recorded only in the mainline case when the navigation was not blocked.
Together with the complementary
SupervisedUsers.ClassifyUrlThrottle.EarlierThanContentResponse metric it
forms a continuum of time, with 0 recorded in either (but only one) metric
meaning that the classification was ready exactly when it was needed.
</summary>
</histogram>
<histogram name="SupervisedUsers.ClassifyUrlThrottle.Status"
enum="ClassifyUrlThrottleStatus" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the throttle interaction with the navigation flow.
Typically, unblocked navigation with a single request records one Continue
status, followed by either Proceed or Defer and then Resume. If there are
redirects, then more Continue statuses are recorded.
Blocked navigation records at least one Continue followed by Defer and
CancelDeferredNavigation when the check was asynchronous, or an immediate
DeferAndScheduleInterstitial status if the check is synchronouns. When the
user navigates to a redirect chain, there might be more continue events
recorded.
The scenarios above mean that the number of Defer statuses should match the
number of Resume and CancelDeferredNavigation statuses.
Cancel is a definitive termination of the navigation without classification,
due to eg. unsupported type of request.
</summary>
</histogram>
<histogram name="SupervisedUsers.ExtensionApprovalsCountOnExtensionToggle"
units="Extensions" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of extensions that will be granted parental approval at
the time of flipping the Family Link "Extensions" toggle to
Enabled. When this action happens, all the extensions missing parental
approval are granted it.
</summary>
</histogram>
<histogram name="SupervisedUsers.ExtensionEnablement"
enum="SupervisedUserExtensionEnablement" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records supervised users trying to enable or disable extensions. Enabled
count increments when the supervised user successfully enables an extension.
Disabled count increments when the supervised user successfully disables an
extension. Enable attempt failed count increments when the parent has turned
off the "Permissions for sites, apps and extensions" toggle and
the supervised user tries to enable an extension that requires custodian
approval or has a permissions increase.
</summary>
</histogram>
<histogram name="SupervisedUsers.ExtensionInstallDialog"
enum="SupervisedUserExtensionInstallDialog" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the actions of supervised users on the Extension Install Dialog.
Opened count increments when the supervised user tries to install an
extension from the Chrome Web Store and launches the Extension Install
Dialog. Asked Parent count increments when the supervised user clicks
"Ask a parent". Child Canceled count increments when the
supervised user clicks "Cancel".
</summary>
</histogram>
<histogram name="SupervisedUsers.ExtensionParentApprovalEntryPoint"
enum="SupervisedUserExtensionParentApprovalEntryPoint"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the different flows that lead to displaying the Extensions parent
approval dialog on Windows/Linux/Mac platrforms.
</summary>
</histogram>
<histogram name="SupervisedUsers.Extensions2" enum="SupervisedUserExtension2"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the progress of supervised users as they try to install Chrome
extensions. See the descriptions in the individual enum buckets.
</summary>
</histogram>
<histogram name="SupervisedUsers.ImplicitParentApprovalGrantEntryPoint"
enum="SupervisedUserImplicitParentApprovalGrantEntryPoint"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the different flows that lead to granting an automatic parent
approval on an extension (without having to explicitely request the
approval).
</summary>
</histogram>
<histogram
name="SupervisedUsers.InitialLocallyApprovedExtensionsCountOnWinLinuxMac"
units="Extensions" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of extensions that will be granted local parental
approval at the release time the feature that introduces the Skip Parent
Approval mode for extension installations. Applies to Win/Linux/Mac only, so
on ChromeOS it is always zero.
</summary>
</histogram>
<histogram name="SupervisedUsers.ParentPermissionDialog"
enum="SupervisedUserParentPermissionDialog" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the actions of parents on the Parent Permission Dialog. Opened count
increments when the Parent Permission Dialog first opens. Parent Approved
count increments when the parent successfully types their password and
approves the extension. Parent Canceled count increments when the parent
cancels the dialog, denying the supervised user's attempt to enable the
extension. Failed count increments when there was some sort of failure in
the Parent Permission Dialog. No Parent Error count increments when the
supervised user doesn't have any associated parent email addresses for
asking approval. Note that this error also increments the Failed count.
</summary>
</histogram>
<histogram name="SupervisedUsers.PerAppTimeLimits.AppsWithTimeLimit"
units="Apps" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The count of applications with time limit set by parents. Recorded once per
PerAppTimeLimit policy change.
</summary>
</histogram>
<histogram name="SupervisedUsers.PerAppTimeLimits.BlockedAppsCount"
units="Apps" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The count of applications blocked by parents. It only applies to ARC++
applications. Recorded once per PerAppTimeLimit policy change.
</summary>
</histogram>
<histogram name="SupervisedUsers.PerAppTimeLimits.Engagement" units="Apps"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Per-App Time Limits feature engagement measured by the number of apps with
time limits set for child user. Reported at the beginning of each user
session.
</summary>
</histogram>
<histogram name="SupervisedUsers.PerAppTimeLimits.PolicyChangeCount"
units="Changes" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of PerAppTimeLimits policy changes seen in a session.
Recorded once at the end of the session.
</summary>
</histogram>
<histogram name="SupervisedUsers.SitesMayRequestCameraMicLocation.PerRecord"
enum="SupervisedUserToggleState" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the state of the "Permissions for sites" toggle. When
parents/custodians have the toggle enabled websites may ask for camera,
microphone and location permission (and the supervised user can grant
these). When the toggle is disabled, requests for these permissions are
blocked. The value is recorded with every UMA record upload from the current
session. It should therefore be used as a filter, or looking at unique
client counts (raw counts are not meaningful).
</summary>
</histogram>
<histogram
name="SupervisedUsers.SkipParentApprovalToInstallExtensions.PerRecord"
enum="SupervisedUserToggleState" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the state of the "Extensions" toggle. When
parents/custodians have the toggle enabled, supervised users may install
extensions without explicit parent/custodian approval. Any extensions
installed under this mode receive automatic parent approval. Otherwise,
supervised users may install extensions upon receiving explicit
parent/custodian approval on each installation. Unsupervised users are
ignored in the process of deciding what to record. The value is recorded
with every UMA record upload from the current session. It should therefore
be used as a filter, or looking at unique client counts (raw counts are not
meaningful).
</summary>
</histogram>
<histogram name="Supervision.ParentAccessCode.Action"
enum="ParentAccessCodeAction" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Action originated in parent access code dialog. Logged every time the action
happens.
</summary>
</histogram>
<histogram name="Supervision.ParentAccessCode.Usage"
enum="ParentAccessCodeUsage" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The context in which parent access code was used. Logged every time the new
parent access dialog is shown.
</summary>
</histogram>
<histogram name="Supervision.ParentAccessCode.ValidationResult.{Action}"
enum="ParentAccessCodeValidationResult" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of the parent access code validation for {Action} action. Logged
every time the code is validated from the parent access dialog.
</summary>
<token key="Action">
<variant name="AddUser"/>
<variant name="All"/>
<variant name="ClockChange"/>
<variant name="Reauth"/>
<variant name="TimeLimits"/>
<variant name="TimezoneChange"/>
</token>
</histogram>
<histogram name="Supervision.StatusReport.Event"
enum="SupervisionStatusReportEvent" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The event that triggered status report for supervised account.
</summary>
</histogram>
<histogram name="{RequestType}.AuthError" enum="GoogleServiceAuthError"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The detailed reason for AuthError failures. Recorded for each request to the
API where Chrome was unable to get a valid access token (whether or not this
error was fatal).
</summary>
<token key="RequestType" variants="ProtoFetcherRequestType"/>
</histogram>
<histogram name="{RequestType}.HttpStatusOrNetError"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The status of the net or HTTP communication in calls to {RequestType}. This
is recorded for each request to the {RequestType}.
</summary>
<token key="RequestType" variants="ProtoFetcherRequestType"/>
</histogram>
<histogram name="{RequestType}.Latency" units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the latency in calls to {RequestType}. It includes both the actual
RPC call and the time spent in requesting access token.
Googlers only: See go/chrome-kids-backend-monitoring for backend-related
metrics.
</summary>
<token key="RequestType" variants="ProtoFetcherRequestType"/>
</histogram>
<histogram name="{RequestType}.Status" enum="SupervisedUserProtoFetcherStatus"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The status of the fetch in calls to {RequestType}.</summary>
<token key="RequestType" variants="ProtoFetcherRequestType"/>
</histogram>
<histogram name="{RequestType}.{AuthErrorState}.AccessTokenLatency" units="ms"
expires_after="2023-11-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Latency of the access token fetching before calls to {RequestType}.
Currently only successful authentication is counted.
</summary>
<token key="RequestType" variants="ProtoFetcherRequestType"/>
<token key="AuthErrorState">
<variant name="NONE"/>
</token>
</histogram>
<histogram name="{RequestType}.{HttpStatusOrNetError}.ApiLatency" units="ms"
expires_after="2023-11-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Latency of the calls to {RequestType} that resulted in
"{HttpStatusOrNetError}" status. Currently only succesful
communication is recorded.
</summary>
<token key="RequestType" variants="ProtoFetcherRequestType"/>
<token key="HttpStatusOrNetError">
<variant name="HTTP_OK"/>
</token>
</histogram>
<histogram name="{RequestType}.{Status}.Latency" units="ms"
expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Latency of the calls to {RequestType} that resulted in "{Status}"
status. It includes both the actual RPC call and the time spent in
requesting access token.
</summary>
<token key="RequestType" variants="ProtoFetcherRequestType"/>
<token key="Status">
<variant name="AuthError"/>
<variant name="DataError"
summary="contract error (data in the response missing despite
succesful parsing)"/>
<variant name="HttpStatusOrNetError"/>
<variant name="NoError"/>
<variant name="ParseError"/>
</token>
</histogram>
</histograms>
</histogram-configuration>