Video doesn't play on forbes.com with ETP - Strict enabled
Categories
(Core :: Privacy: Anti-Tracking, defect, P3)
Tracking
()
People
(Reporter: oanaarbuzov, Unassigned)
References
(Blocks 1 open bug, )
Details
Attachments
(2 files)
Environment:
Browser / Version: Firefox Preview Nightly 200707 (🦎 80.0a1-20200705095345)
Operating System: Huawei P20 Lite (Android 8.0.0) - 1080 x 2280 pixels, 19:9 ratio (~432 ppi density), Samsung Galaxy S6 Edge (Android 7.0) - 1440 x 2560 pixels (~577 ppi pixel density)
Steps to Reproduce:
1. Navigate https://www.forbes.com/sites/forbes-personal-shopper/2020/04/14/6-of-the-best-gaming-headsets/
2. Try to play the video.
Expected Behavior:
Video plays.
Actual Behavior:
Video doesn't play.
Note
1. The issue is not reproducible with ETP Standard.
2. Screenshot attached.
Updated•5 years ago
|
Reporter | ||
Comment 1•4 years ago
|
||
The issue still occurs, with ETP - Strict the video doesn't play.
https://prnt.sc/zzp0m7
Tested with:
Browser / Version: Firefox Nightly 210217 (🦎 87.0a1-20210217094559)
Operating System: Samsung Galaxy S8 (Android 9) - 1440 x 2960 pixels, 18.5:9 ratio (~570 ppi density)
Updated•4 years ago
|
Comment 2•4 years ago
|
||
We should probably be able to shim this with an opt-in placeholder, though it may be an involved process. We can access where to place the video through the data in the object window['fbs-video'].playerData.entries().next().value[1]
. But that seems Forbes-specific, so it doesn't seem like a practical general solution.
Investigating why the player isn't starting, the code basically gets as far as case 1 here:
FbsVideoService.prototype.init = function (options) {
return __awaiter(this, void 0, void 0, function () {
var playerData;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this.fbsAdsService = window['fbsads'];
playerData = this.playerData.get(options.videoElementId);
playerData = playerData ? Object.assign(playerData, options) : new PlayerData(options);
this.playerData.set(options.videoElementId, playerData);
playerData.amazonId = 'videoSlot' + ++this.playerCount;
return [4 /*yield*/, this.waitforGdpr()];
case 1:
_a.sent();
if (!!playerData.adsDisabled) return [3 /*break*/, 3];
return [4 /*yield*/, this.loadMnet()];
Then it fails. If I place breakpoints at the end of case 0 and start of case 1, then when I reload and the page pauses I can have the debugger to show me all caught exceptions and see hints of where it's failing. I end up seeing companionAds().getSlots() is not a function
:
googletag.cmd.push(function () {
getAdSlots(googletag.pubads().getSlots());
getAdSlots(googletag.companionAds().getSlots());
});
Or that this Moat ad API object isn't defined:
export function targetYieldSlot(slot) {
try {
window['moatPrebidApi'].setMoatTargetingForSlot(slot);
}
Or that getSizes()
isn't defined here:
export function requestIasForSlot(adSlot) {
var __iasPET = window['__iasPET'] || {};
__iasPET.queue = __iasPET.queue || [];
__iasPET.pubId = '930392';
var sizes = adSlot.getSizes().map(function (size) {
So odds are good that more shimming will help, though it's still unclear whether all three of these services are always checked, and there may be other ad-services that may need to be shimmed. It's worth checking what other un-shimmed googletag
and other ad service API endpoints they're calling in the related code block in https://i.forbesimg.com/simple-site/dist/js/commons-d9f1e2eb3bc4357b3e9e.js
Comment 3•4 years ago
|
||
Fixing this is pretty involved, and requires shimming Moat Ads's prebidding script somewhat thoroughly, the iasPET bidding script with basic objects, and Media.net's ad script with an empty file. On top of that, we'll need to make a number of improvements to our Google Publisher Tags shim. I have candidate patches almost ready for these changes.
Comment 4•3 years ago
|
||
This issue still reproduces when the ETP is set to strict, on the 8/2 Nightly build with GV 92, on Google Pixel (Android 10).
Updated•3 years ago
|
Comment 5•3 years ago
|
||
The issue is no longer reproducible on 92.0.0-beta.2 with Google Pixel 3 (Android 12), tested with ETP Strict.
Comment 6•3 years ago
•
|
||
I was able to reproduce this issue only on 8/23 Nightly on normal browsing, not in private browsing, with ETP set to strict, on Lenovo Tab M10 (Android 10).
The video keeps loading, then it displays an error message.
- Note: not reproducible on Beta 92.0.0-beta.6 build, with the same device.
Comment 7•3 years ago
|
||
![]() |
||
Updated•3 years ago
|
Updated•3 years ago
|
Comment 8•3 years ago
|
||
This has since been resolved by various SmartBlock shims.
Description
•