blob: 3aba89044a24d66ebf345aea43b249437f7053e6 [file] [log] [blame]
// Copyright 2020 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 feedwire;
option optimize_for=LITE_RUNTIME;
import "src/trellis/proto/action_payload.proto";
import "src/trellis/proto/content_id.proto";
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 = 2;
// Client-generated data that pertains to the action.
optional ClientData client_data = 3;
// Next Id: 7
// 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;
}
reserved 4, 5, 6;
}