Releases: aukgit/scala-open-real-time-bidding-rtb
Releases · aukgit/scala-open-real-time-bidding-rtb
scala-open-real-time-bidding-rtb v.0.0.8 [alpha] - StaticBidding (POC) - 2
scala-open-real-time-bidding-rtb v.0.0.8 [alpha] - StaticBidding (POC) - 2
- Static Bid Requires more improvements
- Improved Extension methods
- Well-formed no bid response config added
- WebApi Response methods naming refactored
Pull Requests - Completed
Bid Request
Url
http://localhost:9000/services/v1/dspService/makeBidRequst
HTTP Method : POST
Body raw
{
"id": "_",
"at": 1,
"cur": [
"USD"
],
"imp": [
{
"id": "1",
"bidfloor": 0.05,
"banner": {
"h": 500,
"w": 600,
"pos": 0
}
}
],
"site": {
"id": "102855",
"cat": [
"IAB3-1"
],
"domain": "www.foobar.com",
"page": "http://www.foobar.com/1234.html ",
"publisher": {
"id": "1",
"name": "Alim Advertise Server",
"cat": [
"IAB3-1"
],
"domain": "foobar.com"
}
},
"device": {
"ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
"ip": "123.145.167.10"
},
"user": {
"id": "55816b39711f9b5acf3b90e313ed29e51665623f"
}
}
Bid Response
{
"id": "static : BidResponse Id",
"seatbid": [
{
"bid": [
{
"id": "static:bidId",
"impid": "1",
"price": 0.15311558703184022,
"adid": "-1",
"nurl": "http://localhost/services/v1/adserver/win-notice/impression/1",
"adm": "adm win-notice markup, optional and should be ignored.",
"adomain": [
"Advertiser blocked domains list",
"Sample-Site-blocked.com",
"Sample-Site2-blocked.com",
"Sample-Site3-blocked.com"
],
"iurl": "iurl : uncached image link",
"cid": "static: CampaignId",
"cat": [
"static: categoryId1",
"static: categoryId2"
],
"dealid": "static: dealId",
"h": 500,
"w": 600
}
],
"seat": "SeatBidID/DSP ID : 1",
"group": null
}
],
"bidid": null,
"cur": "USD",
"nbr": 0
}
Well-formed No Bid Response
{
"id": "",
"seatbid": [],
"nbr": 0
}
Sample Gif
scala-open-real-time-bidding-rtb v.0.0.7 [alpha] - StaticBidding (POC) - 1
scala-open-real-time-bidding-rtb v.0.0.7 [alpha] - StaticBidding (POC) - 1
- Static Bid Response Serving Properly (POC)
- POC tested in DemandSidePlatformSimulatorServiceApiController for static bidding
- Database updated as per impression place holder.
- Dimensions (Height/Width) removed from BidRequest to ImpressionPlaceHolder.
- Create relationship with impression with impressionPlaceholder(can be banner, video or native) and holds dimensions and request information.
- Improved Extension methods [WIP]
TODOs
- Static Bid Requires more improvements
- More improvements in extensions methods
- Testing Bidding Static [WIP]
Pull Requests - Completed
scala-open-real-time-bidding-rtb v.0.0.6 [alpha] - DSP simulation-1
scala-open-real-time-bidding-rtb v.0.0.6 [alpha] - DSP simulation-1
scala-open-real-time-bidding-rtb v.0.0.5 [alpha] - all rest web apies
scala-open-real-time-bidding-rtb v.0.0.5 [alpha] - all rest web apies
- All Services Created
- All Entity Apies (REST)
Pull Request
Supporting Routings
- All the rest endpoints has these following operations
HTTP Method | Uri | Descriptions |
---|---|---|
GET | /endPoint | Return all records in same format. |
GET | /endPoint/$id | Return the single element by id |
GET | /endPoint?page=1 | Returns resource records in paged format, default page size = 100 |
GET | /endPoint?page=1&pageSize=2 | Returns resource records in paged format, page size = 2 |
POST | /endPoint/create | Body should contain entity JSON, creates record |
PUT | /endPoint/update($id) | Body should contain entity JSON, update record |
POST | /endPoint/createMany | Body should contain array of entities JSON, creates all these records |
POST | /endPoint/createMany/$addTimes | Body should contain single entity JSON, creates same entity in the given times. |
POST | /endPoint/createMany/$addTimes | Body should contain single entity JSON, creates same entity in the given times. |
Routes
# Routes
# This file defines all application routes (Higher priority routes first)
# https://www.playframework.com/documentation/latest/ScalaRouting
# ~~~~
-> /admin/v1/advertises controllers.v1.router.AdvertiseApiRouter
-> /admin/v1/campaigns controllers.v1.router.CampaignApiRouter
-> /admin/v1/auctions controllers.v1.router.AuctionApiRouter
-> /admin/v1/bannerAdvertiseTypes controllers.v1.router.BannerAdvertiseTypeApiRouter
-> /admin/v1/bat controllers.v1.router.BannerAdvertiseTypeApiRouter
-> /admin/v1/bidRequests controllers.v1.router.BidRequestApiRouter
-> /admin/v1/bidResponses controllers.v1.router.BidResponseApiRouter
-> /admin/v1/campaignTargetCities controllers.v1.router.CampaignTargetCityApiRouter
-> /admin/v1/ctc controllers.v1.router.CampaignTargetCityApiRouter
-> /admin/v1/CampaignTargetOperatingSystems controllers.v1.router.CampaignTargetOperatingSystemApiRouter
-> /admin/v1/ctos controllers.v1.router.CampaignTargetOperatingSystemApiRouter
-> /admin/v1/CampaignTargetSiteSystems controllers.v1.router.CampaignTargetSiteSystemApiRouter
-> /admin/v1/ctss controllers.v1.router.CampaignTargetSiteSystemApiRouter
-> /admin/v1/ContentCategories controllers.v1.router.ContentCategoryApiRouter
-> /admin/v1/contentContexts controllers.v1.router.ContentContextApiRouter
-> /admin/v1/demandSidePlatforms controllers.v1.router.DemandSidePlatformApiRouter
-> /admin/v1/dsps controllers.v1.router.DemandSidePlatformApiRouter
-> /admin/v1/geoMappings controllers.v1.router.GeoMappingApiRouter
-> /admin/v1/impressions controllers.v1.router.ImpressionApiRouter
-> /admin/v1/KeywordAdvertiseMappings controllers.v1.router.KeywordAdvertiseMappingApiRouter
-> /admin/v1/kam controllers.v1.router.KeywordAdvertiseMappingApiRouter
-> /admin/v1/keywords controllers.v1.router.KeywordApiRouter
-> /admin/v1/lostBids controllers.v1.router.LostBidApiRouter
-> /admin/v1/noBidResponses controllers.v1.router.NoBidResponseTypeApiRouter
-> /admin/v1/nbr controllers.v1.router.NoBidResponseTypeApiRouter
-> /admin/v1/publishers controllers.v1.router.PublisherApiRouter
-> /admin/v1/transactions controllers.v1.router.TransactionApiRouter
-> /services/v1/rtbSimulateService controllers.controllerRoutes.routerGeneric.RtbServiceBasicRouter
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
Default Generic Routes
try {
case GET(p"/") =>
controller.getAll()
case POST(p"/create") =>
controller.add()
case POST(p"/createMany") =>
controller.addEntities()
case POST(p"/createMany/$addTimes") =>
performAddTimes(addTimes)
case GET(p"/$id") =>
performGetById(id)
case PUT(p"/$id") =>
performUpdateById(id)
} catch {
case e : Exception =>
controller.handleError(e, routingActionWrapper)
throw e
}
Scala-open-real-time-bidding-rtb v.0.0.4 [alpha] - Generic Routing Sample
scala-open-real-time-bidding-rtb v.0.0.4 [alpha] - web api rest sample
scala-open-real-time-bidding-rtb v.0.0.3 [alpha] - web api rest sample
scala-open-real-time-bidding-rtb v.0.0.3 [alpha] - web api rest sample
- Sample Rest WebApi working properly
scala-open-real-time-bidding-rtb v.0.0.2 [alpha]
scala-open-real-time-bidding-rtb v.0.0.2 [alpha]
- Repository pattern working.
scala-open-real-time-bidding-rtb v.0.0.1 [alpha]
scala-open-real-time-bidding-rtb v.0.0.1 [alpha]
- Initial setup and example testing