-
Notifications
You must be signed in to change notification settings - Fork 769
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
Feature Request: Per-Impression Transaction IDs (BidRequest.imp[].ext.tid) #2381
Comments
PBS already has support for the |
@bretg, PBS-Go currently sets There's an open PBS-Go PR that changes this logic to the following:
Is this correct, particularly the part about setting |
What was discussed for Prebid.js is that all of the various IDs are separate. The algorithm above seems ties the setting of imp.ext.tid to source.tid not being there and I don't understand "if at least one imp did not have imp.ext.tid set: set source.tid to the request ID". Further, this approach doesn't take into account that imp.ext.tid may be defined statically in stored requests. See #1507 I would recommend something more comprehensive for each of the 4 IDs $.id - existing behavior from #1507
$.source.tid - There was much debate in PBJS circles about setting source.tid to .imp[0].tid. Several of us disagreed with this though, so I propose expanding the behavior slightly to overwrite existing values that might be in the static storedrequests tying the new behavior to the same config flag:
$.imp[].id - from #1507
$.imp[].ext.tid - extending the "empty" scenario to cover scenarios where a static value may be set in an AMP/app storedrequest, again tying that to the host config
|
There is no need to take this into account. The transaction id should not be statically defined. That defeats its purpose. If this is done today, we should discourage it.
I believe this was suggested by @robhazan in the Prebid Server Committee meeting. I do not recall the reason why source.tix and imp.ext.tid are related. Generally, I'ld like to match PBJS's behavior. There was a discussion in prebid/Prebid.js#8543 that source.tid should be used as a fallback if imp.ext.tid is not defined, so perhaps that's where link came from? |
We need to define the edge case even if not encouraged. In the PBS committee we did talk about supporting a {{UUID}} macro.
This is the PBJS PR -- prebid/Prebid.js#8591 . I don't see any logic about setting source.tid. So are we good here? |
@robhazan commented in Prebid slack that random IDs will be ok. Flagging as ready-for-dev |
Thanks all, will be implementing this logic as an update to PR: #2412 |
The PBS-Java team pointed out that there's an existing config |
since imp.id is a string, the PBS-Java team noted that taking the numeric value could be problematic or expensive. So we propose instead that missing imp.id would be random:
Heads up @ccorbo |
Done in PBS-Java 1.107 |
Implemented In PBS-Go 0.238.0. |
IAB recently approved a new Community Extension to communicate transaction IDs in OpenRTB bid requests: https://github.com/InteractiveAdvertisingBureau/openrtb/blob/master/extensions/community_extensions/per-imp-tids.md
Historically, source.tid is intended to represent a transaction ID (i.e. an ID referring to a specific impression opportunity that a seller/buyer may transact on). The problem with source.tid is that it lives at the BidRequest level - i.e. there’s only one per bid request. However, a bid request can have an array of impressions in it, and thus an array of transactions may occur.
Hanging tid off of imp.ext.tid acknowledges this reality and allows buyers and sellers to communicate about multiple transactions within one bid request. We should add support for per-impression transaction IDs to Prebid Server. It's been added to Prebid.JS per prebid/Prebid.js#8543
The text was updated successfully, but these errors were encountered: