blob: 4a9a67a361af1128343540d1eacb7872a112906d [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors. All rights reserved.
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 send CLs to chromium-metrics-reviews@google.com rather than to specific
individuals. These CLs will be automatically reassigned to a reviewer within
about 5 minutes. This approach helps the metrics team to load-balance incoming
reviews. Googlers can read more about this at go/gwsq-gerrit.
-->
<histogram-configuration>
<histograms>
<histogram name="ContentCapture.CaptureContentDelayTime" units="ms"
expires_after="2021-02-01">
<owner>michaelbai@chromium.org</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.
</summary>
<details>
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.
</details>
</histogram>
<histogram name="ContentCapture.CaptureContentTime" units="microseconds"
expires_after="M87">
<obsolete>
Replaced by ContentCapture.CaptureContentTime2 since M87, the new histogram
records the grouping time additionally.
</obsolete>
<owner>michaelbai@chromium.org</owner>
<owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner>
<summary>
The time taken to capture the on-screen content.
Note that this metrics is only recorded on clients on which a
high-resolution clock is available.
</summary>
</histogram>
<histogram name="ContentCapture.CaptureContentTime2" units="microseconds"
expires_after="2021-06-20">
<owner>michaelbai@chromium.org</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.GetBoundingBox" units="microseconds"
expires_after="2021-04-04">
<owner>michaelbai@chromium.org</owner>
<owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner>
<summary>
The time taken to get the bounding box of the batch of captured content.
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="2021-06-06">
<owner>michaelbai@chromium.org</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.SentContentCount" units="count"
expires_after="2021-04-04">
<obsolete>
Replaced by ContentCapture.SentContentCount2 in M89, which uses standard
buckets for 10k counts rather than exact linear buckets.
</obsolete>
<owner>michaelbai@chromium.org</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.SentContentCount2" units="count"
expires_after="2021-06-20">
<owner>michaelbai@chromium.org</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="2021-06-06">
<owner>michaelbai@chromium.org</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="2021-06-13">
<owner>michaelbai@chromium.org</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="ContentIndex.ContentAdded" enum="ContentIndexCategory"
expires_after="M89">
<owner>rayankans@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>Records the category of the content when registered.</summary>
</histogram>
<histogram base="true" name="ContentIndex.ContentDeleteEvent"
enum="ServiceWorkerStatusCode" expires_after="M89">
<!-- Name completed by histogram_suffixes name="ContentIndexDispatchPhase" -->
<owner>rayankans@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>
Records the status of dispatching the `contentdelete` event in every phase
of dispatch.
</summary>
</histogram>
<histogram name="ContentIndex.ContentOpened" enum="ContentIndexCategory"
expires_after="M89">
<owner>rayankans@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>Records the category of the entry clicked on by a user.</summary>
</histogram>
<histogram base="true" name="ContentIndex.Database"
enum="ServiceWorkerStatusCode" expires_after="M89">
<!-- Name completed by histogram_suffixes name="ContentIndexDatabaseTask" -->
<owner>rayankans@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>Records the result of the database operation.</summary>
</histogram>
<histogram name="ContentIndex.NumEntriesAvailable" units="entries"
expires_after="M89">
<owner>rayankans@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>
Records how many entries were found when loaded by the browser.
</summary>
</histogram>
<histogram name="ContentIndex.RegistrationBlocked" enum="ContentIndexCategory"
expires_after="M89">
<owner>rayankans@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>
Records the category of an attempted registration that was blocked.
</summary>
</histogram>
<histogram name="ContentSettings.DefaultAutoplaySetting" enum="ContentSetting"
expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default autoplay setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultCookiesSetting" enum="ContentSetting"
expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default cookies setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultIdleDetectionSetting"
enum="ContentSetting" expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default permission setting for idle detection at profile open.
</summary>
</histogram>
<histogram name="ContentSettings.DefaultImagesSetting" enum="ContentSetting"
expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default image setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultJavaScriptSetting"
enum="ContentSetting" expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default JavaScript setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultLocationSetting" enum="ContentSetting"
expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default location setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultMediaStreamCameraSetting"
enum="ContentSetting" expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default camera setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultMediaStreamMicSetting"
enum="ContentSetting" expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default microphone setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultMIDISysExSetting" enum="ContentSetting"
expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default MIDI permission setting on sysex (system exclusive) messages at
profile open.
</summary>
</histogram>
<histogram name="ContentSettings.DefaultNotificationsSetting"
enum="ContentSetting" expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default notification setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultPluginsSetting" enum="ContentSetting"
expires_after="2021-06-19">
<obsolete>
Removed as of 09/2020. Flash / Plugins is deprecated.
</obsolete>
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default plugins setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultPopupsSetting" enum="ContentSetting"
expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default popups setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultSoundSetting" enum="ContentSetting"
expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default sound setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultSubresourceFilterSetting"
enum="ContentSetting" expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default subresource filter setting at profile open</summary>
</histogram>
<histogram name="ContentSettings.DefaultUsbGuardSetting" enum="ContentSetting"
expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default permission setting for WebUSB at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultWebBluetoothGuardSetting"
enum="ContentSetting" expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default permission setting for Web Bluetooth at profile open.
</summary>
</histogram>
<histogram name="ContentSettings.EphemeralFlashPermission"
enum="ContentSettings.EphemeralFlashPermission" expires_after="M89">
<obsolete>
Flash / Plugins is deprecated since M87 and removed in M89.
</obsolete>
<owner>engedy@chromium.org</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records the number of times Flash permission is granted for a host.
</summary>
</histogram>
<histogram name="ContentSettings.Exceptions" units="units"
expires_after="never">
<!-- expires-never: tracked as an important privacy metric. -->
<owner>lshang@chromium.org</owner>
<owner>dullweber@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<summary>
The number of user defined content setting exceptions at browser start.
Suffixed with the name of content setting types.
</summary>
</histogram>
<histogram name="ContentSettings.ExceptionScheme" enum="ContentSettingScheme"
expires_after="M94">
<owner>alexmos@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<summary>
Records the schemes of content setting exceptions at browser start. Each
exception provides one sample.
</summary>
</histogram>
<histogram name="ContentSettings.ExceptionSchemeFile.HasPath"
enum="BooleanHasPath" expires_after="M94">
<owner>alexmos@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<summary>
Records how often a content settings exception for the file: scheme has a
non-empty path. Recorded once per exception at browser start.
</summary>
</histogram>
<histogram name="ContentSettings.ExceptionSchemeFile.Type.WithoutPath"
enum="ContentType" expires_after="M94">
<owner>alexmos@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<summary>
Count of how often a specific content type has a content settings exception
defined for a file: scheme with no path (i.e., wildcard path). Recorded once
per exception at browser start.
Note: The values of this metric collected for Chrome 49 (early 2016) are
innacurate and should not be trusted. crbug.com/589255.
</summary>
</histogram>
<histogram name="ContentSettings.ExceptionSchemeFile.Type.WithPath"
enum="ContentType" expires_after="M94">
<owner>alexmos@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<summary>
Count of how often a specific content type has a content settings exception
defined for a file: scheme with a valid, non-empty path. Recorded once per
exception at browser start.
Note: The values of this metric collected for Chrome 49 (early 2016) are
innacurate and should not be trusted. crbug.com/589255.
</summary>
</histogram>
<histogram name="ContentSettings.ExtensionEmbeddedSettingSet"
enum="ContentType" expires_after="M90">
<owner>raymes@chromium.org</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="M90">
<owner>raymes@chromium.org</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.ImagePressed" enum="ContentSettingImageType"
expires_after="2021-02-01">
<owner>calamity@chromium.org</owner>
<owner>src/chrome/browser/ui/page_action/OWNERS</owner>
<summary>
Counts which content setting buttons are pressed by the user.
</summary>
</histogram>
<histogram name="ContentSettings.NumberOfExceptions" units="units"
expires_after="M90">
<owner>battre@chromium.org</owner>
<summary>
The number of user defined hostname patterns for content settings at browser
start.
</summary>
</histogram>
<histogram name="ContentSettings.PermissionRequested" enum="PermissionType"
expires_after="M90">
<owner>dominickn@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</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.
</summary>
</histogram>
<histogram name="ContentSettings.PermissionRequested_InsecureOrigin"
enum="PermissionType" expires_after="M90">
<owner>dominickn@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
<summary>
Number of times a given permission was requested by an insecure origin 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, use
ContentSettings.PermissionsActions*.
See https://crbug.com/638076 for more details.
</summary>
</histogram>
<histogram name="ContentSettings.PermissionRequested_SecureOrigin"
enum="PermissionType" expires_after="M90">
<owner>dominickn@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
<summary>
Number of times a given permission was requested by a secure origin 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, use
ContentSettings.PermissionsActions*.
See https://crbug.com/638076 for more details.
</summary>
</histogram>
<histogram name="ContentSettings.Plugins" enum="ContentSettingPluginsAction"
expires_after="M77">
<owner>tommycli@chromium.org</owner>
<summary>
Tracks whether the plugin content blocked puzzle piece was shown in the
Omnibox, and how the user interacted with it.
</summary>
</histogram>
<histogram name="ContentSettings.Popups" enum="ContentSettingPopupAction"
expires_after="2020-08-16">
<owner>charleszhao@chromium.org</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="2020-08-30">
<owner>csharrison@chromium.org</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.ClickThroughPosition"
enum="ListItemPosition" expires_after="2020-08-30">
<owner>csharrison@chromium.org</owner>
<summary>
The blocked popup list contains a list of links that Chrome has blocked via
the popup blocker. If a user clicks on the link, the popup is opened. This
metric records the position of the popup in the list that a user clicks
through. Currently it should only be recorded on desktop platforms, because
the mobile UI for popup blocking does not currently allow for specific
exceptions.
</summary>
</histogram>
<histogram name="ContentSettings.Popups.EngagementTime" units="ms"
expires_after="M77">
<owner>csharrison@chromium.org</owner>
<summary>
Measures the total duration a popup WebContents is visible / foregrounded,
until it is closed.
</summary>
</histogram>
<histogram name="ContentSettings.Popups.EngagementTime.GestureClose" units="ms"
expires_after="M77">
<owner>csharrison@chromium.org</owner>
<summary>
Measures the total duration a popup WebContents is visible / foregrounded,
until it is closed via some user gesture (like Ctrl-W).
</summary>
</histogram>
<histogram name="ContentSettings.Popups.FirstDocumentEngagementTime2"
units="ms" expires_after="M77">
<owner>csharrison@chromium.org</owner>
<summary>
Measures the total duration a popup WebContents is visible / foregrounded
for the duration of its first document load. This time is measured from the
first navigation commit to the time either the WebContents is destroyed or
when a new navigation commits.
</summary>
</histogram>
<histogram name="ContentSettings.Popups.StrongBlocker.NumBlocked"
units="popups" expires_after="M77">
<owner>csharrison@chromium.org</owner>
<summary>
The total number of popups blocked by the strong blocker for a given page
load. Logged when the page is navigated away from, or the tab is closed.
Only logged for pages which are triggered for strong popup blocking, aka
abusive experience enforcement.
</summary>
</histogram>
<histogram name="ContentSettings.Popups.StrongBlockerActions"
enum="StrongPopupBlockerAction" expires_after="2021-06-13">
<owner>csharrison@chromium.org</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="ContentSuggestions.Feed.ActivityLoggingEnabled" enum="Boolean"
expires_after="2021-06-01">
<owner>rogerm@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Whether the feed was fetched with activity logging enabled. This is logged
on every feed fetch.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.AppLifecycle.Events"
enum="AppLifecycleEvent" expires_after="2021-06-20">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Android: count of app lifecycle events reported to the Feed library.
Recorded as these events occur; e.g. when Chrome is foregrounded,
backgrounded, or the user clears cached browsing data.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.AppLifecycle.NumRowsForDeletion"
units="count" expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Android: number of rows present in a history deletion that's causing all
current suggestions to be deleted. Each row should correspond to a url that
is beign removed from history. Is not emitted when entire history is being
cleared.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.AvailableOffline.Opened"
enum="Boolean" expires_after="2021-06-06">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
When an article on the NTP is opened by the user, records whether it is
available offline. When an article is available offline, it will have an
offline badge in the UI on the NTP. Opening the article occurs when the user
navigates from the NTP to the article itself, which can be either in the
current tab or a new tab. Note that this is independent of whether the
article is actually opened as an offline page or not.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.AvailableOffline.Shown" enum="Boolean"
expires_after="2021-04-04">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Records whether an article on the NTP that is shown to the user was also
available offline. When an article is available offline, it will have an
offline badge in the UI. The initial offline status of the article is used
for this metric. While it is possible for the offline status to change while
the article is on screen, this metric will not be re-emitted. The criteria
for an article to be &quot;shown&quot; is for 2/3 of its vertical height to
be on screen for any amount of time.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.CommitMutationCount"
units="operations" expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Tracks the number of operations in a Feed mutation when database receive the
commit request.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Controls.Actions"
enum="FeedControlsActions" expires_after="never">
<!-- expires-never: tracked as an important feed metric. -->
<owner>vincb@google.com</owner>
<owner>feed@chromium.org</owner>
<owner>src/chrome/browser/android/feed/OWNERS</owner>
<summary>Actions related to the feed controls.</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Count" units="entries"
expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Tracks the number of entries for the Feed storage after database perform get
all keys request.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.DisplayStatusOnOpen"
enum="ContentSuggestionsDisplayStatus" expires_after="2021-06-20">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</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.EngagementType"
enum="FeedEngagementType" expires_after="2021-03-01">
<owner>petewil@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Tracks each instance of user engagement with the feed, by scrolling or
interacting with a card (opening the URL or using the menu). Note that each
event type reports samples very differently and buckets can't be directly
compared. We're mostly interested in unique user counts. We track every
interaction, and we report ENGAGED and ENGAGED_SIMPLE once per user visit. A
user visit is when the user scrolls or interacts with the NTP more than 5
minutes after the previous visit. The SCROLLED engagement type represents a
single instance of the user scrolling, and is reported once per Feed visit.
The INTERACTED engagement type represents one instance of using the menu or
opening a feed article into its own tab. SCROLLED and INTERACTED are
reported for every occurrence, thus we could end up with more scrolled and
interected than ENGAGED or ENGAGED_SIMPLE samples.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.FetchPendingSpinner.Shown"
enum="FeedSpinnerType" expires_after="2021-07-04">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Android: The type of spinner when the content suggestion shows the loading
spinner. This is tracked based on if the spinner is shown, not how long it
is visible.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.FetchPendingSpinner.VisibleDuration"
units="ms" expires_after="2021-06-20">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Android: How long the content suggestion loading spinner is shown when a
loading spinner finishes showing. This is tracked based on when the spinner
is enabled in the UI, not how long it is actually visible on screen.
</summary>
</histogram>
<histogram
name="ContentSuggestions.Feed.FetchPendingSpinner.VisibleDurationWithoutCompleting"
units="ms" expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Android: How long the content suggestion loading spinner is shown when a
spinner is destroyed without completing. This is tracked based on when the
spinner is enabled in the UI, not how long it is actually visible on screen.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ImageFetchStatus"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-06-01">
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</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 name="ContentSuggestions.Feed.InterestHeader.NotInterestedInSource"
units="index" expires_after="2021-02-14">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The position of an interest header on the NTP that the user has indicated
they aren't interested in the story's source.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.InterestHeader.NotInterestedInTopic"
units="index" expires_after="2021-02-14">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The position of an interest header on the NTP that the user has indicated
they aren't interested in the story's topic.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.InternalError"
enum="FeedInternalError" expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>The Feed library encountered an error at any time.</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.LoadKeysTime" units="ms"
expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The time it takes for the Feed to load all keys from the storage.
</summary>
</histogram>
<histogram base="true" name="ContentSuggestions.Feed.LoadStepLatency"
units="ms" expires_after="2021-06-01">
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</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.BackgroundRefresh"
enum="FeedLoadStreamStatus" expires_after="2021-07-04">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Status of loading new feed data in the background. Feed v2 only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.LoadStreamStatus.Initial"
enum="FeedLoadStreamStatus" expires_after="2021-05-01">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Status of loading the initial Feed stream, which happens when a feed surface
is shown. Feed v2 only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.LoadStreamStatus.InitialFromStore"
enum="FeedLoadStreamStatus" expires_after="2021-07-11">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
This is the store-specific status for the initial load of the Feed stream.
This is provided along with ContentSuggestions.Feed.LoadStreamStatus.Initial
because store errors can be shadowed by fallback to network fetch. Feed v2
only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.LoadStreamStatus.LoadMore"
enum="FeedLoadStreamStatus" expires_after="2021-07-04">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Status of loading additional Feed content onto the bottom of the stream.
Feed v2 only.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.LoadTime" units="ms"
expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The time it takes for the Feed to load entries from the storage.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.Duration" units="ms"
expires_after="2021-07-04">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The amount of time fetching articles takes, regardless of success. This
includes the time it takes to get an auth token for signed in users.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.Duration.{NetworkEvent}"
units="ms" expires_after="M90">
<owner>sczs@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>The amount of time a {NetworkEvent} network event took.</summary>
<token key="NetworkEvent">
<variant name="ActionUploadFailure"/>
<variant name="ActionUploadSuccess"/>
<variant name="ArticlesFetchFailure"/>
<variant name="ArticlesFetchSuccess"/>
<variant name="MoreArticlesFetchFailure"/>
<variant name="MoreArticlesFetchSuccess"/>
</token>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.RequestSizeKB.Compressed"
units="KB" expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</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="2021-06-20">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</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="2021-07-04">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</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"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-07-04">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The HTTP response status for a network request made by the Feed component.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.TokenDuration" units="ms"
expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The amount of time it takes to get an access token for signed in users.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Network.TokenFetchStatus"
enum="GoogleServiceAuthError" expires_after="2021-07-04">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</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="2021-07-11">
<owner>vincb@google.com</owner>
<owner>feed@chromium.org</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="2021-06-16">
<owner>vincb@google.com</owner>
<owner>feed@chromium.org</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.Offline.GetStatusCount" units="count"
expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The number of urls that have offline status requested per call.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Offline.GetStatusDuration" units="ms"
expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The number of milliseconds to round trip offline status for a set of URLs
from Offline Pages component.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.OperationCommitTime" units="ms"
expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The time it takes for the Feed to commit operations from the storage.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.PagePopulatingTime" units="ms"
expires_after="2020-12-06">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The number of milliseconds it takes for Feed content to be visible in the
UI. If content is not immediately available, this is conceptually the amount
of time a loading spinner is shown to the user.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Piet.FrameRenderingErrorCode"
enum="PietErrorCode" expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Android: The integer error code when Piet wants to report events that
occurred during Frame rendering.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Scheduler.ContentAgeDifference"
units="ms" expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Difference in age of content between feed and host. Recorded when the Feed
asks the scheduler how to behave when a NTP is opened.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Scheduler.HasContent"
enum="FeedHostMismatch" expires_after="2020-12-06">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The match status between Feed and the host when the scheduler's
ShouldSessionRequestData method is called. This occurs whenever the NTP is
opened, and tries to track if the Feed and host state agrees or disagrees.
If the device already has content, new requests are not necessarily required
for a reasonable user experience.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Scheduler.OutstandingRequest"
enum="FeedHostMismatch" expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The match status between Feed and the host when the scheduler's
ShouldSessionRequestData method is called. This occurs whenever the NTP is
opened, and tries to track if the Feed and host state agrees or disagrees.
The type of request that could be outstanding is to fetch new or more news
articles, and when requests are outstanding new requests should not be
started.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Scheduler.RefreshTrigger"
enum="RefreshTrigger" expires_after="2021-05-23">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The scheduler watches for various triggers, which cause it to decide if a
refresh is currently warranted or not. This histogram is emitted when a
trigger causes a refresh.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Scheduler.RequestBehavior"
enum="RequestBehavior" expires_after="2020-12-06">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
When NTP is opened, the scheduler host tells the Feed library how to act, if
the existing content should be shown, immediately or with timeout, and if a
refresh request should be started.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Scheduler.ShouldRefreshResult"
enum="FeedSchedulerRefreshStatus" expires_after="2020-12-06">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
When the Feed scheduler receives a refresh request, the scheduler will
decide to refresh or not depending on the scheduler status. Recorded when
the Feed scheduler receives the request.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Scheduler.TimeSinceLastFetchOnClear"
units="ms" expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
When the previous last fetch attempt time is cleared, log the time since the
last fetch attempt. This typically occurs when suggestions are cleared. A
client that has never made a successful fetch (at least since it was last
cleared) will report the time since epoch.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.SendFeedback"
enum="FeedSendFeedbackType" expires_after="2021-02-01">
<owner>carlosk@chromium.org</owner>
<owner>petewil@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>Number of each type of feedback sent about the feed.</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ServerRequest.Reason"
enum="FeedRequestReason" expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The reason for a server request from the Feed's prespective, when the
request is started.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Task.DelayTime" units="ms"
expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
How long it took from enqueuing the task to when it was run.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.Task.TaskTime" units="ms"
expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
How long it took from the task starting to when it finished executing.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.TimeSpentInFeed" units="ms"
expires_after="2021-07-04">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</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.TokenCompleted.ContentCount2"
units="count" expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
How many top level features were in the continuation response, typically
clusters. Recorded when the fetch completes successfully.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.TokenCompleted.TokenCount"
units="count" expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
How many tokens were in the continuation response, typically ways to fetch
more articles. Recorded when the fetch completes successfully.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.TokenFailedToCompleted" units="count"
expires_after="2020-12-06">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
When a token fails to complete, how many failures this token has seen.
Record when the fetch fails.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UploadActionsBatchStatus"
enum="FeedUploadActionsBatchStatus" expires_after="2021-12-01">
<owner>iwells@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</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="2021-12-01">
<owner>iwells@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</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.UserActions" enum="FeedUserActionType"
expires_after="2021-07-04">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Counts of user actions within the feed surface (Feed v2 only). Recorded
whenever a user has taken an explicit action in the Feed. e.g. (Open a Card,
Hide the Feed, etc.)
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UserActions.Commands"
enum="FeedUserCommandType" expires_after="2021-09-01">
<owner>harringtond@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<owner>feed@chromium.org</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 &quot;Report Content&quot;.(iOS only).
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UserJourney.GetMore.FailureDuration"
units="ms" expires_after="2021-07-11">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</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="2021-07-11">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Time between the UI requesting additional stream content and the content
being provided within 15 seconds.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UserJourney.OpenCard.Failure"
enum="Boolean" expires_after="2021-07-04">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Reported when a user taps on a Feed card unless the page is not loaded
successfully within 20 seconds.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UserJourney.OpenCard.SuccessDuration"
units="ms" expires_after="2021-07-04">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The time between a user tapping on a Feed card and the page finishes loading
successfully. Only reported when loading takes less than 20 seconds.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UserJourney.OpenFeed.FailureDuration"
units="ms" expires_after="2021-07-11">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The time between a Feed surface opening and failing to provide the user
content. This is reported when either the surface is closed or a timeout of
15 seconds expires.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.UserJourney.OpenFeed.SuccessDuration"
units="ms" expires_after="2021-07-11">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
The time between a Feed surface opening and the user viewing the first
content. If this takes more than 15 seconds,
ContentSuggestions.Feed.UserJourney.OpenFeed.FailureDuration is reported
instead.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.VisitDuration" units="ms"
expires_after="2021-07-01">
<owner>harringtond@chromium.org</owner>
<owner>freedjm@chromium.org</owner>
<owner>feed@chromium.org</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.VisualElement.Clicked" units="index"
expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Android: The position of a clicked element in the stream not accounting for
header views. The top being 0. Position does not change after initial
layout. Specifically the position does not update if dismisses/removes are
performed. This is similar to NewTabPage.ContentSuggestions.Opened, but
records the specific elementType that was clicked.
</summary>
</histogram>
<histogram
name="ContentSuggestions.Feed.VisualElement.Clicked.TimeSinceElementFetched"
units="ms" expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Android: The time since the content was made available on the device. This
could be the time for when this content was retrieved from the server or the
time the data was pushed to the device. Recorded when the user clicks the
element.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.VisualElement.Viewed" units="index"
expires_after="2021-07-04">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Android: The position of a viewed element in the stream not accounting for
header views. The top being 0. Position does not change after initial
layout. Specifically the position does not update if dismisses/removes are
performed. This is similar to NewTabPage.ContentSuggestions.Shown, but
records the view after it has been on the screen for 500 milliseconds of
time instead of on predraw.
</summary>
</histogram>
<histogram
name="ContentSuggestions.Feed.VisualElement.Viewed.TimeSinceElementFetched"
units="ms" expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
Android: The time since the content was made available on the device. This
could be the time for when this content was retrieved from the server or the
time the data was pushed to the device. Recorded when the element has been
on the screen for 500 milliseconds.
</summary>
</histogram>
<histogram
name="ContentSuggestions.Feed.ZeroStateRefreshCompleted.ContentCount"
units="count" expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
How many top level features were in an initial article fetch, typically
clusters. Recorded when an article fetch completes and were previously in
zero state.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ZeroStateRefreshCompleted.TokenCount"
units="count" expires_after="M90">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>
How many tokens were in an initial article fetch, typically ways to fetch
more articles. Recorded when an article fetch completes and were previously
in zero state.
</summary>
</histogram>
<histogram name="ContentSuggestions.Feed.ZeroStateShown.Reason"
enum="FeedZeroStateShowReason" expires_after="2021-06-20">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
<summary>The reason the zero state (no articles) is shown to a user.</summary>
</histogram>
</histograms>
</histogram-configuration>