Simplicityをちょっと改造してみた 番外編 part7 GoogleAdsense:レスポンシブ広告がFirefoxで表示されない時の対処

自分の環境ではChrome(Chromium:linux)を利用していたので最近まで特に気にもしていなかったのですが、履歴がたまってくると重たくなるChromeですから、最近のFirefoxの軽さがとてもうらやましく思い、ふと使ってみたら広告が出ていないことに気が付きました。

Googleのレスポンシブ広告は、色々とカスタマイズできる(高度な機能、参照)わけですが、デフォルトの「親コンテナのサイズを継承する」ってのが便利なので是非そうしておきたいと思っていたわけです。
もちろんサイズを固定しても良いのですが、色々と面倒なので、cssで親コンテナのサイズをwidth:決め打ち値、height:auto(あるいはmix-height設定等)にして表示させていたのです。

これはChromeでは問題なく広告が表示されますが、Firefoxではうまく表示されませんでした(sidebar-top部分の広告)。
Simplicityでは、元々定形の広告を設定できるようにしてあるので、通常の広告サイズなら問題なく挿入できますが、レスポンシブの場合は、width、heightに値を与えねばなりません(たしかheightが0だったような記憶があります)。おそらく、横が決まれば縦も自動で入るだろうと踏んでいたのですけれども、うまく行かなかったような記憶があり、Firefoxでも「あぁ、サイズがうまく入ってないのか・・・」といろいろ調整していたわけです。

どの調整をしてもChromeでは問題なく表示されるわけですが、Firefoxでは調整しても表示されない!!
これはおかしいと、色々と海外の情報とかを探ってみたのですが、たいていは親コンテナのサイズが正しく設定されてないんじゃないの?って答えが大きくて、中にはsetTimeout等を利用して後から読み込んでみては?とか$(window).on(load,function(){})とかでコンテンツを読み込んでから動作させればいいじゃないと言う返信もチラホラあったのです。

いや、ちょっと待ってくれよ、だってChromeでは表示されてるんだぜ?という思いから、他に何かしらの答えはないものかと探っていた所、ある人が、「いや、親コンテナがネストされてるんじゃね?」みたいな事を書いていて、「はっ」と思ったわけです。

とは、言ってもどちらも親も、そのまた親にも設定はしてあるんですが、その「ネストしてる」って部分がとても気になったので、Simplicityの親テーマad-sidebar.phpを以下のようにしてみました。

そしたら表示されるんですよFirefoxでも、もちろんChromeでも。

で、article下の広告については、同様にして解決できると思うのですが、左右に2つ入れるとするとまたコンテナが重複すると思うので1つにするか、もしくはjQueryで後からwrapあたりを使い左右に振り分けるかをしないと表示できないかも知れません。
案外面倒なので、article下の広告は通常のレクタングル(大)を入れました。ここはレスポンシブである必要はあまりないので良いかなぁと思ったり。

1つにする場合は、ad-article-footer.phpを編集して、<?php dynamic_sidebar(‘adsense-336’);?>が2つ並んでいる部分を1つにしたりするといけるのかもしれません。

なるべくネストしないような構造と、サイズを入れるということが重要と言う感じでした。

2015/4/15 追記
article下のレクタングルはFirefoxで現在うまく動作していないようです。chromeでは問題なく表示されています。
何が問題かを現在探っている感じです。
スポンサーリンク

シェアする

フォローする