Tuesday, May 04, 2010

マルチ言語対応WEBページで"Ads by Google"を正しく表示させる方法

[問題]

自分が運営しているサイトがphpでてきており、マルチ言語切り替え表示
(といってもまだ英語と日本語のみだが)に対応させているのだが、
日本語状態にしても、Google AdSense の広告がが常に英語で表示される。
これを日本語表示のときは、日本語の広告が出て欲しい。

[解決策]

この方法について、判ったので記録しておく。

1. URLの後ろのGetパラメータで、日本語と英語が切り替わるようにする

  つまり、 ?LANG=ja, ?LANG=en で切り替わるようにする。

  これだけである。

[Google AdSenseの動作分析(推論)]

  Google AdSense の埋め込みスクリプトでは、
  現在表示してる画面のURL(html文字列ではない)をGoogleへ送信している。
  Google AdSenseは、URLを元に内容をWEBサーバから読み出して、
  内容を解析して、適切な広告を表示している。
 
  (リアルタイム解析で、広告を出すわけで検索技術の粋である)

  言語切り替えをPOSTパラメータやクッキーで行うと、
  Google AdSenseは、POSTパラメータやクッキーを持たないので
  もとのURLだけから、内容をWEBサーバから読み出すが、
  自分が運営しているWEBサーバが、
  言語不明となりデフォルト言語(英語)でページを返す。
 
  すると、Google AdSenseは、英語ページを解析して
  英語の広告を表示する。

  してがって、日本語表示のときは、日本語の広告が出て欲しいのであれば、
  現在表示してる画面のURLだけで、Google AdSense が
  日本語ページを取得できる必要がある。

  そのために、Getパラメータで、日本語と英語が切り替わるようにすることが
  必要となる。

[推論]

  自分のHOMEPAGEもマルチ言語切り替え表示対応させているのだが、
  日本語名では、検索に引っかからない、英語名ではひっかかるのであるが。
  これも原因は、googleのクローラ・ロボットが
  英語ページしか取得していないことに原因
  があると思われる。これについては、別記する予定。

No comments:

Post a Comment