[WordPress]Jetpackのモバイル用テーマにadsense広告を載せるプラグイン

Pocket

Jetpackのモバイル用テーマadsense広告を載せるプラグインを探してみた。

といっても、面倒くさかったので最初に目についた「Mobile Theme Ads for Jetpack」というプラグインを取りあえずインストールしてみたのだけど、これがバグってて手直ししたら余計に面倒くさかった。

バージョンアップでのbug fixに期待したいところだけど、取りあえず一時しのぎってことでバグの概要と手直しした部分を含め、プラグインの紹介をしたいと思う。

スポンサードリンク



Mobile Theme Ads for Jetpackとは

  • Jetpackのモバイル用テーマにgoogle adsense広告を挿入することが出来るプラグイン
  • 表示位置は上部か下部の2択
  • 表示できる対象は「フロント画面、アーカイブページ、検索結果」、「投稿」、「ページ」の3つ
  • 「フロント画面、アーカイブページ、検索結果」に表示する場合、例えばトップ画面に3記事表示させている場合は3記事すべてに広告が表示される

バグってるとはいえ一応は動くので、お試し感覚でインストールしてみてどんなもんか確認してみて下さい。

インストールおよび設定

  1. プラグイン>新規追加から「Mobile Theme Ads for Jetpack」を検索してインストールし有効化
  2. 設定>Mobile Ads Settingsを開いて設定画面を表示
  3. 設定画面の各項目の説明

    • 「Would you like ads to be displayed before the post content?」:チェックすると投稿の上部に広告が表示される。しなければ下部。
    • 「Show ads on:Front Page, Archive Pages, and Search Results」:チェックするとフロント(トップ)画面、アーカイブページ、検索結果ページに広告が表示される。
    • 「Show ads on:Posts」:チェックすると投稿(ブログ記事)に広告が表示される。
    • 「Show ads on:Pages」:チェックするとページに広告が表示される。
    • 「Enter your google_ad_client ID here」:pub-から始まるコード
    • 「Enter your google_ad_slot ID here」:10桁の広告のID。広告はadsenseの管理画面で作成しておく。注意することは「モバイルコンテンツ」用の広告ではなく通常の「コンテンツ」用の広告を作成すること。「コンテンツ」>新しい広告ユニットから、「320 x 50 モバイルバナー」か「300 x 250 レクタングル」を選ぶ。
    • 「Enter the ad width here」:広告の横幅を指定。仮に320 x 50のモバイルバナー広告でも、300と打てば300として表示される。空欄だと320のまま。
    • 「Enter the ad height here」:広告の縦幅を指定。同上。
    • 「Custom ads」:使ってないからよく分からないけど、たぶんadsense以外の広告やロゴ等々・・・なんでも表示させることができるんだと思う。
  4. 「Save configuration」を押下する。この時点で「Show ads on」項目がバグってることに気付くはず(変更が反映されない)


バグの概要

  • 設定画面の問題。「Show ads on」項目の一部の変更が反映されない
  • 端末表示の問題。一度でも「Save configuration」を押下すると、いくら設定を変えようとフロント(トップ)画面、アーカイブページ、検索結果ページに広告が表示されるようになる

修正したソース

jp-minileven-ads.php
注意:次のバージョンアップでバグが改修されなかった場合、その都度同じ手直しが必要になってしまいます。以下の手直しをした際は本家プラグインとは別名で管理した方が良いと思います。
  • 設定画面の問題

    以下をコメントアウト
    // Default to show ads on singular pages
    if ( ! isset( $options['show'] ) ) {
    	$options['show'] = array(
    	'front' => 0,
    	'post'  => 1,
    	'page'  => 1,
    	);
    }
    以下を追加
    if ( ! isset( $options['show']['front'] ) ) {
    	$options['show']['front'] = 0;
    }
    
    if ( ! isset( $options['show']['post'] ) ) {
    	$options['show']['post'] = 0;
    }
    
    if ( ! isset( $options['show']['page'] ) ) {
    	$options['show']['page'] = 0;
    }

    以下を修正
    <label>
    <input type="checkbox" name="jp_mini_ads_strings[show]" value="1" < ?php checked( 1, $options['show']['front'], true ); ?> />
    < ?php _e( 'Front Page, Archive Pages, and Search Results', 'jp_mini_ads' ); ?>
    </label>
    <br>
    <label>
    <input type="checkbox" name="jp_mini_ads_strings[show]" value="1" < ?php checked( 1, $options['show']['post'], true ); ?> />
    < ?php _e( 'Posts', 'jp_mini_ads' ); ?>
    </label>
    <br>
    <label>
    <input type="checkbox" name="jp_mini_ads_strings[show]" value="1" < ?php checked( 1, $options['show']['page'], true ); ?> />
    < ?php _e( 'Pages', 'jp_mini_ads' ); ?>
    </label>

    <label>
    <input type="checkbox" name="jp_mini_ads_strings[show][front]" value="1" < ?php checked( 1, $options['show']['front'], true ); ?> />
    < ?php _e( 'Front Page, Archive Pages, and Search Results', 'jp_mini_ads' ); ?>
    </label>
    <br>
    <label>
    <input type="checkbox" name="jp_mini_ads_strings[show][post]" value="1" < ?php checked( 1, $options['show']['post'], true ); ?> />
    < ?php _e( 'Posts', 'jp_mini_ads' ); ?>
    </label>
    <br>
    <label>
    <input type="checkbox" name="jp_mini_ads_strings[show][page]" value="1" < ?php checked( 1, $options['show']['page'], true ); ?> />
    < ?php _e( 'Pages', 'jp_mini_ads' ); ?>
    </label>
  • 端末表示の問題

    function jp_mini_ads_maybe_add_filter()の以下の部分を修正
    if ( isset( $options['show']['front'] ) && is_home() || is_front_page() || is_search() || is_archive() ) {

    if ( isset( $options['show']['front'] ) && (is_home() || is_front_page() || is_search() || is_archive() ) ) {

所感

作った人は実際に使っているのでしょうか・・・
とてもデバッグしているようには思えませんでした。

もっと良いプラグインをご存知の方は教えて下さい_(:3」∠)_


お役に立てましたか?

ブックマークをどうぞ!

スポンサード リンク

コメントを残す