VMAP AdTagUri doesn't seems to work

Topics: Windows 10 UWP
Sep 14, 2015 at 12:33 PM
Hi,

We are using google VMAP in our solution (UWP WinJS) that return this:
<?xml version="1.0" encoding="UTF-8"?>
<vmap:VMAP version="1.0" xmlns:vmap="http://www.iab.net/videosuite/vmap">
<vmap:AdBreak breakId="preroll" breakType="linear" timeOffset="start">
-<vmap:AdSource followRedirects="true" allowMultipleAds="false" id="preroll-ad-1">
-<vmap:AdTagURI templateType="vast3">
-<![CDATA[http://pubads.g.doubleclick.net/gampad/ads?slotname=/4180/iptv-test.tvnz/od/warners/the-bachelor-pad/s3-ep7&sz=640x480&ciu_szs=&unviewed_position_start=1&output=xml_vast3&impl=s&env=vp&gdfp_req=1&ad_rule=0&vad_type=linear&vpos=preroll&pod=1&ppos=1&lip=true&min_ad_duration=0&max_ad_duration=31000&cust_params=sectn%3Dvideo%26type%3Dep%26sz%3D640x480%26short%3Dn%26ep%3Ds3-ep7-video-6375096%26genre%3DReality%26dist%3Dwarners%26prog%3Dthe-bachelor-pad%26chanl%3Dtv2%26site%3Dtv%26rating%3DPGR%26did%3D6375096%26&url=&correlator=1442227596405&hl=en&frm=0&video_doc_id=4428218705001&cmsid=996]]>
</vmap:AdTagURI>
</vmap:AdSource>
</vmap:AdBreak>
</vmap:VMAP>

And it doesn't work (infinite loading and no other call after this from Fiddler).
We noticed that contrary to the provided sample this vmap contain link to vast file (adTagUri) when your sample use embedded vast.

Is it an unsupported scenario?

Romain
Sep 15, 2015 at 1:18 AM
Hi,

After checking the code, in vmapFactory.cs line 60 I can see this code :
if (vmapXml.Name != ns + "VMAP") throw new ArgumentException("Invalid VMAP xml", "vmapXml");
Where ns = static XNamespace ns = "http://www.iab.net/vmap-1.0";
--> this link return 404


So Google is using the http://www.iab.net/videosuite/vmap (this link works) so that why I can gues our vmap doesn't work.

So this code raise exception when the namespace doesn't match with a hardcoded one. I assume it was made to be sure the vmap is supported, however since it is raising an exception, better to raise exception trying to deserialize any kind of vmap and don't do those tests.

I wasn't able to compile the project (1800 error like System.String not found) I tried to search on the web with no luck, I'm missing one dependency for sure but can't find which one.

I'm including this player in a UWP solution that will be used by big national broadcaster or VOD company, we already worked with HBO, WWE, Netflix and all main broadcaster/vod in the world, it will be great to have some support on that.


Romain
Sep 15, 2015 at 5:00 AM
Hi Again,

I was able to compile finally,
here a proposal to enable google DFP or other supported vmap :

in vmapFactory.cs line 60 I can see this code :
before:
if (vmapXml.Name != ns + "VMAP") throw new ArgumentException("Invalid VMAP xml", "vmapXml");

after:
//if (vmapXml.Name != ns + "VMAP") throw new ArgumentException("Invalid VMAP xml", "vmapXml");
ns = vmapXml.Name.NamespaceName;

This solution will work with any supported vmap 1.0 format.

Romain
Coordinator
Sep 15, 2015 at 6:34 PM
Not sure about this one. The VMAP spec states:

"Because VMAP wraps VAST XML-formatted ad responses, the dual XML document structure requires the use of an XML namespace in the VMAP response. For brevity, this guideline excludes the namespace in its examples, but VMAP should use the namespace URI: http://www.iab.net/videosuite/vmap with a prefix of “vmap” in front of each element name"
Sep 16, 2015 at 5:11 AM
Yes that's the point, in the current playerframework library the hardcoded namespace is http://www.iab.net/vmap-1.0 not the vsuite one's so basically cannot handle the standard vamp. But.I can guess they updated the name space. So 2 way to fix it, you can change the hardcoded namespace by the suite one's or use my 'dynamic' solution which will work if they update the namespace again. Worth case it will raise an exception...but it is the actual behavior if the name space is different.
Coordinator
Sep 16, 2015 at 3:59 PM
Sorry completely misread your second post. You are correct. This does need to change. We'll get it in the next release.
Coordinator
Oct 7, 2015 at 2:51 PM
Fixed in latest release v 3.0.0.1