Coder Social home page Coder Social logo

vast's Introduction

vast

Digital Video Ad Serving Template

The IAB’s Video Ad Serving Template (VAST) specification is a universal XML schema for serving ads to digital video players, and describes expected video player behavior when executing VAST-­formatted ad responses. VAST opens up the in-stream digital video advertising marketplace and reduces expensive technical barriers,encouraging advertisers to increase video ad spend.

VAST4 was released in January of 2016. With the proliferation of devices and screen sizes over the last few years, this release was focussed on meeting the challenges around delivering video ads efficiently to this wide variety of devices. This included features like separation of media files from verification and interactive code, a mezzanine file for server side ad insertion, etc.

VAST 4.1 was released in November 2018 with support for Ad Requests, Ad verification with Open Measurement, integration of DAAST for Audio ads, etc.

VAST 4.2 was released in June 2019 with support for interactivity with SIMID (https://github.com/InteractiveAdvertisingBureau/SIMID/).

For more information about the VAST specification, visit the Digital Video Ad Serving Template page on the IAB TechLab website.

For the latest set of VAST4 macros, please visit http://interactiveadvertisingbureau.github.io/vast/vast4macros/vast4-macros-latest.html

Other VAST Resources

vast's People

Contributors

amitshetty avatar dvp236 avatar goosemanjack avatar iab-conor avatar iabmayank avatar jeffreycarlson avatar katiestroudpro avatar lamrowena avatar mimidden avatar phstudy avatar pietermees avatar vladimirpodmogilnyi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vast's Issues

HTMLResource description incorrectly specifies URI requirement

HTMLResource description specifies that it should contain a URI instead of an html snippet/document.

htmlresource_iframeresource

Examples

My understanding is that HTMLResource should look something like:

<HTMLResource><![CDATA[<html><body>I'm a companion</body></html>]]></HTMLResource>

Where as the IFrameResource would be a remote resource:

<IFrameResource><![CDATA[http://adserver.com/htmlresourcefile.htm]]></IFrameResource>

Also

There are a few places that this would need to change, such as section 3.15.

I see this bug:
#6

Which also mentions HTMLResource and a HTMLResourceType but I couldn't find the latter mentioned in the current spec.

Corrections for VAST4.xsd

From VAST 4.0 documentation:

  1. Section 3.10.1: ClickThrough bounded 0-1 (if is used), but now VideoClicks_InlineChild_type can has collection of ClickThrough elements

  2. Section 3.7.3: CreativeExtension element: new attribute 'type' - The MIME type of any code that might be included in the extension.

  3. Section 3.15.3: HTMLResource element: HTMLResourceType now haven't attribute "xmlEncoded", that must be only String with CDATA.

  4. Section 3.4.1: AdSystem element: must be required in response, if its parent is 'InLine' element

  5. Section 3.4.4: Category element: bounded 0+, but now we can set only one category

  6. Section 3.7.1: UniversalAdId element: attributes idRegistry and idValue must be required

  7. Section 3.9.2: Mezzanine element: can be simplified to CDATA-string element (now it is complexType), because it hasn't any attributes

  8. Section 3.9.1: MediaFile element: attribute 'adaptiveStreaming' must be removed

  9. Section 3.11: Icons element: now it can be in Wrapper element too, but now we have it only in Linear element.

  10. Section 3.11.1: Icon element: attributes 'program', 'width', 'height', 'xPosition', 'yPosition' must be not required.

  11. Sections 3.11.4 and 3.11.5: IconClickThrough and IconClickTracking elements now are confused: IconClickThrough must have only String body with CDATA and IconClickTracking can have attribute 'id'

  12. Section 3.11.2: IconViewTracking element can't have attribute 'id', it is only URI string with CDATA. IconTrackingUri_type is redudant

  13. Section 3.13.4: CompanionClickTracking element: must have 'id' attribute, but now it is simple String

  14. Section 3.19.1: VASTAdTagURI element: can be simplified to String with CDATA, now it is complex type

  15. Section 3.19: Wrapper element: sub-elemnt 'Creatives' is not required

  16. Please, rename 'Verification_type' to 'VerificationWrapper_type'

Inline order of elements does not respect IAB latest specs

Looks like the order of the inline element does not follow the IAB latest specs.

I have the following sequence


Adswizz

... IAB24 ... www.dunkindonuts.com ... ...

And I get the following error when validating against the xsd
Not valid.
Error - Line 5, 10: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 10; cvc-complex-type.2.4.a: Invalid content was found starting with element 'AdTitle'. One of '{"http://www.iab.com/VAST":Error, "http://www.iab.com/VAST":Extensions, "http://www.iab.com/VAST":Impression}' is expected.

Is it valid to have a creative element within a wrapper element in vast3 and vast4 spec?

A customer set up a campaign (declared as vast4) with a creative (linear) and also Mediafiles inside of a vast wrapper having also a VASTAdTagURI redirecting to another xml which also has linear creatives.
We have a discussion and I want to make sure I got the specs right.

<xs:element name="Wrapper" minOccurs="0" maxOccurs="1" type="vast:Wrapper_type">
<xs:documentation>Second-level element surrounding wrapper ad pointing to Secondary ad server.</xs:documentation>

I see creative elements inside of the wrapper element in the specification of vast3 but not in vast4. But I have a lack of fantasy what a player should do with two linear creative elements (one from the wrapper and one from the redirect). My question: Are creatives valid inside of a wrapper? In the case of VAST3 what could be the intended behavior of the player?

NonLinearClickTracking in vast 4.2 is changed to only occur once

In 4.2 XSD schema, it's changed but the annotation said it could occur many times(unbounded), which is confusing. What's more, current schema could be not backward-compatible due to this change.

Also, the same annotation is found for ClickThrough.

Should we just modify XSD schema to make NonLinearClickTracking and ClickThrough to reflect the annotation?

<xs:element name="NonLinearClickTracking" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>URLs to ping when user clicks on the the non-linear ad unit. This can occur zero to many times (unbounded). The XSD syntax can't represent that.</xs:documentation>
        </xs:annotation>

altText and hoverText Icon attributes missing from VAST 4.2 XSD

The altText and hoverText attributes for an element (which were added in some version of VAST 4.2) are not declared in the vast 4.2 XSD document (inside the "Icon_type" definition)

Note that I'm not referring to the node beneath which IS included, I'm only referring to the attribute(s) of the node.

Clarify support for Simid Wrapper

The vast specification is not very clear if it should be possible to have a SIMID creative inside a vast Wrapper, while the actual MediaFile (e.g. an mp4 video) should be served from the wrapped vast tag.

Right now googles ImaSdk for example is not supporting it. They also seem to not be sure if that should be supported according to the vast spec or not.

here is an example of a vast wrapper which I would expect to show the simid ad and the mp4:
https://assets.redpineapplemedia.com/vast/simid-wrapper/simid-wrapper.xml
Currently, when showing this wrapper in googles imasdk the simid is not shown:
https://googleads.github.io/googleads-ima-html5/vsi/?tag=https%253A%252F%252Fassets.redpineapplemedia.com%252Fvast%252Fsimid-wrapper%252Fsimid-wrapper.xml

Here is an other example where the SIMID and the video mp4 are in the same vast tag (no wrapper), just to show the expected result:
https://googleads.github.io/googleads-ima-html5/vsi/?tag=https%253A%252F%252Fassets.redpineapplemedia.com%252Fvast%252Fsimid-wrapper%252Fsimid-vast.xml

Could you clarify if this should be supported by the spec? If currently not: could you consider adding support for this case in the next vast version?

Need to update VAST4 with newer codec spec reference

Posting for Tay @ itv

Hi Amit,
Greetings from the UK. I am working with a group of European broadcasters to ratify VAST as the interoperability standard for commercial TV. We have noticed that VAST 4.1 and VAST 4.2 are referencing obsolete reference: http://tools.ietf.org/html/rfc4281 (VAST 4.1 p53 and p54)
This has been superseded by https://tools.ietf.org/html/rfc6381
We'd appreciate if you could correct this for future releases.
Best regards,
Tay

VAST 3.0 CompanionClickTracking for inline ads

I noticed that the current schema is still on a _draft and it does not consider the <CompanionClickTracking> for inline ads. Is the schema something you guys will update for a final version? Should we use it as a validator to guarantee the format of the VAST 3.0 spec?

New VAST Macros Proposal: Continuous Play

The industry seeks to better differentiate between valid binge behavior and endless back-to-back ads with no viewers. This is particularly sensitive in lean-back environments such as CTV where a streaming device may be active while the screen is turned off or in another input.

Identifying this behavior has specifically been a part of the IAB Digital Video Impression Measurement Guidelines since 2018: “...to the extent that the video content itself (inclusive of advertising) is played without user interaction (Continuous Play) this should be disclosed to users of measurement data including disclosure of the parameters and settings to the extent known by measurement organizations“. Link to this language: http://mediaratingcouncil.org/Digital%20Video%20Served%20Impression%20Measurement%20Guidelines%20(MMTF%20June%202018).pdf

To help identify environments where ads may play endlessly without users present, DoubleVerify proposes two self-declared identifiers for passing seconds since the user last interacted with an environment and whether the environment autoplays content without user interaction.

There are two proposed macros:

  1. TIMESINCEINTERACTION: The time since the user last interacted with the device or app controls. This includes any user interaction with the environment including opening the app, clicking to play a video, muting, and pausing. Any interaction that a user directly drives should be counted. Any automatic functions should not be counted - e.g. auto play of a video.

  2. CONTINUOUSPLAY: Identifies if an environment is set to play additional videos automatically without user interaction after the end of the current video.

Please see the attached document for further details on these macros.

DV_Continuous Play Proposal_ Aug 2020.pdf

Vast 3 maxOccurs of <Error> and <Error> at root

Issue 1

<xs:element name="Error" minOccurs="0" maxOccurs="1" type="xs:anyURI">

Please clarify:

Vast 3 final spec (https://www.iab.com/wp-content/uploads/2015/06/VASTv3_0.pdf), section "2.2.4.2 Optional InLine Elements" states:

<Error>: a URI representing an error-tracking pixel; this element can occur multiple times. Errors are defined in section 2.4.2.3.

If I'm interpreting this correctly, this would seem to indicate that the maxOccurs should be "unbounded" in the xsd, not "1" -- similar to the <Impression> element.

Also, while not explicit in the spec, I would imagine, the <Error> inside the <Wrapper> would match:

<xs:element name="Error" minOccurs="0" maxOccurs="1" type="xs:anyURI">

Issue 2

There should be an <Error> element defined at the root element. See section "6 Human Readable VAST XML Schema" in the spec as well as "2.2.5.1 Summary of VAST Tracking Elements".

VAST 3.0 Creatives required under Wrapper

The VAST 3.0 schema considers the following XML to be valid:

<VAST version="3.0">
    <Ad>
        <Wrapper>
            <AdSystem>prebid.org vastUrl redirect wrapper</AdSystem>
            <VASTAdTagURI>http://www.google.com</VASTAdTagURI>
            <Impression>www.my-tracking.url.com</Impression>
            <Creatives></Creatives>
        </Wrapper>
    </Ad>
</VAST>

It also considers the following XML to be invalid:

<VAST version="3.0">
    <Ad>
        <Wrapper>
            <AdSystem>prebid.org vastUrl redirect wrapper</AdSystem>
            <VASTAdTagURI>http://www.google.com</VASTAdTagURI>
            <Impression>www.my-tracking-url.com</Impression>
        </Wrapper>
    </Ad>
</VAST>

The only difference is the empty "Creatives" tag.

In section 2.4.11, the PDF spec says:

Three optional elements are also available:

  • <Creatives>: Contains a creative element, which describe the Wrapper Ad creative

Given this, I would expect the opposite behavior. It seems like XML with no Creatives tag should be valid, but XML with an empty Creatives tag should be invalid. (XML with a Creatives tag containing a single element should also be valid).

why is VAST is xsd:sequence rather than xsd:all?

Can someone explain why the XSD's use xsd:sequence rather than xsd:all and so enforce the ordering of the elements? I cannot think of a technical reason (alphabetical means the reasoning is not for SAX and optimising reading in for RTB) so it would be helpful to know why this constraint is present?

#9 hints that it is desirable (though I cannot see anything in the VAST 4.1 spec stating alphabetical ordering is required) but I cannot see anywhere why. grep'ing the project also shows nothing but a statement in the release notes that this will be done but lacks the 'why'.

As I cannot find any explaination was this just a cosmetic reason? If so it needlessly makes creating VAST documents trickier and definately something that can trip up newcomers to VAST and is something I think most (including myself) find unexpected.

Looking forward to hearding the why, maybe it could be made into an IAB pub quiz question!

VAST Macros STOREURL and STOREID unobtainable on iOS/tvOS

On iOS/tvOS, there is no API for retrieving the app's App Store ID (e.g. 886445756). So this information would have to be provided by the app developer at their word, which is problematic for brand safety purposes. Likewise for the App Store URL.

This is in contrast to the bundle ID (e.g. com.example.app) which is retrievable directly (by say an ads SDK), and also uniquely identifies the app, which is robust for brand safety purposes.

I'd like to know more about the intention/use case for adding these macros, and if we can solve the issue by using the existing APPBUNDLE macro. For instance, Apple's App Store search API allows you to match bundle IDs to App Store IDs. This makes sense to do server-side, offline, but is prohibitive to gate ad display on, client-side.

Incorrect restriction in TrackingEvents_type in vast_4.0.xsd

In <xs:restriction base="xs:token"> tag missing next tracking events:

  • timeSpentViewing
  • minimize
  • overlayViewDuration
  • otherAdInteraction
  • acceptInvitationLinear

Must be renamed:

  • expand to adExpand
  • collapse to adCollapse
  • fullscreen to playerExpand
  • exitFullscreen to playerCollapse

VAST 4.0 xsd takes into account elements ordering

Hi.

I tried to use this xsd for checking validity of VAST 4.0 from tests: https://github.com/InteractiveAdvertisingBureau/vast/blob/master/vast4.xsd
But this use sequence anywhere. sequence takes into account order of elements (https://www.w3.org/TR/xmlschema11-1/#declare-contentModel), but VAST validator (https://vastvalidator.iabtechlab.com/dash) doesn't.

  1. Who right? also I don't see any comments in documentation related to ordering.
  2. Do you have xsd example for VAST 4.0 which doesn't use sequence?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.