2009-09-29

pythonでモバイルAdSenseを使ってみる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
※この方法では、広告は表示されますがカウントがされていないことがわかりました。
※カウントされる方法はまだわかりません。
※※ カウントされないのはGoogle App Engineに配置したときのケースのようです。(追記 2010/5/20)

携帯用のAdSenseを利用する場合は、PHP,perlなどのコードを貼り付けなさいと最終的になります。
GoogleAppEngineを使っているならば、pythonで使ってみたくなるのです。
なのでPythonで使ってみました。
GoogleAppEngineでないならばurlfetchの部分は置き換えが必要です。
後は、自分用の設定にするにはモバイルAdSenseで生成されたPHPなどのコードを見ながら適切に自分用の値を設定する必要があります。

# -*- coding: utf-8; -*-
from time import time
from math import floor
from urllib import urlencode
from google.appengine.api import urlfetch

def google_append_color(color,dt):
color_array = color.split(',')
return color_array[int(dt % len(color_array))]

def google_ad(request):
scheme = 'https://' if request.is_secure() else 'http://'
dt = time()
params = {
'ad_type':'text_image',
'channel':'設定したいchannelのコードを設定',
'client':'ca-mb-' + '自分のAdSenseの値を設定',
'dt':repr(floor(dt*time())),
'format':'mobile_single',
'https':request.META.get('HTTPS', ''),
'ip':request.META.get('REMOTE_ADDR', ''),
'markup':'xhtml',
'oe':'utf8',
'output':'xhtml',
'ref':request.META.get('HTTP_REFERER', ''),
'url':scheme + request.META.get('HTTP_HOST', '') + request.META.get('REQUEST_URI', ''),
'useragent':request.META.get('HTTP_USER_AGENT', ''),
'color_border':google_append_color('ここは色をカスタマイズするならば利用',dt),
'color_bg':google_append_color('ここは色をカスタマイズするならば利用',dt),
'color_link':google_append_color('ここは色をカスタマイズするならば利用',dt),
'color_text':google_append_color('ここは色をカスタマイズするならば利用',dt),
'color_url':google_append_color('ここは色をカスタマイズするならば利用',dt),
}
screen_res = request.META.get('HTTP_UA_PIXELS', '')
delimiter = 'x'
if screen_res == '':
screen_res = request.META.get('HTTP_X_UP_DEVCAP_SCREENPIXELS', '')
delimiter = ','
if screen_res == '':
screen_res = request.META.get('HTTP_X_JPHONE_DISPLAY', '')
delimiter = '*'
res_array = screen_res.split(delimiter)

if len(res_array) == 2:
params['u_w'] = res_array[0]
params['u_h'] = res_array[1]

muid = request.META.get('HTTP_X_DCMGUID', '')
if muid != '':
params['muid'] = muid
muid = request.META.get('HTTP_X_UP_SUBNO', '')
if muid != '':
params['muid'] = muid
muid = request.META.get('HTTP_X_JPHONE_UID', '')
if muid != '':
params['muid'] = muid
muid = request.META.get('HTTP_X_EM_UID', '')
if muid != '':
params['muid'] = muid

url = 'http://pagead2.googlesyndication.com/pagead/ads?' + urlencode(params)
result = urlfetch.fetch(url)
if result.status_code != 200:
return None
return result.content

このgoogle_adで返された値を広告を貼り付けたい位置に出力するようにすればよいです。
一応、試したら見ることはできたので動いているようです。

2 件のコメント:

なちあい さんのコメント...

初めまして。GAEで携帯サイトを運営しているものです。
このエントリーを参考にAdsenseを設定してみたところ、広告は表示されましたが、表示回数にカウントされてないみたいです。
dtのあたりが怪しかったので少し修正してみたのですが、やはりカウントされませんでした。

SOBARCOさんはこの方法でAdsenseを運用できていますか?

VIVAHIRAJ さんのコメント...

なちあいさん

広告が出ているということで安心しきって確認をしていなかったのですが、確認したところ私の方でもカウントされていませんでした・・・・