114 lines
5.0 KiB
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
|
|
}
|