From 2aa709569253616eb013c97bfe27ce45e0165be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Sok=C3=B3=C5=82?= <88041828+smart-adserver@users.noreply.github.com> Date: Wed, 2 Feb 2022 19:00:52 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20[amp-ad=20smartadserver]=20Add=20sc?= =?UTF-8?q?hain=20attribute=20(#37522)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update documentation * Support schain parameter * Fixing unit tests * Fix formatting errors in documentation --- .../0.1/amp-ad-network-smartadserver-impl.js | 5 ++ .../test-amp-ad-network-smartadserver-impl.js | 36 ++++++++++++ ...-ad-network-smartadserver-impl-internal.md | 11 ++-- .../readme.md | 55 ------------------- 4 files changed, 47 insertions(+), 60 deletions(-) delete mode 100644 extensions/amp-ad-network-smartadserver-impl/readme.md diff --git a/extensions/amp-ad-network-smartadserver-impl/0.1/amp-ad-network-smartadserver-impl.js b/extensions/amp-ad-network-smartadserver-impl/0.1/amp-ad-network-smartadserver-impl.js index 53473cf233a8..eb16e6aeefd2 100644 --- a/extensions/amp-ad-network-smartadserver-impl/0.1/amp-ad-network-smartadserver-impl.js +++ b/extensions/amp-ad-network-smartadserver-impl/0.1/amp-ad-network-smartadserver-impl.js @@ -80,6 +80,11 @@ export class AmpAdNetworkSmartadserverImpl extends AmpA4A { urlParams['hb_height'] = this.element.getAttribute('height'); } + const schain = this.element.getAttribute('data-schain'); + if (schain) { + urlParams['schain'] = schain; + } + const formatId = this.element.getAttribute('data-format'); const tagId = 'sas_' + formatId; return buildUrl( diff --git a/extensions/amp-ad-network-smartadserver-impl/0.1/test/test-amp-ad-network-smartadserver-impl.js b/extensions/amp-ad-network-smartadserver-impl/0.1/test/test-amp-ad-network-smartadserver-impl.js index bca588d703f9..6cf9d9376269 100644 --- a/extensions/amp-ad-network-smartadserver-impl/0.1/test/test-amp-ad-network-smartadserver-impl.js +++ b/extensions/amp-ad-network-smartadserver-impl/0.1/test/test-amp-ad-network-smartadserver-impl.js @@ -295,6 +295,42 @@ describes.realWin('amp-ad-network-smartadserver-impl', realWinConfig, (env) => { ); }); }); + + it('should return proper url with schain value', async () => { + element = createElementWithAttributes(doc, 'amp-ad', { + 'data-site': '1', + 'data-format': '22', + 'data-schain': 'some-sco-string', + }); + doc.body.appendChild(element); + const viewer = Services.viewerForDoc(element); + env.sandbox.stub(viewer, 'getReferrerUrl'); + return new AmpAdNetworkSmartadserverImpl(element) + .getAdUrl({}, null) + .then((url) => { + expect(url).to.match( + /^https:\/\/www\.smartadserver\.com\/ac\?siteid=1&fmtid=22&tag=sas_22&out=amp-hb&schain=some-sco-string&pgDomain=[a-zA-Z0-9.%]+&tmstp=[0-9]+$/ + ); + }); + }); + + it('should not return chain parameter in url if empty value', async () => { + element = createElementWithAttributes(doc, 'amp-ad', { + 'data-site': 10, + 'data-format': '3', + 'data-schain': '', + }); + doc.body.appendChild(element); + const viewer = Services.viewerForDoc(element); + env.sandbox.stub(viewer, 'getReferrerUrl'); + return new AmpAdNetworkSmartadserverImpl(element) + .getAdUrl({}, null) + .then((url) => { + expect(url).to.match( + /^https:\/\/www\.smartadserver\.com\/ac\?siteid=10&fmtid=3&tag=sas_3&out=amp-hb&pgDomain=[a-zA-Z0-9.%]+&tmstp=[0-9]+$/ + ); + }); + }); }); describe('getNonAmpCreativeRenderingMethod', () => { diff --git a/extensions/amp-ad-network-smartadserver-impl/amp-ad-network-smartadserver-impl-internal.md b/extensions/amp-ad-network-smartadserver-impl/amp-ad-network-smartadserver-impl-internal.md index 21f44b49063e..a72bdaa232fe 100644 --- a/extensions/amp-ad-network-smartadserver-impl/amp-ad-network-smartadserver-impl-internal.md +++ b/extensions/amp-ad-network-smartadserver-impl/amp-ad-network-smartadserver-impl-internal.md @@ -19,10 +19,10 @@ limitations under the License.
Description | -The Smartadserver fast fetch implementation for serving AMP ads, using ` |
+ The Smartadserver fast fetch implementation for serving AMP ads using <amp-ad> |
Availability | +Availability | Launched |