spacer
spacer
開発者の談話室

ASP.NET : Google モバイル コンテンツ向け AdSenseコード

|

GoogleのモバイルアドセンスはPHPやPerl用にプログラムコードが用意されているのですが、なぜかASPはあるのにASP.NET向けには用意されていません。

携帯のクリック広告は弊社のクリック報酬型広告 i-mobile:アイモバイルを使っていただきたいのですが、ASP.NET用のスクリプトを作成したので公開しておきます。

基本的にGoogleはAdSenseの画面で提供する以外のスクリプトを認めていないので、自己責任で利用してください 

 

下記のスクリプトをページ内の任意の箇所に設置して、HTMLの表示したい箇所で<%= googleShowAdSense( "ここに自分のIDを入力" ) %>を設置すればOKです。

<script runat="server"> private string googleColor( string v, long random ) { string googleColor; string[] colorArray; colorArray = v.Split( ",".ToCharArray() ); return colorArray[ random % colorArray.Length ]; } private string googleScreenRes() { string screenRes; string delimiter; string[] resArray; screenRes = Convert.ToString( Request[ "HTTP_UA_PIXELS" ] ); delimiter = "x"; if( screenRes == null || screenRes == string.Empty ) { screenRes = Convert.ToString( Request[ "HTTP_X_UP_DEVCAP_SCREENPIXELS" ] ); delimiter = ","; } if( screenRes == null || screenRes == string.Empty ) { return string.Empty; } resArray = screenRes.Split( delimiter.ToCharArray() ); if( resArray.Length == 2 ) { return "&u_w=" + resArray[ 0 ] + "&u_h=" + resArray[ 1 ]; } return string.Empty; } private string googleReferrer() { if( Request.UrlReferrer == null ) { return string.Empty; } return Request.UrlReferrer.AbsoluteUri; } private string googleShowAdSense( string userid ) { return googleShowAdSense( "", userid, "", "", "", "", "", true, "xhtml", "utf8" ); } private string googleShowAdSense( string channel, string userid, string bordercolor, string bgcolor, string linkcolor, string textcolor, string urlcolor, bool single, string markup, string encord ) { long googleDt; string googleScheme, googleHost; DateTime time = DateTime.Now.AddTicks( -( new DateTime( 1970, 1, 1 ).Ticks ) ); googleDt = time.Ticks / 10000; System.Text.Encoding enc = System.Text.Encoding.UTF8; string format = "mobile_double"; if( single ) { format = "mobile_single"; } string colorparam = string.Empty; if( bordercolor != string.Empty && bordercolor != string.Empty && bgcolor != string.Empty && linkcolor != string.Empty && textcolor != string.Empty && urlcolor != string.Empty ) { colorparam = "&color_border=" + googleColor( bordercolor, googleDt ) + "&color_bg=" + googleColor( bgcolor, googleDt ) + "&color_link=" + googleColor( linkcolor, googleDt ) + "&color_text=" + googleColor( textcolor, googleDt ) + "&color_url=" + googleColor( urlcolor, googleDt ); } string googleAdUrl; googleAdUrl = "http://pagead2.googlesyndication.com/pagead/ads?" + "ad_type=text" + "&channel=" + channel + "&client=" + userid + colorparam + "&dt=" + googleDt + "&format=mobile_single" + "&host=" + System.Web.HttpUtility.UrlEncode( Request.Url.GetLeftPart( UriPartial.Authority ), enc ) + "&ip=" + System.Web.HttpUtility.UrlEncode( Request.UserHostAddress, enc ) + "&markup=" + markup + "&oe=" + encord + "&output=" + markup + "&ref=" + System.Web.HttpUtility.UrlEncode( googleReferrer(), enc ) + "&url=" + System.Web.HttpUtility.UrlEncode( Request.Url.AbsoluteUri, enc ) + "&useragent=" + System.Web.HttpUtility.UrlEncode( Request.UserAgent, enc ) + googleScreenRes(); string googleAdOutput; System.Net.WebClient client = new System.Net.WebClient(); System.IO.Stream st = client.OpenRead( googleAdUrl ); System.IO.StreamReader sr = new System.IO.StreamReader( st ); googleAdOutput = sr.ReadToEnd(); sr.Close(); st.Close(); return googleAdOutput; } </script>

利用例: 基本色での表示

<html><body> <%= googleShowAdSense( "ca-mb-pub-5130513572354664" ) %> </body></html>

(注) IDは適当です。

利用例: チャネル・色を指定しての表示

<html><body> <%= googleShowAdSense( "0285258959", "ca-mb-pub-5130513572354664", "6699CC", "FFFFFF", "003366", "AECCEB", "AECCEB", false, "xhtml", "utf8" ) %> </body></html>

チャネルや色を指定する場合は上記のようにつかってください。
文字コードはASP.NETであればweb.configのGlobalizationで指定するのが一般的ですので、utf8のままで問題ないです。

なにか問題などありましたらフィードバックください。念のために繰り返しますが、自己責任のうえでお使いください。

メッセージ送信

この記事に対してのご意見をお聞かせ下さい。
頂いたメッセージは訪問者様に読みやすいよう整形したのち公開させて頂く場合がございます。
 



 
spacer
spacer