<!--
Copyright 2020 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 Content histograms
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
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="ContentAllProviderTypes">
<variant name="default"/>
<variant name="extension"/>
<variant name="installed_webapp_provider"/>
<variant name="notification_android"/>
<variant name="one_time"/>
<variant name="policy"/>
<variant name="preference"/>
<variant name="supervised_user"/>
<variant name="tests"/>
<variant name="tests_other"/>
<variant name="webui_allowlist"/>
</variants>
<variants name="FeedNetworkRequestType">
<variant name=".FeedQuery" summary="FeedQuery"/>
<variant name=".FollowWebFeed" summary="FollowWebFeed"/>
<variant name=".ListFollowedWebFeeds" summary="ListFollowedWebFeeds"/>
<variant name=".ListRecommendedWebFeeds" summary="ListRecommendedWebFeeds"/>
<variant name=".NextPage" summary="NextPage"/>
<variant name=".QueryBackgroundFeed" summary="QueryBackgroundFeed"/>
<variant name=".QueryInteractiveFeed" summary="QueryInteractiveFeed"/>
<variant name=".QueryNextPage" summary="QueryNextPage"/>
<variant name=".QueryWebFeed" summary="QueryWebFeed"/>
<variant name=".SingleWebFeedListContents"
summary="SingleWebFeedListContents"/>
<variant name=".SupervisedFeed" summary="SupervisedFeed"/>
<variant name=".UnfollowWebFeed" summary="UnfollowWebFeed"/>
<variant name=".UploadActions" summary="UploadActions"/>
<variant name=".WebFeedListContents" summary="WebFeedListContents"/>
</variants>
<histogram name="Content.Classification" enum="ContentClassification"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the webpage is a long-form article or not. This is logged when the
user navigates away from the current page (via loading a different webpage
or native page). It is only logged if the distillability of the page had
been determined.
</summary>
</histogram>
<histogram name="Content.Classification.OpenGraph"
enum="ContentClassificationOpenGraph" expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
What the Open Graph Protocol classification of the page is. This is logged
when the user navigates to the current page. It is only logged if there is
an 'og:type' property in the HTML of the page.
</summary>
</histogram>
<histogram name="ContentCapture.CaptureContentDelayTime" units="ms"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner>
<summary>
The time between a change in content and when the new capture is sent to the
browser process.
A specific content change is hard to track. This is roughly calculated as
the interval from the first content change after a prior capturing content
to the first content being sent after the next capture of content.
</summary>
</histogram>
<histogram name="ContentCapture.CaptureContentTime2" units="microseconds"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner>
<summary>
The time taken to capture the on-screen content and group them by document.
Note that this metrics is only recorded on clients on which a
high-resolution clock is available.
</summary>
</histogram>
<histogram name="ContentCapture.SendContentTime" units="microseconds"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner>
<summary>
The time taken to send the content to the browser process in batch.
Note that this metrics is only recorded on clients on which a
high-resolution clock is available.
</summary>
</histogram>
<histogram name="ContentCapture.SentContentCount2" units="count"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner>
<summary>The total number of content captures sent for a document.</summary>
</histogram>
<histogram name="ContentCapture.TaskDelayTimeInMs" units="ms"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner>
<summary>
The time taken for the task to start after it's scheduled.
Note: The time of task that was scheduled for the retry wasn't measured
because it is always 500ms.
</summary>
</histogram>
<histogram name="ContentCapture.TaskRunsPerCapture" units="runs"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner>
<summary>
The number of the times the task runs for a content capture session.
A content capture session begins with capturing on-screen content and ends
in sending all changes.
</summary>
</histogram>
<histogram name="ContentNotifications.ClientStatus.Enabled.ByProvider"
enum="Boolean" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The status of the push notifications client toggle for Content.
</summary>
</histogram>
<histogram name="ContentNotifications.ClientStatus.Sports.ByProvider"
enum="Boolean" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The status of the push notifications client toggle for Sports.
</summary>
</histogram>
<histogram name="ContentNotifications.DismissAction" enum="Boolean"
expires_after="2024-12-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The user has dismissed a content notification.</summary>
</histogram>
<histogram name="ContentNotifications.EligibilityType"
enum="ContentNotificationEligibilityType" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Type of elegibility for a given user for the Content Notifications
feature. Includes details about what UI entrypoint type the user is elegible
for as well as whether they are in the control group for that entrypoint.
</summary>
</histogram>
<histogram name="ContentNotifications.Notification.Action"
enum="ContentNotificationActionType" expires_after="2024-12-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports what actions has the user taken on a notification. This metric
matches NAUs sent.
</summary>
</histogram>
<histogram name="ContentNotifications.NotificationActionUpload.Success"
enum="Boolean" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
After a notification action upload, whether the request succeeded or failed.
</summary>
</histogram>
<histogram name="ContentNotifications.OpenURLAction.HasURL" enum="Boolean"
expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
After a notification interaction, if the URL has successfully been parsed or
if it has failed.
</summary>
</histogram>
<histogram name="ContentNotifications.Promo.Prompt.Action"
enum="ContentNotificationPromptAction" expires_after="2024-12-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The action taken by the user in response to the Set Up List Content
Notification OS notification permission prompt.
</summary>
</histogram>
<histogram
name="ContentNotifications.Promo.ProvisionalNotifications.Entrypoint"
enum="ContentNotificationPromoProvisionalEntrypoint"
expires_after="2024-12-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Provisional notifications were turned on from the Notifications Promo.
</summary>
</histogram>
<histogram name="ContentNotifications.Promo.SetUpList.Action"
enum="ContentNotificationSetUpListPromoAction" expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The action taken by the user in response to the Set Up List Content
Notification promo.
</summary>
</histogram>
<histogram name="ContentNotifications.Promo.SetUpList.Event"
enum="ContentNotificationSetUpListPromoEvent" expires_after="2024-12-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Log the Set Up List Content Notification promo events.</summary>
</histogram>
<histogram name="ContentNotifications.Promo.Snackbar.Event"
enum="ContentNotificationSnackbarEvent" expires_after="2024-12-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Log the Set Up List Content Notification confirmation snackbar events.
</summary>
</histogram>
<histogram name="ContentNotifications.Promo.TopOfFeed.Action"
enum="ContentNotificationTopOfFeedPromoAction" expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The action taken by the user in response to the Top of Feed Content
Notifications promo.
</summary>
</histogram>
<histogram name="ContentNotifications.Promo.TopOfFeed.Event"
enum="ContentNotificationTopOfFeedPromoAction" expires_after="2024-12-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
An event from the the Top of Feed Content Notifications promo.
</summary>
</histogram>
<histogram name="ContentNotifications.Registration.BrowserStateUnavailable"
enum="Boolean" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This logs if a SNo registration has not succeeded due to a BrowserState
being unavailable at the time due to a Browser not being initialized.
</summary>
</histogram>
<histogram name="ContentNotifications.Settings.Action"
enum="ContentNotificationSettingsAction" expires_after="2024-12-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The action taken by the user in the content notification settings view.
</summary>
</histogram>
<histogram
name="ContentSettings.ActiveExpiry.{ProviderType}.ContentSettingsType"
enum="PermissionType" expires_after="2025-07-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Logs the number of active expiries per provider type at content setting
granularity. Events are recorded at expiry time.
</summary>
<token key="ProviderType" variants="ContentAllProviderTypes"/>
</histogram>
<histogram name="ContentSettings.AllowStorageAccessSync" units="ms"
expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures how long a sync call to ContentSettingsManager::AllowStorageAccess
takes. Logged each time a sync call is made that is not cached.
</summary>
</histogram>
<histogram name="ContentSettings.Bubble.StorageAccess.Action"
enum="ContentSettingBubbleAction" expires_after="2024-07-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Logs actions within the StorageAccess bubble.</summary>
</histogram>
<histogram name="ContentSettings.ExtensionEmbeddedSettingSet"
enum="ContentType" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Count of how often a specific content setting is set for an embedded URL by
an extension. Only counts settings when the secondary pattern is different
to the primary pattern. Exactly one of this or
ContentSettings.ExtensionNonEmbeddedSettingSet will be emitted per call to
contentSettings.set(), if the arguments to the call are valid.
</summary>
</histogram>
<histogram name="ContentSettings.ExtensionNonEmbeddedSettingSet"
enum="ContentType" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Count of how often a specific content setting is set when only a single
pattern is specified. Exactly one of this or
ContentSettings.ExtensionEmbeddedSettingSet will be emitted per call to
contentSettings.set(), if the arguments to the call are valid.
</summary>
</histogram>
<histogram name="ContentSettings.GetContentSetting.Network.Duration"
units="microseconds" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures how long a call to network::CookieSettings::GetContentSetting
takes. Logged each time a call is made. Note that histogram samples for
clients without high-resolution clocks are dropped.
</summary>
</histogram>
<histogram name="ContentSettings.GetCookieSettingInternal.Duration"
units="microseconds" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures how long a call to CookieSettingBase::GetCookieSettingInternal
takes. Logged each time a call is made. Note that histogram samples for
clients without high-resolution clocks are dropped.
</summary>
</histogram>
<histogram name="ContentSettings.IsAllowedByTpcdMetadataGrant.Duration"
units="microseconds" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures how long a call to content_settings::IsAllowedByTpcdMetadataGrant
takes when CookieSettingsBase::ShouldConsider3pcdMetadataGrantsSettings
returns true. Logged each time a call is made. Note that histogram samples
for clients without high-resolution clocks are dropped.
</summary>
</histogram>
<histogram name="ContentSettings.NumberOfExceptions" units="units"
expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The number of user defined hostname patterns for content settings at browser
start. Warning: this histogram was expired from 2022-08-28 to 2022-09-21;
data may be missing.
</summary>
</histogram>
<histogram name="ContentSettings.PermissionRequested" enum="PermissionType"
expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Number of times a given permission was requested by a website and the user
has the permission set to prompt (i.e. not blocked or allowed).
Note this is probably not the metric you want - it does not correspond to
the total number of times websites request a permission. Also, because
specific permissions have code that can automatically block or grant
permissions based on things like incognito, installed extensions etc., this
does also not correspond to the number of times users are prompted to allow
permissions.
For a better metric to track how often users are prompted, either use
ContentSettings.PermissionsActions*, or Permissions.Prompt.*.
See https://crbug.com/638076 for more details.
Warning: this histogram was expired from 2022-06-19 to 2022-09-21; data may
be missing.
</summary>
</histogram>
<histogram name="ContentSettings.Popups" enum="ContentSettingPopupAction"
expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/blocked_content/OWNERS</owner>
<summary>
Tracks whether the popup content blocked puzzle piece was shown in the
Omnibox, and how the user interacted with it.
</summary>
</histogram>
<histogram name="ContentSettings.Popups.BlockerActions"
enum="PopupBlockerAction" expires_after="2023-03-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/blocked_content/OWNERS</owner>
<summary>
Counts of various events related to the popup blocker. Including blocked
popups and overridden (clicked through) popups. This is similar to the
ContentSettings.Popups but is at the per-popup layer rather than at the UI
layer.
</summary>
</histogram>
<histogram name="ContentSettings.Popups.StrongBlockerActions"
enum="StrongPopupBlockerAction" expires_after="2025-01-26">
<owner>[email protected]</owner>
<summary>
Counts of various events related to the strong popup blocker (aka abusive
experience enforcement), that is triggered via safe browsing.
</summary>
</histogram>
<histogram name="ContentSettings.RegularProfile.DefaultAutoVerifySetting"
enum="ContentSetting" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default Auto-verify setting at profile open. This histogram is only
recorded for regular profiles.
</summary>
</histogram>
<histogram name="ContentSettings.RegularProfile.DefaultBackgroundSyncSetting"
enum="ContentSetting" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default permission setting for Background Sync at profile open. This
histogram is only recorded for regular profiles.
</summary>
</histogram>
<histogram name="ContentSettings.RegularProfile.DefaultStorageAccessSetting"
enum="ContentSetting" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default storage access setting at profile open.
This histogram is only recorded for regular profiles.
</summary>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultAutoDarkWebContentSetting"
enum="ContentSetting" expires_after="2023-02-19">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default auto dark web content setting at profile open. Recorded for
Android only.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultAutoplaySetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default autoplay setting at profile open.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram name="ContentSettings.{RegularProfileFiltered}DefaultCookiesSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important privacy metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default cookies setting at profile open.
This histogram is only recorded {RegularProfileFiltered}.
This histogram was allowed to expire between 2023-02-26 and 2024-01-23.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultIdleDetectionSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default permission setting for idle detection at profile open.
This histogram is only recorded {RegularProfileFiltered}.
This histogram was allowed to expire between 2022-10-23 and 2023-08-03.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram name="ContentSettings.{RegularProfileFiltered}DefaultImagesSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default image setting at profile open.
This histogram is only recorded {RegularProfileFiltered}.
This histogram was allowed to expire between 2022-10-23 and 2023-08-03.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultJavaScriptSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default JavaScript setting at profile open.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultLocationSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default location setting at profile open.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultMediaStreamCameraSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default camera setting at profile open.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultMediaStreamMicSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default microphone setting at profile open. Warning: this histogram was
expired from 2022-06-19 to 2022-09-21; data may be missing.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultMIDISysExSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default MIDI permission setting on sysex (system exclusive) messages at
profile open. The default microphone setting at profile open. Warning: this
histogram was expired from 2022-08-21 to 2022-09-21; data may be missing.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultNotificationsSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default notification setting at profile open.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram name="ContentSettings.{RegularProfileFiltered}DefaultPopupsSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default popups setting at profile open. Warning: this histogram was
expired from 2022-08-21 to 2022-09-21; data may be missing.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultRequestDesktopSiteSetting"
enum="ContentSetting" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The request desktop site content setting at profile open. Recorded for
Android and iOS only.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram name="ContentSettings.{RegularProfileFiltered}DefaultSoundSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default sound setting at profile open.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultSubresourceFilterSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default subresource filter setting at profile open. Warning: this
histogram was expired from 2022-06-19 to 2022-09-21; data may be missing.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultUsbGuardSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default permission setting for WebUSB at profile open.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}DefaultWebBluetoothGuardSetting"
enum="ContentSetting" expires_after="never">
<!-- expires-never: tracked as an important permission metric. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default permission setting for Web Bluetooth at profile open. Warning:
this histogram was expired from 2022-08-21 to 2022-09-21; data may be
missing.
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram
name="ContentSettings.{RegularProfileFiltered}Exceptions.{ContentSettingsType}"
units="units" expires_after="never">
<!-- expires-never: tracked as an important privacy metric. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of user defined content setting exceptions at browser start.
Suffixed with the name of content setting types.
Histogram content setting type: {ContentSettingsType}
This histogram is only recorded {RegularProfileFiltered}.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-109. It is recorded only for regular profiles"/>
</token>
<token key="ContentSettingsType">
<variant name="app-banner" summary="App banner exceptions"/>
<variant name="auto-dark-web-content"
summary="Auto-dark web contents exceptions"/>
<variant name="auto-picture-in-picture"
summary="Automatic picture-in-picture exceptions"/>
<variant name="auto-select-certificate"
summary="Auto-select cert exceptions"/>
<variant name="automatic-downloads"
summary="Automatic downloads exceptions"/>
<variant name="autoplay" summary="Autoplay exception"/>
<variant name="background-sync" summary="Background sync exceptions"/>
<variant name="bluetooth-chooser-data" summary="Bluetooth chooser data"/>
<variant name="bluetooth-guard" summary="Bluetooth guard exceptions"/>
<variant name="client-hints" summary="Client hints"/>
<variant name="cookies" summary="Cookies exceptions"/>
<variant name="display-capture" summary="Display Capture Exceptions"/>
<variant name="durable-storage" summary="Durable Storage Exceptions"/>
<variant name="fullscreen" summary="Fullscreen exceptions"/>
<variant name="geolocation" summary="Geolocation exceptions"/>
<variant name="hid-chooser-data" summary="HID chooser data"/>
<variant name="images" summary="Images exceptions"/>
<variant name="important-site-info" summary="Important site info"/>
<variant name="installed-web-app-metadata"
summary="Installed web app metadata"/>
<variant name="javascript" summary="JavaScript exceptions"/>
<variant name="keygen" summary="Keygen exceptions"/>
<variant name="media-engagement" summary="Media engagement exceptions"/>
<variant name="media-stream-camera" summary="Camera exceptions"/>
<variant name="media-stream-mic" summary="Microphone exceptions"/>
<variant name="midi-sysex" summary="Midi exceptions"/>
<variant name="mixed-script" summary="Mixed script exceptions"/>
<variant name="mouselock" summary="Mouse lock exceptions"/>
<variant name="notifications" summary="Notification exceptions"/>
<variant name="password-protection" summary="Password protection"/>
<variant name="permission-autoblocking-data"
summary="Permission autoblocking data"/>
<variant name="permission-autorevocation-data"
summary="Permission autorevocation data"/>
<variant name="plugins" summary="Plugins exceptions"/>
<variant name="popups" summary="Popups exceptions"/>
<variant name="ppapi-broker" summary="Ppapi broker exceptions"/>
<variant name="protected-media-identifier"
summary="Protected media exceptions"/>
<variant name="protocol-handler" summary="Protocol handler exceptions"/>
<variant name="push-messaging" summary="Push messaging exceptions"/>
<variant name="request-desktop-site"
summary="Request desktop site exceptions"/>
<variant name="safe-browsing-url-check-data"
summary="Safe browsing url check data"/>
<variant name="serial-chooser-data" summary="Serial chooser data"/>
<variant name="site-engagement" summary="Site engagement exceptions"/>
<variant name="sound" summary="Sound exceptions"/>
<variant name="ssl-cert-decisions" summary="SSL cert decisions exceptions"/>
<variant name="storage-access" summary="Storage Access exceptions"/>
<variant name="subresource-filter" summary="Subresource filter exceptions"/>
<variant name="subresource-filter-data" summary="Subresource filter data"/>
<variant name="tracking-protection"
summary="Tracking Protection exceptions"/>
<variant name="usb-chooser-data" summary="USB chooser data exceptions"/>
<variant name="web-app-installation"
summary="Web app installation exceptions"/>
<variant name="webid-active-session" summary="FedCM Active Session"/>
<variant name="webid-request" summary="FedCM Request"/>
<variant name="webid-share" summary="FedCM Share"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.ActivityLoggingEnabled" enum="Boolean"
expires_after="2024-10-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the feed was fetched with activity logging enabled. This is logged
on every feed fetch.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.BrokenNTPHierarchy"
enum="NTPBrokenViewHierarchyRelationship" expires_after="M120">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When the NTP view hierarchy is fixed upon NTP creation, this hisotgram logs
which part was broken. Temporary log used to gather info for
crbug.com/1262536.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.CanBeShown" enum="BooleanAllowed"
expires_after="2024-06-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether showing the Feed is permitted. The Feed can be shown if (A) profile
policies allow this, (B) the FeedAblationEnabled feature is disabled, and
(C) the user has not turned it off in Settings.
Note that this does not denote (A) whether the Feed is visible at the time
the metric is emitted or (B) whether the Feed was ever visible during the
browser process lifetime.
iOS only. Emitted when building a MetricsLog for the current session.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ContentAgeOnLoad.BlockingRefresh"
units="ms" expires_after="2024-01-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The time since locally stored content was fetched from the server.
Reported when the feed surface is shown, and content is refreshed from the
network. This typically only happens when content is stale, so this is a
measurement of how stale content is before it's replaced by a blocking
refresh. Feed v2 only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ContentAgeOnLoad.NotRefreshed"
units="ms" expires_after="2024-01-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The time since locally stored content was fetched from the server.
Reported when the feed surface is shown, and the local persisted feed
content is loaded instead of a direct network refresh. This provides a
measure of how stale feed content is when the feed loads without a blocking
network request. Feed v2 only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ContentDuplication2.Position{Index}"
enum="Boolean" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports whether the feed content at the specific position is
duplicate to previous contents. The feed contents that are not viewed before
are not counted towards the duplication even if they show up again. It is
reported when the feed content is received from the server.
</summary>
<token key="Index">
<variant name="1" summary="1"/>
<variant name="2" summary="2"/>
<variant name="3" summary="3"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.ContentDuplication2.{Range}" units="%"
expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports the percentage of the duplicate contents received for a
range of cards. The feed contents that are not viewed before are not counted
towards the duplication even if they show up again. It is reported when the
feed contents are received from the server.
</summary>
<token key="Range">
<variant name="All" summary="All cards"/>
<variant name="First10" summary="First 10 cards"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.ContentLifetime.InvalidAge" units="ms"
expires_after="2025-05-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The invalid age lifetime of content fetched from the server.
Reported when new content is served to the feed from the server. This
provides a measure of how stale feed content is from the client side.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ContentLifetime.InvalidAgeIsPresent"
enum="Boolean" expires_after="2025-05-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: If the content lifetime of a feed response has a non zero invalid
age when fetched from the server. Reported when new content is served to the
feed from the server. This provides a measure of how stale feed content is
from the client side.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ContentLifetime.StaleAge" units="ms"
expires_after="2025-05-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The stale age lifetime of content fetched from the server. Reported
when new content is served to the feed from the server. This provides a
measure of how stale feed content is from the client side.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ContentLifetime.StaleAgeIsPresent"
enum="Boolean" expires_after="2025-05-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: If the content lifetime of a feed response has a non zero stale age
when fetched from the server. Reported when new content is served to the
feed from the server. This provides a measure of how stale feed content is
from the client side.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Controls.Actions"
enum="FeedControlsActions" expires_after="never">
<!-- expires-never: tracked as an important feed metric. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/feed/OWNERS</owner>
<summary>Actions related to the feed controls.</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.DisplayStatusOnOpen"
enum="ContentSuggestionsDisplayStatus" expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The display status of the content suggestions when users open NTPs.
Whether content suggestions are disabled by policy (e.g. enterprise or
supervised users), enabled but collapsed, or enabled and expanded when a new
NTP is created.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.DocumentViewSendCount100"
units="documents" expires_after="2023-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of docids sent when loading the Feed from the network. Reported when
the Feed is loaded from the network, when docview sending is allowed. This
histogram has a maximum count of 100.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.DocumentViewSendCount1000"
units="documents" expires_after="2023-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of docids sent when loading the Feed from the network. Reported when
the Feed is loaded from the network, when docview sending is allowed. This
histogram has a maximum count of 1000, see
ContentSuggestions.Feed.DocumentViewSendCount100 for a more accurate
representation of lower counts.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.DroppedDocumentViewCount"
units="documents" expires_after="2023-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If too many document IDs are stored within a short time period, they are
dropped rather than recorded in
ContentSuggestions.Feed.DocumentViewSendCount. This histogram is recorded
when document IDs must be dropped in this way, and reports the number of IDs
dropped.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.FeedSignInUI" enum="FeedSignInUI"
expires_after="2024-02-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when a signed out user triggered a sign-in related UI from feed
personalization control. iOS only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.FeedSyncPromo" enum="FeedSyncPromo"
expires_after="2023-10-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when a user interacts with a Sync Promo inside the Feed, e.g.:
accepting the bottom sync promo, or closing the top Sync promos. iOS only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ImageFetchStatus"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-01-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Status of image fetches for the feed. Recorded for each image
fetch. Fetches happen when loading the feed or scrolling the feed. Fetched
images are cached, so subsequent loads may not fetch again. Feed v2 only.
</summary>
</histogram>
<histogram base="true" name="ContentSuggestions.Feed.LoadStepLatency"
units="ms" expires_after="2024-07-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Latencies for individual steps taken to load the feed. This is reported at
most once per Chrome execution, and only reported for a Feed load operation
that ends with the Feed showing up on the UI. All steps added together tally
to the total time taken.
Feed v2 only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.LoadStreamStatus.LoadMore"
enum="FeedLoadStreamStatus" expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Status of loading additional Feed content onto the bottom of the stream.
Feed v2 only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ManualRefreshInterval" units="ms"
expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The interval between current pull-to-refresh time and last time when the
feed is refreshed (background refresh or pull-to-refresh), up to 1 day. This
is reported when the pull-to-refresh occurs.
</summary>
</histogram>
<histogram
name="ContentSuggestions.Feed.Network.CompressedResponseSizeKB{NetworkRequestType}"
units="KB" expires_after="2024-07-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The wire size (potentially compressed) of a {NetworkRequestType}
network response received by the Feed's networking host. Recorded when a
successful response is received.
</summary>
<token key="NetworkRequestType" variants="FeedNetworkRequestType">
<variant name="" summary="Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.Duration{NetworkEvent}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The amount of time a {NetworkEvent} network event took.</summary>
<token key="NetworkEvent" variants="FeedNetworkRequestType">
<variant name="" summary="Feed component"/>
<variant name=".ActionUploadFailure" summary="ActionUploadFailure"/>
<variant name=".ActionUploadSuccess" summary="ActionUploadSuccess"/>
<variant name=".ArticlesFetchFailure" summary="ArticlesFetchFailure"/>
<variant name=".ArticlesFetchSuccess" summary="ArticlesFetchSuccess"/>
<variant name=".MoreArticlesFetchFailure"
summary="MoreArticlesFetchFailure"/>
<variant name=".MoreArticlesFetchSuccess"
summary="MoreArticlesFetchSuccess"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.FeedQueryRequestSize"
units="bytes" expires_after="2023-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: the approximate size in bytes of the FeedQuery GET request.
Recorded when a FeedQuery is sent.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.RequestSizeKB.Compressed"
units="KB" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: the size in kb of gzip-compressed requests sent by the Feed's
networking host. Recorded when a request is sent.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.RequestStatusCode"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-01-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The integer status code of network requests made by the feed
library's networking host. This code includes both protocol(1xx-5xx) and
non-protocol(-xxx) errors. Recorded when a request completes.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.ResponseSizeKB" units="KB"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: the uncompressed size in KB of responses received by the Feed's
networking host. Recorded when a successful response is received.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.ResponseStatus{Type}"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The HTTP response status for a network request made by the Feed component.
</summary>
<token key="Type" variants="FeedNetworkRequestType"/>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.TokenFetchStatus"
enum="GoogleServiceAuthError" expires_after="2024-01-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: failure reason when attempting to fetch an OAuth token for the
feed. Recorded when a token fetch completes.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.NoticeCardFulfilled" enum="Boolean"
expires_after="2023-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports whether the notice card for feed action reporting has been
fulfilled. Recorded when reading the response content of the feed query that
is successful (includes both load stream and load more queries).
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.NoticeCardFulfilled2" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports whether the notice card for feed action reporting has been
fulfilled. Recorded when reading the response content of the load stream
query that is successful.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.RefreshTrigger"
enum="FeedRefreshTrigger" expires_after="2025-05-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks triggers that ask the Discover engine to refresh the feed. However, a
network call may or may not occur based on configuration thresholds.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ResourceFetchStatus"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Status of resource fetches for the feed. Recorded for each resource
fetch. Fetches happen when the specific resource is needed to enhance the
feed content while the feed is being displayed.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.SendFeedback"
enum="FeedSendFeedbackType" expires_after="2024-01-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Number of each type of feedback sent about the feed.</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.SignInFromFeedAction.SignInSuccessful"
enum="Boolean" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: If the user triggers a sign in action from somewhere in the Feed we
track the status of the sign in as a boolean (successful=true, unsuccessful=
false). This provides a measure of how many users are signing in via the
Feed and features like Back of Card sign in promo vs other sign in avenues.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.TimeSpentInFeed" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
How long a user used the Feed in one day (local time midnight to midnight).
Reported at most once per day. Usage reported is typically from the previous
day, but could be from several days ago if the user is not active. Time is
calculated starting with the first Feed interaction, until the Feed surface
is closed, or the user is idle (no scrolling or other actions) for 30
seconds.
</summary>
</histogram>
<histogram
name="ContentSuggestions.Feed.UnsignedUserPersonalization.CountValuesDuringStoreInitialization"
units="count" expires_after="2023-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records count of entries in the pref store after the store is initialized
(which happens during the feed service intiialization). The metric is
recorded after the store is cleaned up and conpacted (as part of store
initialization).
</summary>
</histogram>
<histogram
name="ContentSuggestions.Feed.UnsignedUserPersonalization.LinkClicked"
units="count" expires_after="2023-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded everytime when the user clicks a feed link article and an entry is
recorded to the user actions collector. The entry may not be recorded in
certain cases (not a complete list): the URL of the clicked link was not
valid, the MIDs was missing etc.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UploadActionsBatchStatus"
enum="FeedUploadActionsBatchStatus" expires_after="2024-07-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Result of attempting to upload a batch of one or more actions.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UploadActionsStatus"
enum="FeedUploadActionsStatus" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Result of an UploadActionsTask run in which zero or more batches of user
actions are uploaded. See ContentSuggestions.Feed.UploadActionsBatchStatus
for the status of a particular batch upload.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UploadVisibilityLog" enum="Boolean"
expires_after="2023-07-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports whether the visibility log was uploaded successfully.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UploadVisibilityLog.{LogType}"
enum="Boolean" expires_after="2024-09-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports whether the {LogType} log was uploaded successfully.
</summary>
<token key="LogType">
<variant name="Click" summary="click"/>
<variant name="View" summary="view"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.UserActions" enum="FeedUserActionType"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts of Feed user actions. e.g. (Open a Card, Hide the Feed, etc.).
Recorded when the user takes an explicit action related to the Feed.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UserActions.Commands"
enum="FeedUserCommandType" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded whenever an Elements commands has taken place which wasn't handled
explicitly by ContentSuggestions.Feed.UserActions. e.g. A new command to
added server side to "Report Content".(iOS only).
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UserJourney.GetMore.FailureDuration"
units="ms" expires_after="2023-09-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time between the UI requesting additional stream content and failure by
either a 15 second timeout or a surface closure.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UserJourney.GetMore.SuccessDuration"
units="ms" expires_after="2024-02-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time between the UI requesting additional stream content and the content
being provided within 15 seconds. Providing content entails showing either a
cached or newly fetched Feed card.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UserJourney.{Surface}.Failure"
enum="Boolean" expires_after="2024-01-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reported when a user taps on a {Surface} card and the page is not loaded
successfully within 20 seconds.
</summary>
<token key="Surface">
<variant name="OpenCard" summary="For-You Feed"/>
<variant name="OpenCard.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.UserJourney.{Surface}.SuccessDuration"
units="ms" expires_after="2024-01-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between a user tapping on a {Surface} card and the page finishes
loading successfully. Only reported when loading takes less than 20 seconds.
</summary>
<token key="Surface">
<variant name="OpenCard" summary="For-You Feed"/>
<variant name="OpenCard.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram
name="ContentSuggestions.Feed.UserJourney.{Surface}.{Status}Duration"
units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between a {Surface} opening and either providing user content, or
failing to provide content. Providing content entails showing either a
cached or newly fetched Feed card within 15 seconds. Success is reported
upon view of the card. Failure is reported when either the surface is closed
or a timeout of 15 seconds expires.
</summary>
<token key="Surface">
<variant name="OpenFeed" summary="For-You Feed"/>
<variant name="OpenFeed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="OpenFeed.WebFeed" summary="Web Feed"/>
</token>
<token key="Status">
<variant name="Failure" summary="Failure"/>
<variant name="Success" summary="Success"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.UserSettingsOnStart"
enum="FeedUserSettingsOnStart" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The state of some account settings that affect Feed users. Reported once at
startup (to a single bucket), for all users. Note that this histogram uses
data cached from the last time the Feed was fetched. Android only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ViewedCardCountAtManualRefresh"
units="count" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the number of cards viewed at the time of pull-to-refresh. This is
reported when the pull-to-refresh occurs. This is computed as the number of
cards that are viewed (2/3rds of card is in the viewport) since last time
when the feed is refreshed (background refresh or pull-to-refresh).
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ViewedCardPercentageAtManualRefresh"
units="%" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the percentage of cards viewed at the time of pull-to-refresh. This
is reported when the pull-to-refresh occurs. This is computed as the
percentage of cards that are viewed (2/3rds of card is in the viewport)
since last time when the feed is refreshed (background refresh or
pull-to-refresh).
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.VisibilityLoggingEnabled"
enum="Boolean" expires_after="2023-07-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports whether visibility logging is enabled when logging is
attempted.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.VisitDuration" units="ms"
expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Time spent reading the page linked by an opened suggestion card.
This is a lower-bound time. Does not include time after Chrome is closed and
re-opened. Does not include time after the visited tab no longer has focus,
or after the tab is navigated. For the 'open in new tab' action, time starts
when the user switches to the new tab. If the user returns by tapping the
suggestion again, it will be recorded as another entry in this histogram.
Feed v2 only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.FollowByIdResult"
enum="WebFeedSubscriptionRequestStatus" expires_after="2024-07-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The result of following a WebFeed when the Web Feed ID is known.
Reported when the follow is attempted, once per request. Triggered by a
user's request to follow a Web Feed.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.FollowCount.{Event}"
units="follows" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The number of web feeds the user is following. Reported {Event}.
</summary>
<token key="Event">
<variant name="AfterFollow" summary="after a successful follow action"/>
<variant name="AfterUnfollow" summary="after a successful unfollow action"/>
<variant name="ContentShown"
summary="after the Following feed is shown, and some content is
displayed"/>
<variant name="NoContentShown"
summary="after the Following Feed is shown, and no content is
available for display"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.FollowUriResult"
enum="WebFeedSubscriptionRequestStatus" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The result of following a WebFeed when the Web Feed ID is NOT
known. Reported when the follow is attempted, once per request. Triggered by
a user's request to follow a Web Feed.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.GetRssLinksRendererTime"
units="microseconds" expires_after="2023-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The time spent by the renderer main thread to collect and send back
to the browser process a list of RSS/Atom links embedded in a web page. This
is recorded every time the renderer fulfills a request for these links,
currently only requested by the web feeds system. This histogram is only
logged in platforms with high-resolution clocks.
</summary>
</histogram>
<histogram
name="ContentSuggestions.Feed.WebFeed.LoadedCardCount.{ContentOrder}"
units="index" expires_after="2023-07-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports the total number of {ContentOrder} cards in the Following
feed when data is successfully loaded to be presented to the user. Reported
after an initial load. Only one of 'Grouped' or 'ReverseChron' is reported
for each stream load.
</summary>
<token key="ContentOrder">
<variant name="Grouped" summary="Grouped"/>
<variant name="ReverseChron" summary="ReverseChron"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.NewFollow.ChangeReason"
enum="WebFeedChangeReason" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Change reason for the follow.
Reported upon successfully following a web feed. Reported as 'true' if the
web feed was recommended, even if the user did not see or interact with
recommendation UI.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.NewFollow.IsRecommended"
enum="Boolean" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the followed web feed was recommended by the server.
Reported upon successfully following a web feed.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.PageInformationRequested"
enum="WebFeedPageInformationRequestReason" expires_after="2023-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why the web feeds system is requesting information from
the renderer process about a loaded web page.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.PostFollowDialog.Show"
enum="WebFeedPostFollowDialogPresentation" expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports which presentation of the post-follow dialog is shown.
Reported when the post-follow dialog is displayed, after the user follows a
Web Feed.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.QueryResult"
enum="WebFeedQueryRequestStatus" expires_after="2024-07-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports the result of a user's request to query a Web Feed.
Reported after the query attempt has completed, once per request.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.RefreshContentOrder"
enum="FeedContentOrder" expires_after="2023-07-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The content order requested when refreshing content on the Following feed.
Reported before sending a refresh request to the server. Not reported for
NextPage requests.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.RefreshRecommendedFeeds"
enum="WebFeedRefreshStatus" expires_after="2023-07-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports the status of attempting to refresh the list of recommended
Web Feeds from the server. The refresh occurrs periodically when the
information is stale.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.RefreshSubscribedFeeds.{Kind}"
enum="WebFeedRefreshStatus" expires_after="2023-07-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports the status of attempting to refresh the list of subscribed
Web Feeds from the server. {Kind}
</summary>
<token key="Kind">
<variant name="Force"
summary="Refresh is forced to fetch the most up to date list."/>
<variant name="Stale"
summary="Refresh is triggered because stored subscriptions are stale."/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.SortType" enum="FeedSortType"
expires_after="2025-06-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The sort type that was selected from the feed's sort menu.</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.SortTypeWhenEngaged"
enum="FeedSortType" expires_after="2025-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The currently selected sort type when the user has engaged with the
Following feed.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.WebFeed.UnfollowResult"
enum="WebFeedSubscriptionRequestStatus" expires_after="2025-05-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The result of attempting to unfollow a WebFeed. Reported when the
unfollow is attempted, once per request. Triggered by a user's request to
unfollow a Web Feed.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.{PlayType}Video.InitializationError"
enum="FeedVideoInitializationError" expires_after="2023-07-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: records errors occurred during the video player initialization. The
embedded video player needs to be initialized before it can be used to play
a video in {PlayType} mode. In autoplay muted mode, the initialization may
kick off even before the video view is scrolled to become visible. In normal
unmuted mode, this happens when the user taps the video to launch the video
in fullscreen playing mode.
</summary>
<token key="PlayType">
<variant name="AutoplayMuted"/>
<variant name="NormalUnmuted"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.{PlayType}Video.PlayError"
enum="FeedVideoPlayError" expires_after="2023-01-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: records errors occurred during the video playing, in {PlayType}
mode. Upon the successful initialization of the embedded player, the video
starts to play and any error occurs since then is reported here.
</summary>
<token key="PlayType">
<variant name="AutoplayMuted"/>
<variant name="NormalUnmuted"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.{PlayType}Video.PlayEvent"
enum="FeedVideoPlayEvent" expires_after="2023-01-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: records events triggered during the video playing, in {PlayType}
mode.
</summary>
<token key="PlayType">
<variant name="AutoplayMuted"/>
<variant name="NormalUnmuted"/>
</token>
</histogram>
<histogram name="ContentSuggestions.SingleWebFeed.EntryPoint"
enum="SingleWebFeedEntryPoint" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: reports the entry point used to launch the single web feed view.
</summary>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.Activity"
enum="FeedActivityBucket" expires_after="2025-05-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks user activity buckets with {FeedType}. Each bucket composed of the
user's activity level. Logs the for the first time 1 day after the metric is
active (only on first time use), then logs an activity bucket after at least
24hrs from the last log have elapsed. When the "Engaged" metric is
triggered we log one more day of activity during the past 28 days.
</summary>
<token key="FeedType">
<variant name="Feed" summary="the For-You feed"/>
<variant name="Feed.AllFeeds" summary="All Feeds combined"/>
<variant name="Feed.WebFeed" summary="the Following/Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.Activity.ByProvider"
enum="FeedActivityBucket" expires_after="2024-11-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks user activity buckets for the filter. Reported every time a metric is
reported through the MetricsProvider to allow filtering. The histogram used
for analysis is ContentSuggestions.{FeedType}.Activity, whilst this one will
only be used for the filter. Any changes to
ContentSuggestions.{FeedType}.Activity will also change how this metric is
reported.
</summary>
<token key="FeedType">
<variant name="Feed" summary="the For-You feed"/>
<variant name="Feed.AllFeeds" summary="All Feeds combined"/>
<variant name="Feed.WebFeed" summary="the Following/Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.CardIndexOnSwitch" units="index"
expires_after="2023-04-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
iOS: Before switching to a new feed type, logs the index of the last visible
card.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.EngagementType"
enum="FeedEngagementType" expires_after="never">
<!-- expires-never: key feature metric. We will need the Engagement
type as long as we have a feed, and it will be removed with the
feed code if the feed is ever removed. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks user behavior with {FeedType}. Each bucket is one of two types of
metric. Per-visit metrics sample once per "visit", which is a
cluster of user activities separated by less than 5 minutes of inactivity.
Per-visit metrics record a sample at the moment that the visit's criteria
are first met. Per-interaction metrics are not clustered and report samples
immediately. In the UI, Bucket Proportion and Total Count are not meaningful
as these metrics are not independent. All buckets of this metric can be
moved by changes in the Discover service as well as by client changes.
go/discover-oncall describes how to get in touch with Discover oncall
engineers.
</summary>
<token key="FeedType">
<variant name="Feed" summary="the For-You Feed"/>
<variant name="Feed.AllFeeds" summary="all Feeds combined"/>
<variant name="Feed.SingleWebFeed" summary="the single web feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="the Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.FollowCount.Engaged2"
units="follows" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The number of web feeds the user is following. Reported at most
once per feed visit, when the user engages (FeedEngagementType.Engaged,
non-Simple) with {FeedType}.
</summary>
<token key="FeedType">
<variant name="Feed" summary="the For-You feed"/>
<variant name="Feed.AllFeeds"
summary="either the For-You or Following/Web feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="the Following/Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.InfoCard.{Action}"
enum="FeedInfoCardType" expires_after="2025-05-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports when {Action} has occurred for an info card. The type of the info
card was reported. Available in iOS as of M126.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
<token key="Action">
<variant name="Clicked" summary="clicked"/>
<variant name="Dismissed" summary="dismissed explicitly"/>
<variant name="Reset" summary="state reset"/>
<variant name="Started" summary="started to track view"/>
<variant name="Viewed" summary="viewed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.LoadedCardCount" units="index"
expires_after="2024-09-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports the total number of cards when the {FeedType} data is
successfully loaded to be presented to the user. Reported after an initial
load. Not reported after a NextPage request. When loading data from local
storage, previously fetched NextPage cards are counted though.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram
name="ContentSuggestions.{FeedType}.LoadMoreTrigger.OffsetFromEndOfStream"
units="cards" expires_after="2024-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of cards not yet scrolled into visibility at the moment the Feed
decides to load more content.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="Supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.LoadMoreTrigger.TotalCards"
units="cards" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of cards in the feed stream at the moment the Feed decides
to load more content.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="Supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram
name="ContentSuggestions.{FeedType}.LoadStreamStatus.BackgroundRefresh"
enum="FeedLoadStreamStatus" expires_after="2024-07-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Status of loading new {FeedType} data in the background. Reported
any time Chrome attempts to fetch fresh Feed content in the background. This
is either due to a background fetch schedule, or when fetching the Web-Feed
while the For-You feed is active.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.LoadStreamStatus.Initial"
enum="FeedLoadStreamStatus" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Status of loading the initial {FeedType} stream, which happens when
the {FeedType} surface is shown. Feed v2 only.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram
name="ContentSuggestions.{FeedType}.LoadStreamStatus.InitialFromStore"
enum="FeedLoadStreamStatus" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The status of loading the Feed from the local store. Reported when
loading the Feed for display. Recorded at the same time as
ContentSuggestions.{FeedType}.LoadStreamStatus.Initial to differentiate
between store errors and network fetch results.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.LoadStreamStatus.ManualRefresh"
enum="FeedLoadStreamStatus" expires_after="2024-01-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: status of pulling-to-refresh the {FeedType} stream per the user
request. Reported when the refresh completes.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.Opened" units="index"
expires_after="never">
<!-- expires-never: key feature metric. We will need the Opened
metric as long as we have a feed, and it will be removed with the
feed code if the feed is ever removed. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The position of the {FeedType} card on it's surface, that is
clicked through to the host website of the content. We track the position
the card had in the list when it was first seen by the user. This tracked
position can be different from the position observed by the user, e.g. when
the user dismissed some suggestions from the list or requested more that got
inserted in the middle of the feed.
</summary>
<token key="FeedType">
<variant name="Feed.SingleWebFeed" summary="the single Single Web feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="the Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.ReachedEndOfFeed" units="index"
expires_after="2024-05-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports the number of cards in the {FeedType}. Reported when the
last card of the {FeedType} is shown. Note that this is reported even if the
Feed is attempting to load additional content (LoadMore), as long as the
last card is 2/3rds shown before additional content loads. In this case,
this histogram can be reported multiple times without leaving the Feed
surface.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.SharedStateSizeKB" units="KB"
expires_after="2024-05-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports the total size in KB of the shared state for the
{FeedType}. Reported once when loading {FeedType} content for display, and
once each time additional pages of content are added.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.Shown" units="index"
expires_after="never">
<!-- expires-never: key feature metric. We will need the Shown
metric as long as we have a feed, and it will be removed with
the feed code if the feed is ever removed. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The position of a {FeedType} card that was shown on it's surface. A
card is considered shown when at least 2/3 of its height is visible on the
screen. For each card, at most one impression is recorded per instance. We
track the position the card had in the list when it was first seen by the
user. This tracked position can be different from the position observed by
the user, e.g. when the user dismissed some suggestions from the list or
requested more that got inserted in the middle of the feed.
</summary>
<token key="FeedType">
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="Supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
<histogram name="ContentSuggestions.{FeedType}.StreamContentSizeKB" units="KB"
expires_after="2024-07-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Reports the total size in KB of all of the {FeedType} content (not
including shared state, or dynamically fetched media). Reported once when
loading {FeedType} content for display, and once each time additional pages
of content are added.
</summary>
<token key="FeedType">
<variant name="Feed" summary="For-You Feed"/>
<variant name="Feed.SingleWebFeed" summary="Single Web Feed"/>
<variant name="Feed.SupervisedFeed" summary="the supervised Feed"/>
<variant name="Feed.WebFeed" summary="Web Feed"/>
</token>
</histogram>
</histograms>
</histogram-configuration>