[WebMatrix 開發系列(3)] 使用 Google API 開發自己的 AdSenseHelper

我想對於 Google AdSense 這個網告服務有一些人應該也早已使用過,如果您有在 Google Blogger 上架設過自己的部落格的話,應該就會知道這個服務。當然要使用這樣的服務您必須先申請 Google AdSense。

我想對於 Google AdSense 這個網告服務有一些人應該也早已使用過,如果您有在 Google Blogger 上架設過自己的部落格的話,應該就會知道這個服務。當然要使用這樣的服務您必須先申請 Google AdSense。

不過要先說明,此文並非鼓勵各位都在自己的部落格放置廣告,技術部落格的重點可能還是在於您的分享的內容,而不是只是為了廣告收益才來分享,當然意思也不是說都不能放置廣告,而是出發點是在於分享。其實會申請 AdSense 主要是先前在目前公司的同事的勸說之下才申請的,因為以前也沒有玩過這種東西,才想說完玩看。而從開始申請到現在似乎也還未滿一年。

要申請可從資訊主頁下方的  AdSense 點選進入。

image

初次進入可能需要您填寫一些基本資料、選擇廣告類型、廣告配色,等等。

當申請完成了 AdSense 服務之後在您的部落格的管理畫面就會出現 [收益] 的 Tab。如下圖:

image

 

而如果要方便的在您的其它部落格方便的使用,光有 AdSense 還是不夠的,因此 Google 才提供了 AdSense API。要使用 AdSense API 您必須再到http://services.google.com/ads_inquiry/api_info_form 另外申請 developer 的帳戶才可以呼叫  AdSense 所提供的 Web Services。注意:是 Web Services

image

當資料填妥後,您隨即就會收到一封 EMail ,當中包含了 developer_email 、developer_password 等資訊。到時實際在撰寫程式 呼叫 Web Services 時會需要使用。

image

在這裡 Google AdSense API 的 Getting Started Guide 裡面其實就已經提供了如下種類的 Sample Code :

  • Python
  • PHP
  • Java
  • C#
  • XML (告訴你自定義的 SOAP 的封包格式)

 

當然筆者就是直接複製出C#的 Sample Code 。不過並不是有Sample Code 就可以了,別忘了我們的目的是要去呼叫 AdSense API,Google所提供出來的是一個 Web Services。這可以在 [Developer's Guide] –> [API Reference] 下面找到,如下圖:

image

 

接下來的動作很重要,若有任何的出錯就會無法正常的呼叫使用。

(1)、建立 AdSenseHelper 的類別庫專案。

(2)、將 https://www.google.com/api/adsense/v3/AdSenseForContentService?wsdl 參考進來。

注意:使用的是 [Web 參考] 不是 [服務參考],這是不一樣的!許多初學者容易搞混,簡單的說,一個是WCF,一個是 Web Services.

image

(3)、加入如下程式碼。

   1:  public class AdSenseAPI
   2:      {
   3:          string DevEMail = "";
   4:          string DevPassword = "";
   5:          public AdSenseAPI(string DeveloperEmail, string DeveloperPassword)
   6:          {
   7:              this.DevEMail = DeveloperEmail;
   8:              this.DevPassword = DeveloperPassword;
   9:          }
  10:          public HtmlString GetAdSenseHtml()
  11:          {
  12:              developer_email developerEmail = new developer_email();
  13:              developerEmail.Text = new string[] { DevEMail };
  14:              developer_password developerPassword = new developer_password();
  15:              developerPassword.Text = new string[] { DevPassword };
  16:              client_id clientId = new client_id();
  17:              clientId.Text = new string[] { "PUBLISHER_CLIENT_ID" };
  18:   
  19:              v3AdSenseForContentService adsense = new v3AdSenseForContentService();
  20:   
  21:              String synServiceId = "pub-7456613816180744";
  22:              AdStyle adStyle = new AdStyle();
  23:              adStyle.backgroundColor = "#000000";
  24:              adStyle.borderColor = "#000000";
  25:              adStyle.name = "Test";
  26:              adStyle.textColor = "#FFFFFF";
  27:              adStyle.titleColor = "#FFFFFF";
  28:              adStyle.urlColor = "#FFFFFF";
  29:   
  30:              AdUnitType adUnitType = new AdUnitType();
  31:              adUnitType.value = "TextAndImage";
  32:              AdLayout layout = new AdLayout();
  33:              layout.value = "728x90";
  34:              String alternate = null;
  35:              bool isFramedPage = false;
  36:              String channelName = "General";
  37:              CornerStyles cornerStyles = new CornerStyles();
  38:              cornerStyles.value = "DEFAULT";
  39:              string[] hostChannelNames = null;
  40:   
  41:              generateAdCode request = new generateAdCode();
  42:              request.synServiceId = synServiceId;
  43:              request.adStyle = adStyle;
  44:              request.adUnitType = adUnitType;
  45:              request.adLayout = layout;
  46:              request.alternate = alternate;
  47:              request.isFramedPage = isFramedPage;
  48:              request.channelName = channelName;
  49:              request.cornerStyles = cornerStyles;
  50:              request.hostChannelNames = hostChannelNames;
  51:   
  52:              v3AdSenseForContentService service = new v3AdSenseForContentService();
  53:              service.developer_emailValue = developerEmail;
  54:              service.developer_passwordValue = developerPassword;
  55:              service.client_idValue = clientId;
  56:              service.Credentials = new NetworkCredential(developerEmail.Text[0], developerPassword.Text[0]);
  57:              generateAdCodeResponse response = service.generateAdCode(request);
  58:              return new HtmlString(response.@return);
  59:          }
  60:      }

 

(4)、將 AdSenseHelper.DLL 複製到 bin 下面。

(5)、在 WebMatrix 中將 AdSenseHelper 的命名空間 using 進來。

(6)、撰寫如下的 Razor 程式碼。初始化的時候傳入前面申請的 developerEmail & developerPassword 。

image

(7)、程式的執行結果會是如下。

image

又一個簡單的應用,希望對各位能有所幫助。

再一次謝謝各位朋場啦!


 

簽名:

學習是一趟奇妙的旅程

這當中,有辛苦、有心酸、也有成果。有時也會有瓶頸。要能夠繼續勇往直前就必須保有一顆最熱誠的心。

軟體開發之路(FB 社團)https://www.facebook.com/groups/361804473860062/

Gelis 程式設計訓練營(粉絲團)https://www.facebook.com/gelis.dev.learning/


 

如果文章對您有用,幫我點一下讚,或是點一下『我要推薦,這會讓我更有動力的為各位讀者撰寫下一篇文章。

非常謝謝各位的支持與愛護,小弟在此位各位說聲謝謝!!! ^_^