From ef8eac730183fba961e15b77d61b4ff7ccb36c6d Mon Sep 17 00:00:00 2001 From: Fatih Kaya Date: Wed, 24 Jan 2024 21:19:40 +0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Pixad=20Ad=20Integration=20|=20New?= =?UTF-8?q?=20(#39744)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Pixad Ad Integration * updated trailing whitespace. * fix * Update pixad.js * Update integration.js * Update amp-ad.md * Update pixad.md --- 3p/integration.js | 2 ++ 3p/vendors/pixad.js | 12 ++++++++ ads/_config.js | 2 ++ ads/vendors/pixad.js | 37 +++++++++++++++++++++++ ads/vendors/pixad.md | 51 ++++++++++++++++++++++++++++++++ examples/amp-ad/ads.amp.esm.html | 11 +++++++ examples/amp-ad/ads.amp.html | 11 +++++++ extensions/amp-ad/amp-ad.md | 1 + 8 files changed, 127 insertions(+) create mode 100644 3p/vendors/pixad.js create mode 100644 ads/vendors/pixad.js create mode 100644 ads/vendors/pixad.md diff --git a/3p/integration.js b/3p/integration.js index a6fafa0242e4..bdb95631b6cd 100644 --- a/3p/integration.js +++ b/3p/integration.js @@ -198,6 +198,7 @@ import {openadstream} from '#ads/vendors/openadstream'; import {openx} from '#ads/vendors/openx'; import {opinary} from '#ads/vendors/opinary'; import {outbrain} from '#ads/vendors/outbrain'; +import {pixad} from '#ads/vendors/pixad'; import {pixels} from '#ads/vendors/pixels'; import {playstream} from '#ads/vendors/playstream'; import {plista} from '#ads/vendors/plista'; @@ -488,6 +489,7 @@ register('openadstream', openadstream); register('openx', openx); register('opinary', opinary); register('outbrain', outbrain); +register('pixad', pixad); register('pixels', pixels); register('playstream', playstream); register('plista', plista); diff --git a/3p/vendors/pixad.js b/3p/vendors/pixad.js new file mode 100644 index 000000000000..6a90617263a9 --- /dev/null +++ b/3p/vendors/pixad.js @@ -0,0 +1,12 @@ +// src/polyfills.js must be the first import. +import '#3p/polyfills'; + +import {register} from '#3p/3p'; +import {draw3p, init} from '#3p/integration-lib'; + +import {pixad} from '#ads/vendors/pixad'; + +init(window); +register('pixad', pixad); + +window.draw3p = draw3p; diff --git a/ads/_config.js b/ads/_config.js index 8fb7d16ef890..3dc949da333d 100755 --- a/ads/_config.js +++ b/ads/_config.js @@ -989,6 +989,8 @@ const adConfig = jsonConfiguration({ consentHandlingOverride: true, }, + 'pixad': {}, + 'pixels': { prefetch: 'https://cdn.adsfactor.net/amp/pixels-amp.min.js', clientIdCookieName: '__AF', diff --git a/ads/vendors/pixad.js b/ads/vendors/pixad.js new file mode 100644 index 000000000000..ceb8d87a3c1c --- /dev/null +++ b/ads/vendors/pixad.js @@ -0,0 +1,37 @@ +import {validateData, writeScript} from '#3p/3p'; + +/** + * @param {!Window} global + * @param {!Object} data + */ +export function pixad(global, data) { + validateData(data, ['adNetwork', 'adPublisher', 'adTypeId']); + global._pixad = global._pixad || { + publisher: data['adNetwork'], + adNetwork: data['adPublisher'], + adTypeId: data['adTypeId'], + host: `static.cdn.pixad.com.tr`, + prefix: `px`, + }; + + if (global._pixad.publisher.indexOf('adm-pub') != -1) { + global._pixad.host = `static.cdn.admatic.com.tr`; + global._pixad.prefix = `adm`; + } + + const ins = global.document.createElement('ins'); + ins.setAttribute('data-publisher', global._pixad.publisher); + if (global._pixad.adTypeId == 'standard') { + ins.setAttribute('data-ad-size', `[[${data.width},${data.height}]]`); + } + ins.setAttribute('data-ad-network', global._pixad.adNetwork); + ins.setAttribute('data-ad-type-id', global._pixad.adTypeId); + ins.setAttribute('class', `${global._pixad.prefix}-ads-area`); + global.document.getElementById('c').appendChild(ins); + ins.parentNode.addEventListener( + 'eventAdbladeRenderStart', + global.context.renderStart() + ); + + writeScript(global, `https://${global._pixad.host}/showad/showad.min.js`); +} diff --git a/ads/vendors/pixad.md b/ads/vendors/pixad.md new file mode 100644 index 000000000000..6452c2ca07ca --- /dev/null +++ b/ads/vendors/pixad.md @@ -0,0 +1,51 @@ +# Pixad + +## Example of Pixad's model implementation + +### Basic + +```html + + +``` + +### Sticky Ad + +```html + + + + +``` + +Note that `` component requires the following script to be included in the page: + +```html + +``` + +## Configuration + +For details on the configuration semantics, see [Pixad documentation](https://developer.pixad.com.tr/). + +### Required parameters + +- `data-ad-network`: Network ID +- `data-ad-publisher`: Publisher ID +- `data-ad-type-id`: Model ID diff --git a/examples/amp-ad/ads.amp.esm.html b/examples/amp-ad/ads.amp.esm.html index 71780245c389..c92aabae50b9 100644 --- a/examples/amp-ad/ads.amp.esm.html +++ b/examples/amp-ad/ads.amp.esm.html @@ -214,6 +214,7 @@ + @@ -1705,6 +1706,16 @@

Outbrain widget

data-testMode="true"> +

Pixad

+ + +

Pixels Examples

openx + @@ -1498,6 +1499,16 @@

Outbrain widget

data-styleFile="http://localhost/style.css" data-testMode="true"> +

Pixad

+ + +

Pixels Examples

diff --git a/extensions/amp-ad/amp-ad.md b/extensions/amp-ad/amp-ad.md index 94ab17ab3ebc..a5a946b24e6c 100644 --- a/extensions/amp-ad/amp-ad.md +++ b/extensions/amp-ad/amp-ad.md @@ -420,6 +420,7 @@ See [amp-ad rules](validator-amp-ad.protoascii) in the AMP validator specificati - [Open AdStream (OAS)](../../ads/vendors/openadstream.md) - [OpenX](../../ads/vendors/openx.md) - [opinary](../../ads/vendors/opinary.md) +- [Pixad](../../ads/vendors/pixad.md) - [Pixels](../../ads/vendors/pixels.md) - [plista](../../ads/vendors/plista.md) - [polymorphicAds](../../ads/vendors/polymorphicads.md)