Các thành phần chính của AdServer

Một phần của tài liệu THIẾT KẾ VÀ HIỆN THỰC CHƯƠNG TRÌNH QUẢN LÝ QUẢNG CÁO TRÊN TRANG WEB.doc (Trang 69 - 98)

Sau khi phân tích hệ thống và yêu cầu của chương trình, ta cĩ chương trình Ad Server bao gồm 3 bộ phận sau:

1. ADVERTISER

Bộ phận này nhằm tương tác với khách hàng đăng ký quảng cáo trên các web site (Advertiser) thơng qua các HTML form. Bao gồm các chức năng sau:

 Cho phép advertiser đăng ký vào hệ thống.

 Tạo mới, xĩa , thay đổi các thơng tin của campaign.

 Tạo mới, xĩa, sửa advertisement của một campaign (Advertiser chỉ cĩ thể thao tác trên dữ liệu thuộc campaign của mình khi hợp đồng của campaign này chưa được kí (sign up)).

 Xem báo biểu thống kê tổng quát

 Xem báo biểu thống kê chi tiết.

2. ADMASTER

Bộ phận này nhằm tương tác với người quản lý quảng cáo (Admaster) thơng qua các HTML form. Bao gồm các chức năng sau:

 Tạo mới, sửa, xĩa một account (advertiser).

 Thay đổi các thơng tin về campaign và advertisement mà advertiser đã đăng ký cho đúng.

 Thống kê.

3. AD-SERVER

Là thành phần chủ yếu của chương trình. Thành phần này điều phối mọi quá trình khác. Bao gồm các chức năng chính sau:

 Gửi các HTML form tương ứng cho 2 cho client (Advertiser và Admaster) khi cĩ yêu cầu.

 Tiếp nhận thơng tin gửi về, xử lý và phản hồi cho Advertiser.

 Target một ad banner trên Web site.

 Chọn một ad banner cụ thể để hiển thị trên trang Web.

 Ghi nhận số lần xuất hiện (Display-impression), số lần được click…

4. QUY TRÌNH THỰC HIỆN

Quy trình thực hiện của hệ thống thơng qua các quá trình như sau:

- Register : Advertiser đăng ký vào hệ thống.

- AdMastrer login vào hệ thống

- Add New Account : chấp nhận đăng ký Advertiser vào hệ thống.

- Advertiser login vào hệ thống

- Advertiser đăng ký quảng cáo.

- Admaster quản lý account

- Nhĩm và nhĩm con.

- Ad Delivery : đưa ad banner được targer ra trang Web.

- Logs. (adsbygoogle = window.adsbygoogle || []).push({});

- AdMaster Statistic : AdMaster thống kê số liệu.

- Advertiser Statistic : Advertiser thống kê số liệu.

Ghi chú : trong những bảng được đề cập dưới đây.

Bảng Campaign cĩ trong hệ thống với tên gọi CP+ ‘AccountID’ Bảng Advertisement cĩ trong hệ thống với tên gọi AD+ ‘AccountID’ Bảng GroupLog cĩ trong hệ thống với tên gọi GroupLogs+ ‘BannerID’ với : AccountID là ID của Advertiser.

BannerID là ID của ad banner

4.1 Quá trình 1: đăng ký vào hệ thống

Advertiser đăng ký vào hệ thống (Register) : bất cứ khách hàng nào muốn quảng cáo trên web site của cơng ty này đều phải đăng ký vào hệ thống. Quá trình này được mơ tả cụ thể như sau:

 Thành phần : ADVERTISER.

 Bảng: Register.

 Quy trình:

AdServer gửi Register form xuống cho advertiser.

Advertiser điền các thơng tin về mình và gửi lên server.

Server kiểm tra lại thơng tin, nếu thơng tin sai hoặc khơng đầy đủ thì gửi lại cho advertiser và thơng báo cho advertiser, ngược lại sẽ tiến hành lưu vào database.

 Chương trình : hiện thực trong module Register.dll và được mơ tả bằng lưu đồ sau :

Kiểm tra quyền truy xuất Bắt đầu Thêm user mới Đĩng database Báo lỗi Kết thúc Đĩng kết nối database F T F T Kết nối database thành cơng Hình 2.6 71

Quá trình kiểm tra quyền truy xuất được tiến hành như sau: Begin

If (các field “User name” hoặc “Password”

hoặc “Contact_Person” hoặc “Email” rỗng ) Then (báo lỗi và kết thúc chương trình)

Else Begin

Kiểm tra password :

1. Cĩ nhiều hơn 3 kí tự khơng ?

2. 2 field password và retype passsword phải giống nhau Kiểm tra cĩ Email hợp lệ khơng ?

End

Thêm User mới (nếu tất cả điều kiện trên đều hợp lệ) End;

4.2 Quá trình 2 - Admaster login vào hệ thống :

 Thành phần : ADMASTER.

 Quy trình:

AdServer gửi " Login Form" xuống cho Admaster gồm cĩ thơng tin Username và Password. Admaster điền đúng usernname và password vào hệ thống và gởi lên server.

Ad Server kiểm tra, nếu hợp lệ sẽ cho Admaster login vào hệ thống.

 Chương trình : hiện thực trong module Admin.dll và được mơ tả bằng lưu đồ sau: Bắt đầu Kết thúc Kiểm tra username và password Kết nối database thành cơng Đĩng kết nối database Đĩng kết nối database Báo lỗi F T Hình 2.7 Hiển thi Advertisers 72 (adsbygoogle = window.adsbygoogle || []).push({});

Quá trình hiển thị Advertiser được thực hiện như sau:

Begin

If “khơng cĩ Advertiser”

Then “Thơâng báo là khơng cĩ Advertiser” Else

Xuất thơng tin Advertiser ra theo thứ tự các field như sau: - User ID

- User name

- Name of Contact person - Name of Company

- Các option cho phép sửa, xố Advertiser và đăng ký campain cho Advertiser đĩ.

End;

4.3.Quá trình 3 - chấp nhận đăng ký vào hệ thống (Add new account) :

Sau khi advertiser đồng ý đăng ký vào hệ thống, AdMaster sẽ tiến hành tạo account cho client đĩ.

 Thành phần : ADMASTER.

 Bảng: Register, Advertiser.

 Quy trình: AdServer gửi "Add new account form" xuống cho AdMaster để xác định client đã đăng ký ở quá trình 1.

- Admaster sau khi điền một số thơng tin thì gửi lên server.

- Server sẽ truy xuất trong table "Register" để lấy tồn bộ thơng tin mà client đã nhập ở quá trình 1 và gửi cho Admaster.

- Admaster sẽ cấp Username, Password cho client và gửi lên server.

- Server kiểm tra thơng tin (Username là duy nhất) nếu hợp lệ sẽ tạo ra một USER ID và lưu tồn bộ thơng tin vào table "Advertiser" đồng thời xĩa thơng tin của client trong table "Register".

 Chương trình : hiện thực trong module AddNewAccount.dll Account của Advertiser cĩ thể được thêm vào bằng 2 cách :

1. Thêm trực tiếp vào bảng Advertiser :

Chương trình gởi “Register_form” xuống cho AdMaster, form này cũng tương tự như form đã gởi xuống cho Advertiser, ngoại trừ một số thơng tin phụ thêm vào (như “Customer Since” . . .)

AdMaster điền thơng tin và gởi lên server, chương trình sẽ cập nhật thơng tin vào bảng Advertiser.

2. Thêm gián tiếp thơng qua bảng Register : được mơ tả bằng lưu đồ sau :

Sau khi dữ liệu được lưu vào trong bảng Advertiser, chương trình sẽ gọi store procedure CREATE TABLE để tạo ra 2 bảng “Campaign” và “Advertisement” tương ứng cho Advertiser đĩ.

4.4 Quá trình 4 - Advertiser login vào hệ thống :

Advertiser muốn vào hệ thống phải nhập đúng user name và password đã được hệ thống cấp ở quá trình 3.

 Thành phần : ADVERTISER.

 Bảng : Advertiser.

 Quy trình:

- AdServer gửi "Login Form" xuống cho Advertiser gồm cĩ thơng tin để điền Username và Password. (adsbygoogle = window.adsbygoogle || []).push({});

- Advertiser điền user name và password vào hệ thống và gởi lên server. Server truy xuất table "Advertiser" để kiểm tra username và password, nếu hợp lệ sẽ cho advertiser login vào hệ thống.

T Bắt đầu Kiểm tra username và password Mở bảng Register thành cơng Gọi hàm “Thêm user mới” Xố thơng tin trong bảng register Đĩng kết nối database Kết thúc Thơng báo lỗi Đĩng kết nối database F Hình 2.8 74

 Chương trình : được hiện thực trong module AdvertiserLogin.dll như mơ tả trong lưu đồ sau :

Hàm QueryOrder : cĩ nhiệm vụ hiển thị tất cả những thơng tin về Campaign của Advertiser, xem Campaign, thống kê :

- Kiểm tra user name, password của Advertiser.

- Nếu user name password hợp lệ, tiến hành kết nối với Database (bảng Campaign)

- Nếu kết nối thành cơng, in ra những field của Campaign theo thứ tự sau:

+ Tiêu đề campaign (Campaign Title).

+ Tên người quản lý campaign (Manager Name ) + Ngày tạo Campaign (Created on Date)

+ Impressions + Click-Throughs

+ Trạng thái của hợp đồng (Contract Status) + Banners Information: Edit – Delete – Banners

- Nếu trạng thái của hợp đồng là Unsigned thì sẽ khơng in 2 mục Edit và Delete trong “Banners information”

- Đĩng database và trở về chương trình gọi.

- Nếu khơng kết nối được, báo lỗi và trở về chương trình gọi.

4.5 Quá trình 5 - Advertiser đăng ký quảng cáo (order):

Quá trình này bao gồm các chức năng: Tạo, Sửa, Xĩa campaign; tạo, sửa, xĩa ad banner của campaign. Advertiser chỉ được quyền truy xuất thơng tin của riêng account của

T F Bắt đầu Username và password hợp lệ Gọi hàm query order Kết thúc Báo lỗi Hình 2.9 75

mình. Nếu như trạng thái campaign của advertiser là “UnSigned” thì họ được quyền sửa đổi thơng tin trong campaign (và ads) của mình. Nhưng nếu trạng thái của campaign là “Signed”, thì advertiser khơng được quyền sửa đổi campaign (và ads) của mình, chỉ được xem mà thơi.

 Thành phần : ADVERTISER.

 Bảng : Campaign, Advertisement.

 Quy trình:

- AdServer gửi "Orders Form" xuống cho Advertiser gồm cĩ:

- Thơng tin: gồm tất cả thơng tin của các lần đặt quảng cáo (Order - Campaign) của advertiser như : tên Campaign, Campaign_ID, trạng thái hợp đồng, Ads tổng cộng, Impressions, Clicks. . .

- Chức năng: thêm Campaign, sửa đổi Campaign, xố Campaign.

- Database : Ad Server lưu trữ và kết xuất thơng từ bảng Campaign Khi advertiser chọn chứa năng “Banners” trong campaign, AdServer sẽ gửi "Ad

Banners Form" cho phép advertiser xem thơng tin chi tiết của tất cả các ad banner của campaign đĩ:

- Thơng tin: tên của Ad banner, ID của ad banner, trạng thái hợp đồng, ngày bắt đầu và kết thúc, chiều cao, chiều rộng của ad banner, URL của ad banner . . .

- Chức năng: thêm ad banner, sửa đổi ad banner, xĩa ad banner, xem trước ad banner.

- Database: AdServer lưu trữ và kết xuất thơng tin từ bảng Advertisements

 Chương trình : hiện thực trong 2 module: AdvertiserOrders.dll và AdvertiserBanners.dll (adsbygoogle = window.adsbygoogle || []).push({});

4.5.1 Thao tác trên Campaign :

Chương trình sẽ kiểm tra xem giá trị truyền thơng số trong form HTML hiện tại lúc đĩ là “Change” hay “Add New”. Giá trị “Add New” tương ứng với khi ta nhấn vào nút “Add New Campaign” và giá trị “Change” tương ứng với khi ta nhấn vào nút “Edit” hoặc “Delete”.

a. Tạo Campaign mới : hàm ModifyCampaign()

Chương trình sẽ gởi xuống form HTML (CampaignForm.htm) với giá trị của nút Submit là “Add New”. Giá trị của các thơng số trong Form đều rỗng.

<FORM ACTION ="AdvertiserOrders.dll?" method="POST">

<INPUT TYPE=HIDDEN NAME="MfcISAPICommand" VALUE="UpdateTable"> <INPUT TYPE=HIDDEN NAME='User_ID' VALUE='1'>

<INPUT TYPE=HIDDEN NAME='UserName' VALUE=”User name của Advertiser”> <INPUT TYPE=HIDDEN NAME='Password' VALUE=”Password của Advertiser“> <INPUT TYPE=HIDDEN NAME='CampaignID' VALUE='ID của campaign'> <INPUT TYPE=HIDDEN NAME='Update' VALUE='Insert'>

<TABLE BORDER =1> . . . .

<tr><td><center>

<input type="submit" value="Add New"> <input type="reset" value=" Reset "> </center>

</tr></td> </TABLE> </FORM>

b. Sửa campaign : hàmModifyCampaign()

Chương trình sẽ gởi xuống form HTML (CampaignForm.htm) với giá trị của nút Submit là “Change”. Giá trị các thơng số của form tương ứng với những giá trị truy xuất được từ các field trong bảng “Campaign”.

<FORM ACTION ="AdvertiserOrders.dll?" method="POST">

<INPUT TYPE=HIDDEN NAME="MfcISAPICommand"VALUE="UpdateTable"> <INPUT TYPE=HIDDEN NAME='User_ID' VALUE='%s'>

<INPUT TYPE=HIDDEN NAME='UserName' VALUE='%s'> <INPUT TYPE=HIDDEN NAME='Password' VALUE='%s'> <INPUT TYPE=HIDDEN NAME='CampaignID' VALUE='%s'> <INPUT TYPE=HIDDEN NAME='Update' VALUE='%s'> . . .

</FORM>

o Trong trường hợp tạo mới Campaign, chương trình sẽ gọi hàm UpdateTable() với giá trị “Insert” truyền cho thơng số “Update”. Khi nhận được thơng số này, hàm sẽ thực thi lệnh SQL “Insert” để chèn giá trị trong Form vào những field tương ứng trong bảng Campaign.

o Trong trường hợp sửa Campaign, chương trình sẽ gọi hàm UpdateTable(), thực thi lệnh SQL “Update” để cập nhật giá trị trong form vào những field tương ứng trong bảng Campaign.

c. Xố Campaign : xét form sau

<FORM ACTION='AdvertiserOrders.dll?' METHOD='POST'>

<INPUT TYPE=HIDDEN NAME='MfcISAPICommand' VALUE='ModifyCampaign'> <INPUT TYPE=HIDDEN NAME='CampaignID' VALUE='1'>

<INPUT TYPE=HIDDEN NAME='User_ID' VALUE='1'> <INPUT TYPE=HIDDEN NAME='Action' VALUE='Delete'>

<INPUT TYPE=HIDDEN NAME='UserName' VALUE='User name của Advertiser’> <INPUT TYPE=HIDDEN NAME='Password' VALUE=’Password của Advertiser’>

<INPUT TYPE=HIDDEN VALUE='Delete'> </FORM>

Khi giá trị truyền cho thơng số “Action” là “Delete” thì chương trình sẽ nạp form HTML “Confirm.htm”. Khi Advertiser nhấn vào nút xĩa Campaign thì chương trình sẽ gọi hàm UpdateTable() để tiến hành việc xố dữ liệu tương ứng trong bảng Campaign.

4.5.2 Thao tác trên các Ad Banner :

a. Tạo ad banner mới :

- Kiểm tra Username, password.

- Lấy ngày giờ hiện hành của hệ thống (adsbygoogle = window.adsbygoogle || []).push({});

- Gởi Ads Form xuống cho Advertiser. Các giá trị điền vào Form gồm: + Banner Title. + Redirect URL + Alt Text + Banner URL + HTML Under banner + Ngày tháng bắt đầu, kết thúc. + Chiều rộng/ cao của ad banner.

- Gởi Form đăng ký lên server.

Lưu trữ ad banner vào hệ thống :

Sau khi Advertiser nhấn vào nút “Submit” trong form đăng ký ad banner của mình, chương trình sẽ đọc thơng tin trong 3 bảng Advertiser, Campaign và Advertisement để tính tốn ra số ID của Banner. BannerID sẽ là một chuỗi được ghép lại từ 3 giá trị : Account Number, Campaign Number và Ads_Number.

Theo định dạng ban đầu trong database, ID của Banner cĩ chiều dài là 15 (kiểu varchar), tuy nhiên trong chương trình chỉ định dạng ở 9 kí tự như sau:

strBanner_ID.Format("%.3d%.3d%.3d",

Account_Number,Campaign_Number,Banner_Number);

Advertiser khơng bao giờ thao tác (thay đổi) được trên BannerID của mình, thơng số này chỉ do chương trình phía AdMaster ấn định và do đĩ chỉ cĩ AdMaster mới cĩ thể thay đổi những thơng tin liên quan đến ID này.

Quá trình lưu thơng tin một ad banner vào hệ thống được mơ tả như sau : - Kiểm tra Username, password.

- Kết nối tới database

- Nếu Banner ID <> 0

+Thực thi lệnh SQL “Insert” đưa dữ liệu mới vào trong bảng Advertisement (thêm record mới).

- Nếu BannerID = 0

+ Thực thi lệnh SQL “Update” cập nhật lại thơng tin vào record cũ.

Trong quá trình lưu thơng tin của ad banner mới, ta cũng đồng thời gọi store procedure “CreateLogTable” để ghi dữ liệu cần target của ad banner ra các bảng Logs :

strSQL.Format("Exec CreateLogTable 'Logs%s'", strBanner_ID);

b. Sửa thơng tin của ad banner

Đối với việc sửa thơng tin của một ad banner : ta chỉ cần đọc lại dữ liệu trong record tương ứng trong bảng “Advertisement” rồi cho hiện lên form. Sau khi Advertiser điền thơng tin và gởi lên Server, ta gọi lại hàm SaveBanner để cập nhật dữ liệu vào bảng Advertisement và các bảng Logs.

c. Xố ad banner :

Khi Advertiser đồng ý xĩa một ad banner ra khỏi hệ thống, chương trình sẽ gọi lệnh SQL “Delete” để xố record tương ứng chứa dữ liệu của ad banner đĩ. Sau đĩ gọi store procedure “DropLogTable” để xĩa những bảng Logs tương ứng của ad banner.

strSQL.Format("Exec DropLogTable 'Logs%s'", pszBannerID);

d. Xem từng ad banner: (hàm ViewBanner())

Mỗi lần Advertiser xem một ad banner, chương trình sẽ mở một cửa sổ riêng độc lập với cửa sổ đang lảm việc. Do đĩ Advertiser cĩ thể vừa xem ad banner của mình vừa thao tác trên cửa sổ làm việc.

Ta sẽ nhúng đoạn mã Javascript vào trong chương trình như sau : . . .

*pCtxt << "<script language='JavaScript'>\n"; *pCtxt << "<!--\n";

CString strOutput, strTemp;

strTemp.Format("'/scripts/adserver/admaster/Ad_Delivery.dll/'+ randomnumber+'?AD=%s&VIEW=TRUE'",pszBannerID); strOutput.Format("window.open(%s,'','toolbar=0, location=0,

directories=0, status=0, menubar=0, scrollbars=0, resizable=0, width=600, height=100');\n",strTemp); *pCtxt << strOutput;

*pCtxt << "//-->\n"; *pCtxt << "</script>\n"; . . .

đoạn mã trên gọi module Ad_Delivery.dll, module này hoạt động dựa trên giải thuật chọn ad banner nên sẽ cĩ đoạn chương trình tính số ngẫu nhiên. (adsbygoogle = window.adsbygoogle || []).push({});

<script language='javascript'> <!— var now = new Date();

var seed = now.getTime() % 0xffffffff; function rand(n) {

seed = (seed * 0x015a4e21) % 0x7fffffff; return (seed >> 16) % n; } function openWindow(url) { theWind = window.open('','theWindow'); theWind.location = url; } var lullTime = 10000; var randomnumber=rand(1000000); //--> </script>

Khi ad banner được hiển thị, location khi đĩ sẽ là URL (http:// . . .) mà ta nạp module Ad_Delivery với các thơng số tương ứng (Module Ad_Delivey được mơ tả trong quá trình số 8).

e. Xem tồn bộ ad banner trong campaign: (hàm ViewAllBanner() )

Xem tồn bộ ad banner cũng tương tự như xem một ad banner ngoại trừ việc chương trình sẽ nạp tồn bộ các field thuộc record cĩ chứa ad banner. Mỗi ad banner sẽ cĩ một chuỗi Banner_ID đặc trưng cho ID của mình.

Tất cả ad banner sẽ được hiển thị trong một cửa sổ mới, phía trên mỗi ad banner sẽ cĩ một chuỗi thể hiện ID của ad banner đĩ.

4.6 Quá trình 6 - AdMaster quản lý account

Đây là quá trình chủ yếu của thành phần "ADMASTER"

 Thành phần : ADMASTER.

 Bảng: Advertisers, Campaigns, Advertisements.

 Chức năng:

- Hiển thị tồn bộ account.

- Tạo mới, sửa, xĩa các thơng tin về advertiser, campaign, ad banner.

- Hiển thị tồn bộ ad banners.

- Admaster cĩ thể tạo mới, xố, sửa đổi bất kỳ campaign, ad banner nào trong hệ thống.

 Quy trình:

- AdServer gửi "Admaster Manage Account Form" xuống cho admaster. Bao gồm các thơng tin và chức năng cho phép quản lý cả hệ thống. Admaster tùy yêu cầu sẽ sử dụng các chức năng của hệ thống.

 Chương trình : các module Admin.dll, AddNewAccount.dll, Advertisement.dll, Campaign.dll.

- Tạo mới Advertiser : quá trình tạo mới Advertiser của AdMaster cũng tương tự như khi Advertiser đăng ký vào hệ thống; tuy nhiên, thơng tin về advertiser sẽ được đưa thẳng vào trong bảng Advertiser.

Một phần của tài liệu THIẾT KẾ VÀ HIỆN THỰC CHƯƠNG TRÌNH QUẢN LÝ QUẢNG CÁO TRÊN TRANG WEB.doc (Trang 69 - 98)