Thanks for your investigation! Unfortunately, we're still having the issue, despite the workaround presented.
We see the issue after content playback, when the playhead immediately snaps back to where it was after the user tries to advance it. Nevertheless, we downloaded the demo code from
https://github.com/googleads/googleads-ima-html5 and gave the suggestion a go (adding the this.adsManager_ = adsManagerLoadedEvent.getAdsManager(this) line in the Ads.prototype.onAdsManagerLoaded_ callback) but still no dice.
It's important to note that this bad behavior only happens with our ad tag URL and not the sample one included with the demo.
We are also able to see the exact function that causes the snapback to happen inside of
http://imasdk.googleapis.com/js/sdkloader/ima3.js. Here are the steps we used to reproduce and determine that the function in the IMA SDK script causes the issue:
1. Using safari on Mac (chrome steps should be the same), open a new window and use iPhone device agent.
2. Click play and wait for ad to finish and content to start
3. After content started, click pause and open inspector
4. In console, enter $("video").currentTime to see the current time.
5. Then enter $("video").currentTime = 30. You will see that it moves to 30 second mark for a split second (or may not move at all) and then moves back to the prior current time which can be also seen by calling $("video").currentTime again
6. Now, if you pause the javascript in the debugger and then enter $("video").currentTime = 30 again, you'll see that the video stays at 30 seconds.
7. If you now step over/into enough of the obfuscated ima3.js code, eventually you'll see this function run:
h.Ja = function(a) {
this.b.currentTime = a
};
8. That function receives a as an argument which is the prior time and it resets the video element's current time.