OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 syntax = "proto2"; |
| 6 |
| 7 option optimize_for = LITE_RUNTIME; |
| 8 |
| 9 package chrome_variations; |
| 10 |
| 11 // This defines the Protocol Buffer representation of a Chrome Variations study |
| 12 // as sent to clients of the Variations server. |
| 13 // |
| 14 // Next tag: 10 |
| 15 message Study { |
| 16 // The name of the study. Should not contain spaces or special characters. |
| 17 // Ex: "my_study" |
| 18 required string name = 1; |
| 19 |
| 20 // The start date of the study in Unix time format. (Seconds since midnight |
| 21 // January 1, 1970 UTC). See: http://en.wikipedia.org/wiki/Unix_time |
| 22 // Ex: 1330893974 (corresponds to 2012-03-04 20:46:14Z) |
| 23 optional int64 start_date = 2; |
| 24 |
| 25 // The expiry date of the study in Unix time format. (Seconds since midnight |
| 26 // January 1, 1970 UTC). See: http://en.wikipedia.org/wiki/Unix_time |
| 27 // Ex: 1330893974 (corresponds to 2012-03-04 20:46:14Z) |
| 28 optional int64 expiry_date = 3; |
| 29 |
| 30 // The minimum Chrome version for this study, allowing a trailing '*' |
| 31 // character for pattern matching. Inclusive. (To check for a match, iterate |
| 32 // over each component checking >= until a * or end of string is reached.) |
| 33 // Optional - if not specified, there is no minimum version. |
| 34 // Ex: "17.0.963.46", "17.0.963.*", "17.*" |
| 35 optional string min_version = 4; |
| 36 |
| 37 // The maximum Chrome version for this study; same formatting as |min_version| |
| 38 // above. Inclusive. (To check for a match, iterate over each component |
| 39 // checking <= until a * or end of string is reached.) |
| 40 // Optional - if not specified, there is no maximum version. |
| 41 // Ex: "19.*" |
| 42 optional string max_version = 5; |
| 43 |
| 44 // Possible Chrome release channels. |
| 45 // See: http://dev.chromium.org/getting-involved/dev-channel |
| 46 enum Channel { |
| 47 CANARY = 0; |
| 48 DEV = 1; |
| 49 BETA = 2; |
| 50 STABLE = 3; |
| 51 } |
| 52 |
| 53 // List of channels that will receive this study. If omitted, the study |
| 54 // applies to all channels. |
| 55 // Ex: [BETA, STABLE] |
| 56 repeated Channel channel = 6; |
| 57 |
| 58 // Consistency setting for a study. |
| 59 enum Consistency { |
| 60 SESSION = 0; // Can't change within a session. |
| 61 PERMANENT = 1; // Can't change for a given user. |
| 62 } |
| 63 |
| 64 // Consistency setting for this study. Optional - defaults to SESSION. |
| 65 // Ex: PERMANENT |
| 66 optional Consistency consistency = 7 [default = SESSION]; |
| 67 |
| 68 // Name of the experiment that gets the default experience. This experiment |
| 69 // must be included in the list below. |
| 70 // Ex: "default" |
| 71 optional string default_experiment_name = 8; |
| 72 |
| 73 // An experiment within the study. |
| 74 // |
| 75 // Next tag: 4 |
| 76 message Experiment { |
| 77 // The name of the experiment within the study. |
| 78 // Ex: "bucketA" |
| 79 required string name = 1; |
| 80 // The cut of the total probability taken for this group (the x in x / N, |
| 81 // where N is the sum of all x’s). |
| 82 // Ex: "50" |
| 83 required uint32 probability_weight = 2; |
| 84 // Optional id used to uniquely identify this experiment. |
| 85 optional uint64 experiment_id = 3; |
| 86 } |
| 87 |
| 88 // List of experiments in this study. This list should include the default / |
| 89 // control group. |
| 90 // |
| 91 // For example, to specify that 99% of users get the default behavior, while |
| 92 // 0.5% of users get experience "A" and 0.5% of users get experience "B", |
| 93 // specify the values below. |
| 94 // Ex: { "default": 990, "A": 5, "B": 5 } |
| 95 repeated Experiment experiment = 9; |
| 96 } |
OLD | NEW |