Git Product home page Git Product logo

tac-aa's Introduction

TAC/Ad Auctions

Internet advertising provides a substantial source of revenue for online publishers, amounting to billions of dollars annually. Sponsored search is a popular form of targeted advertising, in which query-specific advertisements are placed alongside organic search-engine results. In popular search engines, the placement (position) of an ad for a given query, along with the cost (to the advertiser) per click (CPC), is determined through an auction process. Advertisers wishing to place their ads on relevant searchers must strategically decide which keywords to bid on, and what CPC prices to offer.

The TAC Ad Auction (TAC/AA) game presents a realistic sponsored search environment for a simulated advertising scenario. Advertisers represent retailers in a simplified home entertainment market, bidding to place ads before users searching on product keywords. Game entrants design and implement bidding strategies for the advertisers, while behaviors of the search engine and users are simulated by the server. The TAC/AA tournament pits advertiser agent strategies against each other, evaluating each in terms of sales profit net of advertising costs.

Our hope is that by tackling this challenging problem competitively, researchers and practitioners participating in TAC/AA will produce new ideas about bidding strategy for advertising (and in general), as well as insights about sponsored-search mechanisms and ways to improve the model.

Building TAC/AA

The TAC/AA game server sources and how to create the executable.

Prerequisites:

Install the jars

Checkout or download the latest repository branch (this will need to change to a public server):

git clone http://github.com/pjordan/tac-aa

Install the modules:

mvn install

Create the server binary

Change directories into aa-server

cd aa-server

Assemble the binaries

mvn assembly:assembly

The binaries are now assembled in target

ls target/*.{zip,gz}

Running the server

To following software is required to run the server

  • java (1.6+)

Optionally:

  • mysql (recommended)

After downloading the server archive, extract the server in a convenient location. You will need to configure the server before starting up.

Configuring the server

After unpacking the server archive, three sub-directories and one file should exist in the new directory. To configure the server, modify the

config/server.conf

file to conform to your desired setup.

If you are running the server publicly, modify the password line in the configuration file.

admin.password=YOURPASSWORD

Also, edit the server name property.

server.name=YOUR.SERVER.NAME

If you plan on stopping and starting the server often (sometimes this is useful when testing an agent), set the start delay to zero.

sim.startDelay=0

Unless you wish to examine the server logs (simulation logs provide game specific information), set to a high value (3 generates small logs).

log.consoleLevel=3
log.fileLevel=3

By default, the server uses ports:

  • 6502 [agent connections]
  • 8080 [http access]
  • 4042 [viewer port]

These need to be distinct.

Optionally, set up mysql as the data store.

Starting the server

Inside the aa-server directory, we provide a simple run script, named runServer.sh.

To start the server execute

sh runServer.sh

Post-installation

You can connect to the server at http://{server.name}:8080 from your browser.

To start and view games, register a new user. Use the Coming Games link to start and view the upcoming games.

tac-aa's People

Contributors

bcassell avatar

Watchers

James Cloos 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.