Skip to content

Discrepancy in interstitial ad rendering and analytics reporting #13807

@nirav777

Description

@nirav777

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 -

  1. GAM: Impression pixel triggered by Google Ad Manager.
  2. Analytics Adapter: Pixel fired using bidWon event listener.
  3. 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

  1. Bid Expiration: Occurs when adRenderSucceeded is delayed excessively during interstitial ad loading.
  2. 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()
Loading

Environment Details

Prebid.js Version: 10.7.0
Browser: Chrome

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Needs Req

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions