2011-06-15 4 views
2

무료 계정을 지원하기 위해 측면에 광고 배너를 사용하는 웹 앱을 작성했습니다. 문제는 광고가 자체 <div>에로드되었으므로 최신 브라우저에서 개발자/디버그 콘솔로 이동하여 div를 제거하거나 CSS 재정의를 사용하여 광고 크기를 0px로 조정하는 것이 상대적으로 쉽습니다 (사용자가 앱 작업 공간에서 더 많은 부동산을 얻습니다.) 이를 방지하기 위해 광고가있는 div의 속성이 CSS 스타일을 포함하여 전혀 변경되지 않았는지 주기적으로 확인하고 CSS 스타일을 포함하는 페이지를 다시로드하는 방법을 고려했습니다. 필자가 일부 드로잉을 위해 캔버스 요소를 사용하고 있기 때문에 캔버스를 지우는 것이므로 사용자에게 상대적으로 성가신 일이 될 수 있으므로 광고가 조작되지 않으면 다시로드하지 않을 것입니다.DOM을 사용한 사용자 조작 감지

사람들이 돌연변이 이벤트를 사용하여 DOM 변경 사항을 추적하는 것과 비슷한 질문을했습니다. 그러나 답변을 기반으로 모든 브라우저에 지원이있는 것 같지 않습니다. (다시 보았을 때, 내가 본 스레드는 2008 년과 2009 년 이후로 변경되었을 수 있습니다.)

내가 생각했던 또 다른 대안은 페이지로드가 끝나면 div의 offsetWidth, offsetHeight, offsetTop, offsetLeft를 읽고 현재 값과 주기적으로 비교하는 것입니다 (전체적으로 많이 할 수있는 것은 아닙니다. 당신이 그것을 움직일 수 없으면 div를 떠나게하십시오).

당신은 무엇을 제안합니까?

+1

DOM을 조작 할 수 없다면 웹 개발이 재미있을 것입니다. – mrk

+1

사용자가 더 많은 부동산을 얻기 위해이 작업을 수행하는 경우, 사용 가능한 영역의 너비를 고정하여 그 이유를 막을 수 있습니까? –

+0

고맙습니다. @Don, 그게 결국 궁극적으로 끝났습니다. 광고가있는 경우 광고 크기가 조정될 수있는 여러 div가 있으므로 사용자가 광고를 제거하더라도 js 코드가 수정되거나 다른 div가 수정되지 않으면 얻을 수있는 것이 없습니다. 나중에 창 크기를 조정하십시오. 다른 사람들이 유효한 포인트를 가져 오는 동안, 나는 그들이 그 질문에 답한 것에 동의하지 않는다. StackOverflow를 사용하여 솔루션으로 의견을 수락하면 의견을 수락합니다. –

답변

6

DOM 검사관이 충분히 익숙한 사람은 그 일을하지 않을 것입니다. 고양이와 마우스 게임의 가치도 없습니다. 99.999 %의 사용자가 실수로 DOM 관리자에 액세스 한 경우 기술 지원을 요청할 것입니다.

+4

+1 DOM을 이러한 방법으로 조작 할 수 있다면 조작을 탐지하려고하는 자바 스크립트를 조작 할 수도 있습니다. – deceze

+1

+1 사용자는 DOM을 사용자에게 제공했기 때문에 사용자가 자신이 좋아하는 것을 클라이언트에서 처리 할 수 ​​있습니다. 이 사람들처럼 광고를 제거하는 것이 가능하다고 생각하는 사용자는 거의 없습니다. – Beejamin

+0

사실, DOM을 조정하는 데는 몇 초가 걸리지 만 (바깥 쪽 div 중 하나임) 자바 스크립트를 조정하려면 실제로 사용자가 코드를 연구해야합니다 (일반적으로 어쨌든 방해가되지 않는 광고의 노력은 가치가 없습니다) . 나는 이것을 완전히 막을 수는 없다는 것을 이해하지만 명백한 악용을 막기 위해 간단한 점검을 추가하기를 희망했다. –

6

방문자가 Firefox에서 Adblock으로 말하면 배너가 페이지에 나타나지 않으므로 돌연변환 이벤트가 전달되지 않습니다. 스타일 속성을보고 페이지를 다시로드 할 수는 있지만 광고가 나타나지는 않습니다. 끊임없이 페이지를 다시로드하면 사용자는 성가 시게됩니다.

괜찮 으면 나간다. 그렇지 않으면 광고를 사용 중지 한 사람이 어쨌든 절대로 응답하지 않는다는 것을 알고 있습니다.

+0

고마워요 @RobG, Adblock에 대해서조차 생각조차하지 않았습니다. 그런 경우 돌연변이 이벤트가 작동하지 않는다고 당신이 맞습니다. 광고를 사용하지 않는 한 요점은 내가 클릭하기를 원하지 않는다는 것입니다. 요점은 광고를 없애는 것이 자신의 신용을 퍼트는 것보다 쉽다면 앱의 유료 버전을 얻을 동기가 없다는 것입니다 카드 정보 in. –