Repository files navigation

This is the Java version of Prebid Server. See the Prebid Server Feature List and FAQ entry to understand the differences between PBS-Java and PBS-Go.

Prebid Server (Java)

GitHub versionGitHub contributorsPRs WelcomeGitHub pull-requests closed

Prebid Server is an open source implementation of Server-Side Header Bidding. It is managed by Prebid.org, and upholds the principles from the Prebid Code of Conduct.

This project does not support the same set of Bidders as Prebid.js, although there is overlap. The current set can be found in the adapters package. If you don't see the one you want, feel free to contribute it.

For more information, see:

Please consider registering your Prebid Server to get on the mailing list for updates, etc.

Getting Started

The server makes the following assumptions:

  • No ranking or decisioning is performed by this server. It just proxies requests.
  • No ad quality management (e.g., malware, viruses, deceptive creatives) is performed by this server.
  • This server does no fraud scanning and does nothing to prevent bad traffic.
  • This server logs errors but not requests.
  • This server has no user profiling or user data collection capabilities.

This project is built upon Vert.x to achieve high request throughput. We use Maven and attempt to introduce minimal dependencies.

When running, the server responds to several HTTP endpoints.

Building

Follow next steps to create JAR file which can be deployed locally.

  • Install prerequsites

    • Java SDK: Oracle's or Corretto. Let us know if there's a distribution PBS-Java doesn't work with.
    • Maven
  • Clone the project:

git clone https://github.com/prebid/prebid-server-java.git
  • Move to project directory:
cd prebid-server-java

And from this step there are two common use cases, which can be chosen depending on your goals

  1. Create prebid-server JAR only
  • First, make sure nothing's running on your local port 8080 or 8090
  • Run below command to build project:
mvn clean package
  1. Create prebid-server JAR with modules
  • Run below command to build project:
mvn clean package --file extra/pom.xml

For more information how to build the server follow documentation.

Configuration

The source code includes an example configuration file sample/configs/prebid-config.yaml. Also, check the account settings file sample/configs/sample-app-settings.yaml.

For more information how to configure the server follow documentation. There are many settings you'll want to consider such as which bidders you're going to enable, privacy defaults, admin endpoints, etc.

Running

Run your local server with the command:

java -jar target/prebid-server.jar --spring.config.additional-location=sample/configs/prebid-config.yaml

For more options how to start the server, please follow documentation.

Running prebuilt .jar

Starting from PBS Java v2.9, you can download prebuilt .jar packages from Release Notes page, instead of building them by yourself. This prebuilt packages are delivered with or without extra modules.

Verifying

To check the server is started go to http://localhost:8080/status and verify response status is 200 OK.

There are a couple of 'hello world' test requests described in sample/requests/README.txt

Running Docker image

Starting from PBS Java v3.11.0, you can download prebuilt Docker images from GitHub Packages page, and use them instead of plain .jar files. These prebuilt images are delivered in 2 flavors:

To run PBS from image correctly, you should provide the PBS config file. The easiest way is to mount the config file into the container, using --mount or --volume (-v) Docker CLI arguments. Keep in mind that the config file should be mounted into a specific location: /app/prebid-server/conf/ or /app/prebid-server/.

PBS follows the regular Spring Boot config load hierarchy and type. For simple configuration, a single application.yaml mounted to /app/prebid-server/conf/ will be enough. Please consult Spring Externalized Configuration for all possible ways to configure PBS.

You can also supply command-line parameters through JAVA_OPTS environment variable which will be appended to the java command before the -jar ... parameter. Please pay attention to line breaks and escape them if needed.

Example execution using sample configuration:

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 ghcr.io/prebid/prebid-server-java:latest --spring.config.additional-location=sample/configs/prebid-config.yaml

or

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 -e JAVA_OPTS=-Dspring.config.additional-location=sample/configs/prebid-config.yaml ghcr.io/prebid/prebid-server-java:latest

Documentation

Development

Maintenance

Contributing

About

Java version of Prebid Server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

This is the Java version of Prebid Server. See the Prebid Server Feature List and FAQ entry to understand the differences between PBS-Java and PBS-Go.

Prebid Server (Java)

GitHub versionGitHub contributorsPRs WelcomeGitHub pull-requests closed

Prebid Server is an open source implementation of Server-Side Header Bidding. It is managed by Prebid.org, and upholds the principles from the Prebid Code of Conduct.

This project does not support the same set of Bidders as Prebid.js, although there is overlap. The current set can be found in the adapters package. If you don't see the one you want, feel free to contribute it.

For more information, see:

Please consider registering your Prebid Server to get on the mailing list for updates, etc.

Getting Started

The server makes the following assumptions:

  • No ranking or decisioning is performed by this server. It just proxies requests.
  • No ad quality management (e.g., malware, viruses, deceptive creatives) is performed by this server.
  • This server does no fraud scanning and does nothing to prevent bad traffic.
  • This server logs errors but not requests.
  • This server has no user profiling or user data collection capabilities.

This project is built upon Vert.x to achieve high request throughput. We use Maven and attempt to introduce minimal dependencies.

When running, the server responds to several HTTP endpoints.

Building

Follow next steps to create JAR file which can be deployed locally.

  • Install prerequsites

    • Java SDK: Oracle's or Corretto. Let us know if there's a distribution PBS-Java doesn't work with.
    • Maven
  • Clone the project:

git clone https://github.com/prebid/prebid-server-java.git
  • Move to project directory:
cd prebid-server-java

And from this step there are two common use cases, which can be chosen depending on your goals

  1. Create prebid-server JAR only
  • First, make sure nothing's running on your local port 8080 or 8090
  • Run below command to build project:
mvn clean package
  1. Create prebid-server JAR with modules
  • Run below command to build project:
mvn clean package --file extra/pom.xml

For more information how to build the server follow documentation.

Configuration

The source code includes an example configuration file sample/configs/prebid-config.yaml. Also, check the account settings file sample/configs/sample-app-settings.yaml.

For more information how to configure the server follow documentation. There are many settings you'll want to consider such as which bidders you're going to enable, privacy defaults, admin endpoints, etc.

Running

Run your local server with the command:

java -jar target/prebid-server.jar --spring.config.additional-location=sample/configs/prebid-config.yaml

For more options how to start the server, please follow documentation.

Running prebuilt .jar

Starting from PBS Java v2.9, you can download prebuilt .jar packages from Release Notes page, instead of building them by yourself. This prebuilt packages are delivered with or without extra modules.

Verifying

To check the server is started go to http://localhost:8080/status and verify response status is 200 OK.

There are a couple of 'hello world' test requests described in sample/requests/README.txt

Running Docker image

Starting from PBS Java v3.11.0, you can download prebuilt Docker images from GitHub Packages page, and use them instead of plain .jar files. These prebuilt images are delivered in 2 flavors:

To run PBS from image correctly, you should provide the PBS config file. The easiest way is to mount the config file into the container, using --mount or --volume (-v) Docker CLI arguments. Keep in mind that the config file should be mounted into a specific location: /app/prebid-server/conf/ or /app/prebid-server/.

PBS follows the regular Spring Boot config load hierarchy and type. For simple configuration, a single application.yaml mounted to /app/prebid-server/conf/ will be enough. Please consult Spring Externalized Configuration for all possible ways to configure PBS.

You can also supply command-line parameters through JAVA_OPTS environment variable which will be appended to the java command before the -jar ... parameter. Please pay attention to line breaks and escape them if needed.

Example execution using sample configuration:

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 ghcr.io/prebid/prebid-server-java:latest --spring.config.additional-location=sample/configs/prebid-config.yaml

or

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 -e JAVA_OPTS=-Dspring.config.additional-location=sample/configs/prebid-config.yaml ghcr.io/prebid/prebid-server-java:latest

Documentation

Development

Maintenance

Contributing

About

Java version of Prebid Server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

This is the Java version of Prebid Server. See the Prebid Server Feature List and FAQ entry to understand the differences between PBS-Java and PBS-Go.

Prebid Server (Java)

GitHub versionGitHub contributorsPRs WelcomeGitHub pull-requests closed

Prebid Server is an open source implementation of Server-Side Header Bidding. It is managed by Prebid.org, and upholds the principles from the Prebid Code of Conduct.

This project does not support the same set of Bidders as Prebid.js, although there is overlap. The current set can be found in the adapters package. If you don't see the one you want, feel free to contribute it.

For more information, see:

Please consider registering your Prebid Server to get on the mailing list for updates, etc.

Getting Started

The server makes the following assumptions:

  • No ranking or decisioning is performed by this server. It just proxies requests.
  • No ad quality management (e.g., malware, viruses, deceptive creatives) is performed by this server.
  • This server does no fraud scanning and does nothing to prevent bad traffic.
  • This server logs errors but not requests.
  • This server has no user profiling or user data collection capabilities.

This project is built upon Vert.x to achieve high request throughput. We use Maven and attempt to introduce minimal dependencies.

When running, the server responds to several HTTP endpoints.

Building

Follow next steps to create JAR file which can be deployed locally.

  • Install prerequsites

    • Java SDK: Oracle's or Corretto. Let us know if there's a distribution PBS-Java doesn't work with.
    • Maven
  • Clone the project:

git clone https://github.com/prebid/prebid-server-java.git
  • Move to project directory:
cd prebid-server-java

And from this step there are two common use cases, which can be chosen depending on your goals

  1. Create prebid-server JAR only
  • First, make sure nothing's running on your local port 8080 or 8090
  • Run below command to build project:
mvn clean package
  1. Create prebid-server JAR with modules
  • Run below command to build project:
mvn clean package --file extra/pom.xml

For more information how to build the server follow documentation.

Configuration

The source code includes an example configuration file sample/configs/prebid-config.yaml. Also, check the account settings file sample/configs/sample-app-settings.yaml.

For more information how to configure the server follow documentation. There are many settings you'll want to consider such as which bidders you're going to enable, privacy defaults, admin endpoints, etc.

Running

Run your local server with the command:

java -jar target/prebid-server.jar --spring.config.additional-location=sample/configs/prebid-config.yaml

For more options how to start the server, please follow documentation.

Running prebuilt .jar

Starting from PBS Java v2.9, you can download prebuilt .jar packages from Release Notes page, instead of building them by yourself. This prebuilt packages are delivered with or without extra modules.

Verifying

To check the server is started go to http://localhost:8080/status and verify response status is 200 OK.

There are a couple of 'hello world' test requests described in sample/requests/README.txt

Running Docker image

Starting from PBS Java v3.11.0, you can download prebuilt Docker images from GitHub Packages page, and use them instead of plain .jar files. These prebuilt images are delivered in 2 flavors:

To run PBS from image correctly, you should provide the PBS config file. The easiest way is to mount the config file into the container, using --mount or --volume (-v) Docker CLI arguments. Keep in mind that the config file should be mounted into a specific location: /app/prebid-server/conf/ or /app/prebid-server/.

PBS follows the regular Spring Boot config load hierarchy and type. For simple configuration, a single application.yaml mounted to /app/prebid-server/conf/ will be enough. Please consult Spring Externalized Configuration for all possible ways to configure PBS.

You can also supply command-line parameters through JAVA_OPTS environment variable which will be appended to the java command before the -jar ... parameter. Please pay attention to line breaks and escape them if needed.

Example execution using sample configuration:

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 ghcr.io/prebid/prebid-server-java:latest --spring.config.additional-location=sample/configs/prebid-config.yaml

or

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 -e JAVA_OPTS=-Dspring.config.additional-location=sample/configs/prebid-config.yaml ghcr.io/prebid/prebid-server-java:latest

Documentation

Development

Maintenance

Contributing

About

Java version of Prebid Server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

This is the Java version of Prebid Server. See the Prebid Server Feature List and FAQ entry to understand the differences between PBS-Java and PBS-Go.

Prebid Server (Java)

GitHub versionGitHub contributorsPRs WelcomeGitHub pull-requests closed

Prebid Server is an open source implementation of Server-Side Header Bidding. It is managed by Prebid.org, and upholds the principles from the Prebid Code of Conduct.

This project does not support the same set of Bidders as Prebid.js, although there is overlap. The current set can be found in the adapters package. If you don't see the one you want, feel free to contribute it.

For more information, see:

Please consider registering your Prebid Server to get on the mailing list for updates, etc.

Getting Started

The server makes the following assumptions:

  • No ranking or decisioning is performed by this server. It just proxies requests.
  • No ad quality management (e.g., malware, viruses, deceptive creatives) is performed by this server.
  • This server does no fraud scanning and does nothing to prevent bad traffic.
  • This server logs errors but not requests.
  • This server has no user profiling or user data collection capabilities.

This project is built upon Vert.x to achieve high request throughput. We use Maven and attempt to introduce minimal dependencies.

When running, the server responds to several HTTP endpoints.

Building

Follow next steps to create JAR file which can be deployed locally.

  • Install prerequsites

    • Java SDK: Oracle's or Corretto. Let us know if there's a distribution PBS-Java doesn't work with.
    • Maven
  • Clone the project:

git clone https://github.com/prebid/prebid-server-java.git
  • Move to project directory:
cd prebid-server-java

And from this step there are two common use cases, which can be chosen depending on your goals

  1. Create prebid-server JAR only
  • First, make sure nothing's running on your local port 8080 or 8090
  • Run below command to build project:
mvn clean package
  1. Create prebid-server JAR with modules
  • Run below command to build project:
mvn clean package --file extra/pom.xml

For more information how to build the server follow documentation.

Configuration

The source code includes an example configuration file sample/configs/prebid-config.yaml. Also, check the account settings file sample/configs/sample-app-settings.yaml.

For more information how to configure the server follow documentation. There are many settings you'll want to consider such as which bidders you're going to enable, privacy defaults, admin endpoints, etc.

Running

Run your local server with the command:

java -jar target/prebid-server.jar --spring.config.additional-location=sample/configs/prebid-config.yaml

For more options how to start the server, please follow documentation.

Running prebuilt .jar

Starting from PBS Java v2.9, you can download prebuilt .jar packages from Release Notes page, instead of building them by yourself. This prebuilt packages are delivered with or without extra modules.

Verifying

To check the server is started go to http://localhost:8080/status and verify response status is 200 OK.

There are a couple of 'hello world' test requests described in sample/requests/README.txt

Running Docker image

Starting from PBS Java v3.11.0, you can download prebuilt Docker images from GitHub Packages page, and use them instead of plain .jar files. These prebuilt images are delivered in 2 flavors:

To run PBS from image correctly, you should provide the PBS config file. The easiest way is to mount the config file into the container, using --mount or --volume (-v) Docker CLI arguments. Keep in mind that the config file should be mounted into a specific location: /app/prebid-server/conf/ or /app/prebid-server/.

PBS follows the regular Spring Boot config load hierarchy and type. For simple configuration, a single application.yaml mounted to /app/prebid-server/conf/ will be enough. Please consult Spring Externalized Configuration for all possible ways to configure PBS.

You can also supply command-line parameters through JAVA_OPTS environment variable which will be appended to the java command before the -jar ... parameter. Please pay attention to line breaks and escape them if needed.

Example execution using sample configuration:

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 ghcr.io/prebid/prebid-server-java:latest --spring.config.additional-location=sample/configs/prebid-config.yaml

or

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 -e JAVA_OPTS=-Dspring.config.additional-location=sample/configs/prebid-config.yaml ghcr.io/prebid/prebid-server-java:latest

Documentation

Development

Maintenance

Contributing

About

Java version of Prebid Server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

This is the Java version of Prebid Server. See the Prebid Server Feature List and FAQ entry to understand the differences between PBS-Java and PBS-Go.

Prebid Server (Java)

GitHub versionGitHub contributorsPRs WelcomeGitHub pull-requests closed

Prebid Server is an open source implementation of Server-Side Header Bidding. It is managed by Prebid.org, and upholds the principles from the Prebid Code of Conduct.

This project does not support the same set of Bidders as Prebid.js, although there is overlap. The current set can be found in the adapters package. If you don't see the one you want, feel free to contribute it.

For more information, see:

Please consider registering your Prebid Server to get on the mailing list for updates, etc.

Getting Started

The server makes the following assumptions:

  • No ranking or decisioning is performed by this server. It just proxies requests.
  • No ad quality management (e.g., malware, viruses, deceptive creatives) is performed by this server.
  • This server does no fraud scanning and does nothing to prevent bad traffic.
  • This server logs errors but not requests.
  • This server has no user profiling or user data collection capabilities.

This project is built upon Vert.x to achieve high request throughput. We use Maven and attempt to introduce minimal dependencies.

When running, the server responds to several HTTP endpoints.

Building

Follow next steps to create JAR file which can be deployed locally.

  • Install prerequsites

    • Java SDK: Oracle's or Corretto. Let us know if there's a distribution PBS-Java doesn't work with.
    • Maven
  • Clone the project:

git clone https://github.com/prebid/prebid-server-java.git
  • Move to project directory:
cd prebid-server-java

And from this step there are two common use cases, which can be chosen depending on your goals

  1. Create prebid-server JAR only
  • First, make sure nothing's running on your local port 8080 or 8090
  • Run below command to build project:
mvn clean package
  1. Create prebid-server JAR with modules
  • Run below command to build project:
mvn clean package --file extra/pom.xml

For more information how to build the server follow documentation.

Configuration

The source code includes an example configuration file sample/configs/prebid-config.yaml. Also, check the account settings file sample/configs/sample-app-settings.yaml.

For more information how to configure the server follow documentation. There are many settings you'll want to consider such as which bidders you're going to enable, privacy defaults, admin endpoints, etc.

Running

Run your local server with the command:

java -jar target/prebid-server.jar --spring.config.additional-location=sample/configs/prebid-config.yaml

For more options how to start the server, please follow documentation.

Running prebuilt .jar

Starting from PBS Java v2.9, you can download prebuilt .jar packages from Release Notes page, instead of building them by yourself. This prebuilt packages are delivered with or without extra modules.

Verifying

To check the server is started go to http://localhost:8080/status and verify response status is 200 OK.

There are a couple of 'hello world' test requests described in sample/requests/README.txt

Running Docker image

Starting from PBS Java v3.11.0, you can download prebuilt Docker images from GitHub Packages page, and use them instead of plain .jar files. These prebuilt images are delivered in 2 flavors:

To run PBS from image correctly, you should provide the PBS config file. The easiest way is to mount the config file into the container, using --mount or --volume (-v) Docker CLI arguments. Keep in mind that the config file should be mounted into a specific location: /app/prebid-server/conf/ or /app/prebid-server/.

PBS follows the regular Spring Boot config load hierarchy and type. For simple configuration, a single application.yaml mounted to /app/prebid-server/conf/ will be enough. Please consult Spring Externalized Configuration for all possible ways to configure PBS.

You can also supply command-line parameters through JAVA_OPTS environment variable which will be appended to the java command before the -jar ... parameter. Please pay attention to line breaks and escape them if needed.

Example execution using sample configuration:

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 ghcr.io/prebid/prebid-server-java:latest --spring.config.additional-location=sample/configs/prebid-config.yaml

or

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 -e JAVA_OPTS=-Dspring.config.additional-location=sample/configs/prebid-config.yaml ghcr.io/prebid/prebid-server-java:latest

Documentation

Development

Maintenance

Contributing

About

Java version of Prebid Server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

This is the Java version of Prebid Server. See the Prebid Server Feature List and FAQ entry to understand the differences between PBS-Java and PBS-Go.

Prebid Server (Java)

GitHub versionGitHub contributorsPRs WelcomeGitHub pull-requests closed

Prebid Server is an open source implementation of Server-Side Header Bidding. It is managed by Prebid.org, and upholds the principles from the Prebid Code of Conduct.

This project does not support the same set of Bidders as Prebid.js, although there is overlap. The current set can be found in the adapters package. If you don't see the one you want, feel free to contribute it.

For more information, see:

Please consider registering your Prebid Server to get on the mailing list for updates, etc.

Getting Started

The server makes the following assumptions:

  • No ranking or decisioning is performed by this server. It just proxies requests.
  • No ad quality management (e.g., malware, viruses, deceptive creatives) is performed by this server.
  • This server does no fraud scanning and does nothing to prevent bad traffic.
  • This server logs errors but not requests.
  • This server has no user profiling or user data collection capabilities.

This project is built upon Vert.x to achieve high request throughput. We use Maven and attempt to introduce minimal dependencies.

When running, the server responds to several HTTP endpoints.

Building

Follow next steps to create JAR file which can be deployed locally.

  • Install prerequsites

    • Java SDK: Oracle's or Corretto. Let us know if there's a distribution PBS-Java doesn't work with.
    • Maven
  • Clone the project:

git clone https://github.com/prebid/prebid-server-java.git
  • Move to project directory:
cd prebid-server-java

And from this step there are two common use cases, which can be chosen depending on your goals

  1. Create prebid-server JAR only
  • First, make sure nothing's running on your local port 8080 or 8090
  • Run below command to build project:
mvn clean package
  1. Create prebid-server JAR with modules
  • Run below command to build project:
mvn clean package --file extra/pom.xml

For more information how to build the server follow documentation.

Configuration

The source code includes an example configuration file sample/configs/prebid-config.yaml. Also, check the account settings file sample/configs/sample-app-settings.yaml.

For more information how to configure the server follow documentation. There are many settings you'll want to consider such as which bidders you're going to enable, privacy defaults, admin endpoints, etc.

Running

Run your local server with the command:

java -jar target/prebid-server.jar --spring.config.additional-location=sample/configs/prebid-config.yaml

For more options how to start the server, please follow documentation.

Running prebuilt .jar

Starting from PBS Java v2.9, you can download prebuilt .jar packages from Release Notes page, instead of building them by yourself. This prebuilt packages are delivered with or without extra modules.

Verifying

To check the server is started go to http://localhost:8080/status and verify response status is 200 OK.

There are a couple of 'hello world' test requests described in sample/requests/README.txt

Running Docker image

Starting from PBS Java v3.11.0, you can download prebuilt Docker images from GitHub Packages page, and use them instead of plain .jar files. These prebuilt images are delivered in 2 flavors:

To run PBS from image correctly, you should provide the PBS config file. The easiest way is to mount the config file into the container, using --mount or --volume (-v) Docker CLI arguments. Keep in mind that the config file should be mounted into a specific location: /app/prebid-server/conf/ or /app/prebid-server/.

PBS follows the regular Spring Boot config load hierarchy and type. For simple configuration, a single application.yaml mounted to /app/prebid-server/conf/ will be enough. Please consult Spring Externalized Configuration for all possible ways to configure PBS.

You can also supply command-line parameters through JAVA_OPTS environment variable which will be appended to the java command before the -jar ... parameter. Please pay attention to line breaks and escape them if needed.

Example execution using sample configuration:

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 ghcr.io/prebid/prebid-server-java:latest --spring.config.additional-location=sample/configs/prebid-config.yaml

or

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 -e JAVA_OPTS=-Dspring.config.additional-location=sample/configs/prebid-config.yaml ghcr.io/prebid/prebid-server-java:latest

Documentation

Development

Maintenance

Contributing

About

Java version of Prebid Server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

This is the Java version of Prebid Server. See the Prebid Server Feature List and FAQ entry to understand the differences between PBS-Java and PBS-Go.

Prebid Server (Java)

GitHub versionGitHub contributorsPRs WelcomeGitHub pull-requests closed

Prebid Server is an open source implementation of Server-Side Header Bidding. It is managed by Prebid.org, and upholds the principles from the Prebid Code of Conduct.

This project does not support the same set of Bidders as Prebid.js, although there is overlap. The current set can be found in the adapters package. If you don't see the one you want, feel free to contribute it.

For more information, see:

Please consider registering your Prebid Server to get on the mailing list for updates, etc.

Getting Started

The server makes the following assumptions:

  • No ranking or decisioning is performed by this server. It just proxies requests.
  • No ad quality management (e.g., malware, viruses, deceptive creatives) is performed by this server.
  • This server does no fraud scanning and does nothing to prevent bad traffic.
  • This server logs errors but not requests.
  • This server has no user profiling or user data collection capabilities.

This project is built upon Vert.x to achieve high request throughput. We use Maven and attempt to introduce minimal dependencies.

When running, the server responds to several HTTP endpoints.

Building

Follow next steps to create JAR file which can be deployed locally.

  • Install prerequsites

    • Java SDK: Oracle's or Corretto. Let us know if there's a distribution PBS-Java doesn't work with.
    • Maven
  • Clone the project:

git clone https://github.com/prebid/prebid-server-java.git
  • Move to project directory:
cd prebid-server-java

And from this step there are two common use cases, which can be chosen depending on your goals

  1. Create prebid-server JAR only
  • First, make sure nothing's running on your local port 8080 or 8090
  • Run below command to build project:
mvn clean package
  1. Create prebid-server JAR with modules
  • Run below command to build project:
mvn clean package --file extra/pom.xml

For more information how to build the server follow documentation.

Configuration

The source code includes an example configuration file sample/configs/prebid-config.yaml. Also, check the account settings file sample/configs/sample-app-settings.yaml.

For more information how to configure the server follow documentation. There are many settings you'll want to consider such as which bidders you're going to enable, privacy defaults, admin endpoints, etc.

Running

Run your local server with the command:

java -jar target/prebid-server.jar --spring.config.additional-location=sample/configs/prebid-config.yaml

For more options how to start the server, please follow documentation.

Running prebuilt .jar

Starting from PBS Java v2.9, you can download prebuilt .jar packages from Release Notes page, instead of building them by yourself. This prebuilt packages are delivered with or without extra modules.

Verifying

To check the server is started go to http://localhost:8080/status and verify response status is 200 OK.

There are a couple of 'hello world' test requests described in sample/requests/README.txt

Running Docker image

Starting from PBS Java v3.11.0, you can download prebuilt Docker images from GitHub Packages page, and use them instead of plain .jar files. These prebuilt images are delivered in 2 flavors:

To run PBS from image correctly, you should provide the PBS config file. The easiest way is to mount the config file into the container, using --mount or --volume (-v) Docker CLI arguments. Keep in mind that the config file should be mounted into a specific location: /app/prebid-server/conf/ or /app/prebid-server/.

PBS follows the regular Spring Boot config load hierarchy and type. For simple configuration, a single application.yaml mounted to /app/prebid-server/conf/ will be enough. Please consult Spring Externalized Configuration for all possible ways to configure PBS.

You can also supply command-line parameters through JAVA_OPTS environment variable which will be appended to the java command before the -jar ... parameter. Please pay attention to line breaks and escape them if needed.

Example execution using sample configuration:

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 ghcr.io/prebid/prebid-server-java:latest --spring.config.additional-location=sample/configs/prebid-config.yaml

or

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 -e JAVA_OPTS=-Dspring.config.additional-location=sample/configs/prebid-config.yaml ghcr.io/prebid/prebid-server-java:latest

Documentation

Development

Maintenance

Contributing

About

Java version of Prebid Server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

This is the Java version of Prebid Server. See the Prebid Server Feature List and FAQ entry to understand the differences between PBS-Java and PBS-Go.

Prebid Server (Java)

GitHub versionGitHub contributorsPRs WelcomeGitHub pull-requests closed

Prebid Server is an open source implementation of Server-Side Header Bidding. It is managed by Prebid.org, and upholds the principles from the Prebid Code of Conduct.

This project does not support the same set of Bidders as Prebid.js, although there is overlap. The current set can be found in the adapters package. If you don't see the one you want, feel free to contribute it.

For more information, see:

Please consider registering your Prebid Server to get on the mailing list for updates, etc.

Getting Started

The server makes the following assumptions:

  • No ranking or decisioning is performed by this server. It just proxies requests.
  • No ad quality management (e.g., malware, viruses, deceptive creatives) is performed by this server.
  • This server does no fraud scanning and does nothing to prevent bad traffic.
  • This server logs errors but not requests.
  • This server has no user profiling or user data collection capabilities.

This project is built upon Vert.x to achieve high request throughput. We use Maven and attempt to introduce minimal dependencies.

When running, the server responds to several HTTP endpoints.

Building

Follow next steps to create JAR file which can be deployed locally.

  • Install prerequsites

    • Java SDK: Oracle's or Corretto. Let us know if there's a distribution PBS-Java doesn't work with.
    • Maven
  • Clone the project:

git clone https://github.com/prebid/prebid-server-java.git
  • Move to project directory:
cd prebid-server-java

And from this step there are two common use cases, which can be chosen depending on your goals

  1. Create prebid-server JAR only
  • First, make sure nothing's running on your local port 8080 or 8090
  • Run below command to build project:
mvn clean package
  1. Create prebid-server JAR with modules
  • Run below command to build project:
mvn clean package --file extra/pom.xml

For more information how to build the server follow documentation.

Configuration

The source code includes an example configuration file sample/configs/prebid-config.yaml. Also, check the account settings file sample/configs/sample-app-settings.yaml.

For more information how to configure the server follow documentation. There are many settings you'll want to consider such as which bidders you're going to enable, privacy defaults, admin endpoints, etc.

Running

Run your local server with the command:

java -jar target/prebid-server.jar --spring.config.additional-location=sample/configs/prebid-config.yaml

For more options how to start the server, please follow documentation.

Running prebuilt .jar

Starting from PBS Java v2.9, you can download prebuilt .jar packages from Release Notes page, instead of building them by yourself. This prebuilt packages are delivered with or without extra modules.

Verifying

To check the server is started go to http://localhost:8080/status and verify response status is 200 OK.

There are a couple of 'hello world' test requests described in sample/requests/README.txt

Running Docker image

Starting from PBS Java v3.11.0, you can download prebuilt Docker images from GitHub Packages page, and use them instead of plain .jar files. These prebuilt images are delivered in 2 flavors:

To run PBS from image correctly, you should provide the PBS config file. The easiest way is to mount the config file into the container, using --mount or --volume (-v) Docker CLI arguments. Keep in mind that the config file should be mounted into a specific location: /app/prebid-server/conf/ or /app/prebid-server/.

PBS follows the regular Spring Boot config load hierarchy and type. For simple configuration, a single application.yaml mounted to /app/prebid-server/conf/ will be enough. Please consult Spring Externalized Configuration for all possible ways to configure PBS.

You can also supply command-line parameters through JAVA_OPTS environment variable which will be appended to the java command before the -jar ... parameter. Please pay attention to line breaks and escape them if needed.

Example execution using sample configuration:

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 ghcr.io/prebid/prebid-server-java:latest --spring.config.additional-location=sample/configs/prebid-config.yaml

or

docker run --rm -v ./sample:/app/prebid-server/sample:ro -p 8060:8060 -p 8080:8080 -e JAVA_OPTS=-Dspring.config.additional-location=sample/configs/prebid-config.yaml ghcr.io/prebid/prebid-server-java:latest

Documentation

Development

Maintenance

Contributing

About

Java version of Prebid Server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages