티스토리 블로그를 운영하면서 애드센스를 수동으로 적용해본 분이라면, 한 번쯤은 애드센스 광고 코드도 제대로 넣었는데 왜 광고가 안 뜨지? 라는 경험을 해보셨을 겁니다. 특히 메인 페이지나 카테고리 페이지에서 애드센스 광고가 노출되지 않는 문제, 그리고 adsbygoogle.js의 중복 로딩 또는 누락 현상은 수익 저하로 이어지는 주요 원인 중 하나입니다.
이번 글에서는 애드센스 광고 최적화를 위해서 수동 광고 설정 시 JS 파일 누락으로 인해 발생하는 애드센스 미노출 문제에 대해 구체적으로 살펴보고, 이를 해결할 수 있는 조건부 스크립트 적용법까지 소개합니다.
글만 잘 쓰면 방문자가 늘고, 수익도 자연스럽게 따라올 거야.
처음에는 이렇게 막연하게 기대하지만, 현실은 그리 간단하지 않다는 걸 점점 깨닫게 됩니다.
이번 글은 애드센스 광고 문제의 응용편입니다.
티스토리 자동 광고와 수동 광고, 애드센스 최적화의 차이점
주의: 아직 이전 글을 읽지 않으셨다면, 이 글은 건너뛰는 것이 좋습니다. 아래 글들을 먼저 읽고 오시길 권장합니다:
이 글은 이전 글에서 소개한 애드센스 최적화 작업 중 발생할 수 있는 문제에 대한 연장선입니다.
즉, JS 중복 로딩을 피하기 위해 광고 코드에서 JS를 제거했을 경우, 메인 페이지나 카테고리 페이지에서 광고가 노출되지 않는 이유와그 해결 방법을 살펴보겠습니다.
티스토리와 애드센스의 특이한 관계
일반 웹사이트에서는 script src="adsbygoogle.js" 코드를 운영자가 직접 삽입해야 애드센스 광고가 노출됩니다. 하지만 티스토리는 다릅니다.
왜 일까요?
티스토리는 자체적으로 애드센스 제휴 광고를 운영하기 때문에, adsbygoogle.js 스크립트가 이미 내부적으로 로드되어 있는 경우가 많습니다. 즉, 티스토리 자체 광고 ID를 이용해 애드센스 JS가 자동으로 삽입되는 구조입니다. 이 때문에 상황이 약간 번거로워질 수 있습니다.
수동 광고 삽입 시 주의할 점
1. 메인 페이지와 카테고리 페이지에서 광고가 노출되지 않는 문제
수동으로 광고 코드를 삽입할 때, 특히 다음 페이지에서 문제가 발생할 수 있습니다:
- 블로그 메인 페이지
- 카테고리 페이지 (예: /category/, /category/IT)

이러한 페이지에서는 티스토리 자체 광고가 노출되지 않기 때문에, 애드센스 JS 파일이 로딩되지 않을 수 있습니다.
그 결과,
- 수동으로 광고 코드를 삽입했지만
- JS 파일 로딩이 누락되어
- 광고가 전혀 보이지 않는 현상이 발생합니다.
즉, adsbygoogle.js의 중복 로딩을 피하려다 오히려 필요한 페이지에서 로딩이 되지 않는 문제가 발생하는 것입니다.
2. JS 코드를 넣지 않아도 캐시 저장 및 중복 로딩이 발생할 수 있음
블로그 운영자가 수동으로 코드를 삽입하지 않았고, 수동 광고 작업 중 중복 JS 로딩을 방지했더라도 간헐적으로 애드센스 JS가 중복 로딩되는 경우가 있습니다.
대응 방법: 조건부 스크립트 사용
티스토리에서는 메인 페이지 또는 카테고리 페이지에서 애드센스 스크립트가 누락될 수 있으므로, 이를 자동으로 감지해 필요한 경우에만 adsbygoogle.js 파일을 삽입하도록 조건부 스크립트를 적용합니다.
사용 방법 안내
- ca-pub-XXXXXXX 부분을 본인의 애드센스 ID로 변경하세요.
- 메인페이지 변경.tistory.com 부분도 본인의 티스토리 블로그 주소로 변경 가능합니다.
- 이 코드를 HTML 편집 또는 스킨 하단 스크립트 부분에 삽입하면 됩니다.
script
(function () {
const url = location.href;
const isMain = url === 'https://메인페이지변경.tistory.com/';
const isCategory = url.includes('/category');
if (isMain || isCategory) {
const existingScripts = [...document.querySelectorAll('script[src*="adsbygoogle.js"]')];
const validScript = existingScripts.find(el = el.src.includes('client=ca-pub-XXXXXXX'));
if (!validScript) {
existingScripts.forEach(el = el.remove());
const s = document.createElement('script');
s.async = true;
s.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXX";
// 여기에 본인의 애드센스 ID 입력
s.crossOrigin = "anonymous";
document.head.appendChild(s);
}
}
})();
/script
코드 설명
- 메인 페이지와 카테고리 페이지에서만 광고 스크립트를 로딩합니다.
- 중복된 adsbygoogle.js 스크립트가 있으면 기존 스크립트를 제거하고, 본인의 애드센스 ID가 포함된 스크립트만 삽입하여 광고가 제대로 노출되도록 합니다.
- 불필요한 스크립트 중복 로딩으로 인한 광고 경고를 예방합니다.
최적화 팁
- 자동 광고만 사용하는 블로거라면 이 코드가 필요 없습니다.
- 하지만 수동으로 광고 위치를 지정해 사용하는 분들은 반드시 적용하세요.
- 중복 로딩 여부는 Chrome 브라우저에서
F12 Network 탭 adsbygoogle.js로 필터링하면 쉽게 확인할 수 있습니다.
광고 로딩 로직까지 관리….
티스토리는 자체 광고 로직과 애드센스가 얽혀 있어 단순한 복사/붙여넣기만으로는 완벽한 광고 노출을 장담할 수 없습니다.
페이지별 구조 이해와 조건부 JS 로딩 처리를 통해 애드센스 광고가 안정적으로 노출되도록 최적화해 보세요.