blob: b9a4150e9ec7e84c480cfa76f4b9e0bc21803d75 [file] [log] [blame]
// Copyright 2018 The Feed Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package search.now.wire.feed;
option optimize_for=LITE_RUNTIME;
import "src/main/proto/search/now/wire/feed/action_payload.proto";
import "src/main/proto/search/now/wire/feed/content_id.proto";
import "src/main/proto/search/now/wire/feed/semantic_properties.proto";
option java_package = "com.google.search.now.wire.feed";
option java_outer_classname = "FeedActionProto";
message FeedAction {
// The Id for the content that this action was triggered on.
optional ContentId content_id = 1;
// Additional logging data that is on a per-action level
optional ActionPayload action_payload = 4;
// Client-generated data that pertains to the action.
optional ClientData client_data = 5;
// Fields beyond ID needed to determine uniqueness for the card or collection.
// Opaque to the client, round-tripped from the server.
optional SemanticProperties semantic_properties = 6;
// Next Id: 7
reserved 2, 3;
// The data the client provides to the server.
message ClientData {
// When the action was recorded on the client
optional int64 timestamp_seconds = 1;
// A monotonically-increasing sequence number that increments per
// user + device. Used in experiments to measure action loss between client
// and server.
optional int64 sequence_number = 2;
// The duration for the action in milliseconds. In case of view actions this
// is the duration for which the content is considered "viewed".
optional int64 duration_ms = 3;
enum ActionOrigin {
UNKNOWN_ORIGIN = 0;
// Action generated from the current session on the client.
CLIENT_SESSION = 1;
// Action was previously cached on the client.
CLIENT_CACHE = 2;
}
// The surface an action was taken on.
enum ActionSurface {
UNKNOWN_SURFACE = 0;
ANDROID_CHROME_NEW_TAB = 7;
}
// What surface the action came from - AGA, iGA, -1, secondary screen etc.
optional ActionSurface action_surface = 5;
// Where the action came from on the client.
// Optional: This field is purely for diagnostics.
optional ActionOrigin action_origin = 4;
}
}