Ad Tagging PDF

Embed Size (px)

DESCRIPTION

247 Realmedia advertising tags

Citation preview

  • 24/7 Open AdStream - Ad Tagging

    24/7 Media, Inc. A WPP Company

    132 West 31st Street - 12th Floor, New York, NY 10001

    www.247media.com, +1.215.654.8376

    Legal Notice:

    This document and the information contained herein are intended only for the confidentialprofessional use of employees of 24/7 Media, Inc., its parent, subsidiaries, affiliates and theirrespective clients. Neither this document nor any of the information contained herein maybe copied, distributed to any other party or used for any other purpose by employees of 24/7Media, Inc. , its parent, subsidiaries, affiliates or their respective clients without the expresspermission of 24/7 Media, Inc. If you are not an intended recipient of this document, you arehereby notified that review, distribution and/or reproduction of this document is prohibited.

    24/7 Open AdStream is a registered trademark of 24/7 Media, Inc.

    24/7 Open AdStreammaterials 2013 24/7 Media, Inc.

  • Table of Contents

    Understanding Ad Tags and Positions 5

    Ad Delivery Types 5

    Understanding Ad Tags and Positions 7

    Ad Delivery Types 7

    Types of Taxonomy 9

    What is Taxonomy? 10

    When to Use Taxonomy 11

    Understanding Web Site Structure and Ad Tags 12

    Structure Example 12

    Worksheet 13

    Tag Type Comparison 14

    Position Naming Conventions (NX, JX, RX) 16

    Simple Position 16

    Multi-Position 16

    NX Multiple Position Tag Examples 17

    Browser Capability 18

    Virtual Ad Tags 19

    Working with MJX 20

    MJX Delivery 20

    Coding for MJX Delivery 21

    MJX Code Section Descriptions 23

    Drawbacks of Using JavaScript to Generate OAS_sitepage: 24

    MJX Components Descriptions 25

    Position Description and Setup 26

    Display 26

    Additional Browser Types and MJX Delivery 27

    Positions in Ad Calls and Setup Tags 27

    Sample of MJX Code Without Comments 28

    Working with JX 30

    - 1 -

  • JX Delivery 30

    Coding for JX Delivery 31

    JX Code Section Descriptions 32

    JX Components Descriptions 32

    SX Tag Overview 35

    Requirements: 35

    Benefits: 35

    Drawbacks: 35

    Content Display Issues with IFrames 35

    Expected Behavior: 36

    Actual Behavior in Firefox and Safari (after several page refreshes): 36

    SX Code for Dynamically Generated Pages 38

    Optional Features: 39

    User Agent 39

    IP Address or Domain Name 39

    Unique Visitors 39

    User Profile 40

    Cookies 40

    Keywords 40

    SX Output Description 41

    Output Example: 41

    SX Output Notes 42

    Appendix - SX for Static Pages 43

    Sample SX Tag 43

    Section Descriptions: 43

    Tracking Keyword Targeted Banners 43

    Sample SX for Keyword 43

    Working with NX 45

    NX Delivery 45

    NX Tags 46

    - 2 -

  • NX Components Descriptions 46

    Cache-Busting with Random Numbers 48

    Working with RX 51

    RX Delivery 51

    Coding for RX Delivery 52

    RX Setup Code 52

    RX Setup Code Section Descriptions 52

    RX Position Code 54

    RX Position Code Components Descriptions 55

    Known Problems in RX Coding 56

    Using a Section 56

    RX Sample Setup Code Without Comments 56

    Tagging for Analytics 58

    Limitation 58

    Analytics in the NX Tag 58

    Analytics in the JX Tag 58

    Analytics in the MJX Tag 60

    Specialized Analytics Tags 61

    Transactions 61

    Error Pages 62

    Client Codes (UserIDs): 62

    No Analytics Tags: 63

    Image Maps and HTML Creatives 64

    HTML Ad Substitutions 65

    Dynamic HTML AD SUBSTITUTIONS 66

    More Redirection Options 67

    Additional __QUERY__ Option 67

    .ADS vs .CGI 68

    Ad Exclusion 69

    How it Works 69

    - 3 -

  • Implementation 69

    Tag Examples 70

    Position Names 74

    Passing Query Strings 76

    Cookies 77

    Analytics oas_analytics.js 80

    - 4 -

  • Understanding Ad Tags and Positions

    An Ad Tag is HTML code on a Web page that acts as a placeholder for inserting adver-tisements (Creatives) into the Web page. For a Single Position Creative, one Ad Tag isused to hold the place for one advertisement. For multiple Position creatives, theremay or may not be one Tag, but the multiple Tag still triggers decision making for allPositions. Each ad Tag is coded into the HTML source code of the page.

    The spot on the Page where an ad will be inserted is called a Position. Positions havenames that indicate the approximate location of the ad on the Page (example: Top, Bot-tom or Middle). 24/7 Open AdStream (24/7 Open AdStream) Ad Tags correspond tospecific types of Ad Delivery.

    l About Using Position Names - 24/7 Open AdStream recognizes a finitenumber of different Position names on a single web Page: The current 24/7 OpenAdStream has 128 usable Position names (See Position Names for table of Posi-tion names that you can map for your own business practice). If you are deliv-ering multiple Campaigns to a Page, then each Position on that web Page musthave a unique name so that 24/7 Open AdStream can differentiate among them.

    l Case Sensitivity - Unless specified otherwise, it is best to assume that thecode used in ad Tags is case sensitive. It is therefore safest to use consistentspelling as regards to the case of letters.

    Important: Position abbreviations in tags are not allowed. Tags created with position abbre-viations will be displayed as "blank", or generate errors.

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    Ad Delivery Types24/7 Open AdStream supports several types of ad Tags. These different Tags are usedin different modes of 24/7 Open AdStream delivery in order to take advantage of dif-ferent capabilities. The most common types of delivery are NX, JX, MJX and RX. Eachtype has its own corresponding Tags or uses a collection of Tags. The following is abrief description of each:

    Delivery Description

    NX NX Delivery is the simplest and employs the simplest of Tags. 24/7Open AdStream does not need to be on the same webserver as thecontent in order to make use of NX Delivery. This means that NXTags may be placed on any web Page and 24/7 Open AdStream candeliver ads into it. The users Browser does not need to have Java-Script enabled. NX Tags do not deliver Rich Media.

    JX JX Delivery allows flexibility through JavaScript and a collection ofdifferent ad Tags: JX, NX and SX Tags. 24/7 Open AdStream does

    - 5 -

  • Delivery Description

    not need to be on the same webserver as the content in order tomake use of JX Delivery. This means that any web site may useyour JX code on their Pages, and you can deliver advertising forthem from your 24/7 Open AdStream server. Furthermore, JX isable to deliver remote Rich Media, but only to Browsers that haveJavaScript enabled. The users Browser must have JavaScript ena-bled (except for the delivery of Rich Media).

    MJX MJX Delivery makes a call to the 24/7 Open AdStream server onlyonce and with all the Positions. This Delivery allows flexibilitythrough JavaScript and a collection of different ad Tags: JX, NXand SX Tags. 24/7 Open AdStream does not need to be on thesame web server as the content in order to make use of MJX Deliv-ery. This means that any web site may use your MJX code on theirPages, and you can deliver advertising for them from your 24/7Open AdStream server. Furthermore, MJX is able to deliverremote Rich Media, but only to Browsers that have JavaScript ena-bled. The users Browser must have JavaScript enabled.

    RX RX Delivery allows flexibility due to its combined use of JavaScriptand 24/7 Open AdStream ad Tags. JavaScript in the ad Tag codeboth tests the Visitor's Browser and enables the remote delivery ofRich Media. 24/7 Open AdStream does not need to be on the sameweb server as the content in order to make use of RX Delivery.This means that any Web site may use your RX code on one (ormore) of their Pages, and you can deliver advertising for themfrom your 24/7 Open AdStream server. RX has the same limitationas JX when it comes to Browsers that do not have JavaScript ena-bled, but RX is superior in its cache-defeating application. The use-rs Browser must have JavaScript enabled.

    - 6 -

  • Understanding Ad Tags and Positions

    An Ad Tag is HTML code on a Web page that acts as a placeholder for inserting adver-tisements (Creatives) into the Web page. For a Single Position Creative, one Ad Tag isused to hold the place for one advertisement. For multiple Position creatives, theremay or may not be one Tag, but the multiple Tag still triggers decision making for allPositions. Each ad Tag is coded into the HTML source code of the page.

    The spot on the Page where an ad will be inserted is called a Position. Positions havenames that indicate the approximate location of the ad on the Page (example: Top, Bot-tom or Middle). 24/7 Open AdStream (24/7 Open AdStream) Ad Tags correspond tospecific types of Ad Delivery.

    l About Using Position Names - 24/7 Open AdStream recognizes a finitenumber of different Position names on a single web Page: The current 24/7 OpenAdStream has 128 usable Position names (See Position Names for table of Posi-tion names that you can map for your own business practice). If you are deliv-ering multiple Campaigns to a Page, then each Position on that web Page musthave a unique name so that 24/7 Open AdStream can differentiate among them.

    l Case Sensitivity - Unless specified otherwise, it is best to assume that thecode used in ad Tags is case sensitive. It is therefore safest to use consistentspelling as regards to the case of letters.

    Important: Position abbreviations in tags are not allowed. Tags created with position abbre-viations will be displayed as "blank", or generate errors.

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    Ad Delivery Types24/7 Open AdStream supports several types of ad Tags. These different Tags are usedin different modes of 24/7 Open AdStream delivery in order to take advantage of dif-ferent capabilities. The most common types of delivery are NX, JX, MJX and RX. Eachtype has its own corresponding Tags or uses a collection of Tags. The following is abrief description of each:

    Delivery Description

    NX NX Delivery is the simplest and employs the simplest of Tags. 24/7Open AdStream does not need to be on the same webserver as thecontent in order to make use of NX Delivery. This means that NXTags may be placed on any web Page and 24/7 Open AdStream candeliver ads into it. The users Browser does not need to have Java-Script enabled. NX Tags do not deliver Rich Media.

    JX JX Delivery allows flexibility through JavaScript and a collection ofdifferent ad Tags: JX, NX and SX Tags. 24/7 Open AdStream does

    - 7 -

  • Delivery Description

    not need to be on the same webserver as the content in order tomake use of JX Delivery. This means that any web site may useyour JX code on their Pages, and you can deliver advertising forthem from your 24/7 Open AdStream server. Furthermore, JX isable to deliver remote Rich Media, but only to Browsers that haveJavaScript enabled. The users Browser must have JavaScript ena-bled (except for the delivery of Rich Media).

    MJX MJX Delivery makes a call to the 24/7 Open AdStream server onlyonce and with all the Positions. This Delivery allows flexibilitythrough JavaScript and a collection of different ad Tags: JX, NXand SX Tags. 24/7 Open AdStream does not need to be on thesame web server as the content in order to make use of MJX Deliv-ery. This means that any web site may use your MJX code on theirPages, and you can deliver advertising for them from your 24/7Open AdStream server. Furthermore, MJX is able to deliverremote Rich Media, but only to Browsers that have JavaScript ena-bled. The users Browser must have JavaScript enabled.

    RX RX Delivery allows flexibility due to its combined use of JavaScriptand 24/7 Open AdStream ad Tags. JavaScript in the ad Tag codeboth tests the Visitor's Browser and enables the remote delivery ofRich Media. 24/7 Open AdStream does not need to be on the sameweb server as the content in order to make use of RX Delivery.This means that any Web site may use your RX code on one (ormore) of their Pages, and you can deliver advertising for themfrom your 24/7 Open AdStream server. RX has the same limitationas JX when it comes to Browsers that do not have JavaScript ena-bled, but RX is superior in its cache-defeating application. The use-rs Browser must have JavaScript enabled.

    - 8 -

  • Types of Taxonomy

    There are two types of taxonomy: Ad Taxonomy and Analytics Taxonomy.

    Ad Taxonomy is also described as Auto Taxonomy, and requires no tagging changes toyour site. The data for the name/value pairs is pulled from the Page definition.

    Example:

    www.news.com/sports/football/nfl/Steelers/teamstats.html@Top

    The Ad Taxonomy would be:

    Ad_Site=www.news.comAd_Level_One=sportsAd_Level_Two=footballAd_Level_Three=nflAd_Level_Four=SteelersAd_Page=teamstats.htmlAd_Position=Top

    Analytics Taxonomy is arbitrary, meaning the customer defined name/value pairs.These name/value pairs are not validated. The pairs are assumed to be what the clientwants, so long as the attribute (e.g., Author) is pre-configured. Namely, if the clientpasses:

    Author=ErnestHem

    The system will assume this is what was intended.

    Additionally, the attributes and values that get passed to the taxonomy data are caseinsensitive. Namely, if the Page data is:

    www.news.com/sports/football/nfl/Steelers/teamstats.html@Top

    -or-

    www.news.com/sports/football/nfl/steelers/teamstats.html@Top

    Ad_Level_Four would be stored and displayed as Steelers, since it was learned first.Similarly for Analytics Taxonomy, if you pass:

    Team=Steelers

    -or-

    Team=steelers

    It would be displayed and stored as Team=Steelers, since this name/value pair waslearned first.

    - 9 -

  • What is Taxonomy?

    Regardless of the type of Taxonomy, the Analytics Module must be purchased as anadd-on, in order to enable this feature.

    Taxonomy is a powerful feature of 24/7 Open AdStream that allows you to describeyour Ad Tag and Content with name/value pairs that arent part of the Ad Delivery deci-sion. Simply speaking, if an ad is targeted to a Page such as:

    www.news.com/sports/football/nfl/Steelers/teamstats.html@Top

    Taxonomy allows you to describe this with any number of arbitrary name/value pairs,such as:

    Author=Ernest%20HemingwaySource=Daily%20News

    When taxonomy is added to the 24/7 Open AdStream Tag, it is surrounded by XE& and&XE in the 24/7 Open AdStream Query string.

    The final 24/7 Open AdStream Tag with taxonomy is

    www.news.com/sports/football/nfl/Steelers/teamstats.html@Top?XE&Author=Ernest%20Hemingway&Source=Daily%20News&XE

    The number of name/value pairs is not limited. The attributes need to be pre-con-figured, but the values do not. The general limit to taxonomy is only placed on the clien-ts ability to generate meaningful data.

    Benefits of taxonomy include being able to create segments based on Visitors inter-actions with the taxonomy, as well as targeting Ads to such segments.

    - 10 -

  • When to Use Taxonomy

    Taxonomy can be used for several purposes, but should be used with care. By intro-ducing Analytics Taxonomy (new name/value pairs), or enabling Ad Taxonomy (auto-determination of name/value pairs from Page definition), Additional data points arecreated to which the log processing efforts must attend. Also, in considering intendedgoals, keep in mind whether it is intended to include the Analytics Taxonomy withevery Impression, with one Ad Tag on your Page, or as a standalone Tag that is unas-sociated with the chosen Ad Tag

    Based on the above, here are some specific cases where it makes sense to use tax-onomy:

    l Describing Ad Tags - Taxonomy allows you to describe your Ad Tags withmore descriptive language. If your site is built using dynamic content via anapplication server, chances are you have the ability to describe the content veryrichly. Taxonomy allows you to describe the ad that was served by more thanjust page@position. It allows you to describe in the language that is used by yourcompany.

    l Segmentation - 24/7 Open AdStream allows you to build segments that profileyour Visitors. One way that segments are built is based on taxonomy data, usingqualifications such as a Visitor has to have visited a Page with taxonomy includ-ing Team=Steelers ten (10) times to become a member of the client-definedNFL Fan segment. This type of segment can be built only by using taxonomy.

    l Describing Content - You can also use taxonomy to describe and report on thecontent itself, rather than in strictly describing the Ad Content. This is tra-ditionally referred to as web Analytics. The Tag itself can be standalone and bedescriptive only of the content.

    l Additional Metrics - In an AdServing context, pageviews are difficult to track,since a given Page may have many Impressions. By using separate taxonomyand Analytics Tags for Pages with multiple Impressions, you can more accu-rately measure Pageviews and other metrics since it treats the entire content ofan HTML document as one (1) Pageview.

    - 11 -

  • Understanding Web Site Structure and Ad Tags

    Your Web site URL structure relates to the URL in your Ad Tags. 24/7 Open AdStreamtypically delivers ads onto your web Pages based upon the URL structure of your Sitesand Pages.

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    Structure ExampleA typical news site, such as http://www.news.com, might contain the following top-level URL structure, which contains all of the 1000+ web Pages of the entire news.comweb site:

    www.news.com/sportswww.news.com/worldwww.news.com/nationwww.news.com/localwww.news.com/businesswww.news.com/lifewww.news.com/classifieds

    There is a distinction between a directory like the URLs above and a sub-directory(or "child") such as:

    www.news.com/sports/football

    and a Page (also known as a "child"), such as:

    www.news.com/sports/football/nfl/Steelers/teamstats.html

    Like the URLs above, the URLs in your NX and JX Ad Tags need to reflect the structureof your Web site.

    For example, the NX Tag at the top of http://www.news.com/sports will read:

    < A HREF="http://www.news.com/RealMedia/ads/click_nx.ads/www.news.com/sports@Top">< IMG SRC="http://www.news.com/RealMedia/ads/adstream_nx.ads/www.news.com/sports@Top">

    The URL information contained in your Ad Tags should reflect how you package and sellads on different parts of your Web site. If you sell entire directories of your web site,then your Ad Tags only need to contain the directory structure, such as:

    www.news.com/sports

    If you package and sell specific Pages on your web site, then the Ad Tags on thosePages should reflect the actual URL of the Page, such as:

    www.news.com/sports/football/nfl/Steelers/teamstats.html

    - 12 -

  • Note: The level of specificity in your Ad Tags (whether they include Pages or directories) will impact the wayyou are able to schedule Campaigns to specific Pages/directories. This also impacts the Page/directory break-down in your reports.

    WorksheetAs an excellent tool for planning your Web site structure, below is an Excel spread-sheet that 24/7 Media Technical Services uses during the initial implementation phase.Clients are requested to complete the spreadsheet before creating "Sites" and "Pages"under the Databases Top Line Menu Task Bar.

    This spreadsheet is available for download, and it is included in a zipped package withthe Ad Tagging Guide. Contact your Account Manager if you have questions aboutaccessing this file.

    - 13 -

  • Tag Type Comparison

    Each 24/7 Open AdStream installation simultaneously supports all delivery modes. Themanner in which you deploy 24/7 Open AdStream on your WebServer determineswhich delivery modes and accompanying Ad Tags you can use. The most convenientmethod can be used to satisfy your delivery requirements.

    The JX, MJX and RX Tag types have the ability to write to the HTML Page that is beingdelivered, while the NX Tag type cannot write directly to the HTML Page being deliv-ered. The ability to write directly to the HTML Page allows 24/7 Open AdStream to:

    l Insert any type of HTML onto the Page, such as an HREF, IMG SRC, tables,forms, Java, Java Script, Enliven and content.

    l Insert a random number into the HTML to defeat caches.l Insert the actual Click-Through into the HTML Page to guarantee accurate Click-

    Through results.l Insert extra HTML (for example, text links, line breaks, borders, height and

    width Tags, and alt text).

    Note: When using a Rich Media creative, the Alt Text field in the creative section cannot contain singlequotes. Single quotes in this scenario, breaks the creative from displaying.

    Feature JX MJX RX NX

    Companion Ad Delivery Yes w/Multi

    Yes Yes w/Multi

    Yes w/NXMulti-Ad

    Deliver w/ Page Positions Yes Yes Yes Yes

    Ad Banner Positions (Ad Page) Yes Yes Yes Yes

    Deliver HTML Banners Yes Yes Yes No

    Extra HTML Code (Ad Page) Yes Yes Yes Yes, buthard codedin the Tag.

    Alt Text (Ad Page) Yes Yes Yes No

    ISMAP (Server-Side Image Map) Yes Yes Yes No

    Static HTML Code On Web Site Yes Yes Yes Yes

    Campaign Category Conflict Yes w/Multi

    Yes Yes w/Multi

    Yes with NXMulti-Ad

    Prevent Campaign Repeat Yes w/Multi

    Yes Yes w/Multi

    Yes with NXMulti-Ad

    Deliver Banners To RemotePages

    Yes Yes Yes Yes

    - 14 -

  • Click-Through Reliability Perfect Perfect Perfect Very Goodwith Ran-domNumber; butReliabilityDecreasesOver Time

    Shared Memory Usage Frequenc-y

    Frequenc-y

    Frequenc-y

    All Images,Click URLandFrequency

    Cache Busting Built-In Yes withJava-Script

    Built-In(moreeffectivethan JX)

    Yes withJavaScript

    Redirect For Creative Yes Yes Yes Yes (butincom-patible withcache-bust-ing)

    Banner Delivery To BrowsersWithout Javascript

    No No No Yes

    Analytics Reports Yes w/Si-ngle Call

    Very good Yes w/Si-ngle Call

    Yes w/Si-ngle Call

    NX should be used with a random URL (a random number inserted into the HREF andIMG SRC) to ensure accurate Click-Through processing. This is particularly for userscoming from proxy servers which do not accept cookies.

    - 15 -

  • Position Naming Conventions (NX, JX, RX)

    Important: Position abbreviations in tags are not allowed. Tags created with position abbre-viations will be displayed as "blank", or generate errors.

    Simple PositionThe simplest Tags are those that indicate one Position per Tag.

    Example: A simple NX Tag for the URL http://ww-w.siteaddress.com/news/local/index.html would look like:

    This Tag conforms to the PageURL@Position format. The second occurrence ofwww.address.com in each line is part of the PageURL@Position information that ispassed to the Delivery Engine to request a banner. In this case, the Page is theindex.html in the news/ directory of this particular domain.

    Multi-PositionYou can also use a PositionList format (also known as the "multi-Position format) forAd Tags. The @Position for each Ad Call is replaced by the following syntax:

    PositionList!Position

    Using this syntax, each call to the Delivery Engine lists all the Positions on the Page, anexclamation mark, and then finally the current Position. This syntax does not only sup-port multi-Positions. This syntax allows for coordinated Ad Delivery since it helps theDelivery Engine have a better picture of the Page so that it can pick the most appro-priate ads (particularly if competitive Positions or companion delivery is desired).

    Below is how the Position information would appear for three Positions on the samePage:

    Position1,Position2,Position3!Position1Position1,Position2,Position3!Position2Position1,Position2,Position3!Position3

    24/7 Open AdStream makes Ad Delivery decisions according to the order of Positionsin the PositionList. Therefore, the PositionList must be identical for each Tag onthat specific Page.

    Let's look at an actual example where this syntax is used. The first box shows the NXTag for delivering a banner to the Top Left of a Page. The second box shows the NX Tagfor delivering to the Top Right of the same Page (This Tag would appear later in thePage HTML.).

    - 16 -

  • NX Multiple Position Tag Examples

    NX Tag for Top Left Delivery:

    NX Tag for Top Right Delivery:

    The components in the code for the TopLeft Position are as follows:

    Component Description

    PositionList This is a comma-delimited list of all thePositions found on the Page. In the NX Tagexamples, the list of Positions on the Tar-get Page is: @TopLeft,TopRight!

    Position The actual Position for a particular ad. Inthe first example, that Position is: TopLeft.

    Query This component only applies to the use ofNX Tags. Adding ?x after the Position pro-vides a cache busting query. This querywill not work if the User clicks on theBrowser Back arrow or Forward arrow.

    - 17 -

  • Browser Capability

    For more detailed information regarding Browser capability, refer to the followingURLs:

    Note: The following URLs are functional as of the last date accessed. Furthermore, 24/7 Media makes noclaim as to the accuracy of these sites. Their addresses are provided as an additional reference for infor-mation purpose only.

    AnyBrowser.com Your Source for Browser Compatibility Verification. (April 2007).

    http://www.anyBrowser.com/

    AOL webmaster Info: Browser Compatibility. (April 2007).

    http://webmaster.info.aol.com/compatibility.html

    Wikipedia: web Browser Comparison (April 2007).

    http://en.wikipedia.org/wiki/Comparison_of_web_Browsers

    BestLinks: Comparison of web Browsers (April 2007).

    http://www.thebestlinks.com/Comparison_of_web_Browsers.html

    WESTCIV: web Standards Software and Learning (April 2007).

    http://www.westciv.com/style_master/academy/Browser_support/

    UWYN: Browser Compatibility Chart (April 2007).

    http://www.uwyn.com/projects/relativelayers/documentation/a4821.html

    - 18 -

  • Virtual Ad Tags

    To structure Ad Delivery onto a Web Site differently, a virtual URL can be inserted intothe Ad Tag to force 24/7 Open AdStream to infer different information about the WebPage than it would infer from the actual URL and the default settings. This may be nec-essary when the actual URL does not fit within the simple Site and Page structure usedto package the Web Site for Ad Delivery. For instance, the URL may lack structurebecause it is output from a database or generated by a CGI.

    By inserting a virtual URL into the Ad Tag you can force any web Page to fit into a sim-ple Ad Delivery structure for your Web site. A virtual URL may be inserted according tothe following syntax:

    Virtual Ad Tags may also be inserted into the HREF and IMG SRC of NX Tags.

    - 19 -

  • Working with MJX

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    MJX DeliveryMJX is a hybrid Tag in that it supports remote delivery (like NX), as well as the deliv-ery of HTML Creatives. MJX delivery relies on JavaScript to test the Visitor's Browserand determine what type and version is in use. This means that the Visitor musthave JavaScript enabled in the Browser. Otherwise, the Browser will not display an ad.

    MJX delivery works as follows:

    1. The Visitor's Browser requests a web Page from the Content Server.2. The Content Server delivers the web Page and the Visitor's Browser renders the

    requested Page.3. While rendering the delivered Page, the Visitor's Browser encounters MJX code.

    The MJX code includes a JavaScript that tests the Visitor's Browser.4. According to the JavaScript decision, the Browser then requests the appropriate

    ad(s) to be delivered from the 24/7 Open AdStream server:

    a. If the Visitor's Browser does not have JavaScript enabled, then theBrowser will not be able to display the ad.

    b. If the Visitor's Browser does have JavaScript enabled, and the Java-Script test reveals that it is an older Browser, then the Browser willmake multiple calls for the multiple Positions requested, delivering aGIF or JPEG banner.

    c. If the Visitor's Browser does have JavaScript enabled, and the Java-Script test reveals that it is a newer Browser capable of HTML deliv-ery, then the Browser will make one call for all multiple Positionsrequest, delivering the HTML Creatives in multiple Positions from theremote server. This HTML can be in the form of complete HTML Cre-atives, or a set of ad Tags (HTML replacement) that will make thefinal remote call for the Creatives.

    5. The appropriate Ads are delivered and the Browser renders them with the Page.If an HTML Creative is requested, the Browser will download it without opening anew Browser window.

    When the Visitor clicks on the delivered image, the HREF requests a Click-Through URLfrom 24/7 Open AdStream for the clicking Visitor. 24/7 Open AdStream rememberswhat ad was delivered and then redirects the Visitor to the appropriate Click-ThroughURL.

    Schematic Representation of MJX Delivery

    - 20 -

  • Note: The MJX tag is loaded within the header of the page. Therefore, Open AdStream will count impres-sions for all positions indicated within the tag - at the time the tag is called. If the user abandons the pageprior to all of the content loading, impressions that have not been displayed will still be counted when usingthe MJX tag.

    Coding for MJX DeliveryMJX Delivery relies on a combination of NX, JX and SX Tags to perform remote deliv-ery. Specific Browser types recognize and use only specific lines of the code. Below isa sample of MJX code with comments. Refer to MJX Code Section Descriptions and MJXCode Component Descriptions for explanations of the inserted comments (also refer tothe Sample of MJX Code Without Comments).

    OAS_url = 'http://server/RealMedia/ads/';

    - 21 -

  • OAS_sitepage = 'www.247media.com/index.html';//OAS_sitepage = window.location.hostname + window.location.pathname;

    OAS_listpos = 'Top,Bottom';

    OAS_query = '';

    OAS_target = '_top';//end of configuration

    OAS_version = 10;

    OAS_rn = new String (Math.random()); OAS_rns = OAS_rn.substring (2, 11);

    function OAS_NORMAL(pos) {document.write(''); document.write('');}//-->

    OAS_version = 11;

    if ((navigator.userAgent.indexOf('Mozilla/3') != -1) ||(navigator.userAgent.indexOf('Mozilla/4.0 webTV') != -1))OAS_version = 10;

    OAS_listpos + '?' + OAS_query + '">');//-->

    function OAS_AD(pos) {if (OAS_version >= 11)

    - 22 -

  • OAS_RICH(pos);elseOAS_NORMAL(pos);

    }//-->

    MJX Code Section Descriptions

    Action Additional Comments

    (1) Initialize the URL for the webserver

    (2)(3)

    Initialize the site/page Comment or uncomment your choiceDefault: Initialize with a fixed site/Page.Optional: Initialize with the name of the cur-rent Page (JavaScript function). Refer to theDrawbacks of Using JavaScript to GenerateOAS_sitepage section.

    (4) Initialize the list of positions

    (5) Initialize the query This field is used to pass query informationto the delivery (keyword, )OAS_query = 'keyword=music';OAS_query = 'key-word=music&otherparam=value';If wishes not passing any query to 24/7 OpenAdStream:OAS_query= &if wishes to target keyword from query

    - 23 -

  • Action Additional Comments

    string in the referral URL. OAS_query= ;

    (6) Initialize the target This is only for the NX Tags

    (7) Initialize the version of Java-Script to 10

    (8) Initialize the random number -- This line is for the Netscape Browser Ver-sion 2 and lower, where the function 'ran-dom' is not supported.-- The Browser displays a warning for thefunction 'random' and after the banner is cor-rectly displayed.

    Calculate the random number

    (9) Function OAS_NORMAL This function is the "Coordinated NX" code. Itdoes not support rich media banners.

    (1-0)

    Initialize the version of Java-Script to 11

    This line is used if the Browser supports theJavaScript 1.1 version

    (1-1)

    Set the version of JavaScript to10 for a Browser 'Mozilla/3' onwebTV

    This Browser does not support the Tag

    (1-2)

    Call the delivery with the MJXcode with all positions

    This call is done via the Tag and the result is that this line isreplaced by a function JavaScript OAS_RICH(position) with the code for each Position.For the asp Page, separate the "doc-ument.write('

  • location bar (as typed by the Viewer) does not match the Site, as it is defined in the24/7 Open AdStream Database, then this method will fail as the wrong Site Name mayshow up in the URL. (e.g., consider a Site that can be referenced by bothhttp://www.site.com and http://site.com.)

    One could get around this problem by defining an entry for every possible URL thatcould access the Site in the 24/7 Open AdStream Database. That would be time-con-suming to setup and difficult to maintain, particularly when you consider that the 24/7Open AdStream Database is case-sensitive.

    If you must use the JavaScript method, please consider this workaround:

    1. Enter the Canonical Domain Name of the Site as the 24/7 Open AdStream Data-base entry.

    2. Have your Site Administrator configure the Web Server so that when a viewertries to access the Site via any valid URL, the Web Server will redirect him to theCanonical Domain Name.

    This redirection will occur before the JavaScript tries to generate the OAS_sitepage,which means that the JavaScript will be working with a correctly defined URL.

    MJX Components Descriptions

    Below is a description of the components used in MJX Coding. These components canbe seen in the Sample MJX Code. Each component should be replaced in the code withthe requested information, as it is specific to your implementation (also refer to theMJX Code Section Descriptions).

    MJX Component Description

    OAS_url Found in Section 1 of the code. It specifies the loca-tion of the 24/7 Open AdStream Delivery Engine.Replace the value server with the name of yourwebserver. If you are using the 24/7 OpenAdStream Central product, refer to the CNAMEInstructions document.

    OAS_sitepage Found in Section 2 of the code. It specifies thePage to which the Ad(s) will be delivered. Replacethe URL (in this case,www.247media.com/index.html) with the spe-cific name of the Site and the Page.

    OAS_listpos Found in section 3 of the code. It specifies the listof all Positions on the Page. Replace this list (Top,Bottom) with all of the specific Positions in thePage. It should be noted that Impressions arecounted for all the Positions listed in this variable,regardless of any Campaigns which are scheduledto those Positions. Also, having additional Posi-

    - 25 -

  • MJX Component Description

    tions, which are not called on the Page, can resultin discrepancy issues. Hence, it is recommendedto only include the Positions which exist on thePage.

    click_nx.ads For non-JavaScript Browsers, the NX Click-Through call (click_nx.ads) executes the 24/7Open AdStream function that redirects the Visitor'sclick to the Click-Through URL.

    adstream_nx.ads For non-JavaScript Browsers, this Image call(adstream_nx.ads) executes the 24/7 OpenAdStream function that delivers a Banner Ad.

    adstream_mjx.ads For JavaScript Browsers, this call (adstream_mjx.ads) to the Ad Server executes a 24/7 OpenAdStream function that returns the appropriateHTML for Ad Delivery.

    OAS_AD Found in Section 15 of the code, and is repeatedfor each individual instance of an Ad location onthe Page. In each case, replace the location value(example: Top) with the specific Position for theAd.

    Position Description and Setup

    Important: Position abbreviations in tags are not allowed. Tags created with position abbre-viations will be displayed as "blank", or generate errors.

    The MJX Tag calls the 24/7 Open AdStream Delivery only one time with all Positions(include the adstream_mjx.ads string in the code with all Positions).

    Example:

    http://server/RealMedia/ads/adstream_mjx.ads/www.247media.com/index.html/1234@Top,Bottom

    This call returns each Position in this example, Top and Bottom in a JavaScript func-tion:

    OAS_RICH(Position){if(Position =='Top'){code javascript to display the banner at the Position Top}if(Position == 'Bottom'){code javascript to display the banner at the Position Bottom}}

    Display

    For each Position, there is a call to the function OAS_AD.

    - 26 -

  • Example:

    OAS_AD('Top')OAS_AD('Bottom')

    This function tests the version of JavaScript:

    Version JavaScript >= 11-- OAS_RICH(Position);Version JavaScript < 11-- OAS_NORMAL(Position);

    This function is a "Coordinated NX" (it does not support Rich Media).

    Browser Delivered By Image Ads HTMLRich Media Ads

    Netscape 4.x and later JX Tags via yes yes

    Netscape 3.x NX Tags yes no

    Netscape 2.x NX Tags yes no

    Netscape 1.x and earlier NX Tags yes no

    MSIE 4.x and later JX Tags via yes yes

    MSIE 3.x JX Tags via yes yes

    MSIE 2.x NX Tags yes no

    MSIE 1.x and earlier NX Tags yes no

    Text-only Browsers NX Tags yes no

    Additional Browser Types and MJX Delivery

    Browser Delivered By Image Ads HTMLRich Media Ads

    Opera 4.01 JX Tags via yes yes

    web TV 2.0 or 2.2 NX Tags yes no

    Hot Java 3.0 JX Tags via yes yes

    Positions in Ad Calls and Setup Tags

    The number of Positions in the actual MJX Ad Call should match the number of Positionsin the Setup Tag. This is due to the fact that an MJX Tag logs the Ad Delivery for all Posi-tions as soon as the Setup Call is completed. Failure to follow this guideline can lead tobilling issues.

    - 27 -

  • Sample of MJX Code Without Comments

    This is the same code as seen in the Sample MJX Code, but comments and extra linebreaks have been removed.

  • OAS_AD('Top');//-->

    - 29 -

  • Working with JX

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    JX DeliveryJX is a hybrid Tag in that it supports remote delivery (like NX), as well as delivery ofHTML Creatives. JX delivery relies on JavaScript to test the Visitor's Browser and deter-mine what type and version is in use. This means that the Visitor must have Java-Script enabled in the Browser. Otherwise, the Browser will not display an Ad.

    JX delivery works as follows:

    1. Visitor's Browser requests a Web Page from the Content Server.2. The Content Server delivers the Web Page and the Visitor's Browser renders the

    requested Page.3. While rendering the delivered Page, the Visitor's Browser encounters JX code.

    4. The appropriate Ads are delivered and the Browser renders them with the Page.If an HTML Creative is requested, the Browser will download it without opening anew Browser window.

    When the Visitor clicks on the delivered image, the HREF requests a Click-Through URLfrom 24/7 Open AdStream for the clicking Visitor. 24/7 Open AdStream rememberswhat ad was delivered and then redirects the Visitor to the appropriate Click-ThroughURL.

    Schematic Representation of JX Delivery

    - 30 -

  • Coding for JX DeliveryJX Delivery relies on a combination of NX and JX Tags in order to perform remote deliv-ery. Specific Browser types recognize and use only specific lines of the code. Below isa sample of JX code. Refer to JX Code Section Descriptions and JX Component Descrip-tions for further explanations.

  • // -->

    JX Code Section Descriptions

    JX Code Section Description

    Section 1 In the first section, A portion of Javascript writes a tag using document.writes (an adstream_jx.ads call is used as the src value of the generated tag). This segment can be executed by allGrade-A browsers.

    Section 2 In the Second Section, an image tag wrapped in ananchor tag is used. (an adstream_nx.ads call isused as the src value in the tag; a click_nx.ads call is used as the href value in the tag.This tag will only deliver simple image creativesuploaded as creative files. This segment will onlyexecute if Javascript is disabled or not supported.

    JX Components Descriptions

    Here are descriptions of the various HTML components used in the Coding of JX Deliv-ery section.

    JX Component Description

    24/7 Open AdStreamDelivery Engine Location

    This is the path (domain and directory) to where 24/7Open AdStream is running. In our example above, it ishttp://www.oasaddress.com/RealMedia/ads. You mustreplace www.oasaddress.com with the actual domainwhere your copy of 24/7 Open AdStream is running.

    adstream_jx.ads The JX call (adstream_jx.ads) instructs 24/7 Open

    - 32 -

  • JX Component Description

    AdStream to send the appropriate HTML in the form ofJavaScript to be inserted into the Page.

    pageURL Location This is the automatic insertion of the actual PageURL forAd Delivery. In the JX Coding example, This URL is rep-resented as PAGE, and you must replace it with theActual Page that should receive the Ad (example: www.s-iteaddress.com/Directory/page.html).

    @Position Defines the Position of an ad on the Web page. Refer toPosition Naming Conventions for more information.

    document.write This JavaScript command inserts HTML code directly intothe targeted web page. In this case, an IFRAME isinserted into the page, allowing the MSIE 3.x (or com-patible) Browser to download the HTML creative.

    click_nx.ads For non-JavaScript Browsers, the NX Click-Through call(click_nx.ads) executes the 24/7 Open AdStream func-tion that redirects the Visitor's click to the Click-ThroughURL.

    adstream_nx.ads For non-JavaScript Browsers, the NX image call(adstream_nx.ads) executes the 24/7 Open AdStreamfunction that returns the appropriate ad image.

    Important: Position abbreviations in tags are not allowed. Tags created with position abbre-viations will be displayed as "blank", or generate errors.

    JX Sample Setup Code Without Comments

    This is the same code as seen in the Sample JX Setup Code, but comments and extraline breaks have been removed.

    - 33 -

  • - 34 -

  • SX Tag Overview

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    SX delivery works as follows (refer to the figure):

    1. Visitor's Web browser requests a Web page. Following are passed from Visitor toContent Web Server: User Agent, Cookies, and all RM Cookies (RMID, etc.).

    2. The Web server makes a call to the OpenAdStream server to get the list of ads.Following are passed from Content Web Server to 24/7 Open AdStream: UserAgent, Cookies, RM Cookies, Keyword Profile (optional), and _RM_IP (optional).

    3. OpenAdStream returns the HTML code of the list of ads. Following are passedfrom 24/7 Open AdStream to the Content Webserver: All RM Cookies; of par-ticular note are the RMID Cookie and Frequency Cookies (new in 24/7 OpenAdStream 5.6 and up).

    4. The Web Server returns the requested page with the ad code for each position.The visitor's Web browser renders the requested page,which now includes theappropriate ads. Following are passed from the Content Web Server to the Vis-itor's machine: All RM Cookies.

    5. Visitor's browser is routed to the destination page directly through the 24/7 OpenAdStream Ad Server.

    Requirements:l The web pages must be dynamically generated.l The cache/proxy defeating for the ads depends on the page cache/proxy defeat-

    ing for the page.l In order for click-through to work properly, the 24/7 Open AdStream Ad Server

    must be outside of the Content Web Server's firewall.

    Benefits:l Fast for the user (the ads come with the page)l Easy to implement

    Drawbacks:Content Display Issues with IFrames

    Affected Browsers: Firefox (all versions), Safari (all versions)

    When delivering creative content on a page into an iframe, duplicate creatives or incor-rectly sized creatives may appear. The issue stems from the browser getting confusedabout where content should be pulled from; either the browser's cache - or from theserver.

    - 35 -

  • This is most often seen by a user who is constantly refreshing the page to get a screen-shot, or by a publisher who is constantly refreshing the page to update content.

    This is not normally encountered by users on the site, unless the site encourages a lotof refreshing. (AJAX style reloads of the iframe can also cause this issue).

    This is a browser issue - not an Ad Server (24/7 Open AdStream) issue.

    Refer to the expected behavior and actual behavior descriptions below:

    Expected Behavior:

    1. As the browser parses the page, it encounters a content request from a remoteserver.

    2. The browser checks its cache to see if it has pulled this content before, and if thecontent has expired.

    a. If the content has been pulled before, and has not expired, thebrowser loads the content from its cache.

    b. If the content has not been pulled before, or the content has expired,the browser will pull the content from the remote server.

    3. Each time the page is refreshed, this process should repeat.

    Actual Behavior in Firefox and Safari (after several page refreshes):

    1. The browser encounters a content request from a remote server.2. The browser checks its cache to see if it has pulled this content before, and if the

    content has expired.

    a. The browser will pull the content from its cache, assuming it hasalready served it before. This may result in duplicate content beingserved.

    b. The browser will pull content from its cache for the incorrect frame -This may result in an incorrectly sized creative serving in a frame.

    3. In either of the above cases, if you view the frame source - the source code willbe correct. However, you will see an incorrect creative.

    - 36 -

  • - 37 -

  • SX Code for Dynamically Generated Pages

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    In the SX code for dynamically generated pages, there is a single call:

    "http://OAS_SERVER/RealMedia/ads/adstream_sx.ads/www.site.com/PAGE?_RM_IP_=1.2.3.4"

    Reference the component description table below for details.

    Component Description

    24/7 Open AdStreamDelivery Engine

    This is the path (domain and direc-tory) to your instance of 24/7 OpenAdStream. In the example, thepath is posted as: http://OAS_SERVER/RealMedia/ads, where"OAS_SERVER" would be replacedwith the domain of the actualmachine that is running 24/7 OpenAdStream.

    adstream_sx.ads This code instructs 24/7 OpenAdStream to send the appropriateHTML in the form of anIFRAME/ILAYER to be inserted intothe page creating a new browserlayer within the page requiring noJavaScript.

    www.site.com This is the Site domain to which theCreative is to be delivered.

    PAGE This is the Page or directory towhich the Creative is to be deliv-ered. It is in the form of a Page@P-osition. Multiple positions areseparated by commas: page@Top,Bottom,Left

    ?_RM_IP_=

    Optional feature. Used to capturethe visitor's originating IP address.Content Web Server must capturethe Visitor's IP address, and pass itto the Ad Server in the form of: ?_RM_IP_=1.2.3.4

    - 38 -

  • Optional Features:Open AdStream has the ability to target user and to generate report on:

    l HTTP User Agent (User operating system and browser)l IP address or Domain Namel Unique visitorsl Mobile Devices

    Open AdStream automatically recognizes the technical parameters when an ad requestis made. But when the request is made via SX Delivery (the SX tag), Open AdStream isnot called directly by the user's browser. The Content Web Server contacts OpenAdStream.

    User Agent

    All user information must be obtained via an application that resides on the ContentWebserver. This application is responsible for passing the User Agent informationbetween the User's browser and the Ad Server.

    IP Address or Domain Name

    As shown on the example above, this information can be passed to Open AdStreamthrough query value

    ?_RM_IP_=.

    For Example:

    http://OAS_server/RealMedia/ads/adstream_sx.ads/SITE/page@Top?_RM_IP_=1.2.3.4

    Unique Visitors

    Unique visitor information is based on Unique Cookie management. Open AdStreamuses a cookie called RMID to identify visitors. When a visitor arrives at the site andthey do not have an RMID cookie, they will be given a new Cookie set in the HTTPreply. If a visitor already has the RMID cookie, the existing cookie is reused.

    In the case of SX delivery, the RMID cookie must be passed from the visitor to OpenAdStream via the Content Web Server. It must also be passed from the OpenAdStream reply back to the visitor.

    It is possible in Open AdStream to use any other cookie for identifying unique visitors.

    - 39 -

  • User Profile

    SX Delivery can be used to target user profiles. The profiles are given to OpenAdstream via either cookies or keywords.

    CookiesIn the case of cookies, the profile already exists on the visitor's browser. The appli-cation that structures the SX call must reproduce the cookie HTTP header.

    KeywordsFor keywords, the SX call must have the keyword at the end of the line (separated by aquestion mark). For example:

    OAS_server/RealMedia/ads/adstream_sx.ads/site/page@Top,Bottom?age=33&sex=F

    will allow Open AdStream to target users on the age or sex Keywords.

    - 40 -

  • SX Output Description

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    The SX call returns the HTML call of each "Ad Object". Each object is separated by anHTML comment that indicates the position

    of the next banner. ( for example).

    The output returned by Open AdStream must be split into single "ad" HTML codes, andthese codes can be placed in the

    dynamically generated page.

    Output Example:The SX call:

    http://OAS_SERVER/RealMedia/ads/adstream_sx.ads/www.site.com/PAGE@Top,Bot-tom,Left

    Returns:

    - 41 -

  • SX Output NotesNote: In the case of images ad, the banner usually comes from the Open AdStream server. However, thebanner can be placed to any other http server, including a Network caching system such as AKAMAI.

    Note: A direct connection between the user and the Open AdStream will be established when the user clickson the banner.

    - 42 -

  • Appendix - SX for Static Pages

    Sample SX TagThe SX tag type for static pages is simply a non-JavaScript version of the JX tag type.It can deliver all types of Rich Media, and it will test for the visitors browser type.

    Section Descriptions:

    Section Description

    1 IFRAME is used with Microsoft Explorer browsers to call an image fromOpen AdStream Central and return the creative with the correspondingclick through URL string.

    Tracking Keyword Targeted BannersWith 24/7 Open AdStream, it is necessary to make some additional modifications toPage Tags in order to track Keyword targeted banners.

    Use the following sample and instructions for modifying the page tags for SX in orderto properly schedule and track Keyword targeted banners.

    Sample SX for Keyword

    The following shows some sample SX code for Tracking Keyword Targeted Banners inStatic Pages:

    Important: Special Instructions: Publishers that want to replace the --KEYWORD-- variables in their pagetags must insert a unique keyword string, using the appropriate cgi or content management system.

    - 43 -

  • For instructions on setting up the Search Term elements in the Database, please referto the Search Term Targeting topic.

    - 44 -

  • Working with NX

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    Note: Avoid using NX Tags with the Count on Download feature.

    NX DeliveryNX is typically used for remote delivery of graphic images, such as GIF and JPEGbanners, with 24/7 Open AdStream. NX delivery works as follows:

    1. The Visitor's Browser requests a Web Page.2. The Content Server delivers the Web Page.3. The Visitor's Browser renders the requested Page and determines that there are

    Ad Tags. The Browser then requests the Ads to be delivered from the 24/7 OpenAdStream Server.

    4. The appropriate Ads are delivered and the Browser renders them with the Page.

    When the Visitor clicks on the delivered image, the HREF requests a Click-Through URLfrom 24/7 Open AdStream for the clicking Visitor. 24/7 Open AdStream rememberswhat ad was delivered because it holds the ad's Click-Through information in sharedmemory, which allows 24/7 Open AdStream to redirect the Visitor to the appropriateClick-Through URL.

    Schematic Representation of NX Insertion

    - 45 -

  • NX TagsNX Ad Tags are coded directly into the HTML source code of a web Page. These Ad Tagsare a combination of two HTML Tags: an IMG SRC surrounded by an HREF. A sampleNX Tag for the following URL:

    Please refer to the component description table below.

    Note: The www.siteaddress.com in each of these lines is a URL used to locate the 24/7 Open AdStream Deliv-ery Engine. The www.siteaddress.com is part of the PageURL@Position information that is passed to theDelivery Engine to request a banner.

    Important: Position abbreviations in tags are not allowed. Tags created with position abbre-viations will be displayed as "blank", or generate errors.

    NX Components Descriptions

    Component Description

    24/7 Open AdStream Delivery EngineLocation

    This is the path (Domain And Directory) towhere 24/7 Open AdStream is running. Inour example above, it is http://www-

    - 46 -

  • Component Description

    .oasaddress.com/RealMedia/ads. WhenTagging your Site Pages, you must replacewww.oasaddress.com with the ActualDomain where your copy of 24/7 OpenAdStream is running.

    click_nx.ads The Click-Through call (click_nx.ads)executes the 24/7 Open AdStream functionthat redirects the Visitor's click to theClick-Through URL.

    adstream_nx.ads The Image call (adstream_nx.ads)executes the 24/7 Open AdStream functionthat returns the appropriate Ad Image.

    pageURL Location This is the Page for delivery. It can be theactual Web Page URL (where it exists), ora virtual URL. In our example above, thepageURL is

    www.siteaddress.com/news/index.html.

    This Directory is passed to 24/7 OpenAdStream so that the software knows theDirectory (Sub-Directory, Page, etc.) fromwhere the ad call originated. 24/7 OpenAdStream sends back one of the Ads sched-uled to that Page. The URL Directory in theAd Tag can be as broad as a Domain Nameor Directory, or it can be as specific as youneed to make it. Basically, the URL Direc-tory in the Ad Tag can be carried rightdown to the Page-specific level(/local/index.html), depending on the gran-ularity with which you package, sell andtrack your site.

    Note: You only need to make the Ad Tag Page spe-cific if you plan to sell this Page by itself (and not partof the directory). When Publishers find that theydon't need to sell specific Pages, they don't Tag themuniquely down to the Page-specific level.

    @Position Defines the Position of an Ad on the WebPage. Refer to Position Naming Con-ventions for more information.

    - 47 -

  • Cache-Busting with Random Numbers

    Inserting a random number into the NX Ad Tag allows for cache-busting and improvedClick-Through reliability. The random number must be inserted after the PageURL butbefore the @Position. When an NX call includes a random number inserted in thismanner, the 24/7 Open AdStream Delivery Engine ignores the random number, exceptto identify the image and the corresponding Click-Through.

    l The same random number must be inserted in both the HREF and IMG SRC lines.l The random number must not start with 0 (zero).l The random number must be a positive numeric value and must be less than 2,

    147,483,648.l The Visitor's Browser must generate the random number in order for it to be effi-

    cient.l The random number can be replaced by a redirect call:

    l _RM_REDIR_=URL where URL is a variable that must be replaced with anactual address.

    l You must use the same random number for each Ad that is on the same Page.l Refer to [OAS Path]/Samples/nx_js.html for examples.

    l Where [OAS Path] is a variable that must be replaced with the domain andpath to where your 24/7 Open AdStream installation is running.

    Example:

    Open AdStream NX Sample Page with JavaScript

    NX Sample Page with JavaScript(NSAPI: hard-coded HREF & IMG SRC)Campaigns scheduled to: www.247media.com/Samples/nx_js.html

  • var oasurl = "/RealMedia/ads/";var imageurl = oasurl + "adstream_nx.cgi/" + page + "/1";var clickurl = oasurl + "click_nx.cgi/" + page + "/1";

    function oas_ad(pos) {var rand = (new String(Math.random())).substring(2,11);document.write ('');document.write (''); }

    // -->

    TopLeft

    TopRight

    - 49 -

  • - 50 -

  • Working with RX

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    RX DeliveryRX Delivery is a modification of JX Delivery, which was previously described in thisGuide. Like JX, RX Delivery is capable of remote delivery, as well as delivery of HTMLCreatives. RX Delivery is also similar to JX in its dependence upon JavaScript to testthe Visitor's Browser and cannot deliver to Browsers that do not have JavaScript ena-bled. RX does differ from JX in two key aspects. First, the cache-defeating by a ran-dom number is much more effective. Second, the actual application of RX code issimpler by setting up the function in the of the Page and then calling this func-tion each time you want to insert an Ad.

    RX Delivery works as follows:

    1. Visitor's Browser requests a Web Page from the Content Server.2. The Content Server delivers the Web Page and the Visitor's Browser renders the

    requested Page.3. While rendering the delivered Page, the Visitor's Browser encounters RX code.

    The RX code in the of the Page includes JavaScript that tests theBrowser.

    4. Each time the Browser encounters an Ad Call in the of the Page, theBrowser will request the appropriate Ad to be delivered from the 24/7 OpenAdStream Server (according to the JavaScript decision):

    a. If the Visitor's Browser does not have JavaScript enabled, then theBrowser will not display an Ad.

    b. If the Visitor's Browser does have JavaScript enabled, and the Java-Script test reveals that it is an older Browser, then the Browser willrequest a GIF or JPEG banner to be delivered.

    c. If the Visitor's Browser does have JavaScript enabled, and the Java-Script test reveals that it is a newer Browser (capable of HTML deliv-ery), then the Browser will request an HTML Creative from theremote server. This HTML can be in the form of a complete HTML Cre-ative, or a set of Ad Tags (HTML replacement) that will make thefinal remote call for a Creative.

    5. The appropriate Ads are delivered and the Browser renders them with the Page.If an HTML Creative is requested, the Browser will download it without opening anew Browser window.

    When the Visitor clicks on the delivered Image, the HREF requests a Click-Through URLfrom 24/7 Open AdStream for the clicking Visitor. 24/7 Open AdStream rememberswhat Ad was delivered and then redirects the Visitor to the appropriate Click-ThroughURL.

    - 51 -

  • Schematic Representation of RXDelivery

    Coding for RX DeliveryRX Delivery relies on a function called DisplayAds, which uses an NX Tag or a JX Tagfor the Ad insertion as determined by the 24/7 Open AdStream Browser test. SpecificBrowser types recognize and use only specific lines of the code. The code for RX Deliv-ery consists of some setup information (sample below) in the section of thePage HTML, and RX Position Code (or individual Ad Calls) within the section ofthe HTML.

    RX Setup Code

    RX Setup Code appears in the section of the Page. It sets the Browser test andruns the DisplayAd function. Below is a sample of RX Setup Code. Refer to RX SetupCode Descriptions below for an explanation of each section. You can also refer to theSample of RX Setup Code without comments section. RX Position Code appears furtherdown in the HMTL source of the Web Page.

    RX Setup Code Section Descriptions

    The following descriptions reference the comments in the RX Setup Code.

    - 52 -

  • RXCode Section Delivery

    Browser Test (1) The Browser Test consists of the code between the begin/end24/7 Open AdStream Browser test lines.This code determines what version of JavaScript the client isrunning (if JavaScript is enabled) and sets a variable called ver-sion equal to a specific value. JavaScript 1.0 will set versionequal to 10, and JavaScript 1.1 will set version equal to 11. Anadditional test is made to see if the Browser uses the 'Mozil-la/3' signature; if so, then version equal will be set to 10. Java-Script 1.0 is compliant with Netscape 2.x and MSIE 3.x .JavaScript 1.1 is compliant with Netscape 3.0 (and later), aswell as MSIE 3.01 (and later).

    Ad Insertion Func-tion (2) (3)

    The Ad Insertion function consists of the code between thebegin/end 24/7 Open AdStream function definition lines, and itis another JavaScript application. The first few lines define var-iables. The rest of this code defines the function called Dis-playAds, which uses the defined variables to handle AdInsertion when called by Position Code in the of thePage HTML.

    l The first few lines in this section define variables:Example: For http://www-.oasaddress.com/RealMedia/ads, you must replacewww.oasaddress.com with the actual domain whereyour copy of 24/7 Open AdStream is running.

    l var sitepage defines the actual PageURL for Ad Deliv-ery.Example: We have represented this URL as www.s-iteaddress.com/index.htm, and you must replace it withthe actual or virtual Page that should receive the Ad.You must replace www.siteaddress.com with the correctdomain name.

    l var RN and var RNS set variables for generating a ran-dom number to be used for defeating cache.

    l var OAS_query defines keyword to be passed to 24/7Open AdStream Server. Refer to MJX Code SectionDescriptions for detail.

    The rest of the code in this section defines the insertion func-tion and what it does:

    l function DisplayAds (position, width, height) definesthe function called DisplayAds and establishes the var-iables that will be passed to it. The variables are passedwhen the function is called by Position Code in the of the Page HTML.

    l var oaspage defines the Page and Position as well as

    - 53 -

  • RXCode Section Delivery

    a random number for cache-defeating for the Ad Deliv-ery. Note that it depends on the Position, passed by thePosition Code in the of the Page HTML, and therandom number generating

    l the ifelse script, defines what to do with all the var-iables when the Ad Call is made:variables defined above.

    l For Browsers that test as JavaScript 1.0 (or ear-lier), this part of the code takes the defined andpassed variables and makes an appropriate HTMLinsertion. To do this, the document.write commandinserts HTML code (including information assignedby the variables) directly into the targeted WebPage. The click_nx.ads command executes the24/7 Open AdStream function that redirects the Vis-itor's Browser to the Click-Through URL.

    l For Browsers that test as JavaScript 1.1, this partof the code takes the defined and passed variablesand makes an appropriate HTML insertion. To dothis, the document.write command inserts HTMLcode (including information assigned by the var-iables) directly into the targeted web Page. Theclick_jx.ads command executes the 24/7 OpenAdStream function that redirects the Visitor'sBrowser to the Click-Through URL.

    RX Position Code

    Important: Position abbreviations in tags are not allowed. Tags created with position abbre-viations will be displayed as "blank", or generate errors.

    The RX Setup Code appears in the of the Page. Further down in the HMTLsource of the Web Page, you will have one or more instances of RX Position Code. Eachoccurrence marks the actual insertion point where an Ad will appear on the Page.Below is sample code for two ad Positions on one Page.

    - 54 -

  • ....

    RX Position Code Components Descriptions

    Here are descriptions of the various HTML components used in the RX Position Code.

    RXComponent Description

    DisplayAds This is a call to the function defined inthe of the Page HTML. Its pres-ence in the passes the valuesPositionList!Position, Width, and Heightto the JavaScript function. The functionthen performs the appropriate HTMLinsertion for this Position on the Page.

    Ad Position This is a comma-separated list of all thePositions on the current Web Page fol-lowed by the specific Position for thisinsertion. In the ad call for first Positionin the example above, the Ad Positionis:

    Position1,Position2!Position1

    Refer to Position Naming Conventionsfor NX, JX and RX for more information.

    Ad Width The actual width of the Position in pix-els. This is defined by the first value fol-lowing the Ad Position in the DisplayAdscall. In the ad call for first Position inthe example above, the Ad WIdth is:

    468

    Ad Height The actual height of the Position in pix-els. This is defined by the second valuefollowing the Ad Position in the Dis-playAds call. In the ad call for first Posi-tion in the example above, the AdHeight is:

    60

    - 55 -

  • Known Problems in RX Coding

    l RX cannot deliver Ads to Browsers that do not have JavaScript enabled.l If you want your RX code to deliver ads to Browsers that do not have JavaScript

    enabled, then append the RX Position Code with a section that con-tains an NX Tag. If you do this, however, you should be aware that Ad Deliveryto MSIE4 may be counted as two Impressions (due to glitches in the way thatMSIE4 handles JavaScript).

    Using a Section

    As mentioned previously, JX and RX delivery cannot deliver to Browsers that do nothave JavaScript enabled. Use of a section will perform delivery of animage banner to non-JavaScript Browsers. But there is a problem: Ad deliveries toMSIE4 may be counted as two Impressions (due to glitches in the way that MSIE4 han-dles JavaScript).

    l When using the section for JX Delivery, append it to the very endand use it as the 4th section:

    l When using the section for RX Delivery, append it to the end of theRX Setup Code (after the end OAS function definition but before the):

    RX Sample Setup Code Without Comments

    This is the same code as seen in the Sample RX Setup Code, but comments and extraline breaks have been removed.

    - 56 -

  • var oas='http://www.oasaddress/RealMedia/ads/';var sitepage = "www.siteaddress.com/index.htm";var RN = new String (Math.random());var RNS = RN.substring (2, 11);var OAS_query = '';

    function DisplayAds (Position, width, height){var oaspage= sitepage + '/1' + RNS + '@' + Position + '?' + OAS_query;

    if (_version < 11) {document.write ('');} else {document.write ('');document.write ('\');document.write ('\');document.write ('\');}}// -->

    - 57 -

  • Tagging for Analytics

    If you are using Analytics with your 24/7 Open AdStream installation, you will need toappend your Ad Tags with a 24/7 Open AdStream Query string (Refer to Appendix G forthe 24/7 Open AdStream Analytics Tagging Guide). See below for examples of variousAd Tag types. In each case, the 24/7 Open AdStream Query string is highlighted andshown in bold, red text.

    Note: Any deviation from the documented 24/7 Open AdStream tags may result in non-delivery, as unsup-ported ad tags have not been tested or validated in the system and may cause unforeseen issues.

    LimitationPlease note that there is a 2K limit on the length of a query string. This means that theentire string -- XEs and keywords included -- has to be less than 2048 characters.

    Analytics in the NX Tag

    The 24/7 Open AdStream Analytics string needs to be in ONE of the NX Tags on thepage in question.

    NX Tag Example:

    Analytics in the JX Tag

    The 24/7 Open AdStream Analytics string needs to be in ONE of the JX Tags on thePage in question.

    JX Tag Example 1:

    - 58 -

  • JX Tag Example 2:

    var OAS_taxonomy='abc=1&cde=2';var OAS_query='';OAS_query += 'XE' + '&' + OAS_taxonomy + OAS_rdl + "&if_nt_CookieAccept=" + OAS_CA+ '&XE';

    var oas='http://server.realads.com/RealMedia/ads/';var sitepage = "www.realmedia.com/Samples/rx_multi.html";var RNS = new String(Math.random()).subString(2,11);

    function DisplayAds(positionList, position, width, height){var oaspage= sitepage + '/1' + RNS + '@' + positionList + '!' + position + '?' +OAS_query;if (_version < 11) {document.write ('');

    } else {document.write ('');

    - 59 -

  • document.write('');}document.close();}

    DisplayAds('TopLeft,TopRight', 'TopLeft', 0, 0 );

    DisplayAds('TopLeft,TopRight', 'TopLeft', 0, 0 );

    Analytics in the MJX Tag

    The 24/7 Open AdStream Analytics string is defined as the variable, OAS_query.

    MJX Tag Example:

    var OAS_taxonomy='abc=1&cde=2';var OAS_query='';OAS_query += 'XE' + '&' + OAS_taxonomy + OAS_rdl + "&if_nt_CookieAccept=" + OAS_CA+ '&XE';

    OAS_target = '_top';//end of configurationOAS_rn = new String (Math.random()); OAS_rns = OAS_rn.substring (2, 11);function OAS_NORMAL(pos) {document.write('');}//-->

  • OAS_version = 10;if (OAS_version >= 11)document.write('');

    //-->

    Specialized Analytics Tags

    The following elements of the Analytics Tags show the use of appending the data to aJavaScript variable. This variable must then be appended to the query string of therequest in ONE of the applicable Tags above.

    Transactions

    Be it an e-commerce site, content site, service-oriented site, or otherwise, there aremany ways to break down an action into transactional components. For example, whenyou understand these components and see that a Visitor is never going passed the firstPage of an article, or that only 50% of your Visitors complete all three steps of a check-out, you will be able to tailor your site better to serve their needs. To this end, 24/7Open AdStream Analytics has designated reserved Tags to denote the steps associatedwith transactions:

    Attribute Value Required

    oas_xtransStatus start | end | step##

    Note: These steps should be coded "step1","step2", etc. They ARE NOT case sensitive.

    Yes

    oas_xtransName Natural Language Description of Trans- Yes

    - 61 -

  • Attribute Value Required

    action

    oas_xtransId Customer Transaction Id No

    oas_xtransItem Item Description No

    oas_xtransCategory Category Description No

    oas_xtransQuantity Quantity of Item Purchased No

    oas_xtransValue Value of Item Purchased No

    Sample JavaScript: Define a 24/7 Open AdStream Analytics Transaction

    var OAS_taxonomy = '&oas_xtransStatus=' + escape('end');OAS_taxonomy += '&oas_xtransName=' + escape('Checkout');OAS_taxonomy += '&oas_xtransId=' + escape('2677210304387');OAS_taxonomy += '&oas_xtransCategory=' + escape('Baby');OAS_taxonomy += '&oas_xtransItem=' + escape('Infant Boy T-Shirt');OAS_taxonomy += '&oas_xtransQuantity=' + escape('1');OAS_taxonomy += '&oas_xtransValue=' + escape('14.87');

    Error Pages

    Most sites will use special Pages to display common HTTP errors, such as "Page NotFound" (404); or "Internal Error" (500). 24/7 Open AdStream Analytics has reservedTags that you can embed on these custom Pages so that a Webmaster or Manager canget a sense of the end users experience on your site. The reserved Tags are:

    Attribute Value Requir-ed

    oas_httpErrorType 400 | 403 | 404 | 500 | 501 | 503 Yes

    oas_httpErrorURL Missing File Yes

    oas_httpErrorReferrer Page containing link to missingfile

    No

    Sample JavaScript: Insert OAS Analytics HTTP Error tracking into the Tax-onomy

    var OAS_taxonomy = "&if_httpErrorType=404&if_httpErrorURL=" + doc-ument.location + &oas_httpErrorRefrerrer= + document.referrer;

    Client Codes (UserIDs):

    If your site has a members or registration section, 24/7 Open AdStream Analyticsallows you to couple this User ID with an online visitors' Clickstream behavior. To dothis, simply add the following to your Taxonomy string:

    - 62 -

  • Attribute Value Required

    oas_clientCode Alphanumeric String No

    Sample JavaScript: Insert Client Codes into the Taxonomy String

    var OAS_taxonomy = "&Section=" + section + "&oas_clientCode='+ escape(vz7.0b52c55ba3155c966461047cf079363fa);

    No Analytics Tags:

    In certain cases, you may not want to have the 24/7 Open AdStream Log ProcessingTool do full analytics processing. The reason for this is so that certain metrics are notovercounted. For example, a Page may have many 24/7 Open AdStream Tags on it. Ifeach Tag were processed, it would result in multiple Pageviews for the same piece ofHTML. To avoid this, you can include a directive which tells the Log Processing Tool toNOT do Analytics processing:

    Attribute Value Required

    oas_pv no_analytics No

    Sample JavaScript: Skip OAS Analytics Processing

    var OAS_taxonomy = "&oas_pv=no_analytics";

    - 63 -

  • Image Maps and HTML Creatives

    You can deliver various types of Rich Media banners with 24/7 Open AdStream. RichMedia banners are also referred to as HTML banners because they consist of HTML thatis inserted in the web Page. Some examples of Rich Media banners include:

    l Third-party served bannersl Image Mapsl Formsl Pop-Upsl Enliven

    HTML banners, whether received from advertisers or created in-house, need to be mod-ified before being uploaded into 24/7 Open AdStream for three reasons:

    l Track the Click-Throughl Locally deliver an imagel Defeat caching

    Refer to the 24/7 Open AdStream Rich Media Guide Version 2.0 Beta for instructions ondelivering image maps and HTML Creatives.

    Note: When using a Rich Media creative, the Alt Text field in the creative section cannot contain singlequotes. Single quotes in this scenario, breaks the creative from displaying.

    - 64 -

  • HTML Ad Substitutions

    These substitutions are listed in processing order.

    1. Substitute HTML by DEFAULT_HTML as shown inMethod 1: Using openad.cfgbelow.

    2. Substitute HTML by query as shown inMethod 2: Substitutions in the QueryString below.

    The rest of these substitutions are also documented in the openad.cfg file.

    3. %%PROTOCOL%% http:// or https://4. %%HOST%% - server name5. %%PORT%% - :port (empty for default port)6. %%SERVER%% - %%PROTOCOL%%%%HOST%%%%PORT%%7. %%CAMP%% - Account id/Campaign id

    Note: This substitution represents the Account ID, followed by a slash, and then the Cam-paign ID.

    8. %%IMAGE%% - image name9. %%PATH%% - image subdir or redirected URL

    10. %%USER%% - user id (cookie)11. %%ADID%% - image id12. %%PAGE%% - page url13. %%POS%% - position14. %%TARGET%% - target window15. %%ALT%% - alt text16. %%HTML%% - extra HTML17. %%TEXT%% - extra text18. %%DIM%% - image dimensions (WIDTH=x HEIGHT=y)19. %%RAND%% - random number to append to URL20. %%REALRAND%% - random number to append to URL that overrides the Ran-

    domUrl setting21. %%FILEDATE%% - file modification time (seconds since 1970); 0 for redirect22. %%COOKIE%% - cookie value targeted23. %%QUERY%% - query string24. %%GMTTIME%% - timestamp in YYYY.MM.DD.hh.mm.ss format25. %%ADV%% - Advertiser ID from Campaign Overview screen.26. %%COMP_CAT%% - Competitive Category from Campaign Overview screen. If

    multiple, comma separated.27. %%SEG%% - Comma separated list of the Active BT Segments that the User is

    attributed to at the time of delivery.28. %%HEIGHT%% - Height of Creative from Creative screen.29. %%WIDTH%% - Width of Creative from Creative screen.30. %%REF%% - The referrer URL that is sent in the header of the ad request.31. %%F%% - %%CDN%%/RealMedia/ads/Creatives/%%CAMP%%/32. %%C%% - %%SERVER%%/RealMedia/ads/click_

    - 65 -

  • lx.ads/%%PAGE%%/%%RAND%%/%%POS%%/%%CAMP%%/%%IMAGE%%-/%%USER%%

    The following may be enabled in your account. If they are not enabled, contact yourAccount Manager to enable them.

    1. %%CPM%% - Campaign or Creative Target CPM from Schedule/Billing screen.2. %%CPC%% - Campaign or Creative Target CPC from Schedule/Billing screen.3. %%CPA%% - Campaign or Creative Target CPA from Schedule/Billing screen.4. %%eCPM%% - Campaign or Creative Target eCPM from Schedule/Billing

    screen.5. %%COOKIE_[COOKIENAME]%% - Comma separated list of the values in the

    cookie. [COOKIENAME] will be populated with the name of the cookie. If thecookie does not exist, the value will return null.

    Important: Do not use the %%L%%macro - (deprecated) - in Creative code, as it will not render. Use%%F%%macro instead.

    Dynamic HTML AD SUBSTITUTIONSNote: 24/7 Open AdStream Enterprise Edition

    The openad.cfg file specified in sections below can only be modified by clients using 24/7 Open AdStreamEnterprise Edition.

    Dynamic HTML ad substitution can be done using DEFAULT_HTML_* (set it in the openad.cfg file) or with _RM_HTML_* (directly in the query string).

    Method 1: Using openad.cfg

    Assume that the openad.cfg file is configured with the following code:

    DEFAULT_HTML_MONKEY HoppityHopDEFAULT_HTML_CLICK%%SERVER%%/RealMedia/ads/click_lx.ads/%%PAGE%%/%%RAND%%/%%POS%%/%%CAMP%%/%%IMAGE%%/%%USER%%When an ad banner contains:%%MONKEY%%all occurrences of %%MONKEY%% will be substituted withHoppityHopWhen an HTML banner contains:%%CLICK%%all occurrences of %%CLICK%% will be substituted with:

    SERVER.realads.com/RealMedia/ads/click_lx.ads/www.247media.c-om/Sam-ples/lx.html/1481154846/TopRight/OasDefault/demo/bulb3.gif/63306138303134343366303037633830

    Method 2: Substitutions in the Query String

    Assume that a query string is configured as follows:

    ?...&_RM_HTML_MONKEY_=HoppityHop&...When an HTML banner contains:%%MONKEY%%

    - 66 -

  • all occurrences of %%MONKEY%% will be substituted withHoppityHop

    Note: In the event that the Query String and configuration file both contain the same variable, for example,openad.cfg specifies DEFAULT_HTML_RABBIT HippityHop and the QueryString specifies _RM_HTML_RAB-BIT=HoppityHip, then the Query String data takes precedence and HoppityHip is used.

    More Redirection OptionsIn addition to the existing _RM_REDIR_, we now have _RM_ACTION_, which work asfollows:

    Given a redirect URL such as www.247media.com/index.html?one=1&more=2&end=5

    _RM_REDIR_The following appended query string:...?_RM_REDIR_=www.247media.com/index.html?one=1&more=2&end=5

    redirects to (the truncated query string):www.247media.com/index.html?one=1

    _RM_ACTION_

    The following appended query string:...?_RM_ACTION_=www.247media.com/index.html?one=1&more=2&end=5

    would redirect to:www.247media.com/index.html?one=1&more=2&end=5

    Note: _RM_ACTION_

    In the last example (_RM_ACTION_), the Browser will be redirected as coded in the full query string, but thefollowing part would be URL decoded:

    www.247media.com/index.html?one=1

    which is everything up to the first ampersand (&) in the query string.

    Additional __QUERY__ OptionUsing __DQUERY__ will URL Decode the query string before redirecting. This meansthat you no longer have to decode a query string from a third-party manually.

    - 67 -

  • .ADS vs .CGI

    All sample Tags are now standardized to use the .ads extension for the click andadstream calls.

    If you have upgraded to 24/7 Open AdStream 5.6 or higher versions, and your site hadpreviously been tagged using the .cgi extension for those calls, there is no need to mod-ify them. Both .ads and .cgi will work, regardless of your server's operating system.

    - 68 -

  • Ad Exclusion

    The Ad Exclusion feature has been created to make the exclusion functionality found in24/7 Open AdStream more granular. This feature works with the existing functionalityof the User Interface, and is controlled from the query string, to force a Campaign toalways be excluded from delivery.

    How it WorksAd Exclusion works with the Competitive Categories feature in the 24/7 OpenAdStream User Interface and is controlled from the query string. By definition, theCompetitive Categories feature prevents two Campaigns with the same CompetitiveCategory from appearing on the same Page at the same time. For example, if Cam-paign 'Ford' and Campaign 'Chevy' share the Competitive Category 'Automobile,' thenwhen an 'Automobile' ad is requested, only the 'Ford' or 'Chevy' ad will be displayed.In this scenario, you will never see both a 'Ford' and 'Chevy' ad with the CompetitiveCategory of 'Automobile' on the same Page at the same time.

    Ad Exclusion works with the selected Competitive Category(s) and the query string toforce the Campaign(s) to always be excluded from delivery. With Ad Exclusion, allCampaigns that share the same Competitive Category(s) will be excluded from deliv-ery. For example, if Campaign 'Ford' and Campaign 'Chevy' share the Competitive Cat-egory 'Automobile,' then when an 'Automobile' ad is requested, neither ad will bedisplayed.

    The following is a list of additional comments on how the Ad Exclusion feature workswith Competitive Categories:

    l One or more Competitive Categories must be selected for the Campaign via theUser Interface in order for this feature to work.

    l An Ad Exclusion Query String cannot be built 'from scratch' into a Page. You mustfirst have the appropriate Competitive Categories defined in the User interface.

    l Entering a different Competitive Category into the query string does not over-write the category(s) selected in the User Interface. Rather, the query string willnot work unless the category(s) in the query string match the category(s) in theUser Interface.

    ImplementationRefer to the table below for the proper syntax of applying the Ad Exclusion func-tionality to the query string:

    Action Query String Name Query StringValue

    Exclusion RM_Exclude One or more

    - 69 -

  • Action Query String Name Query StringValue

    comma-separatedCompetitive Cat-egories definedfor certain Cam-paigns

    Samples:

    ?RM_Exclude=Airlines,Automobiles

    ?RM_Exclude=Sponsor1,Entertainment

    Note: Competitive Categories and Exclusion:

    In order to build the Exclusion values into the query string, the same values, or Competitive Categories,must first be selected for each Campaign in the User Interface.

    Tag ExamplesIn all cases shown here, the query string containing the Exclusion values should beappended to the IMG SRC URL. Use the following Page Tagging examples to guide youwhen setting up the Ad Exclusion feature in each of the different 24/7 Open AdStreamTags.

    NX

    For NX delivery of Excluded ads, append the query string to the IMG SRC URL.

    In this example, the TopLeft Position will never display banners for Campaigns thatbelong to the Alcohol Category. This is the simplest use of Ad Exclusion in Page tag-ging.

    JX

    With JX Delivery, the query string is appended to the IMG SRC URL lines.

    TopLeft

    - 70 -

  • This example illustrates a Campaign in which delivery to the TopLeft Position will beexcluded for all Campaigns that have Alcohol selected as a Competitive Category.Please note that with the JX Tag you will need to use the query string in more than oneplace for each banner, since each represents a possible Browser.

    MJX

    With MJX Delivery, the query string is set up as a JavaScript variable and appended tothe IMG SRC URL lines (numbered comments described after the code):

    OAS_query = '?RM_Exclude=Airlines';OAS_target = '_top';//end of configurationOAS_version = 10;OAS_rn = '001234567890'; OAS_RNS = '1234567890';OAS_rn = new String (Math.random()); OAS_RNS = OAS_rn.substring (2, 11);function OAS_NORMAL(pos) {document.write('');

    document.write('');}//-->

    - 71 -

  • document.write('');//-->

    The example above illustrates three (3) places in which Ad Exclusion reference isneeded:

    1. Define a variable with the needed query string. In our example, we called thevariable OAS_query.

    2. In the IMG SRC line, append the variable (in this case, OAS_query) after the Posi-tion flag.

    3. As with JX Delivery, the MJX Delivery requires the use of the Exclusion querystring for each Browser possibility. Our example marks the second Browser typethat requires the Ad Exclusion flag.

    RX

    RX Delivery works in much the same way as MJX Delivery. For RX Delivery, the querystring is defined early in the Tag and then appended to the IMG SRC URL lines(num-bered comments described after the code):

    _version=11;if (navigator.userAgent.indexOf('Mozilla/3') != -1){_version=10;}

    var oas='http://www.247media.com/RealMedia/ads/';var sitepage = "www.247media.com/Samples/rx2.html";var RN = new String(Math.random());var RNS= RN.substring(2,11);

    var OAS_query = '?RM_Exclude=Alcohol';

    - 72 -

  • function DisplayAds(Position, width, height){var oaspage= sitepage + '/1' + RNS + '@' + Position;if (_version < 11) {

    document.write ('');} else {

    document.write ('');document.write('');}document.close();}

    The example above illustrates three (3) places in which Ad Exclusion reference isneeded:

    1. Define a variable with the needed query string. In our example, we called thevariable OAS_query.

    2. In the IMG SRC line, append the OAS_query variable after the Position flag.3. As with JX Delivery, the RX Delivery requires the use of the Exclusion query

    string for each Browser possibility. Our example marks the second Browser typethat requires the Ad Exclusion flag.

    - 73 -

  • Position Names

    There are 128 named Ad Positions. Two Positions, ANY and ALL, are reserved. Theremaining 126 Positions are available for individual selection by name, and can bemapped to your own business names. The following table lists all126 Position namesand includes a blank space to record your specific use. (Example: x01 - Popup; x02 -Skyscrapers).

    Important: Creative Position Tagging: The Delivery Engine accepts only a valid position name,refusing requests with abbreviations, or with inva