| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| option java_outer_classname = "TranslateEventProtos"; |
| option java_package = "org.chromium.components.metrics"; |
| |
| package metrics; |
| |
| // Stores information about a single interaction between a user and |
| // the Translate UI. Contains features used by Translate Ranker for |
| // inference, information about the ranker model and its decision, as |
| // well as user or automated feedback from the Translate UI. |
| // Next tag: 16 |
| message TranslateEventProto { |
| // Language strings are two or three letter codes, with sometimes an extra |
| // suffix (for e.g. chinese zh-TW or zh-CN). See |
| // https://cs.chromium.org/chromium/src/components/translate/core/browser/translate_language_list.cc |
| // for a list of supported languages. |
| // Source language of the translation. |
| optional string source_language = 1; |
| // Target language of the translation. |
| optional string target_language = 2; |
| |
| // The country where the user is. 2-letter country code. This corresponds to |
| // the stored permanent country in VariationsService. |
| optional string country = 14; |
| |
| // The following counts are extracted from TranslatePrefs. |
| // The number of times the user accepted a translation for the |
| // source language. |
| optional int32 accept_count = 3; |
| // The number of times the user declined a translation for the |
| // source language. |
| optional int32 decline_count = 4; |
| // The number of times the user ignored a translation for the source |
| // language. |
| optional int32 ignore_count = 5; |
| |
| // Language list from the language settings. These are languages the user |
| // explicitly set in the language settings. |
| repeated string language_list = 6; |
| |
| // The version of the translate ranker model. |
| optional uint32 ranker_version = 7; |
| |
| // Timestamp of when the Ranker was queried, in seconds. |
| // This value comes from Chromium's TimeTicks::Now(), which is an abstract |
| // time value that is guaranteed to always be increasing (regardless of |
| // Daylight Saving Time or any other changes to the system clock). |
| // These numbers are only comparable within a session. To sequence events |
| // across sessions, order by the |session_id| from the |
| // ChromeUserMetricsExtension message. |
| optional int64 ranker_request_timestamp_sec = 8; |
| |
| // The decision of translate ranker whether we should show the UI or not. |
| enum RankerResponse { |
| SHOW = 0; |
| DONT_SHOW = 1; |
| NOT_QUERIED = 2; |
| } |
| optional RankerResponse ranker_response = 9 [default = NOT_QUERIED]; |
| |
| // The action performed by the user in the translate UI. |
| // Next tag: 28 |
| enum EventType { |
| // The feedback event does not correspond to any of the enumerated |
| // cases. |
| UNKNOWN = 0; |
| |
| // User actions. |
| // The user clicked 'Nope' in the UI. |
| USER_DECLINE = 1; |
| // The user clicked 'Translate' in the UI. |
| USER_ACCEPT = 2; |
| // The user explicitly closed the UI. |
| USER_DISMISS = 3; |
| // The user ignored the UI. |
| USER_IGNORE = 4; |
| // The user asked to never translate this source language. |
| USER_NEVER_TRANSLATE_LANGUAGE = 5; |
| // The user asked to never translate on this site. |
| USER_NEVER_TRANSLATE_SITE = 6; |
| // The user asked to always translate this source language. |
| USER_ALWAYS_TRANSLATE_LANGUAGE = 7; |
| // The user explicitly asked for a translation from the context menu. |
| USER_CONTEXT_MENU_TRANSLATE = 8; |
| // The user reverted the translation. |
| USER_REVERT = 9; |
| |
| // Deprecated. Use AUTO_TRANSLATION_BY_PREF or AUTO_TRANSLATION_BY_LINK |
| // instead. |
| AUTOMATICALLY_TRANSLATED = 10; |
| // Automated feedback. |
| // An automatic translation was triggered. |
| // User sets always translate in user settings. |
| AUTO_TRANSLATION_BY_PREF = 25; |
| // User navigated through a click from a translated page. |
| AUTO_TRANSLATION_BY_LINK = 26; |
| // The translation was not offered because translate is disabled |
| // globally in the user preferences. |
| DISABLED_BY_PREF = 11; |
| // The translation was not offered because this language is |
| // blacklisted in the user config. |
| LANGUAGE_DISABLED_BY_USER_CONFIG = 12; |
| // The translation was not offered because this language or URL is |
| // blacklisted in the user config. |
| URL_DISABLED_BY_USER_CONFIG = 13; |
| // The translation was not offered because this language has been denied too |
| // many times. |
| LANGUAGE_DISABLED_BY_AUTO_BLACKLIST = 14; |
| // The translation was not offered because Ranker dismissed it. |
| DISABLED_BY_RANKER = 15; |
| // The translation was not offered because the source or target |
| // language is not supported. |
| UNSUPPORTED_LANGUAGE = 16; |
| // The translation was not offered because the URL is not |
| // supported (e.g. New Tab Page). |
| UNSUPPORTED_URL = 17; |
| // The previous page was in the same language, so the translate UI was |
| // suppressed. |
| MATCHES_PREVIOUS_LANGUAGE = 18; |
| // The translate UI was not shown because the browser window associated with |
| // the translate event has gone away. |
| BROWSER_WINDOW_IS_INVALID = 19; |
| // The translate UI was not shown because the browser window for the |
| // translate prompt is no longer active. |
| BROWSER_WINDOW_NOT_ACTIVE = 20; |
| // The translate UI was not shown because the browser window is minimized. |
| BROWSER_WINDOW_IS_MINIMIZED = 21; |
| // The translate UI was not shown because the web context for the translate |
| // prompt is no longer active. |
| WEB_CONTENTS_NOT_ACTIVE = 22; |
| // The translate UI was not shown because the user is editing a form field. |
| EDITABLE_FIELD_IS_ACTIVE = 23; |
| // The translate UI was not shown because the language is in the user's User |
| // Language Profile. |
| LANGUAGE_IN_ULP = 24; |
| // Failed to initialize the translate script, this can happen for iOS due |
| // to CSPs. |
| INITIALIZATION_ERROR = 27; |
| } |
| |
| // Event received from translate UI. |
| optional EventType event_type = 10; |
| |
| // Decisions that have been overriden by translate ranker (e.g. |
| // LANGUAGE_DISABLED_BY_AUTO_BLACKLIST). |
| repeated EventType decision_overrides = 15; |
| |
| // The timestamp for the event, in seconds. |
| // This value comes from Chromium's TimeTicks::Now(), which is an abstract |
| // time value that is guaranteed to always be increasing (regardless of |
| // Daylight Saving Time or any other changes to the system clock). |
| // These numbers are only comparable within a session. To sequence events |
| // across sessions, order by the |session_id| from the |
| // ChromeUserMetricsExtension message. |
| optional int64 event_timestamp_sec = 11; |
| |
| // Modified source language, if the user changed it. If changed more than |
| // once, we only keep the last one. |
| optional string modified_source_language = 12; |
| // Modified target language, if the user changed it. If changed more than |
| // once, we only keep the last one. |
| optional string modified_target_language = 13; |
| } |