2010年7月11日日曜日

AdsenseのFlash広告でURLを取得する方法

Adsenseでは表示されたくない広告をフィルタリングする機能があります。フィルタするにはURLを指定する必要がありますが、広告の下にURLが記載されていたり、URLが広告上に表示されていたり、プレビューツールを使ったり、広告の上で右クリックして取得できるリンク先URLなどからフィルタするURLを取得することができます。

ところがFlashで作成された広告の場合、先ほど記載した方法ではフィルタの対象となるURLを取得できない場合があります。そこで今日はFlash広告のURLを取得する方法を確認します。(海外のGoogle Help forumで紹介されていました)。

http://www.google.com/support/forum/p/AdSense/thread?tid=51b204aea3b40ef9&hl=en

まずGoogle ChromeでFlash広告が表示されているページを開きます。そしてページ上(広告の上ではありません)で右クリックして表示されるメニューの中で「要素を検証」」メニューをクリックします。



次のようなウィンドウが表示されます。



左側のボックスの中で、対象となる広告が表示されている要素を探します。Adsenseの場合は1つの広告ユニットが次の3つ要素から成り立っていることが分かります。

<script type="text/javascript"> ... </script>
<script>google_protectAndRun(...) </script>
<ins style="...">...</ins>



この中で最後の要素をさらに展開します。

<ins style="...">
  <ins style="...">
    <iframe allowtransparency="...">...</iframe>
  </ins>
</ins>

さらに<iframe>要素を展開します。

<iframe ...>
  <html>
    <body>
      <div id="google_flash_inline_div" ...>
        <div id="google_flash_div" ...>
          <object classid="...">
            <param name="...">
            <param name="...">
            <param name="...">
            <param name="FlashVars" Value="...">
          </object>

最終的に<object>要素の中にあるname="FlashVars"となっている<param>要素の値の中(かなり長いですが)に対象となる広告のURLが含まれていますので探し出して下さい。



URLが分かればそれをフィルタに追加します。

これでFlash広告であってもクリックすることなしにURLを調べることができます。なおChromeを使わなくても同じようにページ要素を検証できるプラグインなどを使えば可能だと思います。