Skip to content

New adapter: Engerio#14926

Open
david-thinkeasy wants to merge 2 commits into
prebid:masterfrom
david-thinkeasy:engerio-adapter
Open

New adapter: Engerio#14926
david-thinkeasy wants to merge 2 commits into
prebid:masterfrom
david-thinkeasy:engerio-adapter

Conversation

@david-thinkeasy
Copy link
Copy Markdown

@david-thinkeasy david-thinkeasy commented May 19, 2026

Type of change

  • New bidder adapter

  • Does this change affect user-facing APIs or examples documented on http://prebid.org?

Yes - docs PR here: prebid/prebid.github.io#6576

Description of change

New bidder adapter: Engerio

Contact e-mail: info@thinkeasy.cz or david@thinkeasy.cz

Test parameters for validating bids:

{
  "bidder": "engerio",
  "params": {
    "adUnitCode": "example-test"
  }
}

and dimensions:

"banner": {
        "w": 300,
        "h": 300,
        "format": [
          {
            "w": 300,
            "h": 300
          }
        ]
      }

Ad slot scope

Engerio slot resolution is host-scoped. If you require a live test, these values should be used:

site:page   = 'https://example.com/article'
site:domain = 'example.com'

If tested with a different page URL/host, the auction may return no bid even with a valid adUnitCode.

Example gist

I'm attaching a gist that shows a testing request and response, if useful.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9ba7d35ebb

ℹ️ 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".

Comment thread modules/engerioBidAdapter.js Outdated
url: ENDPOINT_URL,
data: JSON.stringify(bidRequest),
options: {
contentType: 'application/json',
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Send the auction payload as text/plain

For every cross-origin auction request this application/json content type forces the browser to issue a CORS preflight OPTIONS request before the bid POST, adding latency and failing entirely if the endpoint or an intermediary does not handle preflights. Prebid review guidance explicitly discourages application/json adapter calls for this reason; the request can still JSON.stringify the OpenRTB body while using the default/plain content type.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Implemented.

Comment thread modules/engerioBidAdapter.js Outdated
*/
onBidWon(bid) {
if (bid.nurl) {
fetch(bid.nurl, { method: 'GET', keepalive: true }).catch(() => {});
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Route win notices through Prebid ajax

When a bid includes nurl, this calls window.fetch directly instead of Prebid's core communication wrapper. That bypasses the ajax/fetch hooks used for request instrumentation, timeout handling, and activity-policy processing, despite the module rules requiring modules to use core communication functions for external calls; use the exported ajax helper with keepalive: true for this low-priority win notice.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Implemented.

Comment thread modules/engerioBidAdapter.js Outdated
Comment on lines +62 to +64
device: {
ua: navigator.userAgent,
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Avoid reading navigator directly from the adapter

This vendor module reads navigator.userAgent directly whenever it builds a request. The repo review rules say adapter modules should not access navigator directly; the user-agent should come from a common/core method or already-normalized request data so browser APIs remain centralized and privacy/fingerprinting handling is consistent across modules.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Implemented.

@david-thinkeasy
Copy link
Copy Markdown
Author

Changes based on comments from Codex's review should be implemented now.

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.

1 participant