The is a very simple simulater to simulate the win price at the DSP's point of view. In the RTB system, DSP would receive the WinNotice while the bid price he response is the highest in an auction. The win price is determined moslty by the second-price auction. However, if the auction lose, no price information is avaialbe for this bid.
It is desirable to know or predict the win price in the RTB environment. If a DSP can predict the price accurately, he can reference this price to bid with a more profitable price.
In the SimuMax, we assume every spaces have the normal distribution pricing. Based on this assumption, we would try to generate a lot of records for data scientist. This project is not to predict the win price. Instead, it is used to generate records based on the price distribution assumption.
- AdExchange: Ad Exchange issue the bid request to bidder (or said DSP).
- Bidder: The bidder receive bid request from AdExchange. And bid with a bid price. Now we have following bidder.
- FlatPriceBidder: The bidder bid with the same price.
- Auction: The way to determine the auction price. There are two strategies available.
- SecondPriceAuction: The higest price win with the second higest price as win price.
- FirstPriceAuction: The higest price win with the higest price as win price.
- AdSpace: An ad space has hidden variable to determine the market price. In the real world, we can regard ad space as a banner placement on the website. We have following AdSpace.
- NormalDistributedAdSpace: the price is generated according to a normal distribution random variable.
- Logger: The logger output the bid results. We have the following bidder.
- ConsoleLogger: Output the results to the standard output.
- Bid request: the Ad exchange send the bid request to DSP to ask DSP if DSP is willing to bid this request.
- Win notice: While a DSP win a auction. The ad exchange would send the win notice to tell DSP he won and what price he won.
- Market price: market price here is regarded as a price for a bid request in the market. In the real market, the market price would be determined by the viewability of the ad space, the audieneces who would reach the space, and the content arround the ad space. Market price can also be regarded as the highest bid price of all the DSPs other than me.
- Bid price: The bid price the price a bidder is willing to pay for a bid request.
- Win price: The final price of an auction. Only the winner can receive the win price.
- Bid floor: The floor price of the bid request.
> cd <simumax-root>
> ./gradlew installApp
and the application will be installed at build/install/simumax/
Usage
simumax <auction-count>
Here is an example
> cd <simumax-root> /build/install/simumax
> bin/simumax 10
space, bidFloor, bidPrice, winPrice, marketPrice
A, 0.010000, 0.300000, 0.171109, 0.171109
A, 0.010000, 0.300000, 0.160264, 0.160264
B, 0.010000, 0.300000, 0.000000, 0.515374
A, 0.010000, 0.300000, 0.166272, 0.166272
A, 0.010000, 0.300000, 0.283004, 0.283004
A, 0.010000, 0.300000, 0.221209, 0.221209
A, 0.010000, 0.300000, 0.186105, 0.186105
B, 0.010000, 0.300000, 0.000000, 0.534401
B, 0.010000, 0.300000, 0.285419, 0.285419
A, 0.010000, 0.300000, 0.220888, 0.220888
> cd <simumax-root>
> ./gradlew distApp
and the distribution assembly will be created at build/distributions/simumax.zip
The binary is generated by gradle. And Windows, Mac, Linux are all supported
For windows users,
- Use
gradlew.bat
instead ofgradlew
- Use
simumax.bat
instead ofsimumax