I don’t see any discussion about AdMob, an aggregator for ads for
mobile phones websites. They’re going to live for a bit until AdSense
puts out it’s mobile-capable versions.
AdMob just put up Rails sample code for Rails. I’ve included it below.
It’s pretty simple. Unlike Google AdSense, which requires JavaScript,
this code builds an HTTP request, performs a GET from the AdMob server,
then gets the Ad text back that gets included in the HTML.
I’ve got a couple of questions and comments, hoping to have some other
sets of Rails eyes take a gander:
-
There are some obvious spots for refactoring. link_to isn’t used,
for example. And a lot of this could be in helper functions. -
That said, it seems like a bad idea to have all this embedded right
in the RHMTL template for performance. Is that right? -
I don’t understand the request.env lines. Will these get the IP &
the User Agent of the browser making the request? Will that still work
if it’s in the RHTML? What about a helper function?
thx,
–dwf
<%
require ‘net/http’
editable area
change mob_mode from “test” to “live” when you are done testing
mob_mode = “test”
use this to set a default link to appear if AdMob does not return
an ad
mob_alternate_link = “”
end editable area
User agent and IP: used for ad targeting
mob_ua = url_encode(request.env[“HTTP_USER_AGENT”])
mob_ip = url_encode(request.env[“REMOTE_ADDR”])
mob_m = “”
if mob_mode == “test”
mob_m = “&m”
end
build the request url
mob_url = “http://ads.admob.com/ad_source.php?s=[AdMobKey]&u=” +
mob_ua + “&i=” + mob_ip + mob_m
begin
# make the request
response = Net::HTTP.get_response(URI.parse(mob_url))
if response.code == '200'
mob_content = response.body
# parse result
if mob_content.include?('><')
mob_ad_text = mob_content.split('><')[0]
mob_ad_link = mob_content.split('><')[1]
end
if !mob_ad_link.empty?
# display AdMob Ad
mob_link = "<a href='" + mob_ad_link + "'>" + mob_ad_text
-
“”
else
# no AdMob ad, display alternate
mob_link = mob_alternate_link
end
else
mob_link = mob_alternate_link
endrescue
# no ad or server returned and invalid response code
# display alternate link
mob_link = mob_alternate_link
end
%>
<%= mob_link %>