-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Open
Description
Background
We are encountering a discrepancy between Prebid bidders and Google Ad Manager (GAM) regarding impression counts for interstitial ad units. The analytics adapter is registering the ad unit as rendered before actual user display.
Below are impression tracking pixels -
- GAM: Impression pixel triggered by Google Ad Manager.
- Analytics Adapter: Pixel fired using
bidWonevent listener. - DSP Pixels: Fired from ad code when creative is loaded on the publisher’s page.
Prebid suggestions
We implemented prebid's suggested solution to tackle the impression discrepancy issue.
We utilized deferBilling: true to delay the adRenderSucceeded event and subsequently triggered it using pbjs.triggerBilling() when GPT's impressionViewable event was fired.
Observations
- Bid Expiration: Occurs when
adRenderSucceededis delayed excessively during interstitial ad loading. - Analytics Adapter Fix: Utilizing Prebid's defer solution solves some differences but does not fully address the discrepancy with DSP-recorded impressions. DSP pixels won't match that of GAM's recorded pixels and Analytics recorded pixels.
Proposed Solution
- Modify the logic within PUC to await the complete loading of interstitial ad code before firing DSP pixels. Similar to this #10594
sequenceDiagram
participant Prebid
participant GAM
participant PUC
Prebid ->> GAM: pick line item
GAM ->> PUC: call PUC
PUC ->> Prebid: drop PUC on page
PUC ->> PUC: delay if interstitial ad
PUC ->> Prebid: Post message to Prebid script
Prebid ->> Prebid: getAd()
Prebid ->> Prebid: renderAd()
Environment Details
Prebid.js Version: 10.7.0
Browser: Chrome
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Needs Req