Richie
(Richie Rich)
1
Discourse Advertising Plugin (Ads) 관련해서 도움이 필요합니다.
로그인 상태와 관계없이, 신뢰 수준(Trust Level)과 관계없이 모든 사용자에게 광고를 표시하려고 합니다. 단, “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 설정을 어떻게든 덮어쓰고 있는 건가요? 
Richie
(Richie Rich)
2
설정을 조금 수정해서 더 명확하게 만들었습니다. 재현이 가능한 분이 있다면 시도해 주세요.
Richie
(Richie Rich)
3
문제의 원인을 찾았습니다.
“extra_special_members” 그룹의 가시성이 다음과 같이 설정되어 있습니다:
이 그룹을 볼 수 있는 사용자? 그룹 소유자
이 그룹의 멤버를 볼 수 있는 사용자? 그룹 소유자
이렇게 설정한 이유는 이 그룹의 멤버들이 서로를 볼 수 없도록 하고, 더 중요한 것은 이 (민감한) 그룹의 인원 수가 외부로 노출되지 않도록 하기 위해서입니다.
다음과 같이 하면:
- "hide-ads-test"라는 이름을 가진 그룹을 생성합니다.
- 가시성을 "그룹 소유자, 멤버 및 모더레이터"로 설정합니다.
- 제 TL2 테스트 사용자 그룹인 "hide-ads-test"를 추가합니다.
- “hide-ads-test” 그룹을
no ads for groups 설정에 추가합니다.
그러면 제 TL2 사용자는 더 이상 광고를 볼 수 없게 됩니다.
그룹 가시성을 "그룹 소유자, 멤버 및 모더레이터"에서 "그룹 소유자"로 변경하는 순간, 광고가 즉시 다시 나타납니다 
광고 플러그인이 해당 그룹을 인식하지 못해서 그냥 광고를 표시하는 것 같습니다 
1개의 좋아요
Richie
(Richie Rich)
4
개발자 중 이 문제가 버그인지 확인해 주실 분 계신가요? 
버그가 아니라면 플러그인의 포크를 위한 유료 작업을 진행할 예정입니다. 
sam
(Sam Saffron)
5
네, 이건 문제가 있습니다.
광고 플러그인은 서버에서 가져온 그룹 및 신뢰 수준 정보에 기반하여 광고를 "표시하거나 표시하지 않을지"에 대한 모든 로직을 수행합니다.
그룹 멤버십이 사용자에게 숨겨져 있기 때문에, 클라이언트는 광고를 숨겨야 한다는 사실을 파악할 방법이 없습니다.
로직이 서버 측에 reside하도록 코드를 다시 작성해야 합니다(예: 현재 사용자의 필드에 "이 사용자는 광고가 있다/없다"라고 표시하는 것). 현재 로직의 상당 부분이 JavaScript로 구현되어 있고 Ruby로 이동해야 하므로, 이는 상당히 큰 변경 사항입니다.
이 이슈에 pr-welcome 태그를 붙여두었습니다. 반복적인 요청이 몇 건 더 들어오면 우선 처리를 고려하겠습니다. 복잡한 변경 사항입니다.
1개의 좋아요
Richie
(Richie Rich)
6
@sam 자세한 설명을 해주시고 정말 감사드립니다.
능동적으로 우회 방법을 찾아보겠습니다 
1개의 좋아요