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, photo.net uses these to try to get people to go from the
"boring" classified ads system http://photo.net/gc/.
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.
VI. API
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
bryanche@arsdigita.com