Encypher RTD Provider: verified OpenRTB provenance carrier - #15354
Encypher RTD Provider: verified OpenRTB provenance carrier#15354erik-sv wants to merge 9 commits into
Conversation
|
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5e1d07c808
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Barecheck - Code coverage reportTotal: 96.58%Your code coverage diff: 0.00% ▴ |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 415cd58214
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e2aaac8472
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d75faeb6e2
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| }; | ||
| if (datasetVersion !== undefined) payload.dataset_version = datasetVersion; | ||
| try { | ||
| sendBeacon(signalBase + '/v1/telemetry/rtd', JSON.stringify(payload)); |
There was a problem hiding this comment.
Send telemetry without ambient credentials
When telemetry: true and the browser has cross-site-eligible cookies for the Encypher signal domain, sendBeacon sends the request with ambient credentials and provides no option equivalent to credentials: 'omit'. Consequently, the telemetry transport is not actually credentialless despite the module's privacy contract; use the repository fetch/ajax wrapper with keepalive: true and explicitly omitted credentials instead.
AGENTS.md reference: AGENTS.md:L71-L71
Useful? React with 👍 / 👎.
| } else if (Array.isArray(author) && author[0]) { | ||
| meta.author = author[0].name || (typeof author[0] === 'string' ? author[0] : undefined); | ||
| /** Synchronous SHA-256 for the canonical URL lookup key. */ | ||
| export function sha256(value: string): Uint8Array { |
There was a problem hiding this comment.
i do not follow the desire for a sync implementation; i opened #15404
Type of change
Feature
Does this change affect user-facing APIs or examples documented on http://prebid.org?
Description of change
Replaces the existing Encypher RTD provider implementation rather than adding a second module.
The provider is now a lookup-only, fail-open OpenRTB carrier:
encypherprovider name and one-settingrealTimeData.dataProvidersintegration.params.signalBasetohttps://signals.encypher.comor Encypher-controlled subdomains belowsignals.encypher.com; arbitrary hosts, lookalikes, credentials, query strings, fragments, and custom ports fail open before network or telemetry.{ v, id, ref, att }at eachortb2Imp.ext.c2pawhile preserving GPID, supply chain, and caller fields.params.adoptionReportingdefaults totrue; exactlyfalseaddsadoption_reporting=0and stops future adoption observations without changing auction behavior.The edge records an adoption observation only when the browser Origin hostname exactly matches the publisher FQDN. It retains only that FQDN, first/last seen, module version, aggregate lookup/hit/miss counts, and provenance dataset version for up to 24 months. It does not retain the page URL or digest, IP, page content, user/cookie ID, bid, price, or creative. These counts are operational observations, not installation, entitlement, billing, scoring, or lift evidence.
This removes the legacy browser auto-signing, article extraction, manifest fetch, cross-page
localStorage, signer-tier inference, and globalsite.ext.data.c2papayload. No page content, user data, cookies, credentials, scores, prices, or billing fields leave the page.Publisher configuration
The provider's default total deadline is 300 ms.
realTimeData.auctionDelaymust be at least as large asparams.timeoutso Prebid waits for the asynchronous lookup before releasing the auction. Publishers who do not want domain-level adoption reporting can setparams.adoptionReporting: false.The module documentation is updated in
modules/encypherRtdProvider.md. There is no separate provider page on prebid.org today.Verification
npx gulp build --modules=rtdModule,encypherRtdProviderpassed with webpack 5.108.4.Related work
Landing dependency
The edge PR above must deploy before a v1.1 module release. The current edge supports the deployed v1.0 one-key query; PR #295 adds backward-compatible
module_versionand explicit opt-out handling.