# Участники скрытых групп в no\_ads\_for\_groups всё ещё видят рекламу

**URL:** https://meta.discourse.org/t/members-of-hidden-groups-in-no-ads-for-groups-still-see-ads/255544
**Category:** Bug
**Tags:** pr-welcome, advertising
**Created:** [18.Февраль.2023 09:57:16 UTC](https://meta.discourse.org/t/members-of-hidden-groups-in-no-ads-for-groups-still-see-ads/255544 "2023-02-18T09:57:16Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Richie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/richie/32/115110_2.png) [@Richie](https://meta.discourse.org/u/Richie)
#### Post date: [18.Февраль.2023 09:57:16 UTC](https://meta.discourse.org/t/members-of-hidden-groups-in-no-ads-for-groups-still-see-ads/255544/1 "2023-02-18T09:57:16Z")

</div>

Мне нужна помощь с [Discourse Advertising Plugin (Ads)](https://meta.discourse.org/t/discourse-ad-plugin/33734/).

Я пытаюсь показывать рекламу всем пользователям — как авторизованным, так и гостям — независимо от уровня доверия, за исключением тех, кто входит в группу «extra\_special\_members». Эти пользователи должны быть исключены и не видеть никакой рекламы.

Я изменил настройку «adsense through trust level» и установил её на TL4 (что означает, что рекламу увидят пользователи любого уровня доверия).

Также я изменил настройку «no ads for groups» и добавил только одну группу — «extra\_special\_members» (что означает, что пользователи этой группы не будут видеть рекламу).

Мой тестовый пользователь имеет уровень доверия TL2 и состоит в группе «extra\_special\_members», но ему всё ещё показывается реклама.

Это баг? 🤔

Или настройка «adsense through trust level» каким-то образом переопределяет настройку «no ads for groups»? 🤔

---

<div class="post-metadata">

### Author: ![Richie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/richie/32/115110_2.png) [@Richie](https://meta.discourse.org/u/Richie)
#### Post date: [18.Февраль.2023 15:51:38 UTC](https://meta.discourse.org/t/members-of-hidden-groups-in-no-ads-for-groups-still-see-ads/255544/2 "2023-02-18T15:51:38Z")

</div>

Я только что обновил свои настройки, чтобы сделать их более понятными. Если кто-то сможет попробовать воспроизвести проблему, пожалуйста, дайте знать.

---

<div class="post-metadata">

### Author: ![Richie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/richie/32/115110_2.png) [@Richie](https://meta.discourse.org/u/Richie)
#### Post date: [18.Февраль.2023 16:08:25 UTC](https://meta.discourse.org/t/members-of-hidden-groups-in-no-ads-for-groups-still-see-ads/255544/3 "2023-02-18T16:08:25Z")

</div>

Я нашел причину проблемы.

Моя группа «extra\_special\_members» имеет следующие настройки видимости:

> Кто может видеть эту группу? Владельцы группы

> Кто может видеть участников этой группы? Владельцы группы

Это сделано для того, чтобы участники этой группы не видели друг друга, и, что более важно, чтобы количество людей в этой (чувствительной) группе не разглашалось.

Если я:

1. Создам группу с названием «hide-ads-test»
2. Установлю видимость на «владельцы группы, участники и модераторы»
3. Добавлю мою тестовую группу пользователей TL2 «hide-ads-test»
4. Добавлю группу «hide-ads-test» в настройку `no ads for groups`

То мой пользователь TL2 больше не видит рекламу.

Как только я меняю видимость группы с «владельцы группы, участники и модераторы» на «Владельцы группы», реклама мгновенно появляется снова 😔

Кажется, что плагин рекламы не может «увидеть» группу, поэтому просто показывает рекламу 🤔

---

<div class="post-metadata">

### Author: ![Richie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/richie/32/115110_2.png) [@Richie](https://meta.discourse.org/u/Richie)
#### Post date: [21.Февраль.2023 19:49:57 UTC](https://meta.discourse.org/t/members-of-hidden-groups-in-no-ads-for-groups-still-see-ads/255544/4 "2023-02-21T19:49:57Z")

</div>

Может ли какой-нибудь разработчик подтвердить, что это баг, пожалуйста? 🤔

Если это не баг, то я займусь созданием платной задачи по форку этого плагина 😊

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [23.Февраль.2023 04:43:59 UTC](https://meta.discourse.org/t/members-of-hidden-groups-in-no-ads-for-groups-still-see-ads/255544/5 "2023-02-23T04:43:59Z")

</div>

Да, это проблема.

Плагин рекламы выполняет всю логику «показывать или не показывать» рекламу на основе информации о группе и уровне доверия, которую он получает с сервера.

Поскольку членство в группе скрыто от пользователя, клиент не может определить, что рекламу нужно скрыть.

Код нужно переписать так, чтобы логика находилась на стороне сервера (вероятно, поле текущего пользователя будет указывать «у этого пользователя есть реклама» или «у этого пользователя нет рекламы»). Это довольно крупное изменение, так как сейчас большая часть логики реализована в JavaScript, и её нужно перенести в Ruby.

Я добавил метку #pr-welcome к этой задаче; если поступит несколько повторных запросов, я рассмотрю возможность ускоренной реализации. Это сложное изменение.

---

<div class="post-metadata">

### Author: ![Richie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/richie/32/115110_2.png) [@Richie](https://meta.discourse.org/u/Richie)
#### Post date: [23.Февраль.2023 16:42:03 UTC](https://meta.discourse.org/t/members-of-hidden-groups-in-no-ads-for-groups-still-see-ads/255544/6 "2023-02-23T16:42:03Z")

</div>

@sam Я очень признателен за подробное объяснение, спасибо.

Попробую найти обходное решение 😊
