Extension:AdAuction

Note: For most up to date code check with Assigned to::User:Robert Geiger

This page describes the advertising extension that will be used on Labscene. It will be used as a reference and updated throughout the development of the extension.

=Description= The main purpose for the AdAuction extension is to allow users to advertise on the site. They will be able to do this by creating a campaign which will allow them to create an advertisement and specify where the advertisement should be shown. The method of displaying the advertisements on the website will be similar to the commonly used Generalized Second-place Auction concept.

This extension relies on several semantic extensions (Specify which ones):
 * Semantic Forms

This extension creates the following namespaces
 * Marketing
 * Campaign
 * Advertisement

It also creates the following special pages:
 * Special:AdAuction
 * Special:AdTemplate
 * Special:AdSignUp
 * Special:CampaignTool
 * Special:AdvertisementTool

Each of these parts are explained in further detail below.

=Advertising User Group= This extension will create a usergroup named "Advertising". This group will have special access to the following special pages:


 * Special:AdAuction
 * Special:CampaignTool
 * Special:AdvertisementTool

The sign up form will contain all of their information need in order to place transactions (Name, Address, Telephone, Credit Card, PayPal... etc). This must be a secure form (again... no semantic here!).

Upon registering the user will be able to start campaigns and create ads.

=Namespaces=

Three additional namespaces are used in order to allow users to organize their marketing campaigns on Labscene.

Marketing
Access: Administrators, Advertisers

This namespace is where the user can access their advertising account information and current and past campaigns. It is a page that can only be accessed by them and must be secure; however even if this page is visible it should not matter as it will not affect the outcome of bid auctions nor will it expose any other sensitive information. In any case it should only be editable by the specific user who created the page.

Each user who signs up for an Advertising Account will be assign a 'Marketing:Username' page. This page will allow the user to:
 * start a new campaign (redirect to Special:CampaignTool)
 * view/edit their campaigns
 * create a new advertisement
 * view/edit current advertisements
 * view statistics

Campaign
Access: Administrators, Advertisers

When users create a new campaign they will create a new page "Campaign:'campaigntitle'" (providing that the name is available). Access to this campaign page must be exclusive to the user who created the page (and again visibility should probably be avoided). The campaign will consist of all the information related to the campaign options selected by the user (ref: Labscene:AdvertisingModel)


 * Audience Optimization Options:
 * Location (Country/State/Province/City/Zip)
 * Age
 * Gender
 * Discipline (Field of Study)
 * Category
 * Namespaces (Research/Experiments/Studies/Labs...)
 * Investigation Keywords
 * Campaign Options:
 * Existing Campaign
 * Campaign Budget (Lifetime budget/per day budget)
 * Campaign Schedule (Timeline)
 * Objectives
 * Get More Clicks (Charged per click) - Choose cost per click (CPC)

It will also display the advertisements for the campaign.

Advertisement
Access: Administrators, Advertisers

When a user creates a new advertisement they will create a page "Advertisement:'adname'". The most important part of this page is the advertisement template. If for some reason this template does not exist or has been altered then an error should be thrown. This is to ensure uniformity in ads. Initially only a single template will be used however eventually several templates may be implemented.

=Special Pages=

AdSignUp
Access: General

The AdSignUp special page will be used to register users to the advertising group when they decide that they would like to advertise on Labscene. The form on this page should attempt to fill itself out the best it can based on the user profile. Information required:

you know... typical form
 * First Name
 * Middle Name
 * Last Name
 * Address
 * Telephone
 * Currency
 * US$
 * Euro
 * etc.
 * Payment Method
 * PayPal
 * Visa
 * Mastercard
 * etc.
 * Credit Card Number
 * Expiration Data
 * so on...

In order to accept payments this page will be configured with the PayPal Direct Payment and the Express Checkout. Information on how to do this is available here. In order to receive credit card information on the website we must comply with the PCI DSS.

PCI Info: PCI Discussion

AdAuction
Access: Administrators

The AdAuction special page can only be accessed by Administrators. It will contain options for the advertising extension. These options will allow the extension to be 'tuned' for the website. Things that might appear include:
 * Namespaces to include advertising on
 * Advertising Template to use for displaying ads
 * Restrictions on the included namespaces
 * Ad Cycle time
 * Semantics to include/exclude
 * Parameters for optimizing the auctions
 * Turn advertising on and off
 * Also provide the ability to simply use GoogleAds

AdTemplate
Access: Administrators

This special page will help administrators to create a template for the pane which will be used to display ads on the pages. These templates will contain the ads that win the auction for the current page. Ads will cycle through this template by the cycle time and upon reloading of the page. This will allow the user to determine how many slots will be provided as will as the dimensions of each advertisement.

This special page will also allow administrators to design the advertisement template that users will use to create their own ads.

CampaignTool
Access: Administrators, Advertisers

Assists users in creating new campaigns.

AdvertisementTool
Access: Administrators, Advertisers

Assists users in creating new ads.