Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native ortb #150

Merged
merged 19 commits into from
Sep 14, 2022
Merged

Native ortb #150

merged 19 commits into from
Sep 14, 2022

Conversation

FilipStamenkovic
Copy link
Contributor

This pull request is based on initiative to change prebid native to support openRTB standard.

Changes are backwards compatible, meaning with these changes puc can work with openRTB assets and with prebid 'standard' assets.

Included in this PR:

  • don't fire impression and click trackers until rendering ad is finished (rendering can fail, for instance loading script hosted under rendererUrl may fail, in that case we don't want to fire events)
  • in case ortb format is received in assetResponse, handle impression trackers and click trackers from inside the PUC, no need to be sending post messages to the pbjs so that pbjs can trigger pixels
  • added feature for handling clicktrackers defined on asset level (previously that was not possible with pbjs + puc).
  • if renderer (loaded from rendererUrl) has defined window.postRenderAd function call it after ad is rendered.

These changes are related to the following pbjs PR: native ortb

@Fawke
Copy link
Contributor

Fawke commented Jan 11, 2022

Hi @FilipStamenkovic,

Thank you for putting up this PR. I've gone through most of your change and I had a few questions/comments.

  • Do we need to update the macros? Specifically, over here, when we are trying to gather all the placeholder values to request them from Prebid.js, I don't see the new ORTB 2.5 values/placeholders being forwarded.

  • Will this work when the publisher defines the native template in the adUnit or in the Ad server?

  • It'll really be helpful if you can provide a working test page. I know you had linked one here, but I don't think it'll run locally on my machine, because you're loading up a file used on your local machine, check here. Also, while testing locally, did you try to see if the old way, using Prebid.js Native Asset names, that still works. Again a test page using the old way would be highly appreciated.

  • A unit test case for the support for ortb asset in nativeAssetManager.js would be good to have.

  • We would need a docs PR.

@FilipStamenkovic
Copy link
Contributor Author

Hi @Fawke

Thanks for your review.
To answer your questions:

  1. it looks like this is related when there isn't pbNativeTagData.requestAllAssets = true;. I'm looking at the docs how puc should behave in this situation and I couldn't find any docs or examples. In all docs that I looked we always suggest using requestAllAssets = true. So, I'm not sure if this is some legacy stuff, or how is it used.
  2. I don't think it will work. I forgot that use case, I'll update my code to support adTemplate
  3. That link I attached was just to show changes for some random bidder how their bid adapter code would change when we switch to openRTB. I will create some test page to demonstrate openRTB changes.
  4. Sure, I'll add tests for that file
  5. I opened docs pr

@FilipStamenkovic
Copy link
Contributor Author

Hi @Fawke I added example page how to test native ortb.

You can find page here

On the same branch there is also a renderer, which can render ortb native ads and 'legacy pbjs' native ads. It's located here.

To test PUC with pbjs changes I suggest using requestly to replace native-render.js that comes from GAM with script you build from this PR.

Also, I prepared python2 script that can be used as 'fake prebid server bidder' for native ads. You can find it bellow.
fake_pbs_python2.txt

@jsnellbaker jsnellbaker requested a review from dgirardi January 24, 2022 13:30
@@ -281,40 +282,38 @@ export function newNativeAssetManager(win) {

if (head) win.document.head.innerHTML = replace(head, data);

let renderPayload = data.assets;
if (data.ortb) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand this right, when we get ortb2 data in here we don't send any message back to the parent window. But it looks like on the other side we use the tracker message to signify "bid won":

https://github.com/prebid/Prebid.js/blob/7cff54d4ebf3c751c86248e9b2c14485aa41025f/src/secureCreatives.js#L111

I tried your test page to see what happens (I don't know why we would trigger BID_WON in such a way) but I am having trouble getting anything from GAM, the safeframes don't send out any request for me.

Copy link
Contributor Author

@FilipStamenkovic FilipStamenkovic Jan 25, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right, BID_WON event won't be fired in this case.
Thanks for noticing this issue.
My goal was to move firing impression trackers and click trackers from inside PUC.
I missed this effect: when pbjs is sending impression tracker, at the same time it's marking bid as winning.

The way I see it, there are two possible solutions:

  • mark bid as winning bid (and send BID_WON) when responding to the allAssetRequest post message
  • or, add one more post message when ad is rendered so that pbjs can mark bid as winning bid.

@dgirardi what do you think?

Copy link
Collaborator

@dgirardi dgirardi Jan 25, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First option is probably cleaner especially if you try to figure out the general case; without safeframe we set winning bid at the beginning of rendering; if that makes sense, it also makes sense to do it on the first message we get - could be a single asset request, could be done for this case as well (but I did not check how modules are using BID_WON).

Copy link
Contributor Author

@FilipStamenkovic FilipStamenkovic Jan 25, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For native, PUC won't fallback to window.pbjs.renderAd even without safe frames.
Then, I'll go with 1st approach. For this I've updated pbjs, more specifically native ORTB PR.

@musikele
Copy link
Contributor

Hi @dgirardi , is there anything else that has to be fixed on this PR ?

@dgirardi
Copy link
Collaborator

dgirardi commented May 27, 2022

To test this, I am using the "fake" native response from the test server you gave me @musikele. Here's the test page; it expects PUC to live at localhost:9990.

I am getting Uncaught TypeError: ortb.assets.forEach is not a function, because the fake response packages assets in an object and not an array. I don't know if it's a problem with the response or if that's legitimate.


<html>

<head>
    <link rel="icon" type="image/png" href="/favicon.png">
    <script async src="//www.googletagservices.com/tag/js/gpt.js"></script>
    <script async src="../../build/dev/prebid.js"></script>


    <script>
        var googletag = googletag || {};
        googletag.cmd = googletag.cmd || [];

        var pbjs = pbjs || {};
        pbjs.que = pbjs.que || [];
        var PREBID_TIMEOUT = 10000;

        var date = new Date().getTime();

        function initAdserver() {
            if (pbjs.initAdserverSet) return;

            googletag.cmd.push(function () {
                pbjs.que.push(function () {
                    pbjs.setTargetingForGPTAsync();
                    googletag.pubads().refresh();
                });
            });

            pbjs.initAdserverSet = true;
        }

        // Load GPT when timeout is reached.
        // setTimeout(initAdserver, PREBID_TIMEOUT);

        pbjs.que.push(function () {
            pbjs.setConfig({
                debug: true,
                bidderTimeout: 10000,
                s2sConfig: {
                    accountId: '1',
                    enabled: true, //default value set to false
                    defaultVendor: 'appnexus',
                    bidders: ['appnexus'],
                    timeout: 10000, //default value is 1000
                    adapter: 'prebidServer', //if we have any other s2s adapter, default value is s2s
                },
            });

            var adUnits = [{
                code: 'div-3',
                // sizes: [[1, 1]],
                mediaTypes: {
                    native: {
                        sendTargetingKeys: false,
                        //adTemplate: "<div class=\"sponsored-post\">\r\n  <div class=\"thumbnail\" style=\"background-image: url(##hb_native_image##);\"><\/div>\r\n  <div class=\"content\">\r\n  <h1>\r\n    <a href=\"%%CLICK_URL_UNESC%%##hb_native_linkurl##\" target=\"_blank\" class=\"pb-click\">\r\n  ##hb_native_title##\r\n    <\/a>\r\n   <\/h1>\r\n    <p>##hb_native_body##<\/p>\r\n    \t<div class=\"attribution\">\r\n \t##hb_native_brand##\r\n           \t<\/div>\r\n\t<\/div>\r\n<\/div>",
                        //rendererUrl: window.rendererUrl,
                        title: {
                            required: true,
                            len: 800
                        },
                        image: {
                            required: true,
                            sizes: [989, 742],
                        },
                        sponsoredBy: {
                            required: true
                        }
                    }
                },
                bids: [{
                    bidder: 'appnexus',
                    params: {
                        placementId: '13232354'
                    }
                }]
            }];

            pbjs.setConfig({
                debugging: {
                    enabled: true,
                    intercept: [{
                        when: {
                            bidder: 'appnexus'
                        },
                        then: function() { return {
                            mediaType: 'NATIVE',
                            native: {
                                ortb: JSON.parse(`{"ver": "1.2", "eventtrackers": [{"url": "http://localhost:5500/event?type=impression&component=card", "event": 1, "method": 1}, {"url": "http://localhost:5500/event?type=v50&component=card", "event": 2, "method": 1}], "link": {"url": "https://rtk.io", "clicktrackers": ["http://localhost:5500/event?type=click1&component=card", "http://localhost:5500/event?type=click2&component=card"]}, "assets": [{"data": {"value": "Read More"}, "id": 6}, {"data": {"value": "This is a Prebid Native Creative2."}, "id": 5}, {"id": 1, "img": {"url": "https:\\/\\/vcdn.adnxs.com\\/p\\/creative-image\\/94\\/22\\/cd\\/0f\\/9422cd0f-f400-45d3-80f5-2b92629d9257.jpg", "h": 2250, "w": 3000}}, {"id": 2, "img": {"url": "https:\\/\\/vcdn.adnxs.com\\/p\\/creative-image\\/bd\\/59\\/a6\\/c6\\/bd59a6c6-0851-411d-a16d-031475a51312.png", "h": 83, "w": 127}}, {"id": 4, "title": {"text": "This is a Prebid Native Creative"}}, {"data": {"value": "Prebid.org"}, "id": 3}]}`)
                            }
                        }}
                    }]
                }
            })

            pbjs.addAdUnits(adUnits);

            pbjs.requestBids({
                bidsBackHandler: function (bidResponses) {
                    initAdserver();
                }
            });
        });

    </script>

    <script>
        // GPT setup
        googletag.cmd.push(function () {
            googletag.defineSlot('/41758329/dgirardi-test', ['fluid'], 'div-3').setTargeting('liselect', '4').addService(googletag.pubads());

            googletag.pubads().disableInitialLoad();
            googletag.pubads().enableSingleRequest();
            googletag.enableServices();
        });

    </script>
</head>

<body>


<h2>Native Normal</h2>
<div id='div-3'>
    <script>
        googletag.cmd.push(function() { googletag.display('div-3'); });
    </script>
</div>

</body>

</html>

@musikele
Copy link
Contributor

@dgirardi
I can't observe your same problem. Here's some things I noted about your example:
0. I don't see any error in puc being logged in console.

  1. Is debugging module really working? Because I see the call being made to appnexus prebid server; shouldn't it be mocked? Also, the response seens to be sent to the ad unit.
  2. appnexus server call is failing because publisherId is a string instead of a number... And even if you change the placementId to be a number, you won't get any response
  3. Were you testing the template-inside-adunit scenario ? Because I see rendererUrl and adTemplate keys being commented out. Also, I guess you were testing this scenario to check if it's retro-compatible?
  4. You will not test prebid-universal-creative if you don't load an ad unit with the puc in it. If you want, I can provide you with one.

So, it would be very helpful to know what you wanted to exactly achieve and test.

@musikele
Copy link
Contributor

musikele commented Jun 6, 2022

Hi @dgirardi
In the end I found out why I was not seeing debugging working - I was building my pbjs without debugging module in it. Also, there is another debugging.js file that seems to be unrelated, but I was caught off guard.

Do you need anything else to move forward with this?

@dgirardi
Copy link
Collaborator

dgirardi commented Jun 6, 2022

@musikele I'd like a working example, and for release probably also documentation about the new template format. (Or just the docs and I can try building an example myself).

const ASSET_ID_ELEMENT_ATTRIBUTE = 'hb_native_asset_id';

export function fireNativeImpressionTrackers(ortb) {
const eventTrackers = ortb.eventtrackers || [];
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

with prebid/Prebid.js#8748, this should no longer be done here. I think that might be better in general since it doesn't force you to use the PUC; if we still want to do that here, the logic needs to be adjusted (see that PR) and we need to figure out a migration strategy so that trackers are not fired twice.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracker logic was moved to PrebidJS.

@musikele
Copy link
Contributor

Hi @dgirardi . I changed this PR to send messages for tracking to PBJS. Instead of firing trackers, we're now sending a message to PBJS. In PBJS there's this companion PR that will help asset clicktrackers to be fired: prebid/Prebid.js#8905

if (asset.video) {
return asset.video.vasttag;
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should default to '' (in light of #171)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand well #171 this function should return an empty string when there's no value for that placeholder... correct me if I'm wrong.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added some code after that will check for placeholders of assets that are never returned, so these are removed from the template. The scenario I'm thinking is: the request specifies some optional assets, but these assets are not returned in the response; the publisher wants to remove those from the template - so if the publisher is using a ##hb_native_asset_id_100 and asset with id 100 is not part of the response, it gets deleted.

}

function renderAd(html, bid) {
// if the current iframe is not a safeframe, try to set the
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is this related to the switch to ortb - or does this mean that native inside safeframes is currently broken?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following "if" block is to ensure the following use case: when the creative is not a GAM Native creative but "just" a simple GAM creative (the banner creative). In that case, the GAM creative does not resize itself the same way a GAM native creative would do.

Ideally this change, together with the one that separates the puc into different files, allows to render native ads into GAM banner creatives. But we need them to resize accordingly.

The only choice I did here is to say that the GAM banner creative must have a size of 1x1; in that scenario, the PUC will try to resize the iframe to the native dimentions.

@musikele musikele force-pushed the native_ortb2 branch 2 times, most recently from fdb4730 to a80579a Compare August 30, 2022 13:21
@patmmccann
Copy link
Contributor

@musikele merging 171 created a conflict here

@musikele
Copy link
Contributor

musikele commented Sep 7, 2022

@dgirardi I added some changes to native-trk.js . There's no documentation on how it should work, so my changes are just an educated guess. I think this file was reccomended with the very first version of native, the one that had the template in the ad server creative.

browserstack.err Outdated
@@ -0,0 +1 @@
[object Object]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this file and the local.log be removed from the PR? I don't think they need to be in the project.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for catching that!

Copy link
Collaborator

@jsnellbaker jsnellbaker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about the system files that were included here (eg. the .tool-versions, .vscode/, etc), but the rest of the code appears good to me from what I saw and tested with my few examples.

@musikele
Copy link
Contributor

@jsnellbaker thanks for catching this ! I'm going to remove the editor files from the PR

@jsnellbaker
Copy link
Collaborator

jsnellbaker commented Sep 14, 2022

@musikele Can you take a look at the conflicts here, additionally can you double-check the errors in the circleci test? There are some references to some unsupported functions that may be an issue?

Update This branch may just need to be rebased/synced with master. I saw there was another PR recently merged (#178) that updated the browsers.json file to not include IE11 as part of the test suite; the failures were largely in IE11, though there was a test failure that occurred in the other browsers related to:

no placeholders found but requests all assets flag set - adTemplate - openRTB
	TypeError: Object doesn't support property or method 'replaceAll'
	   at replaceORTBAssetsAndLinks (webpack:///src/nativeAssetManager.js:414:5 <- creative.js:18569:5)
	   at replace (webpack:///src/nativeAssetManager.js:435:7 <- creative.js:18592:7)
	   at replaceAssets (webpack:///src/nativeAssetManager.js:327:9 <- creative.js:18452:9)
	   at windowListener (webpack:///src/messaging.js:38:17 <- creative.js:17850:9)
	   at Anonymous function (webpack:///test/spec/nativeAssetManager_spec.js:58:5 <- creative.js:31860:5)
	   at sendMessage (webpack:///src/messaging.js:24:13 <- creative.js:17836:7)
	   at requestAllAssets (webpack:///src/nativeAssetManager.js:252:5 <- creative.js:18377:5)
	   at loadAssets (webpack:///src/nativeAssetManager.js:199:7 <- creative.js:18324:7)
	   at Anonymous function (webpack:///test/spec/nativeAssetManager_spec.js:396:7 <- creative.js:32146:7)

@musikele
Copy link
Contributor

Hi @jsnellbaker, just completed the rebase and yes, the configuration for CircleCI was updated.

@patmmccann patmmccann merged commit 68d81fc into prebid:master Sep 14, 2022
@FilipStamenkovic FilipStamenkovic deleted the native_ortb2 branch August 4, 2023 14:07
anastasiiapankivFS added a commit to freestarcapital/prebid-universal-creative that referenced this pull request May 2, 2024
* add support for catching errors from postscribe library (prebid#129)

* Prebid Universal Creative 1.12.0 Release

* increment pre version

* Static vast tag for mobile rendering API for rewarded video (prebid#148)

* the static vast tag for mobile rendering API for rewarded video

* update gulpfile to handle static vast XML file in build process

Co-authored-by: Yuriy Velichko <yuriy.velichko@openx.com>
Co-authored-by: Jason Snellbaker <jsnellbaker@appnexus.com>

* temporarily disable unit test (prebid#149)

* Prebid Universal Creative 1.13.0 Release

* increment pre version

* Signal AD_RENDER_FAILED / AD_RENDER_SUCCEEDED events to Prebid (prebid#152)

Add a new type of cross-origin message ('Prebid Message') to signal when render-related events should be generated by Prebid.

* Add issue tracking workflow: automatically create project items for new issues (prebid#161)

* Upgrade dependencies make the build work on recent(ish) versions of Node (prebid#159)

* Use MessageChannel for cross-frame messages (prebid#154)

* Use MessageChannel for cross-frame messages

* Use transformAuctionTargetingData for nativeTrackerManager

* readme: removed 'coming soon' message (prebid#170)

* Remove <!doctype> from markup before rendering with postscribe (prebid#172)

* Bump got from 11.8.3 to 11.8.5 (prebid#169)

Bumps [got](https://github.com/sindresorhus/got) from 11.8.3 to 11.8.5.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](sindresorhus/got@v11.8.3...v11.8.5)

---
updated-dependencies:
- dependency-name: got
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump copy-props from 2.0.4 to 2.0.5 (prebid#163)

Bumps [copy-props](https://github.com/gulpjs/copy-props) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/gulpjs/copy-props/releases)
- [Changelog](https://github.com/gulpjs/copy-props/blob/master/CHANGELOG.md)
- [Commits](gulpjs/copy-props@2.0.4...2.0.5)

---
updated-dependencies:
- dependency-name: copy-props
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump tar from 4.4.8 to 4.4.19 (prebid#162)

Bumps [tar](https://github.com/npm/node-tar) from 4.4.8 to 4.4.19.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](isaacs/node-tar@v4.4.8...v4.4.19)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Replace missing native assets with empty strings (prebid#171)

* Replace missing native assets with empty strings

* Update: Replace missing native assets with empty strings

* Fix: Replace missing native assets with empty strings

Co-authored-by: anita.schiller <anita.schiller@gutefrage.net>

* Fix bugs / tests with empty string default for missing assets (prebid#178)

* Fix bugs / tests with empty string default for missing assets

* Run tests on PRs

* Update test browsers to be in line with Prebid.js

* Update circleCI image to be in line with the one used for releases

* Bump yargs-parser from 5.0.0 to 5.0.1 (prebid#164)

Bumps [yargs-parser](https://github.com/yargs/yargs-parser) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/yargs/yargs-parser/releases)
- [Changelog](https://github.com/yargs/yargs-parser/blob/v5.0.1/CHANGELOG.md)
- [Commits](yargs/yargs-parser@v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: yargs-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Native ortb (prebid#150)

* if there is an ortb2 field pass it to renderAd function

* replace ortb2 with ortb

* handle impression and clicktrackers within puc

* fix tests

* add tests for native ortb trackers

* add openRTB feature for adTemplate

* add unit test for native ortb

* fix unit test post rebase

* convert legacy templates to ortb templates

* set the width of the iframe to the parent div width

* native renderer receives both legacy and ortb assets

* only resize the native ad when the size is 1x1

* send message to trigger trackers on pbjs

* default: return empty string if no asset is found

* add suport for eventtrackers as of native ortb 1.2

* fix broken test introduced with prebid#171

* fix broken test introduced with prebid#171

* remove accidentally added files

* fixes after rebasing

Co-authored-by: Michele Nasti <michele@rtk.io>
Co-authored-by: Michele Nasti <musikele@users.noreply.github.com>

* Bump engine.io and karma (prebid#173)

Bumps [engine.io](https://github.com/socketio/engine.io) and [karma](https://github.com/karma-runner/karma). These dependencies needed to be updated together.

Updates `engine.io` from 3.2.1 to 6.2.0
- [Release notes](https://github.com/socketio/engine.io/releases)
- [Changelog](https://github.com/socketio/engine.io/blob/main/CHANGELOG.md)
- [Commits](socketio/engine.io@3.2.1...6.2.0)

Updates `karma` from 4.3.0 to 6.4.0
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](karma-runner/karma@v4.3.0...v6.4.0)

---
updated-dependencies:
- dependency-name: engine.io
  dependency-type: indirect
- dependency-name: karma
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Prebid Universal Creative 1.14.0 release

* Increment version to 1.15.0-pre

* Bump ejs and webdriverio (prebid#184)

Bumps [ejs](https://github.com/mde/ejs) to 3.1.8 and updates ancestor dependency [webdriverio](https://github.com/webdriverio/webdriverio). These dependencies need to be updated together.


Updates `ejs` from 3.1.6 to 3.1.8
- [Release notes](https://github.com/mde/ejs/releases)
- [Changelog](https://github.com/mde/ejs/blob/main/CHANGELOG.md)
- [Commits](mde/ejs@v3.1.6...v3.1.8)

Updates `webdriverio` from 4.14.4 to 7.25.2
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md)
- [Commits](webdriverio/webdriverio@v4.14.4...v7.25.2)

---
updated-dependencies:
- dependency-name: ejs
  dependency-type: indirect
- dependency-name: webdriverio
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Separate puc (prebid#165)

* separate puc into multiple output files based on format

* shake plugin

* move stuff around for easier treeshaking

* add building legacy 'creative.js' for backwards compatibility
fix docs and style

* Static vast tag for mobile rendering API for rewarded video (prebid#148)

* temporarily disable unit test (prebid#149)

* Signal AD_RENDER_FAILED / AD_RENDER_SUCCEEDED events to Prebid (prebid#152)

* Add issue tracking workflow: automatically create project items for new issues

* add .npmignore to not break jsdelivr

* avoid code duplicates in gulpfile

* fix renderCrossDomain after rebase

* fixes post rebase

* in order to support tree-shaking, environment is not an object anymore

* remove deprecation warning from uid.js

* update creative in the readme.md

* add test for legacyNativeRender to accept only one argument

* added package-lock so npm ci doesn't fail

* fix to first argument of call method

* fix for iframe width not being resized correctly when creative is safeframe

* add generation of legacy files on watch

* new package lock with newer dependencies

Co-authored-by: Filip Stamenkovic <ficadub@gmail.com>
Co-authored-by: Michele Nasti <michele@rtk.io>

* add buil-dev task (prebid#189)

Co-authored-by: Michele Nasti <michele@rtk.io>

* make the project work with node latest; upgrade wdio (prebid#188)

* make the project work with node latest; upgrade wdio

* remove engine property

Co-authored-by: Michele Nasti <michele@rtk.io>

* Bump qs and body-parser (prebid#197)

Bumps [qs](https://github.com/ljharb/qs) and [body-parser](https://github.com/expressjs/body-parser). These dependencies needed to be updated together.

Updates `qs` from 6.9.0 to 6.11.0
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.9.0...v6.11.0)

Updates `body-parser` from 1.19.0 to 1.20.1
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](expressjs/body-parser@1.19.0...1.20.1)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: indirect
- dependency-name: body-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump decode-uri-component from 0.2.0 to 0.2.2 (prebid#195)

Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.
- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)
- [Commits](SamVerschueren/decode-uri-component@v0.2.0...v0.2.2)

---
updated-dependencies:
- dependency-name: decode-uri-component
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump engine.io from 6.2.0 to 6.2.1 (prebid#192)

Bumps [engine.io](https://github.com/socketio/engine.io) from 6.2.0 to 6.2.1.
- [Release notes](https://github.com/socketio/engine.io/releases)
- [Changelog](https://github.com/socketio/engine.io/blob/main/CHANGELOG.md)
- [Commits](socketio/engine.io@6.2.0...6.2.1)

---
updated-dependencies:
- dependency-name: engine.io
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* hb_native_privicon (prebid#194)

Co-authored-by: skoklowski <slawomir.koklowski@ringieraxelspringer.pl>

* Prebid Universal Creative 1.15.0 release

* Increment version to 1.16.0-pre

* Add macro to track clicks (prebid#196)

* added support for GAM macro %%CLICK_URL_UNESC%%

* add tests for %%CLICK_URL_UNESC%%

* add info about clickUrlUnesc in readme

Co-authored-by: Michele Nasti <michele@rtk.io>

* Update issue_tracker.yml for new GH API (prebid#203)

* Replace all placeholders with the corresponding ortb assets (prebid#211)

* Replace all placeholders with the corresponding ortb assets

* Add test for replacing all placeholders

* Use gulp in test script

---------

Co-authored-by: anita.schiller <anita.schiller@gutefrage.net>

* Remove DOCTYPE from markup for app/amp/mobile (prebid#210)

* Bump http-cache-semantics from 4.1.0 to 4.1.1 (prebid#205)

Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](kornelski/http-cache-semantics@v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ua-parser-js from 0.7.32 to 0.7.33 (prebid#202)

Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.32 to 0.7.33.
- [Release notes](https://github.com/faisalman/ua-parser-js/releases)
- [Changelog](https://github.com/faisalman/ua-parser-js/blob/master/changelog.md)
- [Commits](faisalman/ua-parser-js@0.7.32...0.7.33)

---
updated-dependencies:
- dependency-name: ua-parser-js
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump minimist, mkdirp, handlebars, karma-mocha and mocha (prebid#207)

Bumps [minimist](https://github.com/minimistjs/minimist) to 1.2.8 and updates ancestor dependencies [minimist](https://github.com/minimistjs/minimist), [mkdirp](https://github.com/isaacs/node-mkdirp), [handlebars](https://github.com/wycats/handlebars.js), [karma-mocha](https://github.com/karma-runner/karma-mocha) and [mocha](https://github.com/mochajs/mocha). These dependencies need to be updated together.


Updates `minimist` from 1.2.0 to 1.2.8
- [Release notes](https://github.com/minimistjs/minimist/releases)
- [Changelog](https://github.com/minimistjs/minimist/blob/main/CHANGELOG.md)
- [Commits](minimistjs/minimist@v1.2.0...v1.2.8)

Updates `mkdirp` from 0.5.1 to 0.5.6
- [Release notes](https://github.com/isaacs/node-mkdirp/releases)
- [Changelog](https://github.com/isaacs/node-mkdirp/blob/main/CHANGELOG.md)
- [Commits](isaacs/node-mkdirp@0.5.1...v0.5.6)

Updates `handlebars` from 4.4.3 to 4.7.7
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md)
- [Commits](handlebars-lang/handlebars.js@v4.4.3...v4.7.7)

Updates `karma-mocha` from 1.3.0 to 2.0.1
- [Release notes](https://github.com/karma-runner/karma-mocha/releases)
- [Changelog](https://github.com/karma-runner/karma-mocha/blob/master/CHANGELOG.md)
- [Commits](karma-runner/karma-mocha@v1.3.0...v2.0.1)

Updates `mocha` from 5.2.0 to 10.2.0
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](mochajs/mocha@v5.2.0...v10.2.0)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
- dependency-name: mkdirp
  dependency-type: indirect
- dependency-name: handlebars
  dependency-type: indirect
- dependency-name: karma-mocha
  dependency-type: direct:development
- dependency-name: mocha
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump socket.io-parser from 4.2.1 to 4.2.4 (prebid#214)

Bumps [socket.io-parser](https://github.com/socketio/socket.io-parser) from 4.2.1 to 4.2.4.
- [Release notes](https://github.com/socketio/socket.io-parser/releases)
- [Changelog](https://github.com/socketio/socket.io-parser/blob/main/CHANGELOG.md)
- [Commits](socketio/socket.io-parser@4.2.1...4.2.4)

---
updated-dependencies:
- dependency-name: socket.io-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve resize logic for native (prebid#193)

* Log error when renderAd lookup failed (prebid#217)

* Emit AD_RENDER_SUCCEEDED and AD_RENDER_FAILED for native ads (prebid#199)

* Emit AD_RENDER_SUCCEEDED and AD_RENDER_FAILED for native ads

* Merge master

* Bump fsevents from 1.2.9 to 1.2.13 (prebid#220)

Bumps [fsevents](https://github.com/fsevents/fsevents) from 1.2.9 to 1.2.13.
- [Release notes](https://github.com/fsevents/fsevents/releases)
- [Commits](fsevents/fsevents@v1.2.9...v1.2.13)

---
updated-dependencies:
- dependency-name: fsevents
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Prebid Universal Creative 1.16.0 release

* re-applied freestar logic to new codebase

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Jiří Leták <jiri.letak@ibillboard.com>
Co-authored-by: Jason Snellbaker <jsnellbaker@appnexus.com>
Co-authored-by: Yuriy Velichko <yuriy.velichko@postindustria.com>
Co-authored-by: Yuriy Velichko <yuriy.velichko@openx.com>
Co-authored-by: jsnellbaker <31102355+jsnellbaker@users.noreply.github.com>
Co-authored-by: Demetrio Girardi <demetrio.girardi@gmail.com>
Co-authored-by: Demetrio Girardi <dgirardi@prebid.org>
Co-authored-by: bretg <bgorsline@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: anitaschiller <77627311+anitaschiller@users.noreply.github.com>
Co-authored-by: anita.schiller <anita.schiller@gutefrage.net>
Co-authored-by: Filip Stamenkovic <ficadub@gmail.com>
Co-authored-by: Michele Nasti <michele@rtk.io>
Co-authored-by: Michele Nasti <musikele@users.noreply.github.com>
Co-authored-by: Prebid.js automated release <prebidjs-release@prebid.org>
Co-authored-by: Sławomir Kokłowski <38455696+skoklowski@users.noreply.github.com>
Co-authored-by: skoklowski <slawomir.koklowski@ringieraxelspringer.pl>
Co-authored-by: Sir-Will <brieftaubenman@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants