diff --git a/extensions/amp-ad-network-doubleclick-impl/0.1/amp-ad-network-doubleclick-impl.js b/extensions/amp-ad-network-doubleclick-impl/0.1/amp-ad-network-doubleclick-impl.js index 3c98443e811b..ead095800a2d 100644 --- a/extensions/amp-ad-network-doubleclick-impl/0.1/amp-ad-network-doubleclick-impl.js +++ b/extensions/amp-ad-network-doubleclick-impl/0.1/amp-ad-network-doubleclick-impl.js @@ -1250,7 +1250,16 @@ export class AmpAdNetworkDoubleclickImpl extends AmpA4A { (returnedSizeDifferent && heightNotIncreased) ) { this.attemptChangeSize(newHeight, newWidth).catch(() => {}); - if (newWidth > width) { + if ( + newWidth > width && + // If 'fluid' were the primary requested size, ensure we do not trigger + // slot adjustment if the returned size is one of the requested multi- + // sizes. Slot adjustment should only be triggered when the creative + // size is not one of the requested sizes. + (!this.isFluidPrimaryRequest_ || + (this.parameterSize && + this.parameterSize.indexOf(`${newWidth}x${newHeight}`) == -1)) + ) { this.adjustSlotPostExpansion_(newWidth); } } diff --git a/extensions/amp-ad-network-doubleclick-impl/0.1/test/test-amp-ad-network-doubleclick-impl.js b/extensions/amp-ad-network-doubleclick-impl/0.1/test/test-amp-ad-network-doubleclick-impl.js index a5429033ff1f..4e783abcfcfa 100644 --- a/extensions/amp-ad-network-doubleclick-impl/0.1/test/test-amp-ad-network-doubleclick-impl.js +++ b/extensions/amp-ad-network-doubleclick-impl/0.1/test/test-amp-ad-network-doubleclick-impl.js @@ -355,8 +355,21 @@ describes.realWin('amp-ad-network-doubleclick-impl', realWinConfig, env => { newWidth: 400, margin: '-375px', }, + { + direction: 'ltr', + parentWidth: 300, + newWidth: 200, + margin: '', + isMultiSizeResponse: true, + }, ].forEach((testCase, testNum) => { it(`should adjust slot CSS after expanding width #${testNum}`, () => { + if (testCase.isMultiSizeResponse) { + impl.parameterSize = '320x50,200x50'; + impl.isFluidPrimaryRequest_ = true; + } else { + impl.paramterSize = '200x50'; + } sandbox.stub(impl, 'attemptChangeSize').callsFake((height, width) => { impl.element.style.width = `${width}px`; return { @@ -390,8 +403,10 @@ describes.realWin('amp-ad-network-doubleclick-impl', realWinConfig, env => { }, }); expect(impl.element.style[`margin${dirStr}`]).to.equal(testCase.margin); - // We use a fixed '11' value for z-index. - expect(impl.element.style.zIndex).to.equal('11'); + if (!testCase.isMultiSizeResponse) { + // We use a fixed '11' value for z-index. + expect(impl.element.style.zIndex).to.equal('11'); + } }); }); });