New module: optable-targeting
🔧 Type of changes
- [x] new module
✨ What's the context?
The optable-targeting module enriches an incoming OpenRTB request by adding to the user.ext.eids and user.ext.data objects. Under the hood the module extracts PPIDs (publisher provided IDs) from the incoming request's user.ext.eids, and also if provided sha256-hashed email, sha256-hashed phone, zip or Optable Visitor ID provided correspondingly in the user.ext.optable.email, .phone, .zip, .vid fields. These IDs are sent as input to the Targeting API. The received response data is used to enrich the OpenRTB request and response. Targeting API endpoint is configurable per publisher.
https://github.com/prebid/prebid.github.io/pull/5931
🧪 Test plan
The documentation PR describes how to run a demo and this PR also contains a sample config and sample request to test. The only thing necessary will be the Optable api endpoint URL to add to the sample configuration of the module.
🏎 Quality check
- [x] Are your changes following our code style guidelines?
- [ ] Are there any breaking changes in your code?
- [x] Does your test coverage exceed 90%?
- [ ] Are there any erroneous console logs, debuggers or leftover code in your changes?
Hi guys, @And1sS @CTMBNara, just checking: any ETA to get a review? Thanks.
Hi @And1sS, thanks for the first pass. @softcoder594 has addressed the review comments. Could you please take another look?
Hi guys! 2 new features were added per Bret's suggestion:
- Optable Targeting API endpoint is now added to the host-level config with tenant and origin parameters at the account-level config
- Prebid Cache Storage is now used to cache Optable Targeting API results
Would you mind doing another review pass, please?
Hi guys, just checking in. There are clients awaiting to use this module, so we'd appreciate the next round of review comments so we could conclude quicker, or please let us know if we can do anything to expedite the process. Thanks.
cc: @CTMBNara @And1sS
@softcoder594 Please look at other classes and methods and try to simplify and remove redundancy in them like in IdsResolver and IdsMapper case.
@zapo, pls fix pom conflicts:
Error: ] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for org.prebid.server.hooks.modules:optable-targeting:3.26.0-SNAPSHOT: The following artifacts could not be resolved: org.prebid.server.hooks.modules:all-modules:pom:3.26.0-SNAPSHOT (absent): Could not find artifact org.prebid.server.hooks.modules:all-modules:pom:3.26.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 5, column 13
@
Error: The build could not read 1 project -> [Help 1]
@zapo, pls fix pom conflicts:
Error: ] Some problems were encountered while processing the POMs: [FATAL] Non-resolvable parent POM for org.prebid.server.hooks.modules:optable-targeting:3.26.0-SNAPSHOT: The following artifacts could not be resolved: org.prebid.server.hooks.modules:all-modules:pom:3.26.0-SNAPSHOT (absent): Could not find artifact org.prebid.server.hooks.modules:all-modules:pom:3.26.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 5, column 13 @ Error: The build could not read 1 project -> [Help 1]
@osulzhenko, conflicts had been fixed