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!

Comments
Moved into Drupal's CVS contrib repositry
I have moved the ad module into Drupal's CVS contrib repository, now releasing it under the GPL.
Beta release
I've now tagged the module for 4.7 and rolled a beta release. Tester's welcome.
As of December 26, currently implemented features in the module include: support for any number of configurable ad groups; collection of comprehensive statistics allowing time-based reporting and analysis; tracking of when and where ads are clicked, by which user and which IP; an ad_image plug-in for image (aka banner) ads; and an ad_text plug-in for simple text ads.
Ad Module 1.0 Released
I'm pleased to announce the 1.0 release of the Ad Module available for Drupal 4.7.x and Drupal 5.x. Thanks to everyone that helped by beta testing and reporting bugs! With 1.0 out the door, now it's time to utilize the framework that's been built to provide many more useful advertising features.
The ad module is a powerful advertising system for Drupal-powered websites. It supports the random display and tracking of graphical (banner) and text ads. Ads can easily be displayed in themes, blocks, or embedded in site content. The module records comprehensive statistics about when and how often ads are viewed and clicked, including a plug-in module for generating graphical time-based reports. Ads can be assigned to multiple owners, each of which can be assigned their own set of permissions. The ad module is fully integrated with the views module, offering fine-grained control over which ads are displayed where and to whom. Installation is simple by design. An API is provided allowing the development of additional functionality and integration with other Drupal modules.
Features:
Thanks :)
This really is a much needed module. Thanks for making it.
Michelle
Excellent!
I'm looking forward to learning more about this module.
I know you've put a lot of work into it & congrats on the new release.
And thanks for the nice bullet descriptions because they really help explain all the features. I wish more developers would list bullets like you did. :)
Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing
Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing
Add ads to custom block
Hi,
New to ad.module and it really looks very useful at first glance. I have downloaded it and enabled it through module. I was wondering how can I define specific size ads to my customized block using blocks? Not aware if there any link available for my query.
Hope to get a piece of advice soon.
Shailendra Vijayvergia
Shailv: under the modules
Shailv: under the modules administration page enable the 'Image Ad' module, then go to Administer -> Content management -> Ads -> Settings -> Image ads. You'll find the settings under there.
If you have multiple advert 'zones' (a large banner across the top of the page and several small ones elsewhere for example) the sizes can be changed, per-zone, by creating 'Groups'. When you create a new group you'll notice it appear under Settings -> Image ads, different image dimensions can be assigned per group. :)
Assigning ads to groups?
I read readme.txt, Install.txt, and searched around-- but I can't quite see how to add an 'ad' to an 'ad group.' Am I missing something obvious?
Also, is the real defining feature of an ad group to control the size of the rendered ad, as opposed to a more personalization-related use, such as groups like "Ads for new users", "Ads for site members", "Ads for people coming to see my monkey" etc.?
I appreciate any advice. Nice work on a good module-- it's very exciting.
Interesting module - what's the best way to get started?
This module looks great! Thanks for providing it to the community.
I'm trying to figure out how to use the ad module to do direct ad sales on a few of my sites. Are there any pointers on module configuration for that purpose?
Michael Curry
Classified Ads Module For Drupal 6 | My hangout
Michael Curry
Drupal and Windows Tips
how to auto resize image in
how to auto resize image in Advertisement module?(for ex. use image cache )?
Multiple ads?
Is it possible to show multiple ads in the block?
Morgan | Forweb
Yes, you can set in block
Yes, you can set in block configuration settings
Google Ad Manager
If we are looking at an Ad Manager, I would strongly recommend Google Ad-manager. This helps us to synch our Ads and Adsense at one place. The reporting interface is excellent! Also removes the Ad management/Statistics load from our servers and lets google handle it for us.
Google Ad Manager has a Drupal integration module that we could enable to introduce the same. Reference: http://drupal.org/project/google_admanager, http://www.google.com/dfp/info/sb/
We need to remember to ensure conformance with IAB ad regulations while creating AD blocks. Reference: http://www.iab.net/iab_products_and_industry_services/1421/1443/1452
Shyamala
Unimity Solutions
Great Module
Hi,
This is great module. I have use it, But i don't know how to define different image ad on per page. I want to place different image ad on per page can i set it by using this module. I hope it works with help of this module i am not getting this any help.
Thank you,
Rahul Barge