Недавно я установил плагин AdSense на свой форум Discourse. Однако возникла одна немного тревожная проблема: некоторые объявления не отображаются. Вместо них появляется пустое пространство, как на этом скриншоте:
Я уже прочитал все другие темы здесь, касающиеся этой проблемы, но не нашёл решения. Заметил, что это чаще происходит с объявлениями, расположенными внизу темы (над рекомендациями, под сообщением).
Я проверил консоль разработчика и сетевой трафик, но ошибок не обнаружил.
Также я добавил все известные мне домены Google AdSense в политику безопасности контента (CSP):
Тем не менее, ошибка всё ещё возникает. Возможно, проблема в том, что я использую один и тот же код объявления для всех мест размещения. Не уверен, нужно ли создавать отдельные коды для каждого места.
Я думаю, это зависит от вашей категоризации рекламы, её фильтрации, размера и количества объявлений, которые могут разместиться на вашем сайте и т. д. Это совершенно нормально, если в определённом месте нечего показывать. Реклама оптимизируется Google и отображается на сайтах; если Google не может разместить подходящее объявление в конкретном месте, оно остаётся пустым. В таких случаях в пустое место для рекламы добавляется атрибут data-ad-status="unfilled". Это можно обработать с помощью CSS, чтобы скрыть весь блок рекламы, если он пуст.
Я не уверен насчёт части плагина Discourse для рекламы в Google AdSense (я настраивал его некоторое время назад, но сейчас он больше не работает на моём сайте), но я почти уверен, что вам не нужно добавлять эти URL-адреса в политику безопасности контента (CSP).
В описании плагина указано только добавить следующее.
С помощью AdSense решение Google делает CSP совершенно бесполезным, поскольку нам нужно разрешать все adservise.google.<страна>. Или разрешать всё, если в использовании CSP больше нет необходимости.
Ага… вот почему исчезли объявления AdSense — это недавно включённая CSP, чтобы компонент Twitter работал!
Попытка использовать вышеупомянутый ‘unsafe-inline’ невозможна, когда для прямых сообщений включено шифрование. Теперь у нас целая паутина непредвиденных последствий, если я что-то понимаю…