From 9a44bfcc7d60758dd35539cc737bc61f6684a7c7 Mon Sep 17 00:00:00 2001 From: Jason Snellbaker Date: Fri, 19 Oct 2018 15:11:27 -0400 Subject: [PATCH 1/3] add logic to resize AST divs and iframes --- src/secureCreatives.js | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/src/secureCreatives.js b/src/secureCreatives.js index 415fbc17c63..0bce6160806 100644 --- a/src/secureCreatives.js +++ b/src/secureCreatives.js @@ -10,6 +10,7 @@ import { isSlotMatchingAdUnitCode } from './utils'; import { auctionManager } from './auctionManager'; import find from 'core-js/library/fn/array/find'; import { isRendererRequired, executeRenderer } from './Renderer'; +import { utils } from 'mocha'; const BID_WON = EVENTS.BID_WON; @@ -74,12 +75,39 @@ function sendAdToCreative(adObject, remoteDomain, source) { function resizeRemoteCreative({ adUnitCode, width, height }) { // resize both container div + iframe ['div', 'iframe'].forEach(elmType => { - let elementStyle = getElementByAdUnit(elmType).style; - elementStyle.width = width + 'px'; - elementStyle.height = height + 'px'; + let element = getElementByAdUnit(elmType); + if (element) { + let elementStyle = element.style; + elementStyle.width = width + 'px'; + elementStyle.height = height + 'px'; + } else { + utils.logWarn(`Unable to locate matching page element for adUnitCode ${adUnitCode}. Can't resize it to ad's dimensions. Please review setup.`); + } }); + function getElementByAdUnit(elmType) { - return document.getElementById(find(window.googletag.pubads().getSlots().filter(isSlotMatchingAdUnitCode(adUnitCode)), slot => slot) - .getSlotElementId()).querySelector(elmType); + let id = getElementIdBasedOnAdServer(adUnitCode); + let parentDivEle = document.getElementById(id); + return parentDivEle && parentDivEle.querySelector(elmType); + } + + function getElementIdBasedOnAdServer(adUnitCode) { + if (window.googletag) { + return getDfpElementId(adUnitCode) + } else if (window.apntag) { + return getAstElementId(adUnitCode) + } else { + return adUnitCode; + } + } + + function getDfpElementId(adUnitCode) { + return find(window.googletag.pubads().getSlots().filter(isSlotMatchingAdUnitCode(adUnitCode)), slot => slot).getSlotElementId() + } + + function getAstElementId(adUnitCode) { + let apn = window.apntag; + let astTagIds = apn.requests && apn.requests.tags && Object.keys(apn.requests.tags); + return astTagIds.length > 0 && find(astTagIds.filter(tagId => tagId === adUnitCode), tag => tag); } } From 943aa7995a3604f48ff29524ef688f715a4a1d0c Mon Sep 17 00:00:00 2001 From: Jason Snellbaker Date: Fri, 19 Oct 2018 15:18:50 -0400 Subject: [PATCH 2/3] fix import package --- src/secureCreatives.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/secureCreatives.js b/src/secureCreatives.js index 0bce6160806..7064c08706c 100644 --- a/src/secureCreatives.js +++ b/src/secureCreatives.js @@ -6,11 +6,10 @@ import events from './events'; import { fireNativeTrackers } from './native'; import { EVENTS } from './constants'; -import { isSlotMatchingAdUnitCode } from './utils'; +import { isSlotMatchingAdUnitCode, logWarn } from './utils'; import { auctionManager } from './auctionManager'; import find from 'core-js/library/fn/array/find'; import { isRendererRequired, executeRenderer } from './Renderer'; -import { utils } from 'mocha'; const BID_WON = EVENTS.BID_WON; @@ -81,7 +80,7 @@ function resizeRemoteCreative({ adUnitCode, width, height }) { elementStyle.width = width + 'px'; elementStyle.height = height + 'px'; } else { - utils.logWarn(`Unable to locate matching page element for adUnitCode ${adUnitCode}. Can't resize it to ad's dimensions. Please review setup.`); + logWarn(`Unable to locate matching page element for adUnitCode ${adUnitCode}. Can't resize it to ad's dimensions. Please review setup.`); } }); From 9e884136b1e383b4c52abcecd20bb4346082dcbf Mon Sep 17 00:00:00 2001 From: Jason Snellbaker Date: Tue, 6 Nov 2018 13:54:40 -0500 Subject: [PATCH 3/3] replace AST lookup with new API function --- src/secureCreatives.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/secureCreatives.js b/src/secureCreatives.js index 7064c08706c..67579bae76c 100644 --- a/src/secureCreatives.js +++ b/src/secureCreatives.js @@ -105,8 +105,7 @@ function resizeRemoteCreative({ adUnitCode, width, height }) { } function getAstElementId(adUnitCode) { - let apn = window.apntag; - let astTagIds = apn.requests && apn.requests.tags && Object.keys(apn.requests.tags); - return astTagIds.length > 0 && find(astTagIds.filter(tagId => tagId === adUnitCode), tag => tag); + let astTag = window.apntag.getTag(adUnitCode); + return astTag && astTag.targetId; } }