Get Started
Local environment
- Download the Zip file or clone the project if you would like to contribute to the project.
- Import the project into your desired IDE via Maven Import.
- Build the project from the parent with Maven Goal
mvn clean install
.
A war file will be generated within the target folder of the core project. - Run OpenSSP from the core project with Maven Goal
mvn tomcat7:run-war
. - OpenSSP is now ready to retrieve requests on port 8080 for developing, testing and debugging purposes.
Server setup
Prerequisites:
- Required: Install and configure a Servlet Container e.g. Apache Tomcat.
- Required: Set up a
properties
directory for storage the resource filesglobal.runtime.xml
,local.runtime.xml
andlog4j2.xml (optional)
.
For example, if you choose Apache Tomcat as your Servlet Container, create the properties folder where the CATALINA_HOME is located. - Recommended: Set up the runtime files
global.runtime.xml
andlocal.runtime.xml
.
These files will be read during startup process. A Watchdog observes these files for changes and starts the load process to store the values. See the runtime files for more information. - Optional: Set up a log structure for customized logs. Default logging is console logging.
- Define a request tag and place it within the ad space.
The ad space is the placeholder on the publisher's site for a markup which will be served by the SSP. The definition of the tag and the parameters depend on your requirements. - Adjust the
com.atg.openssp.core.entry.EntryValidator
to read the values and store this data in the SessionAgent. - You need an external data source in order to enrich the bid request to a demand side with the required data as the OpenRTB protocol prescribes.
A common way is to setup a service (e.g. RESTful service) which periodically loads the data of publishers, websites etc. This data comes from a database and will be stored onto the memory of the SSP (cache).
Example: Define a request parameter e.g.&publisher=1234
with ID of the publisher as it is stored in your database.
Read the cached data with the key of1234
and you will retrieve further information about the publisher which you can put into the bid request. - Of course, you first need a demand partner to send the bid request to. Therefore, it is also recommended to create a service to load data regarding to the partner.
The RTB
com.atg.openssp.core.exchange.channel.rtb.DemandService
will load the demand partner (also called supplier), send the bid request to them and wait for an answer.
Update v0.2: to increase the user experience and avoid to set up an external data service for a test implementation of OpenSSP , we provide some new example JSON based datastructures and its corresponding DataBroker. With these structures it is very easy to setup the data you need to fill a valid and complete bidrequest. Additionally the payload of SSP request is reduced to only one parameter. Copy the JSON files
site_db.json, price_layer.json
and supplier_db.json
into the properties
folder.
Example: a call to OpenSSP with
?site=1
will map to an entry within site_db.json
and loads its data from cache.
Deployment to Server
After finishing your setup, you are only a few steps away from succesfully running the system.
- Build the project from the parent with Maven Goal
mvn clean install
. - Deploy the war file into the webapps folder.
- Run the Servlet Container.
Test your installation
After finishing your deployment, you can test if OpenSSP works correctly.
Open your browser and type
If OpenSSP is successfully installed and running you should see an output similar to:
Open your browser and type
https://yourserverip:8080/open-ssp/SupplyVideoService?site=1&test=1
If OpenSSP is successfully installed and running you should see an output similar to:
{\"result\":\"Success\", \"message\":\"OpenSSP is working.\"}
Thats all you need to do. Now you can send requests to your SSP.