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

Feature request: detect ad blocking environment #10126

Open
ahmadlob opened this issue Jun 21, 2023 · 19 comments
Open

Feature request: detect ad blocking environment #10126

ahmadlob opened this issue Jun 21, 2023 · 19 comments

Comments

@ahmadlob
Copy link
Contributor

Type of issue

We are suffering from significant discrepancies with different publishers, conducted analysis and noticed it looks to be a result of a certain browsers tracking prevention/protection. When browser is in strict mode, taboola tracker is blocked.

This results in discrepancy between the publisher numbers ( counting ad server impressions where taboola win ) and our impressions and visible numbers (not rendered or fired so on our side not counted)

Are you familiar with this issue? (it should affect many bidders and not just taboola)
Suggested solutions are appreciable

@patmmccann
Copy link
Collaborator

What is an example of the blocked url? Which browser blocked it?

@ahmadlob
Copy link
Contributor Author

ahmadlob commented Jun 21, 2023 via email

@ahmadlob
Copy link
Contributor Author

ahmadlob commented Jul 3, 2023

Is there any update or figures regarding this issue?
@patmmccann

@patmmccann
Copy link
Collaborator

No one else has reproduced or reports this issue so far. It seems unique to Taboola.

@ahmadlob
Copy link
Contributor Author

@patmmccann I see, actually strict mode browsers distribution isn't that high. Currently we are checking if it is due to ad blockers maybe. We noticed some block prebid and some though prebid rendering iframe blocked still sent a request to our bidder service. If you have more information regarding this or any tips, will appreciate that

@lcorrigall lcorrigall moved this from Triage to Needs OP in Prebid.js Tactical Issues table Jul 31, 2023
@dgirardi
Copy link
Collaborator

@ahmadlob I am not sure how to proceed on this - could you provide steps to reproduce? (for example, which browser should I use, how should I set it up, and what is the behavior I should see on the pages you gave?)

@patmmccann
Copy link
Collaborator

To enable Strict Mode in Firefox for desktop, you can: Mozilla Support, MakeUseOf, +1 more
Click the shield icon to the left of the address bar Mozilla Support, MakeUseOf, +1 more
Click "Protection Settings" Mozilla Support, MakeUseOf
Under "Enhanced Tracking Protection", select "Strict"

@patmmccann
Copy link
Collaborator

patmmccann commented Aug 14, 2023

@ahmadlob are you able to detect this mode on your requests somehow? How were you able to identify this gap?

One idea is if we can somehow detect it, we could put it in the request object or cancel all auctions as prebid ssps will not be able to pay.

@patmmccann patmmccann moved this from Needs OP to Needs Req in Prebid.js Tactical Issues table Aug 14, 2023
@patmmccann patmmccann self-assigned this Aug 16, 2023
@patmmccann
Copy link
Collaborator

@patmmccann to find a contact at mozilla

@ahmadlob
Copy link
Contributor Author

@patmmccann we noticed the gap as discrepancy between our "nurl" win count vs publishers ad server impressions. Lets distinguish between the two issues:

  • if the browser in strict mode all is blocked, don't think there is much to do
  • ad block behavior, we noticed some ad blockers blocking prebid so no ad being rendered but however we still receive requests to our server and responding

If you could detect it will be great

@patmmccann patmmccann changed the title Browser Strict Mode - Taboola Bidder Feature request: detect ad blocking environment Jun 18, 2024
@patmmccann patmmccann removed their assignment Jun 18, 2024
@patmmccann
Copy link
Collaborator

@ahmadlob to be clear, you want to detect an ad blocker, not strict mode, and append the flag to the request object?

@ahmadlob
Copy link
Contributor Author

@patmmccann exactly 100%

@patmmccann
Copy link
Collaborator

committee wants to allow for an api for an adblocker extension to notify prebid ads will be blocked; also to add indications of tracking pixels being unlikely to have query string parameters with bid request ids or something of that nature

@JoelPM
Copy link
Contributor

JoelPM commented Jul 17, 2024

Broadening the scope a little bit, I think it would be helpful for publishers and ad-tech partners to have signals that describe the ability to serve ads to the current environment. Prebid feels like the right entity to help fill this gap. A potential solution could have at three parts:

  1. Detection of ad blocking at the browser level (FF strict mode, Safari strict thingy)
  2. Detection of ad blocking by a browser extension or other third party (traditional ad blockers)
  3. An API that allows anyone (browsers, extensions, etc) to register that ads are blocked with any metadata describing why or to what extent.

Items 1 and 2 above would be in prebid core code, would need to be updated on some cadence as browsers evolve, and would be immediately useful.

Item 3 is an API exposed by Prebid.js core and is more future looking and aimed at facilitating orderly communication between users (or the software operating on their behalf) and publishers, with the assumption that transparent communication will be more helpful than attempts at detection.

[update]
Logically, I think it makes sense for the detection code implemented in Items 1 and 2 to utilize the API provided by 3. This ensures consistency.

[update]
Typescript API suggestion:

// An object that describes the current ad restrictions and who is enforcing them.
// It's possible that multiple restrictions could be in place. In the case of a "partial"
// restriction, the blocked and/or allowed lists would denote which entities can/cannot
// show ads. 
interface AdRestrictions {
  type: "device" | "browser" | "extension" | "other",
  scope: "full" | "partial",
  blocked: [string],
  allowed: [string],
};

function registerAdRestrictions(restrictions: AdRestrictions) {
  // ...
};

@muuki88
Copy link
Collaborator

muuki88 commented Jul 17, 2024

Maybe @mkendall07 has some deeper insights on this?

@mkendall07
Copy link
Member

I like the idea proposed by @JoelPM, however expecting blockers to register themselves might be a expecting too much - in my experience that's not been possible as there is no desire to register this type of behavior (for numerous reasons but mostly because of the desired not to be circumvented).

Detection could be possible way to go to basically short circuit stop the auction in those "half conditions" where the PBJS library/bidding request is not blocked but the render is. So if that condition can be detected you can simply stop before sending the HB requests.

@lcorrigall
Copy link

lcorrigall commented Nov 22, 2024

We discussed this at the Prebid.js PMC on Nov 20. The core issue from our perspective is discrepancy between publishers and buyers when an ad blocker allows Prebid to retrieve ads, but prevents rendering. This has been a problem in the past, but not one we're seeing now. As @mkendall07 says, trying to get ad blockers to work with us is unlikely. It's our recommendation that Prebid should not work on this feature request.

@ahmadlob
Copy link
Contributor Author

ahmadlob commented Dec 8, 2024

@lcorrigall @mkendall07
thanks for the update, you mentioned the problem occurred in the past and no longer seen
is this due to a change that was merged into a Prebid version? If yes, which one

@ahmadlob
Copy link
Contributor Author

ahmadlob commented Dec 8, 2024

I just used "AdLock" ad blocker to check it on a publisher site
Prebid iframe is being blocked and not rendered. However, bidder server requests are passing which is a concern

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

No branches or pull requests

7 participants