Skip to content
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

Discrepancy in VAST Impression Tracking #12375

Closed
1 task done
vivekyadav15 opened this issue Oct 28, 2024 · 11 comments · Fixed by #12468
Closed
1 task done

Discrepancy in VAST Impression Tracking #12375

vivekyadav15 opened this issue Oct 28, 2024 · 11 comments · Fixed by #12468

Comments

@vivekyadav15
Copy link
Contributor

Type of issue

  • Bug

Description of issue

Description:

Raising this to discuss two issues identified during the implementation of the registerVastTrackers function in an analytics adapter for recording instream impressions, it is essential to have access to certain adUnit, auction and bidRequest information to ensure accurate data handling.

ISSUE 1 Some necessary information like requested mediatype, context etc is not available in bidResponse. So adUnit, auction and bidRequest information obtained from analytics events becomes crucial for recording such data in impression pixels. However, in some instances, this data is unavailable due to debounce delays in analytics adapters. This delay has led to a 15–30% discrepancy between GAM and our recorded impressions, as the data required to log impressions is not always accessible.

ISSUE 2 Since context is unavailable it becomes difficult to write business logic to add tracker for specific context.

Details about adUnit, auction and bidRequest information we access is listed below.

Field Path Description Event
timeout args.timeout Max auction timeout AuctionInit
context args.adUnits.video.context Video Context AuctionInit
Ad unit ext args.adUnits.ext Ad unit ext AuctionInit
User id args.bidderRequests.bids.userId User id present for the auction AuctionInit
Auction start time - Difference between Auction start time and auction init time (args.timestamp) AuctionInit
Auction end time - Difference between Auction end time and auction Init time (args.timestamp) AuctionInit
Set targeting time - Difference between Set targeting time and auction init time (args.timestamp) AuctionInit
Bid won time - Difference between Bid won time and auction init time (args.timestamp) AuctionInit
Floor data args.bidderRequests.bids.floorData Floor data present for the auction AuctionInit
Requets mediatypes args.bids.mediaTypes Request media type BidRequested
Turn around time - Difference between bid response time and bid request time (args.start) BidRequested and BidResponse
Bidder params args.bids.params Bidder specific params BidRequested
Request sizes args.bids.sizes Request sizes BidRequested

Other link

#9110
#10191

@vivekyadav15
Copy link
Contributor Author

@dgirardi Could you please take a look at this issue? I noticed you've worked on this, so any insights you have would be really helpful

@dgirardi
Copy link
Collaborator

I am interpreting this as a feature request: make the bid request available in callbacks passed to registerVastTrackers. Is that a fair summary?

@vivekyadav15
Copy link
Contributor Author

@dgirardi We (analytics adapters) would want to have request and auction level info.

@patmmccann
Copy link
Collaborator

If requested mediatype and context are available in bidResponse does that solve completely? Are the gam numbers higher or lower than yours?

@patmmccann patmmccann moved this from Triage to Needs OP in Prebid.js Tactical Issues table Nov 4, 2024
@dgirardi
Copy link
Collaborator

dgirardi commented Nov 4, 2024

Could you clarify what you mean by data not available? Do you need to package that data into the VAST, before the auction ends (and some of the data does not exist yet)? Otherwise I think an analytics adapter should have access to all that information - passing auction / request to registerVastTrackers would just avoid the need to cross-reference them with the response.

@vivekyadav15
Copy link
Contributor Author

vivekyadav15 commented Nov 5, 2024

@patmmccann

If requested mediatype and context are available in bidResponse does that solve completely? Are the gam numbers higher or lower than yours?

  1. No, even though the requested media type and context are available, we would still be missing the ad slot information as well as the auction information.
  2. Yes, the GAM numbers were much higher than ours.

@vivekyadav15
Copy link
Contributor Author

vivekyadav15 commented Nov 5, 2024

@dgirardi

Could you clarify what you mean by data not available? Do you need to package that data into the VAST, before the auction ends (and some of the data does not exist yet)? Otherwise I think an analytics adapter should have access to all that information - passing auction / request to registerVastTrackers would just avoid the need to cross-reference them with the response.

  1. Due to the analytics event running with a debounce delay, there are many cases where getVastTrackers (a function inside vastTracker.js that fetches impression pixels from the analytics adapter) is called before the AUCTION_INIT and BID_REQUESTED events are triggered. As a result, when getVastTrackers is called, we don't have access to the auction and bid request data.

  2. If getVastTrackers could pass the auction and request information, it would resolve the issue.

@vivekyadav15
Copy link
Contributor Author

@dgirardi @patmmccann Were you able to check this ?

@vivekyadav15
Copy link
Contributor Author

vivekyadav15 commented Nov 13, 2024

@dgirardi @patmmccann Were you able to check this ?

@dgirardi @patmmccann Just looping back on this. Let me know if you need any clarification.

@patmmccann
Copy link
Collaborator

@vivekyadav15 we're marking this ready for dev, thanks for the details

@vivekyadav15
Copy link
Contributor Author

@patmmccann @dgirardi Thank you!! for looking into this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging a pull request may close this issue.

3 participants