ねこすけ LPO プロジェクト Wiki

ねこすけ LPO は株式会社ねこすけが開発している LPO システムです。株式会社ねこすけでは LPO の幅広い普及とユーザや開発者からのフィードバックを得るために、この LPO システムをオープンソースとして広く一般に公開することにしました。

LPO (ランディング・ページ・オプティマイザー) とは、検索キーワードやリファラによってホームページのコンテンツを動的に変更するシステムです。

例えば、登山用品のオンラインショップで LPO を使った場合、「登山靴」で検索して訪問した人にはオススメの登山靴の画像を表示して、「リュックサック」で検索して訪問した人にはリュックサックの画像を表示、それ以外の場合はオススメ商品の画像を表示する、といったようにホームページのコンテンツを条件によって動的に変化させることができます。LPO で表示した画像には、それぞれの商品一覧へのリンクを張ることが出来るので、効果的にサイトの離脱率を抑えることが可能となります。

LPO を使うとホームページのコンテンツをサイトの訪問者の欲求・欲望・ニーズに合わせて動的に変化させることが出来ます。

ホームページの訪問者は、ページを見た瞬間、そこに自分の欲しい情報があるか判断します。この瞬間に「あなたにとって必要な情報がここにあります」とアピールすることが出来るのが LPO です。

開発に使ったフレームワーク、ライブラリについて

Zend Framework

デプロイの容易さと社内スキルの状況から開発言語として PHP を選択しました。今回の開発にあたって、メインの管理画面を作成することを考えるとフレームワークを採用した方が効率が良いのは明らかです。フレームワークを採用するにあたっては、フレームワークの機能および習得コストと実行時のパフォーマンス、フレームワーク自身の寿命やサポート体制などが選択のポイントとして重要になってきます。

他のフレームワークなどと比較検討した結果、このシステムでは Zend Framework を採用しました。このフレームワークは MVC モデルや O/R マッパー、JSON モデルや Google の GData など非常に多数のコンポーネントから構成され、それぞれが単体で動作するようにコンポーネント間の依存関係が非常に疎になっています。このため、自作のフレームワークやアプリケーションに Zend Framework のコンポーネントを一部だけ組み込んで利用するといったことが容易な作りとなっています。

このシステムでは Zend Framework の MVC コンポーネントをベースに、O/R マッパーや認証コンポーネント、フォーム、JSON、日付など多数の Zend Framework モジュールを利用しています。

jQuery

このシステムは LPO コンテンツを表示するページとコンバージョンページに、あらかじめ LPO 用の SCRIPT タグを書き込んでおく ASP タイプのシステムとなっています。この SCRIPT タグから呼び出される JavaScript は、表示されているページの URL とリファラーの情報を LPO サーバへ送信します。LPO サーバはブラウザから受け取った URL とリファラーから表示する LPO コンテンツを判断して、ブラウザへ送信します。ブラウザ側では、この LPO コンテンツを使ってページを書き換えます。

これらの動作を実現させるため、JavaScript のコードが必要になりまが、ブラウザに表示されるページと LPO コンテンツはそれぞれ異なるサーバから送信されることになるので、クロスドメインへの対処が必要となります。いわゆる JSONP と呼ばれる仕組みが必要となります。

今回は JavaScript ライブラリとして広く普及して実績もあり、速度や機能が充実している jQuery を採用しました。jQuery は冗長になりがちな JavaScript のコードを非常にシンプルに記述することが出来る上、Ajax や JSONP といった機能も充実しており、非常に有用なライブラリではないでしょうか。

Yahoo! UI

このシステムでは JavaScript の UI は必要としませんが、管理画面を作る際に CSS のリセットやグリッドレイアウトを楽にするために、Yahoo! UI の Reset CSS と CSS Grids を使っています。

Open Flash Chart

LPO によって表示したコンテンツやコンバージョンの状況をグラフで表示する際に、Open Flash Chart を使っています。