ASP Banner Ad System
To the Reader from Joe: This is a user-submitted tutorial by the author above. I have read the tutorial and set the format to fit HTML Goodies, but for the most part have not changed the language. I chose this tutorial because many readers have been asking for more ASP tutorials. This is a great one.
Sorry I cannot show you the event here. The HTML Goodies servers do not offer ASP. I will tell you though that if you run IE5.0 or better, open the contents of the zip file into a directory and it runs just fine.
If you haven't already, you may want to read my introductory ASP tutorial before this one. If not, then enjoy.
There may be a point in your web design career, where your site becomes real popular. That is when companies become interested in advertising on your site. A Banner Ad system can be built to control all those advertisements that you are so willing to display, for a price. Active Server Pages makes it very easy to create a banner ad system. So easy, that the Microsoft ASP developers created an "AdRotator" component for the occasion. Before you begin reading this article, make sure you download the support material below.
All the files you need are right here
The files included aread.txt
3 banner images
In order for the AdRotator component to work, you must configure a text file. This text file contains all the banner ad properties. However, The text file must follow a certain format. The first four lines are as follows...
REDIRECT redirect.asp WIDTH 400 HEIGHT 50 *REDIRECT
When a banner is clicked, the "AdRotator" component goes to a preliminary page. This page is called a redirect page. The redirect page handles any extra programming events before directing a user to the banners destination. In this example banner system, I called the preliminary file "redirect.asp".WIDTH
This sets the width of the banner ad image. The value must be in pixels.HEIGHT
This sets the height of the banner ad image. The value must be in pixels.*
The asterisk tells the "AdRotator" component that it is about to acquire banner ad information. The asterisk is required.
Once you define the general properties above the asterisk, then comes the list of banners to display. In the ad.txt file, there are three banners defined below the asterisk.banner1.jpg
Each banner requires four lines of properties, which follow the format below...
Image filename Web Address Description Banner WeightImage File
The image filename can be a fully qualified web address or relative name that points to the image. If the image is in a different folder, then you also include the folder name as well.(http://www.test.com/banner1.jpg, banner1.jpg, or foldername/banner.jpg)>Web Address
The web address can be a page on your site or a fully qualified web address that leads to another site.Description
The description will be displayed as a tool tip. When you rest your mouse over the banner, the description pops up.Banner Weight
The banner weight determines how much a banner is displayed. The "AdRotator" component adds all of the banner weights and determines the probability or percent chance of a particular banner being displayed. A banner with a higher weight has better a better probability.NOTE: You can disable a banners property by substituting with a dash.
The example entry above would create a banner ad that does not have a web address.
This file uses the "AdRotator" component and analyzes the contents of the ad.txt file. Below is the code.sub banner(strTarget)
dim bannerad, html
set bannerad = server.CreateObject("MSWC.adrotator")
bannerad.TargetFrame = strTarget
html = bannerad.GetAdvertisement("ad.txt")
The first thing to note is that the ASP was written with VBScript. The second thing to note is that the code is written inside a sub procedure called banner(strTarget). For those of you who do not know, a sub procedure allows you to group together a bunch of code that can be reused over and over. Like a function, it takes an argument, such as a word or variable. In the code above the argument is strTarget. Unlike a function, a sub-procedure does not return any values, it just executes the code inside line by line.
Inside the sub I declare two variables...dim bannerad, html
Next I store the "AdRotator" component inside the "bannerad" variable. When storing a component inside a variable you use the set keyword. Since we are programming server-side with ASP, we use server.CreateObject to summon the component. "MSWC.adrotator" is the component key or name value.set bannerad = server.CreateObject("MSWC.adrotator")
Next I use a property of the "AdRotator" called "TargetFrame". This property is equivalent to...<a href="http://www.someaddress.com" target="target-value">
The target-value can be one of the values below...
|_blank||Opens the destination link in a new browser window.|
|_top||Opens the destination link on top of the web page.|
|_parent||Opens the destination link within a parent frame.|
|_new||Opens the destination link in a new browser window.|
Next, I use an "AdRotator" method or function called "GetAdvertisement" and stored its results in the "html" variable. Notice that the "GetAdvertisement" takes the name of the ad banner text file as an argument.html = bannerad.GetAdvertisement("ad.txt")
Finally, I want to print the contents of the "html" variable. This prints the code that displays the banner images.Response.Write html
This is the file that is processed before someone is redirected to the banners web address. Inside this file, we can capture information like how many times a particular banner is clicked and so on. To start things off, I defined a variable called "strUrl".Dim strUrl
Next I store a querystring value inside this new variable.strUrl = Request.Querystring("url")
A querystring is nothing more than a bunch of name/value pairs attached to a web address. When a user clicks on a banner, the "AdRotator" component attaches a querystring to the redirect file. So if we were to click banner1.jpg, defined in ad.txt, we would end up with a redirect web address that looks like so...Redirect.asp?url=http://www.htmlgoodies.comℑ=banner1.jpg
In essence assigning "Request.Querystring("url") to "strUrl", is the same as assigning http://www.htmlgoodies.com to it.
Finally, I check to see which banner was clicked. I accomplish this with the VBSCript inStr( ) function.if instr(strUrl, "htmlgoodies") then
application("htmlgoodies") = application("htmlgoodies") + 1
The inStr( ) function returns the number position of a sub-word (sub-string) within another word (string). The format is as followsInStr(main word, sub-word)
If the sub-word exist within the main word, then the function will equal a number greater-than zero or true. If the sub-word does not exist, then the function will equal zero or false. In the example above, I check to see if "htmlgoodies" exist within http://www.htmlgoodies.com. Since the answer is true, then the code inside the if... then... statement will execute.
Inside the if... then... I use an application variable. An application variable is native to ASP. Application variables store information as long as a web application exist, a web application ceases to exist when say someone shuts off the web hosting server. The beauty of an application variable is that you can define it on one web page and use it in other web pages within your web application. The downfall is that the users computer must have cookies enabled.
Anyways, the code adds one to the application variable, every time a banner is clicked. After one is added, the code redirects to the banners web page. So if banner1 was clicked then you shall be redirected to "http://www.htmlgoodies.com".Response.Redirect strUrl
This is an example page that uses the banner ad system. When you refresh the page, you should most likely see a different banner. Whenever you want to insert the banner ad on a page, you can use the SSI directive below...<!-- #include file="banner.asp" -->
Once you include the file above, then you can call the sub-procedure inside the banner.asp file like so...Call banner("_blank")
Notice that I supply one of the values for the "TargetFrame" as an argument. So if the banner is clicked, then the web page should open up in a separate browser window.
This is a very simple page that displays the number of clicks per banner ad. To display the number of times a banner was clicked, you just print the contents of the application variables that were created inside "redirect.asp". Pretty nifty.<% =application("htmlgoodies") %>