Core Open Source Software Developed by RTB4FREE

Last updated: April 18, 2017

Campaign Manager

The Campaign Manager is user administration component of the RTB4FREE platform. It interfaces directly the bidders via Crosstalk, and the ELK data store (if employed) The Campaign Manager is a Ruby on Rails version 4.2 application. The source code with program description can be found here: https://github.com/rtb4free/campaignmanager

Features at a glance:

  1. Web based.
  2. Multi-user with login authentication.
  3. Supports Video and Banner ads.
  4. Employs Open, Hourly, Daily and Total budgeting.
  5. Easy to use targeting.
  6. Supports deployment of multiple bidder/crosstalk clusters in different regions.
  7. Build your own specialized rules if standard targeting is not sufficient.
  8. Built with MySQL, Ruby and Ruby on Rails.

Campaign Manager Tour

The Campaign Manager is a simple web application that allows you to setup and control campaigns. It provides targeting, budgeting, frequency capping, and reporting capabilities.

The default user-name is demo@rtb4free.com and password is rtb4free. After you login, hit the Refresh button to show the Dashboard page of the Campaign Manager.

Campaign

A campaign is the offering of one or more creatives over a certain time period, and with specific targets. We use the term target to mean constraining rules that filter out those bid requests that match your target market. When we say creative we mean a banner ad, a video or a native ad. Additionally, you can use the Campaign Manager to review the the running status of your campaign, and to start and stop campaigns.

To summarize, use the following sequence to define a new campaign:

The campaign is accessed via the "Campaigns" panel. Example:

Pressing the New Campaign button will bring up the following screen:

Fields with "*" indicate a required field. Most of the fields are self-explanatory, with the exception of Region, and Rules. A Region is a bidding region. It is the name given to a group of bidders controlled by Crosstalk. Only one Region can be specified. If you are set up to bid in the US, then use US as the region. If in Asia, use AP, and if in Europe use EU.

Rules are specific constraints applied to the campaign gathered from the bid requests and are discussed further in a later Rules section.

Once you have a campaign created, you can add Banner and Video ads.

Videos

A video creative is a Video that plays in a VAST player. The video creative is accessed via the the "Videos" panel. An example is shown below:

Targeting

A campaign is the offering of one or more creatives over a certain time period, and with specific targets. We use the term target to mean common constraints that filter out those bid requests to match your target market. When we say creative we mean a banner ad, a video or a native ad.

Here is a Target screen from the campaign manager:

The most commonly used contraints are available for you to choose. Specifically you can target:

  • Whitelist, blacklist of domains
  • Geographical area
  • Country
  • Carrier
  • Operating System
  • Make
  • Model
  • Device type
  • Whitelist IAB categories
  • Blacklist IAB categorries

If you need finer grained or custom selection selection contrainats, see the "Rules" section.

Private/Preferred Deals

To your creatives "Public Price" you can and one or more Private/Preferred deal Id's and prices. You must have at least one price defined for your creative, otherwise it will not bid at all.

The rules for pricing are this:

  1. If the impression has a pmp.private_auction field and it is 0, or has no pmp.private_auction field - This means that if the creative does not have a deal specified, or the deals specified do not match, the creative will bid using the Public Price. If no Public Price is available then there will be no bid, unless the deals in the pmp match.
  2. If the impression has a pmp.private_auction field and it is 1 - The Public Price is not used, and only those deals that match ids will be allowed to bid.
  3. If the impression has a pmp.private_auction = 1 and pmp.deal[n].wseat is not null - Only those deals that match AND where the wseat matches the seat-id of the bidder on this exchange will result in a bid.
  4. In the case where more than one deal matches with the pmp.deals array - Then the resulting bid will be with the deal with the highest price.

Deals are set up within the Video and Banner creatives by checking the . You can add one or more deals. Example:

Macros

To eliminate the need to hard code things in the Banner and Video creatives, and to allow you to pass information about the bid request, macro substitutions are provided for you. Here is a list of Macro definitions understood by the RTB4FREE bidder:

Macro Does

Note, the RTB exchange can make substitutions in the ADM field as it delivers it to the web site. The RTB exchange will reflect the ADM back on the win notification, and you can ask for the RTB exchange to also substitute fields as well. See the RTB 2.5 specification for supported macro names.

These are the macros substituted by the Exchange, not the bidder. so these will return via the RTB win notification and as the ad is delivered into the web page.

Macro Does

Budgets

You can set hourly, daily and total budgets on the Campaign and Banner and Video creatives. Simply go to the Campaign, Banner and Video panel and put your desired budgets in. Example:

Frequency Caps

A frequency cap can be set on creatives which sets forth how often your ad will appear to the same device. It is set in minutes and the frequency within that time period. It is set on the Banner and Video panels. Example:

Rules

A rule is simply a question applied to the values on the bid request against a constraint defined in the Campaign or Creative. The question is framed such that the response will be True or False. An informal rule might be "Is user.id equal to "XXX", or "Is user.id contained in the set "my_cookies".

A series of rules are used to "filter" the Bid Request against the definition of the campaign.

Selection of a campaign, and the creatives within a campaign is a function of a list of "rules" that are applied to attributes of the incoming bid request. Each rule is applied in turn to the bid request. Each rule returns a value of True or False. A value of True means as far as that individual rule is concerned, the Campaign/creative is a candidate for making a bid. If at any time, a rule evaluates to false the Campaign/creative is not a candidate for making a bid and rule processing for that Campaign/creative is terminated.

A rich set of operators is provided for the RTB to work with. This list includes all the actions we have encountered over the past several years.

  1. EQUALS - Tests bid request scalar being equal to another scalar
  2. NOT_EQUALS - Tests bid request scalar != to another scalar
  3. LESS_THAN - Tests bid request scalar < than another scalar
  4. LESS_THAN_EQUALS - Tests bid request scalar <= another scalar
  5. GREATER_THAN - Tests bid request scalar > another scalar
  6. GREATER_THAN_EQUALS - Tests bid request scalar >= another scalar
  7. MEMBER - Tests bid request scalar is a member of a set
  8. NOT_MEMBER - Tests bid request scalar not a member of a set
  9. INTERSECTS - Tests bid request array intersects another set and is not empty set
  10. NOT_INTERSECTS Tests bid request array intersected with another set is an empty set
  11. DOMAIN - Tests bid request scalar is between 2 numbers (defined in an array)
  12. NOT_DOMAIN - Tests bid request scalar is not between 2 numbers (defined in an array)r
  13. STRINGIN - Tests a string is a substring of the string in the bid request object.
  14. NOT_STRINGIN - Tests a string is not a substring of the string in the bid request object.
  15. REGEX - Tests for a match of a regular expression against a string in the bid request object.
  16. NOT_REGEX - Tests for the non-match of a regular expression against a string in the bid request object.
  17. EXISTS - Tests that an object is in existance within the bid request.
  18. NOT_EXISTS - Tests that an object does not exist within the bid request object.
  19. INRANGE - Tests that the lat/lon of a geo object in the bid request is within a certain number of Km from a specified point
  20. NOT_INRANGE Tests that the lat/lon of a geo object in the bid request is at least a certain number of km from a specified point.

Rules are defined with the Rules panel. Here is an example:

Dashboard

The dashboard gives you a quick overview of how all your campaigns are performing over the last hour, day, week and total. Example:

All the RTB4FREE configuration files are designed to work in concert with Docker compose files so that key parameters can be changed with environment variables. See the Deploy section for details.

User Administration

You can define additional user logins for the Campaign Manger. After logging in to the campaign manager, using credentials demo@rtb4free.com/rtbfree, navigate on the left part of the screen to Admin Users. The screen will look like this

To add a a new user, Select the New User button and fill it out. Note! Check the Administrator checkbox, to allow give this user the ability to create users and edit the documentation options.. Press Update to save the user.