Skip to content

Releases: aukgit/scala-open-real-time-bidding-rtb

scala-open-real-time-bidding-rtb v.0.0.8 [alpha] - StaticBidding (POC) - 2

29 May 16:56
d2505e0
Compare
Choose a tag to compare

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

wellformed-bid-response

scala-open-real-time-bidding-rtb v.0.0.7 [alpha] - StaticBidding (POC) - 1

28 May 12:13
a08861d
Compare
Choose a tag to compare

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

13 May 00:09
c80c925
Compare
Choose a tag to compare

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

25 Apr 06:37
Compare
Choose a tag to compare

scala-open-real-time-bidding-rtb v.0.0.5 [alpha] - all rest web apies

  • All Services Created
  • All Entity Apies (REST)

Pull Request

#4

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

25 Apr 06:31
Compare
Choose a tag to compare

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

18 Apr 06:21
Compare
Choose a tag to compare

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]

18 Apr 06:18
Compare
Choose a tag to compare

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]

18 Apr 06:16
Compare
Choose a tag to compare

scala-open-real-time-bidding-rtb v.0.0.1 [alpha]

  • Initial setup and example testing