ArsDigita Archives

Banner Ideas Module Design

by Bryan Che

I. Essentials

II. Introduction

The Banner Ideas module provides a system where Web site administrators may create banner ideas for users to read at the bottom of Web pages. A banner idea is something that administrators can place randomly on pages, enticing readers to click to a different, potentially unrelated page. How is that different from a banner ad? A banner idea
  • is typically programmed to appear at the bottom of a page, rather than at the top
  • has an arbitrarily long text introduction to the idea
  • can carry a good-sized photo as an additional enticement Why use banner ideas? If you have a bunch of users working themselves into a rut in a particular corner of your site, you can use banner ideas to show them the interesting content on other parts of the site. For example, uses these to try to get people to go from the "boring" classified ads system

III. Design Tradeoffs

The Banner Ideas module's design is quite simple. It does not provide a Web interface for placing banner ideas on various pages, it does not support targeted banner ideas, and it does not provide for groupings of various banners. The module only supports programmatically placing random or specific banner ideas on the bottom of Web pages.

The advantage of the module's approach is simplicity. Banner ideas are quite straightforward to create and only require a minor addition of code for Web pages. Furthermore, banner ideas are not intended to be principal forms of navigation but merely highlights into other interesting features. Therefore, an especially complex banner ideas system incorporating content management features would probably add little actual benefit to a Web site--banner ideas are principally only random links, no matter how dressed up they may be.

The disadvantage of this straightforward design is that changing which Web pages display or do not display banner ideas takes programming effort rather than just Web-based content management. Also, some Web site administrators may wish that they could offer targeted banner ideas.

IV. Data Model Discussion

The data model for the banner ideas module consists of just one database table:

create table bannerideas (
	idea_id		integer primary key,
	intro		varchar(4000),
	more_url	varchar(200),
	picture_html	varchar(4000),
	-- space-separated keywords
	keywords	varchar(4000),
	clickthroughs	integer default 0

This table stores all the relevant information about a banner idea. It supports a unique identifier, text, a link to more information, and a picture. Furthermore, it has fields for key words and clickthroughs. The key words column stores words which are related to the content of the banner idea. This column may be useful in the future, although it is currently not used. The clickthroughs column stores how many people have actually clicked on the banner idea to read more information.

V. Legal Transactions

The Administration Pages

From the Site-wide administration directory, administrators may create, edit, and delete banner ideas. This will alter the bannerideas table.

The User Pages

When a user clicks on a banner idea, he will increment the clickthroughs column for that banner idea within the bannerideas table.


The banner ideas module offers the following public, scripting (TCL) procedures:

bannerideas_present {idea_id intro more_url picture_html}: Produce an HTML presentation of a banner idea, with appropriate links. Treats the picture html so it aligns left, stripping align and hspace tags.

bannerideas_random {}: Picks a banner idea at random and returns an HTML presentation of it.

VII. User Interface

The banner ideas module only explicitly offers a user interface for administrators. The administrator may create, edit, and delete banner ideas through the Web. He may also view all banner ideas currently on his site.

Developers use the banner ideas module by calling one of the functions defined in the module's API.

Users simply read banner ideas at the bottom of Web pages, clicking them as they see fit.

VIII. Configuration/Parameters

The banner ideas module itself does not have any parameters for configuring. But, other modules may wish to include a parameter like the classified ads module's IncludeBannerIdeasP parameter. This parameter tells the classified ads module if it should display banner ideas at the bottom of its pages or not.

IX. Acceptance Test

You should create sample banner ideas, include a call to display them on a Web page, and verify that the banner ideas do indeed appear on that Web page.

X. Future Improvements

The data model keeps a set of keywords associated with each banner idea. Suppose that the banner ideas are being placed below a discussion forum thread. The right thing to do would be to look at the words used in the discussion and pick a banner idea that was related to the thread.

XI. Authors