peiprog’s blog

情報科学を学ぶ大学4年生。主にプログラミング、情報系の話題を書いていきます。

Railsアプリにテキトーに広告つけてみた

こんにちは、peiprogです。
Railsアプリへのてきとーな広告のつけ方を書きたいと思います。

  • アクセスするたびにランダムに広告を出せる
  • スマホ版にも対応できる
て感じのことをします。

ちなみにこれを導入したアプリがこちら↓です。よかったら遊びに来てください!
todoremainder
メールアドレスguest、パスワードguestguestでゲストログインできます。deviseのところほとんど触ってないので英語が多いですが(^^;

目次

必要なgemのインストール
ランダムに広告を出すHelperメソッド
HelperメソッドをViewに追加
まとめ



必要なgemのインストー

必要なgemはbrowserのみです。gemfileに下の文を追加します。

gem 'browser'

あとはbundle installすればOKです。


ランダムに広告を出すHelperメソッド

 どのhelperに書いてもいいと思いますが、app/helpers/application_helper.rbに書くといいかもです。
 先ほどinstallしたbrowserがアクセスしてきたデバイスを識別します。スマホ版ならPC版の広告のimgタグにidをつけて以下のようにCSSを書くと縮小表示されます。

#mobile-advertisement{
  width: 100%;
  height: auto;
}

 次に生成した乱数によって違う広告をadに代入することで、ランダムに広告を出すようにします。
最後にadをhtmlのタグに変換して返します。

def get_advertisement
  rand_num = rand(0..2)  # 0~2の乱数生成
  ad = ""
  if browser.device.mobile?  # アクセスしてきたデバイスがモバイル
    if rand_num == 0
      ad = "出したい広告1 id='mobile-advertisement'を忘れずに"
    elsif rand_num == 1
      ad = "出したい広告2 id='mobile-advertisement'を忘れずに"
    else
      ad = "出したい広告3 id='mobile-advertisement'を忘れずに"
    end

  else  # PCからのアクセス
    if rand_num == 0
      ad = "出したい広告1"
    elsif rand_num == 1
      ad = "出したい広告2"
    else
      ad = "出したい広告3"
    end
  end
  return ad.html_safe  # 文字列をhtmlタグにして返す
end 


HelperメソッドをViewに追加

 さっき書いたhelperメソッドをviewで呼び出します。app/views/layouts/application.htmlに配置すればいつでも広告がでます。

~ヘッダーは省略
<body>
  <div id="container">
    メインコンテンツ
  </div>

  <%= get_advertisement %>

  <div id="footer">
    フッター
  </div>
</body>

まとめ

 単純な方法でしたね(^^;。特に難しいことはしてないですね。
 ホントは管理者ページとかから広告の設定ができたりしたほうがいいですね。広告のタグもデータベース上で管理したほうがいいですね。
 ちなみに広告収益は先月は10円でした!