adblock의 원리가 궁금합니다
보통 이미지와 같은 광고는 쉽게 차단이 가능할 것 같은데
유튜브와 같은 영상 플랫폼에서의 5~30초 영상광고는
어떻게 차단할 수 있는지 궁금합니다.
프론트에서 백엔드로 광고 이미지, 영상 등을 요청할 때 필연적으로 요청 주소가 남을 수밖에 없습니다. adblock같은 프로그램은 브라우저 확장 프로그램으로써 프론트가 백엔드로 보내는 네트워크 요청 주소를 받아올 수 있고, 특정 패턴의 요청 주소를 걸러낼 수 있습니다. 즉 처음부터 광고 주소의 요청을 아예 보내지 않아서 광고가 뜨지 않습니다. 이미지나 영상 광고나 어차피 대부분 주소로 걸러내는 것이라서 파일 형식에 상관없이 애드블록이 다 걸러낼 수 있습니다. 화이트리스트라고, 허용되는 주소나 웹사이트 URL를 제공해서 특정 광고는 허용할 수도 있고요.
웹사이트에서도 광고 요청에 대한 응답이 왔는지 안 왔는지를 판단해서 애드블록이 실행 중인지 아닌지를 역으로 추적하기도 합니다.
adblock 의 원리는 우선 크롬에 설치되어서
눈에 보이는 웹페이지의 소스를 읽을수 있는 권한이 있어야 합니다
그런 권한을 얻게 되면, 다양한일들을 할 수가 있는데요
(권한 못 얻으면 작업이 안됩니다)
그중 하나가 말씀하신 광고차단입니다,
차단원리는 특정이미지라면, 일반적인 이미지 주소는 통과시키고, 그게 아닌 주소는
삭제하는것이구요
유튜브는 소스를 보지 못했지만, 광고영상 소스의 주소와 정상적인 영상 소스의 주소가
상이할것으로 판단됩니다
그걸 토대로 차단하는것으로 보여지는데요,
문제는 지금은 adblock 같은것이 잘 동작될 수 있겠지만, 경우에 따라서 막힐수도 있습니다
그 이유는 동영상컨트롤 하는것이 자바스크립트 언어로 사용자 PC에서 컨트롤이 됩니다
즉, 구글이 원하는 기능 그러니깐 adblock 을 막는부분을 따로 추가할 수 있다는것이죠
창과 방패의 싸움 또는 백신과 바이러스의 싸움처럼 서로 서로 버전을 업데이트하면서
치고박고 하겠죠
결론은? 구글이 이기게 되어 있습니다, 자금력, 개발투자시간등을 도저히 따라갈수 없으니까요
일단 위 기능을 만들고 싶으시다면, 실력향상을 위한 레벨업 수업이라 생각하시고 도전하시는게
좋을것 같습니다
프로그램의 원리는 사실 단순합니다.
화면의 광고부분을 스크립트 코드로 감지해 해당 코드를 모두 지운 화면만을 사용자에게 보여주는 식입니다.
그래서 사용자는 광고 자체를 볼 수도 누를 수도 없게 되는것이죠.
광고부분을 감지하는 코드들은 프로그램별 즉 언어별로 조금씩 다르지만 요즘 프로그램언어들에서 기본으로 제공해주는 모듈들시 막강하여 감지하는 모듈을 가지고 코딩을 하게되어 만들어집니다.
충분한 답변이 되었는지 모르겠습니다.^^
이상 별님이었습니다^^ 건강한 하루되세요.
adblock은 특정 광고 컨텐츠가 들어가는 html 태그 영역을 가로채서 무력화시킵니다.
예를 들면
<div class="/rollingboardplayer"/ data-role="/rollingPlayer" /style="/width:350px;height:200px;"/><div class="rollingboardplayer_inner over" data-role="/innerVideoArea/">
네이버 메인에 이런 태그를 가진 광고 영상이 자동 재생되고 있다고 치면 이 문서객체를 찾아서 동적으로 실행시켜주는 스크립트도 있게되는데요,
rollingboardplayer라는 클래스명이나 속성명 data-role의 rollingPlayer에 있는 컨텐츠를 찾아서 재생기가 있으면 스크립트가 실행을 시킵니다. 그럼 그 타겟인 속성명이나 아이디, 클래스명을 가진 태그를 삭제하면 영상 재생도 되지 않겠죠?
adblock은 그런 것들을 찾아내는 알고리즘과 쌓여있는 데이터로 광고임을 판단하고 태그를 무력화시킵니다.