PHPを使って手軽にGoogle Adsenseのアクセス制限(制御)をしてみる
さて、今回はプログラムのお話。
巷ではアフェリエイト、コンテンツマッチ広告などなど。副収入になりそうな(主収入にしてる人もいるか)大盛況ですね。
その中でも(いろんな意味で)話題の『 Google Adsense 』ですが・・・。
ココ とかココ などGoogleから一方的に契約を破棄されてしまうケースが多々あるようです。
原因として自分で広告をクリックしてしまう場合などがあるようです。(Google Adsense の利用規約にもそのように書いてあるし)ただ、上記の記事にあるようにGoogleから破棄理由が一切説明されないので、直接的な原因はわからないみたいですね。
これを防ぐには、条件によって Google Adsense 広告の表示をサイト運営者が制限(制御)できれば、上記のような事態をある程度は防げるようになるのではないかと思います。
(本当は Google Adsense がこういった弊害に対応できる機能を実装すればいいのに・・・)
そこで!今回は手軽にPHPを使って、この Google Adsense 広告の表示方法を制限してみます。
HTMLを全部PHP化とかも考えたのですが、なんかそれは激しく面倒臭そう&サーバーへの負荷も怖い&以降のデザイン的とかの部分でメンテが大変になりそうだったのでヽ(;´Д`)ノ今回は、手軽にHTMLの<scritp>タグを利用してみました。
PHPは<script>タグに対応しており、タグのsrc設定で読込&実行が可能なんです。 知ってました?ハイッ、ワタクシ、まーったく知りませんでした・・・。
これをPHPで内包してしまいます。んで、ソースは以下。
今までのGoogle Adsense script部分の記述を
これを応用して Google Adsense 狩りなんてのもいるようなので、同一IPからの大量アクセスがあったら表示を制限なんて、機能を盛り込んだら良さげですね。
PHP環境のないサイト用にサービス化しようかな~(´∀`)フフフ?
ただこれってGoogle Adsense の利用規約的にはどうなんだろう・・・?ヽ(;´Д`)ノ頭イイ人教えてちょ~だい。
巷ではアフェリエイト、コンテンツマッチ広告などなど。副収入になりそうな(主収入にしてる人もいるか)大盛況ですね。
その中でも(いろんな意味で)話題の『 Google Adsense 』ですが・・・。
ココ とかココ などGoogleから一方的に契約を破棄されてしまうケースが多々あるようです。
原因として自分で広告をクリックしてしまう場合などがあるようです。(Google Adsense の利用規約にもそのように書いてあるし)ただ、上記の記事にあるようにGoogleから破棄理由が一切説明されないので、直接的な原因はわからないみたいですね。
これを防ぐには、条件によって Google Adsense 広告の表示をサイト運営者が制限(制御)できれば、上記のような事態をある程度は防げるようになるのではないかと思います。
(本当は Google Adsense がこういった弊害に対応できる機能を実装すればいいのに・・・)
そこで!今回は手軽にPHPを使って、この Google Adsense 広告の表示方法を制限してみます。
HTMLを全部PHP化とかも考えたのですが、なんかそれは激しく面倒臭そう&サーバーへの負荷も怖い&以降のデザイン的とかの部分でメンテが大変になりそうだったのでヽ(;´Д`)ノ今回は、手軽にHTMLの<scritp>タグを利用してみました。
PHPは<script>タグに対応しており、タグのsrc設定で読込&実行が可能なんです。 知ってました?ハイッ、ワタクシ、まーったく知りませんでした・・・。
<script type="text/javascript"><!-- google_ad_client = "pub-****************"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel = ""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "EE6000"; google_color_text = "555555"; google_color_url = "215670"; </script> --><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>Google Adsense タグがこんなカンジだとします。
これをPHPで内包してしまいます。んで、ソースは以下。
<?phpと、まー、こんな感じで。あとはこのファイルを保存(便宜上、adsense.phpとして保存します)して
/** 広告表示を制限するアクセス元IPアドレスを設定 */ $invaid_ips = array( '^192\.168\.0\.', '^(10\.101\.100\.)(8[0-9]|9[0-5])$', '^(10\.101\.111\.1)$', ); /** 条件に該当したら以後の処理をスキップ(Google Adsense 表示用のscriptを表示せずに終わる) */ foreach($invaid_ips as $ip) { if (0 < preg_match("/".$ip."/i", $_SERVER['REMOTE_ADDR'])) return; } /** ↓重要↓このPHPをJavaScriptとして処理させる為に以下のヘッダー送信しときましょ~ */ header("Content-type: application/x-javascript"); /** あとは上記の Google Adsense scriptタグ(とほぼ同じ)記述になりんす */ echo<<<ddd google_ad_client = "pub-****************"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel = ""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "EE6000"; google_color_text = "555555"; google_color_url = "215670"; document.write('<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>'); ddd; ?>
今までのGoogle Adsense script部分の記述を
<script type="text/javascript" src="adsense.php"></script>と書きかえれば完了です。
これを応用して Google Adsense 狩りなんてのもいるようなので、同一IPからの大量アクセスがあったら表示を制限なんて、機能を盛り込んだら良さげですね。
PHP環境のないサイト用にサービス化しようかな~(´∀`)フフフ?
ただこれってGoogle Adsense の利用規約的にはどうなんだろう・・・?ヽ(;´Д`)ノ頭イイ人教えてちょ~だい。
BIND 9.3.2-P1 rndcの設定
BIND 9.3.2-P1版(ソースからコンパイル)でのrndcコマンドを利用可能にするまでの設定を書きます。
(rndcは、BINDを操作する為のユーティリティ)
rndcとnamedが通信するためには認証が必要となります。これには同じ認証キーと同じ認証キーのキー名を用いなければならなりません。
rndc-confgenコマンドのオプションは以下のとおりです。詳しくはコチラ が参考になります。
その後、コメントアウトして、namedサーバーを再起動し設定を有効にします。
(rndcは、BINDを操作する為のユーティリティ)
rndcとnamedが通信するためには認証が必要となります。これには同じ認証キーと同じ認証キーのキー名を用いなければならなりません。
認証用のキー(コンフィグファイル)を生成する
てことで早速。この認証キーとキー名が記述されたコンフィグファイルを生成します。# /usr/local/sbin/rndc-confgen -b 512 > /etc/rndc.conf上記のコマンドを実行すると、以下の内容で「/etc/rndc.conf」ファイルが生成されます。
rndc-confgenコマンドのオプションは以下のとおりです。詳しくはコチラ が参考になります。
| -b | 認証キーのサイズを指定します。1~512(ビット)指定できます。デフォルトは 128 ビットです。 |
| -k | 認証キーのキー名を指定します。デフォルトは rndc-key です。 |
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "**********************************************==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "**********************************************==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
生成されたrndc.confの# key "rndc-key" {
# algorithm hmac-md5;
# secret "**********************************************==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
部分をコピーし、「/etc/named.conf」ファイル(※BINDのコンフィグファイルを各環境にあわせて読み替えてください)の行末にペーストします。その後、コメントアウトして、namedサーバーを再起動し設定を有効にします。
オーナーとパーミッションを設定
rootユーザーのみrndcを利用できるようにするため、以下のようにコンフィグファイルのオーナーとパーミッションを変更します。# chown root:root /etc/rndc.conf # chmod 600 /etc/rndc.conf後程、使い方を投稿します。


