@folklore/ads 0.0.34 → 0.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs.js +58 -25
- package/dist/es.js +57 -24
- package/package.json +2 -2
package/dist/cjs.js
CHANGED
|
@@ -11,8 +11,8 @@ var isArray = require('lodash/isArray');
|
|
|
11
11
|
var sortBy = require('lodash/sortBy');
|
|
12
12
|
var uniqBy = require('lodash/uniqBy');
|
|
13
13
|
var debounce = require('lodash/debounce');
|
|
14
|
-
var EventEmitter = require('wolfy87-eventemitter');
|
|
15
14
|
var createDebug = require('debug');
|
|
15
|
+
var EventEmitter = require('wolfy87-eventemitter');
|
|
16
16
|
var jsxRuntime = require('react/jsx-runtime');
|
|
17
17
|
var hooks = require('@folklore/hooks');
|
|
18
18
|
var tracking = require('@folklore/tracking');
|
|
@@ -28,8 +28,8 @@ var isArray__default = /*#__PURE__*/_interopDefaultLegacy(isArray);
|
|
|
28
28
|
var sortBy__default = /*#__PURE__*/_interopDefaultLegacy(sortBy);
|
|
29
29
|
var uniqBy__default = /*#__PURE__*/_interopDefaultLegacy(uniqBy);
|
|
30
30
|
var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
31
|
-
var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
|
|
32
31
|
var createDebug__default = /*#__PURE__*/_interopDefaultLegacy(createDebug);
|
|
32
|
+
var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
|
|
33
33
|
|
|
34
34
|
const adPath = PropTypes__default["default"].string;
|
|
35
35
|
const adSize = PropTypes__default["default"].oneOfType([PropTypes__default["default"].arrayOf(PropTypes__default["default"].number), PropTypes__default["default"].arrayOf(PropTypes__default["default"].string), PropTypes__default["default"].string, PropTypes__default["default"].arrayOf(PropTypes__default["default"].oneOfType([PropTypes__default["default"].arrayOf(PropTypes__default["default"].number), PropTypes__default["default"].arrayOf(PropTypes__default["default"].string), PropTypes__default["default"].string]))]);
|
|
@@ -260,7 +260,8 @@ class AdSlot extends EventEmitter__default["default"] {
|
|
|
260
260
|
} = this.renderEvent;
|
|
261
261
|
return size !== null ? {
|
|
262
262
|
width: size[0],
|
|
263
|
-
height: size[1]
|
|
263
|
+
height: size[1],
|
|
264
|
+
isFluid: size[0] === 0 && size[1] === 0
|
|
264
265
|
} : null;
|
|
265
266
|
}
|
|
266
267
|
}
|
|
@@ -320,7 +321,9 @@ class AdsManager extends EventEmitter__default["default"] {
|
|
|
320
321
|
this.options = {
|
|
321
322
|
disabled: false,
|
|
322
323
|
disablePersonnalizedAds: false,
|
|
323
|
-
|
|
324
|
+
disableSingleRequest: false,
|
|
325
|
+
disableLazyLoad: false,
|
|
326
|
+
disableVideoAds: false,
|
|
324
327
|
autoInit: false,
|
|
325
328
|
...opts
|
|
326
329
|
};
|
|
@@ -351,30 +354,39 @@ class AdsManager extends EventEmitter__default["default"] {
|
|
|
351
354
|
personnalizedAdsDisabled
|
|
352
355
|
} = this;
|
|
353
356
|
const {
|
|
354
|
-
|
|
357
|
+
disableSingleRequest = false,
|
|
358
|
+
disableLazyLoad = false,
|
|
359
|
+
disableVideoAds = false,
|
|
360
|
+
mobileScaling = 1.0,
|
|
361
|
+
renderMarginPercent = 100,
|
|
362
|
+
fetchMarginPercent = 300
|
|
355
363
|
} = this.options;
|
|
356
364
|
if (disabled) {
|
|
357
365
|
debug('Disable initial load');
|
|
358
366
|
googletag.pubads().disableInitialLoad();
|
|
359
367
|
}
|
|
360
|
-
if (
|
|
368
|
+
if (!disableSingleRequest) {
|
|
361
369
|
debug('Enable single request');
|
|
362
|
-
googletag.pubads().
|
|
370
|
+
googletag.pubads().disableSingleRequest();
|
|
363
371
|
}
|
|
364
372
|
if (personnalizedAdsDisabled) {
|
|
365
373
|
debug('Disable personalized ads');
|
|
366
374
|
googletag.pubads().setRequestNonPersonalizedAds(1);
|
|
367
375
|
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
376
|
+
if (!disableLazyLoad) {
|
|
377
|
+
googletag.pubads().enableLazyLoad({
|
|
378
|
+
// Fetch slots within 5 viewports.
|
|
379
|
+
fetchMarginPercent,
|
|
380
|
+
// Render slots within 2 viewports.
|
|
381
|
+
renderMarginPercent,
|
|
382
|
+
// Double the above values on mobile, where viewports are smaller
|
|
383
|
+
// and users tend to scroll faster.
|
|
384
|
+
mobileScaling
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
if (!disableVideoAds) {
|
|
388
|
+
googletag.pubads().enableVideoAds();
|
|
389
|
+
}
|
|
378
390
|
googletag.pubads().addEventListener('slotRenderEnded', this.onSlotRenderEnded);
|
|
379
391
|
googletag.pubads().addEventListener('impressionViewable', this.onSlotImpressionViewable);
|
|
380
392
|
googletag.enableServices();
|
|
@@ -633,10 +645,15 @@ const propTypes$2 = {
|
|
|
633
645
|
children: PropTypes__default["default"].node.isRequired,
|
|
634
646
|
defaultSlotPath: PropTypes__default["default"].string,
|
|
635
647
|
slotsPath: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
|
|
636
|
-
|
|
648
|
+
disableSingleRequest: PropTypes__default["default"].bool,
|
|
649
|
+
disableVideoAds: PropTypes__default["default"].bool,
|
|
650
|
+
disableLazyLoad: PropTypes__default["default"].bool,
|
|
637
651
|
autoInit: PropTypes__default["default"].bool,
|
|
638
652
|
resizeDebounceDelay: PropTypes__default["default"].number,
|
|
639
653
|
refreshOnResize: PropTypes__default["default"].bool,
|
|
654
|
+
mobileScaling: PropTypes__default["default"].number,
|
|
655
|
+
renderMarginPercent: PropTypes__default["default"].number,
|
|
656
|
+
fetchMarginPercent: PropTypes__default["default"].number,
|
|
640
657
|
slots: adSlots,
|
|
641
658
|
viewports: adViewports,
|
|
642
659
|
disabled: PropTypes__default["default"].bool,
|
|
@@ -645,10 +662,15 @@ const propTypes$2 = {
|
|
|
645
662
|
const defaultProps$2 = {
|
|
646
663
|
defaultSlotPath: null,
|
|
647
664
|
slotsPath: null,
|
|
648
|
-
|
|
665
|
+
disableSingleRequest: false,
|
|
666
|
+
disableVideoAds: false,
|
|
667
|
+
disableLazyLoad: false,
|
|
649
668
|
autoInit: true,
|
|
650
669
|
resizeDebounceDelay: 500,
|
|
651
670
|
refreshOnResize: false,
|
|
671
|
+
mobileScaling: 1.0,
|
|
672
|
+
renderMarginPercent: 100,
|
|
673
|
+
fetchMarginPercent: 300,
|
|
652
674
|
slots: slots,
|
|
653
675
|
viewports: viewports,
|
|
654
676
|
disabled: false,
|
|
@@ -659,10 +681,15 @@ function AdsProvider(_ref) {
|
|
|
659
681
|
children,
|
|
660
682
|
defaultSlotPath,
|
|
661
683
|
slotsPath,
|
|
662
|
-
|
|
684
|
+
disableSingleRequest,
|
|
685
|
+
disableVideoAds,
|
|
686
|
+
disableLazyLoad,
|
|
663
687
|
autoInit,
|
|
664
688
|
resizeDebounceDelay,
|
|
665
689
|
refreshOnResize,
|
|
690
|
+
mobileScaling,
|
|
691
|
+
renderMarginPercent,
|
|
692
|
+
fetchMarginPercent,
|
|
666
693
|
viewports,
|
|
667
694
|
slots,
|
|
668
695
|
disabled,
|
|
@@ -673,15 +700,20 @@ function AdsProvider(_ref) {
|
|
|
673
700
|
const ads = React.useMemo(() => {
|
|
674
701
|
if (adsRef.current === null) {
|
|
675
702
|
adsRef.current = new AdsManager({
|
|
676
|
-
enableSingleRequest,
|
|
677
703
|
autoInit,
|
|
678
|
-
disabled
|
|
704
|
+
disabled,
|
|
705
|
+
disableSingleRequest,
|
|
706
|
+
disableVideoAds,
|
|
707
|
+
disableLazyLoad,
|
|
708
|
+
mobileScaling,
|
|
709
|
+
renderMarginPercent,
|
|
710
|
+
fetchMarginPercent
|
|
679
711
|
});
|
|
680
712
|
} else {
|
|
681
713
|
adsRef.current.setDisabled(disabled);
|
|
682
714
|
}
|
|
683
715
|
return adsRef.current;
|
|
684
|
-
}, [
|
|
716
|
+
}, [autoInit, disabled, disableSingleRequest, disableVideoAds, disableLazyLoad, mobileScaling, renderMarginPercent, fetchMarginPercent]);
|
|
685
717
|
React.useEffect(() => {
|
|
686
718
|
let onReady = null;
|
|
687
719
|
if (!ads.isReady()) {
|
|
@@ -1072,6 +1104,7 @@ function Ad(_ref) {
|
|
|
1072
1104
|
id,
|
|
1073
1105
|
width,
|
|
1074
1106
|
height,
|
|
1107
|
+
isFluid = false,
|
|
1075
1108
|
isEmpty,
|
|
1076
1109
|
isRendered,
|
|
1077
1110
|
refObserver,
|
|
@@ -1103,10 +1136,10 @@ function Ad(_ref) {
|
|
|
1103
1136
|
}
|
|
1104
1137
|
let adStyle = null;
|
|
1105
1138
|
if (isRendered) {
|
|
1106
|
-
adStyle = {
|
|
1139
|
+
adStyle = !isFluid ? {
|
|
1107
1140
|
width,
|
|
1108
1141
|
height
|
|
1109
|
-
};
|
|
1142
|
+
} : null;
|
|
1110
1143
|
} else if (shouldKeepSize && (finalDisabled || waitingNextRender)) {
|
|
1111
1144
|
adStyle = lastRenderedSize.current;
|
|
1112
1145
|
} else if (!withoutMinimumSize) {
|
package/dist/es.js
CHANGED
|
@@ -7,8 +7,8 @@ import isArray from 'lodash/isArray';
|
|
|
7
7
|
import sortBy from 'lodash/sortBy';
|
|
8
8
|
import uniqBy from 'lodash/uniqBy';
|
|
9
9
|
import debounce from 'lodash/debounce';
|
|
10
|
-
import EventEmitter from 'wolfy87-eventemitter';
|
|
11
10
|
import createDebug from 'debug';
|
|
11
|
+
import EventEmitter from 'wolfy87-eventemitter';
|
|
12
12
|
import { jsx } from 'react/jsx-runtime';
|
|
13
13
|
import { useIntersectionObserver, useWindowEvent } from '@folklore/hooks';
|
|
14
14
|
import { useTracking } from '@folklore/tracking';
|
|
@@ -242,7 +242,8 @@ class AdSlot extends EventEmitter {
|
|
|
242
242
|
} = this.renderEvent;
|
|
243
243
|
return size !== null ? {
|
|
244
244
|
width: size[0],
|
|
245
|
-
height: size[1]
|
|
245
|
+
height: size[1],
|
|
246
|
+
isFluid: size[0] === 0 && size[1] === 0
|
|
246
247
|
} : null;
|
|
247
248
|
}
|
|
248
249
|
}
|
|
@@ -302,7 +303,9 @@ class AdsManager extends EventEmitter {
|
|
|
302
303
|
this.options = {
|
|
303
304
|
disabled: false,
|
|
304
305
|
disablePersonnalizedAds: false,
|
|
305
|
-
|
|
306
|
+
disableSingleRequest: false,
|
|
307
|
+
disableLazyLoad: false,
|
|
308
|
+
disableVideoAds: false,
|
|
306
309
|
autoInit: false,
|
|
307
310
|
...opts
|
|
308
311
|
};
|
|
@@ -333,30 +336,39 @@ class AdsManager extends EventEmitter {
|
|
|
333
336
|
personnalizedAdsDisabled
|
|
334
337
|
} = this;
|
|
335
338
|
const {
|
|
336
|
-
|
|
339
|
+
disableSingleRequest = false,
|
|
340
|
+
disableLazyLoad = false,
|
|
341
|
+
disableVideoAds = false,
|
|
342
|
+
mobileScaling = 1.0,
|
|
343
|
+
renderMarginPercent = 100,
|
|
344
|
+
fetchMarginPercent = 300
|
|
337
345
|
} = this.options;
|
|
338
346
|
if (disabled) {
|
|
339
347
|
debug('Disable initial load');
|
|
340
348
|
googletag.pubads().disableInitialLoad();
|
|
341
349
|
}
|
|
342
|
-
if (
|
|
350
|
+
if (!disableSingleRequest) {
|
|
343
351
|
debug('Enable single request');
|
|
344
|
-
googletag.pubads().
|
|
352
|
+
googletag.pubads().disableSingleRequest();
|
|
345
353
|
}
|
|
346
354
|
if (personnalizedAdsDisabled) {
|
|
347
355
|
debug('Disable personalized ads');
|
|
348
356
|
googletag.pubads().setRequestNonPersonalizedAds(1);
|
|
349
357
|
}
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
358
|
+
if (!disableLazyLoad) {
|
|
359
|
+
googletag.pubads().enableLazyLoad({
|
|
360
|
+
// Fetch slots within 5 viewports.
|
|
361
|
+
fetchMarginPercent,
|
|
362
|
+
// Render slots within 2 viewports.
|
|
363
|
+
renderMarginPercent,
|
|
364
|
+
// Double the above values on mobile, where viewports are smaller
|
|
365
|
+
// and users tend to scroll faster.
|
|
366
|
+
mobileScaling
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
if (!disableVideoAds) {
|
|
370
|
+
googletag.pubads().enableVideoAds();
|
|
371
|
+
}
|
|
360
372
|
googletag.pubads().addEventListener('slotRenderEnded', this.onSlotRenderEnded);
|
|
361
373
|
googletag.pubads().addEventListener('impressionViewable', this.onSlotImpressionViewable);
|
|
362
374
|
googletag.enableServices();
|
|
@@ -615,10 +627,15 @@ const propTypes$2 = {
|
|
|
615
627
|
children: PropTypes.node.isRequired,
|
|
616
628
|
defaultSlotPath: PropTypes.string,
|
|
617
629
|
slotsPath: PropTypes.objectOf(PropTypes.string),
|
|
618
|
-
|
|
630
|
+
disableSingleRequest: PropTypes.bool,
|
|
631
|
+
disableVideoAds: PropTypes.bool,
|
|
632
|
+
disableLazyLoad: PropTypes.bool,
|
|
619
633
|
autoInit: PropTypes.bool,
|
|
620
634
|
resizeDebounceDelay: PropTypes.number,
|
|
621
635
|
refreshOnResize: PropTypes.bool,
|
|
636
|
+
mobileScaling: PropTypes.number,
|
|
637
|
+
renderMarginPercent: PropTypes.number,
|
|
638
|
+
fetchMarginPercent: PropTypes.number,
|
|
622
639
|
slots: adSlots,
|
|
623
640
|
viewports: adViewports,
|
|
624
641
|
disabled: PropTypes.bool,
|
|
@@ -627,10 +644,15 @@ const propTypes$2 = {
|
|
|
627
644
|
const defaultProps$2 = {
|
|
628
645
|
defaultSlotPath: null,
|
|
629
646
|
slotsPath: null,
|
|
630
|
-
|
|
647
|
+
disableSingleRequest: false,
|
|
648
|
+
disableVideoAds: false,
|
|
649
|
+
disableLazyLoad: false,
|
|
631
650
|
autoInit: true,
|
|
632
651
|
resizeDebounceDelay: 500,
|
|
633
652
|
refreshOnResize: false,
|
|
653
|
+
mobileScaling: 1.0,
|
|
654
|
+
renderMarginPercent: 100,
|
|
655
|
+
fetchMarginPercent: 300,
|
|
634
656
|
slots: slots,
|
|
635
657
|
viewports: viewports,
|
|
636
658
|
disabled: false,
|
|
@@ -641,10 +663,15 @@ function AdsProvider(_ref) {
|
|
|
641
663
|
children,
|
|
642
664
|
defaultSlotPath,
|
|
643
665
|
slotsPath,
|
|
644
|
-
|
|
666
|
+
disableSingleRequest,
|
|
667
|
+
disableVideoAds,
|
|
668
|
+
disableLazyLoad,
|
|
645
669
|
autoInit,
|
|
646
670
|
resizeDebounceDelay,
|
|
647
671
|
refreshOnResize,
|
|
672
|
+
mobileScaling,
|
|
673
|
+
renderMarginPercent,
|
|
674
|
+
fetchMarginPercent,
|
|
648
675
|
viewports,
|
|
649
676
|
slots,
|
|
650
677
|
disabled,
|
|
@@ -655,15 +682,20 @@ function AdsProvider(_ref) {
|
|
|
655
682
|
const ads = useMemo(() => {
|
|
656
683
|
if (adsRef.current === null) {
|
|
657
684
|
adsRef.current = new AdsManager({
|
|
658
|
-
enableSingleRequest,
|
|
659
685
|
autoInit,
|
|
660
|
-
disabled
|
|
686
|
+
disabled,
|
|
687
|
+
disableSingleRequest,
|
|
688
|
+
disableVideoAds,
|
|
689
|
+
disableLazyLoad,
|
|
690
|
+
mobileScaling,
|
|
691
|
+
renderMarginPercent,
|
|
692
|
+
fetchMarginPercent
|
|
661
693
|
});
|
|
662
694
|
} else {
|
|
663
695
|
adsRef.current.setDisabled(disabled);
|
|
664
696
|
}
|
|
665
697
|
return adsRef.current;
|
|
666
|
-
}, [
|
|
698
|
+
}, [autoInit, disabled, disableSingleRequest, disableVideoAds, disableLazyLoad, mobileScaling, renderMarginPercent, fetchMarginPercent]);
|
|
667
699
|
useEffect(() => {
|
|
668
700
|
let onReady = null;
|
|
669
701
|
if (!ads.isReady()) {
|
|
@@ -1054,6 +1086,7 @@ function Ad(_ref) {
|
|
|
1054
1086
|
id,
|
|
1055
1087
|
width,
|
|
1056
1088
|
height,
|
|
1089
|
+
isFluid = false,
|
|
1057
1090
|
isEmpty,
|
|
1058
1091
|
isRendered,
|
|
1059
1092
|
refObserver,
|
|
@@ -1085,10 +1118,10 @@ function Ad(_ref) {
|
|
|
1085
1118
|
}
|
|
1086
1119
|
let adStyle = null;
|
|
1087
1120
|
if (isRendered) {
|
|
1088
|
-
adStyle = {
|
|
1121
|
+
adStyle = !isFluid ? {
|
|
1089
1122
|
width,
|
|
1090
1123
|
height
|
|
1091
|
-
};
|
|
1124
|
+
} : null;
|
|
1092
1125
|
} else if (shouldKeepSize && (finalDisabled || waitingNextRender)) {
|
|
1093
1126
|
adStyle = lastRenderedSize.current;
|
|
1094
1127
|
} else if (!withoutMinimumSize) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@folklore/ads",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.36",
|
|
4
4
|
"description": "Ads library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "95d101938ccd8aa13a418623d38f30793191e0a7",
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@folklore/hooks": "^0.0.44",
|
|
56
56
|
"@folklore/tracking": "^0.0.23",
|