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

Mobkoi User ID module: Initial Release #12733

Merged
merged 4 commits into from
Feb 20, 2025
Merged

Conversation

zeeye
Copy link
Contributor

@zeeye zeeye commented Feb 5, 2025

Type of change

  • Feature

Description of change

This PR adds support for the Mobkoi ID system module, which integrates with Equativ (Smart AdServer) for user identification. Key features:

  • Implements ID synchronization with Equativ's system
  • Stores ID in browser cookie with configurable expiration
  • Supports GDPR consent passing

Example config:

pbjs.setConfig({
    userSync: {
      syncEnabled: true,
      userIds: [
        {
          name: 'mobkoiId',
          storage: {
            type: 'cookie',
            name: '_mobkoi_Id',
            expires: 30, // days
          }
        },
      ],
    },
  });

Other information

Documentation PR: prebid/prebid.github.io#5809

…e prebid RTB ORTB request to /bid (#1)

harness](https://mobkoi.atlassian.net/browse/MAX-848)

Set up a local development environment for testing and iterating on
Prebid customization changes.

Sub-tasks:

Install Prebid.js dependencies.

Create a custom Prebid.js Adapter (mobkoiBidAdapter) and build a custom
Prebid.js package to serve locally (the custom Prebid.js package is
available to serve to a local webpage).

Initialize Ad Service Bid endpoint, ensuring it can serve dummy bid
objects to the client.

Initialize Ad Server Ad endpoint to serve dummy ads/creatives that
display on the sample website.

Set up a sample website for end-to-end testing, including page load,
Prebid.js, Ad Service Bid endpoint, returning bids to the front-end, Ad
Server Ad endpoint, and loading ads on the page.

/bid](https://mobkoi.atlassian.net/browse/MAX-849)

Update Prebid.js to create ORTB-formatted bid requests for the /bid
endpoint.

Sub-tasks:

Modify Prebid request formatting to ORTB.

Validate bid responses from /bid with ORTB formatting.

Integrate the new ORTB bid request structure in the /bid endpoint base
on the data provided by Prebid.js.

Create unit tests.

feat: max-852: Prebid: Log bid win to adserver (#3)

> Related PRs mobkoi/adserver#6

adserver](https://mobkoi.atlassian.net/browse/MAX-852)

Implement logging of bid wins directly to the ad server.

Sub-tasks:

Capture winning bid events in the Prebid.js custom adapter in various
steps of biding process.

feat: max-853: Prebid: Log bid loss to adserver (#4)

adserver](https://mobkoi.atlassian.net/browse/MAX-853)

Implement logging of failed bid events for monitoring purposes.

Sub-tasks:

Initialise a Prebid custom analytic adapter.

Capture bid failure events within Prebid.js during various steps of the
bidding process

Initialise the endpoint for receiving bid loss signals.

Logs will log into Grafana, but this will be done in a separate ticket

feat: max-876: Prebid: Analytic Adapter Log debug info to adserver (#5)

> Related PR: mobkoi/adserver#10

adserver](https://mobkoi.atlassian.net/browse/MAX-876)

Add logging for debugging information to assist with monitoring and
troubleshooting.

Sub-tasks

Record events at different stages of bid processing on the client side
via the custom analytic adapter

Save event messages locally on the client.

Tag each message with one of three levels: info, warn, or debug.

feat: writing unit tests for mobkoi adapters (#6)

Co-authored-by: nvkftw <kevin.gallet@mobkoi.com>

updated doc description

added the missing mobkoiBidAdapter md

small fix for our unit test

added intergration with mobkoi getuid and setuid endpoint

double encoded the setuid callback

added mobkoiIdSystem module

got a working smartadserver sync url from provided example

got a working equativ url

before rollback to ajax call for equativ intergration

WIP testing droping pixel in iframe

feat: max-970: Prebid.js Bidder Adapter: Retrieve Adapter Parameters from Bid Configuration Object (#8)

Configuration Object](https://mobkoi.atlassian.net/browse/MAX-970)

At this stage, we are only focused on bid win events, so there is no
need for analytics adapter integration yet. To streamline the
publisher's configuration for our custom bid adapter integration, we
retrieve adapter parameters directly from the bid configuration object
instead of using "bidderConfiguration."

updated bid adapter doc

wip equativ pixel in an iframe

approvated concept cookie sync work on client side

code tidy up for the working cookie solution

removed the need for cookieName param

matches the backend endpoint name changes

feat: max-956: We need the placement ID from Tag and HB Connector to be past to the AdServer (#9)

the AdServer](https://mobkoi.atlassian.net/browse/MAX-956)

removed unexpected code

transfer the user id to ortb2 request body and set the field to null if not avaiable

fixed a minor bug

enabed consent string

added unit tests for mobkoi ID system module

fixed a minor bug

removed the code that wrapping URL in URL objects. It just make things complicated

fixed the publisher ID in macro issue

clean up branch for offical PR

pass the expiration value when setting storage using the storage manager

updated id system module md

pass expire setting to storage
@zeeye zeeye changed the title Id system Mobkoi User ID module: Initial Release Feb 5, 2025
@ChrisHuie
Copy link
Collaborator

ChrisHuie commented Feb 19, 2025

@zeeye I would also add this ID to modules/.submodules.json file

@ChrisHuie ChrisHuie requested review from ChrisHuie and removed request for mmoschovas February 19, 2025 20:44
@ChrisHuie ChrisHuie assigned ChrisHuie and unassigned mmoschovas Feb 19, 2025
@zeeye
Copy link
Contributor Author

zeeye commented Feb 20, 2025

@ChrisHuie Thank you for your comment. I have added the module name to modules/.submodules.json

@ChrisHuie ChrisHuie merged commit ff56019 into prebid:master Feb 20, 2025
6 checks passed
kiho-shige pushed a commit to DAConsortium/Prebid.js that referenced this pull request Mar 6, 2025
* feat: max-848 Prebid: setup development harness.  max-849: Prebid: Make prebid RTB ORTB request to /bid (#1)

harness](https://mobkoi.atlassian.net/browse/MAX-848)

Set up a local development environment for testing and iterating on
Prebid customization changes.

Sub-tasks:

Install Prebid.js dependencies.

Create a custom Prebid.js Adapter (mobkoiBidAdapter) and build a custom
Prebid.js package to serve locally (the custom Prebid.js package is
available to serve to a local webpage).

Initialize Ad Service Bid endpoint, ensuring it can serve dummy bid
objects to the client.

Initialize Ad Server Ad endpoint to serve dummy ads/creatives that
display on the sample website.

Set up a sample website for end-to-end testing, including page load,
Prebid.js, Ad Service Bid endpoint, returning bids to the front-end, Ad
Server Ad endpoint, and loading ads on the page.

/bid](https://mobkoi.atlassian.net/browse/MAX-849)

Update Prebid.js to create ORTB-formatted bid requests for the /bid
endpoint.

Sub-tasks:

Modify Prebid request formatting to ORTB.

Validate bid responses from /bid with ORTB formatting.

Integrate the new ORTB bid request structure in the /bid endpoint base
on the data provided by Prebid.js.

Create unit tests.

feat: max-852: Prebid: Log bid win to adserver (#3)

> Related PRs https://github.com/mobkoi/adserver/pull/6

adserver](https://mobkoi.atlassian.net/browse/MAX-852)

Implement logging of bid wins directly to the ad server.

Sub-tasks:

Capture winning bid events in the Prebid.js custom adapter in various
steps of biding process.

feat: max-853: Prebid: Log bid loss to adserver (#4)

adserver](https://mobkoi.atlassian.net/browse/MAX-853)

Implement logging of failed bid events for monitoring purposes.

Sub-tasks:

Initialise a Prebid custom analytic adapter.

Capture bid failure events within Prebid.js during various steps of the
bidding process

Initialise the endpoint for receiving bid loss signals.

Logs will log into Grafana, but this will be done in a separate ticket

feat: max-876: Prebid: Analytic Adapter Log debug info to adserver (#5)

> Related PR: https://github.com/mobkoi/adserver/pull/10

adserver](https://mobkoi.atlassian.net/browse/MAX-876)

Add logging for debugging information to assist with monitoring and
troubleshooting.

Sub-tasks

Record events at different stages of bid processing on the client side
via the custom analytic adapter

Save event messages locally on the client.

Tag each message with one of three levels: info, warn, or debug.

feat: writing unit tests for mobkoi adapters (#6)

Co-authored-by: nvkftw <kevin.gallet@mobkoi.com>

updated doc description

added the missing mobkoiBidAdapter md

small fix for our unit test

added intergration with mobkoi getuid and setuid endpoint

double encoded the setuid callback

added mobkoiIdSystem module

got a working smartadserver sync url from provided example

got a working equativ url

before rollback to ajax call for equativ intergration

WIP testing droping pixel in iframe

feat: max-970: Prebid.js Bidder Adapter: Retrieve Adapter Parameters from Bid Configuration Object (#8)

Configuration Object](https://mobkoi.atlassian.net/browse/MAX-970)

At this stage, we are only focused on bid win events, so there is no
need for analytics adapter integration yet. To streamline the
publisher's configuration for our custom bid adapter integration, we
retrieve adapter parameters directly from the bid configuration object
instead of using "bidderConfiguration."

updated bid adapter doc

wip equativ pixel in an iframe

approvated concept cookie sync work on client side

code tidy up for the working cookie solution

removed the need for cookieName param

matches the backend endpoint name changes

feat: max-956: We need the placement ID from Tag and HB Connector to be past to the AdServer (#9)

the AdServer](https://mobkoi.atlassian.net/browse/MAX-956)

removed unexpected code

transfer the user id to ortb2 request body and set the field to null if not avaiable

fixed a minor bug

enabed consent string

added unit tests for mobkoi ID system module

fixed a minor bug

removed the code that wrapping URL in URL objects. It just make things complicated

fixed the publisher ID in macro issue

clean up branch for offical PR

pass the expiration value when setting storage using the storage manager

updated id system module md

pass expire setting to storage

* code tidy up

* switch to getStorageManager instead of getCoreStorageManager

* add mobkoiIdSystem to modules/.submodules.json file
@zeeye zeeye deleted the id-system branch March 19, 2025 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants