-
Notifications
You must be signed in to change notification settings - Fork 32
Closed
Description
If I'm not wrong, the problem is not related to redirect resource itself, but rather to the way how it's build.
It looks like that after script is compiled/built, then some methods are missed, in this case there is slicedToArray missed.
Steps to reproduce:
- Use latest nightly build which use latest version of
googletagservices-gptredirect resource - Enable
AdGuard Tracking Protection filter - Go to - https://example.org/
- Run in browser console:
const script = document.createElement('script');
script.setAttribute("type", "text/javascript");
script.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js';
document.getElementsByTagName('head')[0].appendChild(script);
script.onload = () => {
const slot = googletag.defineSlot('/1234567/sports', [160, 600], 'div-1');
slot.updateTargetingFromMap({
'color': 'red',
'interests': ['sports']
});
};There is an error - gpt.js:1 Uncaught ReferenceError: slicedToArray is not defined
The same happens with test like this:
test('Test updateTargetingFromMap', (assert) => {
runRedirect(name);
assert.ok(window.googletag, 'window.googletag have been created');
assert.strictEqual(typeof window.googletag.defineSlot(), 'object', 'Slot has been mocked');
const optDiv = 3;
const slot = window.googletag.defineSlot('1', 2, optDiv);
slot.updateTargetingFromMap({
color: 'red',
interests: ['sports'],
});
assert.strictEqual(slot.getTargeting('interests')[0], 'sports', '.getTargeting() has been mocked.');
assert.strictEqual(window.hit, 'FIRED', 'hit function was executed');
});It seems the problem is related to this line:
for (const [k, v] of entries) {
targeting.set(k, getTargetingValue(v));
}here:
Scriptlets/src/redirects/googletagservices-gpt.js
Lines 150 to 157 in b1e0bda
| const updateTargeting = (targeting, map) => { | |
| if (typeof map === 'object') { | |
| const entries = Object.entries(map || {}); | |
| for (const [k, v] of entries) { | |
| targeting.set(k, getTargetingValue(v)); | |
| } | |
| } | |
| }; |
Reactions are currently unavailable

