1. Sponsor Backend Interface Specs Document
Version 1.3 - Monday, February 20, 2006
1. Client (Sponsor) Backend
Global Activity Page. This should show global statistics for all active campaigns,
such as:
General Statistics Panel
Overall click through percentage
Impressions
Clicks
Current Points
Total used points
Top X Most Successful Roms Panel
This will be a list of X (five by default) roms through which the sponsor has
advertised displaying the impressions / clicks with click through percentage.
These are sorted by highest percentage. There will be a link to show the full list
and their percentages.
Clicking a rom's name will take you to the individual campaign stats page for
the specific rom.
Note: The default display-mode for this option should be admin-only. See
Administrative Backend
Top X Most Successful Campaigns Panel
Displayed in the same fashion as mentioned above. (X will be ten by default)
Clicking a campaign will take you to the individual campaign stats for that
campaign.
Click Statistics Panel (This will be a panel with two divs and a link to switch
between them. If one of the display modes is false, there should only be one div
and no links)
Click through Details (div)
• Interface like the BBClone main (see
http://www.djriktor.com/bbcounter/show_global.php?lng=en) Only display
the top X locations (base it on the zip codes of those who clicked) and the
top X hosts. (X should be ten by default)
• Note: The display-mode for this interface should be set to admin-only by
default , in which case, the time stats will be displayed in the main div with
no option to switch.
Time Statistics (div). Should be just like BBClone's time stats (see
http://www.djriktor.com/bbcounter/show_time.php?lng=en)
Individual Campaign Statistics Page
This page should show stats for an individual campaign or specific rom. All the
stats mentioned in above will be shown only for the specific campaign or rom.
Obviously, if displaying for a rom, it will not show the rom click through panel, and
if it is displaying stats for a campaign, it will not show the campaign panel.
Additionally, this page should display all settings mentioned in quot;Edit Modequot;, below.
Note: If displaying a campaign, and the user has access to the campaign-
manager's edit mode, an edit button should be displayed on this page.
2. Note: If the option to display rom-based click through rates is admin only, then
this script must be configured to quot;diequot; with an error if a non-admin user attempts
to manually request a rom listing
Campaign management system
Main Display Page
This will show the campaigns and the status of each (active, inactive, pending,
changes pending, pending removal) and allow for editing a campaign.
Each campaign listed will show in quot;thumbnailquot; type view, showing the banner
with the campaign title, point usage, and point setting below it.
• When a campaign's image or name is clicked, it will go to the individual
campaign statistic page.
• Under each icon should be two links: quot;Viewquot; and quot;Editquot;
quot;Create Newquot; button
quot;Deletequot; button
• Redirects browser to a confirmation website explaining it will delete all
information. At the bottom will be a checkbox saying quot;Yes, I understand.
Please delete this campaignquot; and the buttons quot;Deletequot; and quot;Cancelquot;. The
script will check to see that quot;I understandquot; was clicked
• Note: If the user chooses to delete it, the campaign will go to quot;pending
removalquot; status until an admin finalizes the delete
Edit Mode Page (The page for editing a specific Campaign’s attributes)
Banner Images Manager
• Each banner should be displayed, with its Name above it and its size and
CPM below it. Clicking will take you to the banner editor which allows you to
change:
♦ Banner Name
♦ Banner Image (allows you to choose from your quot;Image Binquot;)
Prompts to crop or auto-resize if image dimensions are wrong, and
automatically saves as new, when complete.
♦ Banner Size (Make sure to check image dimensions after this!)
♦ Note: An image should never be able to be set as a banner image until it
is properly formatted!
• Image Bin (in a link activated hidden div)
♦ Displays a thumbnailed list of each banner image uploaded (clicking
shows the full version)
♦ quot;Uploadquot; button. (Uploads banner to use for this size)
Prompt to replace if there is an existing image of the same name
♦ quot;Cropquot; button leading to a cropping utility. (Note: A flash-based one
would be nice. There are plenty of 3rd party ones out there that are
worth looking into.)
Ability to auto-crop/resize to a selected size (from the size list)
Prompt to quot;Save as newquot; after crop is complete
♦ quot;Deletequot; button (JavaScript confirm)
• Note: Any changes made on this page must not take effect until approved
by an admin!
Setting: “Banner Type: [dropdown: {CPC/CPM, CPA}]” (default: CPC/CPM)
(Default display-mode admin-only)
• If this is set to CPA, the following settings will be shown:
♦ Custom Error Page
3. View – Displays the HTML error page on file
Edit – Allows the HTML to be edited (Default display-mode admin-
only)
Upload – Allows a new error page to be uploaded to overwrite the old
(Default display-mode admin-only)
♦ Custom Data Request Page
View – Displays the HTML request page
Edit – Allows the HTML to be edited (Default display-mode admin-
only)
Upload – Allows a new error page to be uploaded to overwrite the old
(Default display-mode admin-only)
♦ Custom Thank You Page
View – Displays the HTML request page
Edit – Allows the HTML to be edited (Default display-mode admin-
only)
Upload – Allows a new error page to be uploaded to overwrite the old
(Default display-mode admin-only)
Settings: quot;Unlimited Pointsquot; or quot;Point Limitquot; (default: Unlimited)
• Unlimited points will not put any limit on how many points can be used for
that campaign
• Point limit will allow the client to set a maximum value of points to allow one
campaign to consume before becoming inactive.
♦ quot;Reset pointsquot; button with JavaScript confirmation to reset the used
points
♦ The client should be warned when points are nearing the high shelf
Setting: quot;Display Ad for [dropdown: {15,30,45,60}] secondsquot; (Note: Super-
Admins get an edit box here)
Setting: “Cost Per Impression: [editbox]” (Default display-mode super-admin)
(This will allow viewing/setting of the CPM for this campaign. Will only be
greyed out if banner mode is CPA)
Setting: “Cost Per Click: [editbox]” (Default display-mode super-admin) (This
will allow for viewing/setting the CPC for this campaign. Will only be greyed out
if banner mode is CPA)
Setting: quot;Campaign Namequot; Setting (Default, on first creation, will be quot;Campaign
Xquot; where X is the first available number)
Setting: quot;Assign Reward Pointsquot; [y/n] (default: false) (Default display-mode
admin-only)
• quot;Assign [dropdown: {1-20}] Pointsquot; (Note: Super-Admins get an edit box
here.)
• Note: This will be integrated into the reward point system later.
quot;Publish Changesquot; Button (Note: This will be an admin-only feature to publish
the changes made)
Ticket-based support system.
This must be a standard quot;ticketquot; based system of support. The users should be
able to open a ticket at any time for support or various other reasons. Additionally,
each time a modification is made to a campaign, a ticket should automatically be
generated, and the user should be informed via email of the link to their ticket
upon changes to a campaign. This way, when an admin is ready to approve, deny,
or needs more information from the user, the ticket will be updated.
4. Note: If an automatic changes-pending ticket is already opened when the user
changes something else, it should simply be posted to the current change ticket
thread, instead of creating new ticket threads for each change.
Settings
Change Password
Contact Settings
quot;Alert me when my points fall below [editbox min=0 max={db-defined-max}]quot;
(Note that 0 = disabled)
Optional Added Security Settings
quot;Require [dropdown: {no additional,[bold]phone[/bold],[bold]email[/bold]}]
confirmation for password changequot; (default: email)
quot;Require [dropdown: {no additional,[bold]phone[/bold],[bold]email[/bold]}]
confirmation for campaign modificationquot; (default: no additional)
quot;Require [dropdown: {no additional,[bold]phone[/bold],[bold]email[/bold]}]
confirmation for email list modificationquot;
(default: email)
quot;Require [dropdown: {no additional,[bold]phone[/bold],[bold]email[/bold]}]
confirmation for contact info modificationquot;
(default: none)
quot;Require [dropdown: {no additional,[bold]phone[/bold],[bold]email[/bold]}]
confirmation to change these security settingsquot;
(default: email)
Note: If an action is performed for which phone confirmation is required, an
emergency ticket is opened right away and specially flagged.
Note: If email verification is required for anything, a unique ID approval link
will be generated and sent to the emails on file describing the action that will be
taken, the username who requested the change, the time and date the change
was requested, and a link to create a support ticket if the person feels that the
action has been taken by an unauthorized user.
Note: Where [bold][/bold] denotes a bold entry in the dropdown.
Email Addresses
A list of email addresses to which the user wishes confirmations and
information to be sent. (should look like a contact list, displaying full names)
• Edit
• Delete
quot;Add Emailquot; button
Contact Information
Name
Address
Phone Numbers
• List of phone numbers with the following option for each:
♦ Personalized labels (work, home, etc)
♦ Time-to-call list
♦ Additional notes
• quot;Addquot; Button (Open in hidden div)
• quot;Editquot; Button (Open in hidden div)
• quot;Deletequot; Button (JavaScript confirmation)
5. 2. Administrative Backend
Client Management Interface (This displays a table of clients in the system with
columns for sponsor name (id), category, click through %, current points, total used
points, and priority rating, and total active campaigns. This also is where admins can
add/delete accounts)
Search feature needed
“Add User” Button
Client Options (if a client is selected):
Settings Page - Same as client backend, but with the following added
features:
• Priority rating adjustment (Super-admin only) (numeric value)
♦ Changing this will notify a select list of company owners (in a database
table) via email with a full report of time, date, user making the change,
user to whom the change is applied, previous value, and new value
• Points adjustment (Super-admin only)
♦ Changing this will notify a select list of company owners (in a database
table) via email with a full report of time, date, user making the change,
user to whom the change is applied, previous value, and new value
• quot;Show Click Statisticsquot; [dropdown: {admin-only, client, all}] (default:
client)
♦ quot;Show Time Statistics Panelquot; [dropdown: {admin-only, client, all}]
(default: client)
♦ quot;Show Click Through Detailsquot; [dropdown: {admin-only, client, all}]
(default: admin-only)
• quot;Show Top Most Successful Roms Panelquot; [dropdown: {admin-only, client,
all}] (default: admin-only)
♦ quot;Show [editbox] Romsquot; (can be value from 1-50)
• quot;Show Top Most Successful Campaigns Panelquot; [dropdown: {admin-only,
client, all}] (default: all)
♦ quot;Show [editbox] Campaignsquot; (can be value from 1-50)
• quot;Show General Statistics Panelquot; [dropdown: {admin-only, client, all}]
(default: all)
♦ quot;Show pointsquot; [dropdown: {admin-only, client, all}] (default: client)
• quot;Campaign Management Viewquot;: [dropdown: {admin-only, client, all}]
(default: all)
♦ Note: If a user has quot;Viewquot; permission, he can show Campaign Manager
and view campaign statistics
• quot;Campaign Management Editquot;: [dropdown: {admin-only, client, all}]
(default: client)
♦ Note: If a user has quot;Editquot; permission the edit/delete/create/upload
capabilities are shown in the Campaign Manager
• Note: All changes made to every account must be logged!
Global Activity Page (same as in client backend, but with admin privilege,
obviously)
Campaign Management System (same)
Settings (same)
View Log (Shows the Log Manager for this client)
Delete User – (Available to Super-Admin only!)
6. Online Users Panel, displayed on all pages (by the menu somewhere, perhaps?)
shows up to 25 online admins sorted by super-admins first, then alphabetically with a
“show all” link to popup a window with all users. Clicking a user will open the send
message page to that user.
Ticket Management System
This interface will be a full ticket management system which will display open
tickets and allow for editing, closing, opening, etc.
Unanswered tickets should be on-display on a main page in bold for admins to
accept and handle. In the event an admin chooses to stop handling a ticket, he
should be able to flag it as unhandled. Additionally, if an open ticket goes
unanswered by an admin for more than 2hrs, it should be marked unhandled.
My Tickets Page – A list of tickets this admin has marked as “handled” by
him/her.
Support Tickets Main – A list of all tickets, sorted by open/closed status (open at
the top) then by date/time (latest at the top) then by handled status (unhandled
at the top and BOLD), then by priority status (with high priority rating at the top).
Needs the ability to create “hidden tickets”. Or those which are viewable to all
admins or only super-admin.
Need to be able to “Invite” another admin to a ticket
Note: Change tickets should show a full report of all changed options, as well as a
link to the Edit Mode of the Campaign Manager, displaying the updated campaign.
Upon approval, they can click quot;Publish Changesquot;
Messages Page – This page will display invites, system messages, ticket responses,
and admin messages
Send Message – Allows to send a message to other admin/super-admin users in
the system
User List – A list of all admin/super-admin users in the system to add as
recipients of the message.
Note: All messages sent/received (except ticket activity) are logged to a
secured log file for this admin user.
My Messages – Show my messages and ticket responses
Note: Ticket responses are messages posted on tickets this admin is
managing. A message is sent to him/her. Responding to this will post the
response on the ticket.
Log Manager
This will be a log display system which parses log files and displays them
graphically in tables, or printable format.
Search feature to display filtered log information with the following filter options
(all filter options should be able to be applied in the same search):
Client – Search by where client is like
• Note: If quot;Clientquot; is selected, it will display all log activity (including changes
made by admin users) within this log.
Date – Search within specific date range
Username – Search for activity by a specific username
7. Type of activity – This will be a list of checkboxes (allowing one to select more
than just one) representing each log event type (banner change, settings
change, campaign activity (activated/deactivated/updated), ticket opened,
points added, acquisition failures, system errors, etc.)
Note: Only Super-Admins will have access to the Log Manager!
3. Functional Banner System
Main Banner Display Script
This page receives four input parameters. ZipCode, AreaWidth, AreaHeight, and
Rom
This page will randomly select campaigns and display the banners (where each is
an img whose src is the Individual Banner Page with passed Rom, ZipCode, and
selected CampaignID).
Note: It will only select enough to fit within the area dimensions. So, if the total
area is 90x360, an example selection it might make would be one 90x180 banner,
and two 90x90 banners
This also must have timers for the banners to remove the old banner and display a
new campaign according to the Ad Display Time. (Note: With some banners
taking up more than one spot, there will be some need for time compensation to
ensure the bigger banners have an equal chance of being displayed)
Individual Banner Script
This script receives three input parameters, CampaignID, ZipCode, and Rom.
This script outputs the banner image for a campaign, deducts CPM points (if
applicable) increments the impression, and performs all necessary tracking related
updates.
Click Through Landing Script
This script receives four input parameters, CampaignID, ZipCode, Rom, and URL.
This script will increment the click for the selected campaign, deduct CPC points (if
applicable), perform all necessary tracking related updates, and redirect to the
passed URL.
Acquisition Processing Script
This script receives three input parameters, CampaignID, ZipCode, and Rom.
This script will display a custom web template, and if it has been posted, it will run
a function HandleResponse(), passing the POST variables. This function will be
called from a custom PHP and will be responsible for processing and sending the
results to the client’s server. It will return true, if the data was processed and
sent. It will return false, errorMsg (string), and errorCode (integer) if there is an
error.
If it returns true, the Acquisition count will be incremented and the browser will
be redirected to a custom thank you page.
If it returns false the collected data along with its errorMsg and errorCode
variables and HTTP headers sent in the request will be written to the log and
8. labeled “acquisition failures”, viewable in the admin log manager. The
Acquisition count will not be incremented. The browser will be redirected to a
custom error page, passing errorMsg and errorCode as POST arguments.
• If the errorCode = 12 (Which will be used to identify that the external server
rejected it), the server will perform the same actions as mentioned above for
failure as well as posting the log entry to a hidden ticket labeled “Acquisition
Error”. If a ticket by this name exists, and more failures occur, they should
be added to this open ticket (so not to create more).
• Note: This ticket will only be able seen by Admins, and Super-Admins
should receive an email notification upon the opening of one of these tickets.
They should be notified again by email every 50 more failed and added to
the ticket.
Note: You are not responsible for writing the custom PHP containing
HandleResponse, thank you, error, or web template pages/scripts! However, for
test purposes, basic one should be created to ensure your code works properly.
This system is structured in this way to allow us to write custom data collection
forms and pass the data along to another server, while ensuring the integrity of
our system’s tracking.
4. Term Definition
1. Campaign: Essentially, this is a banner ID. We are allowing a user to upload
several different banners in case they wish to switch the image without losing
stats and creating a new campaign. Each campaign will have a unique MD5 ID
associated with it, which will be used for tracking purposes
2. Points: Points are quot;creditsquot;, or amount of impressions allowed. Different types of
banner settings will deduct more points.
3. User Access List
1. Super-Admin The global administrator. Only a select few of company
officials will have this title.
2. Admin This will be the id given to all staff members who manage the ticket
system, perform customer service, etc.
3. Client This is the general client login.
4. Guest This is a guest account that each client is able to activate for
allowing viewing of certain stats.
4. Rom: This is a quot;Projectquot; or ittrom client on which the banner will be displayed.
5. Priority Rating: This is a numeric value which will be used as a factor for how
frequently an alert is displayed. The mathematical implementation of this does not
need to be completed during this initial phase of development, it will be used and
further implemented later. This simply must exist as a value and must be able to
be changed by the Super-Admin, as specified in the above specs.
6. CPM: Cost Per iMpression, or essentially, the amount of points deducted for each
time the banner is displayed
7. CPC: Cost Per Click, or amount of points deducted per click
8. CPA: Cost Per Acquisition, or amount of points deducted for each successful form
acquisition of user information.
9. 4. Additional Notes
Banner Related Notes
Banners should be able to be in SWF (embedded flash) or any standard image
format
Image banner spots will be 90px by 90px. We are giving the option to occupy
more spaces which will cost additional points per impression. Because of the added
value to occupying more spots, to occupy two spots with one banner, the cost
could be 2.5pts, where one spot is only 1pt, etc.
To start off, make beginning image sizes at: 90x90, 90x180, 90x270, 90x360, and
180x90, 270x90, 360x90
Code a super-admin settings page for image size dimensions and point (cost)
settings for each image size. Also, we need the ability to add an example image
for each size dimension, to stand as a placeholder.
Additional Needs
Admin Account Manager - We will also need a basic super-admin page to list,
add, delete, and edit account privileges for Admins. So we can turn off
changing/viewing customer settings for some admins, etc. This will require
accounts to have permission flags. (Perhaps a user/group style permission system
would be more scalable.)
Help Icons - All settings and buttons need a help icon! This will popup a small,
sized box (a pseudo-window in a div as long as it can be moved around and
closed). Just put in an XML file containing all of the help text with ids for each so
we can easily edit it. Also, you can make a PHP function CreateHelp(helpID) or
something to easily plug in help links
Lock Setting Icon - All settings relating to a client should have the ability to be
locked by a Super-Admin. Doing so will not allow it to be edited by admins or
regular users. This will require a lock/unlock icon next to each setting when logged
in as a super-admin. If it is locked, remember, it cannot just be disabled with
JavaScript. The PHP must not allow it to be modified.
Other Notes
All changes and actions need to be logged!
Please use PHP to verify all privileges, actions, and values received from numeric
edit-boxes, combo-boxes/dropdowns, or radiobuttons/checkboxes, etc. This way
nothing can be hacked by changing the HTML.
The interface for this whole thing needs to be very clean, professional, and easy to
use. This is an intricate system, so we're really looking for your creativity to shine
on this. And also, any added functionality you can bring to the table would be
great! Don't hesitate to ask questions or throw ideas out there.