Geoedge RTD Provider: outstream video monitoring - #15416
Conversation
Video creatives are VAST rather than HTML, so there is no markup to wrap. With the new `outstream` param the module wraps the bid's own renderer instead and asks the client whether the creative may run. If the client does not load in time the creative renders anyway — an ad is never lost because monitoring was unavailable. Bids carrying a safeRenderer are skipped, since prebid loads that renderer's own script and never calls bid.renderer. getInitialParams also carries `pbjs: getGlobal()` into the preloaded frame, so the client gets a direct handle instead of resolving the global by name via `_pbjsGlobals`. The frame is same-origin, so this grants no new capability — it only removes the lookup. Restores the `export` keywords the spec relies on, adds JSDoc, and extends the spec from 17 to 46 tests covering detection, wrapping, render-time enforcement, parked renders and the fail-open deadline.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d167d9bbd4
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
did you see #15262 |
|
This PR introduces changes that may not work on all browsers. According to Babel, the following polyfills may be needed, and they are not automatically included:
The best way to address this is to provide good test coverage, as normal PR checks run unit tests on older browsers. |
|
@patmmccann Hadn't seen it, thanks. I'd renamed some of the same symbols differently, which Applied directly rather than cherry-picked, since your patch expects the pre-rename symbols Happy either way on ordering. If you'd rather land #15262 first I'll rebase, the conflict I also carried the wording into the docs PR (prebid/prebid.github.io#6687), which #15262 |
Type of change
Description of change
Adds outstream video monitoring to the Geoedge RTD module.
Video creatives are VAST rather than HTML, so there is no markup to wrap. With the new
outstreamparam the module wraps the bid's own renderer instead and asks the monitoringclient whether the creative may run. If the client does not load in time the creative
renders anyway — an ad is never lost because monitoring was unavailable. Bids carrying a
safeRendererare skipped, since prebid loads that renderer's own script and never callsbid.renderer.getInitialParamsalso carriespbjs: getGlobal()into the preloaded frame, so the clientgets a direct handle instead of resolving the global by name via
_pbjsGlobals. The frameis same-origin, so this grants no new capability — it only removes the lookup.
Also restores the
exportkeywords the spec relies on, and adds JSDoc.Docs PR: prebid/prebid.github.io#6687
Test results
gulp lint— clean, no outputgulp test --file test/spec/modules/geoedgeRtdProvider_spec.js— 46 tests completed,0 failed, both feature passes
render-time enforcement, parked renders, and the fail-open deadline
modules/geoedgeRtdProvider.js— 96.9% lines, 95.3% functions, 91.1% branches