카테고리 없음

[블로그] 티스토리 블로그에서 애드블록 차단하기

나태준 2019. 9. 8. 01:35
반응형

블로그 운영에서 가장 중요한건 광고라고 생각한다.

 

그러면서도 귀찮아서 나는 아직 광고를 달고있진 않지만... (컨텐츠도 적기도 하고)

 

아무래도 달아놓는 편이 의욕도 생기고 이런저런 면에서 좋을 것 같아 이번에 애드센스 등록을 했다.

 

근데 아무리 기다려도 광고가 안뜨길래 뭘까... 하고 있었는데... 범인은 바로 애드블록이였다.

 

그래서 애드블록이 활성화 되어 있을 때 이미지를 띄우는 소스를 공유하려한다.

 

1. 티스토리 관리자 창에 들어가 스킨 편집 메뉴로 들어가 HTML 편집 창으로 간다.

 

(1) HTML

</body>태그 바로 위에 아래 소스를 넣어준다.

<div id="h237">
    <span>자바스크립트를 활성화시켜주세요!<br /><a href="http://www.enable-javascript.com/">[활성화]</a></span></div>
<script>
    window.document.getElementById("h237").parentNode.removeChild(window.document.getElementById("h237"));
    (function(l, m) {
        function n(a) {
            a && h237.nextFunction()
        }
        var h = l.document,
            p = ["i", "s", "u"];
        n.prototype = {
            rand: function(a) {
                return Math.floor(Math.random() * a)
            },
            getElementBy: function(a, b) {
                return a ? h.getElementById(a) : h.getElementsByTagName(b)
            },
            getStyle: function(a) {
                var b = h.defaultView;
                return b && b.getComputedStyle ? b.getComputedStyle(a, null) : a.currentStyle
            },
            deferExecution: function(a) {
                setTimeout(a, 250)
            },
            insert: function(a, b) {
                var e = h.createElement("span"),
                    d = h.body,
                    c = d.childNodes.length,
                    g = d.style,
                    f = 0,
                    k = 0;
                if ("h237" == b) {
                    e.setAttribute("id", b);
                    g.margin = g.padding = 0;
                    g.height = "100%";
                    for (c = this.rand(c); f < c; f++) 1 == d.childNodes[f].nodeType && (k = Math.max(k, parseFloat(this.getStyle(d.childNodes[f]).zIndex) || 0));
                    k && (e.style.zIndex = k + 1);
                    c++
                }
                e.innerHTML = a;
                d.insertBefore(e, d.childNodes[c - 1])
            },
            displayMessage: function(a) {
                var b = this;
                a = "abisuq".charAt(b.rand(5));
                b.insert("<" + a + '><a href="JavaScript:window.location.reload()"><img src="./images/disable_adblock2.png" height="600" width="900" alt="AdBlock을 비활성화해주세요!" /></a>' + ("</" + a + ">"), "h237");
                h.addEventListener && b.deferExecution(function() {
                    b.getElementBy("h237").addEventListener("DOMNodeRemoved", function() {
                        b.displayMessage()
                    }, !1)
                })
            },
            i: function() {
                for (var a = "DivTopAd,ad-zone-1,ad_190x90,ads-sticky,iqadtile5,leftframeAD,tobsideAd,ad,ads,adsense".split(","), b = a.length, e = "", d = this, c = 0, g = "abisuq".charAt(d.rand(5)); c < b; c++) d.getElementBy(a[c]) || (e += "<" + g + ' id="' + a[c] + '"></' + g + ">");
                d.insert(e);
                d.deferExecution(function() {
                    for (c = 0; c < b; c++)
                        if (null == d.getElementBy(a[c]).offsetParent || "none" == d.getStyle(d.getElementBy(a[c])).display) return d.displayMessage("#" + a[c] + "(" + c + ")");
                    d.nextFunction()
                })
            },
            s: function() {
                var a = {
                        'pagead2.googlesyndic': 'google_ad_client',
                        'js.adscale.de/getads': 'adscale_slot_id',
                        'get.mirando.de/miran': 'adPlaceId'
                    },
                    b = this,
                    e = b.getElementBy(0, "script"),
                    d = e.length - 1,
                    c, g, f, k;
                h.write = null;
                for (h.writeln = null; 0 <= d; --d)
                    if (c = e[d].src.substr(7, 20), a[c] !== m) {
                        f = h.createElement("script");
                        f.type = "text/javascript";
                        f.src = e[d].src;
                        g = a[c];
                        l[g] = m;
                        f.onload = f.onreadystatechange = function() {
                            k = this;
                            l[g] !== m || k.readyState && "loaded" !== k.readyState && "complete" !== k.readyState || (l[g] = f.onload = f.onreadystatechange = null, e[0].parentNode.removeChild(f))
                        };
                        e[0].parentNode.insertBefore(f, e[0]);
                        b.deferExecution(function() {
                            if (l[g] === m) return b.displayMessage(f.src);
                            b.nextFunction()
                        });
                        return
                    }
                b.nextFunction()
            },
            u: function() {
                var a = "ad&adv_keywords=,-page-peel/,/adchain.,/adfootright.,/adsxml/ad,/adyard300.,/impopup/ad,/loadadsparam.,/meme_ad.,_adshare.".split(","),
                    b = this,
                    e = b.getElementBy(0, "img"),
                    d, c;
                e[0] !== m && e[0].src !== m && (d = new Image, d.onload = function() {
                    c = this;
                    c.onload = null;
                    c.onerror = function() {
                        p = null;
                        b.displayMessage(c.src)
                    };
                    c.src = e[0].src + "#" + a.join("")
                }, d.src = e[0].src);
                b.deferExecution(function() {
                    b.nextFunction()
                })
            },
            nextFunction: function() {
                var a = p[0];
                a !== m && (p.shift(), this[a]())
            }
        };
        l.h237 = h237 = new n;
        h.addEventListener ? l.addEventListener("load", n, !1) : l.attachEvent("onload", n)
    })(window);
</script>

 

(2) CSS

맨 아래에 추가해준다.

/* Adblock disable */
#h237 {
	position: fixed !important;
	position: absolute;
	top: 0;
	top: expression((t=document.documentElement.scrollTop?document.documentElement.scrollTop: document.body.scrollTop)+"px");
	left: 0;
	width: 102%;
	height: 102%;
	background-color: #f9f9f9;
	opacity: .97;
	display: block;
	padding: 10% 0
}

#h237 * {
	text-align: center;
	margin: 0 auto;
	display: block;
	filter: none;
	font: bold 14px Verdana, Arial, sans-serif;
	text-decoration: none
}

#h237 ~ * {
	display: none
}

 

(3) disable_adblock2.png라는 이름으로 방문자들에게 Adblock을 꺼줄 것을 요청하는 이미지를 추가해준다. 단, 파일 이름은 HTML 소스와 함께 변경이 가능하다.

 

반응형
자바스크립트를 활성화시켜주세요!
[활성화]