Skip to content

new taboola user-id module #1

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

Merged
merged 4 commits into from
Feb 23, 2025
Merged

new taboola user-id module #1

merged 4 commits into from
Feb 23, 2025

Conversation

talavital7
Copy link
Collaborator

Type of change

  • Bugfix

  • Feature

  • New bidder adapter

  • Updated bidder adapter

  • Code style update (formatting, local variables)

  • Refactoring (no functional changes, no api changes)

  • Build related changes

  • CI related changes

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

  • Other

Description of change

added taboola's new user id submodule

Other information

@talavital7 talavital7 requested a review from ahmadlob February 3, 2025 15:14
@talavital7
Copy link
Collaborator Author

still in progress please don't merge

const [match] = cookieData.split('&').filter(item => item.startsWith(`${key}=`));
if (match) {
// eslint-disable-next-line no-unused-vars
const [_, value] = match.split('=');

Choose a reason for hiding this comment

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

Suggested change
const [_, value] = match.split('=');
const value = match.split('=')[1];

remove
// eslint-disable-next-line no-unused-vars

@@ -277,7 +277,7 @@ function fillTaboolaReqData(bidderRequest, bidRequest, data) {
const {refererInfo, gdprConsent = {}, uspConsent} = bidderRequest;
const site = getSiteProperties(bidRequest.params, refererInfo, bidderRequest.ortb2);
deepSetValue(data, 'device', bidderRequest?.ortb2?.device);
const extractedUserId = userData.getUserId(gdprConsent, uspConsent);
const extractedUserId = bidRequest?.userId?.taboolaId ? bidRequest.userId.taboolaId : userData.getUserId(gdprConsent, uspConsent);
Copy link

Choose a reason for hiding this comment

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

In today's meeting they mentioned this is not needed

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

i will remove it

* NOTE: We already have query params (?app.type=desktop&app.apikey=...),
* so we'll handle extra params carefully.
*/
const TABOOLA_SYNC_ENDPOINT = 'https://api.taboola.com/1.2/json/taboola-usersync/user.sync?app.type=desktop&app.apikey=e60e3b54fc66bae12e060a4a66536126f26e6cf8';
Copy link

Choose a reason for hiding this comment

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

api key?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

its part of the endpoint must have parameter, its a dummy api key that we asked to put (hardcoded) in the endpoint url

if (!cookieData) {
return undefined;
}
const [match] = cookieData.split('&').filter(item => item.startsWith(`${key}=`));
Copy link

Choose a reason for hiding this comment

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

cookieData undefined check missing

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

if (!cookieData) {
return undefined;
}
checking for cookieData being falsy (including undefined, null, empty string, etc.)
isn't it enough ?

talavital7 pushed a commit that referenced this pull request Feb 23, 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 (prebid#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 (prebid#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 (prebid#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 (prebid#6)

Co-authored-by: nvkftw <[email protected]>

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 (prebid#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 (prebid#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
@talavital7 talavital7 merged commit 36da6e8 into master Feb 23, 2025
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.

3 participants