# Revive Adserver: self-hosted PHP ad delivery and campaign management

> Revive Adserver is a self-hosted PHP application for publishers that need to serve ads, manage campaigns, define targeting rules, and review click-through reporting. It is best suited to operators willing to install and maintain the server package, while its Hosted edition removes that operational work.

**revive-adserver/revive-adserver** — The world's most popular free, open source ad serving system. You can download the latest release at:

- Repository: https://github.com/revive-adserver/revive-adserver
- Website: http://www.revive-adserver.com/download/
- Stars: 1,510 · Forks: 614
- Language: PHP
- License: GPL-2.0
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/revive-adserver-revive-adserver

## Why Revive Adserver exists for publisher-operated advertising

Revive Adserver addresses the operational gap between having advertising inventory on a website and managing that inventory through a general-purpose content management system. It is aimed at publishers that want to serve ads on their sites, accept campaigns from multiple advertisers or ad networks, inspect campaign results, and apply delivery rules. The README specifically identifies click-through rates as part of its reporting scope, which makes performance visibility part of the product rather than an optional concern.

The intended users are not only developers. The project presents campaign management through a web interface, but the installation and configuration work belongs to whoever operates the publishing infrastructure. A site owner, advertising team, or web operations group can use the interface, while a system administrator is likely to handle the package, PHP environment, configuration, and server maintenance. That division matters when selecting the software.

Revive Adserver also provides access to targeting rules. According to the README, rules can direct campaigns, or individual ads, to specific users. This supports use cases such as controlling which inventory receives a campaign, but the README does not describe the full targeting vocabulary, rule syntax, or behavior for conflicting rules. Those details would need to be checked in the installed interface or source before making a selection.

## PHP delivery components behind ads and campaign reporting

The repository is primarily PHP and has a web-facing directory named `www/` alongside delivery scripts such as `adjs.php`, `adimage.php`, `adclick.php`, `adframe.php`, `adpopup.php`, and `adview.php`. Based on that layout, Revive Adserver separates the publisher-facing application from the PHP endpoints involved in ad selection, images, clicks, frames, popups, and views. The exact request parameters and selection sequence are not documented in the README, so their behavior should not be inferred beyond those filenames.

The campaign management and reporting path is implemented somewhere under the application's library and web directories. The README confirms that users can manage campaigns from different advertisers or ad networks and review campaign success, including click-through rates, but it does not expose the database schema, reporting pipeline, API, or background jobs. No public API or command-line interface is described either. For an engineer, this is an important documentation boundary. The available repository structure confirms that this is a substantial PHP application, but it does not establish that Revive Adserver is suitable for an API-first advertising workflow.

The `plugins/` and `plugins_repo/` directories indicate an extension mechanism. The README also mentions GeoLite2 data created by MaxMind and links to information about geotargeting. That confirms geographic targeting is relevant to the product, but it does not explain whether GeoLite2 is bundled, how it is updated, or what operational work a deployment requires.

## Packaged installation instead of a GitHub ZIP deployment

Revive Adserver gives an unusually explicit installation warning: users must not download the project as a ZIP file from GitHub. The README says that the ZIP contains development-only files and that those files are removed when the release package is created. It directs users to the official download page and asks them to download a release package from the Revive Adserver website. This is the only installation procedure documented by the README, so no shell command, PHP version, web server configuration, database setup, or environment variable can be supplied safely.

The documented first step is therefore a browser-based download rather than a command from the repository. Start at the official download page, choose the current release package, and follow the installation instructions supplied with that package. The GitHub repository is intended as the project source, not as a ready-to-upload copy of a production installation. Treating the ZIP as equivalent to the release artifact would introduce files that the project says are excluded from packaging.

After installation, the first real use follows the product's stated purpose: access the web interface, configure publishing inventory, add advertisers or campaign sources, create a campaign, and place the appropriate ad delivery code on a website. The README confirms these broad capabilities, including click-through reporting and delivery rules, but it does not show a working configuration snippet or an exact placement example. Consequently, this review cannot provide invented tags, flags, ports, or setup values. The release documentation must supply those details.

## Self-hosted deployment costs and maintenance boundaries

The repository is not archived, and its last push was on 2026-10-16. That is recent activity for maintenance purposes, but the project has no GitHub releases listed. The README points users to the official website for the latest version, so source activity and downloadable release availability are separate facts. An adopter should not assume that every change visible on `master` represents a production release.

Self-hosting also carries costs beyond the initial download. The operator must manage the PHP application, web server integration, configuration, campaign data, reporting availability, and any plugins or geotargeting data required by the deployment. The repository includes maintenance-related code under `maintenance/`, but the README does not explain routine maintenance tasks, database migrations, backup procedures, plugin updates, or upgrade automation. The presence of files such as `composer.json`, `composer.lock`, `CHANGELOG.md`, and `RELEASE_NOTES.md` supports the existence of dependency and release-management concerns, but it does not define an upgrade procedure.

The Hosted edition is the documented alternative to self-hosting. The README says customers can use Revive Adserver without downloading, installing, configuring, and maintaining it themselves. This is a genuine operating-model change, not a separate ad delivery algorithm: it shifts infrastructure work to the provider while retaining the Revive Adserver software context. The README does not compare pricing, service limits, data export, customization, or contractual terms.

## License scope and source-distribution obligations

Revive Adserver uses `GPL-2.0`, as identified by the repository description and LICENSE.txt. The README states that the program may be redistributed or modified under version 2 of the GNU General Public License, or, at the recipient's option, under a later version. It also carries the standard warranty disclaimer and points readers to the license text.

That license is relevant to any publisher considering source modifications, redistribution, or hosted delivery. The README does not document a separate commercial licensing option, contribution agreement, trademark policy, or clarification for managed deployments. The presence of `COPYRIGHT.txt` and the license notice means an operator should inspect those files before distributing modified source or redistributing packaged copies.

This is a technical review, not legal advice. The practical point is narrower: adopting the self-hosted package does not place the software outside its published licensing terms, and a team planning to modify or redistribute it must account for `COPYRIGHT.txt`, `LICENSE.txt`, and any applicable notices in the release.

## Choosing between the release package and the Hosted edition

Revive Adserver itself and its Hosted edition are the clearest alternatives documented by the project. The release package gives a publisher direct control over installation, configuration, plugins, and server operation. The Hosted edition is intended for users who would rather not perform those tasks. A team can therefore choose based on whether the immediate requirement is infrastructure control or reduced administrative work, rather than on a difference in the README's stated campaign features.

The self-hosted option has limits. The repository documentation does not give server sizing, supported PHP versions, database requirements, security hardening steps, plugin compatibility policy, or a rollback procedure. It also does not document whether the Hosted edition permits custom plugin use or supports the same reporting and targeting configuration as the self-hosted software. Those omissions make a direct feature comparison impossible from the repository files and README.

Revive Adserver is also the wrong fit when the publisher needs a documented headless integration, a short command-line deployment, or a turnkey hosting agreement. The first requirement is unsupported by the README, the second is not documented, and the third belongs to a different commercial offering. It is better suited to a publisher that values a conventional web interface and accepts responsibility for a PHP server.

## Conclusion

Publishers that want direct control over an ad server and have the resources to install and maintain PHP infrastructure should evaluate Revive Adserver. Organizations that need campaign management without operating the software should examine the Hosted edition instead. Before adoption, verify that the release package matches the required PHP deployment, confirm how campaigns and reporting rules map to existing sites, and account for hosting, configuration, and ongoing maintenance.

## FAQ

### Can Revive Adserver be installed from a GitHub ZIP file?

No. The README explicitly says not to download Revive Adserver as a ZIP file from GitHub because it contains development-only files. Use the release package from the official download page instead.

### Does Revive Adserver support campaign delivery and click-through reporting?

Yes. The README says publishers can serve ads, manage campaigns from advertisers or ad networks, and track campaign success including click-through rates.

### Does Revive Adserver offer a hosted option?

Yes. The Hosted edition is intended for users who do not want to download, install, configure, and maintain Revive Adserver themselves.

## Sources

- [Issues](https://github.com/revive-adserver/revive-adserver/issues)
- [License: GPL-2.0](https://github.com/revive-adserver/revive-adserver/blob/master/LICENSE)
- [Project website](http://www.revive-adserver.com/download/)
- [README](https://github.com/revive-adserver/revive-adserver/blob/master/README.md)
- [revive-adserver/revive-adserver on GitHub](https://github.com/revive-adserver/revive-adserver)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/revive-adserver-revive-adserver
