564 Views
December 02, 23
スライド概要
UnrealEngineのWindowsデスクトップアプリのAnalyticsの話です
エンジニアです
UnrealEngineのWindowデスクトップアプリでAnalytics @mechamogera
自己紹介 • mechamogera • 主にQiitaで活動:https://qiita.com/mechamogera • 第2種電気工事士の勉強中 2
今日お話しする内容 • Analytics利用の動機 • UnrealEngineのWindowsデスクトップアプリのAnalytics環境 • GameAnalyticsの利用 • GoogleAnalyticsの利用 3
最近の仕事 • UnrealEngineを使ったVRコミュニケーションサービス作成 • UnrealEngineとは • 3D制作プラットフォーム • C++で作成 • スタンドアロン(Quest2)ではなくPC VR(Quest Link)を利用 • 3Dモデル読み込みなどを行うのでマシンパワーが必要 • サーバーからのストリーミングは環境が整っていない • Windowsアプリ 4
Analyticsしたい • ユーザーの動向を分析したい 5
使えるAnalyticsサービスがほとんどない問題 • UnrealEngineのWindowsデスクトップ向け = WindowsのC++環境 • 一般的なAnalyticsサービスのメインターゲット: iOS、Android、Web • Windowsアプリ向けだとVisual Studio App Center Analyticsあり ただし、UWPアプリとかWPFアプリとかモダンな環境向け 6
UnrealEngineのAnalyticsのIF • Analytics用の共通的なIFがある • UE5.0以降の文書から消えている(実装はまだある) お蔵入り? • https://docs.unrealengine.com/4.27/ja/TestingAndOptimization/A nalytics/ • 利用してみた所感: • サービス固有の内容をラップしきれてない サービスを変えるとごそっと変更がいる (Analyticsサービス間で共通性があまりなさそう、イベント名とか) • 設定値の読み取りとか共通部分はあるが無くても良い感じ 7
UnrealEngineのAnalytics デフォルトで用意されているAnalytics • Apsalar:消えてる? • Flurry:スマホ向け • ファイルロギング WindowsアプリサポートのAnalyticsサービスなし 8
GameAnalytics • 最初に使ったAnalytics • プラットフォーム無料 • UnrealEngineプラグイン無料、MarketPlaceから取得可 • 良くなかったところ • 自由にダッシュボードがカスタマイズできない • 利用ユーザーグループ毎にしかグラフが作れない (各ユーザーグループの利用状況を単一グラフで一覧したい) • サービスのバージョンアップでダッシュボードが吹っ飛んだ (旧UIに切り替えてやっと見れる) 9
GoogleAnalyticsへ • GoogleAnalytics利用したい • GoogleAnalyticsUniversalからGoogleAnalytics4への移行でGA4利 用必要 • UnrealEngine C++向けSDKは用意されていない • スマホ向けSDKは利用できていてUnrealEngineのMarketPlaceにはいくつ かプラグインがある 10
Measurement Protocol利用 • HTTPリクエストでAnalyticsデータをGoogleAnalytics4に送信可能 • Goolge Analytics Universalのものと比べて制限有 ほぼカスタムイベント記録用? • そのせいでMarketPlaceにあったMeasurementProtocol利用のプラグイン は移行できてないらしい • https://unamedia.com/help/ue5-google-analytics/ga4-state 11
UnrealEngineのプラグイン作った • UnrealEngineからGA4 Measurement Protocolを利用できる • https://github.com/mechamogera/GoogleMeasurementProtocolAnalytics • UnrealEngine標準のHTTP通信とJSON生成のライブラリを利用 • UnrealEngineのAutomation Specでテスト書いた • https://github.com/mechamogera/GoogleMeasurementProtocolAnalytics/blo b/main/Plugins/GMPAnalytics/Source/GMPAnalytics/Spec/GMPAnalytics.spec .cpp • モック機能などはないので継承して実際にMeasumentProtocolを送信し ないように 12
イベント設計 • 共通パラメータ • group_name:利用ユーザーグループ種別 • イベント例 • 数値パラメータはvalue[数値]、文字パラメータはdimension[数値]で記 録 (カスタム指標やディメンションの制限数が結構厳しいので節約) イベント パラメータ名 パラメータ値 session_complete value1 最大プレーヤー数 value2 セッション時間(秒) value1 ファイルサイズ dimension1 [3Dデータの拡張子] dimension2 Success/Failure dimension3 Datasmith/PointCloud load_3ddata 13
Analyticsの可視化 • GoogleAnalytics自体ではカスタム イベントの可視化は限定的 • グラフのカスタマイズが限定 的 • レポートを自由に配置できな い • 無料で利用できるGoogleの LoockerStudioで可視化 • かなり自由にグラフ、レポー トを設定可 14
まとめ • 今日お話した内容 • • • • Analytics利用の動機 UnrealEngineのWindowsデスクトップアプリのAnalytics環境 GameAnalyticsの利用 GoogleAnalyticsの利用 • MeasurementProtocolの利用、プラグインの作成、LoockerStudioでの可視化 • UnrealEngineのC++環境ゆえの辛みを感じた • C++ゆえにサポートされない、サポートが遅れるはありそう 15