Professional Documents
Culture Documents
All in One
All in One
All in One
Ad Platform
Project Proposal, SDS and SRS
Team Members
Enkusellasie Wendwosen
Haftamu Meresa
Hiwot Bishaw
Melkamu Mitiku
Advisor
Abraham Getachew
First of all we are grateful to the God for the good health and wellbeing that were necessary to complete this
proposal.
We wish to express our sincere thanks to our advisor for his continued support and assistance during the writing
of this proposal. It wouldn’t have been done without him.
I take this opportunity to express gratitude to all of the ITSE faculty members for their help and support. I also
thank my parents for the unceasing encouragement, support and attention. I am also grateful to my partner who
supported me throughout this venture.
I also place on record, my sense of gratitude to one and all, who directly or indirectly, have lent their hand in
this venture.
ABSTRACT
One of the main driving forces of the 21st century is globalization facilitated by the ever so expanding
internet. Internet has become a critical ingredient for any economy that wants to thrive in face of tremendous
competition in the connected world. At the epicenter of the internet lies different social media sites that
people spend most of their times
1. Background
One of the main driving forces of the 21st century is globalization facilitated by the ever so expanding internet.
Internet has become a critical ingredient for any economy that wants to thrive in face of tremendous competition
in the connected world. Innovative technologies have disrupted century old businesses. Taking Uber for
example, it has changed the commuting industry forever.
At the epicenter of the internet lies different social media sites that people spend most of their times on. It is
reported that people spend a significant amount of their time on social media. The following graph shows the
amount of time people spend on social media monthly.
We can observe from the above graph that Facebook is the obvious champion with 1000+ minutes per visitor
and almost 98% reach amongst age group 18-34 [3]. This is a very interesting number.
Facebook generates revenue by showing relevant targeted ads. Advertisers that work with Facebook are happy
because they can advertise to a demographic of their choice. This advertisement business has generated billions
to Facebook as shown in the below graph[10].
As stated in the background section, the target customers are website owners. The most popular Advertisement
system they use to generate revenue is Google AdSense.
Google AdSense is a program run by Google that allows publishers in the Google Network of content sites to
serve automatic text, image, video, or interactive media advertisements, that are targeted to site content and
audience.
Google uses its technology to serve advertisements based on website content, the user's geographical location,
and other factors. Those wanting to advertise with Google's targeted advertisement system may enroll through
Google AdWords. AdSense has become one of the popular programs that specializes in creating and placing
banner advertisements on a website or blog, because the advertisements are less intrusive and the content of
the advertisements is often relevant to the website. Many websites use AdSense to make revenue from their
web content (website, online videos, online audio content, etc.). AdSense is the most popular advertising
network.[5] AdSense has been particularly important for delivering advertising revenue to small websites that
do not have the resources for developing advertising sales programs and salespeople to seek out advertisers.
To display contextually relevant advertisements on a website, webmasters place a brief Javascript code on the
websites' pages. Websites that are content-rich have been very successful with this advertising program, as
noted in a number of publisher case studies on the AdSense website. AdSense publishers may only place up to
three link units on a page, in addition to the three standard ad units, and two search boxes.[6] This restriction is
not applicable for premium publishers who work directly with account managers at Google.
These problems are so many hence there are many stakeholders involved. Businesses that advertise their
products and services, webmasters that cater to different website visitors, advertisers that create and market
these Ads are some of the stakeholders.
This lack of a working ecosystem has inhibited the industry from flourishing. Lack of an ecosystem maybe
something hard to imagine and one might argue that we are fine as we are now. But in comparison to the global
advertisement industry, this is not something to be easily dismissed. This ecosystem has the opportunity to
create a tremendous amount of jobs. Having this ecosystem will create complex ecosystem of webmasters
The overall objective of the proposed project is to develop effective, easy and efficient online
advertising platform for local (Ethiopia Market).
1. Specific Objectives
• to develop a plugin that is lightweight( easy to load even in very slow connections).
• to develop a platform that ,in congruence with the plugin, can deliver ads based on the content the
website contains. This will make sure that the audience will see relevant ads that relate to the content
the viewer is reading, watching.
• to develop a plugin that is very easy to incorporate into websites, including two of the most popular
Content Management Systems: Wordpress and Joomla.
• to develop a plugin that will collect analytics, that will help webmasters understand their audience.
This will help them better cater to their audience.
• to develop a web-panel that will enable advertisers advertise using images, GIFs, videos or just text.
The web-panel will also enable advertisers specify the target audience that the advertisement will be
advertised to
5. Proposed System
As mentioned above the publishers face a big challenge in generating fair revenue. Even if they sign up
for ad platforms like Google Ad Sense, the filtration process is very rigorous and time consuming. After
they pass the filtration process, the money they got from displaying advertisement is very few. This is
because the ad platforms don't target a market like Ethiopia. The website users see this advertisements as
not relevant data or they just think that they are a distraction. The reason behind this is, this advertisements
don't display products that local viewers can actually buy or use. Their local companies are not online,
most of them advertise their product only using the traditional ones like TV, radio or newspapers.
Our proposed system can create an echo-system of local businesses, website viewers and web masters.
This way viewers can see relevant advertisements.
In order to do this we should attract advertisers by building a reliable, efficient and effective system to
advertise their product. We can do this by ;-
• Identification of Customer - By using different technologies like AI the system should be able to
identify what kind of customer is attracted to specific products. This is called Behavioural
Targeting. It will help the marketer to identify the target customers for their product.
• Identification of article - depending on the websites article the advertiser can target a customer using
the document context. For example if the website is talking about the top ten tourist attraction in
Ethiopia the a tour and travel agencies can target the reader to market what their company can offer.
This is called Contextual Targeting
• Offering them a digital local payment system. This can a reduce the process of the manual or the
paper payment system which is a very time consuming
• Building a system which they can manage their campaign and number of customers.
• Displaying the statics of clicks to their ads and also how the website are doing Feasibility Study
1. Developmental cost
Since the project is web based and can be developed using open source software,
it will be free for use. And all the API’s we need to develop the system are free.
Therefore, the development cost is ZERO.
2. Operational Cost
For this project to be up and running, we will be a pay for the server to host the
web services. Other than this there will not be any additional payment.
2. Technical Feasibility
The main problem will be the website owners that don’t able to put the plugin in the website so
we put the plugin in the registered website to promote on the website so we give the technical
support to the website owners.
3. Schedule Feasibility
This project should be delivered by the time frame allocated. Even if the development process
needs various testing, the time deadline should be the major constraint. Therefore, the deadline for
the delivery of the product should go in accordance with the desirable scheduling to ensure the
proper delivery of the project
7. Scope
This Ad Platform is an advertising service that lets website owners/webmasters and bloggers make money by
showing targeted ads on their sites.
The scope of a system can be defined either using the deliverables from the project or the tasks the system
accomplishes. We prefer to use the task oriented approach to define the scope of the project. The main goal of
the project is to develop an add Platform system that performs the following tasks for the different user groups
we have in the system.
• Targeting: Bring message to exactly the right customers wherever they are online.
• Create all types of ads - text, image, interactive and video ads.
• Place those ads on websites that are relevant to what you’re selling.
• Manage webmasters
The methodology we found to be most relevant is ‘SCRUM’ from agile software development methodologies.
We found the techniques in ‘SCRUM’ to be most effective for our context and approach and most of all our
values. Here is a quote from Wikipedia about ‘SCRUM’.
In order to facilitate such a successful meet up and more we will be using two tools. The first one is
MeisterTask and second one is Slack. MeisterTask is a tool to organize the team’s backlog(stuff the team is
working on on each Iteration or sprint). Slack will be the main stream of communication. We will integrate
other development tools with slack like our version control server. This will keep each team-member updated
with the works of other team-members. Scrum master will be Enkusellasie Wendwosen.
Requirement gathering is an integral part of this project’s success or failure. First we have identified who the
major actors are in this system’s ecosystem.
• Website Visitors
• WebMasters
We will need to account vantage points from each of the above actors. We will use questionnaires and face to
face interviews. Questionnaires will be distributed online using Google Forms to a mailing-list database ,we
have developed , of WebMasters. Interviews will be held sparingly with Payment service providers to
understand what their requirements are for integration with their service. These meetings will also be helpful
to distinguish which payment service provider has the better value. There will also be a series of Interviews
with Businesses in order to understand what their values are. This will help us better cater our platform to their
needs.
We will also need to take an in depth look at the current dominant platform, Google AdSense. This will enable
us to understand what is expected from our platform especially from WebMasters that have used Google
AdSense before. We will setup a fake account on google AdSense and also ask WebMasters to show us how
their account looks like.
Design is also another major aspect a successful system. Our system has three major components, that require
attention.
• Plugin
• WebPanel
When considering the design of each component, there are constraints that come to mind. Constraints for each
of the components are as follows.
Plugin
• Size - Has to be less than 10KBs as it needs to be loaded easily even in very slow connections
• Performance - Has to be able to parse contents of the site it is rendered on very fast, even if the Contents
of the site are very large. Needs to have an efficient HTML parser
WebPanel
• Multilingual - Interface needs to support multiple languages
• Security - has to
Designing the system will require the system to consider the above constraints.
The implementation of the system will be done in at least 5 or more iterations(Sprints), with each iteration
adding more features to the system. We have planned ahead of time what the first three iterations will need to
incorporate discussed in the following paragraphs. The rest iterations will be decided upon by the success or
failure of the first three iterations.
We will use multiple frameworks. We will use Angular Javascript Framework to implement the WebPanel.
Using angular will enable us to qualify some of the constraints of the Web Panel, as WebPanel being Single
Page Application. We will use Angular Translate to support Multilingual feature. We will use Restangular to
implement connections with ReST API Server. We will use Loopback Node Framework to implement the
ReST API Server. We haven't identified how we are going to implement the Natural Language Processing
and Information Extraction.
Iteration 1
• Getting Familiar with the Multiple Frameworks
• Plugin - Send ID and Page content to backend, Receive and Render Ad , Register and Send AdClick.
• Backend - Categorize page content sent from plugin based on certain criteria Iteration 2
• Implement a cookie tracking algorithm in plugin and backend to track user activity.
Iteration 3
• Revise and update API Server
18
AD PLATFORM ALL Tuesday, 28 March 2017
There are some potential risks in our project. The first one and considerably the most risky is our
plug-in size. This matters to us because if our plug-in size becomes larger than we thought it can
cause a major defect. This means the larger the code in the plug-in the bigger time it's going to
take from loading the script, grasp the content of the page, send request to the server, to returning
with a related Ad . By the time we display the Ad the viewer might have lost interest or already
left the page with in 2 or 3 seconds.
The second risk is the content identification process. On our proposed system we suggested
contextual customer targeting using AI, meaning our plug-in can display an Ad related to the
website's article concept. Because we are new to AI technologies our algorithm might not be as
efficient as we thought it would be on content analyzing and identification.
The third one is our plug-in compatibility with different browsers. Our plug-in should be
compatible with all browsers, as possible as we can or at least the popular ones. This way we can
be confident that we are reaching out to maximum number of users
Our project management plan to enable quality is to follow these review and testing stages in each
iterations. This processes are going to help us on finding defects and increasing quality
• requirement and design review
• code review
• unit resting
• integration and regression testing • acceptance testing
19
AD PLATFORM ALL Tuesday, 28 March 2017
REFERENCE
Type of Method / Frequency/Schedule Information Participants /
Communication Tool Responsibles
Internal Communication:
Daily SCRUM Slack Daily Project status, problems, Scrum Master,
risks, changed requirements Scrum Team
Weekly Meetings Physical Weekly All project documentation and Scrum Master,
reports Scrum Team,
Advisor
Sprint Review Physcal After completion of each Review Sprint, what Scrum Master,
sprint challenges were faced. Scrum Team
Milestone Meeting Teleconfere After completion of each Project status (progess) Scrum Master,
nce MileStone Scrum Team,
Advisor
Final Project Meeting Teleconfere M6 Wrap-up Scrum Master,
nce Experiences Scrum Team,
Advisor
External Communication and Reporting:
Weekly Report Excel sheet Weekly Project status Scrum Master,
Scrum Team,
Advisor,
External Advisors
Project Report Excel sheet Monthly Project status Scrum Master,
- progress Scrum Team,
- forecast Advisor,
- risks External Advisors
Defence Physical Once Defending the project against Scrum Master,
waive of questions from Scrum Team,
Advisors, and teachers Advisor,
External Advisors
20
AD PLATFORM ALL Tuesday, 28 March 2017
Ad Platform - SRS
21
AD PLATFORM ALL Tuesday, 28 March 2017
Table of Contents
List of Tables
Table 1: Definitions……………………………………………………………………………………………….….…VI
Table 2: Acronyms……………………………………………………………………………………………….….……VI
Table 3: Abbreviations……………………………………………………………….…………………………….…VI
Table 4: Functional Requirement 01……………………………………………………………….……….15
Table 5: Functional Requirement 02……………………………………………………………….……….15
Table 6: Functional Requirement 03……………………………………………………………….……….16
Table 7: Functional Requirement 04………………………………………………………….…….………16
Table 8: Functional Requirement 05…………………………………………………………..…….…….16
Table 9: Functional Requirement 05………………………………………………………………….…….17
Table 10: Functional Requirement 07………………………………………………………………….….18
Table 11: Functional Requirement 08…………………………………………………………………..…18
Table 12: Functional Requirement 09…………………………………………………………………..…18
Table 13: Functional Requirement 10……………………………………………………………………..18
Table 14: Functional Requirement 11……………………………………………………………………..19
Table 15: Functional Requirement 12………………………………………………………………………20
Table 16: Functional Requirement 13………………………………………………………………………20
List of figures
Figure 1: Login Page ………………………………………………………………………………………………… 12
Figure 2: Dashboard Page…………………………………………………………………………………………. 13
Figure 3: Posts Page …………………………………………………………………………………………………..13
Figure 4: Plugin Page ………………………………………………………………………………………………… 14
Figure 5: Use Cases Page …………………………………………………………………………………………… 22
22
AD PLATFORM ALL Tuesday, 28 March 2017
Table 1 Definitions
1.2 Acronyms
Table 2 Acronyms
Term Definition
1.3 Abbreviations
Table 3 Abbreviations
1 Ad Advertisement
23
AD PLATFORM ALL Tuesday, 28 March 2017
DECLARATION
We declare that this written submission represents our ideas in our own words and where
others’ ideas or words have been included. We have adequately cited and referenced the
original sources. We also declare that we have adhered to all principles of academic
honesty and integrity and have not misrepresented or fabricated or falsified any
idea/data/fact/source in our submission. We understand that any violation of the above
will be cause for disciplinary action by the Institute and can also evoke penal action from
the sources which have thus not been properly cited or from whom proper permission has
not been taken when needed.
Group No:
Team:
Date: 11-30-2016
24
AD PLATFORM ALL Tuesday, 28 March 2017
1. Introduction
The online advertising industry is expanding at an alarming rate, showing 20% jump in
2015 compared to the year before[3]. One very crucial factor for this surge is the ubiquity
of smartphones, which is reported to be 2.1Billion in 2016 [4]. However there are
multiple stakeholders in this very lucrative business. Getting into this business requires
understanding the dynamics of each stakeholder.
The Software Requirement is based on the results from the online survey and interview.
1.1 Purpose
The purpose of this SRS document is to accurately specify the requirements for an online
advertising application that will allow advertisers show their product online and
webmasters to make money by showing those ads on their webpage.
1.2 Scope
The system we are proposing to build is an Ad Platform that will place contextually
relevant Ads on websites. Webmasters who will use our platform will benefit from the
slew of features that will make our platform unique. Advertisers will find our platform
an untaped space to advertise their products. Website visitors will find the contextual
ads relevant and informative.
The system to be designed will include: a browser plugin, a web panel, a ReST API
server and NLP server. The web panel will enable advertisers to upload their
advertisements and will find helpful stats. Webmasters will also use the web panel to
find helpful stats about their website. The browser plugin will present advertisements
in a position on a webpage the webmaster desires. The ReST API server will securely
place the Ads and other stats and data generated by the system. The NLP server will do
classification of each webpage that uses our plugin. This will help our system provide
users with relevant ads.
1.3 Overview
The rest of the SRS examines the specification of the Ad Platform in detail. Section 2
of the SRS presents the general descriptions that affect the Ad Platform and its
requirements, such as user characteristics and constraints. Section 3 outlines the
25
AD PLATFORM ALL Tuesday, 28 March 2017
2. General Description
The Ad Platform we are building is going to have a plugin that will be inserted in web
pages to display ads. Ads will be provided by businesses and advertisement agencies
that will work with us to promote their products and services. They will have a webpanel
that will show them different stats about their ads. The ads appearing on the web-pages
will be content aware, meaning that they will be related to what the user is reading on
the webpage.
Web Panel
● The web panel will display selected relevant stats for each role. ● The web panel
will enable editing of advertisements.
Plugin
● The plugin will display advertisements of all sizes.
● The plugin will extract page contents and send to backend server.
● The plugin will collect feedback on irrelevant ads.
Natural Language Processing Server
26
AD PLATFORM ALL Tuesday, 28 March 2017
● The NLP server will classify web-pages into predefined categories for ad
placement
● The NLP server will learn new set of keywords for each category
Depending on the survey we conducted, webmasters are mostly male and range from
20 - 38 years of age. They are also fairly literate, with a minimum of high school
diploma.
Visitors are very hard to characterize as they vastly vary depending on the site they are
visiting. One point to intuitively regard is, topics that one demographic is interested in
does not interest another demographic. For example teenage girls might be interested
in singers, of which is not found interesting by males in their late twenties.
Plugin
• Size - Has to be less than 10KBs as it needs to be loaded easily even in very slow
connections
• Compatibility - Has to be compatible with all browsers.
• Compatibility - Has to be available to popular Content Management Systems.
(Wordpress, Joomla)
• Ease of use - Has to be easily configurable and Installable.
• Performance - Has to be able to parse contents of the site it is rendered on very
fast, even if the Contents of the site are very large. Needs to have an efficient HTML
parser
WebPanel
• Multilingual - Interface needs to support multiple languages
• Smooth Interactivity - Has to be Single Page App
• Secure - Has to let only authorized personnel access the system.
• Role - Needs to support role based access.
ReST API Server
• Performance - has to have great performance
27
AD PLATFORM ALL Tuesday, 28 March 2017
NLP Server
• Accuracy - has to be very accurate at classifying a given webpage to a predefined
category
• Speed - has to be very fast when performing classification task, as the classification
task is realtime.
• Interoperable - has to be able to communicate with the ReST API Server to access
webpages that will be classified.
3. Specific Requirements
3.1 External Interface Requirements
3.1.1 User Interfaces
Our Ad Platform will have a very intuitive, ascetically pleasing user interface. The
system will be used by webmasters, advertisers and admins at Ad Platform as well as
webmaster’s site visitors. Advertisers will interface with a web user interface. They will
be able to view status of their advertisement.
Webmasters will interface with a web user interface that able them to view their
payment history and status, account settings and choose the right ad type and formats
for his/her site.
Administrators will be able to manage registered users. They also manage all the Ads
currently available or registered on the system.
Site visitors, since the interface of the ad to be showed on webmaster’s site is part of
our interface, will interface with a web user interface that able them to see the
relevant Ad on the site they are visiting.
28
AD PLATFORM ALL Tuesday, 28 March 2017
As specified in the proposal document, the system will have a web app that will be
tailor made for website publishers and advertisers. The user interface requirements will
be as follows.
1. The web app needs to support multilingual features. The web app will have to
support English and Amharic.
2. Every page on the web app needs to load under 2 seconds, as recommended by
google[]
3. The web app needs support a caching mechanism to enable much faster
subsequent page loads.
4. The web app needs to be Progressive. This means that all features on each page
will need to work for every user, regardless of browser choice.
5. The web app needs to be Responsive. This means that every page needs to work
consistently on High Resolution Desktop, Standard Desktop, High Density Tablet,
Tablet, High Density SmartPhone, SmartPhone
6. The web app needs to be connectivity independent. This means that it needs to
work offline.
7. The web app needs to have an application shell architecture. This means that
the application needs to load basic user interfaces (shell) first.
8. The web app needs to be engaging. This means that the web app needs to send
push notifications to the user.
The system has multiple user interfaces, each corresponding to a specific actor of the
system. Broadly classifying the type of user interfaces, we find two kinds.
● The web app used by publishers and advertisers to check their stats and other
info.
29
AD PLATFORM ALL Tuesday, 28 March 2017
● The website plugin that will be placed in publisher’s website to display ads.
Figure2 : Dashboard Page.
3.1.1.1 Web-app
The web app will be, as described earlier, used by advertisers and publishers to do all
sorts of things. Each one will be described in detail in the functional requirements
section. The user interfaces will be as follows.
Figure 1: Login Page
30
AD PLATFORM ALL Tuesday, 28 March 2017
Above were some of the pages in the web-app. Only some were illustrated for brevity
reasons.
3.1.1.2. Plugin.
The plugin is a very critical component of the system. The plugin will show relevant ads
in pages it is plugged in. The ads can be banner ads of different sizes. Or GIFs that will
come to life once the page has loaded.
31
AD PLATFORM ALL Tuesday, 28 March 2017
Another area of concern regarding ads is their placement. We have had multiple
discussions with publishers found in Ethiopia about where they place ads. The most
popular place is below the navigation bar before the content of the page begins. This
is the most clickable as it is the most visible. The next most popular would be, the side
bar. The side bar is very visible to visitors who are mostly focused on reading the
content. They might miss the top ad as what they would be looking for when the page
first loads is the content. Hence they would scroll past the top ad. However the
strategically placed side ad would be unmissable and would be clicked if found relevant
by visitors.
32
AD PLATFORM ALL Tuesday, 28 March 2017
ID FR:01
ID FR:02
33
AD PLATFORM ALL Tuesday, 28 March 2017
ID FR:03
ID FR:04
ID FR:05
34
AD PLATFORM ALL Tuesday, 28 March 2017
ID FR:06
ID FR:07
ID FR:08
35
AD PLATFORM ALL Tuesday, 28 March 2017
ID FR:09
ID FR:10
ID FR:11
36
AD PLATFORM ALL Tuesday, 28 March 2017
ID FR:12
ID FR:13
ID FR:14
ID FR:15
37
AD PLATFORM ALL Tuesday, 28 March 2017
ID FR:16
ID FR:17
38
AD PLATFORM ALL Tuesday, 28 March 2017
Based on these needs, the following use cases have been identified
Actors
The following are actors identified in the Ad Platform system
• Webmaster – represents webmasters owning a website and who agreed to serve Ads
on their page.
• Advertiser – represents an individual or a group who wants to advertise his product
or work online by the use of our system
• Administrator – represents the web administrator
• Site visitor - represents a site visitor who can reach webmaster’s page and have an
opportunity to click on the advertisers targeted to him/her on that page.
39
AD PLATFORM ALL Tuesday, 28 March 2017
40
AD PLATFORM ALL Tuesday, 28 March 2017
41
AD PLATFORM ALL Tuesday, 28 March 2017
S4. The administrator selects an ad to s/he wants to update and clicks “Edit”
button.
S5. The system displays the detail of the selected ad
S6. The administrator updates the ad information and clicks “Save” button.
S7. The system checks that the entered information is correct.
S8. The system updates the ad information and displays a confirmation message
to the administrator.
S9. The use case ends
Alternative A: administrator clicks on the “Delete” button.
S1. The administrator clicks on the “Delete” button.
S2. The system displays a confirmation request.
S3. The administrator confirms to delete the ad from the system.
S4. The system deletes the ad from the system and displays a confirmation
message to the administrator.
S5. The use case ends
Alternate A.1: the administrator confirms not to delete the ad
S1. The administrator confirms not to delete the ad
S2. The use case ends
· Alternative B:the entered information is incorrect
S1. The system finds that the entered information is incorrect
S2. The system informs the administrator to re-enter the incorrect information
S3. The administrator enters the correct information and clicks the “Save”
button.
S4. The use case resumes at step 7 of the basic Flow of events.
· Post condition: All Ads are displayed to administrator
42
AD PLATFORM ALL Tuesday, 28 March 2017
Actors: webmasters
Description: enable the webmasters view their payment history
Precondition: the webmaster has successfully logged into the system
Flow of events
S1. The webmaster wants to see a payment status
S2. The webmaster clicks on the “view payment history” link
S3. The system displays the payment history
S4. The use case ends
Post condition: payment history is displayed to webmasters
3.3.6 Use Case Specification for Customize Ads
Name: UC-06:Customize Ads
Actors: webmasters
Description: enable the webmasters to customize Ad
Precondition: the webmaster has successfully logged into the system Flow
of events
S1. The webmaster wants to customize ads displayed on his site
S2. The webmaster clicks on the “customize ads” link
S3. The system displays the customization settings
S4. The webmaster enters/selects correct information and clicks “Save
Customization” button.
S5. The system registers the customization settings and displays a confirmation
message to the webmaster.
S6. The use case ends
· Post condition: the look of ads is matched to webmaster’s site.
43
AD PLATFORM ALL Tuesday, 28 March 2017
44
AD PLATFORM ALL Tuesday, 28 March 2017
Flow of events
S1. The user wants to create an account.
S2. The user clicks on the “Create Account” link
S3. The system displays the “Account Creation Form”.
S4. The user enters the user information and clicks “Create Account” button.
S5. The system checks that the entered information is correct
S6. The system checks that the user name is in use by another user.
S7. The system sends an email confirmation request to the user S8.
The user confirms the request and click “Continue” button.
S9. The system creates user account and displays confirmation message to the
user.
S10. The use case ends.
Alternative A: the update information is incorrect
S1. The system finds that the user information is incorrect
S2. The system informs the user to re-enter the incorrect information. S3. The
user enters the correct information and clicks “Create Account” button.
S4. The use case resumes at step 5 of the basic Flow of events.
Alternative B: the user name is in use
S1. The system finds that the user name is in use by another user
S2. The system informs the user to try another username
S3. The user enters the user name
S4. The use case resumes at step 6 of the basic Flow of events. Postcondition:
a new user account is created on the system.
45
AD PLATFORM ALL Tuesday, 28 March 2017
S4. The use case resumes at step 4 of the basic Flow of events.
Alternative B: the login information is invalid
S1. The system finds that the login information is invalid S2.
The system informs that no such user exists.
S3. The system informs the user to try again.
S4. The use case resumes at step 5 of the basic Flow of events. Post
condition: the user is granted access to the system.
46
AD PLATFORM ALL Tuesday, 28 March 2017
3.4.1 Performance
• The system must be interactive.
• The system should be able to load Ads to websites with minimum delays possible but
this depends on the speed of the internet .
• The system shall be based on web and run from web server.
• Identifying the websites article type and identifying related Ad needs to be fast.
• Webmasters and Advertisers should be able to see report statistics with minimum
delay possible.
3.4.2 Reliability
The system needs to detect failures by sending an information of verification to our
server. One of the failure we expect will be caused by slow internet connection. Failure
to show an Ad on the websites mean we are losing customers (Advertisers are not
advertising, webmasters are not getting money). In order to avoid this failure, in
addition to verification, our plugin needs to be very small in size, so that it can be
loaded easier even in slow connections. The system should load Ads when loading the
page or after receiving in less than 30 seconds.
The system needs to update statistics reports with minimum delays possible which is in
less than 60 seconds. A failure to update these reports will cause data inconsistency
between webmasters and advertisers. By catching every connection error statuses, we
can make sure the data is updated properly on time.
47
AD PLATFORM ALL Tuesday, 28 March 2017
The system needs to show a related Ad to the websites article. There might be a failure
to know the website’s content. In this case, we can show a related Ad with a general
topic.
3.4.3 Availability
The system will be available 24/7. But If the internet service gets disrupted while
sending information to the server, the information can be send again for verification.
3.4.4 Security
The main security concern is for the webmasters and advertisers admin panel. Providing
an account with proper authorization mechanism should be used to avoid hacking. Only
authorized users can access the system. The authorized users are the ones who have
their own user accounts offered by the system. The other major concern is making a
money transaction for webmasters. Hence proper transaction mechanism should be
used to avoid hacking.
3.4.5 Maintainability
To ensure maintainability we designed the system’s architecture in a more flexible
way.For future maintenance the code should be understandable. This means, the code
needs to be readable, naming conventions should be followed and self-descriptive
and/or well commented.
3.4.6 Portability
The system needs to be available any time, any place, where there is available internet.
The plugin needs to be compatible at least with all the popular web browsers. Since it
is web based platform it can be accessed through devices like tablets, mobile phones
and desktop/laptop computers. This means, the platform can be accessed in every
operating systems using web browsers.
48
AD PLATFORM ALL Tuesday, 28 March 2017
• The system doesn’t include an account for the website readers. It only have
account management for the webmasters and advertisers. As it drive away
customers and the system never going to use user's profile data.
3.6 Design Constraints
The design constraints we have are mostly related to the NLP Server. This server as
stated earlier will classify web pages based on the predefined categories. In order to
do this classification the server needs training data to be defined on each category.
Type of the training data and how the NLP server can process that training data is a
constraint that we will design based upon.
If we have sufficient training data, our system will perform well, if not it won’t. Hence
this is an external design constraint. Also the definition of each category is directly
dependent on the ease of which training data can be found for that category. We don’t
want to define a category that training data can’t be found for.
Another design constraint is the nature of the training data itself. The nature will
directly affect the processing algorithms we will design for the data. It will also affect
the NLP Server’s classification process.
For example lets assume the training data is a set of keywords that are related to each
category. Hence the classification process might be matching the words in the webpage
with the keywords for each category. The category with the most matched words will
be the category of the webpage.
Another design constraint is the nature of websites. Websites that we will process to
classify/categorize. More specifically the nature of the publishers that publish articles
on those websites. For example the lexical diversity of the articles. These factors will
affect the design of the NLP server. We will need to design a comprehensive algorithm
to do the classification task efficiently.
Taking a single request from a website visitor for example. First the plugin installed on
the website will collect stats about the site and send the stats and also contents of the
website to the ReST API Server. The server will persist all the data and send contents
of the page to the NLP Server. Just in this process there have been multiple writes to
the database. Hence the database we would use needs to be able to handle all this
writes without compromising performance.
49
AD PLATFORM ALL Tuesday, 28 March 2017
2
ADAD PLATFORM
PLATFORM SRS
SRS
1 | Page
32
AD PLATFORM SRS
Packaging Requirements
The system is a web-based application and it will contain file formats, which come with
the web discipline. To specify a few of these, “.HTML”, “.CSS”,”.JS” ,”.PY” and
“.JSON”, “Read me” text file which are going to be contained within a folder.
Legal Requirements
By know there is no copyright laws and license agreements because in Ethiopia the idea
in not patented but at the end of the project there is a copyright laws and license
agreements.
The Stakeholder (i.e. our advisor, evaluator, team member) will identify a new
requirement or a modification in a requirement and communicate it to the team lead
(i.e. our scrum leader) via email or to the entire team in a meeting. The team will
assess the feasibility of the proposed change considering the time constraints and
structural constraints of the implemented modules and develop an implementation
strategy and submit it to the mentor for approval. A change plan will be created for the
implementation of the change and following sequences of the changes is determined.
The team will then continue implementing the new requirements. Then testing will be
done on the new programmed system. During the testing phase, the product will be
tested for satisfying the requested changes. After the changes have been done, update
will be made to documentation also. The changes will then be verified for the last time,
and a new release will be made.
2 | Page
Ad Platform - Software Design Specification
3 | Page
4 | Page
1.Introduction
1.1 Purpose
This document is intended for anyone interested in understanding the design and
architecture of our system, who has experience reading UML diagrams which include
but not limited to sequence diagrams, class diagrams, component diagrams. This
document includes but is not limited to the following information for the Ad Platform;
system overview, system architecture, object model and detailed system design.
Ad Platform is, as its name suggests, a platform where businesses will be able to
advertise their products and services. A platform that will enable web publishers
monetize their websites by letting us advertise on their platform. The ‘Ad Platform’
name is merely a developmental project name and in no ways reflects the final name
for the product. We might change the name of the project if necessary and we will
identify the change that were made and why.
The system has to be able to do main three tasks efficiently; in order to accomplish its
business requirements. The three tasks are, delivering ads; collecting analytics, analyze
and classify webpages. The system architecture is designed with these tasks in mind.
The system has four main subsystems; Ad Delivery Network, WebPage Classifier, Cross
System Analytics Repository and Website Plugin. Each subsystem is providing
functionality for one of the tasks listed above.
1.3 Goals
Some of our goals when designing the system are listed in this section. The major goal
of the Ad Platform is to cater to the end user with relevant ads that will encourage the
5 | Page
user to interact with the ad without being intrusive. In order to satisfy this we have
devised the WebPage Classifier subsystem of which it’s sole purpose is to classify
webpages from a wide variety of categories. After the webpage is classified, ads in a
similar category will be displayed on that webpage.
The second major goal of the ad platform is to collect as many relevant stats as possible
and provide publishers and advertisers with all the information they need to make
informed decisions. In order to do this we have designed the Cross System Analytics
Repository subsystem; whose sole purpose is to collect stats from the plugin, store them
securely and do some relevant analytics.
The third goal is to make the user interface as intuitive as possible to all actors on the
system. This goal specifically refers to the web panel and plugin. A web panel that
website publishers and advertisers will use to view stats, ads and more. Since the web
panel is the primary way for all actors to interact, it has to very user friendly. To
accomplish this goal we are using rich client side javascript libraries to enhance the
user experience. We also hope to support multilingual functionality.
This design attempted to separate the main functionalities into separate subsystems.
This is done so in part to increase performance of the system. We believe performance
will increase as each subsystem will be independent of the other. For example, The
system can deliver ads and at the same time collect stats about the webpages those
ads are being displayed in. This is also a critical feature when scalability is considered.
In order to coup with the complexity and changing nature of our system; we have stated
in our proposal document that our approach for design and development of our system
is RAD and specifically SCRUM.
Choosing such an approach enables us to look at the requirements from a different
perspective, which is that they are ever changing. This means that during development,
we are able to entertain requirement changes that are essential to the system. We have
planned, as we stated in our proposal document, to do at least three iterations. With
each successive iteration we will incorporate change to requirements .
2.System Architecture
6 | Page
subsystems. This section will present each subsystem in a multitude of diagrams. We
have also stated the rationale behind each subsystem. In this section we will go over
some design considerations taken into consideration when designing the system
architecture.
The main design consideration that went into the Website Plugin is minimization of it’s
size. The size needs to be as small as possible, in order to be loaded on browsers even
in low internet connections. When size is a constraint, every feature that is considered
to be added needs careful consideration. If a feature is not absolutely essential it
cannot be added.
The ad delivery network’s main design consideration is speed of delivery. Every request
to this server needs to be analyzed and classified by another subsystem that this
subsystem works closely with. That subsystem is the WebPage classifier. But subsequent
requests made for a certain webpage need to be cached, because it is highly unlikely
that webpages get updated very often. Hence this subsystem has a caching mechanism
that makes the system more efficient and fast.
The WebPage analyzer subsystem works closely with the ad delivery network to classify
webpages. Its sole task is analysis of webpages, isn’t concerned with caching. The
webpage classifier implements Natural Language Processing Algorithms to effectively
extract topic from a webpage. To do so it relies on a set of keywords that are collected
for each topic. Hence the main design consideration for this subsystem is getting
smarter upon each classification. This subsystem will learn new keywords and will be
better at classification.
The main design consideration for the Cross System Analytics Repository is data
independence. What we mean by that is the stats that are collected on each Ad or User
should be represented in a general manner. Hence when designing the persistence for
this subsystem, we devised a type specification mechanism where all the stats are
represented in just two tables. One for the type of the stat and another for the stat
itself.
Figure 1 System architecture
7 | Page
2.1Subsystem decomposition
In this section we will dive deeper into each subsystem and show their internal
components using UML 2.0 Component Diagrams. We have shown diagrams for all
subsystems except the WebPage Classifier subsystem, of which its details haven't been
finalized yet.
8 | Page
Figure 3 Ad Delivery Network Component Diagram Figure 4 Cross System Analytics
Repository Component Diagram
1 | Page
2.2 Hardware/software mapping UML
Deployment diagram.
3. Object Model
3.1 Class Diagram
We have provided a Unified Modeling Language (UML) based type of static structure
diagram that describes the structure of our system by showing the system's classes,
their attributes, operations (or methods), and the relationships among the classes. Note
2 | Page
that for each class minimum number of properties are specified. Because unnecessary
properties will make the diagram complicated.
3 | Page
3.1.4 User subsystem class Diagram
4 | Page
3.2 Sequence Diagram
This Section shows how processes operate with one another and in what order. We
depict the objects and classes involved in the scenario and the sequence of messages
exchanged between the objects needed to carry out the functionality of the scenario.
5 | Page
Figure 8 sequence diagram - login
6 | Page
7 | Page
3.2.1.3 The system should allow users to register an account
Figure 10 Sequence Diagram for register an account
8 | Page
9 | Page
3.2.1.5 The system should allow users to reset their password
Figure 12 Sequence Diagram for reset password
3.2.1.7 The system should allow the administrator to delete user account
Figure 14 Sequence Diagram for delete user
10 | Page
3.2.2 Advertisement System
3.2.2.1 The system shall allow the advertiser to add new advertisement
Figure 15 sequence diagram – add new Ad
11 | Page
3.2.2.2 The system shall allow the advertiser to update advertisement
Figure 16 Sequence Diagram for update ad
12 | Page
3.2.3 User data System
3.2.2.1 The system shall allow the advertiser to view his ad status
13 | Page
Figure 18 Sequence Diagram for view ad status
14 | Page
3.2.3.3 The system shall allow the webmaster to choose ad types and formats
Figure 20 Sequence Diagram for choose ad type and formats
15 | Page
The classes represented here are the ones identified on our class diagram. And we have
also add the methods and classes identified in sequence and state chart diagram.
16 | Page
Table: 5 Attributes description for User class
Attribute Type Visibilit Invariant
y
name: String Public Name <> NULL and must contain first, middle and last
name and shouldn’t contain special characters and
integers.
password String Private password <> NULL must be at least 6 characters that
combines digits, numbers
address String Public address <> NULL and it must be between 12 to 20
characters
Email String Private Email <> NULL
✓ Must contain @
✓ Must contain. (dot)
✓ Position of @ >1
✓ Position of (dot)>position of @ + 2
✓ Position of (dot)+3<= total length of email
address and the total character of the Email is at
least 5 characters
status ENUM Public Status <> NULL and it must be of on the state of
“Active” or “Passive” with default value of “Passive”
17 | Page
createAccount() Public Void . The clients The clients
p e r s o n a l p e r s o n a l
information information
shouldn’t exist should exist
activateUser() Public Void .user: id User that matches User account
w i t h t h e i d should be active
shouldn’t be
activated yet
updateProfile() Public Void User: id User wants to User account
update his should be
account updated
18 | Page
Table: 8 Attributes description for Advertisement class
name: String Public Name <> NULL and must contain first, middle and last
name and shouldn’t contain special characters and
integers.
category_id Integer Public Categoty_id <> NULL and it is foreign key mapping to
category of advertisements
campaign_id Integer Public Campaign_id <> NULL and it is foreign key mapping
to campaign advertisements created by a specific
advertiser
path String Public Path <> NULL and must be working URL address that
redirects to the origin of the advertisement
status ENUM Public Status <> NULL and it must be of on the state of
“Active” or “Passive” with default value of “Passive”
19 | Page
activateAd() Public Void .Ad: id Ad that matches Ad should be
w i t h t h e i d s h o active
uldn’tbe
activated yet
Storage
-userId: String
- adId: String
-webmasterId:String
-transactionId:String
-transactionDate:DateTime
+adClicks:integer
+adImpression:integer
+transactedMoney:Double
+adlikedGeography:List<Double>
20 | Page
Table: 11 Attributes description for Storage class
Attribute Type Visibility Invariant
21 | Page
Table: 12 Operation description for
Storageclass
Operation Visibili R e t u r n Argument Pre-Condition Post Condition
ty type
22 | Page
getAdTransactio public AdTransa Webmaster:id user must login
n() c t i o n Ad: id
Object
updateAdTopic() public bool Ad: id The topic New Ad topic
String:topic should be new will be
available.
The Ads should
categorized
using the
updated topic
lists
getAdTopic() public string Ad:id user must login
The Ad should
exist
REFERENCE
[3] Dave , Chaffey (2016, Mar 10). Global social media research
summary 2016. Retrieved from hgp:// www.smarDnsights.com/social-
media-markeDng/social-media-strategy/new-global-social-media-research/
[4] Jack Nikas, (2016, July 28) Google Profits Surge on Strong Ad
Demand. Retrieved from. Retrieved from
hgp://www.wsj.com/arDcles/google-profits-surge-on-strong-ad-demand-1469736762
[5] W3Techs, ( 2012, August 25) Usage of adver,sing networks
for websites. Retrieved from hgps://
w3techs.com/technologies/overview/adverDsing/all
[6] support.google.com , (2014, October 13) AdSense Ad limit
per page. Retrieved from hgps://
support.google.com/adsense/answer/1346295?hl=en#Ad_limit_per_page
[7] Google Form 10-Q, (2010 ,July 15) . Retrieved from
hgp://investor.google.com/documents/ 20100630_google_10Q.html
[8] Mark Irvine, (2016, Oct 12). Average Cost per Click by
Country: Where in the World Are the Highest CPCs?
.Retrieved from hgp://www.wordstream.com/blog/ws/2015/07/06/average-cost-
per-click
[9] Deepa Seetharaman, (2016, July 27). Facebook Posts Strong Profit and
Revenue Growth. Retrieved from
hgp://www.wsj.com/arDcles/facebook-posts-strong-profit-and-revenue-growth-
1469650289
[10] wikipedia.org (2016, Nov 10). Scrum (soQware development). Retrieved
from hgps://en.wikipedia.org/ wiki/Scrum_(sopware_development)
[11] A survey on “AN ARCHITECTURE OF INTERACTIVE WEB ADVERTISING
SYSTEM” by Hsiangchu Lai and Tzyy-Ching Yang from Department of
Information Management, National Sun Yat-sen University, Taiwan, R.O.C