本文記事の複数のh2見出し前にAdsenseを表示したい

Simplicityの特徴 フォーラム テーマファイルのカスタマイズに関する質問など 本文記事の複数のh2見出し前にAdsenseを表示したい

12件の返信スレッドを表示中
  • 投稿者
    投稿
    • #55596
      ぴーちゃん
      ゲスト

      最近、Adsenseをはりつける数の制限は撤廃されて、コンテンツボリュームとのバランスをみながら各自の裁量ではりつけることができるようになりました。
      現在はSimplicityの現行バージョンの広告ウィジェットを活用することで、見出しh2前に広告を表示することができるのですが、2番目のh2前、3番目のh2前・・・・にも広告を掲載したいのですが、ウィジェットの追加はどのようにすればよいでしょうか?

      本来ならばSimplicityのUIが素晴らしいので追加でウィジェット対応できれば嬉しいのですが、別スレではfunctions.phpにカスタマイズで対応することで実現できることも知りました。

      【過去スレ】
      https://nelog.jp/add-ads-before-h2

      ただこの方向では、アドセンス規約違反にあたるアルコール等の記事で広告を表示したくない場合のトリガーをかけることができません。
      すでにあるSimplicity広告ウィジェットの「広告除外」対象とした記事を判別して、functions.phpのカスタマイズの場合、広告表示できないようにすることは可能でしょうか?

      ↓自力でウィジェットを追加するのに参考になるかと思ったのですがスキルのなさから実現できませんでした。
      https://tashiteku.com/adsense-midashi/

      過去スレでも同じようなリクエストがあったのですが、改めて新規でリクエストをあげてみました。追加で対応できれば嬉しいのですが・・・

      【ご参考】
      https://azu3.com/h2-koukoku/
      http://gadget-nail.com/tips/insert_adsence_before_h2/
      https://petitnomado.com/adsense_point/

    • #55597
      ノッツ
      ゲスト

      https://nelog.jp/add-ads-before-h2
      の記事でも広告除外はできます。

      if ( is_single() ) {//投稿ページ

      のところを

      if ( is_single() && !is_single(array('記事ID','記事ID','記事ID')) ) {//投稿ページ

      にすれば、広告は除外できると思います。

      だだし、この方法だと、Simplicity広告ウィジェットの「広告除外」にチェックしても機能しないので、当然記事をアップする直前等に記事IDを追記する手間があります。

    • #55598
      ノッツ
      ゲスト

      あ、記事IDのところは、広告を除外したい記事のIDを入力してくださいね。

      1つの記事を除外したい場合は、これだけでOKです。
      if ( is_single() && !is_single(array('記事ID')) ) {//投稿ページ

      複数の記事を除外したいときは、コンマ(,)で増やしていってください。

    • #55608
      アバター画像わいひら
      キーマスター

      広告表示の設定を反映させるのであれば、条件分岐に以下の関数を付け加えると、Simplicity側で非表示と設定したものが反映された表示になるかと思います。
      is_ads_visible()
      実際にそのカスタマイズに対して試したわけではないのですが、おそらく。

    • #55611
      ノッツ
      ゲスト

      おお。そちらの関数を条件分岐に付け加えたらいけました!!

      ‘if ( is_single() && is_ads_visible() ) {//投稿ページ’

      https://nelog.jp/add-ads-before-h2

      のコード使っていたので、助かりました_(._.)_

    • #55615
      ぴーちゃん
      ゲスト

      ノッツさん、わいひらさん

      ありがとうございます!!!
      思い切って書き込んでみてよかったです。^-^
      早速教えていただいたコードを使ってカスタマイスしたいと思います!
      助かりました!!!

    • #55616
      ぴーちゃん
      ゲスト

      今試してみたところうまくいきました!
      もう1点だけご質問なのですが、PCとモバイルで分ける場合はどのように記述すればよいでしょうか?

    • #55617
      ノッツ
      ゲスト

      モバイル判定関数is_mobile()を使えばいけると思います。

      モバイルだけ広告を表示したい場合はこんな感じでいけるのでは。
      if ( is_single() && is_ads_visible() && is_mobile() ) {//投稿ページ

      僕の場合、PCとスマホ分けて広告を設定しています。こんな感じ↓

      PC↓

      function add_ad_before_h2_for_3times_pc($the_content) {
      //広告(AdSense)タグを記入
      $ad = <<< EOF
      //////////////////////////
      //ここにアドセンスを挿入//
      //////////////////////////
      EOF;
      
        if ( is_single() && is_ads_visible() && !is_mobile() ) {//投稿ページ
          $h2 = '/^<h2.*?>.+?<\/h2>$/im';//H2見出しのパターン
          if ( preg_match_all( $h2, $the_content, $h2s )) {//H2見出しが本文中にあるかどうか
            if ( $h2s[0] ) {//チェックは不要と思うけど一応
              if ( $h2s[0][0] ) {//1番目のH2見出し手前に広告を挿入
                $the_content  = str_replace($h2s[0][0], $ad.$h2s[0][0], $the_content);
              }
              if ( $h2s[0][1] ) {//2番目のH2見出し手前に広告を挿入
                $the_content  = str_replace($h2s[0][1], $ad.$h2s[0][1], $the_content);
              }
              if ( $h2s[0][2] ) {//3番目のH2見出し手前に広告を挿入
                $the_content  = str_replace($h2s[0][2], $ad.$h2s[0][2], $the_content);
              }
            }
          }
        }
        return $the_content;
      }
      add_filter('the_content','add_ad_before_h2_for_3times_pc');

      スマホ↓

      function add_ad_before_h2_for_3times_sp($the_content ) {
      //広告(AdSense)タグを記入
      $ad = <<< EOF
      //////////////////////////
      //ここにアドセンスを挿入//
      //////////////////////////
      EOF;
      
        if ( is_single() && is_ads_visible() && is_mobile() ) {//投稿ページ
          $h2 = '/^<h2.*?>.+?<\/h2>$/im';//H2見出しのパターン
          if ( preg_match_all( $h2, $the_content, $h2s )) {//H2見出しが本文中にあるかどうか
            if ( $h2s[0] ) {//チェックは不要と思うけど一応
              if ( $h2s[0][0] ) {//1番目のH2見出し手前に広告を挿入
                $the_content  = str_replace($h2s[0][0], $ad.$h2s[0][0], $the_content);
              }
              if ( $h2s[0][1] ) {//2番目のH2見出し手前に広告を挿入
                $the_content  = str_replace($h2s[0][1], $ad.$h2s[0][1], $the_content);
              }
              if ( $h2s[0][2] ) {//3番目のH2見出し手前に広告を挿入
                $the_content  = str_replace($h2s[0][2], $ad.$h2s[0][2], $the_content);
              }
            }
          }
        }
        return $the_content;
      }
      add_filter('the_content','add_ad_before_h2_for_3times_sp');

      これでいけるかと。手元の自分のコード確認できていないので、違っていたらすみません。

    • #55624
      ぴーちゃん
      ゲスト

      ノッツさん

      ありがとうございます。早速こちらのコードでやってみましたが、エラーがでてしまいました。

      functions.phpにPC用のコードを追記したところばっちり広告が表示されました。
      次にモバイル用のコードをその下に追記したのですが、画面がしろくなってしまいましたので
      バックアップしておいた元ファイルに戻しました。

      PC用とモバイル用は並記してもOKでしょうか?

    • #55627
      ぴーちゃん
      ゲスト

      ただいま作業の過程で改行箇所がおかしかったためか、新規で上記コードをつなげて追記したところうまく表示されました!希望通りの表示になり、感謝いたします。

      またラベル表示は必須ではないと思いますが、広告だとわかりやすくするために
      <div align=”center”><div class=”label”>スポンサーリンク</div></div>
      を追記しました。

      取り急ぎお礼まで。

    • #55631
      ノッツ
      ゲスト

      エラーが出てしまったようですみません。
      でも、上手くいったようでよかったです。

      PC用とモバイル用は並記してもOKでしょうか?

      僕は並記して使っています。
      関数名を変えているので、おそらく問題ないはずです。

      ちなみに、is_mobile()がtrueの場合(つまりスマホページの場合)ですが、カスタマイザーでAMPを有効にしているときは、AMPページにも広告が表示される気がしたので、注意してください。
      AMPページで広告を表示したくない場合は、AMP判定関数のis_amp()を使って対処して頂けたらと思います。

    • #55632
      ぴーちゃん
      ゲスト

      ノッツさん

      いろいろアドバイスありがとうございます。
      AMP化はまだ手付かずでしたので、AMP化する際は注意するようにします。
      Simplicityを使っているとほとんどカスタマイズする必要もないのですが、今回の広告数制限撤廃を受けて効果測定をしてみたかったので助かりました。

    • #55642
      アバター画像わいひら
      キーマスター

      ノッツさん、コードまで書いていただいてありがとうございます!
      同様のカスタマイズを行いたい方の助けになると思います。

12件の返信スレッドを表示中
  • トピック「本文記事の複数のh2見出し前にAdsenseを表示したい」には新しい返信をつけることはできません。
スポンサーリンク
アドセンス(大)
アドセンス(大)