public abstract class TagImpl extends Object implements Tag, Lot49Constants
| Modifier and Type | Field and Description |
|---|---|
private Ad |
ad |
protected int |
api |
protected boolean |
banner |
private ServiceRunner |
bidder |
protected String |
clickRedir |
protected String |
customImpPassThruData |
protected String |
desc |
protected Dimension |
dim |
protected int |
duration |
protected ExchangeTargeting |
exchangeTargeting |
private String |
id |
protected String |
impRedir |
private SortedMap<String,AtomicLong> |
impsConsideredByExchange |
protected boolean |
linear |
protected MarkupType |
markupType |
protected String |
mime |
protected List<String> |
mimes |
protected String |
name |
private SortedMap<String,SortedMap<String,AtomicLong>> |
optoutsByExchange |
private int |
passedCount |
protected int |
protocol |
private String |
secureStatsUrl |
protected boolean |
sslCapable
Default is true.
|
private String |
statsUrl |
protected String |
tagVersion |
protected boolean |
test |
private ConcurrentMap<String,String> |
uniqOptoutReasonMap |
protected boolean |
video |
protected boolean |
vpaid |
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_4B_TOOK_CARE_OF_IT_ERROR, B_TOOK_CARE_OF_IT_LOSS, B_TOOK_CARE_OF_IT_WIN, BID_AMOUNT_DISPLAY_PREFIX, BID_AMOUNT_PREFIX, BID_COUNT_DISPLAY_PREFIX, BID_COUNT_PREFIX, BID_PREFIX, BID_PRICE_PREFIX, BID_REQUEST_PREFIX, BIDDER_COUNT_KEY, BUDGET_CHUNK_SIZE_PREFIX, BUDGET_MAP_KEY, BUDGET_PREFIX, BUDGET_UNLIMITED, COOKIE_TS_CLICK, COOKIE_TS_IMPRESSION, DEBUG_NURL_PREFIX, DECISION_DISPLAY_PREFIX, ENDS_ON_PREFIX, ENV_AWS_REGION, ENV_DYNAMO_ENDPOINT, ENV_EC2_ENDPOINT, ENV_ELB_ENDPOINT, ENV_LOT49_CONFIG_FILE, ENV_LOT49_HOME, ENV_LOT49_MAGIC, ENV_STS_ENDPOINT, LOWER_BID_PROBABILITY, NURL_PREFIX, OWNER_KEY_PREFIX, PACING_ASAP, PACING_LOG_PREFIX, PREFIX_VERSION, PREVIOUS_SPEND_AMOUNT_PREFIX, SEGMENT_PREFIX, SPEND_AMOUNT_DISPLAY_PREFIX, SPEND_AMOUNT_PREFIX, STARTS_ON_PREFIX, USER_DATA_SCORE_KEY, USER_PREFIX_V1, WIN_COUNT_DISPLAY_PREFIX, WIN_COUNT_PREFIX, WIN_RATE_STARTED_TSAPI_MRAID, API_ORMMA, API_VPAID_1, API_VPAID_2, AUCTION_TYPE_FIRST_PRICE, AUCTION_TYPE_FIXED_PRICE, AUCTION_TYPE_SECOND_PRICE_PLUS, AUCTION_TYPE_UNKNOWN, BR_HTML5_1_0_VALUE, BR_HTML5_2_0_VALUE, CONNECTION_TYPE_CELL_2G, CONNECTION_TYPE_CELL_3G, CONNECTION_TYPE_CELL_4G, CONNECTION_TYPE_CELL_UNKNOWN, CONNECTION_TYPE_ETHERNET, CONNECTION_TYPE_UNKNOWN, CONNECTION_TYPE_WIFI, CONTENT_CONTEXT_APP, CONTENT_CONTEXT_GAME, CONTENT_CONTEXT_MUSIC, CONTENT_CONTEXT_OTHER, CONTENT_CONTEXT_TEXT, CONTENT_CONTEXT_UNKNOWN, CONTENT_CONTEXT_VIDEO, DEVICE_TYPE_CONNECTED_DEVICE, DEVICE_TYPE_CONNECTED_TV, DEVICE_TYPE_MOBILE_TABLET, DEVICE_TYPE_PC, DEVICE_TYPE_PHONE, DEVICE_TYPE_STB, DEVICE_TYPE_TABLET, ETHNICITY_AFRICAN_AMERICAN, ETHNICITY_ASIAN, ETHNICITY_HISPANIC, ETHNICITY_OTHER, ETHNICITY_WHITE, LINEARITY_LINEAR, LINEARITY_NON_LINEAR, MARITAL_DIVORCED, MARITAL_MARRIED, MARITAL_SINGLE, VIDEO_PLAYBACK_AUTO_SOUND_OFF, VIDEO_PLAYBACK_AUTO_SOUND_ON, VIDEO_PLAYBACK_CLICK_TO_PLAY, VIDEO_PLAYBACK_MOUSEOVER, VIDEO_PROTOCOL_VAST_1, VIDEO_PROTOCOL_VAST_2, VIDEO_PROTOCOL_VAST_3, VIDEO_PROTOCOL_VAST_WRAPPER_1, VIDEO_PROTOCOL_VAST_WRAPPER_2, VIDEO_PROTOCOL_VAST_WRAPPER_3| Modifier and Type | Method and Description |
|---|---|
String |
canBid(OpenRtbRequest req,
Impression imp)
Can this tag be served in response to the provided impression? If null is returned, the
answer is yes, otherwise, the string with a reason of why not is returned (for use in logging
and troubleshooting).
|
Ad |
getAd() |
String |
getAdId() |
int |
getApi() |
Bid |
getBid(OpenRtbRequest req,
Impression imp)
|
ServiceRunner |
getBidder() |
String |
getCb()
Cachebuster.
|
String |
getClickRedir(OpenRtbRequest req,
Bid bid) |
String |
getClickUrl(OpenRtbRequest req,
Bid bid)
Generates a link to the Lot49 click tracker.
|
String |
getCustomImpPassThruData()
Custom impression pass-through data.
|
String |
getDesc()
Human-readable description
|
Dimension |
getDimension() |
int |
getDuration()
Duration of this ad if it is a video ad.
|
ExchangeTargeting |
getExchangeTargeting() |
String |
getId()
ID of this tag.
|
String |
getImpRedir() |
long |
getImpressionsConsidered(String exchange) |
String |
getImpressionUrl(OpenRtbRequest req,
Bid bid,
boolean nurl)
Generates a link to the Lot49 impression tracker.
|
MarkupType |
getMarkupType() |
String |
getMime() |
List<String> |
getMimes() |
String |
getName()
Human-readable name.
|
String |
getNUrl(OpenRtbRequest req,
Bid bid,
String nurlId)
Generates a link to NUrl.
|
private String |
getNUrlByType(OpenRtbRequest req,
Bid bid,
String nurlId,
int nurlType) |
SortedMap<String,SortedMap<String,AtomicLong>> |
getOptoutsByExchange() |
String |
getProto(OpenRtbRequest req) |
int |
getProtocol() |
private StringBuilder |
getStatsUrl(OpenRtbRequest req) |
String |
getTag(OpenRtbRequest req,
Impression imp,
Bid bid,
boolean nurl)
Get the actual tag to send in the
ad markup field of the bid (or in the
response to nurl), based on
the template. |
String |
getTagVersion() |
void |
incrOptout(OpenRtbRequest req,
String name) |
boolean |
isBanner() |
boolean |
isLinear() |
boolean |
isSslCapable() |
boolean |
isTest() |
boolean |
isVideo() |
boolean |
isVpaid() |
private static SortedMap<String,AtomicLong> |
makeSingleExchangeOptoutMap() |
private StringBuilder |
replaceProustMacros(OpenRtbRequest req,
Impression imp,
Bid bid,
StringBuilder tag) |
void |
setBidder(ServiceRunner bidder) |
String |
toString() |
List<String> |
validate() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitencode, getTagTemplate, initprotected String tagVersion
private ConcurrentMap<String,String> uniqOptoutReasonMap
protected ExchangeTargeting exchangeTargeting
protected Dimension dim
protected boolean banner
protected String customImpPassThruData
protected int protocol
protected int api
protected String impRedir
protected String clickRedir
private ServiceRunner bidder
protected String desc
protected int duration
private String id
protected boolean linear
protected String mime
protected String name
private int passedCount
private Ad ad
protected boolean test
protected boolean video
protected boolean vpaid
private final String statsUrl
private final String secureStatsUrl
protected boolean sslCapable
private SortedMap<String,SortedMap<String,AtomicLong>> optoutsByExchange
private SortedMap<String,AtomicLong> impsConsideredByExchange
protected MarkupType markupType
public TagImpl(Ad ad) throws Lot49Exception
Lot49Exceptionpublic String getTagVersion()
getTagVersion in interface Tagpublic SortedMap<String,SortedMap<String,AtomicLong>> getOptoutsByExchange()
getOptoutsByExchange in interface Tagpublic void incrOptout(OpenRtbRequest req, String name)
incrOptout in interface Tagpublic Dimension getDimension()
getDimension in interface Tagpublic ExchangeTargeting getExchangeTargeting()
getExchangeTargeting in interface Tagpublic String getCustomImpPassThruData()
TaggetCustomImpPassThruData in interface Tagpublic int getProtocol()
getProtocol in interface Tagpublic String getImpRedir()
getImpRedir in interface Tagpublic boolean isSslCapable()
isSslCapable in interface Tagpublic String getProto(OpenRtbRequest req)
public long getImpressionsConsidered(String exchange)
getImpressionsConsidered in interface Tagpublic String canBid(OpenRtbRequest req, Impression imp)
TagThis will always return null if req
is a test
request.public ServiceRunner getBidder()
public String getCb()
TaggetCb in interface TagMacros,
Cachebusterpublic int getDuration()
TaggetDuration in interface Tagpublic String getId()
TaggetId in interface Lot49PlugingetId in interface Tagpublic String getNUrl(OpenRtbRequest req, Bid bid, String nurlId)
Tag
In case of a NUrl-requiring exchange, this URL will
include a wp query parameter whose value is the
exchange-specific winning price macro.
private String getNUrlByType(OpenRtbRequest req, Bid bid, String nurlId, int nurlType)
public String getImpressionUrl(OpenRtbRequest req, Bid bid, boolean nurl)
Tag
In case of a non-NUrl-requiring exchange, this URL
will include a wp query parameter whose value is the
exchange-specific winning price macro.
impRedir is not null, this URL will include
r query parameter whose value is URL-encoded
impRedir.getImpressionUrl in interface TagTag.getImpressionUrl(OpenRtbRequest, Bid, boolean)public String getClickUrl(OpenRtbRequest req, Bid bid)
TagclickRedir is not null, this URL will include r query parameter
whose value is URL-encoded clickRedir.public String getClickRedir(OpenRtbRequest req, Bid bid)
getClickRedir in interface Tagpublic String getName()
TaggetName in interface Lot49PlugingetName in interface Tagprivate StringBuilder getStatsUrl(OpenRtbRequest req)
private StringBuilder replaceProustMacros(OpenRtbRequest req, Impression imp, Bid bid, StringBuilder tag)
public String getTag(OpenRtbRequest req, Impression imp, Bid bid, boolean nurl)
Tagad markup field of the bid (or in the
response to nurl), based on
the template.
The provider of the template needs to understand the mechanism of macro substitution. The substitutions occur in the following order, each one going over the entire text of the template.
clickRedir or impRedir fields. If necessary, override the method
appropriately.Macros.MACRO_LOT49_IMPRESSION will be replaced by the
URL to the Lot49 impression tracker.
the exchange sends actual macros in a call
to NUrl, the following click macro substitutions occur:
Macros.MACRO_LOT49_CLICK_CHAIN_ENC are replaced as follows:
exchange click macro, then it is
replaced with Macros.MACRO_LOT49_EXCHANGE_CLICK_ENC followed by
Macros.MACRO_LOT49_CLICK_ENC_ENC.Macros.MACRO_LOT49_CLICK_ENC
Macros.MACRO_LOT49_CLICK_ENC_ENC will be replaced as
Macros.MACRO_LOT49_CLICK (see below), except the replacement will be doubly
URL-encoded.Macros.MACRO_LOT49_CLICK_ENC will be replaced as
Macros.MACRO_LOT49_CLICK (see below), except the replacement will be URL-encoded.
Macros.MACRO_LOT49_CLICK will be replaced by the URL to the
Lot49 click tracker. If clickRedir is not null, this URL will include
r query parameter whose value is URL-encoded
clickRedir.Macros.MACRO_LOT49_EXCHANGE_CLICK_ENC will be replaced by the
exchange-specific version thereof.Macros.MACRO_LOT49_EXCHANGE_CLICK will be replaced by the
exchange-specific version thereof.Macros.MACRO_LOT49_CLICK_ENC_ENC ,
Macros.MACRO_LOT49_CLICK_ENC and Macros.MACRO_LOT49_CLICK are generated, but
not replaced. Instead, they are added to the NUrl, and will be substituted at
NUrl invocation.
getTag in interface TagTag.getTag(OpenRtbRequest, Impression, Bid, boolean)private static final SortedMap<String,AtomicLong> makeSingleExchangeOptoutMap()
public String getAdId()
public boolean isTest()
public Bid getBid(OpenRtbRequest req, Impression imp)
TaggetBid in interface TagTag.getTag(OpenRtbRequest, Impression, Bid, boolean),
Tag.getTagTemplate(OpenRtbRequest, Impression, Bid)public MarkupType getMarkupType()
getMarkupType in interface Tagpublic void setBidder(ServiceRunner bidder)