애드센스 계정 관리자 클릭을 막는 방법?
"애드센스 계정 관리자 클릭 막기"를 말씀하신 게, 내가 운영하는 사이트에서 관리자(본인 계정)로 접속했을 때 실수로 광고를 클릭하는 걸 방지하고 싶다는 의미 맞으실까요?
✅ 맞다면 정리해드리면:
구글 애드센스는 자기 클릭(자체 클릭, invalid click) 을 엄격히 금지합니다. 그래서 계정 관리자로 로그인했을 때는 광고가 아예 안 보이거나 클릭이 막히게 하는 방법을 쓰는 게 안전합니다.
방법 1. AdSense 광고 로딩 자체 차단 (관리자 로그인 시)
워드프레스/직접 제작 사이트 모두 가능한 방식입니다.
예: 로그인 사용자라면 adsense 스크립트를 불러오지 않음.
<script>
// 관리자 여부 체크 (예시: 특정 쿠키/세션 값)
var isAdmin = true;
if (!isAdmin) {
var s = document.createElement("script");
s.async = true;
s.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
document.head.appendChild(s);
}
</script>
👉 이렇게 하면 관리자는 광고 자체가 안 뜸.
방법 2. CSS + 포인터 차단
관리자 계정일 때 광고가 보이더라도 클릭 못하게 막음.
.admin ins.adsbygoogle {
pointer-events: none !important;
opacity: 0.6; /* 클릭 방지 표시용 */
}
방법 3. IP 기반 차단
운영자가 주로 쓰는 고정 IP 대역을 알아두고, 해당 IP에서는 애드센스 광고 코드 삽입 안 함.
(다만, VPN·모바일 접속 시 IP가 자주 바뀌면 불편.)
방법 4. 개발 환경 / 테스트 환경 분리
테스트 서버에는 아예 광고 코드 제외, 운영 서버에서만 노출.
이러면 본인 클릭 위험이 제로가 됩니다.
👉 가장 안전한 건 관리자 로그인 시 광고 코드 자체를 안 넣는 방법(방법 1) 이고, 간단하게는 CSS로 클릭 막기(방법 2) 도 자주 씁니다.
원하시면 제가 워드프레스용, 일반 HTML용 두 가지 샘플 코드를 따로 정리해드릴까요?
둘다 애드센스 규정 위배는 없나?
좋은 질문이에요 👍
애드센스는 광고 코드 자체를 인위적으로 변형하거나,
클릭 유도/광고 동작을 조작하는 건 위배지만,
운영자가 자신의 계정 환경에서 광고를 아예 안 보이게 하거나 클릭을 막는 것은 규정 위배가 아닙니다. 오히려 자기 클릭을 방지하는 권장 보안 조치에 가깝습니다.
✅ 방법별로 규정 위배 여부
- 관리자 로그인 시 광고 코드 로딩 안 함 (권장)
- 광고 코드 자체를 호출하지 않음 → 구글 정책 위배 ❌
- 단, 광고 코드를 불러왔다가 임의로 변형(광고 위치 강제 변경, 광고 클릭 이벤트 막는 자바스크립트 등)은 주의 필요.
- 광고 자체가 삽입되지 않는 건 완전히 안전합니다.
- CSS로 pointer-events: none 처리 (광고는 보이지만 클릭 불가)
- 광고 UI를 변형하거나 광고 제공 방식에 영향을 주지 않고, 단순히 관리자 환경에서만 클릭 차단 → 일반적으로 위배 ❌
- 단, 모든 사용자에게 적용하면 광고가 표시되지만 클릭이 안 되는 비정상적인 상태라 정책 위반 가능성이 있습니다.
→ "관리자 계정에만 조건부 적용"해야 안전합니다.
- IP 기반 차단
- 특정 IP에서 광고 코드 안 넣는 건 (방법 1과 같아서) 위배 ❌
- 개발/테스트 환경 분리
- 운영 서버에만 광고 넣는 건 오히려 구글도 권장 ✅
📌 정리
- "광고 자체를 사용자에게는 정상적으로 보여주되, 운영자(관리자) 환경에서만 제거/차단" → 문제 없음.
- "광고를 불러온 후 임의로 변형하거나, 일반 사용자까지 차단 적용" → 정책 위반 위험 있음.
👉 제 생각에는 가장 무난하고 확실한 방법은
관리자 로그인 시 아예 광고 코드 삽입을 안 하는 것(방법 1)이에요.
원하시면 제가 워드프레스 환경에서는 functions.php
후킹 예제,
일반 HTML 환경에서는 if (isAdmin)
조건문으로 광고 스크립트 배제하는 실전 코드를 써드릴까요?
로그인 기능이 따로 없을 때는?
아, 로그인 기능이 없으시군요 👍 그럼 “관리자만 광고 차단”을 구현하려면 다른 기준이 필요합니다. 보통은 이런 방법들을 씁니다:
✅ 로그인 없는 환경에서 자기 클릭 방지 방법
1. IP 기반 차단 (가장 많이 씀)
- 본인이 주로 쓰는 고정 IP 대역을 기준으로 광고 코드 자체를 안 넣음.
- 예: Cloudflare, nginx, PHP, JS 레벨에서 조건 분기 가능.
<script>
var myAdminIP = ["123.45.67.89", "123.45.67.90"];
fetch("https://api.ipify.org?format=json")
.then(r => r.json())
.then(data => {
if (!myAdminIP.includes(data.ip)) {
var s = document.createElement("script");
s.async = true;
s.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
document.head.appendChild(s);
}
});
</script>
👉 본인 IP에서는 광고가 아예 안 뜸. (정책 위배 ❌)
2. 쿠키 / URL 파라미터 활용
- 운영자가 사이트 들어갈 때
?admin=1
같은 파라미터 붙여 접속 → 해당 시그널을 쿠키로 저장. - 그 쿠키가 있으면 광고 스크립트 안 불러옴.
<script>
(function () {
// 1) URL 파라미터로 on/off 토글
const qs = new URLSearchParams(location.search);
const cmd = qs.get('ads'); // 'off' 또는 'on'
// 쿠키 유틸
const setCookie = (k, v, maxAge) =>
(document.cookie = k + "=" + v + ";path=/;max-age=" + maxAge);
const hasCookie = (k, v) => document.cookie.split("; ").includes(k + "=" + v);
if (cmd === 'off') {
setCookie('ads_off', '1', 60 * 60 * 24 * 30); // 30일
// 알림은 원하시면 제거 가능
console.log('[ADS] Admin off: 30일간 이 브라우저에서 광고 비활성화');
} else if (cmd === 'on') {
// 쿠키 삭제
setCookie('ads_off', '1', 0);
console.log('[ADS] Admin on: 광고 다시 활성화');
}
// 2) 광고 비활성화 여부 결정
const adsOff = hasCookie('ads_off', '1') || cmd === 'off';
// 3) ads_off면 AdSense 스크립트를 불러오지 않음
if (adsOff) {
window.__ADMIN_ADS_OFF__ = true; // 진단용 플래그
return; // 여기서 종료 → 아래에서 광고 스크립트 삽입 안 됨
}
// 4) 정상 사용자를 위해 AdSense 로더 삽입
var s = document.createElement('script');
s.async = true;
s.crossOrigin = "anonymous";
// client는 본인 값으로 교체
s.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXXXXXXXXXXX";
document.head.appendChild(s);
})();
</script>
👉 로그인 시스템 없어도, 본인만 ?ads=off
로 들어가면 안전하게 광고 차단 가능.
3. 브라우저 확장 / 애드블록 규칙 활용
- 크롬/웨일/파이어폭스에서 AdBlock, uBlock에 본인 도메인용 규칙을 넣어서 광고 막기.
- 사이트 코드는 그대로 두고, 본인 브라우저에서만 광고 차단.
👉 가장 간단하고 정책 위배 0%.
4. 개발/운영 환경 분리
example.com
은 운영,dev.example.com
에서는 광고 코드 제외.- 관리자라면 항상 dev 도메인에서만 수정/확인 → 광고 안 뜸.
📌 정리
- 로그인 없으면
IP 차단
이나쿠키/파라미터
방식이 제일 많이 씁니다. - 가장 확실하고 간단한 건 브라우저 확장(Adblock) 으로 자기만 차단하는 방법이에요.
- 광고 코드를 일반 사용자에게는 그대로 유지하면 애드센스 정책 위배가 아닙니다.
👉 혹시 운영하시는 사이트가 정적 HTML인지, 아니면 PHP/워드프레스 같은 동적 서버인지 알려주시면, 거기에 맞춰 “관리자 차단 코드”를 구체적으로 짜드릴까요?
3번 자세히 설명해줘.
정적 html 코드도 줘.
좋아요. **방법 3(브라우저 확장/애드블록 규칙)**을 “관리자(본인 브라우저)에서만” 적용하는 방식으로 자세히 정리하고, 덧붙여 정적 HTML만으로 광고 로딩을 끌 수 있는 토글 코드도 드릴게요. (일반 방문자에게는 변화가 없도록 해야 정책상 안전합니다.)
1) 브라우저 확장으로 ‘내 브라우저에서만’ AdSense 차단
아래 예시는 uBlock Origin 기준(Chrome/Whale/Firefox 모두 가능)입니다.
핵심은 “내 도메인에서만 AdSense 스크립트 요청을 차단” 하는 규칙을 추가하는 겁니다.
설치 후 규칙 넣기
- uBlock Origin 설치 → 확장 아이콘 클릭 → 톱니바퀴(대시보드).
- My filters(내 필터) 탭에 아래처럼 입력 후 Apply changes.
||pagead2.googlesyndication.com/pagead/js/adsbygoogle.js$script,domain=dapt.kr
dapt.kr##ins.adsbygoogle
dapt.kr##.adsbygoogle
- 첫 줄: AdSense 로더 스크립트를 dapt.kr 방문 시에만 차단.
- 둘째/셋째 줄: 혹시 남는 광고 슬롯(컨테이너) 도 가려서 빈 자리도 안 보이게.
다른 사이트 광고에는 전혀 영향이 없습니다(도메인 한정).
(선택) 고급 규칙
uBO는 “요소 선택기(스포이드)”로 화면에서 직접 광고 슬롯을 찍어 일회성/영구 규칙을 만들 수도 있어요.
확장 아이콘 → Element picker mode → 광고 요소 클릭 → Create.
AdBlock/AdGuard 쓰는 경우
대부분 같은 문법이 동작합니다. 안 되면 아래 2가지만 넣어도 충분합니다.
||pagead2.googlesyndication.com/pagead/js/adsbygoogle.js$script,domain=dapt.kr
dapt.kr##ins.adsbygoogle
⚠️ 시스템 전체(hosts 파일)로
pagead2.googlesyndication.com
을 막으면 모든 사이트의 광고가 차단됩니다. 반드시 도메인 한정(내 사이트에서만) 으로 막는 걸 추천합니다.
2) 정적 HTML만으로 “관리자 토글” (URL 파라미터/쿠키)
로그인/백엔드 없이도 본인만 광고를 끌 수 있는 안전한 방식입니다.
원리: ?ads=off
로 접속하면 쿠키를 심고, 그 쿠키가 있으면 AdSense 스크립트를 아예 불러오지 않음.
아래 스니펫을 <head>
가장 위쪽에 넣으세요.
<script>
(function () {
// 1) URL 파라미터로 on/off 토글
const qs = new URLSearchParams(location.search);
const cmd = qs.get('ads'); // 'off' 또는 'on'
// 쿠키 유틸
const setCookie = (k, v, maxAge) =>
(document.cookie = k + "=" + v + ";path=/;max-age=" + maxAge);
const hasCookie = (k, v) => document.cookie.split("; ").includes(k + "=" + v);
if (cmd === 'off') {
setCookie('ads_off', '1', 60 * 60 * 24 * 30); // 30일
// 알림은 원하시면 제거 가능
console.log('[ADS] Admin off: 30일간 이 브라우저에서 광고 비활성화');
} else if (cmd === 'on') {
// 쿠키 삭제
setCookie('ads_off', '1', 0);
console.log('[ADS] Admin on: 광고 다시 활성화');
}
// 2) 광고 비활성화 여부 결정
const adsOff = hasCookie('ads_off', '1') || cmd === 'off';
// 3) ads_off면 AdSense 스크립트를 불러오지 않음
if (adsOff) {
window.__ADMIN_ADS_OFF__ = true; // 진단용 플래그
return; // 여기서 종료 → 아래에서 광고 스크립트 삽입 안 됨
}
// 4) 정상 사용자를 위해 AdSense 로더 삽입
var s = document.createElement('script');
s.async = true;
s.crossOrigin = "anonymous";
// client는 본인 값으로 교체
s.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXXXXXXXXXXX";
document.head.appendChild(s);
})();
</script>
그리고 페이지 본문에 쓰던 광고 슬롯(예: Auto ads 사용 시 메타/로더만 있으면 됨, 수동 슬롯이면 <ins class="adsbygoogle" ...>
들)은 그대로 두면 됩니다. 위 스니펫이 로더 자체를 안 불러오므로 관리자 브라우저에서는 광고가 생성되지 않아요.
간편 토글 방법
- 광고 끄기:
https://dapt.kr/?ads=off
- 광고 켜기:
https://dapt.kr/?ads=on
(도메인은 본인 사이트로 바꾸세요. 쿠키는 현재 브라우저에만 적용됩니다.)
(선택) 혹시 로더가 먼저 들어간 경우 대비 CSS
아주 드물게 순서 문제로 빈 슬롯이 보이면, 개발용으로만 아래를 쓰세요.
<style>
html[data-admin-ads-off="1"] ins.adsbygoogle { display: none !important; }
</style>
<script>
if (window.__ADMIN_ADS_OFF__) {
document.documentElement.setAttribute('data-admin-ads-off', '1');
}
</script>
정책 측면 요약
- 위 두 방법은 일반 방문자에게는 어떤 조작도 하지 않음 → 정책 위반 위험 없음.
- 내 브라우저에서만, 혹은 내 쿠키가 있을 때만 광고 로더를 불러오지 않는 건 자기 클릭 방지 목적의 안전한 운영 방법입니다.
- 일반 사용자에게 광고를 임의로 숨기거나 동작을 바꾸는 건 금물.
👉 혹시 원하시는 게 “내 브라우저에서만 광고를 안 보고 싶다” 쪽이 주 목적이신가요,
아니면 “서브도메인/테스트 환경에서만 광고를 자동으로 막고 싶다” 쪽이 우선이신가요?
그에 따라 uBlock 정식 설치 vs 정적 HTML 코드 중 최적 방식을 딱 집어드릴게요.
uBlock Origin Lite에 My filters가 안보임
좋은 지적이에요 👍
말씀하신 uBlock Origin Lite는 “정식 uBlock Origin”의 간소화 버전이라서,
My filters / My rules 같은 고급 사용자 지정 기능이 아예 없습니다.
→ 그래서 직접 필터 규칙을 추가해서 adsbygoogle.js
같은 걸 차단할 수가 없어요.
✅ 선택지
1. 정식 uBlock Origin 설치
- 크롬 웹스토어 / 파이어폭스 애드온에서
uBlock Origin
(Raymond Hill 제작) 설치. - 이 버전에는 My filters, My rules, Element picker 전부 지원됩니다.
- Lite → 삭제하시고, 정식 버전 설치하시면 제가 드린 규칙 넣을 수 있어요.
👉 크롬 웹스토어 링크:
https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm
2. Lite 유지 + 다른 방식 사용
Lite는 “설정 없는 순정형 광고 차단기”라서 사용자 규칙 추가 불가가 기본 철학이에요.
만약 굳이 Lite를 계속 쓰고 싶으시다면:
- 정적 HTML에서 쿠키/도메인별 차단 코드 (제가 드린
?ads=off
방식, 도메인 화이트리스트 방식) 사용 - 또는 hosts 파일 수정해서
pagead2.googlesyndication.com
차단 (단, 이 경우 모든 사이트의 광고가 차단됨 → 개발자 본인 브라우저 전용으로만 사용 가능)
📌 정리
- uBlock Origin Lite → 사용자 정의 필터 지원 ❌
- 자기 클릭 방지 목적이라면 → 정식 uBlock Origin 설치가 가장 깔끔
- Lite를 유지하고 싶으면 → HTML 차단 코드를 써야 합니다.
👉 그러면 질문인데요, 운영자님은 “내 브라우저에서만 광고를 안 보고 싶다” 쪽이 주 목적이신가요,
아니면 “서브도메인/테스트 환경에서만 광고를 자동으로 막고 싶다” 쪽이 우선이신가요?
그에 따라 uBlock 정식 설치 vs 정적 HTML 코드 중 최적 방식을 딱 집어드릴게요.
도메인/서브도메인별 방법 알려줘.
좋습니다 👍 말씀하신 도메인 / 서브도메인별 광고 로딩 제어를 정적 HTML 환경에서 쓸 수 있도록 정리해 드릴게요.
✅ 도메인 / 서브도메인별 AdSense 로딩 제어
원리:
location.hostname
값을 확인해서 운영 도메인에서는 광고를 켜고,dev
,test
,staging
같은 서브도메인에서는 광고를 끔.
1) 예제 스니펫 (정적 HTML)
<script>
(function () {
// 현재 접속 도메인
const host = location.hostname; // 예: "dapt.kr" / "dev.dapt.kr"
// 광고를 끄고 싶은 도메인/서브도메인 목록
const blockList = [
"dev.dapt.kr",
"test.dapt.kr",
"staging.dapt.kr",
"localhost" // 로컬 개발 환경
];
// 광고 끄기 여부 판단
const adsOff = blockList.includes(host);
if (adsOff) {
console.log("[ADS] 이 도메인에서는 광고 비활성화:", host);
return; // 광고 스크립트 로딩 중단
}
// 광고 켜야 할 경우 → AdSense 스크립트 삽입
var s = document.createElement('script');
s.async = true;
s.crossOrigin = "anonymous";
// client는 본인 값으로 교체
s.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXXXXXXXXXXX";
document.head.appendChild(s);
})();
</script>
👉 이렇게 하면:
dapt.kr
(운영 본도메인) → 광고 정상 노출dev.dapt.kr
,test.dapt.kr
→ 광고 아예 안 뜸localhost
(내 컴퓨터 테스트) → 광고 안 뜸
2) 패턴 매칭 (서브도메인 전체 차단)
dev.aaa.com
, dev.bbb.com
처럼 dev.* 패턴 전체를 막고 싶으면 endsWith
나 startsWith
사용하세요.
const adsOff = (
host.startsWith("dev.") ||
host.startsWith("staging.") ||
host === "localhost"
);
3) 운영/비운영 도메인 구분 전략
- 운영(ads ON):
dapt.kr
,www.dapt.kr
- 비운영(ads OFF):
dev.dapt.kr
,staging.dapt.kr
,*.local
,localhost
이렇게 나누면 확실합니다.
👉 운영 도메인만 “화이트리스트” 방식으로 두는 게 더 안전하기도 합니다.
const allowList = ["dapt.kr", "www.dapt.kr"];
const adsOn = allowList.includes(host);
if (!adsOn) {
console.log("[ADS] 광고 차단: 운영 도메인 아님 →", host);
return;
}
4) 정책 안전성
- 운영 도메인에서 광고는 정상 동작 → 정책 위배 없음
- 비운영 도메인/로컬에서 광고 아예 안 불러옴 → 자기 클릭 방지용 조치라서 안전
👉 혹시 원하시는 게 “운영 도메인만 광고 노출(화이트리스트)” 구조인지,
아니면 “특정 서브도메인만 차단(블랙리스트)” 구조인지 확인해드릴까요?
'Prop : 부동산 > 업데이트 일지' 카테고리의 다른 글
[R] 두 경로(폴더/디렉토리)에 파일들이 있을 때, 용량을 나란히 비교해서 보는 사용자 함수 (0) | 2025.09.11 |
---|---|
[R] data.table 내 텍스트 부분일치 검색 처리 (0) | 2025.09.06 |
다른 사이트에서 내 GA4 태그를 사용하면 발생하는 문제와 해결방안 (0) | 2025.09.05 |
AWS EC2 Failsafe & Maintenance Page 종합 매뉴얼 (0) | 2025.09.01 |
서울/수도권(+6대 광역시) 아파트 실거래가 업데이트 작업기록(2021-07-24) (0) | 2021.07.24 |
댓글