chromium/tools/metrics/histograms/metadata/search/histograms.xml

<!--
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 Search 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="AuxiliarySearchDataType">
  <variant name="" summary="All Requests"/>
  <variant name=".Bookmarks" summary="Bookmarks"/>
  <variant name=".Tabs" summary="Tabs"/>
</variants>

<histogram name="Search.Ambient.Query" enum="AmbientSearchEntryPoint"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records ambient search queries enumerated by the entry point used to make
    the query. This is recorded every time the user makes a query regardless of
    whether the query succeeds.
  </summary>
</histogram>

<histogram name="Search.AuxiliarySearch.DeleteTime{AuxiliarySearchDataType}"
    units="ms" expires_after="M130">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Time taken for deleting contents from the auxiliary search.</summary>
  <token key="AuxiliarySearchDataType" variants="AuxiliarySearchDataType"/>
</histogram>

<histogram
    name="Search.AuxiliarySearch.DeletionFailure{AuxiliarySearchDataType}"
    units="count" expires_after="M130">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the count of failed deletions from the auxiliary search.
  </summary>
  <token key="AuxiliarySearchDataType" variants="AuxiliarySearchDataType"/>
</histogram>

<histogram
    name="Search.AuxiliarySearch.DeletionRequestStatus{AuxiliarySearchDataType}"
    enum="AuxiliarySearchRequestStatus" expires_after="M130">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the status of the request of the Auxiliary Search content deletion.
    Recorded twice for every deletion request: once to capture the request sent,
    and once to capture the consumer's response.
  </summary>
  <token key="AuxiliarySearchDataType" variants="AuxiliarySearchDataType"/>
</histogram>

<histogram name="Search.AuxiliarySearch.DonateTime" units="ms"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Time taken for donating contents to the auxiliary search.</summary>
</histogram>

<histogram
    name="Search.AuxiliarySearch.DonationFailure{AuxiliarySearchDataType}"
    units="count" expires_after="M130">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the count of failed donations from the auxiliary search.
  </summary>
  <token key="AuxiliarySearchDataType" variants="AuxiliarySearchDataType"/>
</histogram>

<histogram name="Search.AuxiliarySearch.DonationRequestStatus"
    enum="AuxiliarySearchRequestStatus" expires_after="2024-10-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the status of the request of the Auxiliary Search content donation.
    Recorded twice for every donation request: once to capture the request sent,
    and once to capture the consumer's response.
  </summary>
</histogram>

<histogram name="Search.AuxiliarySearch.DonationSent{AuxiliarySearchDataType}"
    units="count" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the count of contents which are sent to the auxiliary search.
  </summary>
  <token key="AuxiliarySearchDataType" variants="AuxiliarySearchDataType"/>
</histogram>

<histogram name="Search.AuxiliarySearch.QueryTime{AuxiliarySearchDataType}"
    units="ms" expires_after="2024-10-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Time taken for query contents for the auxiliary search.</summary>
  <token key="AuxiliarySearchDataType" variants="AuxiliarySearchDataType"/>
</histogram>

<histogram name="Search.ChoiceDebug.ScrollStateWithMoreButtonClick"
    enum="SearchEngineChoiceScrollState" expires_after="2025-02-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records an enum that represents the search engine choice page scroll state
    when the &quot;More&quot; button is clicked. In some cases, the page doesn't
    scroll to the exact bottom when the button is clicked. Recorded only when
    the &quot;More&quot; button is clicked.
  </summary>
</histogram>

<histogram name="Search.ChoiceDebug.UnexpectedSearchEngineId" units="id"
    expires_after="2025-02-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the id of an unexpected search engine that causes the choice screen
    to be suppressed. We would normally only expect the choice screen to include
    options that are in a country-specific list, or at least part of the set of
    currently available prepopulated search engines.

    This histogram might be recorded at each navigation, in a sparse histogram,
    until the choice screen ends up being shown.
  </summary>
</histogram>

<histogram name="Search.ChoiceReprompt{Category}"
    enum="SearchEngineChoiceReprompt" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the outcome of the search engine reprompt check, when the profile is
    opened, based on remote experiment parameters. Reported for {Category}.
  </summary>
  <token key="Category">
    <variant name="" summary="all keys"/>
    <variant name=".SpecificCountry"
        summary="specific country keys (wildcard excluded)"/>
    <variant name=".Wildcard" summary="the wildcard country key"/>
  </token>
</histogram>

<histogram name="Search.ChoiceScreenDefaultSearchEngineType"
    enum="OmniboxSearchEngineType" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the type of the default search engine that was chosen by the user.
    Recorded the first time a user in the EEA region changes their default
    search engine in the search engine choice screen or in the settings page
    with the SearchEngineChoiceTrigger feature enabled. The enum is shared with
    Search.DefaultSearchProviderType2.
  </summary>
</histogram>

<histogram name="Search.ChoiceScreenEvents"
    enum="SearchEngineChoiceScreenEvents" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records that the search engine choice screen was displayed, and whether this
    happened as part of the FRE. Also records when the user clicks/taps the 'Set
    as Default' button and if this selection was in the FRE or not. On Desktop,
    if the choice screen is shown simultaneously in multiple browsers that all
    have the same profile, the display event is only recorded once.
  </summary>
</histogram>

<histogram name="Search.ChoiceScreenNavigationConditions"
    enum="SearchEngineChoiceScreenConditions" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the conditon state at page navigation for whether to display the
    search engine choice screen. This is recorded every time the eligibility
    state is being checked, which might be as often as every page navigation.
    The enum is shared with ChoiceScreenProfileInitConditions, and individual
    enum members might appear in only one histogram.
  </summary>
</histogram>

<histogram name="Search.ChoiceScreenProfileInitConditions"
    enum="SearchEngineChoiceScreenConditions" expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the conditon state at profile initialization for displaying the
    search engine choice screen that the profile is in. The enum is shared with
    ChoiceScreenNavigationConditions, and individual enum members might appear
    in only one histogram.
  </summary>
</histogram>

<histogram name="Search.ChoiceScreenSelectedEngineIndex" units="index"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the index among the options listed on the choice screen for the
    search engine that was chosen by the user. Gets recorded when a search
    engine choice is made on the choice screen.
  </summary>
</histogram>

<histogram name="Search.ChoiceScreenShowedEngineAt.CountryMismatch"
    enum="BooleanSkipped" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether Search.ChoiceScreenShowedEngineAt.Index{Index} had to be
    skipped due to a mismatch between the Variations/UMA country and the
    profile/choice country. If there is a mismatch, `true` (&quot;Skipped&quot;)
    is recorded, `false` (&quot;Not Skipped&quot;) otherwise.
  </summary>
</histogram>

<histogram name="Search.ChoiceScreenShowedEngineAt.Index{Index}"
    enum="OmniboxSearchEngineType" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    With its other per-index variants, records information about the positions
    of all search engines on the choice screen. Specifically, this one records
    that a given search engine was shown at index {Index} of the choice screen.

    This set of histograms is recorded at the moment a choice is made, which is
    expected to happen at most once per profile. To avoid adversely impacting
    pseudonymity property of UMA logs, this will not be logged if the country
    associated with the current metrics session does not match the country used
    to determine the list of options to show on the screen.

    This metric is inteded to be consumed via raw histogram analysis instead of
    via the UMA dashboard. See
    http://go/chrome-choice-screen-positions-histogram-design for more info.
  </summary>
  <token key="Index">
    <variant name="0" summary="0"/>
    <variant name="1" summary="1"/>
    <variant name="2" summary="2"/>
    <variant name="3" summary="3"/>
    <variant name="4" summary="4"/>
    <variant name="5" summary="5"/>
    <variant name="6" summary="6"/>
    <variant name="7" summary="7"/>
  </token>
</histogram>

<histogram name="Search.ChoiceWipeReason" enum="SearchEngineChoiceWipeReason"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the reason for wiping the search engine choice preferences, forcing
    a reprompt at the next startup. Recorded every time the wiping occurs.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.All.ResultsSeen" enum="Boolean"
    expires_after="never">
<!-- expires-never: dashboard metric (internal: go/cs-metrics-dashboard) -->

<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the user opened the panel when it was shown. Recorded for
    all gestures for all users when the UX is hidden. Implemented for Android.

    The user action Search.ContextualSearch.All.ResultsSeen.true is also logged
    in the case that true is logged to this histogram.

    This histogram is of special interest to the chrome-analysis-team@. Do not
    change its semantics or retire it without talking to them first.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.All.Searches"
    enum="BooleanBottomSearchKind" expires_after="2025-01-05">
<!-- TODO(donnd): change expires_after to "never" once established and
       approved. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records that a Search Result page was shown in a bottom sheet for either
    Contextual Search or Related Searches. Each entry corresponds to exactly one
    search of the indicated kind. Related Searches are recorded when the SERP is
    shown to the user, and Contextual Searches are recorded when the panel is
    closed. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.CardTag"
    enum="ContextualSearchCardTag" expires_after="never">
<!-- expires-never: tracks key server results returned to the user. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of card returned in the Search Term Resolution Response from the
    server when a search is resolved in response to a Tap gesture that uses
    surrounding text to determine the best search. This characterises what we'll
    show in the Bar. Recorded when the panel is closed. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.CardTagSeen"
    enum="ContextualSearchCardTag" expires_after="never">
<!-- expires-never: tracks key server results returned to the user. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of card shown in the Bar when the panel has been opened. Recorded
    when the panel is closed. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Counted.Event"
    enum="ContextualSearchCountedEvent" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records that a Search was done and whether the search was unintelligent or
    intelligent, and whether it was likely counted by Rasta. Recorded for all
    users when the panel is closed after being opened. Implemented for Android.
    (Expired in 2023-04-16. Revived in 2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Counted.Searches" enum="Boolean"
    expires_after="2025-01-05">
<!-- TODO(donnd): change expires_after to "never" once established and
         approved. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records that a Contextual Search was initiated by the user, and whether that
    search should be counted as a real user-viewed search or not.

    The true bucket is designed to match what Rasta counts in its queries(event)
    metric as a real user search.

    The false bucket includes all the other cases where the Contextual Search
    was started but not counted by Rasta because the user has not been able to
    view the Search Result Page. Usually this is because the user did not expand
    the panel beyond the peeking state, but occasionally because it did not
    render. Recorded when the panel is closed for all users. Implemented for
    Android. (Expired in 2023-04-16. Revived in 2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.NetError" enum="NetErrorCodes"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Network status codes recorded for each Contextual Search request after the
    url loader calls the completion callback. Recorded value is the absolute
    value of the received net::Error value.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Model.Status"
    enum="RankerModelStatus" expires_after="M77">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Tracks the outcome of attempts to download a Ranker Model.</summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Timer.DownloadModel" units="ms"
    expires_after="M81">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time taken for the Ranker Model Loader to download its model from the
    configured URL, in ms.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Timer.ParseModel" units="ms"
    expires_after="M77">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time taken for the Ranker Model Loader to parse its model, in ms.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Timer.ReadModel" units="ms"
    expires_after="M85">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time taken for the Ranker Model Loader to read its model from local storage
    (cache), in ms.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Ranker.Timer.WriteModel" units="ms"
    expires_after="M85">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time taken for the Ranker Model Loader to write its model to local storage,
    in ms.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.ResolveReceived" enum="Boolean"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records that a resolve response was received from the server, and whether
    that was due to a Tap gesture or not (vs longpress). Recorded when the user
    triggers the feature and the server responds. Implemented for Android.
    (Expired in M94. Revived in M120.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.ResolveRequested"
    enum="ContextualSearchGestureIsTap" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records that a resolve request was sent to the server, and whether that was
    due to a Tap or not (vs longpress). Recorded when the user triggers the
    feature. Implemented for Android. (Expired in 2023-02-12. Revived in
    2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.SelectionExpanded"
    enum="ContextualSearchGestureIsTap" expires_after="2024-07-21">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records that a resolve request from the server caused the selection to be
    expanded, and whether that original selection was due to a Tap or not (vs
    longpress). Recorded when the qualifying server response is received.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.SuppressedViewTooSmall" enum="Boolean"
    expires_after="M106">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether triggering the Touch To Search feature was suppressed due to
    the base page view being too small. This may happen in landscape mode, on
    very small phones, when a Partial Height Custom Tab is being displayed, or
    when muliwindow is in use with a small window. The intent is to capture in
    the log how many searches we lose when the gating Feature is enabled.
    Recorded when a gesture that would normally trigger TTS suppresses the
    bottom sheet from showing. Android only.
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Tap.ResultsSeen" enum="Boolean"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the user opened the panel when it was shown in response to a
    tap gesture, for all users. Recorded when the UX is hidden. Implemented for
    Android. (Expired in M77. Revived in M120.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.Tap.SyncEnabled.ResultsSeen"
    enum="Boolean" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the user opened the panel when it was shown for sync-enabled
    users only (this is an approximation for the population that logs to UKM).
    Recorded for all gestures for users with sync enabled when the UX is hidden.
    Implemented for Android. (Expired in M76. Revived in M120.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.UnifiedConsent.PreviouslyUndecided"
    enum="Boolean" expires_after="2024-10-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the previous state of the user's enabled preference to indicate
    whether they were decided or undecided about fully enabling this feature.
    Recorded during the rollout of Unified Consent when the Contextual Search
    preference is changed. Implemented for Android. (Expired after 2019-01-30.
    Revived in M120.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.UnifiedConsent.ThrottledRequests"
    enum="Boolean" expires_after="2024-10-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether throttling for Unified Consent was done for all requests.
    Recorded when the user taps on text and the system would like the server to
    suggest what to search for using page context, regardless of feature-enabled
    state. Recorded multiple times for each request. Supports the rollout of
    Unified Consent for Contextual Search. Implemented for Android. (Expired
    after 2019-01-30. Revived in M120.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearch.UnifiedConsent.ThrottleEligible"
    enum="Boolean" expires_after="2024-10-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether this user had a request throttled or not when needed.
    Recorded when the user taps on text and the system would like the server to
    suggest what to search for using page context, and throttling is in effect
    for this user. Supports the rollout of Unified Consent for Contextual
    Search. Implemented for Android. (Expired after 2019-01-30. Revived in
    M120.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearchContextualCardsIntegration.DataShown"
    enum="Boolean" expires_after="never">
<!-- expires-never: key metric on usefulness of Touch to Search. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether Contextual Cards data was shown in the Contextual Search Bar.
    Contextual Cards data is included with the search term resolution response.
    Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchIPHShown" enum="Boolean"
    expires_after="M77">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times the Contextual Search panel is opened, categorized by
    whether In-Product Help for Contextual Search was shown before. Logged when
    the panel is opened. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPanelOpenedIPHShown" enum="Boolean"
    expires_after="M77">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times the Contextual Search panel is opened, categorized by
    whether In-Product Help for opening the panel was shown before. Logged when
    the panel is opened. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPreferenceState"
    enum="ContextualSearchPreferenceState" expires_after="never">
<!-- expires-never: dashboard metric (internal: go/cs-metrics-dashboard) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The state of the Contextual Search Preference. Can be logged multiple times.
    Used to determine the population size (user view). Logged whenever the
    Chrome application is paused. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPreferenceStateChange"
    enum="ContextualSearchPreferenceState" expires_after="never">
<!-- expires-never: dashboard metric (internal: go/cs-metrics-dashboard) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The Contextual Search preference state after a modification from the
    preference menu. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPrivacyOptInPreferenceStateChange"
    enum="BooleanOptedIn" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The Contextual Search privacy opt-in preference state after a modification
    from the preference menu. Recorded when the opt-in switch in Settings page
    is toggled. Implemented for Android. (Expired in 2023-10-15. Revived in
    2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPromoCardChoice" enum="BooleanOptedIn"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The user's choice in the Contextual Search promo card. Recorded when the 'No
    thanks' or 'Turn on' button on the Contextual Search Promo Card is chosen.
    Implemented for Android. (Expired in 2023-05-07. Revived in 2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearchPromoOpenCount2" units="opens"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total count of times that the revised promo has been shown. Once the
    user decides, this counter is no longer updated. Logged for each show of the
    promo card. Implemented for Android. (Expired in 2023-06-26. Revived in
    2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearchQuickActions.Category"
    enum="ContextualSearchQuickActionCategory" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The category of quick actions shown in the Contextual Search bar. Recorded
    when the quick action is set. Implemented for Android. (Expired in
    2023-10-22. Revived in 2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearchQuickActions.Clicked"
    enum="BooleanClicked" expires_after="never">
<!-- expires-never: indicates completion of a user journey. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether a quick action in the Contextual Search bar was clicked, which
    activates the associated intent. Recorded when Contextual Search is
    dismissed due to a click on a QuickAction in the Bar. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchQuickActions.IntentResolution"
    enum="ContextualSearchQuickActionIntentResolution"
    expires_after="2024-10-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether a Contextual Search quick action intent resolved to zero, one, or
    many apps. Recorded when the quick action intent URI is resolved.
    Implemented for Android. (Expired in M81. Revived in M120.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearchQuickActions.ResultsSeen"
    enum="ContextualSearchResultsSeen" expires_after="2024-10-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether search results were seen as part of a Contextual Search when a quick
    action was shown. Recorded when Contextual Search is dismissed. Implemented
    for Android. (Expired in M81. Revived in M120.)
  </summary>
</histogram>

<histogram name="Search.ContextualSearchResultsSeen"
    enum="ContextualSearchResultsSeen" expires_after="never">
<!-- expires-never: dashboard metric (internal: go/cs-metrics-dashboard) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether search results were seen as part of a contextual search. Implemented
    for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchResultsSeenByGesture"
    enum="ContextualSearchSeenByGesture" expires_after="never">
<!-- expires-never: dashboard metric (internal: go/cs-metrics-dashboard) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether search results were seen, broken down by original triggering
    gesture. Only includes users that have enabled. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTapIPHShown" enum="Boolean"
    expires_after="M77">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times the Contextual Search is triggered by tapping,
    categorized by whether In-Product Help for tapping was shown before. Logged
    when Contextual Search is triggered by tapping. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.ContextualSearchTranslateCondition" enum="Boolean"
    expires_after="M77">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    For each contextual search that is triggered by tap, records whether the
    translation conditions are met. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.DefaultSearchProviderType2{Population}"
    enum="OmniboxSearchEngineType" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of the default search engine that is loaded when a regular, guest,
    or ChromeOS sign-in screen profile is opened or after a profile reset. (A
    profile reset can only happen to a regular profile.) Not logged when an
    Incognito profile is opened because that inherits the settings from its
    parent profile. As such, it's not necessary to log the Incognito profile's
    settings.

    The fact that this is logged when the ChromeOS sign-on screen profile is
    opened means this is recorded when the ChromeOS sign-in screen is initially
    shown. The value recorded is the default value for the ChromeOS install; the
    default search engine used in this profile cannot be changed. Also note that
    people cannot search / browse the web using this profile. As such, the
    default search engine setting for this profile does not have any practical
    meaning.

    {Population}
  </summary>
  <token key="Population">
    <variant name="" summary="Reported for all users."/>
    <variant name=".SetByEnterprisePolicy"
        summary="Reported for users with DSP set by Enterprise policy."/>
  </token>
</histogram>

<histogram name="Search.Image.Camera.Open" enum="CameraOpenEntryPoint"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records all intents fired to open the Lens viewfinder enumerated by entry
    point, regardless of whether the intent was successful.
  </summary>
</histogram>

<histogram name="Search.Image.Camera.Result" enum="CameraResult"
    expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records camera results such as successful image capture, user exited, etc.
    This is recorded every time the user opens the Lens viewfinder camera.
  </summary>
</histogram>

<histogram name="Search.iOS.SelectDefaultSearchEngine"
    enum="OmniboxSearchEngineType" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    When an iOS user changes the default search engine in chrome Settings,
    records the search engine's type.
  </summary>
</histogram>

<histogram name="Search.Lens.ViewportDimensionsSent.Success" enum="Boolean"
    expires_after="2024-08-04">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    When the user performs a Lens search on Desktop, records if the viewport
    dimensions of the side panel were included in the request. A false value
    indicates either the viewport width or height were not included in the
    request. A true value is recorded if and only if both the `vpw` and `vph`
    url params were added to the request with non-zero values.
  </summary>
</histogram>

<histogram name="Search.PartnershipSearchPerformed" enum="SearchEntryPoint"
    expires_after="M85">
  <owner>[email protected]</owner>
  <summary>
    The entry point used for all searches performed under partnership after the
    Android search engine promo dialog was shown. This is a dialog prompting the
    user to pick a default search engine. This metric is collected for every
    search query performed.
  </summary>
</histogram>

<histogram base="true" name="Search.QueryTiles.Bitmap.Available"
    enum="BooleanAvailable" expires_after="2022-10-31">
<!-- Name completed by histogram_suffixes name="TileUiSurface" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Indicates whether or not a bitmap could be shown for a tile.
  </summary>
</histogram>

<histogram base="true" name="Search.QueryTiles.Bitmap.FetchDuration" units="ms"
    expires_after="2022-04-01">
<!-- Name completed by histogram_suffixes name="TileUiSurface" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time taken to fetch a bitmap for a tile when a bitmap could be
    found. It includes the time starting from the UI layer requesting the
    backend till the backend returns the associated bitmap.
  </summary>
</histogram>

<histogram name="Search.QueryTiles.Fetcher.FirstFlowDuration" units="hours"
    expires_after="2023-01-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records duration from time when first task scheduled to time the fetch task
    completed.
  </summary>
</histogram>

<histogram name="Search.QueryTiles.Fetcher.Start" units="hours"
    expires_after="2023-03-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Records the hour (0-23) when the TileFetcher task starts.</summary>
</histogram>

<histogram name="Search.QueryTiles.FetcherHttpResponseCode"
    enum="HttpResponseCode" expires_after="2023-09-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Records the HTTP response code get from TileFetcher.</summary>
</histogram>

<histogram name="Search.QueryTiles.FetcherNetErrorCode" enum="NetErrorCodes"
    expires_after="2023-08-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Records the net error code get from TileFetcher.</summary>
</histogram>

<histogram name="Search.QueryTiles.Group.PruneReason"
    enum="QueryTilesGroupPruneReason" expires_after="2022-12-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the reasons caused the tile group pruned in TileManager.
  </summary>
</histogram>

<histogram name="Search.QueryTiles.GroupStatus" enum="QueryTilesGroupStatus"
    expires_after="2023-02-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the TileManager status after initialized and loaded completed.
  </summary>
</histogram>

<histogram name="Search.QueryTiles.ImagePreloadingEvent"
    enum="QueryTilesImageLoadingEvent" expires_after="2022-04-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the image preloading events when the query tile images are fetched
    from the background task.
  </summary>
</histogram>

<histogram base="true" name="Search.QueryTiles.NoBitmap.FetchDuration"
    units="ms" expires_after="2022-04-01">
<!-- Name completed by histogram_suffixes name="TileUiSurface" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time taken by the bitmap request for a tile when no bitmap could
    be found. It includes the time starting from the UI layer requesting the
    backend till the backend returns the associated bitmap.
  </summary>
</histogram>

<histogram name="Search.QueryTiles.RequestStatus"
    enum="QueryTilesRequestStatus" expires_after="2023-04-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the TileFetcher status after request send to server and response
    received.
  </summary>
</histogram>

<histogram base="true" name="Search.QueryTiles.Tile.Clicked" units="index"
    expires_after="2023-08-31">
<!-- Name completed by histogram_suffixes name="TileUiSurface" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the index of the tile that was clicked. The index refers to the
    position of the tile in the carousel.
  </summary>
</histogram>

<histogram base="true" name="Search.QueryTiles.Tile.Clicked.IsTopLevel"
    enum="BooleanIsTopLevel" expires_after="2022-04-01">
<!-- Name completed by histogram_suffixes name="TileUiSurface" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Indicates whether the tile clicked was a top level tile.</summary>
</histogram>

<histogram base="true" name="Search.QueryTiles.TileCount" units="tiles"
    expires_after="2023-08-31">
<!-- Name completed by histogram_suffixes name="TileUiSurface" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Indicates the number of tiles displayed in the UI after the backend was
    loaded.
  </summary>
</histogram>

<histogram name="Search.QueryTiles.TrendingTileEvent" enum="TrendingTileEvent"
    expires_after="2024-09-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records events related to trending tiles, including display, removal and
    click, after the events occur.
  </summary>
</histogram>

<histogram name="Search.RegionSearch.Lens.RegionAspectRatio"
    enum="LensRegionSearchAspectRatio" expires_after="2024-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records an enum representing the aspect ratio of the region selected after
    using the Lens Region Search feature.
  </summary>
</histogram>

<histogram name="Search.RegionSearch.Lens.RegionViewportProportion" units="pct"
    expires_after="2024-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records a percentage to represent the proportion of the selected region to
    the screen after selecting a region with the Lens Region Search feature.
  </summary>
</histogram>

<histogram name="Search.RegionSearch.Lens.Result"
    enum="LensRegionSearchCaptureResult" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records an enum representing the result of the capture of the region for
    Lens Region Search feature.
  </summary>
</histogram>

<histogram name="Search.RelatedSearches.AllUserPermissions"
    enum="ContextualSearchPermissions" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Enumerates all users by the permissions needed in order to use the Related
    Searches feature. This tells us the potential user pool if we were to remove
    one of the current requirements (which are sending page content and sending
    the URL to Google). Logged whenever the Chrome application is paused. NOTE:
    Use the Count unique clients option to count users since multiple events are
    logged for each user. Implemented for Android. (Expired in 2022-12-11.
    Revived in 2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.RelatedSearches.CarouselLastVisibleItemPosition"
    units="position" expires_after="2025-05-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The last visible position index for a chip in the carousel. the index is 0
    based. Ex. There are 10 chips, and only 2 chips are shown completely, and 1
    chip is shown half, in this case, 2 will be reported. Recorded every time
    the carousel is shown, or the carousel content is updated. Implemented for
    Android.
  </summary>
</histogram>

<histogram name="Search.RelatedSearches.CarouselScrollAndClick"
    enum="ScrollAndClickStatus" expires_after="2025-05-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether and how the user interacted with the carousel. Recorded when
    the presentation UI is dismissed while the carousel is shown. Implemented
    for Android.
  </summary>
</histogram>

<histogram name="Search.RelatedSearches.CarouselScrolled" enum="Boolean"
    expires_after="2025-05-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the user scrolled the carousel when it was shown, this can
    help us to find users who discover carousel scroll gesture. Recorded when
    the presentation UI is dismissed while the carousel is shown. Implemented
    for Android.
  </summary>
</histogram>

<histogram name="Search.RelatedSearches.CTR" enum="BooleanClicked"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the click through rate for Related Searches. This is the rate that
    at least one suggestion was chosen by the user when any were shown. Records
    false whenever Related Searches suggestions were shown to the user but none
    were selected, and true whenever the user has clicked on any suggestion to
    view the suggested query. Only records one entry per botton-sheet session.
    Recorded when the presentation UI is dismissed. Implemented for Android.
    (Expired in 2022-08-07. Revived in 2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.RelatedSearches.NumberOfSuggestionsClicked2"
    units="selected" expires_after="2025-02-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of suggestions that were chosen by the user in a bottom-sheet
    session when the user chose any Related Searches. Written when the
    suggestions UI is closed. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.RelatedSearches.QualifiedUsers" enum="Boolean"
    expires_after="2025-05-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records true for every user that is qualified for the Related Searches
    experiment regardless of whether that feature is enabled or not. Never logs
    false. Used to validate that population sizes are relatively equal (since
    only a subset is actually qualified). Logged whenever a user triggers
    Contextual Search in way that could activate Related Searches (i.e. sends
    context). NOTE: Use the Count unique clients option to count users since
    multiple events are logged for each user. Implemented for Android.
  </summary>
</histogram>

<histogram name="Search.RelatedSearches.SelectedCarouselIndex" units="position"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The display position index for a chip in the carousel when it was selected
    by the user. Written when a Related Searches suggestion chip is clicked.
    Implemented for Android. (Expired in 2023-10-22. Revived in 2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.RelatedSearches.SelectedSuggestionIndex"
    units="position" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The display position index for a suggestion when it was selected by the
    user. The suggestion at location 0 is always the default selection search,
    which may not be a possible position in some implementations. All indecies
    from 1 on are true Related Searches suggestions. Written when a Related
    Searches suggestion in the UI is selected. Implemented for Android. (Expired
    in 2023-02-12. Revived in 2024-11-03.)
  </summary>
</histogram>

<histogram name="Search.SearchEngineCountryDelegate.Connection{Result}Time"
    units="ms" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time taken to connect to the country code providing Play Service. Only
    includes {Result} connection attempts.

    Recorded every time Chrome tries to obtain the country code for the search
    choice screen, which happens on every startup.

    Android only.
  </summary>
  <token key="Result">
    <variant name="Failure" summary="failed"/>
    <variant name="Success" summary="successful"/>
  </token>
</histogram>

<histogram name="Search.SearchEngineCountryDelegate.Fetch{Result}Time"
    units="ms" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time taken to fetch the country code from the country code providing Play
    Service. Only includes {Result} fetch attempts.

    Recorded every time Chrome tries to obtain the country code for the search
    choice screen after successfully connecting to the Play Service, which
    happens on every startup.

    Android only.
  </summary>
  <token key="Result">
    <variant name="Failure" summary="failed"/>
    <variant name="Success" summary="successful"/>
  </token>
</histogram>

<histogram name="Search.SearchEngineCountryDelegate.ServiceBindStatus"
    enum="BooleanStartedCompleted" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Boolean status marking the beginning of connection request to country code
    provider service from Play and also the completion of the request.

    Recorded every time Chrome tries to obtain the country code for the search
    choice screen, which happens on every startup.

    Android only.
  </summary>
</histogram>

<histogram name="Search.SearchEngineDuplicateCounts" units="keyword duplicates"
    expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of keyword duplicates resulting from conflict resolution. This is
    sampled once per browser session immediately after the client syncs Search
    Engines.
  </summary>
</histogram>

<histogram name="Search.SearchEngineListedInPromoDialog"
    enum="OmniboxSearchEngineType" expires_after="2025-02-16">
<!-- Name completed by histogram_suffixes name="SearchEnginePromoOrdering" and name="SearchEnginePromoDeviceType" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The search engines listed in the options for search engine promo. This is an
    Android specific dialog prompting the user to pick a default search engine.
    The dialog was shown on a device that had Chrome before it was first
    introduced.

    Warning: this histogram was expired from M81 to M124; data may be missing.
  </summary>
</histogram>

<histogram name="Search.SearchEngineSelectionInPromoDialog"
    enum="OmniboxSearchEngineType" expires_after="2025-02-16">
<!-- Name completed by histogram_suffixes name="SearchEnginePromoDeviceType" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The search engine selected by the user from the search engine promo. This is
    an Android specific dialog prompting the user to pick a default search
    engine. The dialog was shown on a device that had Chrome before it was first
    introduced.

    Warning: this histogram was expired from M81 to M124; data may be missing.
  </summary>
</histogram>

<histogram name="Search.SearchProviderOverrideStatus"
    enum="SearchProviderOverrideStatus" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of the preference where the search engine overrides provided by
    the Chrome distribution channel are loaded. It is recorded every time we put
    together a list of built-in search engines providers, which can happen
    multiple times per run, when initially loading search engines for the
    omnibox, showing a search engine choice screen or settings screen, etc.
  </summary>
</histogram>

<histogram name="Search.SearchWidgetUseAndDeviceInfo"
    enum="SearchWidgetUseInfo" expires_after="2020-02-16">
  <owner>[email protected]</owner>
  <summary>
    The current state for search widget use and whether the device is a
    partnership device related with the Android Search Widget. Collected on
    every cold start.
  </summary>
</histogram>

<histogram
    name="Search.SiteSearchPolicyConflict.HasConflictWith.{ConflictType}"
    enum="Boolean" expires_after="2025-01-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether at least one search engine created by SiteSearchSettings
    policy and {ConflictType} has the same keyword as an existing search engine
    the user manually edited, counted once per user regardless of the number of
    conflicting search engines the policy creates.

    Search engines created by the policy can be marked as &quot;featured&quot;,
    and they override search engines with the same keyword that were manually
    edited by the user. Search engine created by the policy and not marked as
    featured do not override search engines manually edited by the user.

    Use &quot;Search.SiteSearchPolicyConflict.NumberOfSearchEngines&quot; for
    the number of search engines created by policy that conflict with search
    engines manually edited by the user.

    Collected when the SiteSearchSettings policy is enabled or updated and after
    that on every browser start.
  </summary>
  <token key="ConflictType">
    <variant name="Featured" summary="marked as 'featured'"/>
    <variant name="NonFeatured" summary="not marked as 'featured'"/>
  </token>
</histogram>

<histogram name="Search.SiteSearchPolicyConflict.NumberOfSearchEngines"
    enum="SiteSearchPolicyConflictType" expires_after="2025-01-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of search engines created by SiteSearchSettings policy
    with the same keyword as an existing search engine the user manually edited.

    Search engines created by the policy can be marked as &quot;featured&quot;,
    and they override search engines with the same keyword that were manually
    edited by the user. Search engine created by the policy and not marked as
    featured do not override search engines manually edited by the user.

    Each count corresponds to one search engine, so the total count per user
    equals the number of search engines created by the policy.

    Use &quot;Search.SiteSearchPolicyConflict.HasConflictWith.*&quot; for the
    number of users that have at least one conflict with featured or
    non-featured search engines created by policy.

    Collected when the SiteSearchSettings policy is enabled or updated and after
    that on every browser start.
  </summary>
</histogram>

<histogram name="SearchAnswer.AnswerVisibleTime" units="ms"
    expires_after="2021-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Time between showing and hiding the answer card.</summary>
</histogram>

<histogram name="SearchAnswer.LoadingTime" units="ms" expires_after="M85">
  <owner>[email protected]</owner>
  <summary>
    Time between sending an answer server request and the end of loading of the
    answer card. Failed requests and requests not returning an answer are not
    counted.
  </summary>
</histogram>

<histogram name="SearchAnswer.NavigationTime" units="ms" expires_after="M85">
  <owner>[email protected]</owner>
  <summary>
    Time between sending an answer server request and successful finish of
    navigation. Failed requests and requests not returning an answer are not
    counted.
  </summary>
</histogram>

<histogram name="SearchAnswer.RequestResult" enum="SearchAnswerRequestResult"
    expires_after="M85">
  <owner>[email protected]</owner>
  <summary>Result of a answer server request.</summary>
</histogram>

<histogram name="SearchAnswer.ResizeAfterLoadTime" units="ms"
    expires_after="M85">
  <owner>[email protected]</owner>
  <summary>
    Time between successfully loading an answer card request and updating its
    preferred size. There might be no or more than one size update per card
    load. Size updates that happen before the card finishes loading are ignored
    since they are not visible.
  </summary>
</histogram>

</histograms>

</histogram-configuration>