public final class BidCandidateManager extends Object implements Runnable, Lot49Constants
Ad
s and their Tag
s for a given bid
request, and sending the response.Copyright © Enremmeta LLC 2015. All Rights Reserved.
Modifier and Type | Field and Description |
---|---|
private javax.ws.rs.container.AsyncResponse |
asyncResp |
private OpenRtbRequest |
bReq |
private OpenRtbResponse |
bResp |
private List<BidCandidate> |
candidates |
private UserExperimentAttributes |
experimentData |
private ScheduledFuture |
futureSelf |
private IntegralInfoReceived |
integralInfoReceived |
private boolean |
isUnderExperiment |
private int |
runCount |
private AtomicBoolean |
running |
private boolean |
shouldSaveUserAttributes |
private long |
startTime |
private long |
timeout |
private long |
timeSpent |
private UserAttributes |
userAttributes |
private Future<UserAttributes> |
userAttributesFuture |
private UserSegments |
userSegments |
private Future<UserSegments> |
userSegmentsFuture |
AD_FILENAME_PREFIX, AUCTION_RESULTS_PATH_ADX, AUCTION_RESULTS_PATH_OPENX, AUCTION_RESULTS_PATH_PUBMATIC, BID_OUTCOME_CONTROL, BID_OUTCOME_INTERNAL_AUCTION_LOSS, BID_OUTCOME_SUBMITTED, BID_PRICE_CALCULATOR_FILENAME_PREFIX, COOKIE_PREFIX_A, DECISION_BIDS_MADE, DECISION_BIDS_NEEDED, DECISION_BIDS_POSSIBLE, DECISION_BRANDSAFETY, DECISION_BROWSER, DECISION_BUDGET, DECISION_CATEGORY, DECISION_DATE, DECISION_DAY, DECISION_DEVICE, DECISION_DOMAIN_REQUIRED, DECISION_DOMAIN_UNMATCHED, DECISION_EVALUATION_ERROR, DECISION_EXCHANGE, DECISION_EXPERIMENT_CONTROL_SET, DECISION_FLOOR, DECISION_FREQ_CAP, DECISION_GEO, DECISION_HOST, DECISION_HOUR, DECISION_INTEGRAL, DECISION_INTEGRAL_URL, DECISION_INTERNAL_AUCTION, DECISION_IP_BLACKLISTED, DECISION_LANGUAGE, DECISION_LOADING_ERROR, DECISION_NO_IMPRESSIONS, DECISION_NO_USER, DECISION_OS, DECISION_PACING, DECISION_PRIVATE_DEAL, DECISION_PROBABILITY, DECISION_PROVIDER, DECISION_SSP, DECISION_TAG, DECISION_TIMEOUT_EXPERIMENT_STATUS, DECISION_TIMEOUT_FC, DECISION_TIMEOUT_INTEGRAL, DECISION_TIMEOUT_UNKNOWN, DECISION_TIMEOUT_USERDATA, DECISION_TRAQ, DECISION_URL, DECISION_USER_UNKNOWN, DECISION_VALIDATION, DECISION_VIEWABILITY, DECISION_WRONG_USER, DEFAULT_CLICK_PATH_ABSOLUTE, DEFAULT_CLICK_PATH_RELATIVE, DEFAULT_IMPRESSION_PATH_ABSOLUTE, DEFAULT_IMPRESSION_PATH_RELATIVE, DEFAULT_NURL_PATH_ABSOLUTE, DEFAULT_NURL_PATH_RELATIVE, DEFAULT_PIXEL_PATH_ABSOLUTE, DEFAULT_PIXEL_PATH_RELATIVE, DEFAULT_PROUST_PATH_ABSOLUTE, DEFAULT_PROUST_PATH_RELATIVE, DEFAULT_REDIR_PATH_ABSOLUTE, DEFAULT_REDIR_PATH_RELATIVE, DEFAULT_TEST_PATH_RELATIVE, EXCHANGE_ADAPTV, EXCHANGE_ADX, EXCHANGE_BIDSWITCH, EXCHANGE_BRX, EXCHANGE_LIVERAIL, EXCHANGE_LOT49_INTERNAL_AUCTION, EXCHANGE_OPENX, EXCHANGE_PUBMATIC, EXCHANGE_SMAATO, EXCHANGE_SPOTXCHANGE, EXCHANGE_TEST1, EXCHANGE_TEST2, LOT49_VERSION_KEY, LOT49_VERSION_VALUE, MEDIA_TYPE_APPLICATION_JAVASCRIPT, MEDIA_TYPE_APPLICATION_SHOCKWAVE_FLASH, MEDIA_TYPE_VIDEO_FLV, MEDIA_TYPE_VIDEO_MP4, MOD_UID_COOKIE_LENGTH_MAX, MOD_UID_COOKIE_LENGTH_MIN, MOD_UID_LOG_LENGTH, NAME, NURL_ONLY_TAG, NURL_ONLY_WIN_NOTIFICATION, NURL_STANDART, QUERY_STRING_EXCHANGE_CLICK_THROUGH_ENCODED_MACRO, QUERY_STRING_EXCHANGE_CLICK_THROUGH_MACRO, QUERY_STRING_LOT49_CLICK_THROUGH_MACRO, REL_PATH_DEBUG_NURL, ROOT_PATH_ADMIN, ROOT_PATH_AUCTIONS, ROOT_PATH_STATS, TAG_DECISION_API, TAG_DECISION_DIMENSIONS, TAG_DECISION_DURATION, TAG_DECISION_MIME, TAG_DECISION_NOT_BANNER, TAG_DECISION_NOT_VIDEO, TAG_DECISION_PROTOCOL, TAG_DECISION_REQUEST_DISALLOWS_MARKUP, TAG_DECISION_SSL_REQUIRED, TAG_DECISION_VIDEO_LINEARITY, TAG_FILENAME_PREFIX, TEST_MOD_UID_COOKIE_1, TEST_MOD_UID_COOKIE_2, TEST_MOD_UID_COOKIE_3, TEST_MOD_UID_COOKIE_4, TEST_MOD_UID_LOG_1, TEST_MOD_UID_LOG_2, TEST_MOD_UID_LOG_3, TEST_MOD_UID_LOG_4
Constructor and Description |
---|
BidCandidateManager(OpenRtbRequest bReq,
OpenRtbResponse bResp,
javax.ws.rs.container.AsyncResponse asyncResp,
long timeout)
Constructor
|
private ScheduledFuture futureSelf
private final long timeout
private final long startTime
private final OpenRtbRequest bReq
private final OpenRtbResponse bResp
private final javax.ws.rs.container.AsyncResponse asyncResp
private AtomicBoolean running
private int runCount
private long timeSpent
private IntegralInfoReceived integralInfoReceived
private Future<UserAttributes> userAttributesFuture
private UserAttributes userAttributes
private UserExperimentAttributes experimentData
private boolean isUnderExperiment
private boolean shouldSaveUserAttributes
private Future<UserSegments> userSegmentsFuture
private UserSegments userSegments
private final List<BidCandidate> candidates
public BidCandidateManager(OpenRtbRequest bReq, OpenRtbResponse bResp, javax.ws.rs.container.AsyncResponse asyncResp, long timeout)
bReq
- Current BidRequestbResp
- BidResponse to fill inasyncResp
- AsyncResponse to sendtimeout
- Exchange-specific timeout after which to either decline to bid or send whatever we
have ready and stop trying.OpenRtbRequest.getTmax()
,
ExchangeAdapter.getDefaultTimeout()
public final OpenRtbRequest getBidRequest()
public void setFutureSelf(ScheduledFuture futureSelf)
public final void requestUserSegments(String uid)
public Future<UserSegments> getUserSegmentsFuture()
public UserSegments getUserSegments()
public void setUserSegments(UserSegments userSegments)
public void setUserAttributes(UserAttributes userAttributes)
public UserAttributes getUserAttributes()
public final void requestUserAttributes(String uid)
public final Future<UserAttributes> getUserAttributesFuture()
public final void putUnderExperiment()
public final void requestIntegralInfo(String url)
public IntegralInfoReceived getIntegralInfoReceived()
public void run()
ServiceRunner.getExecutor()
.public void add(BidCandidate bc)
public int getCandidateCount()
public List<BidCandidate> getCandidates()
public BidCandidate getCandidate(int idx)
private boolean postProcessBid(OpenRtbRequest req, Ad ad, Bid bid, boolean multiple)
public void setBids(OpenRtbRequest req, OpenRtbResponse resp)
private final String getPrefix()
private void trace(String s)