Giter Club home page Giter Club logo

jamloop / rtbkit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rtbkit/rtbkit

0.0 2.0 0.0 102.99 MB

RTBkit is a real-time bidder framework designed for use on advertising exchanges such as the Rubicon Project, Nexage, App Nexus, The Google Ad Exchange and others.

Home Page: http://rtbkit.org

Makefile 0.95% Python 0.65% C++ 91.44% C 3.37% Shell 0.14% HTML 1.54% Fortran 0.14% CSS 0.01% JavaScript 0.46% Protocol Buffer 0.66% CoffeeScript 0.07% CMake 0.07% Go 0.50%

rtbkit's Introduction

logo

For any details on this repository, contact [email protected].

To be able to update to a new version or publish to RTBkit, you'll need a fork on github. This fork will be public and will provide a way to sync back and forth with the official one.

Pull & Push

This repository contains a subtree of RTBkit i.e. all commits. Updating it to a new version means importing commits from the updated fork of RTBkit or from RTBkit directly. This can be done with subtree pull:

git remote add upstream https://github.com/your-fork/rtbkit.git
git subtree pull --prefix rtbkit upstream master --squash

Sometimes, it's useful to be able to upstream changes to RTBkit so that they get integrated in the official repository. The first step is to extract and upstream commits (with their history limited to rtbkit) to your fork. This can be done with subtree pull:

git subtree push --prefix rtbkit upstream master

Then, create a pull request and submit it for review.

Build

RTBkit comes with its own build system i.e. jml-build. There is a makefile at the root that allows building RTBkit and running RTBkit test suite.

make rtbkit
make rtbkit-tests

Operations

There are a few scripts supplied with this installation to ease deployments. They assume that the user has a ~/prod directory. That directory must contains 2 complete versions of the codebase called:

rtb-black
rtb-white

There is also a symbolic link named rtb that links to the version currently in production i.e. it either points to rtb-black or rtb-white. Under normal operations, deployment happens in the color that's not in production. The script uses the prod branch unless one is specified. The branch is fetched, checkout and the code is built. Beware that any pending modifications will be lost.

deploy-rtb COLOR [--branch NAME]

Once deployed, you can restart the stack on that new color. Note that if nothing is specified, the script will restart the stack on the currently active color.

launch-rtb [COLOR]

If deployment failed for whatever reason, you can quickly revert to the previous color.

launch-rtb other

Basic Bidding Agent

We included a BasicBiddingAgent that uses RTBkit to perform the following tasks:

  • reads its configuration from a JSON file
  • sends its configuration to the agent configuration service
  • sets the budget of the campaign account
  • transfers a small amount of money every minute (pacing)

Include (at least) one bidding agent per campaign for it to start spending. The agent configuration file is specified on the command line (see configs/launch-sequence.json) and contains an AgentConfig object that RTBkit understands. It contains an ext field that this agent will use to configure the following:

  • budget
  • pace (how much money is transfers every minute)
  • price
  • priority (to choose who will have the priority)

The code is included in the plugins directory and uses cmake. To build, make sure rtbkit is already build and do the following:

cd plugins
cmake -G "Unix Makefiles"
make

rtbkit's People

Contributors

marccardinal avatar ericrobert avatar mikeburkat avatar jraby avatar co-dh avatar jeremybarnes avatar

Watchers

James Cloos avatar JamLoop avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.