diff --git a/extensions/amp-auto-ads/0.1/denakop-network-config.js b/extensions/amp-auto-ads/0.1/denakop-network-config.js index a2e9adea48bd..b40537b8c047 100644 --- a/extensions/amp-auto-ads/0.1/denakop-network-config.js +++ b/extensions/amp-auto-ads/0.1/denakop-network-config.js @@ -41,12 +41,25 @@ export class DenakopNetworkConfig { * True if responsive is enabled for auto-ads */ isResponsiveEnabled() { - return false; + return true; } /** @override */ getConfigUrl() { const docInfo = Services.documentInfoForDoc(this.autoAmpAdsElement_); + const accountId = this.autoAmpAdsElement_.getAttribute('data-account-id'); + if (accountId) { + return buildUrl( + 'https://v3.denakop.com/ad-request', + { + 'a': accountId, + 'v': 'amp', + 'u': docInfo.canonicalUrl, + }, + /* maxLength */ 4096 + ); + } + const publisherId = this.autoAmpAdsElement_.getAttribute( 'data-publisher-id' ); @@ -57,8 +70,6 @@ export class DenakopNetworkConfig { 'p': publisherId, 't': tagId, 'u': docInfo.canonicalUrl, - 'w': window.screen.width, - 'h': window.screen.height, }, /* maxLength */ 4096 ); @@ -67,7 +78,6 @@ export class DenakopNetworkConfig { /** @override */ getAttributes() { const attributes = dict({ - 'layout': 'fixed', 'data-multi-size-validation': 'false', 'type': 'doubleclick', 'data-ad': 'denakop', @@ -83,10 +93,10 @@ export class DenakopNetworkConfig { return { initialMinSpacing: viewportHeight, subsequentMinSpacing: [ - {adCount: 3, spacing: viewportHeight * 2}, - {adCount: 6, spacing: viewportHeight * 3}, + {adCount: 4, spacing: viewportHeight * 2}, + {adCount: 8, spacing: viewportHeight * 3}, ], - maxAdCount: 8, + maxAdCount: 20, }; } diff --git a/extensions/amp-auto-ads/0.1/test/test-denakop-network-config.js b/extensions/amp-auto-ads/0.1/test/test-denakop-network-config.js index 014b6503dd40..2b2adb0e9695 100644 --- a/extensions/amp-auto-ads/0.1/test/test-denakop-network-config.js +++ b/extensions/amp-auto-ads/0.1/test/test-denakop-network-config.js @@ -28,12 +28,15 @@ describes.realWin( }, (env) => { let ampAutoAdsElem; + let oldAmpAutoAdsElem; let document; beforeEach(() => { document = env.win.document; ampAutoAdsElem = document.createElement('amp-auto-ads'); env.win.document.body.appendChild(ampAutoAdsElem); + oldAmpAutoAdsElem = document.createElement('amp-auto-ads'); + env.win.document.body.appendChild(oldAmpAutoAdsElem); }); afterEach(() => { @@ -41,12 +44,14 @@ describes.realWin( }); describe('Denakop', () => { + const ACCOUNT_ID = '1'; const PUBLISHER_ID = '1000'; const TAG_ID = '2819896d-f724'; beforeEach(() => { - ampAutoAdsElem.setAttribute('data-publisher-id', PUBLISHER_ID); - ampAutoAdsElem.setAttribute('data-tag-id', TAG_ID); + oldAmpAutoAdsElem.setAttribute('data-publisher-id', PUBLISHER_ID); + oldAmpAutoAdsElem.setAttribute('data-tag-id', TAG_ID); + ampAutoAdsElem.setAttribute('data-account-id', ACCOUNT_ID); }); it('should report enabled always', () => { @@ -58,31 +63,25 @@ describes.realWin( const adNetwork = getAdNetworkConfig('denakop', ampAutoAdsElem); const configUrl = adNetwork.getConfigUrl(); - expect(configUrl).to.contain('//v2.denakop.com/ad-request/amp'); - expect(configUrl).to.contain('p=' + PUBLISHER_ID); - expect(configUrl).to.contain('t=' + TAG_ID); + expect(configUrl).to.contain('https://v3.denakop.com/ad-request'); + expect(configUrl).to.contain('a=' + ACCOUNT_ID); + expect(configUrl).to.contain('v=amp'); expect(configUrl).to.contain('u=https%3A%2F%2Ffoo.bar%2Fbaz'); }); - it.skip("should truncate the URL if it's too long", () => { - const adNetwork = getAdNetworkConfig('denakop', ampAutoAdsElem); - - const canonicalUrl = - 'http://foo.bar/a'.repeat(4050) + 'shouldnt_be_included'; - - const docInfo = Services.documentInfoForDoc(ampAutoAdsElem); - env.sandbox.stub(docInfo, 'canonicalUrl').callsFake(canonicalUrl); + it('should generate the old config fetch URL', () => { + const adNetwork = getAdNetworkConfig('denakop', oldAmpAutoAdsElem); + const configUrl = adNetwork.getConfigUrl(); - const url = adNetwork.getConfigUrl(); - expect(url).to.contain('ama_t=amp'); - expect(url).to.contain('url=http%3A%2F%2Ffoo.bar'); - expect(url).not.to.contain('shouldnt_be_included'); + expect(configUrl).to.contain('//v2.denakop.com/ad-request/amp'); + expect(configUrl).to.contain('p=' + PUBLISHER_ID); + expect(configUrl).to.contain('t=' + TAG_ID); + expect(configUrl).to.contain('u=https%3A%2F%2Ffoo.bar%2Fbaz'); }); it('should generate the attributes', () => { const adNetwork = getAdNetworkConfig('denakop', ampAutoAdsElem); expect(adNetwork.getAttributes()).to.deep.equal({ - 'layout': 'fixed', 'data-multi-size-validation': 'false', 'type': 'doubleclick', 'data-ad': 'denakop', @@ -102,16 +101,16 @@ describes.realWin( expect(adNetwork.getDefaultAdConstraints()).to.deep.equal({ initialMinSpacing: 500, subsequentMinSpacing: [ - {adCount: 3, spacing: 1000}, - {adCount: 6, spacing: 1500}, + {adCount: 4, spacing: 1000}, + {adCount: 8, spacing: 1500}, ], - maxAdCount: 8, + maxAdCount: 20, }); }); - it('should not be responsive-enabled', () => { + it('responsive should be enabled', () => { const adNetwork = getAdNetworkConfig('denakop', ampAutoAdsElem); - expect(adNetwork.isResponsiveEnabled()).to.be.false; + expect(adNetwork.isResponsiveEnabled()).to.be.true; }); }); }