venediktov / vanilla-rtb

Real Time Bidding (RTB) - Demand Side Platform framework

Home Page:http://forkbid.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

What is the progress of this project now?

bkda opened this issue · comments

commented
  1. From the wiki page, it seems that there's a part called Banker, but I can't find it.

  2. As a matter of fact, when we tried to use this project, we need to do some custom work maybe refactor rtb/core/openrtb.hpp which means many part of it will be modified. So can you give me some advice about this?

  3. By the way, is there a branch that supports Redis so that we can handle data with other component written by Python .etc.

Thanks.

Dear TracyDa, thank you for your interest in vanilla-rtb project. The status of the project - ongoing ( work-in progress )

From the wiki page, it seems that there's a part called Banker, but I can't find it.

    • We thought of generic interface for a Banker to have sort of authorize() function , but currently you will have to read data directly as in examples here:
    • If you run only on 1 machine, then you don't need master->slave , the slave option is only when your stack runs on farm of servers. As a designer of your system you will have to fill in the gaps, we only provide examples how to use libraries as vanilla-rtb is not an application.

As a matter of fact, when we tried to use this project, we need to do some custom work maybe refactor rtb/core/openrtb.hpp which means many part of it will be modified. So can you give me some advice about this?

template<typename T=std::string , unsigned int Size=128>
class CustomDSL {
 using deserialized_type = openrtb::v25::BidRequest<T>;
 using serialized_type = openrtb::v25::BidResponse<T>;
 using parse_error_type = jsonv::parse_error;
//....
//....
//....
};

I am not familiar with version of openrtb you are trying to support , but we use DSL mapper with boost::optional and that allows us to have missing fields in the message as long as openrtb::BidRequest uses boost::optional for that field. So if you want to write your own you can use boost::optional for those extra fields , but you have to add magic code to CustomDSL to map those
new fields, even though they are optional extractor needs to know how to map them in case they are sent.
So, if you see field in openrtb::BidRequest as optional , most likely we already provided DSL code for that and you don't have to do anything , you can simply ignore sending this field in the message.

By the way, is there a branch that supports Redis so that we can handle data with other component written by Python .etc.

You can use rapid-bidder as a prototype for your project . I would not modify vanilla stack or even examples , because they are changing
and you might have to resolve merge conflicts

We're going to add more to WIKI and put some redis client code into rapid-bidder model project, please give us few days.

commented

Thank you for providing such a meticulous answer, this will be great help to my work.

I hope you will like our new classes, allowing you to reuse GenericDSL and create just mapping for your custom protocol.
https://github.com/venediktov/vanilla-rtb/wiki/Customizing--BidRequest-and-BidResponse
If you get stuck or need some clarification , you can ask us anytime.

I hope it was OK to use your code with your comments for our WIKI pages.