Scoop -- the swiss army chainsaw of content management
Front Page · Everything · News · Code · Help! · Wishlist · Project · Scoop Sites · Dev Notes · Latest CVS changes · Development Activities
Scoop Ad Server Feature Requests
By hurstdog , Section Project []
Posted on Mon Sep 24, 2001 at 12:00:00 PM PST
Below is a quick write-up about a possible scoop ad server. Please read it, and let me know what you think. If there is anything you would like, let me know. Anything you don't, let me know.

Purpose
Right now scoop is a pretty complete system. Users can setup and run sites with (relative) ease. But if a user wants to sell ads from their scoop site, they have to custom code a system for accepting ads, choosing which to display, and keeping track of how many times each was displayed. This ad system would be built into scoop, and take care of all of that for the user.

Description/feature list

Ad Submission

There should be an easy way for potential advertisers to get their ads on a given scoop site. A page would be set up to take all of the necessary information for a given ad. Most likely split up into 2 pages, where in the first page, they would give contract name, email, phone, snail mail address, business name. On the second page they could upload the ad, any related code to go with it (javascript, java, flash, whatever) and submit the ad. Maybe not allow them to get to the second page w/out a valid email. Perhaps a user account on the site, tagged 'advertisor' that will add a link to a stats page about their submitted ads?

The site administrator would be able to set what type of ads to allow, as well as the messages to give to the potential advertisors. If you only allow gif/png/tiff/jpg ads, then only allow them an upload link. If you allow javascript, give them room for N chars in javascript (settable in a var), if you allow java as well, give them an upload link for the .java file. flash, for the .swf file, etc.

There will be a field for a url for the ad to link to, as well.

Advertisors should be able to submit as many ads as they want. They will get a short description detailing the pricing of ads on the site (set in a var :)

Also, it will tie into the redhat credit card verification system. http://www.redhat.com/software/ecommerce/ccvs/ to take the credit cards and payments. (opinions on how to bill? Through cron? by hand?)

Ad Display

Boxes will be used to display ads. Perhaps a syntax like the following: |BOX,ad_box,<banner or box>[,optionalAdvertisorID]| the optionalAdvertisorID would be for perpetual ads, like the case of the VA hosting logo on kuro5hin.org. There might be a need for other arguments as well, to that box, but that will be dealt with later.

Ads will be displayed in a round-robin fashion. They will be marked with the last time displayed, and the one with the oldest last time displayed, of a given type (banner or box), will be shown.

Ad Administration
  • Approval

    Ads will not start displaying on the site until a site administrator approves the ad. The administrator will be able to preview the ad, without running any of the code, or with running all of the associated code, at the admin's discretion.

  • Listings

    The administrator will have a list, similar to the Story List and Poll List, that will show each ad's ad id, the submitting business, a link to a preview page, the number of times its been shown, and a link to detailed information about it. Also a checkbox beside it, to enable or disable the ad (similar to the rdf admin tool). The ad info row will show up in a different color if the ad is pending.

    Admins will be able to sort ads by most shown, by ad id, by contact/business name, or by least shown.

  • Ad Detail

    In the ad detail page, admins will see all of the info in the listing for that ad, as well as CPM (cost per mil), estimated amount they owe, and links to other ads by the same business/contact.

    There will also be a small form, where the administrator can generate either an html or text report, of the amount of ads shown, and the cost to the advertiser for any date range given. Scoop will keep track of how much you've billed each advertisor, when, etc. Also will be able to give a summary of past billings, on a per month basis (i.e. Jan, 45000 impressions, $10000000 charged)

  • Variables

    Admistrators should be able to set:

    • The type of ads allowed to be submitted (java/flash/javascript/gif/etc)
    • Number of ads per advertisor
    • Max size of ad images
    • CPM
    • Allowed types to submit (banner, box, etc)
    • any others suggested

Details
Storage

Ads images will be stored in a specified place on the hard drive, similar to caching. Ad code will be stored in the database.

Caching

Ad id's and last view might have to be cached, or stored in a circular array, so as to alleviate strain on the database for each page view.

Anything else?

So what do you think? I welcome all input, please tell me what you like and don't like. What seems feasible or not. Features that you would like, and stuff that isn't necessary.

-Andrew

< ids.org.au and anime.org.au | Usability guff: label tags for poll options >

Menu
· create account
· faq
· search
· report bugs
· Scoop Administrators Guide
· Scoop Box Exchange

Login
Make a new account
Username:
Password:

Related Links
· Scoop
· Kuro5hin
· More on Feature Requests
· Also by hurstdog

Story Views
  139 Scoop users have viewed this story.

Display: Sort:
Scoop Ad Server | 8 comments (8 topical, 0 hidden)
"What seems feasible or not"? (1.00 / 1) (#1)
by cp on Mon Sep 24, 2001 at 08:35:35 PM PST

i.e. Jan, 45000 impressions, $10000000 charged
I'd say: not.



AdBusterBusters (3.00 / 1) (#2)
by sleeper22 on Thu Sep 27, 2001 at 03:04:01 AM PST

Your design looks great. A couple ideas...

AD TEMPLATES
We'll want to support various types of ads, such as banner or box (maybe 'square' is better since box has other meaning), each of which has characteristics of dimension, etc.

How about using blocks for this? One per ad type, like templates, so your box call would become |BOX,ad_box,<blockid>[,optionalAdvertisorID]|

blocks could be like

  • ad_square:
    <a href="|rootdir|/?op=ad;serve=|AD_ID|;url=|AD_URL|" onMouseOver="window.status='go to |AD_URL|'"><img src="|AD_SRC" height="300" width="300" alt="|AD_LINE1" border="0"/></a>

  • ad_banner_short:
    <a href="|rootdir|/?op=ad;serve=|AD_ID|;url=|AD_URL|" onMouseOver="window.status='go to |AD_URL|'"><img src="|AD_SRC" height="300" width="500" alt="|AD_LINE1" border="0"/></a>

  • ad_banner_unlimited:
    <a href="|rootdir|/?op=ad;serve=|AD_ID|;url=|AD_URL|" onMouseOver="window.status='go to |AD_URL|'"><img src="|AD_SRC" alt="|AD_LINE1" border="0"/></a>

  • ad_text:
    <table width="200" border="0" bgcolor="cccccc"><tr><td>
    <a href="|rootdir|/?op=ad;serve=|AD_ID|;url=|AD_URL|" onMouseOver="window.status='go to |AD_URL|'">|AD_TITLE|</a><br />
    |AD_LINE1|<br />
    |AD_LINE2|<br />
    </td></tr></table>

the fields used above are

  • id (since a URL can be used in >1 ad)
  • url
  • src (not used by text-only ads)
  • line1
  • line2 (possibly not used by image-only ads)

google appears to use

  • title (25 chars)
  • line1 and line2 (35 chars)
  • homepage_url (which is printed as text, but may be same as ad url)

Notice that you can also have a more complicated template that involves an image as well as several lines of text. Also, the same ad can potentially be served with multiple templates. For example if an ad is submitted with values for all those fields, then a text-only site viewing mode might serve the text-only version of the ad while the banner would otherwise be served.

If we want allow charging different prices for square versus banner, etc, there could be a tag in the template <meta cpm="200"/>. Then the ad_box would add this cpm value to the URL query string (the clicker needs to pass through scoop for a redirect before leaving the site anyway, to record the click --right?).

Of course another way to maintain meta data about the ad template would be to just pass the template name, and to keep it all together in a table, like a block that says
ad_square:cpm=200;
ad_banner:cpm=100;

APPROVAL
I like the idea of requiring ad submitters to log in as a user. We can then make a group right for submitting ads. An admin (who shouldn't have to personally preview ads) can choose various approaches, most sensibly:

  • Only certain users can submit ads, and they don't require approval. This would mean a VAR ad_approval_on = true, and a group right for the ad submitters. This approach sounds appropriate for sites that are only showing ads from a certain source, like intrasite ads (eg "have you taken our survey?").
  • Anyone can submit ads (tho they should be registered, to get authorization to view stats). However (unless maybe it's a really liberal porn site) ads must be approved by a user with the ad approval right before entering the queue.

For scalability, billing shouldn't be done by the admin either -- but by cron with the help of someone in the 'billing' group! :)
--
babelguides.com <<world literature in translation>>



The design looks good... a few other ideas (none / 0) (#6)
by hillct on Sun Nov 11, 2001 at 10:18:50 AM PST

I was thinking about what it takes to implement a robust full-functioning ad server that goes beyong the scope of scoop sites. I'm not sure if that's the goal here or not but here are a few ideas that would fall into that category:

The ad templates mentioned by an earlier poster are a good way to represent ads on the (advertiser) front end but there are basically two (maybe three) ways ads must be represented on the backend. First, as and image/link combination (simple case), and generic text (for the case of most templates).

Each backend representation needs to be handled differently, for example, the first case requires a simple click-thru recording mechanism and that's about it. The second case requires that each anchor within the text submitted by the advertiser be modified to include a pass-thru link for click-thru recording in order to facilitate CPC advertizing.

On the front end each of these backend representations can be served using three techniques: SSI (as in page pre-processing, which of course will generally be used on all scoop sites), Javascript, and IFRAMEs.

In addition, the first case of backend representations (basic link/image) there is an additional front-end representation that is simply a combination of an anchor and image tag.

Again I'm not sure if this is the direction you want to take the ad engine but it seems to me that it wouldn't be a substancial increase in the codebase and it would allow the ad engine to operate independantly of the larger scoop engine.

--CTH



--
ScoopHost.com - Premier Scoop Hosting and custom development from the lead developers.


Ebeni seyliyim (none / 0) (#8)
by haylaz on Sat Apr 26, 2008 at 08:27:35 AM PST

WebcamSex WebcamSex WebcamSex WebcamSex WebcamSex



Scoop Ad Server | 8 comments (8 topical, 0 hidden)
Display: Sort:

Hosted by ScoopHost.com Powered by Scoop
All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest © 1999 The Management

create account | faq | search