Classifieds Administration

a chapter in the Administrator's Guide to the ArsDigita Community System

The Classifieds Module

Where it fits in

(I am deferring composing an intro blurb until I know what I will say about the whole dynamic modules section of the community system. I think I should talk about how the classifieds fits in with the other dynamic modules. Unfortunately Philip has given such a great description of the classified system below that I don't know how to top it)

Philip's description of his Classifieds System

...Another form of user-to-user communication is classified advertising. Note that "classified advertisement" need not be narrowly construed as "an offer by a user to sell something to another user." Instead we can think of a classified advertisement as "any user-contributed content that is unrelated to a static article, to which we normally do not expect a public response, that may be categorized."

The classified ad system included in the ACS would be useful for implementing the following applications:

Of course, some publishers may elect to use the classified ad system in the most obvious way: to facilitate readers selling items to each other.

A Classified System Built for the Web

Philip has put a great deal of thought into the question of how best to adapt a classified system to the Web. As a result his system has a number of design features one cannot find in newspaper or USENET classifieds. In Chapter 13: Case Studies of his first book How to be a Web Whore Just like Me he explained some of the ideas behind the design of his classified system. I have reproduced this section here, interspersed with some comments of my own (my comment are in italics).

Philip Describes The Special Features of this Classified System

Classifieds Idea: Categorize

My generic classified ads system depends first upon categorization of ads. User interface research back in the 1960s concluded that humans are very bad at formulating boolean queries, for example "Nikon AND NOT microscope AND NOT ‘integrated circuit mask stepper'". The Holy Grail of information retrieval was supposed to be the full-text search engine that is so common today. Just type in a string that reflects your curiosity, look at some results, then refine by picking a good result and asking for "more like this."

Why then categorize? Why bother to make users of my http://photo.net/photo/ classifieds say whether they are placing an ad for Underwater Equipment or Darkroom? Why can't the search engine direct people to appropriate ads?

It turns out that users have trouble coming up with that initial query string. It is a lot easier to browse than to think. It is also a lot more efficient for the RDBMS to grab all ads in the Underwater category rather than send PLS off looking for "flash for my Nikonos V". There are only about 10 ads in the Underwater section most of the time so why not let the user see all of them?

Above we see the top level page for a domain in my generic classifieds system. Note that the user gets a tremendous amount of information right on the first page: one-line summaries of recent ads, a listing of the available categories, a count of the number of ads in each category.

Now look at the bottom portion of the first page for a domain in my generic classified systems. Note that only here is the full text search engine made available. Users can browse just by clicking the mouse on the links above. Note also that I provide a link to the AltaVista search engine. My form targets a little script of mine that tacks on additional syntax to restrict AltaVista's search to the rec.photo.marketplace newsgroup. So a user typing "Canon macro lens" on my page results in a 302 redirect to http://www.altavista.digital.com/cgi-bin/query?pg=aq&what=news&fmt=.&q=newsgroups:rec.photo.marketplace+AND+Canon+macro+lens

Classifieds Idea: Show Off New Ads

One-line summaries of the newest ads should be displayed on the very first page of the system. Users shouldn't have to click to see ads.

Above you can see that the five most recent ads are displayed on the front page of the photo.net classifieds. The administrator can specify the number of new ads he wishes to be displayed. Notice also that the user can request to see all ads that are new since his last visit to the site.

Classifieds Idea: Automatic Management

I don't want to spend the rest of my life managing my classified ad system. Users post ads using forms. Users edit and delete their obsolete ads by typing in a password. If the password isn't the same as what they typed when they posted the ad, my software offers to e-mail it to them.

How well does this work? My system has handled about 4100 ads so far. I've gotten about 10 e-mail messages asking me to edit ads. In all but one or two cases, the user was able to edit his own ad after I pointed him to the forms.

Busy administrators take note! This may be the single best time saving tip you learn here. The form Philip mentioned are linked from the "Edit Old Ad" link on the front page shown above. To the right I show the portion of the page containing the links with the particular link in question highlighted. I will talk a little more about the users editing section later.

Once again Philip reminds us: when you have built a community on the web, you don't necessarily have to do all the work yourself. Involve your community! They may well care about its successful operation as much or more than you do. After all the user has even more incentive than you have to make sure his ad looks good. This feature may save you a great deal of work managing and editing ads.

Classifieds Idea: E-mail Alerts

With only a few hundred current ads in my database, I have to do something to distinguish myself from rec.photo.marketplace with its 1000 current ads at any time. Starting a couple of years ago, I offered to mail out e-mail alerts to people who were interested in seeing all the ads, just ads in a particular category, or just ads that match a query string (according to PLS). There are 205 people currently requesting alerts (options are daily, Monday/Thursday, and weekly as with the RemindMe system).

Above left you can see an image of the page the user sees when he requests the option to add an alert. This page does not show all the options available for configuring alerts: on the next page the user is allowed to specify whether he wishes to see all the ads, the ads in a given category, or the ads that contain a certain keyword. The administrator can view the keywords users have chosen, making available yet more information about the interests of the community -- see Administering Alerts

Classifieds Idea: Auction

One thing that Web classifieds can do that newspaper classifieds can't is turn into an auction. Users of my system can choose at posting time whether or not they'd like Philip's Classifieds to record bids. A bid is instantly e-mailed to the seller and is also displayed underneath the ad for subsequent displays.

At the right we can see that Christopher Vosburgh is auctioning a $450 Nikon 105mm lens. The auction page provides a number of options to a prospective bidder. If he is sure he wants to place a bid, he can do so publically or privately. If he is unsure whether to bid, he can view previous versions of this ad or check out Christopher Vosburgh's community history. These last two options are sufficiently important I think they deserve listing as features in their own right.

Classifieds Feature: Show Edit History

A user can request to see the full edit history of an ad. The purpose of this feature, as explained on the page that displays the edit history, is to "help community members judge whether an advertiser is engaging in deceptive practices such as claiming that an item has been reduced in price." There are a number of safeguards in this system against obnoxious advertising practices. The availability of edit histories is probably one of the more powerful, since it uses the principle that community members are likely to behave well when their previous actions are publically visible. The module also allows the administrator to register filters to block ads whose summary line contains the word "reduced," exclamation points, or nothing but capital letters.

Classifieds Feature: Member Histories

This is possibly the most important special feature of this classified system. Its presence involves users of the classifieds system in the more general activities of the community. No newspaper or USENET classified system could reproduce this feature; it is unique to a community system like this one. It is the only special feature of the classified system Philip discussed in his general overview of the community system found in Chapter 3: Scalable Systems for Online Communities of Philip and Alex's Guide to Web Publishing , because I think it is the single feature of which he was most proud. Here are his comments describing why member histories are useful to users of the classified system:

Of course, some publishers may elect to use the classified ad system in the most obvious way: to facilitate readers selling items to each other. This creates a great demand for assistance with the question "how do I know which other readers I can trust." At photo.net, readers find assistance from a "neighbor to neighbor" service. After buying or selling an item in the classifieds, readers are encourage to record their experience with the other party. Thus far, the database contains only 320 such records. Yet there have been tens of thousands of classified ads posted. Rather than demanding that users enter their story, can we be clever about using information that is already in the database? Absolutely. One of the things that buyers most wish to know is whether or not the seller is a professional camera dealer. There is a belief that camera dealers have higher prices and less integrity than photographers who want to unload a spare item. Do we ask each person posting an ad whether he or she is a camera dealer? If so, do we have the administrative resources to monitor these self-reports?

What distinguishes a camera dealer from a person selling a camera? Volume, volume, volume. The ArsDigita Community System includes a community member profile page that, for an individual user, shows

A camera dealer's profile will generally have a long list of classified ads and little else, as seen at right. Compare this to the page of a genuine active community member discussed in the Community Member History section of this guide. A user wondering whether trust an offer in the classified section could easily figure out which community member was a amateur photography enthusiast and which was a camera dealer.

Community System Feature: Banner Ideas

Finally, you might be wondering why there is an image and quote displayed below the ad shown above. This is a Banner Idea. Banner Ideas are generated in a separate module, but they can be used in the classified system (or anywhere else on the site). The purpose of banner ideas is to interest users in some other area of the site they may not have seen. This function may be particularly useful in in the classified system, where users intent on buying and selling can be encouraged to wake up and explore the rest of the site. Of course, this probably was only part of Philip's reason for posting his particular style of banner idea here; characteristically, he also wanted to get people riled up:

I built the banner ideas system in order to test my theory that human beings will accept, without complaint, an unlimited amount of commercialization. That one can stuff flashing banner ads in every corner of a page and nobody will comment. The other side of my theory was that unfamiliar ideas would drive people crazy.

I tested this theory by putting crass animated banner ads at the top of some pages in the LUSENET system at greenspun.com. I put banner ideas at the bottom of other pages and also put them into classified ads at photo.net. The result? Not a single complaint about the garish commercial-ish banner ads. Huge volumes of email complaining about the ideas.

This explains the somewhat provocative tone of the comment shown above. To see the full story, with some amusing excerpts from email complaints, see Philip's discussion of his banner ideas system.

Classifieds Administration

The classified system is extremely configurable. Though the examples I have shown are drawn from a fairly conventional system serving a community of photographers selling camera equipment, this module can be configured for a wide variety of different services. If an administrator wishes to transform this system to a form most suitable to the application he has in mind, he has a number of configuration options he can tweak to create the service he desires. Basically every one of the features discussed above can be included in his system, or deactivated if it is not appropriate to the application he has in mind. (With one exception -- the option to view member histories cannot be turned off because its presence is fundamental to the philosophy of the system.) So, to discuss the configuration options by feature, we have:

In addition, a different type of classified service may require a radical alteration of the procedure for collecting new ads. Above to the right we see the standard form for collecting a new ad in photo.net. If one wished to run a personal ad system instead, I think users might be quite displeased to be asked whether they wished to buy, sell or hold an auction. Alternately, a classified system for cars might wish to ask for extra information like the model, color or manufacturer of a car. An employment classified system might wish to inquire as to the citizenship status of the applicant. Every entry on this page is configurable to accommodate a wide variety of classified applications. The administrator can:

After a classifieds system is set up, an administrator will probably want to monitor the activity in the system to make sure that it lives up to whatever standards of civility and relevance he wishes to enforce. This module provides a number of features to streamline the moderation process. Since the first step in moderation is to browse through the system to view the state of the ads, the system provides a number of browsing options. Following the same philosophy as described above for the design of the user pages, the administrator given the option to: Since the administrator will be visiting the site regularly, he will probably want to see the ads that are new since his last moderation session. The interface allows him to: Also, when he is browsing ads by category, he may decide that he does not like the category structure, or the distribution of ads in catagories. The category administration pages allow the administrator to: In addition the administrator is offered a browsing option the user does not have. In a classified system there is a concern that shady dealers may abuse the system to unload extra merchandise, as Philip mentioned above. As a result there option is provided to search for users who have entered an unusually high number of ads in a short period. The interface allows the administrator to: All these pages lead in various ways to a rich interconnected set of report pages. Each ad listing links to a report page that allows the administrator to: From each of these report pages the administrator can monitor the ads to see if they meet his standards, edit the ones that don't, and delete the really objectionable ones. Since the administrator can easily find a page listing all the ads from a particular user, all the ads from a particularly obnoxious user can be deleted all at once. A truly obnoxious user who changes his username to avoid detection can be tracked by IP address.

However, don't forget that the administrator can save himself most of these administration tasks if he remembers that users can edit and manage their own ads. The administrator need only venture into these report pages if he is curious to view the activity on his system, or to cut out the damage of a particularly troublesome user. Notice also that this work can be shared. If the administrator finds some particularly helpful users, he can promote them to co-administrators.

Navigating the Classifieds Administration Pages

The top page of the classified administration system, the classifieds page, lists the classified domains. Each domain is a separately configured classified system for particular topic. Each domain name listed is a link to the One Domain page, the main administration page for a domain. All the important administration tasks are linked off this page.

Most of the important configuration tasks described at the beginning of the last section can be found by following the link to "update photo.net parameters" found in the Domain Properties section, which will lead to the Update Domain Parameters page. There are a few exceptions: some of the more drastic structural changes can only be made in the ad.ini parameters file. See the Configuring Parameters section for more details about these options. The other exception is for the configuration of categories, for which one must go to the Categories page which is found under the the "ads by category" or the "manage categories" link (they both lead to the same page.) From this page the administrator find links to add or edit a category, which will allow him to set the category names and the annotation for the top of the page which collects a new message in that category.

The administrator, just like the user, is offered the options to view all new ads and view ads by category. However, unlike the corresponding user links, these administrator links lead to ad report pages which allow the administrator to edit and delete ads, and also trace through the ads by user and IP address. In addition, the administrative pages offer more control over the browsing options: the administrator can choose the number of days worth of new ads he wishes to see, and also view reports for users who have posted more than a specified number of times between any two given dates.

Here is a summary outline of the pages linked from the One Domain page, whose image appears at the right.

  1. Activate/Deactivate Domain
  2. One Domain
    1. Users Pages
    2. Ads from the last N days.
      1. One Add Report
    3. All Adds
      1. One Add Report
    4. Categories: Ads by Category
    5. Users with N Postings (in a given period)
      1. One User Report
    6. View Alerts
      1. Disable/Renable Alert
      2. Flush Alerts from Database
    7. Manage Categories
      1. Categories: Ads by Category
    8. Manage Administrator/Owner of Domain
      1. Search for a User to be Primary Administrator
    9. Manage User/Helper Administrators of Domain
      1. User Groups: One Group Type: One Group
    10. Update Domain Parameters
    11. Delete Domain
  3. Create A New Domain

Top Level: Categories: Ads by Category

  1. One Category
    1. One Ad Report
  2. Edit Category
  3. Delete Category
  4. Add a New Category
An administrator wishing to monitor the state of an already-configured classified system should choose one of the four browsing links listed at the top of the One Domain page ("Ads from the last N days", "all ads", "ads by category", and "pick out users..."). All of these links will lead to a list of Ad Reports. From the Ad Report the administrator can choose to edit or delete the ads, or view a list of all the ads submitted by the same user or from the same IP address as the given ad. Here is are summary outlines of the various report pages:

Top Level: One Ad Report

  1. One User Report
  2. One IP Address
  3. Edit Ad
  4. Delete Ad
Top Level: One User Report
  1. User Admin Page
  2. Email
  3. One Add Report
  4. Delete all Adds
Top Level: One IP address Report
  1. One Add Report
  2. Email User
  3. Edit Ad
  4. Delete Ad
  5. Reverse DNS on IP address

Configuring A New Classified Ad System

To Start Out

At the beginning when an administrator sets up a new classified ads system he has to set some values in thead.ini parameters file. If he wishes, he can choose a different a system name and a system owner than the one already chosen for the community system as whole. He must also set the URL prefix under which the classifieds will appear.
; for the classified ad system
[ns/server/yourservername/acs/gc]
; SystemName=
; SystemOwner=  (defaults to global system owner)
PartialUrlStub=/gc/

Configuring the Display of New Ads

The administrator can set the number of new ads that will appear on the front page in the parameters file. This section of the parameters file also allows the administrator to choose whether to provide a local search on the front page. Since Philip is an old Lisp hacker, he uses "P" to indicate a variable that should be either 1 or 0. Therefore if the administrator wishes to turn off local searches, he has to set the ProvideLocalSearchP variable to 0. For some reason he hasn't added a P after the NagAdOwners variable; this too is a variable that should be set to either 1 or 0 which stand for on and off respectively.
ProvideLocalSearchP=1
; send a reminder to people 
; to edit or delete their ads?
NagAdOwners=1
HowManyRecentAdsToDisplay=5

Configuring Alerts

The administrator can choose whether to allow the users to add alerts. This too is a variable in the parameters file that should be set to 0 or 1.
ProvideEmailAlerts=1

Configuring Filters for New Ads

Finally, the parameters file allows the administrator to set filters on the ads that users enter. If these filters are set and a user tries to enter an improper subject line, he will get an error as shown above. Here I list the parameters, and the errors that are produced when the user commits the sin the filter is designed to catch:
; some stuff to deal with annoying photo.net abusers
; don't let people put the word "reduced" in subject line
DisallowReducedInSubject=1
Your ad contains the word "reduced" in the subject line. Since you're posting an ad for the first time, it is difficult to see how the price could have been reduced. Also, it is unclear as to why any buyer would care. The price is either fair or not fair. Whether you were at one time asking a higher price doesn't matter.
DisallowExclamationPointInSubject=1
Your ad contains an exclamation point. That isn't really consistent with the design of this Web service, which is attempting to be subtle.
DisallowAllUppercase=1
Your one line summary appears to be all uppercase. ON THE INTERNET THIS IS CONSIDERED SHOUTING. IT IS ALSO MUCH HARDER TO READ THAN MIXED CASE TEXT. So we don't allow it, out of decorum and consideration for people who may be visually impaired.

Configuring A New Domain

A classified system can be divided into separate domains for different categories of classified ads. The above parameter settings apply to the classified system as a whole. The rest of the configuration options can be set for each domain individually. To set up a new domain, the administrator must choose the "create a new domain" link from the top level administration page. He can edit the configuration parameters of an existing domain from the "update domain parameters" link on the One Domain page. An image of the Edit Domain Parameters page for photo.net is shown at right.

For each domain, the administrator can choose a domain name and short key, and specify annotations for the top or bottom of the front page of that domain. On the image of the front page of the photo.net classified domain shown at the beginning of this section of the guide, you can see the placement of the annotations. The comments beginning "Attention nerds:" at the top of the page, and "If you want to check (or report) the the reliability of a seller or buyer" at the bottom of the page were both entered on the configuration page for the domain. These annotations will be interpreted as HTML, so they can contain links. Remember to include <p> tags if you have more than one paragraph in your annotation, or your paragraphs will not be formatted correctly.

In addition the administrator can configure the page that collects new ads. This configuration is important because different types of services may require quite different ad formats. However, this configuration can be a little tricky, so I will discuss it in its own section.

Configuring the Collection of New Ads

The hardest part of the configuration task for is to choose the options for a user about to place a new ad. As Philip mentioned earlier, the classified system is meant to accommodate any type of user contributed content that is unrelated to a static article and does not require a response. But this means the form to place new ads needs to look quite different on different kinds of systems. The first step in configuring this form is to make some decisions about the kind of system one is attempting to create. Is the purpose to buy and sell, or to exchange information? Are auctions appropriate or desirable? Do you want to allow "Wanted to Buy" ads? Do the ads require extra information like the color, model number, manufacturer, or size of the item being sold? What kind of layout is desirable for the ad collection page?

These choices can be entered on the configuration page for the domain. The hardest part of this configuration task to set up the layout for the form that collects a new ad. Here is the way this process works: the administrator is allowed to enter whatever HTML he wants to use to specify the layout of the form. The only constraint is that the HTML for the forms must contain certain predetermined variable names. The administrator must write a form that collects data for the variables one_line and full_ad. In addition he may also write forms to collect data for any of the other variables listed on the configuration page. If this task seems daunting, the administrator can use the html templates I have listed below for any of the items he wishes to include. Under the HTML listing I show the a sample of the form as it will look when interpreted by the browser. Note that the format of these templates, or their embedded comments can be modified by the administrator in any way he pleases to achieve the exact look he desires.

The result of these options is shown below:

One Line
(what people will see in a listing of ads)
Full Text
(should be self-contained and read like a classified ad)
Manufacturer
Model
Item Size
Color
US Citizenship required Yes No
There is one customization of the page for collecting new ads that cannot be set on the domain parameters page: the annotation that reminds readers how to compose a new ad. It is not included on this page because the administrator may wish to tailor this annotation to the specific ad category in which the user is entering a new ad. For instance, the 35mm SLR category in photo.net reminds users to "list manufacturer, model number, price (and currency if not US Dollars)," while the Books and Magazines category omits this admonition, for it clearly would make no sense to users trying to sell photography books. Since the annotation text is quite likely to be category-dependent, it makes sense that it is included as part of the configuration of categories rather than of domains. Therefore we will discuss this option in the next section on configuration of categories.

Configuring Categories

The last configuration task an administrator needs to concern himself with is the creation of categories. This task need not be done immediately: while a classified system is small all the ads can be listed together on the front page. However, at some point it will probably grow large enough that particular ads become hard to find: users will have to search through a large number of ads of no interest to them to find the ones they want to see. At this point the administrator needs to design a category system for his classified ads. Before a categorization system is built, all the ads are entered by default in a category called "Uncategorized." ??is this true?? The administrator can create new categories by selecting the "ad a new category" link on the Categories page shown below. To create a new category the administrator needs to choose a name and compose an annotation to instruct users entering new ads in that category. Note that as soon as even one new category is defined the user will be given the option to choose a category before placing an ad. ??Is this true or is the user always asked to choose a category even when none are defined? I need to investigate.?? The user can be offered category-specific instructions for placing a new ad since the the annotation is entered separately for each category.

Managing Categories

Even after a category system is in place the system may grow to overwhelm the current set of categories. At this point the administrator can redesign the category system: he can add new categories, or edit or delete existing ones. At left you can see the page for managing categories as it appears in the photo.net classified system (except in reality it is much longer: it has been edited to fit in this section). When the categories are rearranged the administrator may also wish to reshuffle the ads between categories. The page for editing an ad has an option which allows the administrator to assign the ad to a new category. Since each category name listed in the report shown at right is a link to the administrative reports for all the ads within that category, it is fairly easy to browse through the ads in category to find ones that require reassignment, and reset their categories assignments. ??No, I'm lying: this seems really cumbersome. Suppose T wanted to liquidate a category: would I have to step through all the ads and reassign them first? That sounds awful. Is this really the way to do it, or is there a better way.?? See the section on Managing Ads for further discussion of how to use this feature.

Managing Ads

Tell the User To Do It

After the system is appropriately configured, most of the time an administrator will spend in this module will be spent reviewing and deleting ads. However, remember that the user who places an ad has the power to manage his own ads, and therefore the burden of administration can be considerably lifted from the shoulders of the site administrator. The link that enables the user to manage his own ads appears on the top level page as shown to the right. To the left we can see the page to which this link leads. I had not entered any ads at the time I made this image because I have no camera equipment to sell, so the page reports this fact to me. If I had posted an ad, I would have been told its status (current or expired), and I would be offered the option to edit or delete it. Since the user is allowed to perform these tasks for his own ads, often the administrator can bypass the administration system altogether by pointing the user to the correct link.

Do It Yourself

Sometimes, however, the user is unlikely to be helpful and the administrator will have to take action to manage the ads himself. The administrator is offered a number of options to browse through the ads to review their acceptability. At right we see the result of selecting one of the browsing links: I asked to see all the ads entered within the last 24 hours. This kind of request is useful for the administrator, for the recent ads are the ones most likely to require review. This report page shows the one line summary of each ad and offers a link to edit or delete each of them. In addition it offers links for the author and originating IP address of each ad, which lead to report pages which list all the ads by that author or from that IP address. If an administrator finds an ad that seem particularly egregiously inappropriate, he can check whether the same user has posted similarly unpleasant ads elsewhere, and delete them all at once. A particularly wily user may wise up to the administrator's interference and try to avoid censorship by changing his username. However, the administrator can thwart such an attempt to evade his control by listing ads by IP address rather than username. Unless the user is able to change locations as well as usernames, he cannot avoid detection by the administrator.

If the administrator finds an ad that mostly acceptable but requires small changes, he can request a page to edit the ad. At right we see the administrator's edit page for the ad posted by Christopher Vosburgh, featured earlier in this essay. The administrator is allowed to edit all the entries a user enters. In addition, he can reassign the ad to a new category. He can also assign a charge to the user for the sin of imposing upon him the burden of editing the ad. This is part of the member value system, which the administrator can use to track of users who are causing him particular difficulties, and possibly even charge difficult users real-world money for the burden they have imposed on his time. The select box shown in the image at left is reproduced here:


There are three categories of charges the administrator can apply. The first category is for mistakes that are too small to deserve a penalty; the second for mistakes that are probably the result of an honest error or misunderstanding on the part of the user; and the third for serious infractions probably caused by deep-seated lack of consideration or malicious intent in the user. The rates for these categories can be set in the ad.ini parameters file. To read in more detail about the member value system, see the description of the Member Value module in another chapter of this guide.

rfrankel@mit.edu