chromium/third_party/metrics_proto/chrome_os_app_list_launch_event.proto

// 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.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.metrics";

package metrics;

// Provides information about the launch of an item (such as an app or a file)
// from the ChromeOS launcher. One event is recorded for every launch
// originating from any launcher UI component, and this is the only circumstance
// that records events. All fields prefixed with "hashed_" are hashed-and-
// peppered values: the value is concatenated with a user-specific secret value,
// and then hashed. For privacy reasons this process is designed to be one-way,
// so that the server cannot easily recover the original values.
//
// Next tag: 10
message ChromeOSAppListLaunchEventProto {
  // A per-user, per-client ID that is used only for app list launch event
  // logging.
  optional fixed64 recurrence_ranker_user_id = 1;

  // Enumerates the different UI components of the launcher that a user can
  // perform a launch from.
  enum LaunchType {
    // No launch type specified. This is invalid and will cause the event to be
    // dropped.
    LAUNCH_TYPE_UNSPECIFIED = 0;
    // Launches from the zero-state suggested apps chips or app search result
    // tiles.
    APP_TILES = 1;
    // Launches from the non-apps search result list.
    RESULTS_LIST = 2;
  }
  optional LaunchType launch_type = 2;

  // Hour of the day from 0 to 23 inclusive. This is the user's local time
  // rounded to the nearest hour.
  optional int32 hour = 3;

  // String length of the search query associated with this launch. If there was
  // no query, this is zero.
  optional int32 search_query_length = 4;

  // Below here, all fields are hashed data.

  // The hashed target item of the launch, eg. an app ID, filepath, or omnibox
  // suggestion.
  optional fixed64 hashed_target = 5;

  // The hashed search query associated with the launch. Before hashing, the
  // query is the empty string if there is no search query for this launch.
  optional fixed64 hashed_query = 6;

  // Hashed of the most-recently-visited domain when this launch occurred.
  optional fixed64 hashed_domain = 7;

  // Hash of the app ID of the most-recently-opened app when this launch
  // occurred. This can be an app ID of a Chrome app, Arc++ app, or PWA.
  optional fixed64 hashed_app = 8;

  // Which search provider produced the launched item.
  enum SearchProviderType {
    // No result type specified.
    PROVIDER_UNSPECIFIED = 0;
    // Recent queries from the Omnibox provider.
    OMNIBOX = 1;
    // Zero-state files provider.
    ZERO_STATE_FILE = 2;
    // Drive QuickAccess provider.
    DRIVE_QUICK_ACCESS = 3;
  }
  optional SearchProviderType search_provider_type = 9;
}