@schibsted/niche-ads
Advanced tools
Comparing version 5.2.1 to 5.3.0
@@ -23,2 +23,3 @@ import type { AdsConfig, Device, EidsConfig, GlimrConfig, LoadAdsArguments, Placement, PlacementConfig, Ppids, WallpaperConfig, invCodeBuilderSignature } from './types'; | ||
private _ppids; | ||
private _headerBidding; | ||
private _adBlockerDetected; | ||
@@ -28,3 +29,3 @@ get adBlockerDetected(): boolean | null; | ||
private _invCodeBuilder; | ||
constructor({ adsConfig, cdn, cogwheelCdn, wallpaper, eids, glimr, invCodeBuilder, }: { | ||
constructor({ adsConfig, cdn, cogwheelCdn, wallpaper, eids, glimr, invCodeBuilder, headerBidding, }: { | ||
adsConfig: AdsConfig; | ||
@@ -37,2 +38,6 @@ cdn?: string; | ||
invCodeBuilder: invCodeBuilderSignature; | ||
headerBidding?: { | ||
scriptUrl: string; | ||
prebidConfig: any; | ||
}; | ||
}); | ||
@@ -47,2 +52,4 @@ getPlacement: (targetId: string) => { | ||
private _sendPlacementEvent; | ||
private _getHeaderBiddingScript; | ||
private _setHeaderBiddingEids; | ||
initialize: () => Promise<void>; | ||
@@ -49,0 +56,0 @@ private _buildPlacementTag; |
@@ -51,7 +51,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
this._ppids = newPpids; | ||
if (this._eids.required) { | ||
if (this._headerBidding) { | ||
this._setHeaderBiddingEids(); | ||
} | ||
if (this._eids.required || this._headerBidding) { | ||
this._handleLoadAdsReload(); | ||
} | ||
} | ||
constructor({ adsConfig, cdn = 'https://acdn.adnxs.com/ast/ast.js', cogwheelCdn = 'https://cogwheel.inventory.schibsted.io/prod/latest/gdpr-bundle.js', wallpaper = { enabled: false }, eids = { required: false }, glimr = { enabled: false }, invCodeBuilder, }) { | ||
constructor({ adsConfig, cdn = 'https://acdn.adnxs.com/ast/ast.js', cogwheelCdn = 'https://cogwheel.inventory.schibsted.io/prod/latest/gdpr-bundle.js', wallpaper = { enabled: false }, eids = { required: false }, glimr = { enabled: false }, invCodeBuilder, headerBidding, }) { | ||
this._initialized = false; | ||
@@ -83,2 +86,51 @@ this._eventTarget = getEventTarget(); | ||
}; | ||
this._getHeaderBiddingScript = () => { | ||
var _a; | ||
if (!((_a = this._headerBidding) === null || _a === void 0 ? void 0 : _a.scriptUrl)) { | ||
return Promise.resolve(); | ||
} | ||
return loadScript(this._headerBidding.scriptUrl, 'headerBiddingScript'); | ||
}; | ||
this._setHeaderBiddingEids = () => { | ||
var _a, _b, _c; | ||
if ((_a = window.relevantDigital) === null || _a === void 0 ? void 0 : _a.addPrebidConfig) { | ||
window.relevantDigital.addPrebidConfig({ | ||
userSync: { | ||
userIds: [ | ||
{ | ||
name: 'pubProvidedId', | ||
params: { | ||
eids: [ | ||
{ | ||
source: 'SCHNO-EnvHash', | ||
uids: [ | ||
{ | ||
id: [(_b = this._ppids) === null || _b === void 0 ? void 0 : _b.PPID2], | ||
atype: 1, | ||
ext: { | ||
stype: 'ppuid', | ||
}, | ||
}, | ||
], | ||
}, | ||
{ | ||
source: 'SCHNO-UserHash', | ||
uids: [ | ||
{ | ||
id: [(_c = this._ppids) === null || _c === void 0 ? void 0 : _c.PPID1], | ||
atype: 1, | ||
ext: { | ||
stype: 'ppuid', | ||
}, | ||
}, | ||
], | ||
}, | ||
], | ||
}, | ||
}, | ||
], | ||
}, | ||
}); | ||
} | ||
}; | ||
this.initialize = () => __awaiter(this, void 0, void 0, function* () { | ||
@@ -98,4 +150,9 @@ if (this._initialized) { | ||
// load ads scripts | ||
Promise.all([loadScript(this._cdn, 'adsScript'), loadScript(this._cogwheelCdn, 'cogwheelScript')]) | ||
Promise.all([ | ||
loadScript(this._cdn, 'adsScript'), | ||
loadScript(this._cogwheelCdn, 'cogwheelScript'), | ||
this._getHeaderBiddingScript(), | ||
]) | ||
.then(() => { | ||
this._setHeaderBiddingEids(); | ||
if (!isASTLoaded()) { | ||
@@ -173,3 +230,5 @@ setUpAPNObject(); | ||
this._hasClearPlacementsBeenCalledLast = false; | ||
if (!this._device || !this.initialized || (this._eids.required && this._ppids === undefined)) { | ||
if (!this._device || | ||
!this.initialized || | ||
((this._eids.required || this._headerBidding) && this._ppids === undefined)) { | ||
this._retryLoadAds = { pageType, keywords, allowlist, blocklist }; | ||
@@ -238,3 +297,17 @@ return; | ||
}); | ||
loadTags(); | ||
if (this._headerBidding && this._headerBidding.prebidConfig) { | ||
try { | ||
window.relevantDigital.cmd.push(() => { | ||
var _a; | ||
window.relevantDigital.loadPrebid((_a = this._headerBidding) === null || _a === void 0 ? void 0 : _a.prebidConfig); | ||
}); | ||
} | ||
catch (e) { | ||
console.error('Header bidding failed', e); | ||
loadTags(); | ||
} | ||
} | ||
else { | ||
loadTags(); | ||
} | ||
}); | ||
@@ -276,3 +349,4 @@ } | ||
this._invCodeBuilder = invCodeBuilder; | ||
this._headerBidding = headerBidding; | ||
} | ||
} |
{ | ||
"name": "@schibsted/niche-ads", | ||
"version": "5.2.1", | ||
"version": "5.3.0", | ||
"description": "Package containing ads logic reappearing across our projects", | ||
@@ -30,3 +30,3 @@ "main": "lib/index.js", | ||
}, | ||
"gitHead": "b7773cc2244a07510644244965fd94320ed98281" | ||
"gitHead": "66f46f12e40f983ac830b74a03634962eda22bd3" | ||
} |
@@ -110,2 +110,9 @@ import { script, eventTarget } from '@schibsted/niche-utils'; | ||
private _headerBidding: | ||
| undefined | ||
| { | ||
scriptUrl: string; | ||
prebidConfig: any; | ||
}; | ||
private _adBlockerDetected: boolean | null = null; | ||
@@ -120,3 +127,7 @@ | ||
if (this._eids.required) { | ||
if (this._headerBidding) { | ||
this._setHeaderBiddingEids(); | ||
} | ||
if (this._eids.required || this._headerBidding) { | ||
this._handleLoadAdsReload(); | ||
@@ -136,2 +147,3 @@ } | ||
invCodeBuilder, | ||
headerBidding, | ||
}: { | ||
@@ -145,2 +157,6 @@ adsConfig: AdsConfig; | ||
invCodeBuilder: invCodeBuilderSignature; | ||
headerBidding?: { | ||
scriptUrl: string; | ||
prebidConfig: any; | ||
}; | ||
}) { | ||
@@ -154,2 +170,3 @@ this._adsConfig = adsConfig; | ||
this._invCodeBuilder = invCodeBuilder; | ||
this._headerBidding = headerBidding; | ||
} | ||
@@ -182,2 +199,52 @@ | ||
private _getHeaderBiddingScript = () => { | ||
if (!this._headerBidding?.scriptUrl) { | ||
return Promise.resolve(); | ||
} | ||
return loadScript(this._headerBidding.scriptUrl, 'headerBiddingScript'); | ||
}; | ||
private _setHeaderBiddingEids = () => { | ||
if (window.relevantDigital?.addPrebidConfig) { | ||
window.relevantDigital.addPrebidConfig({ | ||
userSync: { | ||
userIds: [ | ||
{ | ||
name: 'pubProvidedId', | ||
params: { | ||
eids: [ | ||
{ | ||
source: 'SCHNO-EnvHash', // SCHSE-EnvHash for Sweden | ||
uids: [ | ||
{ | ||
id: [this._ppids?.PPID2], | ||
atype: 1, | ||
ext: { | ||
stype: 'ppuid', | ||
}, | ||
}, | ||
], | ||
}, | ||
{ | ||
source: 'SCHNO-UserHash', // SCHSE-UserHash for Sweden | ||
uids: [ | ||
{ | ||
id: [this._ppids?.PPID1], | ||
atype: 1, | ||
ext: { | ||
stype: 'ppuid', | ||
}, | ||
}, | ||
], | ||
}, | ||
], | ||
}, | ||
}, | ||
], | ||
}, | ||
}); | ||
} | ||
}; | ||
initialize = async () => { | ||
@@ -200,4 +267,9 @@ if (this._initialized) { | ||
// load ads scripts | ||
Promise.all([loadScript(this._cdn, 'adsScript'), loadScript(this._cogwheelCdn, 'cogwheelScript')]) | ||
Promise.all([ | ||
loadScript(this._cdn, 'adsScript'), | ||
loadScript(this._cogwheelCdn, 'cogwheelScript'), | ||
this._getHeaderBiddingScript(), | ||
]) | ||
.then(() => { | ||
this._setHeaderBiddingEids(); | ||
if (!isASTLoaded()) { | ||
@@ -289,3 +361,7 @@ setUpAPNObject(); | ||
if (!this._device || !this.initialized || (this._eids.required && this._ppids === undefined)) { | ||
if ( | ||
!this._device || | ||
!this.initialized || | ||
((this._eids.required || this._headerBidding) && this._ppids === undefined) | ||
) { | ||
this._retryLoadAds = { pageType, keywords, allowlist, blocklist }; | ||
@@ -382,3 +458,14 @@ | ||
}); | ||
loadTags(); | ||
if (this._headerBidding && this._headerBidding.prebidConfig) { | ||
try { | ||
window.relevantDigital.cmd.push(() => { | ||
window.relevantDigital.loadPrebid(this._headerBidding?.prebidConfig); | ||
}); | ||
} catch (e) { | ||
console.error('Header bidding failed', e); | ||
loadTags(); | ||
} | ||
} else { | ||
loadTags(); | ||
} | ||
}); | ||
@@ -385,0 +472,0 @@ } |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
71785
30
1532