46 lines
1.3 KiB
JavaScript
46 lines
1.3 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 1713704 - Shim Moat ad tracker
|
|
*
|
|
* Sites such as Forbes may gate content behind Moat ads, resulting in
|
|
* breakage like black boxes where videos should be placed. This shim
|
|
* helps mitigate that breakage by allowing the placement to succeed.
|
|
*/
|
|
|
|
if (!window.moatPrebidAPI?.__A) {
|
|
const targeting = new Map();
|
|
|
|
const slotConfig = {
|
|
m_categories: ["moat_safe"],
|
|
m_data: "0",
|
|
m_safety: "safe",
|
|
};
|
|
|
|
window.moatPrebidApi = {
|
|
__A() {},
|
|
disableLogging() {},
|
|
enableLogging() {},
|
|
getMoatTargetingForPage: () => slotConfig,
|
|
getMoatTargetingForSlot(slot) {
|
|
return targeting.get(slot?.getSlotElementId());
|
|
},
|
|
pageDataAvailable: () => true,
|
|
safetyDataAvailable: () => true,
|
|
setMoatTargetingForAllSlots() {
|
|
for (const slot of window.googletag.pubads().getSlots() || []) {
|
|
targeting.set(slot.getSlotElementId(), slot.getTargeting());
|
|
}
|
|
},
|
|
setMoatTargetingForSlot(slot) {
|
|
targeting.set(slot?.getSlotElementId(), slotConfig);
|
|
},
|
|
slotDataAvailable() {
|
|
return window.googletag?.pubads().getSlots().length > 0;
|
|
},
|
|
};
|
|
}
|