6P by GN⁺ 9시간전 | ★ favorite | 댓글 3개
  • 이 블로그는 광고 차단 기능이 감지되지 않을 때, 방문자에게 uBlock Origin 같은 신뢰할 수 있는 광고 차단기를 설치하도록 권장함
  • 이 권장 메시지는 사용자 경험을 방해하지 않도록 설계되었고, 한 번 닫으면 다시 나타나지 않음
  • 구현 방식은 nativeads.js 스크립트와 광고 관련 클래스명이 잔뜩 붙은 <div>를 활용해, 광고 차단기가 요소나 네트워크 요청을 막으면 메시지가 표시되지 않도록 설계
  • 메시지는 한 번 닫으면 쿠키로 기억, CSS로 화면 한쪽에만 작게 뜨며 콘텐츠를 가리지 않고, JavaScript 비활성 브라우저에는 표시되지 않음
  • DNS 차단은 탐지할 방법이 없어, 작성자는 대신 비침해적·간단히 닫을 수 있는 안내창으로 구현했다고 밝힘

광고 차단 권장 메시지의 필요성

  • 인터넷 광고는 사용자의 시간을 낭비시키고, 광고 산업은 인터넷 환경 전반에 부정적 영향을 미침
  • 사이트 수익이 매우 낮아지므로, 많은 웹사이트가 광고로 도배된 저품질 페이지로 전락함
  • 창작자를 돕고 싶다면 광고 시청이 아닌 직접 후원(1달러라도 효과적) 이 훨씬 효과적임

광고 차단 권장 메시지의 설계 목적

  • 대부분의 사용자가 광고를 인터넷 경험의 일부로 인식함에 따라, 저자는 사이트에 직접 메시지를 표시함
  • "No adblocker detected. Consider using an extension like uBlock Origin to save time and bandwidth. Click here to close."라는 메시지가 페이지 우측 하단에 소규모로 노출됨
    • 콘텐츠를 가리지 않으며, 메시지를 닫으면 더는 표시되지 않음
    • 창이 작은 경우 메시지가 표시되지 않음
  • 특정 확장 프로그램(uBlock Origin)만을 언급하는 이유는, 사용자가 광고에서 광고 차단기를 접하는 일이 많고, 상업적 광고 차단기의 위험성 및 사기성 때문임
    • 광고로 홍보되는 광고 차단기는 결국 사용자를 통해 수익을 창출함

구현 방법 및 기술적 사항

  • HTML에 광고 차단 메시지를 위한 div 영역이 존재하며, 다양한 광고 관련 클래스명 포함
  • 메시지 추가는 /nativeads.js라는 자바스크립트 파일이 담당함
    • 쿠키 기반으로 메시지의 1회성 노출을 보장함
    • "Click here to close." 클릭 시 div 숨김 및 쿠키 갱신 처리
  • CSS를 통해 메시지의 시각적 위치와 스타일링을 지정함
    • 충분한 화면 공간이 있을 때만 우측 하단에 고정 노출
  • 광고 차단기가 해당 div 요소나 nativeads.js 파일을 차단(삭제 혹은 요청 차단) 할 경우 메시지 자체가 출력되지 않음
    • 다양한 광고 관련 클래스명 통해 대다수 광고 차단기가 div를 제거하도록 유도
  • 특히 네트워크 차단 위주(adblock lite 등) 의 확장 프로그램도 script network 요청 차단 시 메시지가 사라짐
  • DNS 기반 광고 차단까지는 탐지할 수 없는 한계가 있음
  • 자바스크립트를 지원하지 않는 브라우저에서는 애드블로커가 필요 없으므로 메시지도 표시하지 않음
  • CSS 미적용 상태에서도 메시지는 기능상 동작함(비스타일 노출)

brave browser 추천합니다

Hacker News 의견
  • 저는 광고 차단 프로그램 덕분에 거의 10년째 온라인 광고로부터 완전히 격리된 생활을 하고 있음. 가끔 광고 차단이 불가능하거나 아예 설치를 못 하는 기기에서 웹을 쓰면, SEO에 집중하고 광고가 넘치는 사이트를 보는 경험이 마치 마약 소굴에 들어가는 느낌임. 이런 게 대부분의 사람들에게 일상이란 게 안타까움
    • Android에서 Google Play Store를 열 때마다 마치 디스토피아적 쇼핑몰에 들어가는 것 같은 기분이 듦. F-Droid로 필요한 앱은 거의 다 해결하고 공식 앱만 Play Store에서 사용함. 그래서 Play Store는 디자인이 사용자 불친절하고 시각적 소음으로 가득 차 있음. 대부분의 사람들이 광고에 시달리는 게 현실이라는 생각이 강하게 듦. 언젠가는 uBlock Origin마저 막혀 아무 보호도 못 받게 될까 걱정임
    • 나도 비슷한 입장임. 웹에서뿐만 아니라, TV도 없고, 광고 나오는 라디오도 안 듣는 등 광고를 거의 못 봄. 그래서 사람들이 광고를 어떻게 견디는지 도무지 이해가 안 감
    • 집에서는 라우터 단 DNS 광고 차단과 브라우저 광고 차단 확장 둘 다 사용하는 중임. 5G 데이터나 공용 와이파이로 웹을 쓸 때마다 불쾌한 경험을 하고, 바로 광고 차단 VPN을 켬
    • 주요 광고 플랫폼조차 품질 관리는 엉망임. YouTube에서도 예전엔 캐나다 총리 딥페이크가 암호화폐 사기를 홍보하는 광고를 받았었음. 클릭하면 캐나다 국세청을 사칭한 피싱 사이트로 연결됨
    • 모든 기기에 Brave를 사용함. 다른 기기에서 YouTube 영상을 보여주는데 광고가 세 번이나 나오거나, 지역 뉴스 페이지를 로드하는데 광고가 한가득이면 "와, 우리 같은 프리라이더 때문에 진짜 광고로 몰아치고 있구나!"라는 생각이 듦
  • “광고 차단 프로그램 미탐지. uBlock Origin 같은 확장 기능을 이용해 시간과 트래픽을 아끼세요.”<br> 주의력과 프라이버시도 함께 보호 가능함. 이런 안내문은 좋은 아이디어임. 개인적으로 안내문에 “like” 표현은 빼고 싶음. uBlock Origin은 훌륭하지만, 다른 차단기는 말웨어이거나 문제 소지가 있는 것도 있음. 참고로 안내문에 링크된 ublockorigin.com은 실제 uBlock Origin 개발자인 Raymond Hill 소유가 아님. 겉보기에 의도는 좋아 보이고 UI도 괜찮은데, Hill의 통제를 받지 않아 보이고, 말웨어 같은 위협의 잠재적 지점이 될 수 있음. Hill의 공식 채널은 https://github.com/gorhill/uBlock 임. 참고할 만한 링크로는 README.mdWiki가 있음
    • 최근 PuTTY 도메인 스쿼팅 사건 이후로 유사 사이트를 더욱 의심하게 됨. 실제로 ublockorigin.com 소유자가 “my other tools” 섹션을 통해 완전히 상관없는 다른 상품을 광고하고 있음
    • 대부분의 일반 인터넷 이용자는 GitHub 링크를 받아도 뭘 해야 하는지 전혀 모름. 공식 사이트에서 쉬운 설치 안내를 제공하지 않는 게 아쉬움. 다만 개발자 직접 관리가 아닌 사이트를 링크하는 건 조심해야 함에는 동의함
    • 이 댓글이 제대로 평가받지 못하는 듯함. README에도 너무 많은 GitHub 헤더가 있어 불편함. UBO는 공식 랜딩 페이지가 꼭 필요함
  • FBI도 광고 차단이 사람들이 악성 사이트로 유입되는 걸 막는 데 도움이 된다고 주장함<br> TechCrunch 기사https://www.ic3.gov/Media/Y2022/PSA221221?=8324278624">공식 아카이브 참고
    • 나는 예전부터 광고 차단 프로그램이 요즘 최고의 안티 바이러스라고 생각해옴
  • 나는 광고를 엄청 좋아하는 건 아니고, 광고 네트워크를 크게 존중하지도 않지만, 광고와 트래킹을 막으면서 웹사이트의 데이터를 공짜로 이용한다는 문화도 사실 좀 불편함. 암묵적으로 맺어진 사회적 계약이 있다고 생각함. 사이트들은 광고로 수익을 얻을 수 있으니까 막대한 콘텐츠를 무료로 제공하고 정리하는 것임. 많은 사람들이 광고를 거부하고 차단하면 결국 이런 서비스들도 콘텐츠 유통을 중단할 거고, 그 과정에서 차단은 일종의 시스템에 무임승차하는 행동임(만약 서비스 파괴가 목표라면 일관성 있어서 칭찬하겠음). 정중하지 않게 이 계약을 지키지 않겠다면 어쩔 수 없지만, 애초에 이 계약의 전략이 마음에 안 들다면 해당 서비스를 쓰지 않아야 하고, 스스로 대안을 찾거나 새로운 플랫폼을 고민해봐야 함
    • 나는 원래 이 구조가 괜찮다고 생각했으나, 광고주들이 추가적으로 계약을 파기한 사례가 너무 많음. 예를 들어:
      • 오토플레이 영상이 내 트래픽을 멋대로 소진함
      • 갑자기 오디오가 튀어나와 스피커를 점령하여 방해함
      • 창이나 탭 제어를 방해하는 팝업
      • 내 모든 브라우징 습관을 추적·집계하는 감시
      • 대체로 책임지는 사람 없는 악성코드·피싱의 진원지
      • 하나의 콘텐츠에 광고가 세 배쯤 섞여서 페이지가 완전히 망가진 경험 등 광고를 보는 것이 단순히 무해하거나 순수한 수준의 문제라고 포장하지만, 현실은 그렇지 않다고 생각함
    • 나는 더 이상 이런 논리에 동의하지 않음. 광고가 정말 심해서 어느날 양쪽에 20%씩 차지하는 커다란 애니메이션 광고(소리도 큼)가 떠서 짜증이 났는데, 페이지가 로드되자마자 3~4개 팝업창이 뜨며 바이러스 경고나 이상한 콘텐츠 광고가 소리 빵빵하게 나오는 경험을 함. 팝업 차단을 이미 켜둔 상태였는데도 이런 일이 발생함. 그 날 '셀프 클릭 광고'라는 것을 처음 알게 되어 바로 광고 차단기를 설치함. 결국 사회적 계약을 어긴 것은 그들임. 광고와 그 시스템은 더 이상 신뢰하지 않음. 옛날 전화접속(dialup) 시절 사기성 사이트로 전화 요금이 폭증했던 기억도 남아 있음
    • 관점을 조금 더 넓게 보아야 함. 최근 법원이 Google이 온라인 광고 시장에서 불법 독점 행위 두 건을 저질렀다고 판결했음 관련 기사, 아직 실효적 해결책은 마련되지 않음. 그리고 DoJ도 Meta를 상대로 비슷한 소송을 제기했고, 사건은 진행 중임 관련 위키. 나에게 상대방이 계약을 어기면 그 계약은 무효임. 사회적 계약도 마찬가지임. 기업들이 큰 불법행위 저질렀다면 우리가 이런 계약에 구속받을 이유 없음. 불법 남용이 해결될 때까지 온라인 광고 자체를 완전히 거부하는 건 정당함. 구글, 메타 같은 거대 기업들이 법을 어겼다면 바로 ad tech를 금지 시켜야 마땅함. 웹사이트(퍼블리셔)들도 이런 상황에서 실제로 피해를 보고 있기 때문에 진정한 해결을 바라지 않을까 생각함
    • “광고 차단이 광고·트래킹을 막으면서 데이터를 무임승차하는 부도덕한 문화”라는 주장에 전적으로 동의하지 않음. 오늘날 무료 웹사이트는 Wordpress, Blogger, Wix, Weebly 등 다양하고, 이들은 자사 배너 광고 외에는 무거운 광고 스크립트 없이 운영됨. Neocities, Digital Ocean 사용해서 월 5달러에 원하는 도메인과 테마로 사이트 운영도 가능함. Buzzfeed, The Verge, Gizmodo 같은 미디어들은 대부분 서드파티 콘텐츠(YouTube, Vimeo 등)만 임베드하고 자체 호스팅도 안 하면서, 단순 재가공한 뉴스 기사에 광고와 제휴 상품 리뷰만 얹는 경향이 강함. 이런 '드롭쉽'식 웹이 예전 무료 웹사이트 문화를 망가뜨림
    • 소규모 블로거나 독립 창작자가 자신의 생각을 나누고 서버비 일부라도 광고로 충당하는 모델은 괜찮음. 하지만, 개인정보를 수집·판매하며 이득을 취해 온 초대형 기업과는 이런 사회적 계약 자체가 성립되지 않음. 그저 내 데이터를 팔 뿐임. 무엇을 하고, 어떻게 막을지 알아도 광고와 트래킹을 수동적으로 허용한다면, 더 나쁜 세상을 만드는 데 동조하는 셈임. 거대 기업을 개인처럼 존중할 이유 없음
  • 빅테크 기업들은 점진적으로 우리에게 침해당해도 당연한 것처럼 느끼게 만듦. 무료로 많은 서비스를 주는 척하지만, 동의 없이 우리에게서 많은 것을 빼앗음. 우리를 조종하고, 정보에 장벽을 세우고, 인간 조건을 악화시키는 일도 함. 이런 기업에 맞서 행동하는 데 죄책감을 느낄 필요가 없음. 참고로, 어제 Chromium에서 uBlock Origin이 더 이상 지원되지 않는다고 떴음. 그래서 MS365 이외에는 Chromium을 안 쓰고 있었는데, 역시 잘 한 선택이라는 생각임. Firefox에서는 여전히 잘 작동하는 중임
  • “DNS 기반 광고 차단은 실제 광고를 불러오지 않고는 감지 방법이 없음” 이라는 문제에 대해, 내 생각에는 차단 목록에 포함될 만한 도메인을 등록한 뒤 해당 리소스로 테스트하면 양쪽(확장 기반/도메인 기반) 차단 여부 모두 확인 가능함. 물론 도메인 자체가 다운되거나 네트워크 문제가 있을 때 오탐이 생길 수밖에 없지만, 모든 테스트가 완벽하길 기대하는 건 무리임. 혹시 차단 리스트에 내 도메인을 쉽게 추가할 방법 아는 사람이 있다면 함께 도와줬으면 함. 1년에 몇 파운드 정도 기꺼이 쓸 생각이 있고, 요청량 부담도 문제 없음. 추가로, 단순히 “display:none”과 “display:block” 만 전환하지 않고, 동일한 크기로 공간을 확보해 두고 올바른 메시지를 표시하거나, 초기에 빈 공간만 남겨서 오동작 시 잘못된 메시지가 보이지 않도록 할 생각임
    • 신규 도메인 만드는 건 충분히 가치 있는 시도라고 생각함. 도메인 세팅하고 짧은 블로그 글만 써도 HN 커뮤니티가 블록리스트에 추가하는 데 다들 도울 거라 확신함. 그리고 이왕 만들면 도네이션 버튼도 추가하면 좋겠음
  • 심지어 CERN도 모두에게 안전한 인터넷 이용을 위해 광고 차단기를 권장함<br> 관련 기사 참고<br> 처음 웹이 등장했을 때 이렇게까지 광고가 난무할 거라 생각하지 않았을 것임
    • 요즘은 Firefox나 다른 덜 제한적인 브라우저를 모두에게 권장하는 분위기일 것임. 최근 아내의 컴퓨터를 도와주다가 광고가 넘쳐나는 걸 봤는데 예전에는 uBlock을 설치해줬었음. Chrome 확장 관리 페이지를 확인해보니 Google이 uBlock을 자동으로 비활성화하고 미지원 확장이라고 표시함. 브라우저를 재시작할 때마다 uBlock을 다시 켜야 함. Chrome이 요즘 광고 차단기를 의도적으로 몰아내는 것 같음
  • 오늘날 인터넷 분위기에 맞춰서 이런 메시지도 사용자에게 불친절한 팝업 형태로 만들어야 할지도 모르겠음. X 버튼도 배경색과 아주 유사한 색의 미니 사이즈로 만들어두고, 화면의 접근이 제일 불편한 곳에 배치해야 함. 터치 기기에서는 터치 영역도 작고 위치도 어긋나게 만들어야 함. iPad에서는 팝업이 전체를 뒤덮고 닫을 방법조차 없어야 함
  • 브라우저가 페이지 onload 이후 자바스크립트 실행을 쉽게 끄거나, 클릭 시에만 JS를 활성화하는 방법을 제공했으면 함
    • Brave 브라우저를 사용하면 기본적으로 JS를 해제하고, 필요한 사이트마다 수동 활성화 가능함
    • 나도 이 의견에 100% 동감함. 예전 IE Stop 버튼이 그 역할을 하는 줄 알았음
    • uBO의 ‘클릭으로 JavaScript 끄기’ 버튼 기능이 아주 유용함
    • 예전 Opera(크로미움 기반 이전)는 메뉴에서 JS 온오프가 간편하게 되었는데 적용 범위는 잘 기억나지 않음
    • 예전엔 광고 스크립트가 document.write()를 써서 즉시 실행되고 느려지는 부분이 많았음. 혹시 요즘도 그런지 궁금함
  • “좋아하는 저자를 후원하려면 광고 보는 것보다 직접 돈을 보내라. $1이 광고 수익보다 훨씬 도움이 된다”는 주장에 동의하지 않음. 예전에 내 개인 사이트에 상단에만 작은 배너를 달았는데, 광고 수익 덕분에 월세의 상당 부분을 충당할 수 있었음. 직접 돈 보내줬던 사람은 0.01%도 안 됨. 광고 보는 건 싫지만, 광고로 창작자가 돈 버는 것도 사실임
    • 그래도 생각해 보면, 광고를 본 한 명이 정말 $1보다 더 많이 광고 수익을 가져다 주는지는 다시 생각해봐야 함

제 블로그도 이전부터 광고차단기가 없는 것을 발견하면 광고차단기를 설치하라고 권장하는 메시지를 띄우고 있었는데 저만 그랬던 게 아니라니 반갑군요