はじめに
現在のこのプログがそうなのですが、なにも調査せず、運営していたところ、アドセンス広告の制限になってしまいました。
いろいろ調べたところ、広告をクリックしなくても、アクセスするだけでもダメなようで、Movable Type運用しているため、記事をいれて表示確認など数名で行っていたため、まずこれからつぶすことにしました。
といっても記事を入れて確認するな・・とも運用できず、会社のアクセスからは広告をださないことにしました。
アドセンスでこのIPは除外するなどあるといいですね。あるなら。だれか教えてください。
方法
現在wordpressじゃないのでプラグインなど、Movable Typeでは見当たらず、自作することに
javascriptで下記の関数を作成します。
これはアドセンスのタグを生成する仕組みになります。
ca-pub-xxxxxxxxxxの部分は、自分のコードを入れてください。
function appendAds(URL) {
var el = document.createElement('script');
el.src = URL;
el.async = true;
el.setAttribute('data-ad-client','ca-pub-xxxxxxxxxx');
el.type = "text/javascript";
document.getElementsByTagName('head')[0].appendChild(el);
}
呼び出しはこんな感じ
appendAds('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js');
上記だけだと、いままで同じなので、自社IPを取得したいのですが、残念ながらjavascriptでは取得できません。
なのでCGI、PHPなどで作成する必要があります。
PHPサンプル
<?php
$ret = 0;
if($_SERVER["REMOTE_ADDR"] == "あなたのIP") {
$ret = 1;
}
echo $ret;
javascriptサンプル
<script type="text/javascript">
jQuery(document).ready(function($){
$.ajax({
type: "GET",
url: "https://配置したCGI",
cache : false,
success: function(data, dataType){
if(data == 0) {
appendAds('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js');
}
}
});
function appendAds(URL) {
var el = document.createElement('script');
el.src = URL;
el.async = true;
el.setAttribute('data-ad-client','ca-pub-xxxxxxxxxx');
el.type = "text/javascript";
document.getElementsByTagName('head')[0].appendChild(el);
}
});
</script>
応用編
上記までできたら、jquery.iframetracker.min.jsというプラグインがあります。これはフレームのクリックを感知してくれます。
作成したCGIを改造すれば、クリックの制限で広告をださないなどできます。
$("#google-auto-placed iframe").iframeTracker({
blurCallback: function(){
$.ajax({
type: "GET",
url: "配置したCGI",
cache : false,
success: function(data, dataType){
}
});
}
});
さいごに
まだ、原因はわからないのですが、とりあえずこれで様子をみることに、とりあずうちはクリック制限もいれておきました。
では・・