
Я играю в браузерную игру, в которой можно зарабатывать внутриигровую премиум-валюту, просматривая различную рекламу/фильмы/специальные предложения и т. д. Мой Firefox Addon Adblock Plus довольно хорошо блокирует всю эту рекламу, что не позволяет мне получить изумруды, поскольку скрипты не распознают просмотр рекламы (что нормально).
Эти специальные объявления загружаются в IFrame из различных внешних доменов. Так что, грубо говоря, структура такая:
MainSite@DomainA > iframe#gameIframeID@DomainA > iframe#adIframeID@DomainB
Итак, MainSite содержит iframe с игрой, который содержит еще один iframe с рекламой.
Поскольку я новичок в написании ABP-правил, я пока не нашел работающего решения. Как создать правило исключения ABP, которое разрешает все внутри iframe с идентификатором (или классом)adIframeID, чтобы реклама и необходимые скрипты загружались корректно, но реклама на MainSite по-прежнему блокировалась как обычно?
Я знаю, как добавить в белый список определенный домен, поэтому я мог бы добавить в белый список весь рекламный домен, но этот домен может измениться, а я хочу, чтобы их реклама была только внутри этой игры и нигде больше ;-)
решение1
Если с iFrame связан URL-адрес (т.е. это не анонимный iFrame), вы можете написать такой фильтр:
@@||example.com/iframe?showad=true$subdocument,document,domain=foo.com
Учитывая, что URL-адрес iFrame — «https://example.com/iframe?showad=true" и что домен, на котором отображается iFrame, — "foo.com".
Такой фильтр внесет в белый список iFrame (поддокумент) и все, что находится внутри него (документ).