Documentation ¶
Index ¶
- Constants
- Variables
- func PrepareURL(url string, response Responser, it ResponserItem) string
- func PriceRevenueShareReduceFactors(price billing.Money, rs revenueShareReducerFactorer, remove bool) billing.Money
- func PriceSourceFactors(price billing.Money, src Source, remove bool) billing.Money
- func PriceSystemComission(price billing.Money, item systemComissionFactorer, remove bool) billing.Money
- func ReturnResponse(o *Response)
- func ReturnResponseAdItem(o *ResponseAdItem)
- type AccessPoint
- type BaseFilter
- type BidRequest
- func (r *BidRequest) Age() uint
- func (r *BidRequest) Ages() [2]uint
- func (r *BidRequest) AppID() uint64
- func (r *BidRequest) AppInfo() *udetect.App
- func (r *BidRequest) BrowserID() uint64
- func (r *BidRequest) BrowserInfo() *udetect.Browser
- func (r *BidRequest) CarrierInfo() *udetect.Carrier
- func (r *BidRequest) Categories() []uint64
- func (r *BidRequest) City() string
- func (r *BidRequest) DeviceID() uint64
- func (r *BidRequest) DeviceInfo() *udetect.Device
- func (r *BidRequest) DeviceType() uint64
- func (r *BidRequest) Domain() []string
- func (r *BidRequest) DomainName() string
- func (r *BidRequest) ExtTargetIDs() []string
- func (r *BidRequest) FormatBitset() *searchtypes.NumberBitset[uint]
- func (r *BidRequest) FormatTypeMask() types.FormatTypeBitset
- func (r *BidRequest) Formats() []*types.Format
- func (r *BidRequest) Gender() byte
- func (r *BidRequest) GeoCode() string
- func (r *BidRequest) GeoID() uint64
- func (r *BidRequest) GeoInfo() *udetect.Geo
- func (r *BidRequest) Get(key string) any
- func (r *BidRequest) HTTPRequest() *fasthttp.RequestCtx
- func (r *BidRequest) Height() int
- func (r *BidRequest) ImpressionByID(id string) *Impression
- func (r *BidRequest) ImpressionByIDvariation(id string) *Impression
- func (r *BidRequest) ImpressionUpdate(fn func(imp *Impression) bool)
- func (r *BidRequest) Init(formats types.FormatsAccessor)
- func (r *BidRequest) IsAdblock() bool
- func (r *BidRequest) IsIPv6() bool
- func (r *BidRequest) IsPrivateBrowsing() bool
- func (r *BidRequest) IsSecure() bool
- func (r *BidRequest) Keywords() []string
- func (r *BidRequest) LanguageID() uint64
- func (r *BidRequest) MinECPM() (minBid billing.Money)
- func (r *BidRequest) OSID() uint64
- func (r *BidRequest) OSInfo() *udetect.OS
- func (r *BidRequest) ProjectID() uint64
- func (r *BidRequest) ServiceDomain() string
- func (r *BidRequest) Set(key string, val any)
- func (r *BidRequest) SetSourceFilter(ids ...uint64)
- func (r *BidRequest) Sex() uint
- func (r *BidRequest) SiteInfo() *udetect.Site
- func (r *BidRequest) Size() (width, height int)
- func (r *BidRequest) SourceFilterCheck(id uint64) bool
- func (r *BidRequest) String() (res string)
- func (r *BidRequest) Tags() []string
- func (r *BidRequest) TargetID() uint64
- func (r *BidRequest) TargetIDs() []uint64
- func (r *BidRequest) Time() time.Time
- func (r *BidRequest) Unset(keys ...string)
- func (r *BidRequest) UserInfo() *User
- func (r *BidRequest) Validate() error
- func (r *BidRequest) Width() int
- type Data
- type Impression
- func (i *Impression) AccountID() uint64
- func (i *Impression) ComissionShareFactor() float64
- func (i *Impression) ContextSubType() openrtbnreq.ContextSubTypeID
- func (i *Impression) ContextType() openrtbnreq.ContextTypeID
- func (i *Impression) FormatBitset() *searchtypes.NumberBitset[uint]
- func (i *Impression) FormatByType(tp types.FormatType) *types.Format
- func (i *Impression) Formats() (f []*types.Format)
- func (i *Impression) Get(key string) any
- func (i *Impression) IDByFormat(format *types.Format) string
- func (i *Impression) Init(formats types.FormatsAccessor)
- func (i *Impression) IsDirect() bool
- func (i *Impression) IsNative() bool
- func (i *Impression) IsStandart() bool
- func (i *Impression) PlacementType() openrtbnreq.PlacementTypeID
- func (i *Impression) RTBNativeRequest() (r *openrtbnreq.Request)
- func (i *Impression) RevenueShareFactor() float64
- func (i *Impression) Set(key string, val any)
- func (i *Impression) TargetID() uint
- func (i *Impression) Unset(keys ...string)
- type NoSupportError
- type PriceFactor
- type RequestStrategy
- type Response
- func (r *Response) AddItem(it ResponserItemCommon)
- func (r *Response) Ads() []ResponserItemCommon
- func (r *Response) AuctionID() string
- func (r *Response) AuctionType() types.AuctionType
- func (r *Response) Context(ctx ...context.Context) context.Context
- func (r *Response) Count() int
- func (r *Response) Error() error
- func (r *Response) Get(key string) any
- func (r *Response) Item(impid string) ResponserItemCommon
- func (r *Response) Request() *BidRequest
- func (r *Response) Source() Source
- func (r *Response) Validate() (err error)
- type ResponseAdItem
- func (it *ResponseAdItem) AccountID() uint64
- func (it *ResponseAdItem) ActionURL() string
- func (it *ResponseAdItem) AdDirectLink() string
- func (it *ResponseAdItem) AdID() uint64
- func (it *ResponseAdItem) AdIDString() string
- func (it *ResponseAdItem) Asset(name string) *admodels.AdAsset
- func (it *ResponseAdItem) Assets() admodels.AdAssets
- func (it *ResponseAdItem) AuctionCPMBid() billing.Money
- func (it *ResponseAdItem) AuctionID() string
- func (it *ResponseAdItem) CPMPrice(removeFactors ...PriceFactor) (price billing.Money)
- func (it *ResponseAdItem) CampaignID() uint64
- func (it *ResponseAdItem) CampaignIDString() string
- func (it *ResponseAdItem) ClickTrackerLinks() []string
- func (it *ResponseAdItem) ComissionShareFactor() float64
- func (it *ResponseAdItem) ContentFields() map[string]any
- func (it *ResponseAdItem) ContentItem(name string) any
- func (it *ResponseAdItem) ContentItemString(name string) string
- func (it *ResponseAdItem) Context(ctx ...context.Context) (c context.Context)
- func (it *ResponseAdItem) CreativeIDString() string
- func (it *ResponseAdItem) ECPM() billing.Money
- func (it *ResponseAdItem) ExtImpressionID() string
- func (it *ResponseAdItem) ExtTargetID() string
- func (it *ResponseAdItem) Format() *types.Format
- func (it *ResponseAdItem) Get(key string) any
- func (it *ResponseAdItem) Height() int
- func (it *ResponseAdItem) ID() string
- func (it *ResponseAdItem) Impression() *Impression
- func (it *ResponseAdItem) ImpressionID() string
- func (it *ResponseAdItem) IsDirect() bool
- func (it *ResponseAdItem) MainAsset() *admodels.AdAsset
- func (it *ResponseAdItem) NetworkName() string
- func (it *ResponseAdItem) PotentialPrice(action admodels.Action) billing.Money
- func (it *ResponseAdItem) Price(action admodels.Action, removeFactors ...PriceFactor) (price billing.Money)
- func (it *ResponseAdItem) PricingModel() types.PricingModel
- func (it *ResponseAdItem) PriorityFormatType() types.FormatType
- func (it *ResponseAdItem) ProjectID() uint64
- func (it *ResponseAdItem) PurchasePrice(action admodels.Action, removeFactors ...PriceFactor) billing.Money
- func (it *ResponseAdItem) Request() *BidRequest
- func (it *ResponseAdItem) RevenueShareFactor() float64
- func (it *ResponseAdItem) Second() *SecondAd
- func (it *ResponseAdItem) SetCPMPrice(price billing.Money, includeFactors ...PriceFactor)
- func (it *ResponseAdItem) Source() Source
- func (it *ResponseAdItem) TargetID() uint64
- func (it *ResponseAdItem) TargetIDString() string
- func (it *ResponseAdItem) Validate() error
- func (it *ResponseAdItem) ViewTrackerLinks() []string
- func (it *ResponseAdItem) Width() int
- type ResponseEmpty
- func (r ResponseEmpty) Ads() []ResponserItemCommon
- func (r ResponseEmpty) AuctionCPMBid() billing.Money
- func (r ResponseEmpty) AuctionID() string
- func (r ResponseEmpty) AuctionType() types.AuctionType
- func (r ResponseEmpty) CPMBid() billing.Money
- func (r *ResponseEmpty) Context(ctx ...context.Context) context.Context
- func (r ResponseEmpty) Count() int
- func (r ResponseEmpty) Error() error
- func (r ResponseEmpty) ExtImpressionID() string
- func (r ResponseEmpty) ExtTargetID() string
- func (r *ResponseEmpty) Get(key string) (res any)
- func (r ResponseEmpty) ID() string
- func (r ResponseEmpty) Impression() *Impression
- func (r ResponseEmpty) ImpressionID() string
- func (r ResponseEmpty) Item(impid string) ResponserItemCommon
- func (r ResponseEmpty) LeadPrice() billing.Money
- func (r ResponseEmpty) Price() billing.Money
- func (r ResponseEmpty) PriorityFormatType() types.FormatType
- func (r ResponseEmpty) Request() *BidRequest
- func (r ResponseEmpty) Source() Source
- func (r ResponseEmpty) Validate() error
- type ResponseItemBlock
- func (i *ResponseItemBlock) Ads() []ResponserItem
- func (i *ResponseItemBlock) AuctionCPMBid() (bid billing.Money)
- func (i *ResponseItemBlock) Context(ctx ...context.Context) context.Context
- func (i *ResponseItemBlock) Count() int
- func (i *ResponseItemBlock) ExtImpressionID() string
- func (i *ResponseItemBlock) ExtTargetID() string
- func (i *ResponseItemBlock) Get(key string) any
- func (i *ResponseItemBlock) ID() string
- func (i *ResponseItemBlock) Impression() *Impression
- func (i *ResponseItemBlock) ImpressionID() string
- func (i *ResponseItemBlock) Price(action admodels.Action) (price billing.Money)
- func (i *ResponseItemBlock) PriorityFormatType() types.FormatType
- func (i *ResponseItemBlock) Validate() (err error)
- type ResponseItemEmpty
- func (*ResponseItemEmpty) AccountID() uint64
- func (*ResponseItemEmpty) ActionURL() string
- func (*ResponseItemEmpty) AdID() uint64
- func (*ResponseItemEmpty) Asset(name string) *admodels.AdAsset
- func (*ResponseItemEmpty) Assets() admodels.AdAssets
- func (*ResponseItemEmpty) AuctionCPMBid() billing.Money
- func (*ResponseItemEmpty) CPMPrice(removeFactors ...PriceFactor) billing.Money
- func (*ResponseItemEmpty) CampaignID() uint64
- func (*ResponseItemEmpty) ClickTrackerLinks() []string
- func (*ResponseItemEmpty) ComissionShareFactor() float64
- func (*ResponseItemEmpty) ContentFields() map[string]any
- func (*ResponseItemEmpty) ContentItem(name string) any
- func (*ResponseItemEmpty) ContentItemString(name string) string
- func (*ResponseItemEmpty) Context(ctx ...context.Context) context.Context
- func (*ResponseItemEmpty) ECPM() billing.Money
- func (*ResponseItemEmpty) ExtImpressionID() string
- func (*ResponseItemEmpty) ExtTargetID() string
- func (*ResponseItemEmpty) Format() *types.Format
- func (*ResponseItemEmpty) Get(key string) any
- func (*ResponseItemEmpty) Height() int
- func (*ResponseItemEmpty) ID() string
- func (*ResponseItemEmpty) Impression() *Impression
- func (*ResponseItemEmpty) ImpressionID() string
- func (*ResponseItemEmpty) IsDirect() bool
- func (*ResponseItemEmpty) MainAsset() *admodels.AdAsset
- func (*ResponseItemEmpty) NetworkName() string
- func (*ResponseItemEmpty) PotentialPercent() float64
- func (*ResponseItemEmpty) PotentialPrice(action admodels.Action) billing.Money
- func (*ResponseItemEmpty) Price(action admodels.Action, removeFactors ...PriceFactor) billing.Money
- func (*ResponseItemEmpty) PricingModel() types.PricingModel
- func (*ResponseItemEmpty) PriorityFormatType() types.FormatType
- func (*ResponseItemEmpty) PurchasePrice(action admodels.Action, removeFactors ...PriceFactor) billing.Money
- func (*ResponseItemEmpty) RevenuePercent() float64
- func (*ResponseItemEmpty) RevenueShareFactor() float64
- func (*ResponseItemEmpty) Second() *SecondAd
- func (*ResponseItemEmpty) SetCPMPrice(price billing.Money, includeFactors ...PriceFactor)
- func (*ResponseItemEmpty) Source() Source
- func (*ResponseItemEmpty) Validate() error
- func (*ResponseItemEmpty) ViewTrackerLinks() []string
- func (*ResponseItemEmpty) Width() int
- type Responser
- type ResponserItem
- type ResponserItemCommon
- type ResponserMultipleItem
- type SecondAd
- type Segment
- type Source
- type SourceAccessor
- type SourceEmpty
- func (*SourceEmpty) Bid(request *BidRequest) Responser
- func (*SourceEmpty) ID() uint64
- func (*SourceEmpty) ObjectKey() uint64
- func (s *SourceEmpty) PriceCorrectionReduceFactor() float64
- func (*SourceEmpty) ProcessResponseItem(Responser, ResponserItem)
- func (*SourceEmpty) Protocol() string
- func (*SourceEmpty) RequestStrategy() RequestStrategy
- func (*SourceEmpty) Test(request *BidRequest) bool
- type SourceIterator
- type SourceMinimal
- type SourceTesteChecker
- type SourceTester
- type SourceTimeoutSetter
- type TypeSex
- type URLGenerator
- type User
- func (u User) AvgAge() byte
- func (u *User) BirthdayTime() time.Time
- func (u *User) GetDataItem(name string) (v string, ok bool)
- func (u *User) GetDataItemOrDefault(name, def string) string
- func (u User) RTBObject() *openrtb.User
- func (u *User) SetDataItem(name, value string)
- func (u *User) SetSexByString(sex string)
- func (u User) Sex() TypeSex
- type WinEvent
Constants ¶
const ( NativeAssetUndefined = iota NativeAssetTitle NativeAssetLegend NativeAssetMainImage NativeAssetIcon NativeAssetRating NativeAssetSponsored )
Native asset IDs
const ( ContentItemLink = "link" ContentItemContent = "content" ContentItemIFrameURL = "iframe_url" ContentItemNotifyWinURL = "notify_win_url" ContentItemNotifyDisplayURL = "notify_display_url" )
Content item names
Variables ¶
var ( // For bidding validation ErrInvalidCur = errors.New("bid currency is not valid") ErrInvalidCreativeSize = errors.New("creative size is invalid") ErrInvalidViewType = errors.New("view type is invalid") ErrLowPrice = errors.New("bid Price is lower than floor price") ErrResponseEmpty = errors.New("response is empty") ErrResponseInvalidType = errors.New("invalid response type") ErrResponseInvalidGroup = errors.New("system not support group winners") ErrInvalidItemInitialisation = errors.New("invalid item initialisation") )
Set of errors
var (
ErrInvalidURL = errors.New("invalid URL value")
)
Errors
Functions ¶
func PrepareURL ¶
func PrepareURL(url string, response Responser, it ResponserItem) string
PrepareURL by event
func PriceRevenueShareReduceFactors ¶
func PriceRevenueShareReduceFactors(price billing.Money, rs revenueShareReducerFactorer, remove bool) billing.Money
PriceRevenueShareReduceFactors cirrection to reduce descreancy
func PriceSourceFactors ¶
PriceSourceFactors currection to reduce descreancy
func PriceSystemComission ¶
func PriceSystemComission(price billing.Money, item systemComissionFactorer, remove bool) billing.Money
PriceSystemComission = 1. - `TrafficSourceComission`
func ReturnResponseAdItem ¶
func ReturnResponseAdItem(o *ResponseAdItem)
ReturnResponseAdItem back to pool
Types ¶
type AccessPoint ¶
type AccessPoint interface { // ID of source ID() uint64 }
AccessPoint is the DSP source
type BaseFilter ¶
type BaseFilter struct { Secure int8 // 0 - any, 1 - only secure, 2 - no secure Adblock int8 // 0 - any, 1 - only adblock, 2 - no adblock PrivateBrowsing int8 // 0 - any, 1 - only private, 2 - no private IP int8 // 0 - any, 1 - IPv4, 2 - IPv6 Devices []uint64 // Devices type OS []uint64 OSExclude []uint64 Browsers []uint64 BrowsersExclude []uint64 Categories []uint64 Countries []string Applications []uint64 ApplicationsExclude []uint64 Domains []string DomainsExclude []string Zones []uint64 ZonesExclude []uint64 ExternalZones []string ExternalZonesExclude []string }
BaseFilter object
func (*BaseFilter) Test ¶
func (f *BaseFilter) Test(request *BidRequest) bool
Test base from search request
type BidRequest ¶
type BidRequest struct { Ctx context.Context `json:"-"` ID string `json:"id,omitempty"` // Auction ID ExtID string `json:"bidid,omitempty"` // External Auction ID AccessPoint AccessPoint `json:"-"` Debug bool `json:"debug,omitempty"` AuctionType types.AuctionType `json:"auction_type,omitempty"` RequestCtx *fasthttp.RequestCtx `json:"-"` // HTTP request context Request any `json:"-"` // Contains original request from RTB or another protocol Person personification.Person `json:"-"` Imps []Impression `json:"imps,omitempty"` AppTarget *admodels.Application `json:"app_target,omitempty"` Device *udetect.Device `json:"device,omitempty"` App *udetect.App `json:"app,omitempty"` Site *udetect.Site `json:"site,omitempty"` User *User `json:"user,omitempty"` Secure int `json:"secure,omitempty"` Adblock int `json:"adb,omitempty"` PrivateBrowsing int `json:"pb,omitempty"` Ext map[string]any `json:"ext,omitempty"` Timemark time.Time `json:"timemark,omitempty"` Tracer any `json:"-"` // contains filtered or unexported fields }
BidRequest for internal using
func (*BidRequest) BrowserInfo ¶
func (r *BidRequest) BrowserInfo() *udetect.Browser
BrowserInfo data
func (*BidRequest) CarrierInfo ¶
func (r *BidRequest) CarrierInfo() *udetect.Carrier
CarrierInfo data
func (*BidRequest) DomainName ¶
func (r *BidRequest) DomainName() string
DomainName of site or bundle name
func (*BidRequest) ExtTargetIDs ¶
func (r *BidRequest) ExtTargetIDs() []string
ExtTargetIDs by request
func (*BidRequest) FormatBitset ¶
func (r *BidRequest) FormatBitset() *searchtypes.NumberBitset[uint]
FormatBitset of IDs
func (*BidRequest) FormatTypeMask ¶
func (r *BidRequest) FormatTypeMask() types.FormatTypeBitset
FormatTypeMask of formats
func (*BidRequest) HTTPRequest ¶
func (r *BidRequest) HTTPRequest() *fasthttp.RequestCtx
HTTPRequest object
func (*BidRequest) ImpressionByID ¶
func (r *BidRequest) ImpressionByID(id string) *Impression
ImpressionByID object
func (*BidRequest) ImpressionByIDvariation ¶
func (r *BidRequest) ImpressionByIDvariation(id string) *Impression
ImpressionByIDvariation returns impression by ID which can contains any postfix
func (*BidRequest) ImpressionUpdate ¶
func (r *BidRequest) ImpressionUpdate(fn func(imp *Impression) bool)
ImpressionUpdate each
func (*BidRequest) Init ¶
func (r *BidRequest) Init(formats types.FormatsAccessor)
Init basic information
func (*BidRequest) IsPrivateBrowsing ¶
func (r *BidRequest) IsPrivateBrowsing() bool
IsPrivateBrowsing request
func (*BidRequest) MinECPM ¶
func (r *BidRequest) MinECPM() (minBid billing.Money)
MinECPM value of request acceptable
func (*BidRequest) SetSourceFilter ¶
func (r *BidRequest) SetSourceFilter(ids ...uint64)
SetSourceFilter by IDs
func (*BidRequest) Size ¶
func (r *BidRequest) Size() (width, height int)
Size of the area of visibility
func (*BidRequest) SourceFilterCheck ¶
func (r *BidRequest) SourceFilterCheck(id uint64) bool
SourceFilterCheck returns the list of available sources
func (*BidRequest) String ¶
func (r *BidRequest) String() (res string)
String implements of fmt.Stringer interface
type Data ¶
type Data struct { Name string `json:"name,omitempty"` Segment []Segment `json:"segment,omitempty"` }
Data item segment
type Impression ¶
type Impression struct { ID string `json:"id,omitempty"` // Internal impression ID ExtID string `json:"extid,omitempty"` // External impression ID (ImpID) ExtTargetID string `json:"exttrgid"` // External zone ID (tagid) Request any `json:"request,omitempty"` // Contains subrequest from RTB or another protocol Target admodels.Target `json:"target,omitempty"` // BidFloor billing.Money `json:"bid_floor,omitempty"` // PurchaseViewPrice billing.Money `json:"purchase_view_price,omitempty"` // Pos int `json:"pos,omitempty"` // 5.4 Ad Position Count int `json:"cnt,omitempty"` // Count of places for multiple banners // Sizes and position on the screen X int `json:"x,omitempty"` // Position on the site screen Y int `json:"y,omitempty"` // W int `json:"w,omitempty"` // H int `json:"h,omitempty"` // WMax int `json:"wm,omitempty"` // HMax int `json:"hm,omitempty"` // // Additional identifiers SubID1 string `json:"subid1,omitempty"` SubID2 string `json:"subid2,omitempty"` SubID3 string `json:"subid3,omitempty"` SubID4 string `json:"subid4,omitempty"` SubID5 string `json:"subid5,omitempty"` // Format types for impression FormatTypes types.FormatTypeBitset `json:"-"` Ext map[string]any `json:"ext,omitempty"` // contains filtered or unexported fields }
Impression target
func (*Impression) ComissionShareFactor ¶
func (i *Impression) ComissionShareFactor() float64
ComissionShareFactor which system get from publisher from 0 to 1
func (*Impression) ContextSubType ¶
func (i *Impression) ContextSubType() openrtbnreq.ContextSubTypeID
ContextSubType IDs 7.4 @link https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-Native-Ads-Specification-1-1_2016.pdf
func (*Impression) ContextType ¶
func (i *Impression) ContextType() openrtbnreq.ContextTypeID
ContextType IDs 7.3 @link https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-Native-Ads-Specification-1-1_2016.pdf
func (*Impression) FormatBitset ¶
func (i *Impression) FormatBitset() *searchtypes.NumberBitset[uint]
FormatBitset of IDs
func (*Impression) FormatByType ¶
func (i *Impression) FormatByType(tp types.FormatType) *types.Format
FormatByType of formats
func (*Impression) IDByFormat ¶
func (i *Impression) IDByFormat(format *types.Format) string
IDByFormat return specific ID to link format
func (*Impression) Init ¶
func (i *Impression) Init(formats types.FormatsAccessor)
Init internal information
func (*Impression) PlacementType ¶
func (i *Impression) PlacementType() openrtbnreq.PlacementTypeID
PlacementType IDs 7.5 @link https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-Native-Ads-Specification-1-1_2016.pdf
func (*Impression) RTBNativeRequest ¶
func (i *Impression) RTBNativeRequest() (r *openrtbnreq.Request)
RTBNativeRequest object
func (*Impression) RevenueShareFactor ¶
func (i *Impression) RevenueShareFactor() float64
RevenueShareFactor value for the publisher company
type PriceFactor ¶
type PriceFactor uint32
PriceFactor defines action to calculate the factor
const ( NonePriceFactor PriceFactor = 0x0000 AllPriceFactors PriceFactor = 0xffffffff SourcePriceFactor PriceFactor = 0x0001 SystemComissionPriceFactor PriceFactor = 0x0002 TargetReducePriceFactor PriceFactor = 0x0004 )
func PriceFactorFromList ¶
func PriceFactorFromList(factors ...PriceFactor) (f PriceFactor)
PriceFactorFromList create factor from list
func (PriceFactor) Add ¶
func (f PriceFactor) Add(price billing.Money, it ResponserItem) (comissions billing.Money)
Add comissions to price and rеturns comissions with positive sign `+`
func (PriceFactor) Remove ¶
func (f PriceFactor) Remove(price billing.Money, it ResponserItem) (comissions billing.Money)
Remove comissions from price and rеturns comissions with negative sign `-`
type RequestStrategy ¶
type RequestStrategy int
RequestStrategy defines politics of request sending
const ( // AsynchronousRequestStrategy is default strategy implies // requesting all auction participants and choising the most // profitable variant of all AsynchronousRequestStrategy RequestStrategy = iota // SingleRequestStrategy tells that if response was // received it should be performed SingleRequestStrategy )
func (RequestStrategy) IsAsynchronous ¶
func (rs RequestStrategy) IsAsynchronous() bool
func (RequestStrategy) IsSingle ¶
func (rs RequestStrategy) IsSingle() bool
type Response ¶
type Response struct {
// contains filtered or unexported fields
}
Response from different sources
func BorrowResponse ¶
func BorrowResponse(request *BidRequest, source Source, items []ResponserItemCommon, err error) *Response
BorrowResponse object
func NewErrorResponse ¶
func NewErrorResponse(request *BidRequest, err error) *Response
NewErrorResponse object
func NewResponse ¶
func NewResponse(request *BidRequest, source Source, items []ResponserItemCommon, err error) *Response
NewResponse common object
func (*Response) AuctionType ¶
func (r *Response) AuctionType() types.AuctionType
AuctionType of request
func (*Response) Item ¶
func (r *Response) Item(impid string) ResponserItemCommon
Item by impression code
type ResponseAdItem ¶
type ResponseAdItem struct { Ctx context.Context `json:"-"` ItemID string `json:"id"` Src Source `json:"source,omitempty"` Req *BidRequest `json:"request,omitempty"` Imp *Impression `json:"impression,omitempty"` // Impression Unique Campaign *admodels.Campaign `json:"campaign,omitempty"` Ad *admodels.Ad `json:"ad,omitempty"` AdBid *admodels.AdBid `json:"ad_bid,omitempty"` AdLink admodels.AdLink `json:"ad_link,omitempty"` BidECPM billing.Money `json:"bid_ecpm,omitempty"` // BidPrice billing.Money `json:"bid_price,omitempty"` // Max RTB bid price (CPM only) AdPrice billing.Money `json:"price,omitempty"` // New price of advertisement target action (click, lead, impression) AdLeadPrice billing.Money `json:"lead_price,omitempty"` // CPMBidPrice billing.Money `json:"cpm_bid,omitempty"` // This param can update only price predictor SecondAd SecondAd `json:"second_ad,omitempty"` // }
ResponseAdItem for select from storage
func (*ResponseAdItem) ActionURL ¶
func (it *ResponseAdItem) ActionURL() string
ActionURL for direct baners
func (*ResponseAdItem) AdDirectLink ¶
func (it *ResponseAdItem) AdDirectLink() string
AdDirectLink of the ad
func (*ResponseAdItem) AdIDString ¶
func (it *ResponseAdItem) AdIDString() string
AdIDString References the ad to be served if the bid wins.
func (*ResponseAdItem) Asset ¶
func (it *ResponseAdItem) Asset(name string) *admodels.AdAsset
Asset by name
func (*ResponseAdItem) AuctionCPMBid ¶
func (it *ResponseAdItem) AuctionCPMBid() billing.Money
AuctionCPMBid value price without any comission Can be replaced on comission only
func (*ResponseAdItem) CPMPrice ¶
func (it *ResponseAdItem) CPMPrice(removeFactors ...PriceFactor) (price billing.Money)
CPMPrice value price value for DSP auction
func (*ResponseAdItem) CampaignIDString ¶
func (it *ResponseAdItem) CampaignIDString() string
CampaignIDString that appears with the Ad markup.
func (*ResponseAdItem) ClickTrackerLinks ¶
func (it *ResponseAdItem) ClickTrackerLinks() []string
ClickTrackerLinks returns third-party tracker URLs to be fired on click of the URL
func (*ResponseAdItem) ComissionShareFactor ¶
func (it *ResponseAdItem) ComissionShareFactor() float64
ComissionShareFactor which system get from publisher
func (*ResponseAdItem) ContentFields ¶
func (it *ResponseAdItem) ContentFields() map[string]any
ContentFields from advertisement object
func (*ResponseAdItem) ContentItem ¶
func (it *ResponseAdItem) ContentItem(name string) any
ContentItem returns the ad response data
func (*ResponseAdItem) ContentItemString ¶
func (it *ResponseAdItem) ContentItemString(name string) string
ContentItemString from the ad
func (*ResponseAdItem) Context ¶
func (it *ResponseAdItem) Context(ctx ...context.Context) (c context.Context)
Context value
func (*ResponseAdItem) CreativeIDString ¶
func (it *ResponseAdItem) CreativeIDString() string
CreativeIDString for reporting content issues or defects. This could also be used as a reference to a creative ID that is posted with an exchange.
func (*ResponseAdItem) ExtImpressionID ¶
func (it *ResponseAdItem) ExtImpressionID() string
ExtImpressionID unique code of RTB response
func (*ResponseAdItem) ExtTargetID ¶
func (it *ResponseAdItem) ExtTargetID() string
ExtTargetID of the external network
func (*ResponseAdItem) Format ¶
func (it *ResponseAdItem) Format() *types.Format
Format object model
func (*ResponseAdItem) ID ¶
func (it *ResponseAdItem) ID() string
ID of current response item (unique code of current response)
func (*ResponseAdItem) Impression ¶
func (it *ResponseAdItem) Impression() *Impression
Impression place object
func (*ResponseAdItem) ImpressionID ¶
func (it *ResponseAdItem) ImpressionID() string
ImpressionID unique code string
func (*ResponseAdItem) MainAsset ¶
func (it *ResponseAdItem) MainAsset() *admodels.AdAsset
MainAsset from response
func (*ResponseAdItem) NetworkName ¶
func (it *ResponseAdItem) NetworkName() string
NetworkName by source
func (*ResponseAdItem) PotentialPrice ¶
func (it *ResponseAdItem) PotentialPrice(action admodels.Action) billing.Money
PotentialPrice wich can be received from source but was marked as descrepancy
func (*ResponseAdItem) Price ¶
func (it *ResponseAdItem) Price(action admodels.Action, removeFactors ...PriceFactor) (price billing.Money)
Price for specific action if supported `click`, `lead`, `view` returns total price of the action
func (*ResponseAdItem) PricingModel ¶
func (it *ResponseAdItem) PricingModel() types.PricingModel
PricingModel of advertisement
func (*ResponseAdItem) PriorityFormatType ¶
func (it *ResponseAdItem) PriorityFormatType() types.FormatType
PriorityFormatType from current Ad
func (*ResponseAdItem) PurchasePrice ¶
func (it *ResponseAdItem) PurchasePrice(action admodels.Action, removeFactors ...PriceFactor) billing.Money
PurchasePrice gives the price of view from external resource. The cost of this request.
func (*ResponseAdItem) Request ¶
func (it *ResponseAdItem) Request() *BidRequest
Request information
func (*ResponseAdItem) RevenueShareFactor ¶
func (it *ResponseAdItem) RevenueShareFactor() float64
RevenueShareFactor amount %
func (*ResponseAdItem) SetCPMPrice ¶
func (it *ResponseAdItem) SetCPMPrice(price billing.Money, includeFactors ...PriceFactor)
SetCPMPrice update of DSP auction value
func (*ResponseAdItem) TargetIDString ¶
func (it *ResponseAdItem) TargetIDString() string
TargetIDString number
func (*ResponseAdItem) ViewTrackerLinks ¶
func (it *ResponseAdItem) ViewTrackerLinks() []string
ViewTrackerLinks returns traking links for view action
type ResponseEmpty ¶
type ResponseEmpty struct { ItemID string Req *BidRequest Src Source Imp *Impression Bid *openrtb.Bid Err error // contains filtered or unexported fields }
ResponseEmpty object
func NewEmptyResponse ¶
func NewEmptyResponse(request *BidRequest, src Source, err error) *ResponseEmpty
NewEmptyResponse by bid request
func (ResponseEmpty) AuctionCPMBid ¶
func (r ResponseEmpty) AuctionCPMBid() billing.Money
AuctionCPMBid value price without any comission
func (ResponseEmpty) AuctionType ¶
func (r ResponseEmpty) AuctionType() types.AuctionType
AuctionType of request
func (*ResponseEmpty) Context ¶
func (r *ResponseEmpty) Context(ctx ...context.Context) context.Context
Context value
func (ResponseEmpty) ExtImpressionID ¶
func (r ResponseEmpty) ExtImpressionID() string
ExtImpressionID it's unique code of the auction bid impression
func (ResponseEmpty) ExtTargetID ¶
func (r ResponseEmpty) ExtTargetID() string
ExtTargetID of the external network
func (ResponseEmpty) ID ¶
func (r ResponseEmpty) ID() string
ID of current response item (unique code of current response)
func (ResponseEmpty) Impression ¶
func (r ResponseEmpty) Impression() *Impression
Impression place object
func (ResponseEmpty) ImpressionID ¶
func (r ResponseEmpty) ImpressionID() string
ImpressionID unique code string
func (ResponseEmpty) Item ¶
func (r ResponseEmpty) Item(impid string) ResponserItemCommon
Item by impression code
func (ResponseEmpty) PriorityFormatType ¶
func (r ResponseEmpty) PriorityFormatType() types.FormatType
PriorityFormatType from current Ad
type ResponseItemBlock ¶
type ResponseItemBlock struct { Items []ResponserItem // contains filtered or unexported fields }
ResponseItemBlock group of simple items
func (*ResponseItemBlock) AuctionCPMBid ¶
func (i *ResponseItemBlock) AuctionCPMBid() (bid billing.Money)
AuctionCPMBid value price without any comission
func (*ResponseItemBlock) Context ¶
func (i *ResponseItemBlock) Context(ctx ...context.Context) context.Context
Context value
func (*ResponseItemBlock) ExtImpressionID ¶
func (i *ResponseItemBlock) ExtImpressionID() string
ExtImpressionID it's unique code of the auction bid impression
func (*ResponseItemBlock) ExtTargetID ¶
func (i *ResponseItemBlock) ExtTargetID() string
ExtTargetID of the external network
func (*ResponseItemBlock) ID ¶
func (i *ResponseItemBlock) ID() string
ID of current response item (unique code of current response)
func (*ResponseItemBlock) Impression ¶
func (i *ResponseItemBlock) Impression() *Impression
Impression place object
func (*ResponseItemBlock) ImpressionID ¶
func (i *ResponseItemBlock) ImpressionID() string
ImpressionID code
func (*ResponseItemBlock) Price ¶
func (i *ResponseItemBlock) Price(action admodels.Action) (price billing.Money)
Price of whole response
func (*ResponseItemBlock) PriorityFormatType ¶
func (i *ResponseItemBlock) PriorityFormatType() types.FormatType
PriorityFormatType from current Ad
func (*ResponseItemBlock) Validate ¶
func (i *ResponseItemBlock) Validate() (err error)
Validate response
type ResponseItemEmpty ¶
type ResponseItemEmpty struct{}
ResponseItemEmpty value
func (*ResponseItemEmpty) ActionURL ¶
func (*ResponseItemEmpty) ActionURL() string
ActionURL returns target resource link for direct and banner click as well
func (*ResponseItemEmpty) Asset ¶
func (*ResponseItemEmpty) Asset(name string) *admodels.AdAsset
Asset by name
func (*ResponseItemEmpty) AuctionCPMBid ¶
func (*ResponseItemEmpty) AuctionCPMBid() billing.Money
AuctionCPMBid value price without any comission
func (*ResponseItemEmpty) CPMPrice ¶
func (*ResponseItemEmpty) CPMPrice(removeFactors ...PriceFactor) billing.Money
CPMPrice value price value for DSP auction
func (*ResponseItemEmpty) CampaignID ¶
func (*ResponseItemEmpty) CampaignID() uint64
CampaignID number
func (*ResponseItemEmpty) ClickTrackerLinks ¶
func (*ResponseItemEmpty) ClickTrackerLinks() []string
ClickTrackerLinks returns traking links for click action
func (*ResponseItemEmpty) ComissionShareFactor ¶
func (*ResponseItemEmpty) ComissionShareFactor() float64
ComissionShareFactor returns the multipler for commission calculation which system get from user revenue from 0 to 1
func (*ResponseItemEmpty) ContentFields ¶
func (*ResponseItemEmpty) ContentFields() map[string]any
ContentFields from advertisement object
func (*ResponseItemEmpty) ContentItem ¶
func (*ResponseItemEmpty) ContentItem(name string) any
ContentItem returns the ad response data
func (*ResponseItemEmpty) ContentItemString ¶
func (*ResponseItemEmpty) ContentItemString(name string) string
ContentItemString from the ad
func (*ResponseItemEmpty) Context ¶
func (*ResponseItemEmpty) Context(ctx ...context.Context) context.Context
Context value
func (*ResponseItemEmpty) ExtImpressionID ¶
func (*ResponseItemEmpty) ExtImpressionID() string
ExtImpressionID it's unique code of the auction bid impression
func (*ResponseItemEmpty) ExtTargetID ¶
func (*ResponseItemEmpty) ExtTargetID() string
ExtTargetID of the external network
func (*ResponseItemEmpty) ID ¶
func (*ResponseItemEmpty) ID() string
ID of current response item (unique code of current response)
func (*ResponseItemEmpty) Impression ¶
func (*ResponseItemEmpty) Impression() *Impression
Impression place object
func (*ResponseItemEmpty) ImpressionID ¶
func (*ResponseItemEmpty) ImpressionID() string
ImpressionID unique code string
func (*ResponseItemEmpty) MainAsset ¶
func (*ResponseItemEmpty) MainAsset() *admodels.AdAsset
MainAsset from response
func (*ResponseItemEmpty) NetworkName ¶
func (*ResponseItemEmpty) NetworkName() string
NetworkName by source
func (*ResponseItemEmpty) PotentialPercent ¶
func (*ResponseItemEmpty) PotentialPercent() float64
PotentialPercent money
func (*ResponseItemEmpty) PotentialPrice ¶
func (*ResponseItemEmpty) PotentialPrice(action admodels.Action) billing.Money
PotentialPrice wich can be received from source but was marked as descrepancy
func (*ResponseItemEmpty) Price ¶
func (*ResponseItemEmpty) Price(action admodels.Action, removeFactors ...PriceFactor) billing.Money
Price summ
func (*ResponseItemEmpty) PricingModel ¶
func (*ResponseItemEmpty) PricingModel() types.PricingModel
PricingModel of advertisement
func (*ResponseItemEmpty) PriorityFormatType ¶
func (*ResponseItemEmpty) PriorityFormatType() types.FormatType
PriorityFormatType from current Ad
func (*ResponseItemEmpty) PurchasePrice ¶
func (*ResponseItemEmpty) PurchasePrice(action admodels.Action, removeFactors ...PriceFactor) billing.Money
PurchasePrice gives the price of view from external resource. The cost of this request.
func (*ResponseItemEmpty) RevenuePercent ¶
func (*ResponseItemEmpty) RevenuePercent() float64
RevenuePercent money
func (*ResponseItemEmpty) RevenueShareFactor ¶
func (*ResponseItemEmpty) RevenueShareFactor() float64
RevenueShareFactor returns the multipler for company revenue calculation per action from 0 to 1
func (*ResponseItemEmpty) SetCPMPrice ¶
func (*ResponseItemEmpty) SetCPMPrice(price billing.Money, includeFactors ...PriceFactor)
SetCPMPrice update of DSP auction value
func (*ResponseItemEmpty) ViewTrackerLinks ¶
func (*ResponseItemEmpty) ViewTrackerLinks() []string
ViewTrackerLinks returns traking links for view action
type Responser ¶
type Responser interface { // AuctionID response AuctionID() string // AuctionType of request AuctionType() types.AuctionType // Source of response Source() Source // Request information Request() *BidRequest // Ads list Ads() []ResponserItemCommon // Item by impression code Item(impid string) ResponserItemCommon // Count of response items Count() int // Validate response Validate() error // Error of the response Error() error // Context value Context(ctx ...context.Context) context.Context // Get context item by key Get(key string) any }
Responser type
type ResponserItem ¶
type ResponserItem interface { ResponserItemCommon // AdID number AdID() uint64 // AccountID number AccountID() uint64 // CampaignID number CampaignID() uint64 // Format object Format() *types.Format // PricingModel of the response advertisement PricingModel() types.PricingModel // ContentItem returns the ad response data ContentItem(name string) any // ContentItemString from the ad ContentItemString(name string) string // ContentFields from advertisement object ContentFields() map[string]any // MainAsset from response MainAsset() *admodels.AdAsset // Asset by name Asset(name string) *admodels.AdAsset // Assets list Assets() admodels.AdAssets // Source of response Source() Source // ViewTrackerLinks returns traking links for view action ViewTrackerLinks() []string // ClickTrackerLinks returns traking links for click action ClickTrackerLinks() []string // NetworkName by source NetworkName() string // Price for specific action if supported `click`, `lead`, `view` // returns total price of the action Price(action admodels.Action, removeFactors ...PriceFactor) billing.Money // SetCPMPrice update of DSP auction value SetCPMPrice(price billing.Money, includeFactors ...PriceFactor) // CPMPrice value price value for DSP auction CPMPrice(removeFactors ...PriceFactor) billing.Money // PurchasePrice gives the price of view from external resource. // The cost of this request. PurchasePrice(action admodels.Action, removeFactors ...PriceFactor) billing.Money // PotentialPrice wich can be received from source but was marked as descrepancy PotentialPrice(action admodels.Action) billing.Money // Second campaigns Second() *SecondAd // ECPM item value ECPM() billing.Money // revenue calculation per action from 0 to 1 RevenueShareFactor() float64 // calculation which system get from user revenue from 0 to 1 ComissionShareFactor() float64 // IsDirect AD type IsDirect() bool // ActionURL returns target resource link for direct and banner click as well ActionURL() string // Width of item Width() int // Height of item Height() int }
ResponserItem for single AD
type ResponserItemCommon ¶
type ResponserItemCommon interface { // ID of current response item (unique code of current response) ID() string // Impression place object Impression() *Impression // ImpressionID unique code string ImpressionID() string // ExtImpressionID it's unique code of the auction bid impression ExtImpressionID() string // ExtTargetID of the external network ExtTargetID() string // AuctionCPMBid value price without any comission AuctionCPMBid() billing.Money // PriorityFormatType from current Ad PriorityFormatType() types.FormatType // Validate item Validate() error // Context value Context(ctx ...context.Context) context.Context // Get ext field Get(key string) any }
ResponserItemCommon interface
type ResponserMultipleItem ¶
type ResponserMultipleItem interface { ResponserItemCommon // Ads list response Ads() []ResponserItem // Count of response items Count() int }
ResponserMultipleItem interface for complex banners
type SecondAd ¶
type SecondAd struct { ID string `json:"id,omitempty"` Network string `json:"network,omitempty"` SourceID uint64 `json:"source_id,omitempty"` CampaignID uint64 `json:"campaign_id,omitempty"` Price billing.Money `json:"price,omitempty"` }
SecondAd description
type Source ¶
type Source interface { SourceMinimal // ID of the source driver ID() uint64 // ObjectKey of the source driver ObjectKey() uint64 // Protocol of the source driver Protocol() string // Test request before processing Test(request *BidRequest) bool // PriceCorrectionReduceFactor which is a potential // Returns percent from 0 to 1 for reducing of the value // If there is 10% of price correction, it means that 10% of the final price must be ignored PriceCorrectionReduceFactor() float64 // RequestStrategy description RequestStrategy() RequestStrategy }
Source of advertisement and where will be selled the traffic
func ToSource ¶
func ToSource(val SourceMinimal) Source
ToSource interface from different types of interfaces with the implementation of unsupported methods
type SourceAccessor ¶
type SourceAccessor interface { // Iterator returns the configured queue accessor Iterator(request *BidRequest) SourceIterator // SourceByID returns source instance SourceByID(id uint64) (Source, error) // SetTimeout for sourcer SetTimeout(timeout time.Duration) }
SourceAccessor preoritise the source access
type SourceEmpty ¶
type SourceEmpty struct {
PriceCorrectionReduce float64 // from 0 to 1
}
SourceEmpty abstraction
func (*SourceEmpty) Bid ¶
func (*SourceEmpty) Bid(request *BidRequest) Responser
Bid request for standart system filter
func (*SourceEmpty) ObjectKey ¶
func (*SourceEmpty) ObjectKey() uint64
ObjectKey of the source driver
func (*SourceEmpty) PriceCorrectionReduceFactor ¶
func (s *SourceEmpty) PriceCorrectionReduceFactor() float64
PriceCorrectionReduceFactor which is a potential Returns percent from 0 to 1 for reducing of the value If there is 10% of price correction, it means that 10% of the final price must be ignored
func (*SourceEmpty) ProcessResponseItem ¶
func (*SourceEmpty) ProcessResponseItem(Responser, ResponserItem)
ProcessResponseItem result or error
func (*SourceEmpty) RequestStrategy ¶
func (*SourceEmpty) RequestStrategy() RequestStrategy
RequestStrategy description
func (*SourceEmpty) Test ¶
func (*SourceEmpty) Test(request *BidRequest) bool
Test request before processing
type SourceIterator ¶
type SourceIterator interface { // Next returns source interface according to strategy Next() Source }
SourceIterator returns next source from the scope
type SourceMinimal ¶
type SourceMinimal interface { // Bid request for standart system filter Bid(request *BidRequest) Responser // ProcessResponseItem result or error ProcessResponseItem(Responser, ResponserItem) }
SourceMinimal contains only minimal set of methods
type SourceTesteChecker ¶
type SourceTesteChecker interface { // Test current request for compatibility Test(request *BidRequest) bool }
SourceTesteChecker checker
type SourceTester ¶
type SourceTester interface { Source SourceTesteChecker }
SourceTester interface
type SourceTimeoutSetter ¶
SourceTimeoutSetter interface
type URLGenerator ¶
type URLGenerator interface { // CDNURL returns full URL to path CDNURL(path string) string // LibURL returns full URL to lib file path LibURL(path string) string // PixelURL generator from response of item // @param js generates the JavaScript pixel type PixelURL(event events.Type, status uint8, item ResponserItem, response Responser, js bool) (string, error) // PixelDirectURL generator from response of item PixelDirectURL(event events.Type, status uint8, item ResponserItem, response Responser, direct string) (string, error) // PixelLead URL PixelLead(item ResponserItem, response Responser, js bool) (string, error) // MustClickURL generator from response of item MustClickURL(item ResponserItem, response Responser) string // ClickURL generator from response of item ClickURL(item ResponserItem, response Responser) (string, error) // ClickRouterURL returns router pattern ClickRouterURL() string // DirectURL generator from response of item DirectURL(event events.Type, item ResponserItem, response Responser) (string, error) // DirectRouterURL returns router pattern DirectRouterURL() string // WinURL generator from response of item WinURL(event events.Type, status uint8, item ResponserItem, response Responser) (string, error) // BillingNoticeURL generator from response of item BillingNoticeURL(event events.Type, status uint8, item ResponserItem, response Responser) (string, error) // WinRouterURL returns router pattern WinRouterURL() string }
URLGenerator of advertisement
type User ¶
type User struct { ID string `json:"id,omitempty"` // Unique User ID Email string `json:"email,omitempty"` // In some cases it's able the use email, and we are gonna use it Username string `json:"username,omitempty"` // User profile name from the external service or potentional username SessionID string `json:"sessid,omitempty"` // Unique session ID FingerPrintID string `json:"fpid,omitempty"` // ETag string `json:"etag,omitempty"` // Birthday string `json:"birthday,omitempty"` // * Prefer do not use such personal information in alghoritm AgeStart int `json:"age_start,omitempty"` // Year of birth from AgeEnd int `json:"age_end,omitempty"` // Year of birth from Gender string `json:"gender,omitempty"` // Gender ("M": male, "F" female, "O" Other) Keywords string `json:"keywords,omitempty"` // Comma separated list of keywords, interests, or intent Geo *udetect.Geo `json:"geo,omitempty"` Data []Data `json:"data,omitempty"` // contains filtered or unexported fields }
User information
func (*User) BirthdayTime ¶
BirthdayTime parsed by Birthday string
func (*User) GetDataItem ¶
GetDataItem simple value by key
func (*User) GetDataItemOrDefault ¶
GetDataItemOrDefault item
func (*User) SetDataItem ¶
SetDataItem with simple *key*, *value*
Source Files ¶
- access_point.go
- base_filter.go
- bidrequest.go
- bidrequest_imp.go
- bidrequest_user.go
- errors.go
- pools.go
- prepare_url.go
- price.go
- response.go
- response_ad_item.go
- response_empty.go
- response_item_block.go
- response_item_empty.go
- responser.go
- responser_item.go
- second_ad.go
- source.go
- source_empty.go
- source_wrapper.go
- url_generator.go
- win_event.go