NATIVE AD SERVING TEMPLATE (NAST) VERSION 1.0 Released Feb 15, 2014
Document Summary The NAST Standard is a first attempt to standardize the transfer of native advertising units in advertising by providing a universal XML Schema for serving native advertising assets to ad servers, ad exchanges, and mobile devices. This document will be updated as native advertising on the web and in mobile progresses. Who is behind NAST? The project was initiated by mobile ad exchange MobFox on January 30 th, 2014 as there was an urgent internal need for a native advertising standard that could easily be used within OpenRTB. Contributors - Julian Zehetmayr, MobFox - Adrian Gligor, MobFox Becoming a Contributor To become a contributor to the NAST Project please visit our public repository at https://code.google.com/p/nast/ or e- mail to nast@mobfox.com Version History March 25 th, 2014: Cleaned up Document and finalized OpenRTB Extension Version 1.0 February 15 th, 2014: Change of Structure inside Version 0.6 February 5 th, 2014: Launch of the Initiative Version 0.5 Additional Information & Documents - NAST OpenRTB Extension http://www.mobfox.com/library/uploads/2014/03/openrtb- NATIVE- AD_EXTENSION_1.0_FINAL3.pdf
1.1 What is NAST? A single NAST XML response can include multiple native advertisements. Each native advertisement itself consists of multiple Creative Assets (Image, Text and XHTML), multiple Action Elements (e.g. Click) and multiple Tracking Elements (e.g. Impression Pixels) 1.2 How NAST works Generally, serving a NAST native ad involves an ad server requesting a NAST response and a client parsing and displaying the ad as well as firing off any tracking pixels included in the NAST response. NAST Request The ad server or client makes a call to the ad server or demand side platform that returns a NAST compliant response. Parse & Display NAST Response The ad server or client parses the NAST response and displays one of more NAST ads. Fire Tracking Events The client fires off any impression or click tracking events declared in the NAST response. 1.3 Rendering a NAST ad When rendering a NAST response, it is advised that you coordinate and seek approval from the DSP/Advertiser/Network that you are obtaining the NAST response from making sure that you are displaying all native assets as they are intended to be rendered.
NAST XML Structure A NAST ad response should be a well- formatted XML document compliant with XML 1.0 A NAST compliant XML consists of many different elements. The following pages will go through and explain every part of the NAST structure step- by- step. 2.0 Opening a NAST Tag A NAST ad response is declared with <NAST> as the top- most element including the version attribute that defines which official NAST version the ad response is compliant with. As an example, this is how a NAST 1.0 response would be opened: <NAST version= 1.0 > <! Native Ads will go here à 2.1 Declaring an <Ad> A single NAST ad response can consist of multiple individual ads, with each ad being separated by an <Ad> element. Each ad must include a type attribute that defines the nature of ad that is being served. For a list of available ad types, please refer to Section 3.1 of this document. As an example, this is how an ad is defined within a NAST response: <NAST version= 1.0 > <Ad id="1" type= app content= com.king.candycrushsaga > <! Ad Details go here --> Available <Ad> Attributes Attribute Name id Optional ID of the Ad type Optional Nature of the Native Ad. See Section 3.1 content Optional Optional. Details of the Content
that is being advertised. In the above case the App Bundle ID is being used. 2.2 The Element An ad element consists of multiple Elements that that define the creative representation of the native ad. As an example, this is how the Element is defined in a NAST response: <NAST version= 1.0 > <Ad id="1" type= app > <! Assets go here --> Available Elements Element Name Image Text XHTML Image Element Text Element XHTML Element 2.3 The <Image> Element An <Image> Element is used inside to define one or more image creatives for a native ad. A single image can be defined with <Image> along with the attributes height, width, and the image url in the content of the <Image> element. As an example, this is how a single image is defined in a NAST response: <NAST version= 1.0 > <Ad id="1" type= app > <Image id="1" type= icon width= 75 height= 75 >http://iurl.com</image>
Available <Image> Attributes Element Name id Optional Numeric ID of the Asset width Required Width of the Image height Required Height of the Image type Optional Type of the Image. See Section 3.2 2.4 The <Text> Element A <Text> Element is used inside to define one or more text assets for a native ad. A single text asset can be defined with <Text> along with the type attribute and the actual text string in the content of the <Text> element. As an example, this is how a single text element is defined in a NAST response: <NAST version= 1.0 > <Ad id="1" type= app > <Text id="1" type= headline >Candy Crush Saga for ios</text> Available <Text> Attributes Element Name id Optional Numeric ID of the Asset type Optional Type of the Text Asset. See Section 3.3 2.5 The <XHTML> Element
Somtimes, an advertiser might want to enhance a Native Ad with dynamic content that cannot be easily put into the context of a NAST response. This is why the <XHTML> element can be used to pass dynamic assets in addition to native assets. Dynamic Assets can range from embedded YouTube Videos to Rich Media Content. An <XHTML> Element is used inside to define one or more dynamic HTML assets for a native ad. A single XHTML asset can be defined with <XHTML> along with the type and content attributes and the actual HTML markup in the content of the <XHTML> element. When the type of XHTML is known by the Publisher and a content value is being provided in the VAST tag, the Publisher may choose to render the XHTML himself instead of displaying the pre- formatted XHTML. Important: XHTML Content should always have a CDATA tag wrapped around to make sure that it doesn t corrupt the NAST XML. As an example, this is how a single XHTML asset is defined in a NAST response: <NAST version= 1.0 > <Ad id="1" type= app > <XHTML id="1" type= youtube_video content="video_id"> <![CDATA[<iframe class="youtube-player" type="text/html" width="300" height="385" src="http://www.youtube.com/embed/video_id" frameborder="0"></iframe>]]> </XHTML> Available <XHTML> Attributes Element Name id Optional ID of the Asset type Optional Type of the XHTML Asset. See Section 3.4 content Optional Additional Information about the XHTML Content e.g. YouTube Video ID
2.6 The <Actions> and <Action> Elements Note: This Element is already outside the Element. An <Actions> Element is used inside <Ad> to define one or more actions for a native ad. Inside <Actions>, a single action can be defined with <Action> along with the type attribute and the action URL in the content of the <Action> element. As an example, this is how a click action / URL is defined in a NAST response: <NAST version= 1.0 > <Ad id="1" type= app > <! Assets go here à <Actions> <Action id="1" Type= click >http://www.clickurl.com</action> </Actions> Available <Action> Attributes Element Name id Optional ID of the Action type Required Type of the Action. See Section 3.5 2.7 The <Trackers> and <Tracker> Elements A <Trackers> Element is used inside <Ad> to define one or more tracking pixels for a native ad. Inside <Trackers>, a single tracking pixel can be defined with <Tracker> along with the type attribute and the Pixel URL in the content of the <Tracker> element.
Note: If you have a NAST response with multiple <Ad> elements, you must only fire tracking pixels of each individual <Ad> once they have been shown to the end user. As an example, this is how an impression pixel is defined in a NAST response: <NAST version="1.0"> <Ad id="1" type="app"> <! Assets go here à <Trackers> <Tracker id="1" type= impression >http://www.pixelurl.com</tracker> </ Trackers > Available <Tracker> Attributes Element Name id Optional ID of the Tracker type Required Type of the Pixel. See Section 3.6 2.8 Closing the <Ad> and NAST Response That s it. Once all, <Actions> and <Trackers> have been defined, the individual ad must be closed with and the NAST response with 2.9 The <Extension> Element The <Extension> Element can be used inside the <Ad> Element to transport custom data that cannot be transported in the standard NAST context. In the example below, an extension is added to the <Ad> node. <NAST version= 1.0 > <Ad id="1" type= app >
<! Assets go here --> <Extension> <! Custom XML goes here --> </Extension> 3.1 NAST Ad Types The <Ad type=""> attribute should be used to categorize the native ad that is being returned in the NAST response. For example, categorizing the ad as an app ad allows Mobile Publishers to only show a NAST ad when it is promoting a mobile app. The following Ad Types are available: Ad Type app content video social news audio commerce Promotion of an App Promotion of general content Promotion of Video content Promotion of Social Content Promotion of News Content Promotion of Audio Content Promotion of Commerce Content 3.2 Image Types The <Image type=""> attribute should be used to categorize images that are being returned in a NAST ad. This should allow the Publisher to select the right type of images when a NAST ad contains multiple images. The following Image Types are available: Image Type main icon The Main Image of the Ad. Recommended Size: 1200x627 An Icon for the Ad
3.3 Text Types The <Text type=""> attribute should be used to categorize text assets that are being returned in a NAST ad. This should allow the Publisher to display the right type of text at the right place when a NAST ad contains multiple text assets. The following Text Types are available: Text Type headline main tagline advertiser cta url rating A Headline or Title for the Native Ad The Main / Text of the Ad Tagline Name of the Advertiser Call to Action Text e.g. Install Now Display URL of the Ad Values 1-5 for App Ratings 3.4 XHTML Types The <XHTML type=""> attribute should be used to categorize XHTML assets that are being returned in a NAST ad. This should allow the Publisher to display the right type of XHTML in the right place when a NAST ad contains multiple XHTML assets. The following XHTML Types are available: XHTML Type xhtml youtube_video vimeo_video video mraid Any Type of XHTML YouTube Video Vimeo Video Video File MRAID Rich Media 3.5 Action Types The <Action type=""> attribute should be used to categorize Actions that are returned with a NAST ad. For Example, classifying an Action as a click action would make this action the click URL of the ad. The following XHTML Types are available:
Action Type click Click URL of the Ad. Should be treated as default action if no action type given. 3.6 Pixel Types The <Pixel type=""> attribute should be used to categorize Tracking Pixels that are returned with a NAST ad. For Example, classifying a Pixel as an impression pixel would mean that the pixel is called when an impression occurs. The following XHTML Types are available: Pixel Type impression click Pixel called at Ad Impression. Should be treated as default action if no action type given. Pixel called when Ad is Clicked 4.0 NAST Examples The following pages include several full NAST ad response examples along with screenshots of the ads should be rendered. Please note that some of the example ads shown might not be real NAST ads but used for demonstration purpose only within this document. 4.1 Facebook In- Stream Native Ad
Screenshot with Explanations near the Elements: Full NAST Response:
<?xml version="1.0" encoding="utf- 8"?> <NAST version="0.5"> <Ad id="1" type="app" content="529479190"> <Image id="1" type="main" width="1200" height="627">http://www.sample.com/ccmainimage.png</image> <Text id="2" type="headline">clash of Clans</Text> <Text id="3" type="main">lead your clan to victory in this epic combat strategy game!</text> <Text id="4" type="other">1,000,000 people play this</text> <Text id="5" type="cta">install Now</Text> <Text id="6" type="rating">4.8</text> <Actions> <Action id="1" type="click">http://www.click- url.com/click.php</action> </Actions> <Trackers> <Tracker id="1" type="impression">http://www.impression.com/pixel.gif</tracker> <Tracker id="2" type="click">http://www.impression.com/clickpixel.gif</tracker> </Trackers> 4.2 YouTube In- Stream Video Screenshot with Explanations near the Elements:
Full NAST Response: <NAST version="0.5"> <Ad id="1" type="video" content="http://www.youtube.com/watch?v=zkfapeicmug"> <Text id="1" type="headline">every Day should be the Super Bowl</Text> <Text id="2" type="advertiser">mobfox</text> <XHTML id="3" type="youtube_video" content="zkfapeicmug"> <![CDATA[<iframe width="560" height="315" src="//www.youtube.com/embed/zkfapeicmug" frameborder="0" allowfullscreen></iframe>]]> </XHTML> <Actions> <Action id="1" type="click">http://www.youtube.com/watch?v=zkfapeicmug</action> </Actions> <Trackers> <Tracker id="1" type="impression">http://www.impression.com/pixel.gif</tracker > <Tracker id="2" type="click">http://www.impression.com/clickpixel.gif</tracker> </Trackers>
4.3 In- Stream App Promotion Screenshot with Explanations near the Elements: Full NAST Response: <NAST version="0.5"> <Ad id="1" type="app" content="506627515"> <Image id="1" type="icon" height="1024" width="1024">http://a5.mzstatic.com/us/r30/purple/v4/4b/99/6a/4b996aa8-0957- 4ea0-263b- 183c26eef83c/mzl.lulypwtz.png</Image> <Text id="2" type="headline">hay Day</Text> <Text id="3" type="rating">5</text> <Text id="4" type="cta">install</text> <Actions> <Action id="1" type="click">http://www.clickurl.com</action> </Actions> <Trackers> <Tracker id="1" type="impression">http://www.impression.com/pixel.gif</tracker> <Tracker id="2" type="click">http://www.impression.com/clickpixel.gif</tracker> </Trackers>