ホームページを制作する時に抑えておくべき、5つのポイント

ホームページ制作

最近、「ホームページ制作の見積りを作って」と営業さんからよく言われます。

「はい●●円です!」と即答できればいいのですが、ホームページはテレビやパソコンのような型番商品ではなく、注文住宅やオーダースーツのようなオーダーメイド商品に近い性質があり、なかなか即答はできません。

「ホームページ制作の見積り作って!」と言われても「どんなホームページを希望しているか」をある程度ヒアリングしないと金額の振れ幅が大きすぎる可能性が高く、見積りが無駄になることが多いです。

せっかく作ったホームページ制作の見積りが無駄になると、テンションも下がっちゃいますよね。

今回、できればこれだけはお客様にヒアリングしておいて欲しいなぁ。と思う項目を5つ紹介させていただきます。

1:ビジネスの目的(基本方針)の聞き取り
「なぜ、ホームページが必要なのですか?ホームページで何をしたいのですか?」

といった根本の部分は、実際にホームページを作り、運用していくうえでも重要な基本方針になります。
この基本方針が無いと、安直なデザイン変更を繰り返す、不毛なホームページになることが多いです。

突っ込んで聞けそうなら、
「そもそもホームページを制作しないとその目的を達成できないのか?スマホアプリを作るってのは考えた?」
なども聞いておくと、お客様のホームページに対する本気度も伺えるかと思います。

 

2:ターゲットの聞き取り
「ホームページをどんな人に見て欲しいですか?」

ということを聞き取ることで、サイトを構築する上で必要となる機能やデザインの内容が変わってきます。

例えば、
・20代主婦の女性に向けたホームページ
・50代会社役員の男性に向けたホームページ
では、大きく作り方が変わってくるはずです。

できれば、簡単なペルソナ(利用者像)が作れるといいですね。
「20代主婦」に見て欲しい!というよりも、
「23歳で1歳の子供(男の子)を持つ名古屋市在住の専業主婦。夫はトヨタ自動車の工場で働く25歳平社員。両親は九州に住んでいる。」に見て欲しい!
というような利用者像が具体的になると提案もしやすくなります。

3:必須となるコンテンツの聞き取り
「絶対に伝えたいコンテンツは何ですか?」

様々なコンテンツが溢れている中で、【絶対に】伝えたいコンテンツを確認しておくことで、情報の優先順位を確認することができます。
本当に伝えたいことが埋もれてしまっていては、ホームページを作る意味がありません。
必須となるコンテンツを確認しておきましょう!

4:ホームページの機能の聞き取り
「ホームページに求める機能が有りますか?」

これは聞き方が難しいのですが、ホームページは紙の制作物と違って色々な動作・機能を仕込む事ができます。

例えば、

  • ブログを付けて情報発信したい
  • ランニングコストを抑えるために自分たちで簡単に更新できる仕組みが欲しい
  • 問い合わせフォームが欲しい
  • 外回りの営業が簡単に資料をダウンロードできる仕組みがほしい
  • 日本人以外にもアプローチしたい(多言語)
  • スマートフォンでの閲覧を考慮したい
  • 簡単に商品を登録・発信できる仕組みがほしい

のような機能をサイトに付け加えることができます。

ホームページでは出来無い!という前提ではなく、とりあえずなんでもかんでも言ってもらい、見積りに加えていけると素敵ですね。

5:予算の聞き取り
「ちなみに予算っていくらぐらいですか?ランニングコストはいくらぐらいの予算を見込んでいますか?」

これなかなか聞きづらいことですが、聞いておかないと後で「こんな高い金額では到底発注できない!」となってしまい、提案が流れることが多いです。
予算の当たりが付いていると、精度の高い提案が可能になります。予算1万円で作るホームページと予算50万円で作るホームページではできることが違ってきて当然です。
ストレートに聞かずに、遠回りでもぼんやりでも確認しておいて欲しいと思います。

6:納期の聞き取り
「いつまでに完成させたいですか?」

しまった、6つになってしまった(笑)

納期を聞いておくことで、特急で人員を増やす必要があるかなどが見えてきますので聞いておくと後々こんな話じゃなかったとはならないと思います。

まとめ

私が思う最低限のヒアリングポイントを挙げてみました。
ここまで読んで、「おやっ!?デザインについてのヒアリングが全然無いじゃん!」と思った方がいるかもしれませんが、デザインは上記が揃って初めて取り掛かれるヒアリングだと思っています。

デザインありきで考えると、お客様の本当にしたいことがブレてしまうことが非常に多いです。

お客様に満足の行くホームページを提供できるよう、ヒアリング大切にしていきたいものです。



[デバッグ]PHPで処理の時間を計測するための方法

glass-time-watch-businessプログラムの処理が重たい時、どこの処理で時間を食っているか調べたくなりますね。

そんな時はPHPの microtime関数を使うと簡単に処理時間の計測ができ、ボトルネックを発見できます。

microtime 関数とは

現在の Unix タイムスタンプをマイクロ秒まで返す関数です。

引数を指定しないか、falseを設定すると「文字列」でマイクロ秒を返します。

引数にtrueを設定すると「float(浮動小数点数)」で値を返します。

処理時間の計測をするためには開始時間と終了時間の差分を出したいので、常に引数はtrueを指定します。

参考
http://php.net/manual/ja/function.microtime.php

マイクロ秒ってどんな数字!?

マイクロ秒(マイクロセカンド、マイクロセック)とは、100万分の1秒のことで、非常に細かな時間です。「μs」や「us」や「usec」というふうに表記されます。

microtime 関数で処理速度を計測してみる

シンプルな計測方法

これを動かしてみるとこんな結果になります。

処理時間:1.0002000331879秒

複数箇所の計測方法

配列を使ってあげると複数箇所の計測も簡単に実装できます。

実行結果はこんな感じです。

0番目の処理に掛かった時間:1.0006420612335秒
1番目の処理に掛かった時間:1.0003950595856秒
2番目の処理に掛かった時間:1.0009589195251秒

精度について

ここまでmicrotime関数を使用した計測の仕方を書いてきましたが、より高い精度でmicrotime関数を使用するための考察をされている記事を見つけましたので紹介させていただきます。

高い精度をお求めの方はぜひ参考になされてください。

microtimeの差分

Unixタイムスタンプをマイクロ秒まで表現するには整数部10桁+小数部6桁の16桁必要ですがPHPのfloat値には約14桁の制度しかないのです

なるほどなぁ。ちなみに私の場合はザクっと処理時間が分かればいいかなぁ程度だったので、紹介記事のようにはしませんでした(^^;)ナンテコッタ

まとめ

microtime関数を使うことでお手軽に処理時間の計測ができます。

実行時間が長すぎて困っている方、デバッグのお供にどうぞ。



Thunderbird(サンダーバード)でウィンドウが2つ立ち上がる場合の対処方法[メールソフト・メーラー]

 

tb.png

Thunderbird(サンダーバード)でウィンドウ画面が2つ立ち上がる!

超有名な無料のメールソフトであるMozilla Thunderbird(サンダーバード)。

この無料メーラーのウィンドウ(受信トレイ)が起動時になぜか毎回2つ立ち上がってくるのです。

そして、毎回、エラーメッセージが表示されるのです。

error.png

mail@example.com アカウントのエラー
アカウント mail@example.com は処理中です。受信処理が終了するまでしばらくお待ちください。

何言ってんだこいつ!と言われそうなのですが、実際に起動するたびに毎回ウィンドウが2つ表示されるのです。

Thunderbird(サンダーバード)を再起動したり、タスクマネージャーでThunderbird(サンダーバード)を切ったり試行錯誤してみたのですが全然ダメ。

ネットを漁ってみたら、結末は案外単純なものでした。

Thunderbird(サンダーバード)でウィンドウが2つ立ち上がる場合の対処方法

すごく単純な対応方法でした。

片方のウィンドウを閉じる( ショートカットキー:Ctrl+W )

たったこれだけです。

ショートカットキーに不慣れな方は、以下のように3本線のメニューから、ファイル→閉じる(Ctrl+W)を選択するだけです。

captha-window-close.PNG

これだけで次回起動時にウィンドウが2つ起動することはありませんでしたとさ。

まとめ

こんなこと書いておいて、ほとんどThunderbird(サンダーバード)は使っていないので気にしなければよかったのですが、調べて見たら案外簡単でした。
もし、Thunderbird(サンダーバード)をゴリゴリ使っている方で同じ症状が出ている方は、対処方法はとっても簡単でしたのでぜひお試し下さいませ。

 



CodeIgniter 3入門(インストールから設定まで)

CodeIgniterのことを勉強したのでメモ。日本語サイトにCodeIgniter Ver.2のユーザガイドがあったのですがCodeIgniter Ver.3のユーザガイドの日本語版が無く、辞書とにらめっこしながら進めました。

間違い等あればご指摘くださいませ。

これからCodeIgniterを学ぶ方のお役に立てれば幸いです。

2016年2月23日追記
kenjis様より日本語ユーザガイドのURLをコメント頂きました。
現在翻訳中とのことです。ありがとうございます。

日本語ユーザガイド
http://codeigniter-jp.github.io/user_guide_src_ja/

2017/01/26 URLが変更されていました。以下が日本語ユーザガイドになります。

http://codeigniter.jp/user_guide/3/

CodeIgniterとは

PHP言語のフレームワークです。

フレームワークとはよく使う処理のお道具箱みたいなもので、フレームワークを使うことによりプログラムの開発効率を上げることができます。

CodeIgniterの読み方

ウィキペディアによると、「コードイグナイター」と読むそうです。なるほど。

CodeIgniter 3の動作要件

CodeIgniter 3を動作させるにはPHP version 5.4 以上が必要です。

以下のデータベース(バージョン)に対応しています。

  • MySQL (5.1+) via the mysql (deprecated), mysqli and pdo drivers
  • Oracle via the oci8 and pdo drivers
  • PostgreSQL via the postgre and pdo drivers
  • MS SQL via the mssql, sqlsrv (version 2005 and above only) and pdo drivers
  • SQLite via the sqlite (version 2), sqlite3 (version 3) and pdo drivers
  • CUBRID via the cubrid and pdo drivers
  • Interbase/Firebird via the ibase and pdo drivers
  • ODBC via the odbc and pdo drivers (you should know that ODBC is actually an abstraction layer)

参照
http://www.codeigniter.com/user_guide/general/requirements.html

CodeIgniter 3のライセンス

MITライセンスです。

The MIT License (MIT)

参照
http://www.codeigniter.com/user_guide/license.html

ちなみに、CodeIgniter 3.0からMITライセンスになったようで、2.xまでは独自のCodeIgniterライセンスというライセンスを採用していたようです。

 

CodeIgniter 3のインストール

CodeIgniterのダウンロード

CodeIgniterの公式サイトからダウンロードしましょう!執筆時、Version 3.0.4が最新バージョンでした。

https://codeigniter.com/

キャプチャ.JPG
公式サイトトップページのDownloadからCodeIgniter Version 3をダウンロード

アーカイブを展開

ダウンロードしたアーカイブを展開します。

ファイルをアップロード

「展開したファイルをサーバ上にアップロードします。」とサラッとCodeIgniterの公式に書いてあるのですが、以下の画面キャプチャで選択してあるファイルだけで問題ないかと思います。

キャプチャ.JPG
application sysytem index.php license.txt のみのアップロードで大丈夫っぽい

CodeIgniter 3の設定

基本設定ファイル(config.php)を編集する

application/config/config.php

を開き”base_url”の設定をします。

$config[‘base_url’] = ‘http://example.com/’;

基本設定ファイル(config.php)を忘れずにサーバにアップロードしましょう!

とりあえず表示確認してみよう

ブラウザで、サイトを表示してみましょう!以下のように表示されていれば設置成功です。

無題.png

データベース設定ファイル(database.php)を編集する

設置が確認できたら更に設定を行っていきます。データベース使わない場合などはこの項目の作業は不要かと思います。

application/config/database.php

を開き以下を変更します。

全ての設定が必要というわけではなく、必要な部分だけ設定します。

設定する主な項目

hostname: データベースサーバのホスト名
username: データベースのユーザ名
password: データベースのパスワード
database: データベース名
dbdriver:データベースのタイプ(mysqli(MySQLの場合), postgre(PostgreSQLの場合))

参考
http://www.codeigniter.com/user_guide/database/configuration.html

.htaccess を設定する

CodeIgniterの初期設定では、以下のように index.php が含まれたURL構造になってしまいます。

これを回避するために.htaccessファイルを作成して以下のように記述します。

作成した.htaccessファイルは忘れずにサーバにアップロードしましょう。license.txtと同じ位置に置くと良いでしょう!

参考
http://www.codeigniter.com/user_guide/general/urls.html#removing-the-index-php-file

感想

いろんなフレームワークがありますが、かなり簡単に設置出来るのがGood!

(2.x系は豊富だけど)日本語のドキュメントが少ないのでGoogle翻訳を駆使して理解していく必要がありそうです。



Google Analytics Core Reporting API ディメンション・メトリクスの覚書[徐々に更新中]

キャプチャ.JPG

Google Analytics Core Reporting API で指定するディメンション(dimensions)やメトリクス(metrics)の覚書です。

似たようなのが多くて混乱したので、使ったところだけ注釈を入れています。

順次更新しています。


 User

Dimensions

ga:userType

ga:sessionCount

ga:daysSinceLastSession

ga:userDefinedValue

Metrics

ga:users

ga:newUsers

ga:percentNewSessions

ga:1dayUsers

ga:7dayUsers

ga:14dayUsers

ga:30dayUsers

ga:sessionsPerUser


Session

Dimensions

ga:sessionDurationBucket

Metrics

ga:sessions (セッション数)

ga:bounces (直帰数)

ga:bounceRate (直帰率)

ga:sessionDuration

ga:avgSessionDuration

ga:hits


Traffic Sources

Dimensions

ga:referralPath(参照元サイトのパス)

/foo/bar.html
のように取得できますが、これだけだと何なのかちんぷんかんぷんですね。

ga:fullReferrer(参照元サイトのURL)

example.jp/foo/bar.html
のように取得できます。
yahoo,google,bing 等も取得してきてしまうことや、リファラスパムも取得してしまうので、以下のフィルタを掛けると純粋な形で取得できるかと思います。良い方法があれば教えて下さいm(_ _)m

filters:ga:fullReferrer!=(direct);ga:fullReferrer!=google;ga:fullReferrer!=yahoo;ga:fullReferrer!=bing;ga:fullReferrer!=goo.ne;ga:fullReferrer!=biglobe;ga:fullReferrer!=ask;ga:fullReferrer!=biglobe;ga:fullReferrer!=traffic2cash.xyz/;ga:fullReferrer!=share-buttons.xyz/;ga:fullReferrer!=traffic-cash.xyz/;ga:fullReferrer!=free-social-buttons.xyz/;ga:fullReferrer!=net-profits.xyz/;ga:fullReferrer!=web-revenue.xyz/;ga:fullReferrer!=free-traffic.xyz/;ga:fullReferrer!=с.новым.годом.рф/;ga:fullReferrer!=jp.hao123.com/yahoo-search-demo-sample;ga:fullReferrer!=social-widget.xyz/

ga:campaign

ga:source(参照元サイトのホスト名)

example.jp
のように取得できます。

ga:medium (参照元の媒体)

以下の様な情報を取得できます。

(none):ブックマーク等によるダイレクトアクセス
organic:検索エンジンからのアクセス
referral:外部サイトからのアクセス
cpc:CPC広告によるアクセス
【以下よくわからないパラメータです。ヘルプ!】
cpa、cpm、cpp、cpv、ppc

ga:sourceMedium(参照元サイトのホスト名と媒体)

以下の様な情報を取得できます。

google / organic
yahoo / organic
bing / organic
(direct) / (none)
example.com / referral

ga:keyword(検索キーワード)

「居酒屋 愛知」のような検索キーワードを取得できます。キーワードが設定されていない場合や提供されていない場合は【(not set)】や【(not provided)】を取得してしまうので以下のフィルタを掛けてあげると良いと思います。

filters:ga:keyword!=(not provided);ga:keyword!=(not set)

ga:adContent

ga:socialNetwork

ga:hasSocialSourceReferral

ga:campaignCode

Metrics

ga:organicSearches


Goal Conversions

Dimensions

ga:goalCompletionLocation

ga:goalPreviousStep1

ga:goalPreviousStep2

ga:goalPreviousStep3

Metrics

ga:goalXXStarts

ga:goalStartsAll

ga:goalXXCompletions

ga:goalCompletionsAll

ga:goalXXValue

ga:goalValueAll

ga:goalValuePerSession

ga:goalXXConversionRate

ga:goalConversionRateAll

ga:goalXXAbandons

ga:goalAbandonsAll

ga:goalXXAbandonRate

ga:goalAbandonRateAll


Platform or Device

Dimensions

ga:browser (ブラウザ)

ga:browserVersion (ブラウザバージョン)

ga:operatingSystem (OS[オペレーティング・システム])

ga:operatingSystemVersion (OSのバージョン)

ga:mobileDeviceBranding

ga:mobileDeviceModel

ga:mobileInputSelector

ga:mobileDeviceInfo

ga:mobileDeviceMarketingName

ga:deviceCategory

ga:browserSize

ga:dataSource

Metrics

None(メトリクス無し)


Page Tracking

Dimensions

ga:hostname

ga:pagePath(サイトコンテンツへのパス)

以下の様な情報が取得できます。GETパラメータもついてきますのでリファラスパムをフィルタで除外してあげる必要が有りそうです。

/index.html
/path/to/contents.html
/index.html?from=http://spam.example.com/

ga:pagePathLevel1(サイトコンテンツへのパス(第1階層のみ))

以下のようなサイトの第1階層にあるコンテンツへのパスが取得できます。ga:pagePathと同様にGETパラメータもついてきます。

/index.html
/aboutus/
/index.html?from=http://spam.example.com/
/company/

ga:pagePathLevel2(サイトコンテンツへのパス(第2階層のみ))

以下のようなサイトの第2階層にあるコンテンツ(http://example.com/●●/ココ.html)へのパスが取得できます。

/index.html
/hoge.html

ga:pagePathLevel3(サイトコンテンツへのパス(第3階層のみ))

ga:pagePathLevel2と同様に第3階層が取得できます。

ga:pagePathLevel4(サイトコンテンツへのパス(第4階層のみ))

ga:pagePathLevel2と同様に第4階層が取得できます。

ga:pageTitle (ページタイトル)

ページタイトルが取得できます。

ga:landingPagePath (ランディングページのパス)

/hogehoge/hogehoge.html のように取得できます。

サイトのトップページをランディングページから除外する処理は以下のように書きました。

filters:ga:landingPagePath==/,ga:landingPagePath==/index.html,ga:landingPagePath==/index.php

ga:secondPagePath

ga:exitPagePath

ga:previousPagePath

ga:pageDepth

Metrics

ga:pageValue

ga:entrances

ga:entranceRate

ga:pageviews

ga:pageviewsPerSession

ga:uniquePageviews

ga:timeOnPage

ga:avgTimeOnPage

ga:exits (離脱数)

ga:exitRate (離脱率)


Time

Dimensions

ga:date (日付)

ga:year (年)

ga:month (月)

ga:week (週)

ga:day (日)

ga:hour (時)

ga:minute (分)

ga:nthMonth

ga:nthWeek

ga:nthDay

ga:nthMinute

ga:dayOfWeek

ga:dayOfWeekName

ga:dateHour

ga:yearMonth

ga:yearWeek

ga:isoWeek

ga:isoYear

ga:isoYearIsoWeek

ga:nthHour

Metrics

None(メトリクス無し)


 

参照
https://developers.google.com/analytics/devguides/reporting/core/dimsmets