RETAIL TECH 2018.01.06

ESASYのデータ集計と型について〜Google Data Studioでグラフを描こう(1)〜

遊びがお仕事Naoyaでございます。
さて、最近はすっかりESASY屋さんとなっておりまして、社内でも「何屋?www」と笑われる日々を送っております。そんな中でも最近は、ESASYを活用した運用のサポート、データ活用のアドバイザリー業務が主な業務になって来ました。

そこでESASYのデータの見方を一度、明文化したほうがいいなと思いBlogを書くことにしたわけです(遅いw)

ESASYで取得できるデータについて

Blogなので平文でになってしまいますが、ご了承ください。

  • RecordID
  • DeviceID
  • UserID_DeviceID
  • Action
  • Age
  • ContentHash
  • CrossIn
  • CrossOut
  • DateTime
  • Diameter
  • Duration
  • Gender
  • Kind
  • ObjectCount
  • Pathway
  • Snapshot
  • Source
  • WanderX
  • WanderY
  • X
  • Y
  • Alias
エンジニアの方であれば、カラム名を見ればだいたい何なのか、予想つくんじゃないかなぁとおもいます。
 上記のようにいっぱい呪文のような項目がありますが。実際ESASYデータの分析を行う場合、実はそんなに多くの項目は使いません。システム管理用の項目が半分程度ある為、滞在時間・視聴数といった「人が知りたい情報」は下記まで絞られます。

実際に利用するデータ項目例

  • Action — ESASYの検知モード(Moving =交通量検知/Watching = 顔検知)
  • Age — 年齢(年齢性別推定モードの場合のみ)
  • DateTime — 計測時刻(TimeStamp型)
  • Diameter — 対象オブジェクトの大きさ(≒計測対象への距離)
  • Duration — 計測時間(交通量モードの場合=滞在時間/顔検知の場合=視聴時間)
  • Gender — 性別推定値(1 に近いほど男性 / 0に近いほど女性)
  • ObjectCount — 計測対象数(交通量検知の場合は1レコードを複数同時計測する場合がある/顔検知の場合は論理的に1のみ)
  • WanderX — 計測が終了した時の対象オブジェクトのX座標
  • WanderY — 計測が終了した時の対象オブジェクトのY座標
  • X — 計測を開始した時の対象オブジェクトのX座標
  • Y — 計測が終了した時の対象オブジェクトのY座標
  • Alias STRING — 端末固有名の任意コード
※X,Y座標はX=0,Y=0が画面左下としているため、中心点はX=0.5,Y=0.5となります。
実際これぐらいのもので12項目しかありません。「交通量検知の時は、Durationが滞在時間として解釈」され「顔検知の場合は、Durationが視聴時間」として解釈される。という、翻訳さえ上手に行えれば、さほど難しいデータパラメータは持っていません。

ストーリーの組み立て

上記の項目の意味がわかれば、あとはデータ集計に必要なストーリー(脚本)を組み上げて行くだけです。

ストーリーとは、そのデータグラフを見るときに人間が理解できる「人間語」を作成する作業です。多くの人はどんなにすばらしいグラフでも、説明がなければグラフの意味を理解することはできません。が、グラフも突き詰めればただの縦軸・横軸に割り振られた「条件」でしかなく、主語と述語が存在します。

さて、実際に行なっている作業手順にそって「ストーリー」を組み立てる事をご理解いただきましょう。

店舗前交通量のデータ集計ストーリー

まず最初に大事なのはAlias とActionです。
たとえば「店舗前交通量」を計測する場合には、設置された箇所の端末ID(Alias)を特定し、ActionがMovingで計測されていることを確認します。
あとは同条件でフィルタリングしてCOUNTしてあげれば「店舗前交通量」の数値は取得できます。

もちろん、これは「取得された全ての日にわたる総数値なので日付ごと時間ごとに区切ってあげる必要があります。そのために今度はDateTimeを利用し、Date型/calender型に変換するだけで、好きな年・月・日・時・分単位でデータを刻むことができます。

ここまでくれば、何月何日の店舗前交通量はカウントで取得されます。

ディスプレイ視聴数のデータ集計ストーリー

「視聴数」の計測も同じ考え方です、ディスプレイに設置された端末AliasActionでフィルタリングし、時刻で刻むだけです。
この場合のActionの値はWatchingです。

この条件でデータを取得し直すだけで、日単位、時分単位の「視聴数」が取得できるわけです。


端末別に色分けするとこんな感じになります。

店舗前交通量と視聴数を組み合わせて、評価すれば「何月何日の店舗前交通量がどのくらいで、同時刻条件で何回ディスプレイが視聴されたのか」とたどることができます。

Date型/Calender型データの応用

カウント取得したデータのDateTimeをDate型/Calender型にすることで「曜日ごと」の集計をすることも可能になります。
アナリティクスツールでよくある「曜日・時間」軸で割り当てられたヒートマップを作成することも簡単にできるようになります。

食わず嫌いの克服

 ここまでの説明はエンジニアの方であれば、SQLの文法に頭の中で変換できるんじゃないかなぁと思います。最近のBIツールは上記のようなことはいちいちSQLで書かなくても自動でやってくれるので正直「自分でロジック(構文)を組み上げる」必要はなくなっています。ただ、BIツールの裏側でこういうことが行われているんだなぁと知って欲しくて描きました。

 非エンジニアの型には、呪文だからけで何がなにやら・・と思われたかもしれないですが。1日頑張ってもらえれば、理解できると思います。やってることはただの翻訳です。理系とか文系とか関係ないですし、むしろ言葉の組み立ての問題であれば文系の領域です。

 なぜここまでしつこく掘り下げて書いたかというと、ESASYを導入いただいた多くの企業様、担当者様に何度も伝えてきたメッセージであり、事実「やってみたら、意味がわかった」という感想をいただいてけいるからです。食わず嫌いで、こういうの苦手というのは「英語が苦手がら見るのもいや」といってるレベルと変わりません。
 (僕も英語はわかりませんが、単語単位で理解しないと仕事になりません)

 利用しているBIツールの操作はExcelやWordとなんら変わらないです。
エクセルで集計資料を作っている(SUM関数使ってる)のと同じレベルの作業内容だと、まず知っていただきたいのです。

次回は実際にGoogleDataStudioでESASYのデータをグラフに描く方法を説明します。
※ Google Data Studioの公式の日本語ドキュメントだれかくだしあw

サイン&ディスプレイ製品に関するお問い合わせ リテールテック製品に関するお問い合わせ

サイン&ディスプレイ製品に関するお問い合わせ

リテールテック製品に関するお問い合わせ