the-algorithm/user-signal-service/thrift/src/main/thrift/signal.thrift

114 lines
5.0 KiB
Thrift

namespace java com.twitter.usersignalservice.thriftjava
namespace py gen.twitter.usersignalservice.signal
#@namespace scala com.twitter.usersignalservice.thriftscala
#@namespace strato com.twitter.usersignalservice.strato
include "com/twitter/simclusters_v2/identifier.thrift"
enum SignalType {
/**
Please maintain the key space rule to avoid compatibility issue for the downstream production job
* Prod Key space: 0-1000
* Devel Key space: 1000+
**/
/* tweet based signals */
TweetFavorite = 0, // 540 Days Looback window
Retweet = 1, // 540 Days Lookback window
TrafficAttribution = 2,
OriginalTweet = 3, // 540 Days Looback window
Reply = 4, // 540 Days Looback window
/* Tweets that the user shared (sharer side)
* V1: successful shares (click share icon -> click in-app, or off-platform share option
* or copying link)
* */
TweetShare_V1 = 5, // 14 Days Lookback window
TweetFavorite_90D_V2 = 6, // 90 Days Lookback window : tweet fav from user with recent engagement in the past 90 days
Retweet_90D_V2 = 7, // 90 Days Lookback window : retweet from user with recent engagement in the past 90 days
OriginalTweet_90D_V2 = 8, // 90 Days Lookback window : original tweet from user with recent engagement in the past 90 days
Reply_90D_V2 = 9,// 90 Days Lookback window : reply from user with recent engagement in the past 90 days
GoodTweetClick = 10,// GoodTweetCilick Signal : Dwell Time Threshold >=2s
// video tweets that were watched (10s OR 95%) in the past 90 days, are not ads, and have >=10s video
VideoView_90D_Quality_V1 = 11 // 90 Days Lookback window
// video tweets that were watched 50% in the past 90 days, are not ads, and have >=10s video
VideoView_90D_Playback50_V1 = 12 // 90 Days Lookback window
/* user based signals */
AccountFollow = 100, // infinite lookback window
RepeatedProfileVisit_14D_MinVisit2_V1 = 101,
RepeatedProfileVisit_90D_MinVisit6_V1 = 102,
RepeatedProfileVisit_180D_MinVisit6_V1 = 109,
RepeatedProfileVisit_14D_MinVisit2_V1_No_Negative = 110,
RepeatedProfileVisit_90D_MinVisit6_V1_No_Negative = 111,
RepeatedProfileVisit_180D_MinVisit6_V1_No_Negative = 112,
RealGraphOon = 104,
TrafficAttributionProfile_30D_LastVisit = 105,
TrafficAttributionProfile_30D_DecayedVisit = 106,
TrafficAttributionProfile_30D_WeightedEventDecayedVisit = 107,
TrafficAttributionProfile_30D_DecayedVisit_WithoutAgathaFilter = 108,
GoodProfileClick = 120, // GoodTweetCilick Signal : Dwell Time Threshold >=10s
AdFavorite = 121, // Favorites filtered to ads TweetFavorite has both organic and ads Favs
// AccountFollowWithDelay should only be used by high-traffic clients and has 1 min delay
AccountFollowWithDelay = 122,
/* notifications based signals */
/* V1: notification clicks from past 90 days with negative events (reports, dislikes) being filtered */
NotificationOpenAndClick_V1 = 200,
/*
negative signals for filter
*/
NegativeEngagedTweetId = 901 // tweetId for all negative engagements
NegativeEngagedUserId = 902 // userId for all negative engagements
AccountBlock = 903,
AccountMute = 904,
// skip 905 - 906 for Account report abuse / report spam
// User clicked dont like from past 90 Days
TweetDontLike = 907
// User clicked see fewer on the recommended tweet from past 90 Days
TweetSeeFewer = 908
// User clicked on the "report tweet" option in the tweet caret dropdown menu from past 90 days
TweetReport = 909
/*
devel signals
use the num > 1000 to test out signals under development/ddg
put it back to the correct corresponding Key space (0-1000) before ship
*/
GoodTweetClick_5s = 1001,// GoodTweetCilick Signal : Dwell Time Threshold >=5s
GoodTweetClick_10s = 1002,// GoodTweetCilick Signal : Dwell Time Threshold >=10s
GoodTweetClick_30s = 1003,// GoodTweetCilick Signal : Dwell Time Threshold >=30s
GoodProfileClick_20s = 1004,// GoodProfileClick Signal : Dwell Time Threshold >=20s
GoodProfileClick_30s = 1005,// GoodProfileClick Signal : Dwell Time Threshold >=30s
GoodProfileClick_Filtered = 1006, // GoodProfileClick Signal filtered by blocks and mutes.
GoodProfileClick_20s_Filtered = 1007// GoodProfileClick Signal : Dwell Time Threshold >=20s, filtered byblocks and mutes.
GoodProfileClick_30s_Filtered = 1008,// GoodProfileClick Signal : Dwell Time Threshold >=30s, filtered by blocks and mutes.
/*
Unified Signals
These signals are aimed to unify multiple signal fetches into a single response.
This might be a healthier way for our retrievals layer to run inference on.
*/
TweetBasedUnifiedUniformSignal = 1300
TweetBasedUnifiedEngagementWeightedSignal = 1301
TweetBasedUnifiedQualityWeightedSignal = 1302
ProducerBasedUnifiedUniformSignal = 1303
ProducerBasedUnifiedEngagementWeightedSignal = 1304
ProducerBasedUnifiedQualityWeightedSignal = 1305
}
struct Signal {
1: required SignalType signalType
2: required i64 timestamp
3: optional identifier.InternalId targetInternalId
}