68 lines
1.6 KiB
JavaScript
68 lines
1.6 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Bug 1694401 - Shim Prebid.js
|
|
*
|
|
* Some sites rely on prebid.js to place content, perhaps in conjunction with
|
|
* other services like Google Publisher Tags and Amazon TAM. This shim prevents
|
|
* site breakage like image galleries breaking as the user browsers them, by
|
|
* allowing the content placement to succeed.
|
|
*/
|
|
|
|
if (!window.pbjs?.requestBids) {
|
|
const que = window.pbjs?.que || [];
|
|
const cmd = window.pbjs?.cmd || [];
|
|
const adUnits = window.pbjs?.adUnits || [];
|
|
|
|
window.pbjs = {
|
|
adUnits,
|
|
addAdUnits(arr) {
|
|
if (!Array.isArray(arr)) {
|
|
arr = [arr];
|
|
}
|
|
adUnits.push(arr);
|
|
},
|
|
cmd,
|
|
offEvent() {},
|
|
que,
|
|
refreshAds() {},
|
|
removeAdUnit(codes) {
|
|
if (!Array.isArray(codes)) {
|
|
codes = [codes];
|
|
}
|
|
for (const code of codes) {
|
|
for (let i = adUnits.length - 1; i >= 0; i--) {
|
|
if (adUnits[i].code === code) {
|
|
adUnits.splice(i, 1);
|
|
}
|
|
}
|
|
}
|
|
},
|
|
renderAd() {},
|
|
requestBids(params) {
|
|
params?.bidsBackHandler?.();
|
|
},
|
|
setConfig() {},
|
|
setTargetingForGPTAsync() {},
|
|
};
|
|
|
|
const push = function (fn) {
|
|
if (typeof fn === "function") {
|
|
try {
|
|
fn();
|
|
} catch (e) {
|
|
console.trace(e);
|
|
}
|
|
}
|
|
};
|
|
|
|
que.push = push;
|
|
cmd.push = push;
|
|
|
|
que.forEach(push);
|
|
cmd.forEach(push);
|
|
}
|