Far too many months ago, I decided that the design of the Drupal banner module made it too difficult to maintain and began working on an improved replacement. At that time I got as far as defining the database schema, but then life distracted me and the project was left unfinished. In the past couple of weeks I've had a need again for the new ad module, so I've dusted it off and begun implementation. Today I've uploaded an alpha version that can randomly display image ads, tracking how many times the ad has been viewed or clicked. It is a humble beginning, but ready for a few brave alpha testers to give it a try, report problems, review the code, and make suggestions.
The goal of the new module is to provide a simple to install scalable advertising API that offers necessary ad management features such as randomly displaying ads, auto-activation, auto-expiration, limits, notifications, statistics, and ecommerce integration. Different types of ads will be supported through plug in modules, such as the included ad_image module for displaying banners and image-block ads. The forthcoming ad_text module will offer adsense-style text advertising. The API makes it possible for additional advertising types to be contributed later by third parties to display for example flash ads, or externally hosted ads.
The underlying database schema offers a highly relational design. Statistics collection is greatly improved allowing for time-based reporting and analysis. Future integration with the eCommerce package will allow useful analysis such as cost-per-impression and cost-per-click. Ads can have multiple owners and maintainers, each with different permissions. The module supports an unlimited number of named banner groups. It will be possible to configure an unlimited number of notifications based on an assortment of criteria. Ads are seen by Drupal as nodes, which will allow for complete support of the taxonomy system for ad categorization, and make it possible to comment on ads.
My personal needs require that the module be integrated with eCommerce, allowing people to buy and renew ads through a web interface. I also intend to support using the ad module to serve ads to remote websites. Many new features have gone into the banner module since I stopped maintaining it, and I will review them to see which I like and belong in the core ad module, and which belong as plug ins.
The ad module is in an alpha state and is still under very active development. While I encourage the brave to download it, test it, report problems and make suggestions for how it can be improved, be warned that the underlying schema is likely to change before it reaches a beta state and automatic upgrades will not be provided. Thus, I do not recommend using any alpha version of the module on a production server. Testers, comments, suggestions, donations and patches are all welcome!