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 "Edit Mode", below. Note: If displaying a campaign, and the user has access to the campaignmanager's edit mode, an edit button should be displayed on this page.
Note: If the option to display rom-based click through rates is admin only, then this script must be configured to "die" 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 "thumbnail" 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: "View" and "Edit" "Create New" button "Delete" button • Redirects browser to a confirmation website explaining it will delete all information. At the bottom will be a checkbox saying "Yes, I understand. Please delete this campaign" and the buttons "Delete" and "Cancel". The script will check to see that "I understand" was clicked • Note: If the user chooses to delete it, the campaign will go to "pending removal" 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 "Image Bin") 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) ♦ "Upload" button. (Uploads banner to use for this size) Prompt to replace if there is an existing image of the same name ♦ "Crop" 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 "Save as new" after crop is complete ♦ "Delete" 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
View – Displays the HTML error page on file Edit – Allows the HTML to be edited (Default display-mode adminonly) 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 adminonly) 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 adminonly) Upload – Allows a new error page to be uploaded to overwrite the old (Default display-mode admin-only) Settings: "Unlimited Points" or "Point Limit" (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. ♦ "Reset points" button with JavaScript confirmation to reset the used points ♦ The client should be warned when points are nearing the high shelf Setting: "Display Ad for [dropdown: {15,30,45,60}] seconds" (Note: SuperAdmins 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: "Campaign Name" Setting (Default, on first creation, will be "Campaign X" where X is the first available number) Setting: "Assign Reward Points" [y/n] (default: false) (Default display-mode admin-only) • "Assign [dropdown: {1-20}] Points" (Note: Super-Admins get an edit box here.) • Note: This will be integrated into the reward point system later. "Publish Changes" Button (Note: This will be an admin-only feature to publish the changes made)
Ticket-based support system. This must be a standard "ticket" 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.
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 "Alert me when my points fall below [editbox min=0 max={db-defined-max}]" (Note that 0 = disabled) Optional Added Security Settings "Require [dropdown: {no additional,[bold]phone[/bold],[bold]email[/bold]}] confirmation for password change" (default: email) "Require [dropdown: {no additional,[bold]phone[/bold],[bold]email[/bold]}] confirmation for campaign modification" (default: no additional) "Require [dropdown: {no additional,[bold]phone[/bold],[bold]email[/bold]}] confirmation for email list modification" (default: email) "Require [dropdown: {no additional,[bold]phone[/bold],[bold]email[/bold]}] confirmation for contact info modification" (default: none) "Require [dropdown: {no additional,[bold]phone[/bold],[bold]email[/bold]}] confirmation to change these security settings" (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 "Add Email" 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 • "Add" Button (Open in hidden div) • "Edit" Button (Open in hidden div) • "Delete" Button (JavaScript confirmation)
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 • "Show Click Statistics" [dropdown: {admin-only, client, all}] (default: client) ♦ "Show Time Statistics Panel" [dropdown: {admin-only, client, all}] (default: client) ♦ "Show Click Through Details" [dropdown: {admin-only, client, all}] (default: admin-only) • "Show Top Most Successful Roms Panel" [dropdown: {admin-only, client, all}] (default: admin-only) ♦ "Show [editbox] Roms" (can be value from 1-50) • "Show Top Most Successful Campaigns Panel" [dropdown: {admin-only, client, all}] (default: all) ♦ "Show [editbox] Campaigns" (can be value from 1-50) • "Show General Statistics Panel" [dropdown: {admin-only, client, all}] (default: all) ♦ "Show points" [dropdown: {admin-only, client, all}] (default: client) • "Campaign Management View": [dropdown: {admin-only, client, all}] (default: all) ♦ Note: If a user has "View" permission, he can show Campaign Manager and view campaign statistics • "Campaign Management Edit": [dropdown: {admin-only, client, all}] (default: client) ♦ Note: If a user has "Edit" 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!)
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 "Publish Changes"
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 "Client" 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
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
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 "credits", 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 "Project" 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.
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.