-
Notifications
You must be signed in to change notification settings - Fork 742
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
PBS - Provision for Injecting Video Event Trackers #1725
Comments
I'd like to step back and consider the requirements here, @ShriprasadM . Are you with a Prebid.org member company? Would like to discuss in this week's committee meeting and/or set up set up a separate call. This is not a small feature. I get that you want to be able to add the quartile events. But does the tracking URL really have to be configurable? Ideally we could wait on this additional tracking for when we have the modularity design in place. Then it could be a VAST tracking module and you can build whatever you want. But since that's probably quite a ways out still, here's a counter-proposal that better fits the "Prebid Way" as documented at https://docs.google.com/document/d/1ry0X4C2EV-R0pMrm1IQk9BstxaT395UCl3KKqTGa5c8/edit
Here's an example config that could extend easily to all video events:
There are a couple of aspects of the original proposal either I don't find appealing or maybe I just don't understand them:
Adding @mike-chowla and @dbridges12 as video experts to weigh in on the details of VAST, especially the idea of adding tracking to Wrappers. |
Hi @bretg, Thanks for the feedback on this. @ShriprasadM is an engineer at PubMatic. I didn't quite follow what the issue is with adding tracking to a VAST wrapper. My understanding is that tracking elements can appear in a wrapper. The VAST that comes back from Prebid bidders is usually the SSP's wrapper with some tracking elements added. My initial thought is that the trackers would just be fired from the VAST direct instead of being proxied by the PBS but thinking about it some more, I can see the advantage sending them to PBS which can then call events on PBS Analytics adapters. I've ask Shriprasad if he can attend the PBS PMC meeting to discuss further |
@dbridges12 also confirmed that are supported in Wrappers. The VAST 3.0 standard is confusing on this point -- glad it's not an issue. He also confirmed that multiple blocks for one type of event are ok. |
Thanks, @mike-chowla for an update on this. Hi @bretg Here are answers to the questions
Support for standard macros (Feature)
**Video Event Tracker Injections Scenarios **
Questions
Modularity Design - We can check if we can accommodate the current design proposal here. |
I want to support the effort to improve video, but it's going to take some more discussion to iron out how to do this - there are several design aspects here I'm concerned about. You might save us all some time if you wrote out the requirements first, but we made an effort to read between the lines of your more intricate suggestions. Let us know if we got them right. Please note that this all coming up in the context of us working out a new modular architecture that could accommodate some of these requests.
PBS terminology is that "host company" is the entity that downloads and hosts the server.
What this suggests is that a Prebid Server host company should be able to delegate ALL event tracking to a system outside of Prebid Server. You didn't state why, but it must be that you already have an analytics server and you want the player's events to go directly there rather than via PBS. However, I'm not architecturally comfortable with complete delegation -- i.e. totally overriding the PBS/event URL. The long term vision is that Prebid Server becomes an ecosystem of many modules, some of which may want to receive the video events. This implies two possible approaches:
There are obviously tradeoffs here. #1 is more work for the player. #2 is more work coding up the "analytics redirect" module.
Since there's already a /vtrack endpoint that means something else, I'd suggest just calling this t=vast.
Why not just pass the full VAST event name in the new 'e' parameter? That seems much cleaner than making up another mapping table. i.e. why not:
Two thoughts here:
We don't understand why PBS needs to deal with macros. This is something the player is supposed to do. Discussing internally and reading between the lines, we're guessing that you want to be able to support players that don't support VAST 4.x macros. My view is that's rather weird to shove this functionality into Prebid Server core. Seems quite out of place unless we dramatically expand what Prebid Server is thought to be. My preference would be that this kind of boutique feature should be a module that different Prebid Server host companies could decide to utilize or not. If perhaps it's not a module in the initial implementation, I would request that it be implemented such that it could later be pulled out as a separate module.
Again, reading between the lines here, I'm guessing that you guys have a bunch of modifications forked off of Prebid Server and this discussion is your effort to standardize some of them. I applaud that effort. But we have no precedence at all for anything like a host-company-specific block of code. For this aspect of your quest, I would like to suggest that the modularity effort is a perfect match. One intent of the module architecture is that a host company can build proprietary modules in their fork that have well-known and unchanging interfaces into PBS-core. So I'm hoping that you guys might be able to hold off on at least this last requirement and perhaps help us define/build the more generic modularity feature rather than defining a one-off "macro provider" interface. |
@ShriprasadM and @mike-chowla -- I've drafted a counter-proposal at https://docs.google.com/document/d/1iiKnqZjqpnAvtsP3jVyW66hTySLUmgWtl9_7Z9Wx3oM/edit# I believe this proposal is a fairly clean integration of the current PBS event design that covers almost all of your needs, including non-PBS tracking URLs. It doesn't, however, support a custom macro interface because I think you can just fork it for that until the modularity architecture is ready. Will send email to see when would be a good time to review and talk through this proposal. |
Thanks, @bretg! |
This document has been reviewed and is basically ready for implementation. There may be some tweaks to the proposed configuration, so whoever implements in PBS-Go may want to discuss config with @SyntaxNode and @bretg . PBS-Java will be implementing this as a module after the modularity infrastructure is done. It's fine for an implementor to build this into PBS-Go core, but should do so keeping in mind that it might become a module someday. |
Hi @ShriprasadM. Do you still plan to implement this feature for PBS-Go? |
Hi @SyntaxNode , Yes. I will update on it after discussing with @mike-chowla |
@bretg and @SyntaxNode : here is the Phase I plan. Updating here so that others can be notified. https://docs.google.com/document/d/1zzi06jWpYsvhuiQ_3KCpes0DpmpO2teatmo4V5kIhi0/edit?usp=sharing |
https://docs.google.com/document/d/1tMO8J3diZQyKx6_usA0GRIcppVlugYSqVcOEOjX4I9Y/edit?usp=sharing - Macro replacement framework reviewed with Prebid Team. |
@ShriprasadM - where are we with VAST events in PBS-Go? |
To enable company hosting prebid-server to inject their Video Event Trackers in the winning bids.
NOTE: Please provide feedback on this proposal. We are ready to contribute
Benefits of having it in Prebid Server
Proposal
video_tracking_url
- This will contain the base tracker URL along with all the required parameters with value as macro. e.g.Checks if the bid's bidder config allows modifying VAST XML for event tracking
PBS will obtain the template video event tracking URL from
video_tracking_url
from the exchangeNew call back function will be called to replace all the macros present in
video_tracking_url
New call back function will have the following structure
No Injection - If the above function return
nil
or empty map then PBS will not inject tracker for the event typecallBackFuntion
will be called per eventType. Right now we can support for following video event trackersSample Code Snippet
*** Current tracker module inject trackers, optionally, before the auction. It can be optimized by moving it after the auction. Because in the case of ad pod, it can be expensive to parse and inject trackers for each adaptor bid. Instead, we can inject trackers only for winning bids.
The text was updated successfully, but these errors were encountered: