-
Notifications
You must be signed in to change notification settings - Fork 188
Trying out openrtb(tutorial?) #89
Comments
Hi @modqhx, First of all, to build the openrtb project you need JDK 7, Maven 3.2 and Google Protocol Buffers 2.6.1. Having m2e installed is not enough:
I don't know any tutorials or howtos there outside using this project. But only to be sure you got right what the openrtb project is about: it is only a library, that helps you implementing the OpenRTB Protocol using JSON (or protobuf) as exchange format. So some bidder implementations uses this library (I'm not sure, if google's open bidder does, but I think so). If you just want to try out OpenRTB, maybe this project is not a good starting point for you ;-) |
@bundeskanzler4711 Great thanks for replying. I understand. I've decided to create a very simple server which basically generates and broadcasts openrtb json of a user, let's say and send it over the network(http?)-- like a mock exchange.. I wanted to ask, what does a complete bid request look like(the json file I mean)..Does it look something like this: Then I can maybe process it with maybe spark/kafka etc..
P.s. why do we say openrtb 'protocol'? Isn't it just this json document simply being sent from one server to another over tcp? |
Hi @modqhx, we call it 'protocol' because the openrtb library is used to implement the (HTTP based) OpenRTB Protocol described in these two documents: If you are interested in full-size-examples, please have a look into the These files were built using I hope this helps you understanding how this library works. By the way, did you notice the draft for the upcoming OpenRTB version 2.4 with Native 1.1? |
@bundeskanzler4711 Thanks for sharing those links :) although I'm still a little fuzzy on the concept. I saw the requestHelper.java code. Eventually its still does come down to an ad exchange server sending, let's say json object to another server over port 80. Not sure why is it hard to simply parse that json on the receiver in real time/or so called 'protocol' and send a response. Another reason I feel its called protocol because the 'keys' in json represent and mean something, and always remain the same when receiving the file. |
Hi @modqhx, as you figured out the RTB "protocol" is really simple, mostly a single request/response pair on top of HTTP[S]. The real complexity of RTB is in the data model inside the request and response objects, and the logic used in both sides, by exchanges and bidders, both trying to optimize several factors like revenue, impressions/clicks, respect restrictions from publishers and networks, avoid fraud etc. And the operational part of the service can also be tough, in particular a bidder may need to handle tens or hundreds of thousand requests per second and it needs to handle them all very fast and still perform complex bidding logic, so performance is important. The JSON-based protocol allows you to easily handle the messages in Javascript or another dynamically-typed language without a special library, but most people want to use more efficient languages like Java or C++, we also want static typing just because the model is so complex with tons of object types and of fields. This library helps with that, it will make sure messages are valid, also support a binary serialization format that's way more efficient than JSON (this saves a ton of money when one operates at the scale of large RTB exchanges like AdX; may be less relevant for small bidders). |
excuse me! Have you installed the opentrb successfully? Can you help me? |
Hi! I'm really interested to try out openrtb. However, I'm not very proficient with Java. Any steps I can follow to setup and running? I have m2e plugin on eclipse.
Also, is openrtb different from google's open bidder?
The text was updated successfully, but these errors were encountered: