Open bretg opened 7 months ago
@bretg the behavior here seems reasonable and complete. The only nitpick is whether the response should contain ext.prebid.analyticstags
or if it should be ext.prebid.analytics.tags
if we want to leave the door open to add additional analytics fields on ext.prebid.analytics
.
Thanks - @bsardo . Agree that ext.prebid.analytics.tags leaves the door open for future additions. Changed.
released with PBS-Java 3.3
The split between server-side and client-side analytics continues to plague us, so adding another in a long line of features aimed at having equivalent analytics functionality. (seatnonbid was the most recent feature in this series.)
As a reminder, the use cases for server-side and client-side analytics are different:
So the aim is to have all relevant data passed to the client from Prebid Server so that client-side analytics can be the one to log the results. This behavior should be turned on the in the request so as not to send extra bytes back when unnecessary.
Here's a proposal:
ext.prebid.analytics.ADAPTER
as a way for the client to pass arguments through to server-side analytics adapters, so we add a new attribute in a new objectext.prebid.analytics.options.enableclientdetails
as a boolean.analytics.allow_client_details
boolean configuration that defaults to false.ext.prebid.analytics.options.enableclientdetails: true
and configanalytics.allow_client_details:false
, emit a warning "analytics.options.enableclientdetails not enabled for account" in the response. No metrics or logs.ext.prebid.analytics.options.enableclientdetails: true
and configanalytics.allow_client_details:true
, then PBS-core processes the analytics tags objects into the response atext.prebid.analytics.tags
.Example
The "pb-ortb-blocking" module at the "processed auction" stage adds the following Analytics Tags (from the ORTB2 blocking module)
The "vendorA-brand-safety" module at the "all processed bid responses" stage adds these ATags:
The resulting response with the request
ext.prebid.analytics.options.enableclientdetails: true
and configanalytics.options.enableclientdetails:true
would be