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

Fledge: Potential Duplicate Impressions Due to Refresh Call Misconfiguration #11242

Open
lksharma opened this issue Mar 20, 2024 · 4 comments
Open

Comments

@lksharma
Copy link
Collaborator

Description

Prebid version 8.37.0 introduced new features allowing auction configurations to be independent of GPT. This version also introduced functionality to clear cached auction configurations by resetting them with null values using setConfig. However, in certain scenarios, cached auction configurations can persist, leading to duplicate impression calls, as observed in version 8.36.0. This ticket also provides additional context to issue #11102 which is pending discussions on the desired default autoconfig behaviour.

Issue Details

  • In the latest version of Prebid, with fledgeForGpt.autoconfig set to true (default), cached auction configurations are reset correctly.
  • However, when fledgeForGpt.autoconfig is set to false, additional API calls are required to trigger on-device auctions.
  • Specifically, the publisher needs to call pbjs.setPAAPIConfigForGPT() whenever pbjs.requestBids is invoked and ensure it's called within the bidsBackHandler function.

Problem Scenario:

If the publisher neglects to call pbjs.setPAAPIConfigForGPT() for subsequent refresh calls, Prebid does not reset the previously set auction configuration, leading to potential duplicate impression calls.

Example Setup:

function initAdserver() {
    pbjs.initAdserverSet = true;
    googletag.cmd.push(function() {
        pbjs.que.push(function() {
            pbjs.setPAAPIConfigForGPT();
			...
        });
    });
}

function refreshBid() {
    pbjs.que.push(function() {
        pbjs.requestBids({
            timeout: 1000,
            bidsBackHandler: function() {
                // pbjs.setPAAPIConfigForGPT(); not called
                ...
            }
        });
    });
}

Steps to Reproduce:

  • Set fledgeForGpt.autoconfig to false.
  • Initiate bids with pbjs.requestBids and call pbjs.setPAAPIConfigForGPT() in the bidsBackHandler function
  • For subsequent refresh calls, don't call pbjs.setPAAPIConfigForGPT()
  • Observe behaviour

Potential Solution:

Previously set auction configs are reset by the logic within the slotConfigurator function, which executes when pbjs.setPAAPIConfigForGPT() is called. Automating pbjs.setPAAPIConfigForGPT() calls within setTargetingForGPTAsync() or similar functions could reduce the likelihood of configuration errors and mitigate potential duplicate impression calls.

@lksharma lksharma changed the title Potential Duplicate Impressions Due to Refresh Call Misconfiguration Fledge: Potential Duplicate Impressions Due to Refresh Call Misconfiguration Mar 20, 2024
@patmmccann
Copy link
Collaborator

patmmccann commented Mar 21, 2024

If the publisher neglects to call pbjs.setPAAPIConfigForGPT() for subsequent refresh calls, Prebid does not reset the previously set auction configuration, leading to potential duplicate impression calls.

Another solution is we just tell pubs not to make this mistake. We could potentially warn them if they request bids on a slot thrice but only called pbjs.setPAAPIConfigForGPT() once

Thanks for flagging as relevant to #11102

@patmmccann
Copy link
Collaborator

@lksharma any objection to closing this and tracking on #11102 ? Or the inverse, closing that and tracking here?

@lksharma
Copy link
Collaborator Author

lksharma commented Apr 2, 2024

Let's close issue #11102 and continue discussions within this ticket since it contains most of the relevant context.

@patmmccann
Copy link
Collaborator

Sounds good, ty!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Blocked
Development

No branches or pull requests

2 participants