投稿者: 丸山耕二/QuarkA・ウェブジョブズ

  • QAアナリティクスミートアップ「WordPressのサイト分析ハンズオン」vol.1開催レポート

    QAアナリティクスミートアップ「WordPressのサイト分析ハンズオン」vol.1開催レポート

    こんにちは、QAアナリティクスのプロダクトマネージャー丸山(@koji_maruyama)です。
    先日5月17日(金)、QAアナリティクスミートアップVol.1を神戸で開催しました。

    https://www.meetup.com/ja-JP/qa-analytics-meetup/events/300337640/


    初めてのリアル開催ということもあり当初15名定員にしていたのですが、おかげさまでキャンセル待ちも出たため、20名開催になりました。

    当日は新潟から来てくれたクラリティ研究所も運営しているコスギさん(@clarityLabo)がミートアップをオーガナイズしてくれました。そんなコスギさんが参加レポートをあげてくれています。

    https://clarity.kosgis.com/blog/qa-analytics-meetup-vol1/

    ものすごいレポートで、ミートアップの詳細はぜひコスギさんのブログをご覧頂きたく思います。

    レポートの中でももっとも私が嬉しかったのは「ユーザーと共に成長の余地があるアクセス解析ソフト」という部分。それこそ我々が目指してきたことであり、この第一回ミートアップにより、その一歩が本当に踏み出せたと感じました。

    そこで今回はざっと写真を使った雰囲気のご紹介のあと、コスギさんへのアンサーも含めて記事にします。

    当日の雰囲気

    受付

    13時15分開場ですが、バタバタで準備が間に合わず、、参加者の皆さん、ご協力ありがとうございました。

    受付の様子

    自己紹介&ディスカッション

    自己紹介では東京、名古屋、京都、大阪、神戸、新潟など本当に多方面からの参加。仕事もメディア運営、コンサルタント、ヨーロッパ帰りの人、制作会社の人、お店とECを運営している人、フリーの人、企業のウェブ担当者など、実に様々な人が参加してくれていることがわかりました。「好きなケーキは?」のような話題でも盛り上がりました。

    座談会の様子

    グループディスカッション

    それぞれのグループで、サイト運営に関する課題を自由に話し合いました。またQAアナリティクスをインストールして実際のレクチャーも。

    グループディスカッション
    課題が貼られたホワイトボード
    QAアナリティクスのレクチャー

    集合写真

    みんなで思い思いの「Q」のマークを作って撮りました笑。

    QAアナリティクスミートアップとは?

    QAアナリティクスが目指すものは、以前noteで記事にしています。

    データの‟分析”はもうやめよう。Wordpress無料プラグイン「QA Heatmap Analytics」が実現するこれからのWebマーケティング

    データはクリエイティブの武器になる。“天才”ではない私たちがクリエイティビティを発揮するたったひとつの方法

    上記は2021年のインタビューですが、3年たった今も考え方はずっとかわっていません。むしろユニバーサルアナリティクスの停止や、プライバシー保護が加速した現在は、未来が現実に近づいてきたと思っています。

    そのような流れの中で、ずっと大切にしているのは「私たちはすべての人のクリエイティビティを信じています」という言葉です。下記は今回のQAミートアップの目的のスライドですが、ここにも「『人の縁が解決する』と信じています」という言葉があります。

    我々のようなデータを扱うツールベンダーが、「信じる」という言葉を使うのはちょっと問題かも知れませんが、データを扱う立場としては、データよりも包括的な「現実」に対してシビアでなくてはいけないと思っていて、それでいうと、私は50年近く生きてきた中で、人の縁や、十人十色のクリエイティビティ、意思の力こそ様々な問題を解決する鍵だと信じています。

    私達ツールベンダーの力には限界がありますが、ユーザーさんの力も集結したら、きっと想像もつかないすごいものになると信じていますし、そういう人が集まる場がもつ力というのはとても大きいと感じていて。

    とはいえ、リリース当初は製品力も乏しかった上に、コミュニティ運営にも自信がなく、願望はあっても、実現できるような実力がありませんでした。

    しかしそれから3年。現在は後述のBrainsのリリースも控え、またその間にWordPressコミュニティに参加するようになって、やはり人の力はすごい!同じことをやってみたい!と具体的にイメージができるようになり、コミュニティ熱が再燃していました。そんな中、コスギさんが「神戸に行くからやろうよ!」と声をかけてくれ、サポートしてくれたことで、この第一回を開催することができました。この時点でもはや我々だけの力ではありません。

    このような背景があり、コスギさんが振り返りレポートで「QAアナリティクスはやっぱり、私たちで育てていける余地のあるツールだと思っています。」と言ってくれたことはとても嬉しく、すごいものに近づく一歩を踏み出したのではないかと感激したのです。

    ミートアップの目指すもの

    コスギさんのレポートでいくつか議題を書いてもらっていたので、回答します。

    「#QAAnalytics」というハッシュタグを変更しては?

    確かに名前が長いし読みづらいですよね。。
    ベタなんですけど、「#QAアナリティクス」かなぁと思っています。何かアイディアがあればぜひ頂きたいです。

    ※公式ツイッター@QaAnalytics宛てに #QAハッシュタグ案 まで。

    https://x.com/QaAnalytics

    ミートアップの方向性

    主催者側の「セミナーにはしたくない」という思いは尊重しながらも、それでもある程度のレクチャーの必要性は感じたので、今後も継続しながら模索できたら良いんじゃないかなと思っています。

    初開催のQAアナリティクス会・参加レポート #QAAnalytics | Microsoft Clarity 研究所 (kosgis.com)

    ありがとうございます。同感です。ミートアップのスライドに下記のように入れています。

    ツールの方向性や、機能説明などはベンダーとして情報提供の必要があると思っていますし、スキルアップの場としては、教えるのがうまい人達のバックサポートをしたいと考えています。

    ミートアップを開催してみたいという方はぜひMeetupからご連絡ください。

    ▼QA Analytics Meetup
    https://www.meetup.com/ja-JP/qa-analytics-meetup/

    メーカーとしての立ち位置

    「ツールベンダーなんだから、サポートしてくれなきゃ困る」という思いを持つ方もいらっしゃると思います。そこをコミュニティ “だけ” で吸収するのは、私も少し違和感があるものの、基本は「WordPress を使うなら自己責任」論主義者なので、お互い対等な立場で建設的な対話ができればいいと思っています。
    「やっぱりこういう機能がほしいよね」と言語化できるようになれば、めっちゃいいツールになると思うんですよ。QAアナリティクスも、そういった場をつくろうとしているようですし、私はそこに共感してお手伝いしています。

    初開催のQAアナリティクス会・参加レポート #QAAnalytics | Microsoft Clarity 研究所 (kosgis.com)

    ありがとうございます。

    まずツールの安定稼働については、QAアナリティクスは100%GPLのWordPressのプラグインであるため、WordPressの文化にのっとってボランティアの方も交えたコミュニティフォーラムでのやりとりを基本としています。

    https://wordpress.org/support/plugin/qa-heatmap-analytics/

    またツールベンダーに直接サポートしてほしいという方のためには、有償プランも用意しています。それに加えて、 QAアナリティクスミートアップが、何らかの解決や、意見交換や、追加ご要望の情報交換の場になればと思っています。

    そうやってユーザーの皆さんと情報交換を行っていく中で、QAアナリティクスが「日本人のアイディアが詰まったツール」に育つようベンダーとしても頑張りたいです。

    なおサイト改善に向けての課題については、私達ツールベンダーでは解決できないので、困っている人とプロフェショナルな人達が出逢う場としてのミートアップ開催をどんどんご支援していければと考えています。

    QAアナリティクスの今後

    早い馬を追い求めても、自動車には敵いませんよね。QAアナリティクスは、この自動車になる可能性を秘めています。

    「Brains」。ウェブサイトの規模やニーズに応じたAIが、アクセス解析データを分析してアドバイスしてくれる機能

    初開催のQAアナリティクス会・参加レポート #QAAnalytics | Microsoft Clarity 研究所 (kosgis.com)

    ありがとうございます。

    Brainsとは?

    コスギさんが一番喜んでくれた「自動車になるかも」という機能であり、サイト規模に応じてデータをもとにアドバイスしてくれる機能です。下記のデモをご覧ください。

    Brainsデモ画面

    BrainsはQAにアドバイザーを追加できる機能です。つまりQAのアドオンとして動きます。

    これも、ツールベンダーの力だけで作るより、多くの人の力が集結した方がすごいものになるという考えから生まれたものです。

    デモ画面は法人向けのQA ZEROでまもなく先行リリースされるものですが、QAアナリティクスでも当然実装予定の機能となります。ぜひ楽しみにして頂ければと思います。

    「みんなで画面を覗き込むのはしんどいから、QAアナリティクスの閲覧のみができるユーザー権限が欲しい」と伝えておきました。Google アナリティクスにも権限が細かくありましたし、これができれば各々の画面で好きなように確認できますから、ミートアップでも役立つだろうなって。

    初開催のQAアナリティクス会・参加レポート #QAAnalytics | Microsoft Clarity 研究所 (kosgis.com)

    重要な機能だと思いました。QA ZEROで先行している機能なので、QAアナリティクスにも取り込みたいと思います。

    次回開催

    7月17(水)19時から神戸を予定しています。コスギさんも再び来てくださる予定です。
    募集が決まったら、また公式ツイッターやMeetupページでお知らせしますので、ぜひフォローよろしくお願いします。
    ▼QA Analytics Meetup
    https://www.meetup.com/ja-JP/qa-analytics-meetup/
    ▼公式ツイッター
    https://x.com/QaAnalytics

    今回参加したかったけどこれなかったというご意見もたくさん頂きました。
    ぜひ会場でお会いしましょう!

  • WordCamp Kansai 2024参加レポ:コントリビュートとは?

    プロダクトマネージャーの丸山です。
    こんにちは。

    WordCamp Kansai 2024に参加してきたので、遅ればせながらそのレポートを書きたいと思います。

    今回、私にとって初の出来事は2つありました。

    • コントリビューターデイに参加(コントリデイと略されている)
    • セッションデイにスピーカーとして登壇

    去年からコントリビューターデイが気になっていた

    去年バンコクで開催されたWordCamp Asia2023に参加した時に、コントリビューターデイを知らずに現地に行きました。
    そしたらチケットを持っていないので入れないということで、 コントリビューターデイって何?という状況になりました。

    前日なのでブースもまだ工事中@バンコク

    困ってうろちょろしていたところ、Takanoさんが私を見つけてくれて案内をしてくれ、中にいたベクトルの石川さんに教えてもらってコントリビューターデイの意味を知りました。

    コントリビューターデイとは

    WordPressユーザーが集まり、オープンソースプロジェクトであるWordPressにコントリビュート(contribute = 貢献)するイベントです。

    初心者が間違えがちなこと

    • みんなで作業をする日である。セッションなどはない。
    • 参加チケット(無料)が必要
    • 人気イベントなのでチケットはすぐになくなる

    コントリビュート(貢献)とは?

    WordPressは世界中の多くの人の無償の貢献によってなりたっており、世界中で様々な活動が日々行われています。ソースコードだけでなく、ドキュメントや翻訳など含めてWordPressが継続してメンテナンスされ、どんどん使いやすくなっていくのも、すべて世界中の人々の貢献おかげです。

    コントリビュートとコミュイニティ活動について詳しくはこの動画がわかりやすいです。

    コミュニティ活動とコントリビュート

    コントリビュートデイに初参加。その内容は?

    チケット入手方法

    実は、最初は申し込むか迷っていました。
    というのも初めてで、特にコントリビュートデイは「WordPress手練れ達の集まり」というイメージが強く、「てにをはも知らない自分が一枚使ってしまってよいのか?」と気後れしていました
    しかし、今回うちのQA Analyticsでブロンズスポンサーになっていたこともあり(あれ?スピーカーだったからか、、なんか記憶があやふやですが)チケットがついていました。
    そこで「これは参加するしかない!」と思い、申し込みました。

    どんな感じなのか?

    各チームにテーブルがわかれてやります。今回はこんなチームがありました。

    下記のWordCamp Kansai 2024ページより引用

    開催の流れ

    最初にこんな感じで、今日の流れや参加方法について説明があります。参加者にはお弁当とお茶も提供されていて、みんな和気藹々な感じで聞いています。

    ささぴよさん

    説明が終わると、各チームにわかれます。

    Coreチームに参加

    各チームにはメンターと呼ばれるガイド役に人がいてくれて、いろいろ教えてくれるそうです。
    ですので、この時点でビビっていた感情はなくなり、せっかくだったら一番興味があるところに参加しようと思い「Coreチーム」を選びました。

    Coreチームとは

    WordPressのコア(本体)に関する貢献を行うチームです。6人チームのうち3人は海外の人でした。
    正直、英語ができないと駄目そうなチームだったんですけど、面識のあるtoruさんや、日本人メンターのNaokiさんがいらっしゃる安心感で参加してみました。

    やはりうちのQA Analyticsはコアに密接に関わっているので、コアに関わっていきたいという気持ちと、実は、最初に座っていた席が、そのままCoreチームのテーブルになったので、そのまま居座ったのもあります笑。
    (ちなみに後から知ったのですが、世界でも数少ないコアのコミッターであるAdamさんがいました。凄腕のレベルが違いました。実際にWordPressの次期バージョンがコミットされるシーンを間近で見るという貴重な体験をさせてもらいました )

    何をした?

    参加すると、メンターの人を筆頭にチームの人が本当にやさしくて、手取り足取り教えてくれました

    • 開発環境の構築(GitHubからのクローン)
    • 作業するチケットの選び方
    • WordPressでどのようなやり取りでボランティア間の作業が進むのか?の説明
    • 実際に書き込む内容などのアドバイス
    • 通訳

    申し訳なかったのが、私のノートPCにまともな開発環境が入っていなかったことです。。
    なので環境構築でえらい時間をくってしまい、テザリング速度も限界があるので、作業が進まなかったです。

    それでも、チケット選びや、コードのデバッグまでチームの皆さんが手伝ってくれて、人生で一番最初のコントリビュートをすることができました。
    https://core.trac.wordpress.org/ticket/60038#comment:4

    (余談)海外ではCookieレスでGA4のPVが減少しているらしい

    たまたま雑談をする機会があって、Jonに海外のCookieとGA4問題を聞いたら「GA4はページビューが減少しているよ。本当にみんな困っているから、声かけたらみんな興味持つと思うよ。」と言ってくれました。
    この話を聞いたことで、私としてはCookieについて日本にお伝えしていく使命感みたいなものも芽生えました。これは思わぬお土産でした。

    コントリビュートデイに参加した感想は?

    当日に嬉しくてツイートした内容がこちら。

    なぜコントリビュートデイに参加したかったのか?

    QA Analyticsの開発に伴い、WordPressとの関わりが深くなったことで、やはり多くの人がボランティアで関わっていることが肌感覚でわかってきます。

    そうすると、自分だけ何もせずに、使わせてもらってるだけっていうのは、申し訳なく思うのですよね。
    その流れもあり、儲かっていないので小さくて申し訳ないですがスポンサーもやりますし、それだけじゃなくて、何か自分の力で貢献できることがあればすべきだ、という気持ちになります。

    Five for the Future

    WordPressでは、Five for the Futureという取組があります。5%の時間をWordPressの未来ために貢献していこうというコンセプトで、特に縛りがあるものではないですが、宣言をした会社は取組企業としてサイトに掲載され、活動時間とともに紹介されます。

    個人的な感覚としては、何をしたらよいのかよく分かっていなかった中で、やっぱりきっかけはこういうコントリビューターデイに参加するところからだと思いました。

    いろいろ直接お聞きできたことで、自分達ができそうなことや、逆に難しいことがわかって、Five for the Futureがより現実に近づいた気がします。

    翌日のセッションデイのスポンサーと登壇について

    最後に、翌日24日に開催されたセッションディについても。

    ブロンズスポンサー

    こんな感じでチラシを出しました。

    ちなみにブロンズスポンサーのブースにはテーブルがないことに気づいたのは直前でした笑。
    前述のように、とりあえず何かしら貢献しなきゃ(関西だし)という気持ちだったので、そんな感じです。

    スピーカーとして登壇

    こんな内容で発表しました。

    運営堂の森野さんが内容のサマリーと感想を書いてくれていましたので、ご紹介します。

    まとめ

    私の参加レポートとしては、主にコントリビューターデイについてお伝えしました。

    全体を通しての感想としては、委員長の岡本さんがおっしゃっていましたけど、WordCampは「楽しい!」というもの。

    大人になってあの楽しい雰囲気が残っているのは、貴重なイベントだと思うのですよね。

    ビジネスっぽくもなく、かといって新たなご縁も生まれましたし、ビジネス的にもよかったです。

    私がWordPressにより深く関わるようになって感じているのは、私もそうですし、WordPressはいろいろな人の人生に影響を与えているということです。そして、ここまでグローバルで、すごい人もいて、身近で、みんな平等。

    これはたぶん、オープンで、なんか人という存在に対して、懐の深いプロジェクトなんですよね。

    ということで、関西の参加レポートを書き上げたばかりですが、今日から台湾のWordCamp Asiaに出発です。

    ちなみに台湾は本日がコントリデイなのですが、こちらはチケットを入手しておらず。

    参加はセッションデイからになりますが、また、台湾のWordCamp Asiaについてもレポートを書きたいと思います。

  • 感謝!QA アナリティクス アクティブユーザーが2000人を突破しました

    感謝!QA アナリティクス アクティブユーザーが2000人を突破しました

    いつもQAのご愛顧ありがとうございます。
    本日は、皆様へ感謝のお知らせがあります!

    皆様のおかげで、ついに「QA アナリティクス」の全世界のアクティブユーザー数が2000人を突破しました。
    ダウンロード数も25,000に到達しそうです。

    この嬉しい節目に、心からの感謝の意をお伝えしたく、このメッセージをお届けいたします。

    QA アナリティクス1stリリースが2020年の7月ですので、ちょうど3年ちょっとが経ちました。
    皆様のご支援と信頼、そしてフィードバックがなければ、ここまで成長することは絶対にできませんでした。

    WordCamp Tokyoでの気づき

    先週末10月21日、WordCamp Tokyoにブロンズスポンサーとして参加してきました。
    ▼会場の様子はこちら(Twitter/X)

    https://x.com/koji_maruyama/status/1715554740409626677

    そこでQAアナリティクスは「驚かれ」ました。
    多くの人がGA4で困っている(100%でした笑)らしいのですが、このQAをみて「どうせ有料でしょ?」と。

    WordPressの管理画面でプラグインの追加から無料で入れられるとお伝えしたら「神ツールじゃないか」と褒めて頂きました。
    デモを見て、最初から有料プランの入り方を聞いてくださる方も。

    多くのサイト運営者に驚かれ、嬉しかったと共に、まだまだ知られていないので、頑張らないといけないなと思いました。

    これからのこと

    現在、QAチームはQA ZEROというWordPress以外でもQAが利用できるビジネス/エンタープライズ版を作成しています。
    https://qazero.com/

    また11/25にはウェブ解析士協会様のセミナーに登壇いたします。

    【ウェブ解析士会議2023in大阪】よっしゃ、やろか!Transformation! | 一般社団法人ウェブ解析士協会
    https://www.waca.associates/jp/news/81406/

    私のテーマは「AI時代のアクセス解析」です。

    実はWordCampのブースに来てくれたある人が、こんなことをお話してくれました。
    「先ほどLLM(ChatGPTなどのAIエンジン)のセッションがあって、その質疑応答で未来のウェブのデータ・AI活用の話で盛り上がっていた。で、今QAの仕組みを聞いて驚いている。ひょっとしてこのQAアナリティクスが既に答えなんじゃないか?」

    私は「ありがとうございます。」と答えました。
    こちらも頑張りたいと思います。

    2000ユーザーの達成は、大きな励みとなり、私達QAチーム一同、さらなる成長へと情熱を燃やしています。
    「誰でもスーパーなサイト運営者に変身する」を目指すQAとしては、新たな体験を皆様にご提供すべく、開発を継続していきます。
    また皆様からのフィードバックやご提案がとてもありがたく、これからもその声を大切にしていきます。

    次は全世界のアクティブインストール数5000を目指します!

    ぜひもっと多くの方に知ってもらい、使ってもらいたいと思っています。
    引き続き、皆様の力をおかしください。

    それでは感謝の気持ちを込めて、お礼とさせていただきます。
    ありがとうございました。

  • QAアナリティクスのCPU負荷対策について

    QAアナリティクスのCPU負荷対策について

    「QAアナリティクスを入れるとサイトが重くならないですか?」

    よく聞かれる質問です。 直接のご回答は、ホーム画面に表示されている「ページ表示速度」の項目を見てもらうと、皆さんのサーバーでどのくらい時間がかかっているか表示されています。

    ▼右下の「QAのページ表示速度」

    画像のサイトは一般的な月額1000円程度の共用サーバーですが10msec、つまり1000分の10秒であり、重いプラグインと比べると非常に軽い処理となっています。

     QAアナリティクスは、なるべくサーバー負荷が軽くなるように考え下記のポリシーで作っています。

    • リアルタイム処理ではなるべくCPUの負荷を下げる
    • 重たい集計処理は夜間に実行する。

    とはいえ、WordPressのプラグインでCPUの負荷を下げるのは簡単ではなく、少しずつ改善を試みて今に至ります。 今日は、そんなQAアナリティクスが実装する「CPU負荷の下げ方」についてご説明します。 

    ※プラグイン重くなる原因は一つだけではなく、CPU外にもデータベースの使い方がまずいなどが挙げられますが、今日は特にCPUに絞ってお伝えします。

    そもそも、なぜアクセス解析系のプラグインは重くなりがちなのか?

    QAの工夫をお伝えする前に、あまり知られていない、ちょっとした前提知識を共有させてください。

    WordPressでは、admin-ajaxという2006年から存在するajax通信の仕組みが存在しており、現在数多くのプラグインやテーマが利用しています。

    そしてビーコン型のアクセス解析プラグインの場合も、解析タグが稼働するとサーバーとajax通信を行い、アクセスデータを記録する仕組みになりますので、通常はadmin-ajaxが利用されます。

    そして、それが重い原因となっていきます。

    プラグインが重たくなるadmin-ajaxとは?

    admin-ajaxがひとたび稼働すると、利用しているすべての処理が起動されます。したがってアクセス解析のプラグインでこれを使うと、アクセスを記録する度にadmin-ajaxが起動し、関係ない処理も全部起動します。イメージでいうと、アクセスがある度にWindowsの再起動をしているようなものです。1分間に100ページビューがあれば100回の再起動。そりゃ時間もかかるし、重そうですよね。

    本来アクセス解析プラグインを作る側としては、自分が稼働するだけならなるべく無駄な処理は行わないようにしサーバー負荷を軽くしたいと考えますが、admin-ajaxを使うと、それは不可能です。したがって、アクセス数が多くなってくると、どんどんCPU負荷があがってしまいます。

    QAアナリティクスのCPU負荷を下げる仕組み

    CPU負荷を下げるにはWordPress標準のadmin-ajaxを使わずかつWordPressのルールに従ってajax処理を行わなければなりません。なぜならWordPress公式ディレクトリに公開するプラグインにおいて独自処理は許されていないからです。実際、QAアナリティクスのリリース初期はこの問題でずっと悩んでいました。しかしそれから3年の経験を経て、現在のQAアナリティクスでは下記2つの対策が行われています。

    1. WordPressのルールに従い最小構成でWordPressを起動することでCPU負荷を下げている 
    2. 高負荷時にはブラウザ側でキュー処理をする

    以下ご説明します。

    1.WordPressのルールに従い最小構成でWordPressを起動することでCPU負荷を下げている

    WordPressの起動にはSHORTINITモードという、Windowsのセーフモードのような起動モードがあり、そのモードで起動することでCPU負荷を下げることができます。

    QAアナリティクスはこのSHORTINITを活用することでCPU負荷を下げ、快適にサーバーを使えるようにしています。

    ちなみに、このSHORINITについて、WordPressの書籍も出されている野村圭さんやAutomattic社にスポンサーされてWordPressに携わっているBenさんやJonathanさんに聞いてみました。

    「日本にはほとんど情報がないよね」という見解で一致ですが、Pluginで利用するのは問題ないという見解を頂いています。またJonathanさんも過去に在籍したDelicious Brains でadmin-ajaxの負荷で困ってベンチマークをしたことがあるらしく、こんな記事を共有してくれました。ダークホースとしてmust-useを使う方法があるみたいです。

    ▼WP REST API vs admin-ajax.php vs Must-Use Plugin: Handling AJAX Requests in WordPress

    https://deliciousbrains.com/comparing-wordpress-rest-api-performance-admin-ajax-php/

    あとSHORTINITは注意点もあって、WordPress本体のバージョンに左右されるため検証が必須です。このあたりをコントロールしやすいプロダクトをWordPress界隈で有名なJJJさんが作成しているみたいです。

    https://github.com/JJJ/chelsea

    もしadmin-ajaxで困っている方がいれば参考にされてください。

    ※情報提供を頂いたみなさん、ありがとうございました。

    2.高負荷時にはブラウザ側でキュー処理をする

    QAアナリティクスではなるべく正確なデータを記録するため、最初にアクセス情報(ページビュー)を記録した後、Defaultでは3秒毎にページ位置やマウスクリックなどのイベントデータをサーバーに送信しています。 

    しかしサーバー負荷があがったことを検知した場合、ブラウザは3秒ごとの送信を停止し、データを自分自身に貯めます。そして再度3秒ごとのチェックでサーバー負荷が下がったことを検知するか、ページ遷移やフォームへの入力など特定のタグがクリックされた時のみ、貯めていたイベントデータを送信します。これをキュー処理といいます。

    このキュー処理により、ページ遷移したりコンバージョンするような重要なユーザーのデータを記録しながらも、サーバーへの通信頻度を減らし、サーバーの安定稼働を優先することができます。

    QAアナリティクスでは、不要かも知れないデータをとるためだけにお客様のサイト表示速度が遅くなるのは本末転倒だと考えています。従って高負荷時においては、アクセス情報(ページビュー)は確実に記録するようにし、残りのイベント計測は、より将来の分析に役立つユーザーの行動データ取得を優先しながら稼働します。

    実際どのくらい負荷が下がったの?

    弊社の検証環境において行った調査の結果を共有します。初期バージョンと比べ、速度は10倍、メモリの使用量は6分の1程度になっています。

    応答速度が10倍になったことからCPU負荷についても10分の1程度になっていると想定されます。実際負荷テストを行った結果において、1CPU(1core)での処理数において、admin-ajaxでは秒間20セッション程度でしたが、SHORTINITバージョンでは200セッションでも余裕がありました。CPUはレンタルサーバーによってまちまちなので一概にはいえませんが、負荷は10分の1になったといえます。

    なお、CPU以外にもQAではDBを使用しないなど様々な負荷対策を行っています。詳しく知りたい方はこちらの記事もご覧ください。

    (余談)WordPressを使っているけど、Google Page Speed Insightsで見てもサーバーは遅くないよ?

    これは各レンタルサーバー会社の涙ぐましい努力のおかげです。サーバースペックの表をみると、毎月1000円程度でもCPUが6コア保証など、かなり贅沢なサーバー構成になっていることがわかると思います。

    つまりWordPressでプラグインや複雑な処理をたくさん入れることで、実はCPU負荷はあがっているのですが、それでも十分動くようなハイスペックなサーバーが裏で用意されているのです。

     「このままCPU負荷があがるなら、いつかサーバー料金の値上げをしなきゃいけないかも。。。」 

    あるレンタルサーバー会社の人と話した時の本音です。 もし他国で同様のサーバーを借りたら、毎月5,000円程度はくだらないそうです。感謝ですね。

  • 2023年アクセス解析ツール業界の展望

    2023年アクセス解析ツール業界の展望

    新年おめでとうございます。QA代表の丸山です。

    ユニバーサルアナリティクスが停止する今年7月まで、いよいよ半年を切りました。

    2023年はアクセス解析ツールの分岐点

    2023年のアクセス解析業界のビッグイベントは、間違いなくユニバーサルアナリティクスの停止だと思います。 しかし、じゃぁ停止するからGA4を入れようと素直に考える前に、これはせっかくのチャンスと捉えてもらう方がきっと実りが多いです。そこで今日は、新年一発目の記事として、私が感じているこれから数年のアクセス解析ツールのトレンドをお伝えします。

    ※GA停止する前にデータをバックアップしたい方へ

    ユニバーサルアナリティクスのデータをバックアップし、QAアナリティクスのビューワーで見れるGoogle Analytics Data Backup by QAを作成しました。詳しくはこちら。

    https://ga-backup.com/

    アクセス解析ツールの本来の役割

    本来のアクセス解析ツールの役割について聞かれたら、おそらく多くの人がユーザー行動を分析し、サイト改善のヒントを得ることと答えるのではないでしょうか。

    それを表すかのように現在、海外ではセッションレコーディングやヒートマップなど、行動を可視化するツールの市場が拡がっています。 それらツールは、2022年12月のBusiness Research Insightsのレポートでは2027年まで年間25.89%で伸びると予測されています。

    ▼Recording and Session Replay Tools Market Size, Share, Growth, And Industry Analysis By Type (Cloud Based, On-Premise) By Application (SMEs, Large Enterprises) Regional Forecast to 2028
    https://www.businessresearchinsights.com/market-reports/recording-and-session-replay-tools-market-102462

    しかし、それも長期のトレンドでいえば小さな動きで。 私は今後5〜10年ほどで、アクセス解析ツールのメインテーマは、下記3点に集約されていくと予測しています。

    1. マーケッターがどのようにツールからヒントを得るか?(ビジュアライズ)
    2. ツールが自動でどのようなサービスを提供するか?(AI)
    3. プライバシーとパーソナライズの問題

    2022年はAI元年だった

    ことの発端は、昨年世の中を騒がせたAIです。

    ▼ChatGPT使い方総まとめ
    https://qiita.com/sakasegawa/items/82069c97a1ee011c2d1e

    ▼画像生成AI「Stable Diffusion」でイラストの要素を読み取ってオリジナルの要素を引き継いだイラストをサクッと生成可能にする「Tagger for Automatic1111’s Web UI」の使い方まとめ
    https://gigazine.net/news/20221122-stable-diffusion-tagger/

    どちらもAIの生成する「コンテンツ」が人間と遜色なくなっています。 このブログの下記アイキャッチ画像もAIに作ってもらいました。

    AI生成画像

    まだまだな所もありますが、メディアアーティストの落合陽一氏の予測では、2025年には人間を超えて高精度なコンテンツを生成しまくるAIが誕生するそうです。

    これは、近々ウェブコンテンツの一部分がAIにより補完可能であることを示しています。 そしてご存知の通りAIの精度を支えるのは「データ」です。

    巨人の思惑

    Googleの狙い

    Googleも当然AIに対して投資をしています。 主要な投資分野の一つは「パーソナライズの精度アップによる広告の自動化」です。

    そもそも今回、ユニバーサルアナリティクスが急に停止しGA4にとって代わるのは、投資対効果の改善と考えるのが自然です。 無料で大量のデータを保存し、集計する必要があり、かつAIに対するデータ提供ができないユニバーサルアナリティクスは、今やGoogleにとってお荷物です。

    そこで、まずGoogleとしてはAIの広告精度アップに役立つデータを取得できるGA4に変化をさせたい。 そうなると、ある程度アクセス数があり広告を出してくれるサイトが優先の設計になります。(規模がないと自動推測が難しいため) 

    GA4は広告ツールだと言われるのはそこで、もはやGoogleが弱小サイトのために無料の分析ツールを出す意味がありません。 なのでレポート系は後回しで、データ設計が先に進んでいます。が、思ったよりクレームが多いので分析機能の対応も急いでいるという印象を受けます。

    あとはGoogleもクラウドの利用者を増やしたいと考えているので、GA4を入口に分析プラットフォームとして発展させたい意図は感じます。しかしどうしても彼らのツールはエンジニア向きで敷居が高いので、そこが悩みになりそうです。

    マイクロソフトの狙い

    マイクロソフトはClarityというヒートマップツールを出してきました。 こちらは元からGoogleアナリティクスと競合せずに市場の隙間を縫うプロダクトとして設計されているはずで、ユニバーサルアナリティクスの停止は想定外だったと思います。ということで元々の狙いはGoogleとは若干異なると想定していますが、やはりAIが絡んでいます。

    彼らの狙いはMicrosoft Azureのパワーアップです。 例えば、ユーザーの行動パターンから、彼らの顧客管理アプリケーションに応用したり、ウェブサイトのコンテンツを動的に変化させるサービスなどが該当するでしょう。 これはAppierなど既存のAI企業が提供している機能によく似ています。

    人の行動パターンにはある程度規則性があることがわかっており、その直近の動作を見ることで、その次の動作を予測することが可能です。 従って、彼らが欲しいのはヒートマップではなく、たとえば、人がフォームを入力する時の行動データです。 ですからヒートマップを提供する代わりにそのデータを頂戴ね、ということになりますし、実際にサイトにもそのように書いています。

    ▼Clarity。永久に無料です(中程に無料の理由を書いてます)
    https://clarity.microsoft.com/pricing

    ということで無料提供はずっと続くと思いますが、もし彼らのサービスに今後変化があるとすると、彼らは直近のデータしか不要なため、おそらくデータ保存期間や集計期間を下げる可能性はありえると思います。

    巨人の盲点

    私は巨人の盲点は2つあると考えています。

    1つは分析ツールを作りたいわけではないこと。 もう1つはスモールビジネスの人間の能力を甘く見ていることです。

    どちらも彼らのビジネス上は正しい判断だと思われますが、これにより困る人達が出てきます。 QAはその人達向けに役立つサービスを作りたいと考えていますし、それにより、冒頭であげた3点をクリアできると考えています。

    1. マーケッターがどのようにツールからヒントを得るか?(ビジュアライズ)
    2. ツールが自動でどのようなサービスを提供するか?(AI)
    3. プライバシーとパーソナライズの問題

    QAアナリティクスは、セッションとイベントのデータをとりあえず全録し、自社にデータを貯めます。 そして、それを上記3つの観点で活用できるように発展させる予定です。QAアナリティクスが開発当初から「自立分散型行動データ分析プラットフォーム」と名乗っているのは、これらの動きを見据えてのもので、その関連特許(P7011367)も取得しています。

    2023年はアクセス解析ツールが面白い

    今年はGAの停止に伴い、ウェブ担当者としてどのツールを選ぶ、もしくは併用するかが問われる年になると思います。

    この時、アクセス解析ツールを今までのGAみたいなものと捉えれば深く考えずに済むのですが、お伝えしたようにサイト内のデータを取得し、様々なことができるツールだと捉えるとまた見え方がかわってくると思います。

    とどのつまり、AIもデータの上に形成されるものであり、データがこれから様々なサービスを生み出していきます。

    ツールに振り回されず、イニシアチブをとる

    昨年末のISMのLTにて、「サイトの質を上げる!ツールに振り回されない分析のポイント」としてお話をしたのですが、こんな反応を頂きました。

     ▼ISM LT 祭り 2022 開催レポート

    • 脳死でGA使ってたので、新しい視点でした。 
    • これは素晴らしい!!ユーザー行動の定義に悩んでいるのだが、そのヒントが満載でした。 
    • 「全録」「イニシアチブなかったんじゃない。ツール使わされてる」←記憶に残ったワードです。

    去年はAI元年でしたが、今年はそのベースとなるデータを取得するアクセス解析ツール元年だと思っています。 

    ここで紹介した以外にも様々なツールが出ていますので、ぜひ今年はツールにイニシアチブをもって少し調べてもらうと、アクセス解析の新しい面も見えてきて楽しんでもらえるのではないかと思います。

    どれ選んだらよい?

    ツール調査や比較がめんどくさい場合は、まずGA4は広告ツールなので入れて設定してもらって、あとはこれ宣伝ですけど、うちのQAアナリティクスを選んで頂ければ損はさせません。

    その割とまじめな理由を下記に列挙しておきます。

    • クラウドでなく自社に大切なデータが溜まる。急なデータ削除やベンダーロックの心配がない
    • 設定不要で全データを取得する全録ツールは世界でも数個しかなく、かつ無料から使えるのはQAだけ
    • 有料版が「安っ!」と驚かれるくらい安い(実話)
    • 自動でバージョンアップしていく。追加費用なし
    • 日本人が作っているのでサポートが日本語でちゃんと返ってくる
    • すごく使いやすいと評判
    • 自社でインフラを選べばよく無駄なコストがかからず大規模にも対応できる
    • 大規模もスモールサイトも想定した特許を取得している(P7011367)
    • ベースがオープンソースであり、カスタマイズも可能
    • IPを含む個人情報を保存しないためプライバシーリスクが低い
    • WordPress以外のサイトにも対応する(2023/6/16追記:対応しました!)
      https://qazero.com/

    嘘でしょ?というくらいメリットが多いのですけど、私はもともとマーケティングのコンサルタントでもあるため、自分達が使いやすいツールを作っています。問題点があるとすれば、小さなベンチャー企業がずっと改善を続けているのでしばしばUIにバグが出ることですが、そのあたりは他のツールも頻度の差こそあれ一緒かなと思っています。

    あと大切なこととして、私は日本がITで世界に負けているのが悔しく、なんとか日本から世界に通じるソフトを生み出したいと思っています。ぜひお使いいただき、フィードバックを頂ければ嬉しいです。2023年は一緒に日本から世界に勝負しましょう。

  • QA Heatmap Analyticsの負荷対策やプラグインの競合について

    QA Heatmap Analyticsの負荷対策やプラグインの競合について

    開発の丸山です。
    こんにちは。

    今日は多くの人が気にされる

    1. データ容量大丈夫?
    2. プラグインの競合は?
    3. プラグインは重い?サイトの表示速度は遅くならない?

    の3つに対し、QA ヒートマップアナリティクスがとっている対策についてお話しします。

    1.データ容量について

    GDPRなどプライバシー保護の問題から、GoogleアナリティクスやMS Clarityなどの外部サービスにアクセス解析データをためることが難しくなってきています。事実iPhoneなどのアップル製品では、ITPと呼ばれる仕組みでGoogleアナリティクスでのユーザー追跡をブロックしてしまいます。

    https://webtan-tsushin.com/itp-idfa-google-analytics

    上記の事情から、QAはデータオーナーシップを大切にしています。データは自社のものとして、皆さんのWordPressサーバーにファーストパーティデータを保存し、我々が閲覧することは不可能にしています。

    しかしその事により、レンタルサーバーのデータ容量は大丈夫なの?と不安になる方もいらっしゃると思います。

    これに対する直接のご回答は、今後のバージョンアップで、使用しているディスク容量について表示する予定です。ですので、より安心して使って頂けると思います。

    ただ基本イメージとしてもって頂きたいのは、QAを使うことで問題は発生しないということです。なぜなら、QAは多くの人が利用する無料プランについて「絶対に問題が発生しないデータ容量にする」という考え方をしています。

    具体的には、無料プランでは、アクセス数データは全ページ取得しますが、容量の大きいヒートマップや録画再生データについては初期1ページのみ取得できるようにし、保存期間も2ヶ月間にしています。

    これにより、月間数十万PVがあるサイトでも、QAのデータ容量は最大で数百メガバイト程度になり、一般的なレンタルサーバーでも50GB以上のデータ容量があることから安心して使って頂けるようにしています。

    ということで、データ容量については安心して頂ければと思います。
    有料プランはどうなるの?といったより詳しいことは、下記をご覧ください。

    データ容量について(詳細)

    前提:共用レンタルサーバーには2つの上限(ディスク容量とDB容量)がある

    意識はされている方は少ないと思いますが、ほぼ全ての共用レンタルサーバーにはディスク容量とは別に、DB容量の上限があります。
    一般的にディスク容量の上限は数十GBから数百GBと大容量なのに対し、DB容量は1GBが上限、下手をすると500MBなどすごく少ないです。

    万が一データ容量が溢れると何が発生するか?というのは各レンタルサーバーによって違いますが、多くの場合、「データが多すぎるので消してくれ」と警告が出ます。ただし、DBが上限を超えた場合、厳しい会社では警告と同時にサーバーが強制停止します。

    したがって、QAの第一優先事項は「データ容量(特にDB)を絶対に溢れさせない」ということになっています。
    ※厳密にはファイル数も上限があるのですが、複雑になってくるためここでは触れません。考慮済みであることだけお伝えしておきます。

    QAのデータ容量に対する設計ポリシー

    前述の事情から、QAはデータをDBとディスク(ファイル)に巧みに使い分けながら稼働します。
    具体的には、DBに保存する容量を少なくし、ディスク(ファイル)に保存する期間を長くしています。このことにより、データ容量の節約と有効活用、およびサーバーのスピードアップの一石二鳥を実現しています。

    どんなデータを保存しているのか?

    具体的には、QA ヒートアップアナリティクスは、MS クラリティ+Google アナリティクスの二つの膨大なデータを保持しているイメージに近いです。二つを保持するのでQA “Heatmap”+ “Analytics”といいます。

    このうち、圧倒的にデータ容量が大きくなるのはHeatmapの方のデータです。そこで、なるべくHeatmapの方のデータを削減する工夫が求められます。

    実はQAプラグインを導入する方で、一番多い目的は「今、何人の人が来ているか?」「1ヶ月で何人訪れたのか?」「サイトをどのように閲覧しているのか?」を手軽に知りたいというものです。これはGoogleアナリティクスと同じです。

    そこで、私たちは、無料でお使いの方にはより使いやすいGoogleアナリティクスのような機能と、ヒートマップの一部機能を提供することにしました。一方、有料でお使いのプロレベルの方には、ヒートマップも全ページ取得できるようにして有料レベルのサポートサービスをつける、ということを行っています。

    これが、QAが無料でもGAのようなレポートは出るけど、ヒートマップ計測が1ページだけになっている理由です。このことで容量を削減できるので、無料でお使い頂いている分には、サーバーのことは何も心配せず運用できるようにしています。

    一方、よりビジネスユースや、プロの方は過去データも含め多くのデータが必要になって来ます。しかし、ビジネス畑の方全員がサーバーに詳しいわけではないので、全ページのデータをレンタルサーバーに保存することが不安な方もいらっしゃると思います。そこで有料プランの人には、サーバー環境事前調査など、よりきめ細やかなサポートサービスも用意しています。

    このことにより、プロの方はよりブログ読者様も喜ぶコンテンツ作成ができるようになり、かつサポートが付きますので安心してQAをお使い頂くことができます。

    そして有料プランをお使い頂くことにより、我々QAチームは開発原資を得ることができますので、どんどんバージョンアップもできます。これは三方よしのアイディアだと思っております。

    2.プラグインの競合について

    よく「あるプラグインを入れたら、別のプラグインが動かなくなった」という話を聞かれると思います。この現象は一般的にプラグインの競合と言われています。

    QA ヒートマップアナリティクスは、なるべく競合が発生しないように作成していますが、それでも以下のプラグインと同時に使う場合には問題が発生する場合があります。

    1.表示速度UPのためのキャッシュ系のプラグイン(WP Fastest Cacheなど)
    2.全ファイルをチェックするセキュリティやバックアップ系のプラグイン

    上記それぞれの原因と対策について詳しくはFAQに掲載していますのでご覧ください。

    プラグイン競合の根本原因とQAがとっている対策

    そもそも「なぜプラグインの競合が現象が発生するのか?」、また「既存プラグインや既存テンプレートと、高精度かつ膨大なデータをもつQAの相性が悪いことがあるのか?」というと、主には3つの原因があります。

    1. WordPressの共通の関数(フックやフィルターと言います)を様々なプラグインが使い回すため
    2. JavaScriptやCSSなどのネーミング被りや、勝手にJavaScriptやCSSを書き換えてしまうプラグインがあるため
    3. QAほど高精度でデータを保存するプラグインは今迄存在せず、多くのプラグイン制作者の想像を超えているため

    この中で、1の共通関数については、なるべくQAでは使用しないことで競合を避けています。したがって、QAを入れた時に問題となるのは主に2と3です。

    2については、まずQA側では必ず他と被らない名前をつけるようにしています。しかし、例えばJavaScriptを圧縮し勝手に書き換えてしまうようなキャッシュ系のプラグインについてはQA側では対策の打ちようがありません。従って、この対策は、キャッシュ系(書き換える側)のプラグインの設定を変更して頂く必要があります。

    3については、多くのプラグイン製作者の想像外ということが問題になるケースがあります。特に下記2つのプラグインに気をつけてもらいたいです。

    • バックアップ系プラグイン
    • セキュリティ系プラグイン

    たとえばバックアップで有名なUpDraftプラグインなどは、バックアップする容量に10MBという制限が設けてあります。従ってアクセスが多いサイトでQAを使った場合には容量がその制限を超えてしまうことがあります。

    このように、QA側ではなく、既存のプラグインやテンプレート作成者の想定外が発生し動かなくなることがあります。主な対策はこちらの記事をご覧ください。

    3.プラグインは重い?サイトの表示速度は遅くならない?

    最後にプラグインが重いかどうかですが、QAプラグインはとても軽く作っています。
    実際にP3という、プラグインの重さを診断するプラグインがありますが、そちらを利用して頂いてもQAは表示されません。

    ※参考記事

    https://mem.quarka.org/manual/page-speed-impact/

    そもそも、プラグインが重いとは、具体的には下記を指します。

    1. プラグインのせいでサイトの表示速度が遅くなる(SEOやブログ閲覧者にとって大問題)
    2. WordPressの管理画面を操作した時に、表示が遅い(サイト表示には問題なし。多くは管理者のパソコンの問題)
    3. データ容量が大きすぎて、なんか不安(サーバーが止まることがあるので大問題)

    上記のうち、一般的には1番を「プラグインが重い」と表現します。
    前述したP3という診断プラグインは、このサイトの表示速度に影響を与えるプラグインを特定します。そのP3でQAが出てこないのは、サイトの表示速度に影響を与えないようにQAを設計しているためです。

    具体的には、どれだけ多くのユーザーがアクセスしてきても、QAはデータベースへのアクセスを行いません。またアクセスの記録も3秒毎に行うことで、サーバーへのリクエスト数を少なくしています。

    また夜間の集計処理の時にはデータベースにアクセスしますが、そちらもバルクインサートという一括処理を使うことで負荷を極力減らしていますし、万が一夜間集計処理に時間がたくさんかかってQA側の不具合が出たとしても、サーバーの閲覧速度には影響が出ないようにしています。

    1点だけ、AWSやGCPなど「専用サーバーでWordPressを構築されている」場合は、気をつけて頂きたいです。その理由は、毎月の費用を抑えるためCPUやメモリなどサーバースペックをギリギリにされていたり、実はサーバーセッティングに不備がある場合があるからです。詳しいことはサポートサイトのインストール時の注意点をご覧ください。

    総じて、普通のセキュリティプラグインなどと同等レベルの負荷しかしないので「QAはサイトの表示速度には関係ない」「QAは軽い」と思って頂ければと思います。

    しかし、なんとなくQAが重いのでは?と心配になる人もいらっしゃると思います。
    そこで2番、および3番についてご説明します。

    2番のWordPressでQAのデータを閲覧した時に、表示が遅いことがあるので心配になる方も多いと思います。
    実はQAは、管理画面においてもサーバーに負荷をかけずに、なるべく皆さんのパソコン側に負荷をかけるように設計しています。
    具体的には、データを皆さんのパソコンに一旦ダウンロードしてから、集計処理などはみなさんのパソコンでほとんど行うようにしています。

    ですので、データ表示に時間がかかっていたとしても、それは皆さんのパソコン側の処理に時間がかかっているだけで、サーバー側には一切負荷がかかっていないのです。仮にQAの管理画面でぐるぐるマークで止まったとしても、ブログ閲覧ユーザーはその間も快適にサイトを閲覧できています。ご安心ください。

    最後の3番については、この記事の冒頭「データ容量について」でご説明した通り、絶対にサーバーに問題が発生しないように設計しています。
    ですので、データ容量の問題も発生しません。

    まとめ

    今回の記事では、QAプラグインの負荷や重さについてご説明してきました。
    まとめると「QAプラグインは軽く設計しているので、安心してご利用ください」ということになります。

    QAはグーグルアナリティクスなどと違い、面倒なタグの設定などをせずともインストールするだけで必要なデータ収集を行います。

    ぜひ安心してQAをサイト改善のお供として役立てて頂ければ嬉しいです。

  • サイト分析をゲームのように楽しく!QAがバージョン2.0になりました。

    先日8月17日、QAヒートマップアナリティクスがメジャーアップデートし、Version2.0になりました。

    メニューとして大きく変わったのは、「ホーム」が新設されたこと。
    旧新相対は以下の通りです。
    ・リアルタイムビュー    ⇒ ホーム『リアルタイム』
    ・サイト統計情報(グラフ) ⇒ ホーム『全体推移』
    ・サイト統計情報(PV一覧) ⇒ ホーム『見たいデータを探す』(セッション一覧として)

    使い方について詳しくは、サポートサイトに記載しています。
    ▼ホーム
    https://mem.quarka.org/manual/adminpage-home/

    この記事では、今回の更新内容がなぜメジャーアップデートなのか?などをご説明し、このブログのタイトル「ゲームのように楽しく!」に込めた思いなどをお話したいと思います。

    なぜ今回の更新内容がメジャーアップデートなのか?

    今回はversion1.0と決定的に違う箇所があります。
    それは、QAが本質的に「現行GA+MS Clarityというダブルデータ」を保持しているツールだから実現した機能が入っているということです。
    具体的には、下記の2つができるようになりました。

    1.utmパラメーター付きの全PV一覧をcsvダウンロードできる

    「全体推移」というホームに新設されたタブメニューでできるようにしています。

    ピンと来る人には説明不要だと思いますが、これはGAのユーザーエクスプローラーのデータを全て一括ダウンロードできるイメージですね。広告運用とかでやりたかった人が多いと思いますし、私も欲しかった機能です。

    2.「目標達成したセッションのみ」を抽出して、そのヒートマップと再生ができる

    「ヒートマップを探す」というホームに新設されたタブメニューでできるようにしています。

    ・「目標達成した人(任意のページを見た人)のセッション抽出」(GA)
    ・「ページ内部をどのように閲覧したのだろう?(ヒートマップ+セッション再生)」(Clarity)

    のダブルデータを保持しているからできる機能です。

    他のツールにはない「便利」のはじまり。だから2.0

    ずっとこういった機能を作りたく、初期の設計思想から入っていました。
    これを一般的なレンタルサーバーでも、容量や速度など気にせず安心して使ってもらうため、今まで頑張ってきたという感じです。イメージというと、ver1.0とver2.0の違いは下記です。

    1.0・・・GA+Clarityという膨大なダブルデータを取得するバックヤード部分の構築
    2.0・・・そのデータをもとに分析ツールとして新体験を増やしていく。楽しい部分。

    今まで使いやすいと評判を頂いているQAですが、実はバックヤード部分の構築が多かったです。
    これからは、画面周りの機能が増えていきます。だからver2.0になりました。
    (高速化とデータ量のために、QA独自のlow-layerのDBを作ったので、まだバックヤード部分は継続してやっていく必要があるのですけどね)

    新しいイメージは、動画でもご説明しています。

    サイト分析ツールの課題

    今までもしばしば書いていますけど、多くのサイト分析ツールには下記の課題があると思っています。

    • 直感的に使えない
    • 今一歩、欲しいデータが見れない(落とせない)
    • ユーザーの行動の細部がわからない(インサイトに辿りつきづらい)

    これを解決するために作っているのがQAです。

    操作感へのこだわり

    QAって機能が少ないので、機能を単純比較すると全負けするのすけど(苦笑)、これにも少し理由があります。

    たとえば今回は「サイト統計情報」というメニューを削除し、ホームに機能を集中させています。これも機能拡充の面でいったらマイナスです。マーケティング的にもよくないでしょう。

    でも、ユーザーインタビューを行っていく中で、サイト統計情報を使っていなかった人が多かったんですよね。中には気づいていない人も(汗)

    そこで、このメニュー自体が混乱を生んでいると考え、仮説とモックによるユーザーテストを繰り返しながら「直感的に操作できる/意味がわかる」メニューに変更したのです。

    そのため機能は減っているのですが、自然に、新しい機能を使ってもらえるのではないかと思います。

    サイト分析をゲームのように楽しく!

    先ほど、サイト分析ツールの課題と書きましたが、端的にいうと

    • タグ設置とか、サーバーサイドとかいろいろめんどくさい!
    • なんかいちいち時間もかかる!
    • 分析業務への負担が重い!

    私達としてはQAを使ってもらうだけで

    • とりあえずプラグイン入れておくだけで
    • なんかツールがいろいろ裏でやってくれていて
    • やりたかった分析が高速かつ直感的にできる

    としたいと思っています。
    目指したいのは、ゲームのような操作感です。初心者のみならず、プロこそ「時間」が大切だと思っていますので。

    ver2.0になったことで「これすごい!」という新しい体験を作っていけると思いますので、ぜひ期待してもらえたらと思います。

    追伸:

    9/17まで新規インストールキャンペーンを行っています。
    https://quarka.org/oishii-kobe-campaign/

    無料のQAプラグインを入れるだけで、全員に3万円相当のプレゼント。
    さらに抽選で「神戸の美味しいもの」があたるというお得なキャンペーンです。
    応募方法も簡単。こんな感じです。

    csv一括ダウンロードは無料でも使えますし、とりあえずプラグインを入れておいてもらえばデータ溜まりますのでお勧めです。もし役立ちそうな案件やお友達がいれば、ぜひこの機会にインストールお願いします!

  • QAは2月12日に一周年を迎えます

    QAは2月12日に一周年を迎えます

    QA Heatmapがβ版として本サイト内で産声をあげた2020年2月12日。

    それからコロナの本格化など、予想もしていなかった形で世界が大変になり、急速なオンライン化が進む中、せっせとチームで開発し、名前のお尻にAnalyticsがついてWP公式プラグインとして正式にリリースできたのが昨年8月27日。

    それからも平均1.5週間に一回のペースで改善を重ねたQA Heatmap Analytics(日本名:QA ヒートマップアナリティクス)は、今週末2月12日(金)に一歳の誕生日を迎えます。

    おかげさまで最近はブログ記事などでも少しずつ紹介していただけるようになりました。QA利用者からは「使いやすさに驚いた!」といったご意見をいただく事が多いです。

    しかし逆に「有益すぎてライバルが増えそうなのであまり教えたくない!」という声もちらほら聞こえてきていまして(汗)、むしろ知る人ぞ知るという感じになっています。

    お友達に紹介してもらえたらスタッフ一同泣いて喜びます

    今回の1周年を記念して、今日からお友達にQAをご紹介をして頂くと、無制限で計測ページ数が増えるようになりました。

    これで無料で十分使えるツールになりましたし、本当に多くの方にプラグインを入れるだけで、手軽に行動分析の面白さを味わって頂きたいと思っています。

    改めてQAを試して頂き、もし気に入って頂けた方は、お友達紹介プログラムを活用してブログやTwitter、 Facebookなどでご紹介頂けると嬉しいです。

    正直、今は少ないですけど^^;ブログやTwitterで紹介されるとチームは盛り上がったりして、やはり開発のモチベーションになっています。

    それに多くの方に使って頂くほど、バグをはやく潰せたり、開発のスピードを早めて、新機能を予定より早くお届けすることができます。

    無料だからといって今年も手を抜くことなく、より多くの方に知って、使って頂く一年にしたいので、より良いツール開発のためにも、ぜひご協力頂けたら嬉しいです。

    QA 1周年記念ありがとうWキャンペーン

    ※有料との違いについて

    ちなみに有料との違いについて気にされる方もいらっしゃると思いますが、無料で十分に使えるようにしたのですが、有料はビジネスユーザーのためのツールといいますか、圧倒的に時間が節約できるように設計しています。当然、我々自身も有料ライセンスを自分達で使ってそのメリットを享受しています。

    そのあたりのポリシーなどはFAQに記載していますので、興味のある方はご覧ください。

    現QA Heatmap Analyticsの5つの特徴

    1.お友達紹介で計測ページ数の無限アップ

    多くのヒートマッププラグインは計測ページが1ページだけのことが多いですが、QAは、お友達紹介プログラムを活用して頂くと、ご本人とお友達のお二人にお友達ライセンスが届きます。

    このライセンスにより計測ページ数が増えるのですが、本日リリースしたバージョンから、ご紹介があるたびに、ご紹介者の計測ページ数が勝手にどんどん無限に増えるようになりました。

    これにより、例えばブログやSNSなどで一度ご紹介しておいて頂ければ、勝手に計測ページ数が無限に増えていきます(その都度メールで通知が行きます)。もちろん先ほどお伝えしたように、そこから申込んだ人にもライセンスが届きますので、閲覧者にもメリットがあります。

    これで、ほぼ無料でかなりのことができるようになると思います。

    2/12からのキャンペーンでも、お友達紹介プログラムの参加者は自動エントリーされてお得なので、QAをご紹介くださる方はぜひご利用ください。

    2.録画再生機能

    ブログなどでQAをご紹介頂く時に、すごくフィーチャーして頂ける機能です。ユーザーが閲覧した行動をその場で録画し、すぐに再生することができます。

    自分たち調査ですが、現時点で、QAは世界中もっとも正確にリアルタイムで全ページの録画データを記録する無料ソフトなので、例えば広告キャンペーンを開始した当日に「この広告LPの反応どうかな?」などを見る場合に便利だと思います。

    こちらもプラグインインストールをするだけで、リアルタイムですぐに計測が始まるので(今から入れれば30分後には見れます)、まだの方はぜひ体験して頂きたいな、と思います。

    なお、察しの良い方はお分かりだと思いますが、QAは旧GAと同じデータを持っていて、さらにこのような録画(イベント)データを同時に記録しています。つまり旧GAと新GAの計測を自動で同時にやっているようなもので、この二つが融合することによって実現できるQAならではの機能を今後お見せ出来ると思います。

    3.サイト統計情報

    サイト統計情報

    2/12にリリース予定の新機能です。

    上記画像を見てもらったらおわかりの通り、Googleアナリティクスのような画面なのですが、Excelのフィルタのようにデータを簡単に絞り込んでグラフを確認できます。日付時刻も出ますしユーザーも絞り込めますので「この日に申し込んだ人はどのページから来たの?」もすぐにわかります

    実はQAはプラグインインストール直後から自動で全ページビューのデータを記録しています(無料版で全ページ取得していています)。GA4ではなく、旧Googleアナリティクスと同じです。細かいですがutmパラメータにも対応しています。

    「実は」というのは、今まで表示画面がなかったので、おそらくDBを見た人以外、誰も気づかなかったと思うからです。

    今までプラグインを入れていた方は、データが溜まっているので、すぐに使い始めることができます。ぜひ2/12にアップデートしてお試しください。弊社内でもすごく好評の機能です。

    余談ですが、QAは根幹のデータを早めに溜めておいて、表示画面はユーザーテストに時間をかけてからリリースすることが多いので、今すぐ使う予定がない人も、とりあえずプラグインだけ入れておいて頂くとデータが溜まるのでいいかな、と思います。

    4.投稿、固定、カスタム投稿一覧に各ページのアクセス解析を表示

    わざわざQA Heatmap Analyticsの画面にアクセスしなくても、普通にワードプレスの投稿画面から各ページの状況が一目でわかるようにしました。

    これにより、記事のリライトをする時や、最近書いた記事のアクセスに自然に気づけるようになりました。記事って書いた後、ほったらかしになりやすいですからね。。

    5.データの改善

    最後は画面がなくわかりづらいのですが、β版と比較して大きく変わったデータについて。

    この1年運用する中で、内部のデータ構造を見直したりして、とにかく「速く、軽く、正確に!」動けるように対処していっています。

    以前の記事でもご説明しましたが、世界のウェブサイトの三分の一のシェアを占めるWordPressにおいて、その世界中の未知のサーバーを相手に正確かつ速くて軽いデータ分析ソフトを作るというのは大きなチャレンジなのですが、ほぼ完成形に近づいたと自負しています。

    いくつかの条件が重なったエンタープライズのケースでは、どうしてもワードプレスの公式プラグインとしては使えない軽量化の手法もあるので、ある特定の機能は有料サポート付きで出すしかないとは考えていますが、それでも現時点でほとんどの世界中のサイトを「無料プラグインを入れるだけで計測できる」状態にできたかと思います。

    QA Heatmap Analyticsは、ヒートマップではなく、今まで存在しなかった「自立分散型行動分析(アナリティクス)プラットフォーム」であり、多くの方に使ってもらうほど、より進化するように設計しています。今後も改善を続けて行きますので、楽しみにして頂けたらと思います。

    最後に。これからのQA

    今日は、QAが生まれて最初の一年を新しい5つの機能で振り返ってみました。

    今週末2月12日の誕生日から、こちらのページで一周年記念キャンペーン(2/12公開)を行います。祭りみたいなものなので、ぜひ楽しんで頂けたらと思います。

    「Twitterフォロー&RT」コース
    「Twitterフォロー&RT」コース
    「お友達紹介でQAライセンスGet」コース
    「お友達紹介でQAライセンスGet」コース

    これからのQAなのですが、ロードマップにあるように今年の春夏ごろにver2.0になる予定です。ver2.0はサイト統計情報の拡張がメインになってくると思います。過去PVデータを検索して録画再生ができたり、ですね。これが無料でできる解析ツールは世界初かと思います。

    また今年はこのロードマップには出ていない形で、別の観点で喜んで頂けるモノをリリースする予定です。これはちょっと驚かれるかも知れませんが、その時のお楽しみということで笑。

    また来月くらいからnoteでQAについての情報発信をまずは月1本くらいのペースで行います。

    noteの記事は我々がインタビューを受ける形で進められており、また違った角度でQAについて知ってもらえるのかな、と思っています。

    それでは、また1年後に二周年を振り返る記事を書くと思いますが、良い意味で期待を超えたというご報告をできるよう頑張ります。

    今後ともQAをよろしくお願いいたします。

  • 1億件のデータをJavaScriptで処理した時の所要時間

    ※この記事は備忘に近いので、今後テストの度にこのページを改訂していく可能性があります。

    QA Heatmap Analyticsは膨大なデータを処理することを想定しているので、仮に月間1000万PV近いサイトを分析する場合、1億件以上のデータを処理しなくてはなりません。

    この処理に時間がかかるようでは、実用的ではなく、どのようなクライアントスペックが必要なのか、またどのくらい速度がかかるのかを簡単に検証したいと思いました。

    そこで、シンプルなテストで、まずはChromeブラウザがどれくらいの速度で1億件のデータを処理するのかを計測してみました。

    検証方法

    Chromeを使用し、ある程度QA Heatmap で実際に想定している配列データ(ほとんどInt型で構成。一部文字列。通常DBであれば1レコード最低70Byte程度は必要)を1億件構築し、簡単なテキスト検索を行ってみました。詳しくはテストコードをご覧ください。

    特に検証したかったこと。

    • 1億件の配列の作成にどれくらい時間がかかるか
    • 全てオンメモリするのか
    • ループの書き方でどのくらい速度の違いがあるか?

    検証環境

    • iMac OS macOS Big Sur
      • CPU 3.4GHz クアッドコア Intel Core i5
      • メモリ 40GB
      • ディスク HDD(ただしフュージョンドライブなので一部SSD)
    • Chrome バージョン: 87.0.4280.67(Official Build) (x86_64)
    • メモリ利用量の確認方法
      • Chromeタスクマネージャーでタブに割り当てられたメモリを確認

    結果

    速度について

    作業方法速度
    1億件の配列作成forループ5609ms
    作成直後に文字列検索forループ3964ms
    forEachメソッド※1回目メモリーリーク発生
    5296ms

    速いのはforループです。また5秒程度で1億件処理するのは、結構速いな、と思いました。しかしそれより問題なのは後述するメモリーリークです。

    メモリ利用量について

    フェーズメモリ量
    配列作成前18.4MB
    作成後2.6GB
    10分ブラウザ放置後1.9GB

    普通に計算すれば1億件で700MB程度は最低必須のデータです。こちらをforループで配列作成したところ、ある意味想定通り、数GBのメモリを確保しオンメモリしました。

    あと面白いのは、ブラウザを放置するとメモリ確保量が減っています。ヒープで余分に確保していたメモリなどを最適化できるのだと考えています。しかし今回はその程度のガベージコレクションがあっても、そもそも後述するメモリーリークが大問題なので、どうでもいい話だと思います。

    メモリーリークの発生!

    一回目のforループが終わったあと、すぐにforEachをかけると、22584ループ目で「Paused before potential out-of-memory crash」が発生しました。いわゆるメモリーリークです。

    下記のChromeDevToolの公式サイトを参考に原因の解明を行おうと思ったのですが、、

    ▼メモリ問題の解決(Chrome DevTools)
    https://developers.google.com/web/tools/chrome-devtools/memory-problems/

    なにせ1億件もあるとデバッグも大変で、Heapのスナップショットの取得、描画だけでも異様に時間がかかります。下記のように40GBのメモリを積んでいても関係ないくらいメモリを喰い、スワップ発生しまくりです。

    130GB!?恐ろしい。。

    結局、数時間まっても動かず、どちらにせよ、下記のブラウザのメモリ限界に達した可能性が極めて高く、所感にも記載しますが、そもそも数GBのメモリ確保は現実的ではないので原因の追及はやめることにしました。

    Chromeのメモリ最大容量は4GBらしい

    すごく参考になる検証をされている方がいたので下記にリンクを記載しますが、そもそもChromeのメモリの最大容量は4GBのようです。さらに他のブラウザも検証されていて、Safiriでは1.4GBあたりでクラッシュ。それを考えても数GBのメモリを確保して処理させるのは危険すぎます。

    ▼ブラウザで扱えるメモリ上限の確認 -nodachisoft
    https://nodachisoft.com/common/jp/article/jp000005/

    所感

    メモリ容量が大きいパソコンを使えば、想定通り1GBを超えてもオンメモリはできました。

    しかし、その後が悲惨で、そもそも各ブラウザのメモリの上限が1〜4GBでばらついていることを考えてもメモリリークしないように管理するのは至難の業だと思われます。

    結論として、使用するメモリは合計で1GB以内で想定した方がよさそうですし、できるだけ小さくする方が良いでしょう。

    そうなると、数億というデータ分析は、BigQueryや、TresureDataなどのCDP、クライアントであればTableauなどの専用ツールに任せるのがベターです。そもそも数億のデータを持ちうる企業でデータ活用の文化がないことは考えづらいので、生データをうまくひけるAPIを整備する方が現実的でしょう。

    ちなみにGoogleスプレッドシートの最大処理件数が500万行、Excelで100万行程度らしいので、やはり一億どころか一千万という単位からデータ活用は別次元で考えた方が良さそうです。

    なお今回のテストの副産物として、処理速度を見ると、巨大な配列になるほどforEachなど配列メソッドは遅くなりそうなので、なるべく避けていき、forループなど、ネイティブに近そうなシンプルな処理を組み合わせるのがよさそうだと思っています。

    過去にSafariのDate.Parse()の遅さ(微妙な差なのですがループが多いと効く)でハマったことがあり、なるべくブラウザ依存しなそうな処理を使い、メモリとCPUを想像しながらプログラムを書くことが求められそうです。

    テストコード

    <h1>1億件の配列作成</h1>
    <input type="button" value="start" onclick="datamake();">
    <br>forLoop<input type="text" onchange="findtext(this)">
    <br>forEach<input type="text" onchange="findtext2(this)">
    <script>
        let ary = [];
        function datamake() {
            let now = new Date();
            console.log(now.getTime());
            for (let iii = 0; iii < 100000000; iii++) {
                ary.push([1,	1,	1,	1,	190,	0,	0,	2,	'2020-11-15 13:30:23',	1,	0,	45,	0,	0]);
            }
            let end = new Date();
            console.log(end.getTime());
        }
        function findtext(obj) {
            let findtxt = obj.value;
    
            console.log('for loop');
            let now = new Date();
            console.log(now.getTime());
            let findidx = [];
            for (let iii = 0; iii < ary.length; iii++) {
                //indexOf が一番早い http://oredon.guitarkouza.net/blog/2017/03/javascript-string-match.php
                if (ary[iii][8].indexOf(findtxt) > -1) {
                    findidx.push(iii);
                }
            }
            let end = new Date();
            console.log(end.getTime());
            console.log(findidx.length);
    
        }
        function findtext2(obj) {
            let findtxt = obj.value;
            console.log('for Each');
            now = new Date();
            console.log(now.getTime());
            let findidx2 = [];
            ary.forEach( (rowary,idx) => {
                if (rowary[8].indexOf(findtxt) > -1) {
                    findidx2.push(idx);
                }
            });
            end = new Date();
            console.log(end.getTime());
            console.log(findidx2.length);
        }
    </script>
  • ExcelみたいなフィルターをJavaScriptで。QAフィルターを作成しました!

    2021年8月16日追記。Ver.2.0.0.0より、使い心地はそのままにQAフィルターのデザインが新しく使いやすくなっています。たとえば「どのLPがよく読まれていのか?」をすぐに判断できます。ぜひ活用ください。

    QA Heatmap Analytics Ver.1.0.1.0よりQA Table Generatorを使ったQAフィルターが使えるようになりました。
    表示されているデータの絞り込みがより直感的にできるようになっています。
    詳しくはこちらの動画をご覧ください。

    ※字幕をONにすると説明が表示されます

    解決したかった課題

    一般的なアクセス解析ツールで表示データを絞り込む時には、下記のような課題がありました。

    • 昇順降順ってどっちだっけ?
    • フィルタの存在に気づかない
    • 複数条件で絞り込む方法が直感的ではない。どこにあるかわからない

    優れているExcelのフィルタ

    このようなデータ絞り込み機能の課題を解決している最も優秀なツールはExcelだと思っています。
    Excelのフィルタ機能は直感的で、一度人から教われば誰でも使いこなすことができます。

    私はExcelの構築に関わったJoel Spolskyをとても尊敬しており、Excel自体も尊敬しているので、ぜひこの慣習にならいたいと思いました。

    とはいえ、Excelのフィルターにもいくつかの弱点があります。

    • フィルタ機能の存在を知らないと使えない
    • あまりに高機能で、少しわかりづらくなってきている
    • 複数条件で絞り込んだ時に、どの条件で絞り込んだか迷子になりやすい

    これら全ての課題を解決するために生み出されたのがQAフィルターです。

    QAフィルターの主な特徴

    • 知らない人でも直感的に触れる
    • 必要十分な作業だけ残したフィルタ
    • 全てのフィルタを同時にオープン・クローズできる
    • ウェブ上の操作に特化している(JSONやJavaScriptのデータ配列から動的にTableを生成する)

    現在の仕様

    現在の仕様では、クライアント環境に依存するデータ処理の負荷を下げるため、QA Filterに表示されている領域のみがフィルターの対象になります。例えば、3万件のデータがあるとして、1万件が初期表示されている場合、フィルターの対象はその1万件のみとなります。

    今後この仕様は改訂になる可能性があります。

    使ってみたい方へ

    ぜひQA Heatmap Analyticsプラグインを導入ください。

    プラグインの新規追加で「QA Heatmap」と検索するとみつかります。
    導入するとすぐに表示される「ダッシュボード」のリアルタイムビューにてQAフィルターを活用することができます。

    QAフィルターは100%GPLなので、どなたでも使えます。

    我々はこのQAフィルターをQA Heatmap Analyticsの統一の操作として活用していきたいと思っています。しかしQAフィルター自体は、汎用的なJavaScriptライブラリとして開発していきます。(その方が我々も使いやすいので)

    まだまだ汎用的ではなく突貫的に対応している箇所もありますので、しばらくはQA専用で開発していきますが、現時点でもGPLが適用されていますので、どなたでも利用は可能ですし、自由に改変もできます。※GPL適用が必須です。

    cssも現在はソースの中に記載しているので、「table.js」だけで利用できます。
    ソースはWordPress公式サイトのこちらにあります。

    https://plugins.svn.wordpress.org/qa-heatmap-analytics/trunk/js/

    なおライセンスはGPL2.0ですので、それに従う必要があります。
    GPLについて詳しく知りたい方はこちらの記事をご覧ください。

    ただ今のところQAフィルターはQA Heatmap Analytics向けに最適化していきますし、Font Awesomeを利用しているのでそのクレジットも必要です。ですから、しばらくして汎用化したら、そのタイミングでGitHubで公開し、ライセンス関連も整理したらMITライセンスによるオープンソース化も検討しています。

    もしバグなど見つけた方は、教えて頂けると助かります。(修正コードがある方は教えてもらえるともっと助かりますw)

  • ウェブサイト分析ソフトウェア開発の舞台裏(後編)

    こんにちは。QuarkAの丸山です。

    前回はウェブサイト分析ソフトウェアの敵が「インフラコスト」であること、それが故、無料ヒートマップツールの実現が困難であったため、WordPressを利用したQA Heatmap Analyticsプラグイン開発に至ったという経緯をお伝えしました。

    本日は、そのWordPressに手を出してから味わってきた開発の苦労話をいくつかお伝えしたいと思います。大きく3つあります。

    1. WordPress固有の苦労
    2. パフォーマンスと精度のチューニングの苦労
    3. データ容量削減の苦労

    1.WordPress固有の問題

    WordPressのライセンス

    QA Heatmap Analyticsは、今のGPL公式版リリースの前にQA Heatmap β版を出していました。
    その時に何人かの人から「野良アプリ感www」「ライセンスどうなってるの?」と指摘(バカに?)されたのですよね(汗)

    確かに、β版ということもあってライセンスやWordPressのお作法やルールへの意識は甘いところがあってリリースしていました。それにβ版はもちろん自社サイトだけで配布していたので、まさに野良アプリといえばその通りでした。

    たとえば、WordPressのプラグインには下記のようなライセンス規約があります。

    WordPressでは、結構ライセンス違反をしているテーマやプラグインも多い(この場合、公式WordPress.orgサイトには掲載できません)ので、そういう指摘が入ったようです。

    現在は100%GPLの公式版です

    もちろん現在のQA Heatmap AnalyticsはWordPressコミュニティの審査の上、公式WordPress.orgに登録されています。つまり100%GPLの無料プラグインになります。

    どんなサイトでも無限に自由に使ってもらうことが可能です。世界中の人に使ってもらいたいので、多言語化にもチャレンジしていきます。

    WordPress標準関数の洗礼

    WordPressでは、そのままPHPの関数を使うことが推奨されていないケースが多々あります。特にOSに近い命令に関しては、ラップする関数が用意されていることが多いです。セキュリティ問題もありますので。

    ところがQAのようなウェブサイト分析ソフトウェアの肝はインフラですから、当然OS周りの処理が多くなりますし、シビアな処理も多くなります。WordPressはオープンソースですから、多くの人が開発に関わっていますし、そもそもそんなシビアな想定はされていないこともあり、特にファイルシステム周りでの処理では大変苦労しました。

    そういう時はGoogle検索を頼りますが、まず日本語では情報が少ないです。あと英語だとしても、WordPressくらいメジャーだと今度は記事が多すぎて間違っている情報も多くひっかかり、混乱もします。

    最終的には、WordPress本体のソースコード(Developersサイト経由)を見るしかないのですが、今度はソースコードを見て愕然とし、方針を転換したこともあります。

    ということで、ワードプレスのプラグインを開発してみたいという方は、こういった本体のソースコードを見るとか、どこまでお作法で許されるのかとか、検索方法などのコツがあると思っています。

    苦労した分、いつかこのあたりのナレッジをシェアする機会も作りたいなと思っています。

    2. パフォーマンスと精度のチューニングの苦労


    どこまでの精度でデータを取得し保存するか?

    録画をイメージしてもらうとわかりますが、データ取得精度を細かくするほど、綺麗な動画できあがります。しかし、そうするとデータ容量がとても大きくなります。

    WordPressというのは、一般的に安価なレンタルサーバーで稼働していることが多いです。しかし、そのような安価なサーバーでも月間30万PV近いアクセスを誇るブロガーさんもいます。

    このような中で、QA Heatmap Analyticsのデータを取得するためにサイトが重くなっては本末転倒です。

    いかにリアルタイムのデータ取得負荷を軽くし、かつ保存するデータ容量を削減するか。それでいて視覚化した時に正確性を損なわない精度で取得するか?というチューニングには苦労しました。

    最終的には、クライアント・サーバー間の通信においては精度を損なわないようにクライアント側で0.3秒間隔でデータを保存しながらサーバーとの通信はAjaxで3秒間隔で行うようにしています。かつサーバー側の同時接続数が増えても重くならないようにデータ保存処理はDBを使わずファイルシステムで行っています。

    その上でデータの集計作業については、夜間cron(正確にはwp-cron)を使ってバッチ処理的にDBにデータを集計しながらストックしています。

    レンタルサーバー向けに低負荷で稼働させる苦労

    各レンタルサーバーは負荷の高いプロセスを自動的にkillするという仕様のところもたくさんあるため、今度はcronのデータ集計処理中にプロセスが異常終了するということが発生します。これに対応するために、状態を保存しながら細切れにデータ集計処理を進めるという、case文を用いたトリッキーなプログラミングスタイルをとっています。

    このインフラ制限がある中での処理は、私の父親が工作機器の制御系プログラマであり、私にもその経験があったこと、およびCTC(伊藤忠テクノソリューションズ)のインフラエンジニアであった経験が大きく役立っています。特に制御系のプログラミングは人命がかかっているなど、シビアさではウェブよりはるかにきついので参考になる箇所が多いです。

    またレンタルサーバーの検証は、うちの会社がウェブコンサルティング会社であることが役立ちましました。自社サイトでもそれなりにアクセス数のあるサイトを複数所有しており、またいくつかのメジャーなレンタルサーバーと契約しているため(AWS含む)、たくさんの環境でどうなるか事前に把握することができたのです。

    さらにβ版を先にリリースしたことで、サーバー環境依存する問題を事前にだいぶ改善することができました。これも大きなポイントだったと思います。

    疑似アイトラッキングの難しさ

    ヒートマップは、「ユーザーが見ているところ」を指し示しているように見えます。しかし、実際にはユーザーのアイトラッキング(視線を追う)ことをしているわけではないため、あくまでブラウザで取得できるデータから、ユーザーの注視箇所を推測する必要があります。

    一般的に簡易で作成されたヒートマップツールというのは、ユーザーの行動をブラウザサイズと座標で取得するのですが、実際にはブラウザサイズは各ユーザーで違うため、本当に注視しているところを示すことができず、とてもアバウトな分析になってしまいます。(例えばレスポンシブでブラウザ幅によってレイアウトが変わる場合、座標でそれを把握するのは困難です。)

    我々はマーケティングコンサルタントでもあるので、「ユーザーの注目箇所」を間違えると、判断を間違えてしまうということを重要視していました。たとえば「上級者はこちら」と「初級者はこちら」というテキストリンクが並んでいた場合、どっちがより注目されているかの判断を間違えるわけにはいきません。

    そこで、QA Heatmap AnalyticsではDOMオブジェクトを取得した上で、「どの部分を見ているのか?」を再描画するようにしています。そうすることにより、より正しく注視されている箇所をDOM(ウェブのパーツ)単位で把握することが可能になりました。

    QA Heatmap Analyticsは可能な範囲で正確な位置に描画します。

    3.データ容量削減の苦労


    サーバー環境がユーザー依存する中で、特に厳しいのはデータベース容量とファイル数の上限の問題です。

    ヒートマップツールはそのデータ量の多さが精度のポイントですが、当然保存する容量が大きくなるとレンタルサーバー(特に共用サーバー型)では問題なため、制限をかけているレンタルサーバー会社がほとんどで、かつDBの上限は1GBなど小さいことが多いです。

    そこでデータを圧縮するなどの方法が考えられますが、下手に圧縮した場合、今度は展開に時間がかかるようになり、データを閲覧する時にサーバーに負荷がかかってしまうので注意が必要です。また圧縮ではなく情報を欠落させてしまった場合は、将来のデータ分析に影響がある可能性があります。

    上記のような事情を加味し、QA Heatmap Analyticsではかなり将来展開を見越した上で、データ容量の削減に効く部分に関してオリジナル方式でデータを圧縮し、展開に関してもパフォーマンスに影響がある部分は一時的なキャッシュファイルを用いるなどで高速化と容量の削減の両方を実現しています。

    標準プラグインでは保存数を1ページにする

    QA Heatmap Analyticsは、世界中の人に使ってもらいたいと思っていますので、さらに変わったサーバー環境のユーザーがいるかも知れませんし、アクセス数が凄まじいサイトもあると思います(英語圏になるので)。

    ICTに詳しくない人も多いはずで、その全世界中の人達に、データ容量のことを気にしながら運用してもらうことは不可能だと思っています。そう考えると、最初からある程度のクォータ制限をかけた方が安心です。

    そこで公式サイトからダウンロードできるプラグインでは、ヒートマップデータの保存数を1ページのみに限定しています。お友達紹介をしてもらった方で最大3ページ取得できるようにしました。また標準のデータ保存期間を2ヶ月間にしています。

    この方式により、下記を実現できました。

    • 誰でもデータ容量を気にせずヒートマップを活用してもらえる
    • 手軽に計測ページを変更できるので1ページずつ集中してサイトを改善してもらえる(自然とそういう運用になる)
    • A/Bテストなどを実施している人でも3ページあれば事足りる

    一方で、有料プランを契約する人は、ウェブサイトについての本腰をいれているプロが多いだろうという想定をし、マニュアルやヘルプも読んでもらえる前提にたちました。
    そこでマニュアルに注意事項などを記載した上で、ページ数の取得制限をとり払うことにしました。また有料プランではサーバーのことがよくわからない方向けに導入サポート(サポートチーム直通の問い合わせフォーム)もつけるようにしました。

    これで、各ユーザーの状況にあわせたヒートマップツールを提供できたと思っています。

    ページビューは全アクセスを保存する

    余談ですが、実はプラグインをインストールした時点で、無料・有料関わらず全てのページビューは記録しています。2つの理由があります。まずページビューだけであればそれほどデータ容量を食わないので、ある程度の期間のデータ保存が可能なこと。もう一つはQA Heatmap Analyticsは、ヒートマップではなく、アナリティクス。つまり本質的には行動分析ツールだからです。

    前編にも書きましたが、QA Heatmap Analyticsはイベントとページビューの両方を計測しています。従来GAと新GA4が合体したイメージに近いかも知れません。

    このことにより、世界初のツールを開発している我々らしく、面白い進化をお見せできると思いますので、これからのバージョンアップにぜひご期待ください。

    まとめ


    今回は、前編、後編に渡って、サイト分析ソフトウェア開発の舞台裏についてお話してきました。

    我々は、今までのPV計測型のアクセス解析の時代が終わりを告げようとしていて、これからは新しいサイト分析の時代が訪れようとしていると考えています。

    その中で、最終的にQuarkAは自立分散型行動分析プラットフォームを目指していて、その意味は、だんだんとお見せできると思っています。

    しかし何より、苦労はしましたが、誰でも手軽にインストールして使えるのがWordPressのプラグインの良さで、その中で頑張って作っていることにやりがいも感じます。

    日本から世界へ羽ばたき大成功したソフトウェアって「スーパーマリオブラザーズ」などのゲームだと思っており、マニュアルなど読んでもらわなくても世界中の人がプレイできたその偉業をとても尊敬しています。

    我々もそれに倣い、QuarkAとはに記載しているように「すべての人にデータに基づくインスピレーションを」を合い言葉に、誰にでもデータ分析を楽しんでもらえるようなソフトウェア開発を続けていきたいと思っています。

  • ウェブサイト分析ソフトウェア開発の舞台裏(前編)

    こんにちは。QuarkAの丸山です。

    QA Heatmap Analyticsは、もうすぐVer.0.9の録画再生機能がリリースされる予定です。
    最近Google Analytics 4もリリースされたこともあるので、このあたりで「データ分析ソフトウェア開発の舞台裏」について書いてみたいと思います。

    ウェブサイト分析はイベント計測型へ


    もともとGoogle アナリティクスはUrchinというアクセス解析ソフトウェアを2005年にGoogleが買収したところから始まりました。もう15年も前の話です。

    それから現在に至るまで、スマートフォンの登場などもあってやユーザー行動自体は大きく変化していますが、計測の仕組み自体はずっと当時の原則を守ったままでした。

    しかしここに来て、Googleアナリティクス 4が登場しました。今までとの大きな違いはデバイスまたぎの計測(アプリ含む)に対応できるなどですが、従来のウェブサイト分析という範囲において大きな変化の一つは「ページへのアクセスではなく、イベントを計測するようになった」になったということです。

    Google Analytics 4のイベントって何?

    イベントについて耳慣れない方もいるかも知れません。より正確に表現するならば「イベントとは、ブラウザ上で取得もしくは設定できる何らかのアクション」ですが、これでは何のことやら?です。

    ウェブサイト分析で使うイベントについて、おおよそのイメージでいえば「イベント=ユーザーの行動」と捉えていいと思います。

    たとえば、ページを閲覧しただけでなく、ページをスクロールした、動画を再生したといったユーザーの行動を指します。実際、Google Analytics 4ではページのスクロール情報なども取得してくれるようです。

    スマートフォン時代に入り、ユーザーの行動は、以前ほどシンプルではなくなってきています。その中で、イベントを計測するようになったというのは理にかなっていると思います。

    イベント計測は簡単ではない

    これだけ見ると、Google Analytics 4は大幅に進化したように思えますが、今まで使っている側からすると手放しでは喜べないところもあります。ご紹介する衣袋さんや森野さんや村山さんのツイートのように、わかりづらくなってしまった部分や、できないこともあるからです。

    なので、今すぐ安易に飛びつかない方がいいというのは私自身も完全同意です。そもそも多くの中小規模サイトにとっては不要の機能だったり、以前からのWeb+Appプロパティを導入した人はわかると思うのですけど、少なくとも現状は決して使いやすいとはいえないからです。

    ただ、先ほど申し上げた通りイベント計測型という点においては、これからのウェブを見渡せば理にかなっていると考えています。なぜなら、ユーザーの行動=イベントであり、ブラウザ上の行動分析の行き着く先は「イベント」の分析であるからです。

    ちなみに我々のQA Heatmap Analyticsはイベントとページビューの両方を計測しています。従来GAと新GA4が合体したイメージに近いかも知れません。

    データ分析の最大の敵は「インフラコスト」


    さて、Google Analytics 4はイベント計測型に進化したわけですが、それならば、なぜわかりづらい部分や、使い勝手がわるい部分が出てしまったのでしょうか。

    この件については、a2iの大内さんのコラムがとても参考になるのではないかと思っています。

    要はどうにかして インフラコストを下げたい っていうことですよね。だからこそ、旧来のデータをそのまま引き継ぐわけにはいかなかったと。

    大量のデータ処理はお金がかかる

    今はAIの時代などいろいろ言われますけど、最終的にそれらは全て「データ処理」です。精度をあげようと思えば、良質な推測と設計のもと、大量のデータを保存し、そのデータを演算する必要があります。

    これはディスク容量、メモリ、CPU(AIならGPU)パワーを大量に食いますから、いわゆる高スペックのゲーミングPCをたくさん買うようなもので、とてもお金がかかります。

    これを無料で提供するというのは、そもそも一般の零細企業には不可能ですが、あのGoogleでさえも、厳しくなってきます。おそらくGoogle Analyticsは、世界の数億程度のサイトに入っていると想定しており、現状でもとてつもないデータ容量のはずです。

    ▼Google Analyticsはサイト分析ツールとして圧倒的なシェアを誇っており、世界中のサイトの54.8%に導入されています。

    https://w3techs.com/technologies/overview/traffic_analysis

    そんな全サイトで、今までのデータに加え、さらにその数十倍となるであろう全てのユーザーの行動データを詳細に長期間記録するというのは、さすがのGoogleといえどもちょっときついはずです。

    そもそも、なぜGoogleアナリティクスは無料で提供されているのか?

    もともとはUrchinを買収して提供が始まったGoogleアナリティクスですが、一石二鳥ではないですけど、下記のような狙いだったと思っています。

    • Google側のメリット
      • 世界中のサイトの傾向を把握、分析できる
      • 世界中のサイトを通じて全世界のユーザーを把握(追跡)できる
    • ユーザー側のメリット
      • アクセス解析ツールで傾向がわかれば改善点がわかる
      • 世界の傾向を分析したGoogleから良質な情報をもらえる

    その目的は既に達成されたわけで、それにしては現状が高コスト体質という状態なのだと思います。

    加えて、これからはiOSが採用しているITPなどプライバシーの問題が出てきますので、今のGoogle アナリティクスだけでは限界も出てきます。

    ですからGoogle Analytics 4は現状のデータ構造を引き継がず、新しく設計されたというわけです。

    ヒートマップもまた「膨大なイベントデータ」が必要


    さて、ここでQA Heatmap Analyticsも採用しているヒートマップ関連の話になります。

    ウェブ分析をしている人、特にLP改善などを行う人であれば、ヒートマップが強力なツールであることは疑いようがないと思います。

    もしかしたら「なぜGoogleは無料のヒートマップツールを出さないのだろう?」と思っていた人もいるかも知れませんが、それは先ほどの理由と照らし合わせるとわかってきます。

    ヒートマップというのは、ユーザーのアイトラッキングに近いことを行います。イメージでいうと、画面キャプチャの録画をずっと貯めているような感じで、おわかりのように、ものすごいデータ容量になります。我々の想定でいえば、そのデータ容量はおそらくGoogleアナリティクスが現状保持しているデータの数十倍になるはずです。

    そうすると、そもそもGoogleはインフラコストを減らしたいわけですし、ヒートマップを追加でリリースしたところで彼らのメリットは特に増えないので、無料でヒートマップツールを出す理由は全くない(※)ということになります。

    ※唯一私が想定している手を出す理由はありますが、その場合は、Googleアナリティクスの製品群の一部に組み込むとしても、今までとは全く違う手を打ってくると思っています。

    自社の解析サーバーを構築する?

    もしGoogleがヒートマップやってくれないとすると、利用を諦めるか、どこか別のツールを使うしかありません。しかしヒートマップ描画を含むユーザー行動分析は高コストであり、他の会社がリリースしたとしても事情はまったく一緒。むしろGoogleよりお値段は高くなるはずです(実際、月額数万円〜と高いです)。

    ヒートマップは、ユーザーの行動分析2.0と呼んでもいいくらい示唆を与えてくれるものであり、なんとかしたいところです。そう考えた時、クラウドベンダーが無理なら、自社のウェブ分析サーバーを構築し、そこにデータを貯めればいいのでは?という解決策が見えてきます。それならレンタルサーバー代だけですみます。

    しかし自社専用の解析サーバーを構築するのは少なくともサーバーエンジニアのノウハウが必要であり、一般的には現実的でありません。ただ一つ例外があります。

    WordPressのプラグインという解決策


    WordPressのプラグインであれば、誰でも手軽にサーバーにソフトウェアをインストールすることができます。そこで開発されたのがQA Heatmap Analyticsプラグインになります。

    とはいえ簡単ではない

    理屈はそうなのですが、まともに動かすのは簡単ではなく、我々も相当苦労しました。

    まずWordPressは様々なレンタルサーバーで稼働しているため、各ユーザーの環境が違います。CPUやメモリやディスク容量にもどのような制限がかかっているかわかりません。そのような環境で大量のデータ処理を行うには、様々な想定を行う必要があります。

    また様々なプラグインをいれている人もいますから、まともに動くかも保証できません。よくWindowsのソフトウェアで、ウィルス対策ソフトが入っていてまともに動かないなどという話がありますが、それと同じ現象が発生します。サポートがとても大変です。

    またWordPressのプラグインはオープンソースライセンス(GPL)ですので、ソースコードの公開義務があり、これをコピーした人にもソースコード公開の義務があります。これは一般的な商業ソフトウェアを想定した場合、まったく相容れないポリシーです。

    次回後編

    ということで、そんなWordPressで頑張って、データの正確性が求められるサイトデータ分析ソフトウェアを開発しようというのは、ちょっと変人かも知れません。そもそもWordPressのプラグインにQAと同じ行動データ分析ソフトウェアがない理由だと思います(我々が世界初です)。

    ただ、これが中小企業でも気軽にヒートマップを含む行動データ分析を使えるようになる、唯一の解決策でもあったのですよね。ですから、我々としてはチャレンジをすることにしました。

    その結果、お伝えしたように山あり谷あり。いろいろ苦労があり、予定よりだいぶ開発にかかったわけです(涙)。
    さて、明日は後編として、開発者ブログらしく、QA Heatmap Analyticsの開発の舞台裏(苦労話)をお伝えしたいと思います。