In the pages of your Web site, you add tags like this:
<A HREF="http://oasis.yourdomain.com/oasisc.php?s=35&w=468&h=60"><IMG SRC="http://oasis.yourdomain.com/oasisi.php?s=35&w=468&h=60" WIDTH=468 HEIGHT=60 BORDER=0></A>
There are two components, the impression URL and the clickthrough URL.
The impression URL is "/oasisi.php
" (on your OASIS server),
and the clickthrough URL is "/oasisc.php
" (also on your
OASIS server).
Each takes three CGI arguments:
s
: the section number to which this page belongs
w
: the width of the banner to be displayed here
h
: the height of the banner to be displayed here
Note that it is critical that these three arguments match up in the impression URL and the clickthrough URL.
<A HREF="http://oasis.yourdomain.com/oasisc.php?s=35&w=468&h=60"><IMG SRC="http://oasis.yourdomain.com/oasisi.php?s=35&w=468&h=60" WIDTH=468 HEIGHT=60 BORDER=0></A>
The first time a visitor hits this link, his browser will contact the OASIS server and get a banner ad. If the ad is animated (as so many banners tend to be), OASIS will not be able to send cache-busting HTTP headers (doing so causes bizarre looping of banners in many browsers). The second time the visitor's browser sees these tags, it may decide, "hey, I've got this in cache, so there's no need to contact this OASIS server". The visitor sees the same tired banner ad.
A solution is to put a random number into the URL for OASIS. You have to do this in a safe manner (you don't want the random number to interfere with the normal behavior of OASIS). The best way to do this is to create a new CGI variable (let's use "cb") and tack it on to the OASIS URL:
<A HREF="http://oasis.yourdomain.com/oasisc.php?s=35&w=468&h=60&cb=123456"><IMG SRC="http://oasis.yourdomain.com/oasisi.php?s=35&w=468&h=60&cb=123456" WIDTH=468 HEIGHT=60 BORDER=0></A>
There are different ways to add this random number. If you can afford the CPU cycles, you can use a program to generate a new random number each time a visitor loads a page (and using SSI to include it on the page). If your pages are dynamically generated, you can use your programming language's features to include the random number. You can have static SSI files that are rewritten periodically by a process running on your Web server. Or you can have a program rewrite the pages themselves. Use whatever method suits your site best.
oasisi.php
and
oasisc.php
URLs in an impression/clickthrough pair.
Generally, the value is added dynamically via Javascript or server-side scripting. It should be unique (or at least picked randomly from a large enough range that collisions are unlikely).
Another benefit of IIDs is that you can use two banners of the same section and dimension on a single page as long as their IIDs are different. Without IIDs, OASIS would not be able to accurately deliver clickthroughs in such a scenario.
As a final advantage, the IID will help with cache busting (see above).
<A HREF="http://oasis.yourdomain.com/oasisc.php?s=35&w=468&h=60&iid=6879543"><IMG SRC="http://oasis.yourdomain.com/oasisi.php?s=35&w=468&h=60&iid=6879543" WIDTH=468 HEIGHT=60 BORDER=0></A>
c
CGI parameter to specify the exact
creative to run. If you do this, you must pass the l
(lowercase "L") parameter as well to force the script to log the impression.
<A HREF="http://your.server.name/oasisc.php?c=27&s=52"><IMG
SRC="http://your.server.name/oasisi.php?c=27&s=52&l=1" BORDER=0
ALT="My Creative"></A>
Note that if you link directly to creatives, you should not schedule the creatives for specific impression numbers, since the delivery engine will not have good control over how many times the creative gets delivered.
Since Netscape Navigator will not honor the IFRAME tag, you have to provide a backup tag. MSIE will ignore the backup tag and will only display the IFRAME content.
Here's an example:
<IFRAME SRC="http://oasis.yourdomain.com/oasisi-i.php?s=35&w=468&h=60"
MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO
WIDTH=468 HEIGHT=60>
<A HREF="http://oasis.yourdomain.com/oasisc.php?s=35&w=468&h=60"><IMG
SRC="http://oasis.yourdomain.com/oasisi.php?s=35&w=468&h=60"
WIDTH=468 HEIGHT=60 BORDER=0></A>
</IFRAME>
MSIE will create a 468x60 IFRAME and fill it with content from
http://oasis.yourdomain.com/oasisi-i.php
.
Navigator will ignore the IFRAME tag and display what comes between the <IFRAME> and the </IFRAME> tags. This is a nice hybrid approach between method 1 and method 3. You get most of the advantages of embedded ad serving (for users of MSIE), with the convenience of a standalone ad server.
You can expand upon this method with the ILAYER tag, a Netscape-only tag. In the following example, Netscape will use the ILAYER section and ignore the NOLAYER section. IE will use the IFRAME section inside the NOLAYER section. Other browsers will fall through to the IMG tag between the IFRAME tags.
<NOLAYER>
<IFRAME SRC="http://oasis.yourdomain.com/oasisi-i.php?s=8&w=468&h=60"
WIDTH=468 HEIGHT=60 FRAMEBORDER="no" BORDER=0 MARGINWIDTH=0
MARGINHEIGHT=0 SCROLLING="no"><A
HREF="http://oasis.yourdomain.com/oasisc.php?s=8&w=468&h=60"><IMG
SRC="http://oasis.yourdomain.com/oasisi.php?s=8&w=468&h=60"
BORDER=0 WIDTH=468 HEIGHT=60></A>
</IFRAME>
</NOLAYER>
<ILAYER ID="layer1" VISIBILITY="hidden" WIDTH=468 HEIGHT=60></ILAYER><P>
<LAYER
SRC="http://oasis.yourdomain.com/oasisi-i.php?s=8&w=468&h=60"
WIDTH=468 HEIGHT=60 VISIBILITY="hidden"
onLoad="moveToAbsolute(layer1.pageX,layer1.pageY);clip.height=60;clip.width=468;visibility='show';"></LAYER>
When using IFRAMEs with rich media, you must be sure that the code for your rich media includes TARGET="_top" (or TARGET="_new") in every hyperlink. Otherwise, the clickthrough URL will open inside the IFRAME itself.
Some users have reported problems with the ILAYER tag in some versions of Netscape Navigator 4.7x. For more discussion on the topic, see https://sourceforge.net/forum/forum.php?thread_id=646644&forum_id=29988.
To do this, you must put the following tags at the very top of your document (don't even put in any whitespace before this code):
<?php require("/home/webdocs/oasis/oasisi-e.php"); $ad = get_creative(5, 468, 60, ''); ?>
In the call to get_creative()
, you pass the section
number, the width and height of the desired creative, and an optional
frame target.
It's critical that the code be the very first thing in the document, since the code may need to spit out a cookie for the user. With PHP, any whitespace preceding this block of code will be output to the user before the code is executed, thereby preventing the cookie from being set.
Once you've made the call to put the creative into a variable, you can place it on the page in this way:
<?php echo $ad; ?>If you have multiple sections on a single page (for example, "homepage left" and "homepage right"), you just need to get both ads into different variables in the first block of code:
<?php require("/home/webdocs/oasis/oasisi-e.php"); $ad1 = get_creative(5, 120, 90, ''); $ad2 = get_creative(6, 120, 90, ''); ?>
Then you can place the ads wherever you want with this:
<?php echo $ad1; ?>
and this:
<?php echo $ad2; ?>Specifying a frame target will generate an <A HREF> tag with a "TARGET" modifier. This works best for Image banners, but it can also work for rich media -- when OASIS serves rich media, it modifies any "A HREF" in the rich media to insert a "TARGET" modifier. Here's a sample call to
get_creative()
that specifies a frame target:
<?php require("/home/webdocs/oasis/oasisi-e.php"); $ad = get_creative(5, 120, 90, '_TOP'); ?>
get_creative()
can also accept an optional 5th argument
that specifies a particular creative (useful if you want to explicitly
specify the ad to run).
<SCRIPT LANGUAGE="JavaScript" SRC=http://oasis.yourdomain.com/oasisi-j.php?s=1&w=468&h=60"> </SCRIPT> <NOSCRIPT> <A HREF="http://oasis.yourdomain.com/oasisc.php?s=1&w=468&h=60"><IMG SRC="http://oasis.yourdomain.com/oasisi.php?s=1&w=468&h=60" WIDTH=468 HEIGHT=60 BORDER=0></A> </NOSCRIPT>
Note the NOSCRIPT section for browsers not supporting Javascript.