// 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;
package notifications.proto;
import "notification_data.proto";
// Contains data to determine when a notification should be shown to the user
// and the user impression towards this notification. Should match Impression in
// impression_types.h.
// Next tag: 9
message Impression {
// The type of user feedback from a displayed notification. Should match
// UserFeedback in notification_scheduler_types.h.
enum UserFeedback {
NO_FEEDBACK = 0;
HELPFUL = 1;
NOT_HELPFUL = 2;
CLICK = 3;
DISMISS = 4;
IGNORE = 5;
}
// The user impression of a particular notification. Should match
// ImpressionResult in notification_scheduler_types.h.
enum ImpressionResult {
INVALID = 0;
POSITIVE = 1;
NEGATIVE = 2;
NEUTRAL = 3;
}
// Used to override default user action and impression mapping.
// Next tag: 3
message ImpressionMapping {
optional UserFeedback user_feedback = 1;
optional ImpressionResult impression_result = 2;
}
// Creation time stamp in milliseconds since epoch.
optional int64 create_time = 1;
// The user feedback on the notification.
optional UserFeedback feedback = 2;
// The impression type.
optional ImpressionResult impression = 3;
// If the user feedback is used in computing the current notification deliver
// rate.
optional bool integrated = 4;
// The unique identifier of the notification.
optional string guid = 5;
// Used to generate impression result.
repeated ImpressionMapping impression_mapping = 6;
// Custom data associated with a notification.
repeated CustomData custom_data = 7;
// Duration to mark NO_FEEDBACK notification as IGNORE.
optional int64 ignore_timeout_duration = 8;
}