MediaWikiにGoogle AdSenseを追加してみた
MediaWikiにGoogle AdSenseを使って、広告を追加してみたよ。
僕的にページの上部に「ビッグバナー」タイプを、ページの下部に「レクタングル(大)」を追加したかったので、それぞれのやり方について説明するよ。Google AdSenseのやり方はインターネットを検索するとゴロゴロ引っかかるので、そちらを参考にしてね。
JavaScriptを動作できるようにする
Google AdSenseの追加コードをよく見てみると分かるけど、AdSenseのコードはJavaScriptを使っているんだよ。MediaWikiのページにこのコードを貼り付けても動作しないので、MediaWikiにHTMLetsプラグインを導入して、JavaScriptを動作できるようにする必要があるんだ。
以下のHTMLetsのページを参考に導入してみるよ。
- コンソールアプリケーションなどを使って、サーバーにログインしてね。
- 以下のコマンドを実行して、「HTMLets」を展開するよ。
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/HTMLets.git
- LocalSettings.phpの最後に以下の行を追加してね。
require_once "$IP/extensions/HTMLets/HTMLets.php"; $wgHTMLetsDirectory = "$IP/htmlets";
「$wgHTMLetsDirectory」はJavaScriptのソースを置く場所になるよ。好きなところに変更しても良いかもね。
- 手前の手順で「$wgHTMLetsDirectory」に設定したパスにディレクトリを作成するよ。コマンドは以下の通りだよ。
mkdir [作成したいディレクトリ名]
「$wgHTMLetsDirectory = "$IP/htmlets";」と設定した場合は以下の様になるよ。
MediaWikiをインストールしたディレクトリで… mkdir htmlets
これで、JavaScriptを動作させる準備ができたよ。これからの説明は、上記の通りインストールしたことを前提に進めるね。
ページの上部にアドセンスを追加する
手順として、「アドセンスのコードを埋め込んだファイルを作成」「MediaWiki:Sitenoticeを編集」って感じで進めるよ。
アドセンスのコードを埋め込んだファイルを作成
アドセンスのコードを埋め込んだファイルを準備してHTMLetsのフォルダに格納するよ。
- 適当なhtmlファイルを作成して、アドセンスのコードを貼り付けてね。僕は参考サイトにある通り「google_adsense.html」にしたよ。ファイルの中身はこんな感じ…
(「xxxx」は伏せ字だよ。ちゃんとしたコードはアドセンスから取得してね)<script async src="xxxx"></script> <!-- ビッグバナー_728_90 --> <ins class="xxxx" style="display:inline-block;width:728px;height:90px" data-ad-client="xxxx" data-ad-slot="xxxx"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
文字コードと改行文字は、僕の場合「UTF-8」の「LF」のみにしたよ。
- 前出のHTMLetsの「$wgHTMLetsDirectory」のディレクトリにFTP等を使ってアップロードしてね。
MediaWiki:Sitenoticeを編集
「MediaWiki:Sitenotice」はMediaWikiの雛形的ページなんだよ。このページを編集すると、すべてのページに反映されるんだ。
このページを使って、前出の「google_sdsense.html」を呼び出す用に編集するよ。
- MediaWikiの画面の右上の検索ボックスに「MediaWiki:Sitenotice」って入れて検索してね。「MediaWiki:Sitenotice」ってページが表示されるよ。
- 「編集」タブをクリックして、編集モードにしてね。
- 以下の文を入力して「ページを保存」ボタンをクリックしてね。(ページに最初から設定されている「-」(ハイフン)は消しちゃっても大丈夫だよ)
<htmlet>google_adsense</htmlet>
<htmlet>タグの中身は、たぶんファイル名の「.html」を除いた部分だよ。
- 他のページを参照して確認してね。
ページ下部にアドセンスを追加する
ページの下部にアドセンスを追加するためには、MediaWikiのソースを変更する必要があるんだよ。だから、自己責任で試してみてね。
- 下記のファイルを、エディターなどで開いてね。
【MediaWikiをインストールしたディレクトリ】/skins/Vector.php
- ファイルの中から以下の部分を検索してね。(ちなみに僕のMediaWikiのバージョンでは200行目付近だったよ)
<?php if ( $this->data['catlinks'] ) { ?> <?php $this->html( 'catlinks' ); ?> <?php } ?> <?php if ( $this->data['dataAfterContent'] ) { ?> <?php $this->html( 'dataAfterContent' ); ?> <?php } ?> <div class="visualClear"></div> <?php $this->html( 'debughtml' ); ?> </div> </div> <div id="mw-navigation"> <h2><?php $this->msg( 'navigation-heading' ) ?></h2> <div id="mw-head"> <?php $this->renderNavigation( 'PERSONAL' ); ?> <div id="left-navigation"> <?php $this->renderNavigation( array( 'NAMESPACES', 'VARIANTS' ) ); ?> </div> <div id="right-navigation">
言葉で表すなら…「<div id="bodyContent">」の閉じタグを探してね。
- 前出のソースを以下の様に修正するよ。(「xxxx」は伏字だからアドセンスからちゃんと取得してね)
<?php if ( $this->data['catlinks'] ) { ?> <?php $this->html( 'catlinks' ); ?> <?php } ?> <?php if ( $this->data['dataAfterContent'] ) { ?> <?php $this->html( 'dataAfterContent' ); ?> <?php } ?> <div class="visualClear"></div> <?php $this->html( 'debughtml' ); ?> </div> <br/> <script async src="xxxx"></script> <!-- AdSense_300_250 --> <ins class="xxxx" style="display:inline-block;width:300px;height:250px" data-ad-client="xxxx" data-ad-slot="xxxx"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div id="mw-navigation"> <h2><?php $this->msg( 'navigation-heading' ) ?></h2> <div id="mw-head"> <?php $this->renderNavigation( 'PERSONAL' ); ?> <div id="left-navigation"> <?php $this->renderNavigation( array( 'NAMESPACES', 'VARIANTS' ) ); ?> </div> <div id="right-navigation">
言葉で表すなら…「<div id="bodyContent">」の閉じタグの後ろに、アドセンスのコードを埋め込むんだよ。
- 保存して、アドセンスが表示されているかページを確認してみてね