optable-targeting: Enhance Optable Targeting: Non-blocking network calls and granular traffic controls#2
Open
softcoder594 wants to merge 27 commits into
Conversation
2 tasks
There was a problem hiding this comment.
I suggest those validation functions are placed in the same package as OptableTargetingProperties. It will encourage reusability and reduce imports.
Collaborator
Author
There was a problem hiding this comment.
I would rather keep the Validator class outside the models package.
ericst-amand-optable
approved these changes
Jun 4, 2026
ericst-amand-optable
left a comment
There was a problem hiding this comment.
Looks good overall. Submitted some small comments/refactor. I did not try to run the server, nor the tests, so this is pure code review for what it is.
justadreamer
marked this pull request as ready for review
July 1, 2026 16:15
justadreamer
approved these changes
Jul 21, 2026
return early from the hook if (hasRawAuctionRequestHook && hasBidderRequestHook) - the new mode
random is 0-99, percentage is 0-100. enrich when random < (strictly less than) percentage. so if we specify percentage 0 we never enrich, if we specify percentage 100 we always enrich.
softcoder594
force-pushed
the
optable-targeting-non-blocking-early-network-call
branch
from
July 21, 2026 18:53
134fd4e to
8e8ef64
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Type of changes
What's the context?
This update reduces auction latency by initiating the Optable API call at the earliest hook stage (
raw-auction-request) and deferring the wait to the per-bidder stage (bidder-request), where the enrichment data is actually injected. It also adds granular controls over which traffic and which bidders receive enrichment.New Features
raw-auction-requestand runs in parallel with other auction processing. The result is consumed per-bidder inbidder-request, avoiding pipeline blocking.enrich-web/enrich-appflags to select which traffic sources are enriched.Backwards Compatibility
The
processed-auction-requesthook is retained as a legacy fallback. If operators have not migrated to the new execution plan, the module behaves as before — enrichment happens synchronously in the processed hook.New Configuration (recommended)
Legacy Configuration (to be migrated)
The following execution plan fragment should be removed once migrated to the new configuration above:
The
processed-auction-requesthook detects whether the new hooks (raw-auction-requestandbidder-request) are present in the execution plan. If both are active, it passes through immediately without blocking the pipeline. If the new hooks are absent, it falls back to the legacy synchronous behavior. This means the legacy fragment can be kept during migration without negating the latency benefit of the new configuration.Test plan
Quality check