投稿

5月, 2014の投稿を表示しています

フォームの最適化について他社のフォームを真似する前に・・・

イメージ
インターネットのフォームは昔から存在しながら、その改善はHTMLのバージョンやCSS、Javascriptを使った新しいUIの提案のみで大きな革新というものはあまり無いように思います。
もちろん、このような新しいUIにより大幅に放棄率などが改善するパターンもあるでしょう。


フォームの最適化というのは非常に難しい課題ですが、最近思うのは2010年に発表されたフォームデザインに関する20の指針をまずはチェックして欲しいということです。
【参考】 Simple but Crucial User Interfaces in the World Wide Web: Introducing 20 Guidelines for Usable Web Form Design
似たような実験はいくつかありますが、指針は以下の20項目で構成されています。 Let people provide answers in a format that they are familiar with from common situations and keep questions in an intuitive sequence. If the answer is unambiguous, allow answers in any format.Keep the form as short and simple as possible and do not ask for unnecessary input.If possible and reasonable, separate required from optional fields and use color and asterisk to mark required fields.To enable people to fill in a form as fast as possible, place the labels above the corresponding input fields.Do not separate a form into more than one column and only ask one question per row.Match the size of the input fields to the…

ウェブマスターツールの「Fetch as Google」に「取得してレンダリング」メニューが追加

イメージ
つい先日、Javascriptのエラー状況などもウェブマスターツールで見れるようにするというアナウンスがあったばかりですが、「Fetch as Google」にメニューが追加されたようです。

今まではbotがどのようにページが見えるかソースレベルで確認できたり、インデックス送信ができたりしたページですが、robots.txtやCSSなどの評価結果も見ることができるようになりました。

まだ実際にエラーパターンを見つけていないのですが。
ちなみに一週間のうちにインデックス送信できる回数が決まっていたはずなのですが、その回数表示が消えましたよね?
確かページ単位は500、ページ群が大幅に変わった場合は10が上限だったような気がしますが、回数問わず送信出来るようになったのでしょうか?

Google Analytics利用者向けの「Table Booster for Google Analytics」がイイかも

イメージ
以前は違う拡張を使っていたのですが、Table BoosterというChromeの拡張はAnalytics上の数値が視覚的にパフォーマンスが分かったり、z検定も比較したいディメンションにチェックを入れるだけで、その場で結果がわかるのでイイかもしれません。


バーチャートとヒートマップと比較グラフはこんな感じで見えます。

z検定も2つのmetrics選択と、2つのdimension選択でサクッと結果が見えます。


Table Booster

【GTM】ウェブサイト内画像のABテストをAnalyticsのイベントを使って実施する

イメージ
2014年5月25日現在、Google Tag ManagerのWEBサイト側計測の場合、ABテスト(Google AnalyticsのExperiments)を利用することは出来ませんが、海外では複雑なスクリプトを組むことで実現している方もいます。

ただ、そのソースを見ていただければわかりますが、単純に実行されるタイミングをずらしているだけだったりします。古いAnalytics(ga.js)とカスタム変数あたりを利用したソースになっているので、新しいAnalytics(analytics.js)でまずは単純な画像のABテストを実施してみました。

ただし、以下のソースの場合は単純なイベントは取得出来たのですが、「Experiments」画面にデータが反映されませんでしたので、まだ改良が必要です。

まず、ABテストを実施するために乱数を発生させます。


それから、タグでこんなソースを書きます。

var chosenVariation = {{randomNumber}} % 2; // this does an image replace var image_variations = [ 'images/original.png', 'images/variation.png' ] var pageVariations = [ function() { dataLayer.push({'event': 'setExpCustVar'}); exp_image = document.getElementById('abtest'); exp_image.src = image_variations[chosenVariation]; if(chosenVariation==0){ exp_image.parentNode.href='images/original_large.png'; } }, // Original: Do nothing. This will render the default HTML. function() { dataLayer.push({'event': 'setExpCustVar'}); ex…

【GTM】クリック箇所を限定したリンククリックイベントの取得方法

イメージ
海外でjQueryを使ってゴチャゴチャやっていたけど、実は単純に実装できるよ!というパターンです。
まずはページのソースですが、例えばこんな状態だったとします。

【ソース例】




で、このulタグの中のリンクをクリックしたイベントだけを取得したい場合、Google Tag Managerの設定は一工夫必要になる場合があります。

この例の場合、
Auto Event VariableでElement Classを設定した後に

event = gtm.linkClick
elementClass = blogroll

の条件ではリンクのクリックイベントを取得できません。
こういうネストしている状況でリンククリックのイベントを取得する場合、aタグにElementが指定されていれば良いのですが、そうではない場合マクロにdataLayerを指定する必要があります。

即ちdataLayerの値をこういう設定にします。
gtm.element.parentElement.parentElement.className

クリックされたaタグから見て、2つ親のノードのクラス名を指定する必要があります。

event = gtm.linkClick
gtm.element.parentElement.parentElement.className = blogroll

という指定方法をすることでクリックイベントが取得できるようになります。
実際にはマクロ名が長すぎるので、全然違う名前を付けることになります。

こういうものはChromeまたはFirefoxのFirebugで調べます。
一旦gtm.linkClickをページで発動させた後にChromeのコンソールを見てみます。


gtm.linkClickというイベントが発動しているのが分かります。
それと別に、gtm.elementの下に色んな値があります。そこを調べてみるとどのような値を設定すればイベントが取得できるかが分かります。

gtm.element.parentElement.parentElement.className

【関連】
Google Tag Managerに関するまとめ

20日からパンダアップデート4.0が開始

イメージ
様々なところで話題になっていますね。
Google is rolling out our Panda 4.0 update starting today.
— Matt Cutts (@mattcutts) 2014, 5月 20
これに絡むかどうかはわかりませんが、SERPsに著者情報(Authorship)が表示されるものが非常に多くなったという報告もあります。

海外でもこの点に言及があるものもありますが、検索ランキングに著者情報は利用されていないと再度言及がありましたので、まだ噂の段階です。

「マウスカーソルはなぜ傾いているか」を記載した記事が面白い

イメージ
海外のマウスポインターの記事、結構面白かったです。
GUIはもともとXEROXの「パロアルト研究所」で生まれた事は有名なお話ですが、カーソルに関するドキュメントも1981年に記載されていたということです。

元々マウスポインターは傾いておらず垂直デザインだったようですが、当時の画面解像度が低いディスプレイ上では視認性が非常に悪く、現在のデザインに至ったという内容が書かれています。


広告サイズ標準が次の世代に?IAB Rising Stars

イメージ
IABが新しくRising Starsという新しい広告ユニットポートフォリオを発表しました。
新しい広告は以下の6つ。
BillboardFilmstripPortraitPushdownSidekickSlider
リッチな広告の方がより、目をひきやすくクリックされやすい訳ですが、今回発表されたRising Starsの各広告サイズごとにサンプル動画がありますので、ぜひ直接サイトでご確認ください。
次のサイトレイアウトを考える時や、広告とは言わずとも自社コンテンツの魅力的な見せ方としてこれらの広告方式を真似るのはとても意義があると思います。
かなりリッチであることは間違いないのですが、個人的にはFunnelを意識したFilmstripの事例はとても面白かったです。


モバイル版Rising Starsも合わせてご確認ください。
とはいえ、これらの広告は完全なコンテンツ乗っ取りなので議論を呼ぶことは間違いないかも。

流行っているウェブサイトをUXの教材として集めている「User Onboarding」が面白い

イメージ
海外の「User Onboarding」というサイトが見ていて結構面白かったのでご紹介。


書籍も出しているようですが、例えばPinterestであれば会員登録のステップ数は3段階


マウスオーバーで自動的に画像が拡大されるようになってもいます。
そして、各ページで何がどのような効果があるか、どういう印象なのかなどが細かくメモされています。


ぜひ面白いので見てみてください。

User Onboarding

Google Chrome Canaryバージョンで、「ビーコン」が有効化可能になった

イメージ
去年からWEBの高速化に対するパフォーマンス系APIの勧告認定やら色々と動きが慌ただしいのですが、Google ChromeのCanary版で2014年2月に編集者草案となっている「ビーコン」が有効化できるようになったようです。(flagsページで有効化)

via Ilya Grigorik


今後、勧告認定されるかどうがは現状分かりませんが、最近の動きを見る限りはその可能性は高いような気もします。

こういう技術回りは専門ではないので詳しい説明は他の方に譲りたいのですが、僕の理解では今までWEB解析系のタグをやりとりするためには同期的なXHRが発生していたため、ユーザー側へのウェブ表示を遅らせる可能性がありました。また画像を使い遅延ロードで解析をした場合もデータの信頼性が揺らぐなどのマイナス影響があったのですが、それを解決する仕様が、この「ビーコン」です。

W3CにはsendBeacon methodの例としてこのようなソースが書かれています。

window.addEventListener('unload', logData, false); function logData() { navigator.sendBeacon("/log", analyticsData); }
Firefox側もnavigator.sendBeaconへ取り組んでいるようですし、次の展開が非常に気になるところです。

【GTM】ルックアップマクロを使って仮想ページビューを生成

イメージ
結構これは簡単な例ですが、実際設定していて「マクロ」の「ルックアップ」を知るにはとても良い教材のような気がしました。

黒塗り部分が多くて申し訳ないのですが、ある特定URLを別のURLへと「ルックアップ」を使って置き換えて、置き換えたURLをAnalyticsの「仮想ページ遷移」に代入するだけです。


この設定だとマクロが2つ入っているのですが、1つは「dataLayer」で元々ページに仕込んであるもの、もう一つが今回設定したルックアップマクロです。ただ今のところ両方とも値が入ってくることが無いので、こんな設定にしていますが今後値が入ってくるとしたらタグ自体を2つに分ける必要が出てくるかもしれません。
現状、この辺りの条件分岐などがGTMで組めないのがツラい所です。

【参考】
Google Tag Managerに関するまとめ

当たり前といえば当たり前。でも注意したいユニバーサルアナリティクスでのユーザーレベル条件

イメージ
海外の投稿でこんな事例がありました。
ユニバーサルアナリティクスで特定の日付、例えば5月1日にUser Idをもった「Aさん」が「ページ1」にアクセスをしました。
それをAnalytics画面から"「Aさん」で、かつ「ページ1」を見た"という条件でユーザーレベルの条件を表示させます。


表示期間に5月1日を含んでいた場合は、確かに正しく「ページ1」を見た「Aさん」のセッションが確認できます。


しかし、一方で5月1日を含まない期間で検索をした場合、確かに「Aさん」は「ページ1」を閲覧したユーザーであるにも関わらず、データは0件となります。


たしかに期間内に「Aさん」は「ページ1」を見ていませんので結果は正しいと感じますが、効果検証を行うにあたって期間を長くすれば長くするほど該当ユーザーが多くヒットし、効果が高いと判定されてしまったり、単純に営業日サイクルで検証したりした場合、本当に見たいデータが見えない、もしくは結果の見方を誤ってしまう可能性を秘めています。

したがって、期間選択には注意が必要となります。
ユーザーレベルでの分析ではコホート分析などに利用すると最も良いと思いますが、Analyticsの解析レベルを再度意識する事が大事だなと感じました。

【GTM】タグマネージャとjQueryを使ったEFO(フォーム改善)

所謂エントリーフォームオプティマイゼーション(Entry Form Optimization)というやつですが、Google Tag Managerを使ってサクッと出来たので、今回はテスト結果の共有です。
事前にjQueryを読み込んでいる前提でこんな感じのScriptを組んでみました。

var now; (function($) { $(document).ready(function() { var clientId = ga.getAll()[0].get('clientId'); //"User ID"があれば"Client ID"よりもそっちを使うべきかも。 // var clientId = "{{utma}}"; //ga.jsの場合は個を特定する値としてutmaをファーストパーティクッキー経由で取得する。 $(':input').focus(function () { now = new Date(); dataLayer.push({'event': 'form', 'eventAction': 'focus', 'eventLabel': $(this).attr('name') + ',' + clientId + ',' + now.getTime()}); }); $(':input').blur(function () { if($(this).val().length > 0) { now = new Date(); dataLayer.push({'event': 'form', 'eventAction': 'completed', 'eventLabel': $(this).attr('name') + ',' + clientId + ',' + now.getTime()}); …

「コンテンツ・マーケティングとコンテンツ・ストラテジーは違う」という考え方が面白い

SEJにコンテンツ・マーケティングとコンテンツ・ストラテジーの違いという内容の記事があがっていました。

同一視されがちな両者ですが、簡単に言えば
コンテンツ・マーケティングユーザーとのエンゲージメント構築する事を目的とし、サイトと関連性の高いコンテンツでユーザーから何らかの反応(Call To Actionでも良いと思う)を生み出すもの。コンテンツ・ストラテジー見込み客に対してより魅力的なコンテンツを生み出しす戦略を立て、組織全体の戦略を反映したコンテンツ群を生み出すこと。 といったところでしょうか。
確かにこの2つは合わせて語られることが多いのですが、見込み客を引っ張るストラテジーと、ユーザーを育てるフェーズのマーケティングは分けて考えると、より「コンテンツ」というものに対して理解が深まるような気がします。

もちろん両方の意味を含んでいたり、ストラテジーとして構築したページにランディングした人が、実際は、より知識的に進んだマーケティング目的で構築したページの内容の方が魅力的であるという場合もあると思います。

両輪がうまく噛み合って回るサイト構造、コンテンツ作成を意識的に行っていきたいものです。

Google Analyticsに「アクティブユーザー数」が追加

イメージ
Google Analyticsの「ユーザー」レベルに新しく「アクティブユーザー」という項目が加わったようです。

恐らくヘルプはここに該当するんだと思いますが、まだ利用者の間では「なんだ?」といった反応が多いようです。


ヘルプはとても丁寧なのですが、文章が長い!と言う人も多い気もしますが、こんな内容が細かく理由とともに書かれています。

【結局】
・期間のみ指定して「アクティブユーザー」を表示した場合はデータがサンプリングされない。
・ブラウザを指定したり、参照元を指定したりした場合はサンプリングデータとなる。

ただ、今のところなぜ「アクティブユーザー」という名称になったのかが凄く謎です。
例えば30日間のユーザー数と「アクティブユーザー」の「30日間のアクティブユーザー数」は同一の値になっているはずですが、今までの「ユーザー数」と基本的に内容は変わらないのでは?と思わざるを得ません。

今後色んなアナウンスが出てくると思います。

Analytics APIのセグメントでシーケンスを利用したパターン

イメージ
Google AnalyticsのAPIで利用できるセグメントは色んな実際のパターンを使いながら覚えていこうと思いますが、単純なパターンでのテストです。

まずはユニバーサルアナリティクスで同一User Idを用いてPC → モバイル → モバイルとアクセスをしてみます。
PCはChrome、スマートフォンはAndroidのChromeです。


Analytics画面で見ると1ユーザー、セッション3と計上されています。


User Idもテストでカスタムディメンションに入れていますが、こちらもちゃんとデータが計上されています。


■テスト セグメントの指定でこの5パターンはキレイに値が取得できました。全て同じ結果が得られます。

users::sequence::ga:deviceCategory==desktop;->ga:deviceCategory==mobileusers::sequence::^ga:deviceCategory==desktop;->ga:deviceCategory==mobileusers::sequence::^ga:deviceCategory==desktop;->ga:deviceCategory==mobile;->ga:deviceCategory==mobileusers::sequence::^ga:deviceCategory==desktop;ga:browser==Chrome;->ga:deviceCategory==mobile;ga:browser==Chromeusers::sequence::^ga:deviceCategory==desktop;ga:browser==Chrome;->ga:deviceCategory==mobile;ga:browser==Chrome;->ga:deviceCategory==mobile;ga:browser==Chrome


スコープも利用してみた感じですが、同じ値が得られたものはこんな感じです。

sessions::condition::perSession::ga:pageviews==1sessions::condition::ga:browser==Chrome;condition::perSession::ga:page…

WEBサイト巨大化によるTTI(Time To Interact)悪化

イメージ
恐らく4月にradwareから発表された記事の影響だと思いますが、ウェブパフォーマンス系の記事が増えたような気がしています。

(参考)
New findings: Retail sites that use a CDN are slower than sites that do not*

この記事タイトルもかなり衝撃的ですよね。
CDNを利用しているサイトなのに、利用していないサイトと比較してページ速度が遅いと。記事内ではCDN利用サイトの方がよりコンテンツがリッチであったり、サードパーティScriptが利用されているとか、色んな要因が書かれています。最終的にはやはりFront-End Optimization(FEO)であると。

一般的にWEBサイトは10秒以内にコンテンツが表示され、ファーストビューで目的のコンテンツや感情に訴えかけるものがなければユーザーは離脱すると言われています。


また、先ほどのradwareのサイトでは1秒遅くなる度に以下となると書かれています。

直帰率の8.3%増加ページビューの9.3%減少コンバージョンの3.5%減少カート投入金額(cart size)が2.1%減少
cart sizeは金額で良いのかどうか分からないのですが、マイナス要因であることに違いはありません。

別の調査ではそこまでキレイな数値はでていなかったのですが、ページ表示速度が8秒から5秒に短縮されるとページ価値が18%向上するというデータもあります。


恐らくここでいう価値は、Google Analyticsのページ価値と同じような考え方ではないかと推測しています。

ショッピングユーザーの場合ページ表示時間に対するユーザーの期待は2秒以下だとする記事やKissmetricsのインフォグラフィックなども印象的なものがあります。

ページスピードに関するアドバイスはGoogleのものが一番優れていると思いますが、画像の最適化だけでなくJavascriptやCSSのブロッキング、gzip系とか色々とありますが、最近こういうページ表示の話とCDNやインフラ系の話題をよく聞くようになったと感じています。

どちらにしてもユーザーにとってページを利用できるようになるまでの時間であるTTIが短くなるに越したことはありません。この問題は常につきまとうので、次にどういう方向へ発展していくのかが少し…

PC側Gmailのデザインがモバイル的なものに変更されるかも

イメージ
今朝はGeek.comのデスクトップ版Gmailリーク画像が話題になっているようです。

タブ系のデザインは無くなって、メニューはスライド表示がされるようです。


ニューヨーク・タイムズサイトのデザインだったり、Timeのサイトなど、モバイル的なデザインがデスクトップでも増えてきました。
一つは自国だけでなくグローバルに閲覧される可能性があるということは、発展途上国も含めスマートフォンしか持たず、日常的にスマートフォンインターフェースに親しんでいるユーザーが増えており、今後も増加すると予想されます。

またレスポンシブサイトが増え、単なるレスポンシブサイトではデザイン統一までは必要ありませんが、恐らくスマートフォンサイト側の学習がPCサイトで働かないというリスクを減らすためではないかと考えていますが、PCサイトとスマートフォンサイトで似たようなデザインに統一するという動きもあると思っています。

スマートフォンでよく利用するサイトなのにPCサイトに訪れたら、あたかも初めて来たウェブサイトのようにインターフェースが全く違うというのもナンセンスです。

この辺りのウェブデザインの流れは今年から来年にかけて、もっと面白い動きがあるかもしれませんね。

Google SpreadsheetのAddon「Google Analytics」は大量データでも動いて素晴らしい

イメージ
既に色んな方が利用されていますが、Google SpreadsheetのAddon機能にある「Google Analytics」 ですが、大量データでも普通に動いて凄いですね。


Google公式ということもあって、最近あったAnalytics APIのMetrics系の名称変更も、変更当日からAddon側も新しくなっていました。 ただ一点心配なのは、Reportのレイアウト変更です。レポート設定を変更することでレポートレイアウトが変更されることはありますが、Google起因で変更されないかが個人的に心配だったりします・・・
「アドオン」メニューから「Google Analytics」を探してみてください。

「+ FREE」でインストールしてください。

今まではGoogle Apps側で書いていたのですが、大量データの場合データが全部取得できずタイムアウトエラーになることもしばしば。
少ないリクエストなら全然問題なかったのですが、今回マーケティング系の社内向けレポートのデザイン変更を期にアドオンへ変更。

基本パターン早速一つレポートを作ってみます。 Spreadsheetの「アドオン」メニューからレポートを作成します。
「レポート名」 : シート名にもなります。
「アカウントインフォメーション」は、Analytics画面のこの部分になります。 ※ちょっと小さい画面でゴメンナサイ。


ちなみに、今回の内容とは異なりますが、URLにアカウント番号やプロパティ番号、ビュー番号が書かれています。

Analyticsを見た時のURLですが
visitors-overview/a999999w99999999p99999999/

a : アカウントID
w : ウェブプロパティID(web property)
p : ビューID(Profile)

です。

「Metrics」、「Dimensions」 : こちらから取得したい指標を探す
このMetricsとかDimensionsあたりが、取っ付きにくい部分だとは思っています。

例えば・・・セッション数のデータを特定期間で日ごとに見たい場合、
Metrics -> ga:sessions
Dimension -> ga:date
となります。

例えば・・・ブラウザごとのセッション数を見たい場合、
Metrics -&g…