亜細亜ノ蛾 - Weblog

[SiteSearch Google]

January 01, 2007

広告スクリプトを object タグで読み込む方法

[ad]

新年のご挨拶

明けましておめでとうございます、今年もよろしくお願いします(アリガチ)。昨日は知らないうちに年が明けていました(アリガチ)。初夢は見ましたか?(アリガチ) いやぁ、今年もあと 364 日ですね(アリガチ)。年越しの瞬間にジャンプして「おれ、年越しの時は地球にいなかったぜ?」(アリガチ・ちなみに年越しの瞬間にジャンプ - Google 検索)とかいう奴、いませんか? 冗談も、休み、休み、言いましょうね(アリガチ)。

という前置きは読み飛ばし、新春早々 hack と行きますか。本当は **ck を(ry

注意書き

今回紹介するのは、広告スクリプトの読み込みのせいでページ全体の描画が遅くなるのを <object> タグで何とかする方法です。実際にこのブログに導入してから、けっこう時間が経ったので、そろそろ公開しようかと。

初めに書いておくと、同様の悩みを持っている人は document.lazy_writer などの導入を考えた方がいいかと思います。今回の方法を導入したために、広告収入が減ったり無くなったりしても責任は持てません(責任持ちます! という人の方がコワイ)。

導入方法

  1. 広告を表示するためのページを作成
  2. 実際に広告を表示したいページから <object> タグを使って 1 を読み込む

と、これだけです。

実際のコード

まずは、広告を表示させるためのファイルを用意します。ファイル名は適当ですが、PHP ファイルにしました(google_adsense.php)。

<?php header("Content-Type: text/html;charset=utf-8"); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<title>Google Adsense</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<style type="text/css"><!-- body { margin: 0; padding: 0; overflow: hidden; border: none; } --></style>
</head>
<body>
<script type="text/javascript"><!--
(Google Adsense のコード)
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</body>
</html>

2007-09-14T18:49:10+09:00 追記

charset を設定していないと、文字化けなどの不具合が起こるので追加しました。このせいで、Google のサイト検索(AdSense 付き)が IE だけ表示がおかしかったのですが、なかなか原因に気付きませんでした。というか、IE は窓から(以下略)

そして、実際に広告を表示させたい場所(個別記事ページの本文下など)で、

<p>
  <object data="/path/to/google_adsense.php"
  type="text/html" width="728" height="90">
    Google Adsense
  </object>
</p>

という風に読み込みます(実際は一行)。<object> タグに対応していない環境では、4 行目の「Google Adsense」とだけ表示されます。これだけで、自分の環境(WinXP SP2)では IE と Firefox、Opera9 で同じように広告が表示できました。

初めは、IE で読み込んだときにスクロールバーが表示されるのに困りました。Cubdesign Weblog: 横スクロールバーを隠す方法。for IE6フレームを使ったページ で紹介されているように互換モードにしたあと、CSS でマージンやパディングを 0 にして、さらにリンクタグの下線を消す、というのが重要なポイントです。

2007-09-11T23:18:44+09:00 追記

──とか書いてあるけど、元のコードだと、すべての要素(*)に対して CSS が適用されていたので、body だけに適用するように変更しました。このあたりも、詰めが甘いな……。

導入のメリット・デメリット

メリット──

  1. 広告の表示に時間がかかる場合でもページ全体の描画が遅くなりにくい
  2. document.write が動作しないページでも Google Adsense が表示できる
  3. 複数の広告ファイルを切り替える手間が軽減される……かも
  4. 少なくとも読み込むファイル上では、一切コード変更していない、と言い張れる

デメリット──

  1. 複数のファイルに分けるのが面倒と言えば面倒
  2. Google タソ (など)に許可取ったわけではないので、最悪ボッシュート
  3. <object> タグが対応していないブラウザでは表示できない(IE6 やモダンブラウザは大丈夫)

Via:

元ネタは CEFA::Blog - Google AdSenseをapplication/xhtml+xmlの環境で表示する (何故かウチの Firefox では開かない)で紹介されている方法ほぼそのままです。

Google Adsense は JavaScript の document.write を使って広告を描画しています。そして、Content-Type が application/xhtml+xml のページではそもそも document.write 自体が動作しません。つまり、Google Adsense の広告が表示できないわけです。それを解決する方法として、<object> タグで呼び出す方法が考案された、という過程があるそうです。

まとめ

上記の方法を導入後、Google Adsense の統計情報を見ると、広告の表示もクリックも正常にカウントされていました。しかし、実際に Google タソ がこれを認めてくれるのかは、まったくの未知数。自分が広告収入を得られるか、結果をこうご期待!

なにしろ、この方法を実践しているところが少ない! ので、人柱覚悟でこのまま続けてみます。

──あ、最後に大事なことを。いまのペースで行くと、Google Adsense の収益額が 100$(最低支払い金額)に達するまで、軽く あと 5 年はかかります。てへっ。ということで、広告収入が支払われるかどうかは、Google Adsense 以外でレポートすることになりますね……。

Google Adsense

コメント

コメントを投稿

"広告スクリプトを object タグで読み込む方法" にコメントを投稿することができます(別ウィンドウが開きます)。

トラックバック

このエントリーのトラックバックURL:

"広告スクリプトを object タグで読み込む方法"へのトラックバックはまだありません。

過去の記事

カテゴリィ一覧
  1. Movable Type
  2. その他
    1. アイデア
  3. ウェブ
    1. Weblog
    2. Webデザイン
    3. ちょっとイイ話
    4. へぇー(トリビア・雑学)
    5. オモロ
      1. オモロテキスト
      2. オモロニュース
      3. オモロ動画
      4. オモロ画像
    6. ニュース
  4. コンピュータ・エレクトロニクス
    1. PC
      1. Firefox
  5. マンガ・アニメ・ゲーム
    1. アニメ
      1. 新世紀エヴァンゲリオン
    2. オタク
    3. ゲーム
    4. マンガ
      1. 週刊少年ジャンプ
        1. DEATH NOTE
        2. HUNTER×HUNTER
        3. SKET DANCE
        4. バクマン。
  6. 本・音楽・映画・TV
    1. TV・芸能
    2. 映画
  7. 食・健康・生活
    1. ファッション
    2. 食べ物