vast-vmap
vast-vmap copied to clipboard
When using a 'wrapper', the data passed in 'onGotFirstAd' is not updated
Inside onGotFirstAd
, when calling oaf.call(that, that);
, the that
argument is passed instead of ads
. As far as I understand it should be:
(function(ad, allowPods, that) {
onGotFirstAd = function(ads) {
ad.onLoaded(ads, allowPods);
if (that.onAdsAvailable) {
var oaf = that.onAdsAvailable;
that.onAdsAvailable = null;
oaf.call(that, ads);//instead of oaf.call(that, that);
}
};
})(ad, allowPods, that);
while debugging the wrapper example I noticed that the that
object which is passed does not contain the updated data. I guess it is somehow related to the fact that its value is passed before parsing and the reference not being changed later. Changing the value to ads
fixed this issue for me. I will have to take a deeper look at this problem and see what could be the correct fix for that (if you have any ideas/suggestions I will love to here).
Wrapper example: http://demo.tremorvideo.com/proddev/vast/vast_wrapper_linear_2.xml
related to issue #2
I am on it, hope to send a pull request by tomorrow...
I believe you are right; that
will be referring to the wrapper VASTAds
, and thus will never be updated with the new data. onGotFirstAd
will be called from the new VASTAds
when it starts receiving "real" ads. The first argument (ads
) will be this
inside the new VASTAds
, which holds the new data (vast-vmap.js:424). In fact, you could probably just change that
to this
. Note that both the that
s should be changed, not just one of them, so that the line becomes
oaf.call(ads, ads)
// or
oaf.call(this, this)
As always, if you could include a test case with the PR, that would be great!
I can see that this issue is still present in the current version.
I requested to pull a new test case. I enclose a raw test where the linear Ad information is not retrieved, however the final document contains a linear Ad with mediafiles, tracking events, etc.