| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROMEOS_COMPONENTS_QUICK_ANSWERS_UTILS_QUICK_ANSWERS_METRICS_H_ |
| #define CHROMEOS_COMPONENTS_QUICK_ANSWERS_UTILS_QUICK_ANSWERS_METRICS_H_ |
| |
| #include "chromeos/components/quick_answers/quick_answers_model.h" |
| |
| namespace base { |
| class TimeDelta; |
| } // namespace base |
| |
| namespace quick_answers { |
| |
| // The different TTS engine events that are received by the quick |
| // answers utterance event delegate. |
| // |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| // Also remember to update the QuickAnswersTextToSpeechEngineEvent enum |
| // listing in tools/metrics/histograms/enums.xml. |
| enum class TtsEngineEvent { |
| TTS_EVENT_START = 0, |
| TTS_EVENT_END = 1, |
| TTS_EVENT_ERROR = 2, |
| TTS_EVENT_OTHER = 3, |
| |
| kMaxValue = TTS_EVENT_OTHER |
| }; |
| |
| // Enumeration of dictionary intent source type. |
| // |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| // Also remember to update the QuickAnswersDictionaryIntentSource enum |
| // listing in tools/metrics/histograms/enums.xml. |
| enum class DictionaryIntentSource { |
| kTextClassifier = 0, |
| kHunspell = 1, |
| |
| kMaxValue = kHunspell, |
| }; |
| |
| // Record the status of loading quick answers with status and duration. |
| void RecordLoadingStatus(LoadStatus status, const base::TimeDelta duration); |
| |
| // Record loading result with result type and network latency. |
| void RecordResult(ResultType result_type, const base::TimeDelta duration); |
| |
| // Record quick answers user clicks with result type and duration between result |
| // fetch finish and user clicks. |
| void RecordClick(ResultType result_type, const base::TimeDelta duration); |
| |
| // Record selected text length to learn about usage pattern. |
| void RecordSelectedTextLength(int length); |
| |
| // Record selected text length of requests sent out to learn about usage |
| // pattern. |
| void RecordRequestTextLength(IntentType intent_type, int length); |
| |
| // Record active impression with result type and impression duration. |
| void RecordActiveImpression(ResultType result_type, |
| const base::TimeDelta duration); |
| |
| // Record the intent generated on-device. |
| void RecordIntentType(IntentType intent_type); |
| |
| // Record the intent type when network error occurs. |
| void RecordNetworkError(IntentType intent_type, int response_code); |
| |
| // Record the TTS engine event types as they occur in quick answers. |
| void RecordTtsEngineEvent(TtsEngineEvent event); |
| |
| // Record the source type of dictionary intent. |
| void RecordDictionaryIntentSource(DictionaryIntentSource source); |
| |
| // Record the query language of dictionary intent. |
| void RecordDictionaryIntentLanguage(const std::string& language); |
| |
| // Record the feature enabled status when the first user session starts. |
| void RecordFeatureEnabled(bool enabled); |
| |
| } // namespace quick_answers |
| |
| #endif // CHROMEOS_COMPONENTS_QUICK_ANSWERS_UTILS_QUICK_ANSWERS_METRICS_H_ |