blob: a521fcb03ee8a47bb54ff38d2d68f5dc95c35a2b [file]
<!--
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 Optimization 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
chromium-metrics-reviews@google.com.
-->
<histogram-configuration>
<histograms>
<variants name="AIPageContentMode">
<variant name="ActionableElements"
summary="Only actionable elements are extracted."/>
<variant name="Default" summary="The default page content extraction."/>
</variants>
<variants name="AnnotationType">
<variant name="ContentVisibility" summary="Content Visibility"/>
<variant name="Deprecated PageEntities" summary="Deprecated - Page Entities"/>
<variant name="Unknown" summary="Unknown"/>
</variants>
<variants name="FrameType">
<variant name="MainFrame" summary="Outermost primary main frame"/>
<variant name="RemoteSubFrame" summary="Remote subframes"/>
</variants>
<variants name="LogAiDataRequestFeature">
<variant name="BlingPrototyping" summary="Bling Prototyping"/>
<variant name="Compose" summary="Compose"/>
<variant name="Default" summary="Default"/>
<variant name="EnhancedCalendar" summary="Enhanced Calendar"/>
<variant name="FeatureNotSet" summary="Feature not set"/>
<variant name="FormsAnnotations" summary="Forms Annotations"/>
<variant name="FormsClassifications" summary="Forms Classifications"/>
<variant name="FormsPredictions" summary="Forms Predictions"/>
<variant name="HistoryAnswer" summary="History Answer"/>
<variant name="HistoryQuery" summary="History Query"/>
<variant name="HistoryQueryIntent" summary="History Query Intent"/>
<variant name="ModelPrototyping" summary="Model Prototyping"/>
<variant name="NotificationContentDetection"
summary="Notification Content Detection"/>
<variant name="PasswordChangeSubmission"
summary="Password Change Submission"/>
<variant name="PermissionsAi" summary="Permissions AI"/>
<variant name="ProductSpecifications" summary="Product Specifications"/>
<variant name="ScamDetection" summary="Scam Detection"/>
<variant name="TabOrganization" summary="Tab Organization"/>
<variant name="WalletablePassExtraction" summary="Extract walletable pass"/>
<variant name="WallpaperSearch" summary="Wallpaper search"/>
<variant name="WritingAssistanceApi" summary="Writing Assistance APIs"/>
<variant name="ZeroStateSuggestions" summary="GLIC Zero State Suggestions"/>
</variants>
<variants name="ModelExecutionFeature">
<variant name="AmountExtraction" summary="Amount Extraction"/>
<variant name="BlingPrototyping" summary="Bling Prototyping"/>
<variant name="Compose" summary="Compose"/>
<variant name="EnhancedCalendar" summary="Enhanced Calendar"/>
<variant name="FormsAnnotations" summary="Forms Annotations"/>
<variant name="FormsClassifications" summary="Forms Classifications"/>
<variant name="FormsPredictions" summary="Forms Predictions"/>
<variant name="HistorySearch" summary="History Search"/>
<variant name="IosSmartTabGrouping" summary="iOS Smart Tab Grouping"/>
<variant name="OnDeviceSpeechRecognition"
summary="On-device Speech Recognition"/>
<variant name="PasswordChangeSubmission"
summary="Password Change Submission"/>
<variant name="PermissionsAi" summary="Permissions AI"/>
<variant name="PromptApi" summary="Prompt API"/>
<variant name="ProofreaderApi" summary="Proofreader API"/>
<variant name="ScamDetection" summary="Scam Detection"/>
<variant name="Summarize" summary="Summarize"/>
<variant name="TabOrganization" summary="Tab Organization"/>
<variant name="Test" summary="Test"/>
<variant name="TextSafety" summary="Text Safety"/>
<variant name="Unknown" summary="Unknown"/>
<variant name="WallpaperSearch" summary="Wallpaper search"/>
<variant name="WebRTCNeuralResidualEchoEstimator"
summary="WebRTC Neural Residual Echo Estimator"/>
<variant name="WritingAssistance" summary="Writing Assistance APIs"/>
<variant name="ZeroStateSuggestions" summary="GLIC Zero State Suggestions"/>
</variants>
<variants name="OptimizationTarget">
<variant name="AutofillFieldTypeClassification"
summary="Classifies autofill field types"/>
<variant name="CameraBackgroundSegmentation"
summary="Classifies images into foreground and background"/>
<variant name="ClientSidePhishing" summary="Client Side Phishing"/>
<variant name="ClientSidePhishingImageEmbedder"
summary="Client Side Phishing Image Embedder"/>
<variant name="Compose" summary="Weights for On-Device Compose"/>
<variant name="ContextualPageActionPriceTracking"
summary="Contextual Page Action: Show price tracking"/>
<variant name="EduClassifier" summary="Education classifier"/>
<variant name="ExperimentalEmbedder"
summary="Embedder for performance experiments"/>
<variant name="GeneralizedSafety"
summary="Safety classifier, to replace `TextSafety` target"/>
<variant name="GeolocationPermissions"
summary="Permissions: Use permissions historic data to decide on
relevance for a Geolocation permission request"/>
<variant name="GeolocationPermissionsV3"
summary="Permissions: Use snapshot to decide on relevance for a
Geolocation permission request"/>
<variant name="LanguageDetection" summary="Language detection"/>
<variant name="ModelExecutionFeatureHistoryQueryIntent"
summary="Model Execution Feature: History Query Intent"/>
<variant name="ModelExecutionFeatureHistorySearch"
summary="Model Execution Feature: History Search"/>
<variant name="ModelExecutionFeaturePermissionsAi"
summary="Model Execution Feature: Permissions AI"/>
<variant name="ModelExecutionFeaturePromptAPI"
summary="Model Execution Feature: Prompt API"/>
<variant name="ModelExecutionFeatureProofreaderApi"
summary="Model Execution Feature: Proofreader API"/>
<variant name="ModelExecutionFeatureScamDetection"
summary="Model Execution Feature: Scam Detection"/>
<variant name="ModelExecutionFeatureSummarize"
summary="Model Execution Feature: Summarize"/>
<variant name="ModelExecutionFeatureWritingAssistanceApi"
summary="Model Execution Feature: Writing Assistance APIs"/>
<variant name="ModelValidation" summary="Model validation triggered via CLI"/>
<variant name="NewTabPageHistoryClustersModuleRanking"
summary="New Tab Page History Clusters Module Ranking"/>
<variant name="NotificationContentDetection"
summary="Notification Content Detection"/>
<variant name="NotificationPermissions"
summary="Permissions: Use permissions historic data to decide on
relevance for a Notification permission request"/>
<variant name="NotificationPermissionsV3"
summary="Permissions: Use snapshot to decide on relevance for a
Notification permission request"/>
<variant name="OmniboxOnDeviceTailSuggest"
summary="Omnibox on device tail suggest"/>
<variant name="OmniboxUrlScoring" summary="Omnibox Url scoring"/>
<variant name="PageEntities" summary="Page entities"/>
<variant name="PageTopics" summary="Page topics"/>
<variant name="PageTopicsV2" summary="Page topics v2"/>
<variant name="PageVisibility" summary="Page visibility"/>
<variant name="PainfulPageLoad" summary="Painful page load"/>
<variant name="PassageEmbedder" summary="Text embedding for passages"/>
<variant name="PasswordManagerFormClassification"
summary="Classifies password forms"/>
<variant name="PermissionsAiv4GeolocationAndroid"
summary="Permissions: Use snapshot and visible page content text to
decide on relevance for a Geolocation permission request"/>
<variant name="PermissionsAiv4GeolocationDesktop"
summary="Permissions: Use snapshot and visible page content text to
decide on relevance for a Geolocation permission request"/>
<variant name="PermissionsAiv4NotificationsAndroid"
summary="Permissions: Use snapshot and visible page content text to
decide on relevance for a Notifications permission request"/>
<variant name="PermissionsAiv4NotificationsDesktop"
summary="Permissions: Use snapshot and visible page content text to
decide on relevance for a Notifications permission request"/>
<variant name="PhraseSegmentation" summary="Phrase segmentation"/>
<variant name="PreloadingHeuristics" summary="Speculation-rule preloading"/>
<variant name="SegmentationAdaptiveToolbar"
summary="Segmentation: Adaptive toolbar button"/>
<variant name="SegmentationAndroidHomeModuleRanker"
summary="Segmentation: Android home module ranker"/>
<variant name="SegmentationBottomToolbar"
summary="Segmentation: Bottom toolbar user"/>
<variant name="SegmentationChromeLowUserEngagement"
summary="Segmentation: Low user engagement with Chrome"/>
<variant name="SegmentationChromeStartAndroid"
summary="Chrome Start Android"/>
<variant name="SegmentationChromeStartAndroidV2"
summary="Chrome Start Android V2"/>
<variant name="SegmentationComposePromotion"
summary="Segmentation: Compose promotion"/>
<variant name="SegmentationDesktopNtpModule"
summary="Segmentation: Desktop new tab page module users"/>
<variant name="SegmentationDeviceSwitcher"
summary="Segmentation: Device switcher"/>
<variant name="SegmentationDummyFeature" summary="Dummy feature"/>
<variant name="SegmentationFedCmUser" summary="Segmentation: FedCM user"/>
<variant name="SegmentationFeedUser"
summary="Segmentation: Feed usage in Chrome"/>
<variant name="SegmentationIosDefaultBrowserPromo"
summary="Segmentation: Ios Default Browser Promo"/>
<variant name="SegmentationIosModuleRanker"
summary="Segmentation: Ios module ranker"/>
<variant name="SegmentationMetricsClustering"
summary="Segmentation: Metrics based clustering"/>
<variant name="SegmentationNewTab" summary="Segmentation: New tab page user"/>
<variant name="SegmentationQueryTiles" summary="Query tiles"/>
<variant name="SegmentationSearchUser" summary="Segmentation: Search user"/>
<variant name="SegmentationShare" summary="Segmentation: Share user"/>
<variant name="SegmentationShoppingUser"
summary="Segmentation: Shopping user"/>
<variant name="SegmentationTabletProductivityUser"
summary="Segmentation: Tablet Productivity user"/>
<variant name="SegmentationVoice" summary="Segmentation: Voice user"/>
<variant name="TextClassifier" summary="Smart text selection"/>
<variant name="TextEmbedder" summary="Generic Text Embedding"/>
<variant name="TextSafety" summary="Classifies safety of the text"/>
<variant name="URLVisitResumptionRanker"
summary="URL Visit resumption ranker"/>
<variant name="VisualSearchClassification"
summary="Classifies images on the page"/>
<variant name="WebAppInstallationPromo"
summary="PWA: Show web app installation promotion"/>
</variants>
<variants name="OptimizationType">
<variant name="A2AMerchantAllowlist"
summary="This optimization provides information about merchant URLs
that are eligible for A2A payments."/>
<variant name="AboutThisSite"
summary="Provides 'About this site' data about the site being visited"/>
<variant name="AmericanExpressCreditCardFlightBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for flight credit card benefits.
Applies to only American Express credit cards that support
benefits on Chrome."/>
<variant name="AmericanExpressCreditCardSubscriptionBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for subscription credit card
benefits. Applies to only American Express credit cards that
support benefits on Chrome."/>
<variant name="AmountExtractionAllowlist"
summary="This optimization helps determine if this merchant page is a
good candidate for enabling price/amount extraction."/>
<variant name="AutofillAblationSitesList1"
summary="This optimization provides information for whether a page is
eligible for autofill ablation."/>
<variant name="AutofillAblationSitesList2"
summary="This optimization provides information for whether a page is
eligible for autofill ablation."/>
<variant name="AutofillAblationSitesList3"
summary="This optimization provides information for whether a page is
eligible for autofill ablation."/>
<variant name="AutofillAblationSitesList4"
summary="This optimization provides information for whether a page is
eligible for autofill ablation."/>
<variant name="AutofillAblationSitesList5"
summary="This optimization provides information for whether a page is
eligible for autofill ablation."/>
<variant name="AutofillAblationSitesList6"
summary="This optimization provides information for whether a page is
eligible for autofill ablation."/>
<variant name="AutofillActorIframeOriginAllowlist"
summary="This optimization provides information about whether
triggering autofill on an iframe with a given origin is
allowed."/>
<variant name="AutofillSamplingRate"
summary="This optimization provides information about a sampling rate
of Autofill UKM metrics per origin based on origin popularity."/>
<variant name="BloomFilterValidation"
summary="Validates bloom filer allowlist/blocklist based hints"/>
<variant name="BmoCreditCardAirMilesPartnerBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for air miles credit card benefits.
Applies to only BMO credit cards that support benefits on
Chrome."/>
<variant name="BmoCreditCardAlcoholStoreBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for alcohol store credit card
benefits. Applies to only BMO credit cards that support
benefits on Chrome."/>
<variant name="BmoCreditCardDiningBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for dining credit card benefits.
Applies to only BMO credit cards that support benefits on
Chrome."/>
<variant name="BmoCreditCardDrugstoreBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for drugstore credit card benefits.
Applies to only BMO credit cards that support benefits on
Chrome."/>
<variant name="BmoCreditCardEntertainmentBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for entertainment credit card
benefits. Applies to only BMO credit cards that support
benefits on Chrome."/>
<variant name="BmoCreditCardGroceryBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for grocery credit card benefits.
Applies to only BMO credit cards that support benefits on
Chrome."/>
<variant name="BmoCreditCardOfficeSupplyBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for office supply credit card
benefits. Applies to only BMO credit cards that support
benefits on Chrome."/>
<variant name="BmoCreditCardRecurringBillBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for recurring bill credit card
benefits. Applies to only BMO credit cards that support
benefits on Chrome."/>
<variant name="BmoCreditCardTransitBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for transit credit card benefits.
Applies to only BMO credit cards that support benefits on
Chrome."/>
<variant name="BmoCreditCardTravelBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for travel credit card benefits.
Applies to only BMO credit cards that support benefits on
Chrome."/>
<variant name="BmoCreditCardWholesaleClubBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for wholesale club credit card
benefits. Applies to only BMO credit cards that support
benefits on Chrome."/>
<variant name="BuyNowPayLaterAllowlistAffirmAndroid"
summary="This optimization helps determine if this merchant page is a
good candidate for enabling buy now pay later flow with Affirm
on Android OS."/>
<variant name="BuyNowPayLaterAllowlistAffirmDesktop"
summary="This optimization helps determine if this merchant page is a
good candidate for enabling buy now pay later flow with Affirm
on desktop."/>
<variant name="BuyNowPayLaterAllowlistKlarnaAndroid"
summary="This optimization helps determine if this merchant page is a
good candidate for enabling buy now pay later flow with Klarna
on Android OS."/>
<variant name="BuyNowPayLaterAllowlistKlarnaDesktop"
summary="This optimization helps determine if this merchant page is a
good candidate for enabling buy now pay later flow with Klarna
on desktop."/>
<variant name="BuyNowPayLaterAllowlistZipAndroid"
summary="This optimization helps determine if this merchant page is a
good candidate for enabling buy now pay later flow with Zip on
Android OS."/>
<variant name="BuyNowPayLaterAllowlistZipDesktop"
summary="This optimization helps determine if this merchant page is a
good candidate for enabling buy now pay later flow with Zip on
desktop."/>
<variant name="BuyNowPayLaterBlocklistAffirm"
summary="This optimization helps determine if this merchant page should
be blocked for the buy now pay later flow with Affirm."/>
<variant name="BuyNowPayLaterBlocklistKlarna"
summary="This optimization helps determine if this merchant page should
be blocked for the buy now pay later flow with Klarna."/>
<variant name="BuyNowPayLaterBlocklistZip"
summary="This optimization helps determine if this merchant page should
be blocked for the buy now pay later flow with Zip."/>
<variant name="CapitalOneCreditCardBenefitsBlocked"
summary="This optimization provides information about whether a
merchant url is eligible to display Capital One credit card
benefits."/>
<variant name="CapitalOneCreditCardDiningBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for dining credit card benefits.
Applies to only Capital One credit cards that support benefits
on Chrome"/>
<variant name="CapitalOneCreditCardEntertainmentBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for entertainment credit card
benefits. Applies to only Capital One credit cards that
support benefits on Chrome"/>
<variant name="CapitalOneCreditCardGroceryBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for grocery credit card benefits.
Applies to only Capital One credit cards that support benefits
on Chrome"/>
<variant name="CapitalOneCreditCardStreamingBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for streaming credit card benefits.
Applies to only Capital One credit cards that support benefits
on Chrome"/>
<variant name="Compose"
summary="Returns suitability of this page for compose."/>
<variant name="CompressPublicImages" summary="Compresses public images"/>
<variant name="DeferAllScript" summary="Defers execution of script"/>
<variant name="DigitalCredentialsLowFriction"
summary="This optimization provides information about whether a URL is
a known low risk origin for which the digital credential
interstitial should not be shown regardless of the credential
being requested."/>
<variant name="EwalletMerchantAllowlist"
summary="This optimization provides information about merchant origins
for which eWallet push payments payments should be triggered."/>
<variant name="FastHostHints"
summary="Provides information about hosts that historically provide a
fast and responsive user experience"/>
<variant name="FedCmClickthroughRate"
summary="Provides information about FedCM API clickthrough rate
aggregated across all users on the page."/>
<variant name="FormsAnnotations"
summary="Provides information about whether a URL is eligible for
generating user annotations derived from forms."/>
<variant name="GlicActionPageBlock"
summary="Provides information about whether GLIC may act on a page."/>
<variant name="GlicContextualCueing"
summary="Provides information about whether a page is eligible to cue
for GLIC."/>
<variant name="GlicZeroStateSuggestions"
summary="Provides information about whether a page is eligible for zero
state suggestions for GLIC, and the contextual suggestions if
eligible."/>
<variant name="HistoryClusters"
summary="This optimization provides information for whether a page
should be included in a history cluster."/>
<variant name="HistoryEmbeddings"
summary="This optimization provides information for whether a page is
eligible for history embeddings."/>
<variant name="IBANAutofillBlocked"
summary="This optimization provides information for whether a page
should be blocked for IBAN autofill feature."/>
<variant name="LensOverlayEduActionChipAllowlist"
summary="Allowlist for the Lens Overlay EDU action chip"/>
<variant name="LensOverlayEduActionChipBlocklist"
summary="Blocklist for the Lens Overlay EDU action chip"/>
<variant name="LinkPerformance"
summary="Provides aggregated performance information for links on the
page"/>
<variant name="LitePage"
summary="HTTP server preview (served from the Data Reduction Proxy)"/>
<variant name="LiteVideo"
summary="Provides information on how to throttle media requests to
reduce the adaptive bit rates of media streams."/>
<variant name="LoadingPredictor"
summary="Provides information about subresources predicted to be on the
page"/>
<variant name="LoginDetection"
summary="Provides information about hosts that are identified as
commonly logged-in"/>
<variant name="MerchantTrustSignals"
summary="Provides trust data related to the merchant."/>
<variant name="MerchantTrustSignalsV2"
summary="Provides trust data related to the merchant -- version 2."/>
<variant name="MetadataFetchValidation"
summary="Validates metadata fetch on navigation"/>
<variant name="NtpNextDeepDiveActionChipAllowlist"
summary="Allowlist for the NTP-Next deep dive action chip."/>
<variant name="NtpNextDeepDiveActionChipBlocklist"
summary="Blocklist for the NTP-Next deep dive action chip."/>
<variant name="OptimizationGuideIconView"
summary="Provides information for what to show in the debug
optimization guide icon view."/>
<variant name="PageEntities"
summary="Provides the entities that are present on the page"/>
<variant name="PageInsights"
summary="This optimization provides helpful context and insights about
a page."/>
<variant name="PerformanceHints"
summary="Provides aggregated performance information about the page"/>
<variant name="PixMerchantOriginsAllowlist"
summary="This optimization provides information about merchants origins
for which PIX payments should be triggered."/>
<variant name="PixPaymentMerchantAllowlist"
summary="This optimization provides information about whether a
merchant can trigger PIX bottom sheet."/>
<variant name="PriceInsights"
summary="Returns price insights data for shopping websites"/>
<variant name="PriceTracking"
summary="Returns price related data for shopping websites"/>
<variant name="PrivacyPolicyAnnotation"
summary="Provides information about whether a URL is a privacy policy
page."/>
<variant name="ReaderModeEligible"
summary="Provides information about the eligibility of a URL for
Reading Mode."/>
<variant name="SalientImage"
summary="Provides information about images for a URL."/>
<variant name="SavedTabGroup"
summary="Provides information about a URL can be synced across devices
for saved tab groups featuer."/>
<variant name="SharedCreditCardDiningBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for dining credit card benefits.
Applies to all credit cards that support benefits on Chrome"/>
<variant name="SharedCreditCardEntertainmentBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for entertainment credit card
benefits. Applies to all credit cards that support benefits on
Chrome"/>
<variant name="SharedCreditCardFlatRateBenefitsBlocked"
summary="This optimization provides information about whether a
merchant url is blocked from flat rate credit card benefits.
Applies to all credit cards that support benefits on Chrome"/>
<variant name="SharedCreditCardFlightBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for flight credit card benefits.
Applies to all credit cards that support benefits on Chrome"/>
<variant name="SharedCreditCardGroceryBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for grocery credit card benefits.
Applies to all credit cards that support benefits on Chrome"/>
<variant name="SharedCreditCardStreamingBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for streamining credit card benefits.
Applies to all credit cards that support benefits on Chrome"/>
<variant name="SharedCreditCardSubscriptionBenefits"
summary="This optimization provides information about whether a
merchant url is eligible for subscription credit card
benefits. Applies to all credit cards that support benefits on
Chrome"/>
<variant name="ShoppingDiscounts"
summary="This optimization provides information about shopping
discounts for a URL."/>
<variant name="ShoppingPagePredictor"
summary="Determines if a page is shopping related or not"/>
<variant name="ShoppingPageTypes"
summary="This optimization provides information about shopping page
types of this page."/>
<variant name="Skills"
summary="Provides the set of Skills to display on the current page."/>
<variant name="TextClassifierEntityDetection"
summary="Provides information about whether about whether a page is
eligible for text classifier entity detection - iOS only."/>
<variant name="ThankCreatorEligible"
summary="This optimization provides information for whether a page is
eligible for the 'Thank Creator' feature."/>
<variant name="V8CompileHints"
summary="Information about which JavaScript functions should be eager
compiled."/>
<variant name="VcnMerchantOptOutDiscover"
summary="This optimization provides information about whether a
merchant is opted-out of Discover virtual cards for a URL."/>
<variant name="VcnMerchantOptOutMastercard"
summary="This optimization provides information about whether a
merchant is opted-out of Mastercard virtual cards for a URL."/>
<variant name="VcnMerchantOptOutVisa"
summary="This optimization provides information about whether a
merchant is opted-out of Visa virtual cards for a URL."/>
<variant name="WalletablePassDetectionAllowlist"
summary="This optimization provides information about whether a URL is
eligible for walletable pass detection."/>
<variant name="WalletablePassDetectionBoardingPassAllowlist"
summary="This optimization provides information about whether a URL is
eligible for walletable boarding pass detection."/>
<variant name="WalletablePassDetectionEventPassAllowlist"
summary="This optimization provides information about whether a URL is
eligible for walletable event pass detection."/>
<variant name="WalletablePassDetectionLoyaltyAllowlist"
summary="This optimization provides information about whether a URL is
eligible for walletable loyalty pass detection."/>
<variant name="WalletablePassDetectionTransitTicketAllowlist"
summary="This optimization provides information about whether a URL is
eligible for walletable transit ticket pass detection."/>
</variants>
<variants name="PageContentAnnotationsStorageType">
<variant name="ModelAnnotations" summary="Model Annotations"/>
<variant name="RelatedSearches" summary="Related Searches"/>
<variant name="RemoteMetadata" summary="Remote Metadata"/>
<variant name="SalientImageMetadata" summary="Salient Image Metadata"/>
<variant name="SearchMetadata" summary="Search Metadata"/>
<variant name="Unknown" summary="Unknown"/>
</variants>
<variants name="PageTextDumpEvent">
<variant name="FinishedLoad" summary="finished load"/>
<variant name="FirstLayout" summary="first layout"/>
</variants>
<variants name="RequestContext">
<variant name="BatchUpdateActiveTabs"
summary="Batch update of hints for active tabs"/>
<variant name="BatchUpdateGoogleSRP"
summary="Batch update of hints for result links off the Google SRP"/>
<variant name="BatchUpdateModels" summary="Batch update of models"/>
<variant name="Bookmarks" summary="Batch update of hints for bookmarks"/>
<variant name="GlicZeroStateSuggestions"
summary="Requests glic zero state suggestions"/>
<variant name="Journeys" summary="Journeys surface"/>
<variant name="NewTabPage" summary="New tab page"/>
<variant name="NonPersonalizedPageInsightsHub"
summary="Non personalized page insights hub"/>
<variant name="PageInsightsHub" summary="Page insights hub"/>
<variant name="PageNavigation" summary="Page navigation"/>
<variant name="ShopCard" summary="Requests for ShopCard"/>
<variant name="Shopping" summary="Requests for shopping features"/>
</variants>
<histogram name="OptimizationGuide.AccessTokenHelper.Result"
enum="OptimizationGuideAccessTokenResult" expires_after="2026-08-15">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the result of an OAuth access token request. Recorded every time a
request was made for allowed request contexts for on-demand hints.
</summary>
</histogram>
<histogram name="OptimizationGuide.AIPageContent.RendererLatency.{FrameType}"
units="ms" expires_after="2026-06-21">
<owner>khushalsagar@chromium.org</owner>
<owner>abigailbklein@google.com</owner>
<summary>
Records the duration for extracting the AIPageContent from a LocalFrame tree
in the renderer. Recorded once for each extraction in the renderer process.
The metric is split for main frames vs remote subframes.
Does not included time while waiting for lifecycle events to complete.
</summary>
<token key="FrameType" variants="FrameType"/>
</histogram>
<histogram
name="OptimizationGuide.AIPageContent.RendererLatencyWithSchedulingDelay.Critical.{FrameType}"
units="ms" expires_after="2026-07-05">
<owner>khushalsagar@chromium.org</owner>
<owner>abigailbklein@google.com</owner>
<summary>
Records the duration for extracting the AIPageContent from a LocalFrame tree
in the renderer. Recorded once for each extraction in the renderer process.
The metric is split for main frames vs remote subframes. Includes time while
waiting for lifecycle events to complete. Only for calls that were critical.
</summary>
<token key="FrameType" variants="FrameType"/>
</histogram>
<histogram
name="OptimizationGuide.AIPageContent.RendererLatencyWithSchedulingDelay.NonCritical.{FrameType}"
units="ms" expires_after="2026-02-22">
<owner>khushalsagar@chromium.org</owner>
<owner>abigailbklein@google.com</owner>
<summary>
Records the duration for extracting the AIPageContent from a LocalFrame tree
in the renderer. Recorded once for each extraction in the renderer process.
The metric is split for main frames vs remote subframes. Includes time while
waiting for lifecycle events to complete. Only for calls that were
non-critical.
</summary>
<token key="FrameType" variants="FrameType"/>
</histogram>
<histogram name="OptimizationGuide.AIPageContent.TotalLatency" units="ms"
expires_after="2026-06-28">
<owner>khushalsagar@chromium.org</owner>
<owner>abigailbklein@google.com</owner>
<summary>
Records the duration for extracting the AIPageContent for a WebContents.
This includes the latency for extracting the content from each renderer
process across all frames for the Document displayed by the primary main
frame.
</summary>
</histogram>
<histogram name="OptimizationGuide.AnnotatedPageContent.ComputeMetricsLatency"
units="microseconds" expires_after="2026-06-28">
<owner>khushalsagar@chromium.org</owner>
<owner>abigailbklein@google.com</owner>
<summary>
Records the duration for computing metrics from the AnnotatedPageContent
proto.
Note that clients without high-resolution clocks will report 0.
</summary>
</histogram>
<histogram
name="OptimizationGuide.AnnotatedPageContent.TotalNodeCount.{AIPageContentMode}"
units="nodes" expires_after="2026-05-10">
<owner>khushalsagar@chromium.org</owner>
<owner>abigailbklein@google.com</owner>
<owner>gklassen@chromium.org</owner>
<summary>
Records the number of nodes of AnnotatedPageContent proto extracted from 1
WebContents instance for a given {AIPageContentMode}. Recorded once per
extraction. Max of 100,000 nodes.
</summary>
<token key="AIPageContentMode" variants="AIPageContentMode"/>
</histogram>
<histogram
name="OptimizationGuide.AnnotatedPageContent.TotalSize2.{AIPageContentMode}"
units="KB" expires_after="2026-05-10">
<owner>khushalsagar@chromium.org</owner>
<owner>abigailbklein@google.com</owner>
<owner>gklassen@chromium.org</owner>
<summary>
Records the size of AnnotatedPageContent proto extracted from 1 WebContents
instance for a given {AIPageContentMode}. Recorded once per extraction.
Reversioned the bucket size to 10KB up to 5MB in Jan 2025.
</summary>
<token key="AIPageContentMode" variants="AIPageContentMode"/>
</histogram>
<histogram name="OptimizationGuide.AnnotatedPageContent.TotalWordCount"
units="words" expires_after="2026-06-28">
<owner>khushalsagar@chromium.org</owner>
<owner>abigailbklein@google.com</owner>
<summary>
Records the number of words of AnnotatedPageContent proto extracted from 1
WebContents instance. Recorded once per extraction. Max of 100k words.
</summary>
</histogram>
<histogram name="OptimizationGuide.ApplyDecision.{OptimizationType}"
enum="OptimizationGuideOptimizationTypeDecision" expires_after="2026-06-14">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
The decision made for whether {OptimizationType} can be applied on the page
load.
</summary>
<token key="OptimizationType" variants="OptimizationType"/>
</histogram>
<histogram name="OptimizationGuide.ClearFetchedHints.StoreAvailable"
enum="BooleanAvailable" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records whether the optimization guide store was available when fetched
hints are cleared from the store after browser history is cleared.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintCache.HintType.Loaded"
enum="HintCacheStoreEntryType" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the store entry type of a hint when it is loaded from the hint cache
store.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintCacheLevelDBStore.LoadMetadataResult"
enum="OptimizationGuideHintCacheLevelDBStoreLoadMetadataResult"
expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the result of loading the metadata while initializing the
HintCacheLevelDBStore.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintCacheLevelDBStore.Status"
enum="OptimizationGuideHintCacheLevelDBStoreStatus"
expires_after="2026-05-10">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records each status change within the HintCacheLevelDBStore.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.GetHintsRequest.DroppedHosts.{RequestContext}"
units="counts" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the number of hosts that were dropped for a request made with
{RequestContext}, if the number of hosts dropped is non-zero. Will record at
most once per fetch.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.GetHintsRequest.DroppedUrls.{RequestContext}"
units="counts" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the number of URLs that were dropped for a request made with
{RequestContext}, if the number of URLs dropped is non-zero. Will record at
most once per fetch.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.GetHintsRequest.FetchLatency.{RequestContext}"
units="ms" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
The duration of a request to fetch hints from the remote Optimization Guide
Service starts until it completes. Recorded every time hints are fetched and
parsed successfully.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.HintCount"
units="units" expires_after="2026-09-04">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the number of hints received from the remote Optimization Guide
Service for every successful HintsFetch request.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount.{RequestContext}"
units="total host count" expires_after="2026-12-21">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the number of hosts selected for sending a hint request using
{RequestContext} of the OptmizationGuide HintsFetcher. This will be captured
when any hint request is initiated.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.NetErrorCode"
enum="NetErrorCodes" expires_after="2026-08-24">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Net error codes for HintsFetch requests to the Optimization Guide Service on
success and failure.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.GetHintsRequest.RequestStatus.{RequestContext}"
enum="OptimizationGuideFetcherRequestStatus" expires_after="2026-12-14">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
The status of making a request using {RequestContext} of the
OptmizationGuide HintsFetcher. This includes whether a network request was
actually sent or not.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.Status"
enum="HttpResponseCode" expires_after="2026-07-05">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
For each HintsFetch request to the Optimization Guide Service, log the HTTP
response code on success and failure.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.GetHintsRequest.UrlCount.{RequestContext}"
units="total url count" expires_after="2026-05-24">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the number of URLs selected for sending a hint request using
{RequestContext} of the OptmizationGuide HintsFetcher. This will be captured
when any hint request is initiated.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram name="OptimizationGuide.HintsManager.ActiveTabUrlsToFetchFor"
units="counts" expires_after="2026-07-06">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
The number of active tab URLs that did not have a hint on device, and thus,
required a fetch for a new hint. Recorded when a fetch is initiated to the
remote Optimization Guide Service for active tabs, roughly once an hour but
configurable via experiment params.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintsManager.ConcurrentBatchUpdateFetches"
units="counts" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
The number of active batch update hints fetches initiated by the hints
manager. Recorded when a fetch is initiated to the remote Optimization Guide
Service for a batch update context (i.e. on SRP, other UI surfaces, etc.).
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsManager.ConcurrentPageNavigationFetches"
units="counts" expires_after="2026-09-07">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
The number of active hints fetches initiated by the hints manager. Recorded
when a fetch is initiated to the remote Optimization Guide Service at
navigation start.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsManager.PageNavigationHintsReturnedBeforeDataFlushed"
enum="BooleanStored" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records whether a page navigation hints fetch returned before navigation
data used to record additional page load metrics is flushed. Recorded only
for navigations that have a hints fetch initiated for it.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsManager.RaceNavigationFetchAttemptStatus"
enum="OptimizationGuideRaceNavigationFetchAttemptStatus"
expires_after="2026-07-05">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Status of a fetch attempt being raced against the current navigation start
and whether it includes hosts and urls. Recorded on navigation start
(including client redirects) by the hints manager.
</summary>
</histogram>
<histogram name="OptimizationGuide.InnerText.TotalLatency" units="ms"
expires_after="2026-04-26">
<owner>khushalsagar@chromium.org</owner>
<owner>abigailbklein@google.com</owner>
<summary>
Records the latency of InnerText extracted from 1 WebContents instance. The
metric is only recorded when the extraction is triggered by
PageContentAnnotationsService. Recorded once per extraction.
</summary>
</histogram>
<histogram name="OptimizationGuide.InnerText.TotalSize2" units="KB"
expires_after="2026-04-26">
<owner>khushalsagar@chromium.org</owner>
<owner>abigailbklein@google.com</owner>
<summary>
Records the size of InnerText extracted from 1 WebContents instance. The
metric is only recorded when the extraction is triggered by
PageContentAnnotationsService. Recorded once per extraction. Reversioned the
bucket size to 10KB up to 5MB in Jan 2025.
</summary>
</histogram>
<histogram name="OptimizationGuide.IsPredictionModelValid.{OptimizationTarget}"
enum="BooleanValid" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records whether the prediction model being constructed for
{OptimizationTarget} is valid or not. Recorded when prediction models are
loaded into memory by the prediction manager.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.MetadataFetchValidation.Result"
enum="Boolean" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records whether the metadata fetch validation received the hints correctly.
Recorded on iOS when the mainframe navigation commits.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.ContextStartToExecutionTime.{ModelExecutionFeature}"
units="ms" expires_after="2026-05-03">
<owner>cduvall@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records time from when context was first added to the session to when the
first execute call was made. Recorded on the first execute call for a
session following a new context being added.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.FeatureCurrentlyEnabledResult.{ModelExecutionFeature}"
enum="FeatureCurrentlyEnabledResult" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records whether a feature is currently enabled. Recorded everytime the
feature status is queried.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.FeatureEnabledAtSettingsChange.{ModelExecutionFeature}"
enum="Boolean" expires_after="2026-05-24">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records whether {ModelExecutionFeature} is currently enabled after settings
is updated. Recorded everytime settings is toggled for the feature.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.FeatureEnabledAtStartup.{ModelExecutionFeature}"
enum="Boolean" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records whether {ModelExecutionFeature} is currently enabled at startup.
Recorded once at startup.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceAdaptationModelAvailability.{ModelExecutionFeature}"
enum="OnDeviceModelAdaptationAvailability" expires_after="2026-07-05">
<owner>rajendrant@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records the availability of adaptation model for {ModelExecutionFeature}.
Recorded each time an update to the base model or the foundation model is
triggered.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceAddContextResult.{ModelExecutionFeature}"
enum="OptimizationGuideOnDeviceAddContextResult" expires_after="2026-08-15">
<owner>holte@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Captures the possible outcomes of Session::AddContext(). Recorded everytime
Session::AddContext() is called.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceBaseModelIdleDisconnect"
enum="Boolean" expires_after="2026-07-07">
<owner>cduvall@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records whether a model disconnect was from the model idle timeout. Recorded
each time the base model disconnects.
</summary>
</histogram>
<histogram name="OptimizationGuide.ModelExecution.OnDeviceBaseModelLoadResult"
enum="LoadPlatformModelStatus" expires_after="2026-06-07">
<owner>rajendrant@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records the result of loading the base model, whether it succeeded or failed
with various reasons.
</summary>
</histogram>
<histogram name="OptimizationGuide.ModelExecution.OnDeviceBaseModelLoadVersion"
enum="OnDeviceBaseModelVersion" expires_after="2026-05-17">
<owner>rajendrant@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records the hash code of base model version that is loaded. Recorded on
every load of the base model.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceContextTokensProcessed.{ModelExecutionFeature}"
units="tokens" expires_after="2026-10-12">
<owner>cduvall@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records the number of context tokens available when the on device model is
executed. Recorded for each execution of the on device model.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceDestroyedWhileWaitingForResponseTime.{ModelExecutionFeature}"
units="ms" expires_after="2026-05-24">
<owner>holte@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records time from execute call to the Session destroyed. Recorded when the
Session is destroyed, but only if the complete response was not received.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceExecuteModelResult.{ModelExecutionFeature}"
enum="OptimizationGuideOnDeviceExecuteModelResult"
expires_after="2026-07-05">
<owner>holte@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Captures the possible outcomes of Session::ExecuteModel(). Recorded
everytime Session::ExecuteModel() is called. context.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceFirstResponseTime.{ModelExecutionFeature}"
units="ms" expires_after="2026-05-10">
<owner>cduvall@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records time to the first response after an execute call to the on device
model. Recorded for every execute call to the on device model that returns a
response.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram name="OptimizationGuide.ModelExecution.OnDeviceModelCrashCount"
enum="OnDeviceModelValidationResult" expires_after="2026-05-19">
<owner>cduvall@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records the number of consecutive crashes of the on-device model service
without a successful response. Recorded each time the on-device model
service crashes.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceModelEligibilityReason.{ModelExecutionFeature}"
enum="OptimizationGuideOnDeviceModelEligibilityReason"
expires_after="2026-07-05">
<owner>holte@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records whether the on-device model was eligible to be used and if not, why
not. Recorded once at the start of each execution session.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceModelInstallCriteria.AtRegistration.DiskSpaceWhenNotEnoughAvailable"
units="GB" expires_after="2026-07-05">
<owner>holte@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the number of GB of free disk space if it is determined that there
is insufficient disk space to install the on-device model at registration.
Recorded when the on-device model installer is registered near startup and
only if the device failed the disk space check.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceModelInstallCriteria.{Event}.{Criteria}"
enum="Boolean" expires_after="2026-07-05">
<owner>holte@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records evaluation of various criteria required for on-device model
installation. {Event}
</summary>
<token key="Criteria">
<variant name="All" summary="All criteria have been met"/>
<variant name="DeviceCapability"
summary="The device is capable of running an on-device model"/>
<variant name="DiskSpace"
summary="There is sufficient disk space to install"/>
<variant name="EnabledByEnterprisePolicy"
summary="model installation is enabled by enterprise policy"/>
<variant name="EnabledByFeature"
summary="model installation is enabled by feature"/>
<variant name="FeatureUse"
summary="There has been recent feature use that could benefit from an
on-device model"/>
</token>
<token key="Event">
<variant name="AtAttemptedUse"
summary="Recorded when a feature is being used that could benefit
from the on-device model."/>
<variant name="AtRegistration"
summary="Recorded once shortly after startup, regardless of whether
the on-device model is currently installed."/>
</token>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceModelInstalledAtRegistrationTime"
enum="Boolean" expires_after="2026-07-05">
<owner>holte@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records whether the on-device model is fully installed. Recorded when the
on-device model installer is registered. This happens at most once per
restart, when the device becomes eligible for on-device execution.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceModelPerformanceClass"
enum="OnDeviceModelPerformanceClass" expires_after="2026-06-28">
<owner>cduvall@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records the estimated performance class of this device based on a
microbenchmark. This is recorded once on startup after a delay.
</summary>
</histogram>
<histogram name="OptimizationGuide.ModelExecution.OnDeviceModelStatusAtUseTime"
enum="OptimizationGuideOnDeviceModelStatus" expires_after="2026-05-17">
<owner>holte@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the on-device model status. Recorded when a feature is used that
could benefit from an on-device model.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceModelToBeInstalledReason.{ModelExecutionFeature}"
enum="OptimizationGuideOnDeviceModelStatus" expires_after="2026-05-31">
<owner>holte@chromium.org</owner>
<owner>andysjlim@chromium.org</owner>
<summary>
Records the OptimizationGuideOnDeviceModelStatus when it is determined that
the device is eligible but the model has not been installed yet. This is
logged when it is checked if an on-device session can be created for a given
feature usually when a session is created or when an eligibility check is
conducted.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceModelValidationResult"
enum="OnDeviceModelValidationResult" expires_after="2026-05-17">
<owner>cduvall@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records the result of running the on-device model validation prompts.
Recorded each time validation is run.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceModelValidationResultOnValidationStarted"
enum="OnDeviceModelValidationResult" expires_after="2026-06-07">
<owner>cduvall@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records the current validation status of the on-device model. Recorded each
time the model is updated, or on startup with an existing model if
validation has not completed for that model.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceResponseCompleteTime.{ModelExecutionFeature}"
units="ms" expires_after="2026-06-28">
<owner>cduvall@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records time until the response is completed after an execute call to the on
device model. Recorded for every execute call to the on device model that
completes.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceResponseCompleteTokens.{ModelExecutionFeature}"
units="tokens" expires_after="2026-06-28">
<owner>cduvall@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records the number of output tokens when the execution finishes. Recorded on
successful completion of for each execution of the on device model.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceResponseHasRepeats.{ModelExecutionFeature}"
enum="Boolean" expires_after="2026-06-28">
<owner>cduvall@chromium.org</owner>
<owner>holte@chromium.org</owner>
<summary>
Records whether the response was halted due to repeating text. Recorded for
every execute call to the on device model that completes.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceResponseTokensTimeToNextToken.{ModelExecutionFeature}"
units="ms" expires_after="2026-08-01">
<owner>cduvall@chromium.org</owner>
<owner>memmottt@chromium.org</owner>
<summary>
Records the average time between tokens. Recorded on successful completion
of for each execution of the on device model.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.OnDeviceTextSafetyModelMetadataValidity"
enum="OnDeviceTextSafetyModelMetadataValidity" expires_after="2025-01-26">
<owner>holte@chromium.org</owner>
<owner>robertogden@chromium.org</owner>
<summary>
Records whether the received text safety model is valid. Recorded each time
an update to the text safety model has been pushed to the on device service
controller.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.Result.{ModelExecutionFeature}"
enum="Boolean" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>freedjm@google.com</owner>
<summary>
Records the result of model execution for {ModelExecutionFeature}. Recorded
everytime model execution happens.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.ServerError.{ModelExecutionFeature}"
enum="OptimizationGuideModelExecutionError" expires_after="2026-08-10">
<owner>rajendrant@chromium.org</owner>
<owner>freedjm@google.com</owner>
<summary>
Records the server error returned in the model execution response for
{ModelExecutionFeature} from the the Optmization Guide Servic. Recorded
whenever server error is returned.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.SettingsVisibilityResult.{ModelExecutionFeature}"
enum="FeaturesSettingsVisibilityResult" expires_after="2026-10-12">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records visibility of different features. Recorded everytime the feature's
settings visibility status is queried.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecution.TimeToProcessRedactions.{ModelExecutionFeature}"
units="microseconds" expires_after="M145">
<owner>holte@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records amount of time it takes to process redactions. This is called every
time text is received from the model.
Note: This metric is dropped for clients without high-precision clocks.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutionFetcher.FetchLatency.{ModelExecutionFeature}"
units="ms" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>freedjm@google.com</owner>
<summary>
The duration of a request to fetch model execution from the remote
Optimization Guide Service starts until it completes. Recorded every time
model execution results are fetched and parsed successfully.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram name="OptimizationGuide.ModelExecutionFetcher.NetErrorCode"
enum="NetErrorCodes" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>freedjm@google.com</owner>
<summary>
Net error codes for each model execution request to the Optimization Guide
Service, recorded on success and failure.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutionFetcher.RequestStatus.{ModelExecutionFeature}"
enum="OptimizationGuideFetcherRequestStatus" expires_after="2026-07-05">
<owner>rajendrant@chromium.org</owner>
<owner>freedjm@google.com</owner>
<summary>
The status of making a model execution request for {ModelExecutionFeature}
to the Optmization Guide Service. This includes whether a network request
was actually sent or not.
</summary>
<token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>
<histogram name="OptimizationGuide.ModelExecutionFetcher.Status"
enum="HttpResponseCode" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>freedjm@google.com</owner>
<summary>
The HTTP response code for each model execution request to the Optimization
Guide Service, recorded on success and failure.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.DidTimeout.{OptimizationTarget}"
enum="Boolean" expires_after="2026-06-28">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records whether the model execution for {OptimizationTarget} was cancelled
due to running past the configured timeout. In M115+ if batch execution is
used, this is recorded once per each input within the batch.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ExecutionLatency.{OptimizationTarget}"
units="ms" expires_after="2026-06-28">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records the time duration it took execute the model for
{OptimizationTarget}. Recorded once per model execution for
{OptimizationTarget}. In M115+ if batch execution is used, this is recorded
once per each input within the batch.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ExecutionStatus.{OptimizationTarget}"
enum="OptimizationGuideExecutionStatus" expires_after="2026-06-28">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records the result of attempting to execute a {OptimizationTarget} model,
including loading the file from disk. Recorded once per model execution
attempt for {OptimizationTarget}. In M115+ if batch execution is used, this
is recorded once per each input within the batch.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ExecutionThreadTime.{OptimizationTarget}"
units="ms" expires_after="2026-05-17">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records the time duration it took to execute the model for
{OptimizationTarget}. Recorded once per model execution for
{OptimizationTarget}. This is effectively the same as
`OptimizationGuide.ModelExecutor.ExecutionLatency.{OptimizationTarget}` but
this is recorded using `base::ElapsedThreadTimer` instead. In M115+ if batch
execution is used, this is recorded once per each input within the batch.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ExecutionThreadTimeMicroseconds.{OptimizationTarget}"
units="microseconds" expires_after="2026-10-26">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Same as OptimizationGuide.ModelExecutor.ExecutionThreadTime, but recorded in
microseconds to enable high precision timing of fast models.
Note: This metric is dropped for clients without high-precision clocks.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ModelAvailableToLoad.{OptimizationTarget}"
enum="BooleanAvailable" expires_after="2026-06-28">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records whether the model file for {OptimizationTarget} is available on disk
at the time when it needs to be loaded into memory for a requested
execution. Recorded once per model load attempt for {OptimizationTarget}.
Note that callers may separately check whether a model is available before
calling the code path where this histogram is recorded. If this histogram
has 100% of samples in the true bucket, make sure to double-check that there
isn't a separate histogram specific to the model.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ModelLoadingDuration2.{OptimizationTarget}"
units="ms" expires_after="2026-05-31">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records the time duration it took to load a model file successfully for
{OptimizationTarget}. Recorded once per model load attempt for
{OptimizationTarget}.
Warning: this histogram was expired from 2025-01-26 to 2025-07-09; data may
be missing.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.TaskExecutionLatency.{OptimizationTarget}"
units="ms" expires_after="2026-05-17">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records the execution latency for the {OptimizationTarget} model run by the
model executor from when the task is posted from execution complete.
Recorded once per {OptimizationTarget} model execution attempt. In M115+ if
batch execution is used, this is recorded once per batch whether.
In M115, this was changed to always record the task execution latency
whether or not the task succeeded, whereas before it was only recorded on
success.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.TaskSchedulingLatency.{OptimizationTarget}"
units="ms" expires_after="2026-07-05">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records the duration a {OptimizationTarget} model execution request spent
waiting for the background task queue to run the task. Recorded once per
{OptimizationTarget} model execution attempt. In M115+ if batch execution is
used, this is recorded once per batch.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.TimeSincePreviousRun.{OptimizationTarget}"
units="ms" expires_after="M145">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records the time duration between runs of the model for
{OptimizationTarget}. Recorded once for every model run after the first. In
M115+ if batch execution is used, this is recorded once per batch.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.ModelFilesVerified.{OptimizationTarget}"
enum="BooleanValid" expires_after="M145">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records whether all model files existed on disk when the model was requested
to be loaded for {OptimizationTarget}. The model file itself and any
additional files must be present on disk for this check to report success.
Recorded once per attempted model load, which happens when a feature is
registered with the Optimization Guide.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelHandler.HandlerCreated.{OptimizationTarget}"
enum="BooleanCreated" expires_after="2026-06-07">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records that the model handler has been created for {OptimizationTarget}.
Recorded once for each session (profile start) that the model handler is
created for {OptimizationTarget}.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelHandler.HandlerCreatedToModelAvailable.{OptimizationTarget}"
units="ms" expires_after="2026-05-10">
<owner>wittman@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Records the time duration between the handler getting created to the model
being available for {OptimizationTarget}. Recorded once for each session
(profile start) that the model handler is created for {OptimizationTarget}.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelQuality.UserFeedback.{LogAiDataRequestFeature}"
enum="OptimizationGuideUserFeedback" expires_after="2026-06-28">
<owner>sreejakshetty@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
The user feedback for each log ai data request feature. Recorded once per
each model quality logs upload request.
</summary>
<token key="LogAiDataRequestFeature" variants="LogAiDataRequestFeature"/>
</histogram>
<histogram
name="OptimizationGuide.ModelQualityLogsUploaderService.NetErrorCode"
enum="NetErrorCodes" expires_after="2025-08-15">
<owner>sreejakshetty@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Net error codes for each model quality logs upload, recorded on success and
failure.
</summary>
</histogram>
<histogram name="OptimizationGuide.ModelQualityLogsUploaderService.Status"
enum="HttpResponseCode" expires_after="2025-08-10">
<owner>sreejakshetty@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
The HTTP response code for each model quality logs upload, recorded on
success and failure.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelQualityLogsUploaderService.UploadStatus.{LogAiDataRequestFeature}"
enum="OptimizationGuideModelQualityLogsUploadStatus"
expires_after="2026-07-05">
<owner>sreejakshetty@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
The status of model quality logs upload request for each
{LogAiDataRequestFeature}. Uploaded once for each model quality logs upload
request.
</summary>
<token key="LogAiDataRequestFeature" variants="LogAiDataRequestFeature"/>
</histogram>
<histogram name="OptimizationGuide.OptimizationFilterStatus.{OptimizationType}"
enum="OptimizationGuideOptimizationFilterStatus" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Status of processing OptimizationFilter configuration for
{OptimizationType}. Recorded when the OptimizationGuideService receives a
notification to process hints.
</summary>
<token key="OptimizationType" variants="OptimizationType"/>
</histogram>
<histogram name="OptimizationGuide.OptimizationHintsComponent.MajorVersion2"
units="major version number" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the major version of the Optimization Hints component that was
pushed to the client. This will be recorded at startup and when a new
component is received each time the component was loaded.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotations.AnnotateVisitResultCached"
enum="BooleanCacheHit" expires_after="M145">
<owner>mcrouse@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records whether the requested annotation for a visit was provided by the
in-memory cache or required them to be determined by executing the models.
Recorded once for every requested visit annotation.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotations.BatchRequestedSize.{AnnotationType}"
units="counts" expires_after="2025-08-24">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the size of a {AnnotationType} BatchAnnotate request in how many
string inputs were given. Recorded once for every call to BatchAnnotate.
</summary>
<token key="AnnotationType" variants="AnnotationType"/>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotations.BatchSuccess.{AnnotationType}"
enum="BooleanSuccess" expires_after="2025-08-24">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records whether any input to a {AnnotationType} BatchAnnotate request was
executed successfully. Recorded once for every completed callback for
BatchAnnotate.
</summary>
<token key="AnnotationType" variants="AnnotationType"/>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotations.GoogleSearchMetadataExtracted"
enum="Boolean" expires_after="2026-03-29">
<owner>sophiechang@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records whether the TemplateURLService was able to extract metadata on a
Google SRP. Recorded once for each local visit to the Google SRP.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotations.JobExecutionTime.{AnnotationType}"
units="ms" expires_after="2025-08-24">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the total execution time of a {AnnotationType} BatchAnnotate
request. Recorded once for every completed callback for BatchAnnotate.
</summary>
<token key="AnnotationType" variants="AnnotationType"/>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotations.JobScheduleTime.{AnnotationType}"
units="ms" expires_after="M145">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the time a {AnnotationType} BatchAnnotate request was waiting in the
queue before execution started. Recorded once for every completed callback
for BatchAnnotate.
</summary>
<token key="AnnotationType" variants="AnnotationType"/>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.ContentAnnotated"
enum="BooleanAnnotated" expires_after="M145">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records whether the page content was annotated successfully, if submitted
for annotation. This will approximately be once a page load after the page
load has finished loading.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.ContentAnnotationsStorageStatus"
enum="PageContentAnnotationsStorageStatus" expires_after="M145">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records the status of whether the content annotations were stored in History
Service when the necessary data has been collected successfully. This will
be recorded multiple times per page load, for both the related searches as
well as the model annotations once the page has finished loading.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.ContentAnnotationsStorageStatus.{PageContentAnnotationsStorageType}"
enum="PageContentAnnotationsStorageStatus" expires_after="M145">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records the status of whether the {PageContentAnnotationsStorageType} were
stored in History Service when the data has been collected successfully.
This will record at most once per page load.
</summary>
<token key="PageContentAnnotationsStorageType"
variants="PageContentAnnotationsStorageType"/>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.RelatedSearchesCache.CacheHit"
enum="BooleanCacheHit" expires_after="2025-07-06">
<owner>khalidpeer@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records whether there was a cache hit when attempting to fetch the set of
related searches cached by the ZPS prefetching on SRP logic. This will be
recorded approximately once per successful Google SRP page load.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.RelatedSearchesExtracted"
enum="BooleanAnnotated" expires_after="M145">
<owner>mahmadi@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records whether related searches were successfully extracted from Google
SRP, if requested. This will be recorded approximately once per page load
after the page has finished loading.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.VisibilityScoreOfGoogleSRP"
units="score" expires_after="2026-04-26">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the visibility score of Google Search Result Pages when the page's
annotation is complete.
</summary>
</histogram>
<histogram name="OptimizationGuide.PageContentCache.AddPageContentResult"
enum="BooleanSuccess" expires_after="2026-05-10">
<owner>ssid@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records whether the AddPageContent database operation was successful.
Recorded each time the operation is performed.
</summary>
</histogram>
<histogram name="OptimizationGuide.PageContentCache.AvgPageSize" units="KB"
expires_after="2026-05-10">
<owner>ssid@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the average size of a cached page. Recorded after a delay
post-startup, only if there are cached tabs.
</summary>
</histogram>
<histogram name="OptimizationGuide.PageContentCache.CachedTabsCount"
units="tabs" expires_after="2026-05-10">
<owner>ssid@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the number of tabs that have cached content. Recorded after a delay
post-startup, only if the tab model is loaded.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentCache.EligibleTabsCachedPercentage"
units="%" expires_after="2026-05-10">
<owner>ssid@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the percentage of eligible tabs (tabs within last 7 days) that are
cached. Recorded after a delay post-startup, only if there are eligible
tabs.
</summary>
</histogram>
<histogram name="OptimizationGuide.PageContentCache.ExtractionAndCachingStatus"
enum="PageContentExtractionAndCachingStatus" expires_after="2026-05-10">
<owner>ssid@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the status of page content extraction and caching. Recorded each
time one of the events occurs.
</summary>
</histogram>
<histogram name="OptimizationGuide.PageContentCache.NotCachedTabsCount"
units="tabs" expires_after="2026-05-10">
<owner>ssid@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the number of tabs that do not have cached content. Recorded after a
delay post-startup, only if the tab model is loaded.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentCache.RemovePageContentForTabResult"
enum="BooleanSuccess" expires_after="2026-05-10">
<owner>ssid@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records whether the RemovePageContentForTab database operation was
successful. Recorded each time the operation is performed.
</summary>
</histogram>
<histogram name="OptimizationGuide.PageContentCache.StaleCacheEntriesCount"
units="entries" expires_after="2026-05-10">
<owner>ssid@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the number of stale cache entries without active tabs. Recorded
after a delay post-startup, only if the tab model is loaded.
</summary>
</histogram>
<histogram name="OptimizationGuide.PageContentCache.TotalCacheSize" units="KB"
expires_after="2026-05-10">
<owner>ssid@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the total size of the page content cache on disk. Recorded after a
delay post-startup.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionManager.DownloadServiceAvailabilityBlockedFetch"
enum="BooleanBlocked" expires_after="2026-11-09">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records whether the Download Service was unavailable and blocked a fetch
that would have happened otherwise. Only recorded if model downloads are
enabled for the session.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionManager.FirstModelFetchSinceServiceInit"
units="ms" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the time duration it took for the first model fetch to start from
the time the optimization guide service was initialized. Recorded once at
startup when the first model fetch happens.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionManager.ModelAvailableAtRegistration.{OptimizationTarget}"
enum="BooleanAvailable" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records whether the model was in the local store for {OptimizationTarget}
when the observer for {OptimizationTarget} was registered with the
prediction manager. Recorded at most once per session (profile start) when
{OptimizationTarget} is registered.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionManager.ModelDeliveryEvents.{OptimizationTarget}"
enum="OptimizationGuideModelDeliveryEvent" expires_after="2026-06-14">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the different events of prediction model delivery lifecycle for
{OptimizationTarget}, such as fetching model metadata, downloading model
file, verification, unzipping, etc. Recorded whenever lifecycle state
changes.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionManager.RegistrationTimeSinceServiceInit.{OptimizationTarget}"
units="ms" expires_after="2025-01-26">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the time duration it took for the feature to register with the
optimization guide for {OptimizationTarget} from the time the optimization
guide service was initialized. Recorded once when the feature registers with
the service.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelDownloadManager.DownloadStartLatency.{OptimizationTarget}"
units="ms" expires_after="2026-06-21">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the time duration it took for the model download to be started by
the download service for {OptimizationTarget} from the time it was requested
by the optimization guide. Recorded once per model download when model
download starts successfully.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelDownloadManager.DownloadStatus"
enum="OptimizationGuidePredictionModelDownloadStatus"
expires_after="2026-06-07">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
The status of verifying and processing model downloads. Recorded once per
file that was successfully downloaded via the Download Service.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelDownloadManager.DownloadSucceeded"
enum="BooleanSuccess" expires_after="2026-09-28">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records whether the Download Service notified whether a model download has
succeeded or failed.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelDownloadManager.ReplaceFileError.{OptimizationTarget}"
enum="PlatformFileError" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the exact error whenever writing a model file fails at the step
where the model is moved from the scratch directory to its final location.
Recorded every time a {OptimizationTarget} model file is downloaded and
being processed for storage.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelDownloadManager.State.{OptimizationTarget}"
enum="OptimizationGuidePredictionModelDownloadState"
expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
The state of a model download. Recorded multiple times per model file
download, as the state is changed.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.PredictionModelExpired.{OptimizationTarget}"
enum="BooleanExpired" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records whether a prediction model for an OptimizationTarget expired if it
was not updated or used within the configured expiration time, but can
change subject to Finch or server configuration. Recorded once per browser
startup.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelExpiredVersion.{OptimizationTarget}"
units="version number" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the version of a prediction model for an OptimizationTarget that
expired if it was not updated or used within the configured expiration time,
but can change subject to Finch or server configuration. Recorded once per
browser startup.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.NetErrorCode"
enum="NetErrorCodes" expires_after="2026-11-09">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Net error codes for GetModelsRequest to the Optimization Guide Service on
success and failure. Recorded once per GetModelsRequest where the model was
fetched for. It is not advisable to sum up the counts across
OptimizationTargets as the GetModelsRequests bundle requests for various
OptimizationTargets into single request to the server.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.NetErrorCode.{OptimizationTarget}"
enum="NetErrorCodes" expires_after="2026-07-05">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Net error codes for GetModelsRequest to the Optimization Guide Service on
success and failure for {OptimizationTarget}. Recorded once per
GetModelsRequest where the model for {OptimizationTarget} was fetched for.
It is not advisable to sum up the counts across OptimizationTargets as the
GetModelsRequests bundle requests for various OptimizationTargets into
single request to the server.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.Status"
enum="HttpResponseCode" expires_after="2026-09-07">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
For each GetModelsRequest to the Optimization Guide Service, log the HTTP
response code on success and failure. Recorded once per GetModelsRequest
where the model was fetched for. It is not advisable to sum up the counts
across OptimizationTargets as the GetModelsRequests bundle requests for
various OptimizationTargets into single request to the server.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.Status.{OptimizationTarget}"
enum="HttpResponseCode" expires_after="2025-12-14">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
For each GetModelsRequest to the Optimization Guide Service for
{OptimizationTarget}, log the HTTP response code on success and failure.
Recorded once per GetModelsRequest where the model for {OptimizationTarget}
was fetched for. It is not advisable to sum up the counts across
OptimizationTargets as the GetModelsRequests bundle requests for various
OptimizationTargets into single request to the server.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelLoadedVersion.{OptimizationTarget}"
units="version number" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the version of the prediction model that was loaded from the store
and used until updated by a fetch. Recorded only if the loaded model was
valid.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.PredictionModelRemoved.{OptimizationTarget}"
enum="Boolean" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Recorded whenever the prediction model for {OptimizationTarget} was removed
from the model store.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelStore.ModelCount.{OptimizationTarget}"
units="counts" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
The total number of model directories in the prediction model store for
{OptimizationTarget}. Recorded once at startup.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.PredictionModelStore.ModelRemovalReason"
enum="OptimizationGuidePredictionModelStoreModelRemovalReason"
expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the reason the prediction model was removed from the model store.
Recorded when the model is removed.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelStore.ModelRemovalReason.{OptimizationTarget}"
enum="OptimizationGuidePredictionModelStoreModelRemovalReason"
expires_after="2026-05-10">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the reason the prediction model for {OptimizationTarget} was removed
from the model store. Recorded when the model is removed.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelStore.TotalDirectorySize.{OptimizationTarget}"
units="MB" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
The total disk usage of the prediction model store attributed to
{OptimizationTarget}. Recorded once at startup.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelUpdateVersion.{OptimizationTarget}"
units="version number" expires_after="2026-06-28">
<owner>rajendrant@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
Records the version of the prediction model that was fetched as an update.
Recorded only if a model returned was valid and is available for use.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.ProcessHintsResult"
enum="OptimizationGuideProcessHintsResult" expires_after="2026-05-17">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Whether processing the hints succeeded or failed at a particular step.
Recorded when the OptimizationGuideService receives a notification to
process hints.
</summary>
</histogram>
<histogram name="OptimizationGuide.ProcessingComponentAtShutdown"
enum="BooleanYesNo" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Whether the Optimization Hints component was being processed when the hints
manager is told to shutdown.
</summary>
</histogram>
<histogram name="OptimizationGuide.PushNotifications.CachedNotificationCount"
units="count" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
The number of cached push notifications that were pulled from the Android
cache after the native persistent store became fully initialized. Recorded
once per native startup in cases where the cache did not overflow.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PushNotifications.CachedNotificationsHandledSuccessfully"
enum="BooleanSuccess" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Whether the push notification cache was handled successfully and was able to
be cleared out. Recorded once per each attempt at handling one cache shard.
</summary>
</histogram>
<histogram name="OptimizationGuide.PushNotifications.DidOverflow"
enum="Boolean" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records whether the Android push notification cache overflowed and caused
the whole store to be purged. Recorded once per native startup.
</summary>
</histogram>
<histogram name="OptimizationGuide.PushNotifications.ReadCacheResult"
enum="OptimizationGuideReadCacheResult" expires_after="M145">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the result of reading the cache of push notifications and parsing
the encoded cache into protobufs. This is recorded once for every encoded
protobuf that is read from cache.
</summary>
</histogram>
<histogram name="OptimizationGuide.PushNotifications.ReceivedNotificationType"
enum="OptimizationType" expires_after="2026-07-05">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Records the OptimizationType of the push notification. Recorded when the
notification is received and before the notification payload is delivered to
feature handlers.
</summary>
</histogram>
<histogram name="OptimizationGuide.RemoteFetchingEnabled" enum="BooleanEnabled"
expires_after="2026-05-10">
<owner>rajendrant@chromium.org</owner>
<owner>catliu@chromium.org</owner>
<summary>
Whether the session is enabled for fetching information from the remote
Optimization Guide Service. Recorded when the profile is initialized for the
session if Optimization Hints are enabled and the profile is a non-incognito
profile.
</summary>
</histogram>
<histogram name="OptimizationGuide.TextSafetyChecker.InferenceResult"
enum="OptimizationGuideTextSafetyInferenceResult"
expires_after="2026-07-05">
<owner>holte@google.com</owner>
<owner>wittman@chromium.org</owner>
<summary>
The result of a text safety inference request. Recorded once for each such
request.
</summary>
</histogram>
<histogram name="OptimizationGuide.TextSafetyChecker.InitTime" units="ms"
expires_after="2026-07-05">
<owner>holte@google.com</owner>
<owner>wittman@chromium.org</owner>
<summary>
The duration of the text safety checker's initialization time. Recorded once
for each new model execution session.
</summary>
</histogram>
<histogram name="OptimizationGuide.TextSafetyChecker.ModelCreationTime"
units="ms" expires_after="2026-07-05">
<owner>holte@google.com</owner>
<owner>wittman@chromium.org</owner>
<summary>
The duration elapsed during text safety model creation. Recorded once for
each text safety inference request.
</summary>
</histogram>
<histogram name="OptimizationGuide.TextSafetyChecker.ModelExecutionTime"
units="ms" expires_after="2026-05-03">
<owner>holte@google.com</owner>
<owner>wittman@chromium.org</owner>
<summary>
The duration of text safety model execution. Recorded once for each text
safety inference request.
</summary>
</histogram>
<histogram name="OptimizationGuide.TextSafetyChecker.TokensPerSecond"
units="counts" expires_after="2026-07-05">
<owner>holte@google.com</owner>
<owner>wittman@chromium.org</owner>
<summary>
An estimate of the text safety model's inference throughput in tokens per
second. Recorded once for each text safety inference request.
</summary>
</histogram>
</histograms>
</histogram-configuration>