|
ニュース検索
ピックアップ
今週のIT求人情報
|
Zend Frameworkで趣味と実益を兼ねたRSSフィードを作成するはじめに私はここ数年間、PHPとMySQLおよびRubyを使用してRSSアグリゲータを自作する方法を紹介してきました。前にチュートリアルを書いてから5年を経ても、RSSは相変わらず強力であり、多様化する一方のオンライン情報を追跡するための手段として世界中の何百万ものユーザーに頼りにされています。たとえば、私が2004年に書いたチュートリアルでは、RSSの普及に貢献しているWebサイトとして、Yahoo!、CNET、The Christian Science Monitorなどの名前を挙げていました。5年後の今、RSSはごくありふれた情報伝達手法となり、その応用範囲は電子メールを読んだり、お天気情報を見たり、Twitterで仲間の活動を知ったりすることにまで広がっています。RSSフィードの機能をまだ自分のWebサイトに組み込んでいないのならば、導入を検討してみてはいかがでしょうか。RSSフィードを提供しないということは、あなたのWebサイトの更新情報を随時入手する優れたメカニズムを現在のユーザーに使わせないだけでなく、数多くのWebサイトを何度も訪れる手間を省きたいと思っている人を拒むことにもなり、今後のユーザー数拡大の妨げになります。それでもまだちょっと・・・という人もいるかもしれませんね。では、現在使っているカスタムデータからごく簡単な方法でRSSフィードを作成できると言ったら、さらに、そのRSSフィードに広告を直接統合すれば収入にもなると言ったらどうでしょうか。Zend FrameworkとGoogle AdSenseを使えば、両方の目的を驚くほど簡単に達成できます。このチュートリアルでは、その方法を紹介します。 Zend Frameworkでのカスタムフィードの作成以前のチュートリアルを見てもらうとわかるように(Twitter、多言語化、Amazon Webサービス、OpenID認証の各チュートリアルを参照)、Zend Frameworkは非常に強力なソリューションであり、Web開発者はこれを使用することで保守の簡単なWebサイトを作成できるだけでなく、最新のWebサービスも利用することができます。Zend Frameworkに含まれるZend_Feedコンポーネントを使用すると、RSSフィードの作成と利用がとても簡単になります。たとえば、定期的に実行する cronジョブと組み合わせてZend_Feedを使用すれば、Amazon.comの売上に基づいて最も人気のある25のテレビゲームを通知するRSSフィードを作成できます。wgetとHTTP認証を使用して、6時間ごとにcronジョブを実行し、curlを使用して最新のRSSフィードの作成を開始するURLにアクセスします。crontabのエントリは次のようになります。0 0,6,12,18 * * * /usr/bin/curl --user webuser:supersecret --silent http://www.gamenomad.com/cronjobs/populargames --userオプションを使用して行います。cronとcrontabの詳細については、Wikipediaの「cron」の項目を参照してください。cronジョブコントローラーの中にあるpopulargamesアクションを次に示します。このアクションは、Zend_Feedコンポーネントを利用し、WebサイトのMySQLデータベースに格納されている情報に基づいてフィードを作成します。本稿では、アクションの内容を1行ずつ細かく説明することはしません。重要な処理をしている行についてのみ、後で行番号を示しながら説明します。01 public function populargamesAction()
02 {
03
04 // Create array to store the RSS feed entries
05 $entries = array();
06
07 // Retrieve the 25 most popular games
08 $game = new Game();
09 $rankings = $game->getLatestSalesRanks(25);
10
11 // Cycle through the rankings, creating an array storing
12 // each, and push the array onto the $entries array
13 foreach ($rankings AS $ranking) {
14 $entry = array(
15 'title' => "{$ranking->title}
({$ranking->platform})",
16 'link' => "http://www.gamenomad.com/games/
{$ranking->asin}",
17 'description' => "Sales Rank: #{$ranking->rank}",
18 );
19 array_push($entries, $entry);
20 }
21
22 // Create the RSS array
23 $rss = array(
24 'title' => 'GameNomad: Popular Games',
25 'link' => 'http://www.gamenomad.com/games/ranks',
26 'charset' => 'ISO-8859-1',
27 'entries' => $entries
28 );
29
30 // Import the array
31 $feed = Zend_Feed::importArray($rss, 'rss');
32
33 // Write the feed to a variable
34 $rssFeed = $feed->saveXML();
35
36 // Write the feed to a file residing in /public/rss
37 $fh = fopen($this->config->feed->popular_games, "w");
38 fwrite($fh, $rssFeed);
39 fclose($fh);
40
41 }
Googleフィード向けAdSenseとフィード広告の統合さて、これでRSSフィードを作成して友達に情報を提供できるようになりました。次はもう1つの目標、つまりRSSフィードで収入を得ることについて考えてみましょう。Webサイト発行者向けのGoogleの広告ネットワークであるAdSenseの人気が急速に高まってきたのは、3つの重要な特徴があったからだと私は思っています。第1の特徴は、誰でもすぐに始められることです。つまり、Webサイトの規模に関係なく、無料でプログラムに参加できます。第2の特徴は、Webサイトに提供される広告が閲覧者に合わせて絞り込まれることです。たとえば、テレビゲームファン向けのWebサイトを運営している場合は、ゲーム機器やSFやユーザーが興味を持ちそうなその他のトピックに的を絞った広告が提供されることを期待でき、広告によってユーザーの気持ちが動かされる可能性が高くなります。最後の特徴は、広告が押し付けがましくないということです。ユーザーのWeb閲覧を中断させるような迷惑なポップアップやスパイウェアの類が表示されることはありません。 どうやら私と同じ考えのWebサイト発行者が何百万人もいるらしく、AdSenseは2003年にサービスを開始すると、たちまち世界最大のオンライン広告ネットワークに成長し、モバイル、ラジオ、テレビの広告へと範囲を広げています。2005年、AdSenseはGoogleフィード向けAdSenseという名前の画期的なサービスを開始しました。フィード向けAdSenseを利用すると、コンテキストに合ったテキストベースの広告がフィードのコンテンツに組み込まれ、RSSフィードから簡単に収入を得ることができます。さらに、これがAdSenseらしいところですが、広告の提供方法、たとえば挿入する頻度、挿入する位置、投稿語数に基づく広告挿入の状況は利用者が細かく制御できます。 Google AdSenseにまだ加入していない場合は、Google AdSense申込・ログイン画面にアクセスして登録してください。審査のプロセスは、オンラインサービスに登録する場合より少し面倒です。というのも、広告場所として申請されたWebサイトをGoogleが実際に調査し、プログラムポリシーの規定を満たすことを確認するからです。アカウントが承認されると(私の場合は1日もかかりませんでしたが、Googleは場合によっては手続きに数日かかると案内しています)、AdSenseの利用を始めることができます。 広告対応のRSSフィードの作成フィード向けAdSenseの優れている点は、このチュートリアルで最初に作成したコードのリファクタリングがまったく必要ないことです。必要なのはGoogleに既存のフィードのURLを提供することだけであり、後はGoogleが新しくFeedBurner管理下のURLを作成してくれます。これにより、フィード広告を通して収入を得られるだけでなく、この素晴らしいサービスを通じて利用可能な高機能のトラフィック分析ツールもすべて使用できるようになります(ちなみに、FeedBurnerは2007年の終わりにGoogleに買収されており、対外的にはまだ独立した会社のように見えますが、Googleの一連のオンラインサービスとの統合が強化されています)。もともとFeedBurner上でフィードを提供している場合には、そのフィードを簡単にフィード向けAdSenseにインポートできます。AdSenseを既存のRSSフィードに統合するには、Google AdSense申込・ログイン画面でAdSenseにログインし、[AdSense Setup]→[Get Ads]に移動します。ここでは、利用可能な6つのAdSense製品から選択でき、その中にフィード向けAdSenseも含まれます。適切なリンクをクリックすると、広告の挿入先となるフィードを生成するように求められます。その後、広告についてのさまざまな作成オプションが表示されます。広告の種類(テキストのみ、画像のみ、両方の混合)、表示頻度、位置、さらには好みのデザイン色を指定することさえできます。また、フィードをAdSenseチャンネルに割り当てることもできます。ただし、この作成プロセスの最も重要な部分は最後のところ(図2を参照)であり、ここでフィードをAdSenseにマップします。[Burn new feed]リンクをクリックし、表示されるウィンドウでフィードのURLを入力します。 図2 RSSフィードとGoogleのフィード向けAdSenseのマッピング
![]() あと残っている作業は以前に公開していたフィードのURLを新しいURLに置き換えることだけであり、そうすれば広告からの収入を得られるようになります。 次の段階場所やデバイスを選ばずにデータを利用できることがほぼ当たり前になった今日では、RSSは閲覧者を増やしたいと思っているWebサイト所有者にとって非常に有益なサービスです。RSS、Zend_Feedコンポーネント、およびGoogleのフィード向けAdSense製品の詳細については、次のリンクを参照してください。
著者紹介W. Jason Gilmore(W. Jason Gilmore)
オハイオ州コロンバスに本社を置く出版・コンサルティング企業であるW.J. Gilmore, LLCの創設者。以前はApressのオープンソース系編集者として60冊を超える書籍の出版に携わり、オープンソース製品に関する優れた出版物の刊行に貢献。著作も多く、ベストセラーになった『Beginning PHP and MySQL: From Novice to Professional』(現在は第3版)、『Beginning PHP and PostgreSQL: From Novice to Professional』、『Beginning PHP and Oracle: From Novice to Professional』などがある。 年1回の開発者向けカンファレンス「CodeMash」を主催する非営利組織CodeMashの共同創設者。
関連記事
新着ニュース・コラム ホワイトペーパー
|
注目のトピックス 話題の記事
企業の約4割がいまでも IE 6 以前のブラウザを利用 ― Web 広告研究会調査
SNS「非モテ+」、バレンタイン関連ワード投稿を禁止に
Android 版 Chrome ベータ1登場、ただし Android 4.0用
さぬきうどんの食べ歩きをサポートするスマホアプリ「Udooon!」が公開
東芝、5人の美女と15分間限定の”モテ期気分”が体験できるウェブコンテンツを公開
⇒一覧を見る
アクセスランキング
最新コラム一覧
|
||||||||||||||||||||