このリポジトリには、BizDevOpsのためのハンズオンで実施する内容が含まれています。

事前準備

Dynatrace主催のハンズオンワークショップへ参加されている方にはDynatraceの環境が自動で払い出されるため フリートライアルから申し込んでいただく必要はありません。

学習内容

サンプルアプリケーション

このラボでは、サンプルアプリケーションとしてeasyTravelを使用します。 easyTravelには2つのインターフェースがあります。

この演習ではDynatraceの基本的なReal User Monitoringの構成を強化し、メトリクスとビジネスコンテキストを紐付ける方法について学びます。そのため、以下の基本的な設定についてはあらかじめ設定済みとなります。

基本的な設定に興味のある方はDynatraceによるデジタル・エクスペリエンス・マネジメントを参考にしてください。

Real User Monitoringの重要な機能の一つに、異なるブラウザ、デバイス、ユーザーセッション間で個々のユーザーを一意に識別する機能があります。

デフォルトでは、Dynatraceは各新規ユーザーにユニークでランダムなIDを割り当てます。しかし、ユーザー名や電子メールアドレスなどで構成される、より意味のあるカスタムユーザータグを割り当てることができます。 この演習では、ページソースに基づいてユーザーをタグ付けします。ユーザーのタグ付けの方法は、アプリケーションのページソースから利用可能なデータを取り込むことで機能します。

Easy Travel Angularアプリでは、ユーザー名は右上に表示されています。 username

Dynatraceによるユーザーのタグ付け設定

ブラウザを開き、DynatraceのGUIにアクセスしてください。

以下の手順で進めてください。

この演習では、easyTravel Angularにコンバージョンゴールを設定し、コンバージョン結果を確認します。コンバージョンゴールとは、サイトを訪れたユーザーが行う会員登録や資料請求、購入といった重要なアクションのことであり、その割合はマーケティング指標として重要な指標となります。

コンバージョンゴールの設定

コンバージョンゴールの確認

どの程度の割合でコンバージョンに至ったか結果を確認します。

この演習では、セッションプロパティとユーザーアクションプロパティを作成して、ユーザーに関する追加のコンテキスト情報(キャンペーンのソースやユーザーが選択した情報やユーザーの属性など)をDynatraceで確認します。ビジネスKPIに関する情報を追加することでよりビジネスの可視性を向上させることが可能となります。

Dynatraceでは、一般的なソフトウェアのリストをProperty packsとして予め定義しています。以下のリストはその一部となります。

セッションとアクションプロパティの設定

Property packsの利用

デフォルトで定義されているプロパティについてはリストから選択するだけで簡単に登録することができます。

Custom defined propertyの設定 - ユーザーの売り上げ額

ここでは、カスタム定義プロパティとして、サーバーサイドのリクエスト属性から売り上げ額を取得し、その情報をセッションと紐付けます。 Dynatraceではサーバーサイドで取得した情報をフロントエンド側へ簡単に紐付けることができるのも特徴の1つです。

Custom defined propertyの設定 - 閲覧した旅行パッケージの金額

上記の設定に続いて、CSSセレクターによるカスタムプロパティを追加します。CSSセレクターによるカスタムプロパティはページ上に表示されている情報をプロパティとして取り込むことが可能です。

Custom defined propertyの設定 - 閲覧・予約した旅行先

リクエスト属性から旅行先を取得し、カスタムプロパティとして取り込みます。

設定完了画面

すべての設定が完了すると、次のようなセッション/ユーザーアクションプロパティのリストとなります。 session_and_action_properties_list

この演習では、Session Replayの設定について説明します。Session Replayを使用することで、ユーザー体験や実際の操作内容をムービーライクに確認することができるためトラブルシューティングなどにより効果的です。

Session Replayの設定

続いてマスキングの設定を行います。マスキングについてはレコーディング時にマスキングする内容と再生時にマスキングする項目を選ぶことができます。レコーディング時にマスキングすると設定した内容については、データが保存されないため秘匿性は高くなりますが、実際の表示内容を確認することができません。

Session Replayの確認

Dynatraceで収集したデータを可視化する準備が整いました。この演習では、設定したコンバージョン目標session/action propertiesなどの情報を基にビジネスKPIを確認するためのダッシュボード作成を行います。

これが、これから作成するダッシュボードの完成イメージになります。 Dashboard

ダッシュボードの作成

まずはじめにベースとなる空のダッシュボードの作成を行います。

収益額

  SELECT SUM(doubleProperties.booking) as "売上高" FROM usersession

コンバージョン数の時間軸グラフの作成

時間帯によってコンバージョン数がどのように変化するかを確認するためのグラフを作成します。

  SELECT DATETIME(startTime, "E HH:mm", "10m"), COUNT(*) AS "コンバージョン" FROM usersession WHERE useraction.matchingConversionGoals="Credit card validated" GROUP BY DATETIME(startTime,"E HH:mm","10m")

ファンネルチャートの作成

ステップ毎の割合を表示するファンネルチャートを作成します。ファンネルチャートは各ステップでどの程度のユーザーが次のステップに進んでいるのか確認するのに役立ち、どこの段階に問題があるのかを視覚的に把握することができます。

  SELECT FUNNEL(useraction.name like "*journeys*" AS "旅行先の検索", useraction.name = "click on book now (xhr: /easytravel/rest/journeys/)" AS "パッケージ予約の実行", useraction.name = "click on sign in (xhr: /easytravel/rest/login)" AS "ログイン", useraction.name="click on book journey  (xhr: /easytravel/rest/validate-creditcard)" AS "パッケージの購入") FROM usersession

購入に至らなかったカートの金額

多くの場合、「カート」に入れられた商品・パッケージはユーザーが潜在的に取引を行う金額です。しかし、支払いの失敗や無効なプロモーションコードなど何らかの理由で取引を放棄したり、「カート」内のアイテムを変更する場合があります。サイト訪問者が「購入」の前にどれぐらいドロップアウトしているかどうかがわかり、ビジネスに影響を与える前に問題解決に繋げることができるようになります。

  SELECT SUM(doubleProperties.tripcost) AS "未購入額" FROM usersession WHERE useraction.matchingConversionGoals IS NULL AND doubleProperties.tripcost > 0

商品の購入ができなかったユーザーの特定

商品の購入を実施しようとしたが、何らかの理由により購入に至らなかったユーザーを確認するためのリストを作成します。

  SELECT userId FROM usersession WHERE useraction.name = "click on book journey  (xhr: /easytravel/rest/validate-creditcard)" AND doubleProperties.booking IS NULL AND userId IS NOT NULL

その他

Sample BizDevOps Dashboardには今作成したダッシュボード以外にもいくつかのサンプルが作られています。これらを参考にダッシュボードに情報を表示させてみましょう。

ユーザーが商品の購入を諦めたり、不満を持つ原因の1つはエラーの発生です。エラーの原因はさまざまで、例えば以下のようなものが考えられます。

エラーには多くの種類があり、1つ1つ分析していては効率が悪いため、何を修正すべきか優先順位をつけるのは通常困難な作業です。また、コンテンツセキュリティポリシーを適切に扱うことでXSS攻撃を軽減することが可能となります。

このセクションでは、DynatraceがeasyTravelアプリケーション上で検知したエラーについて確認をします。エラーの確認については、大別すると以下の2つの視点から確認することが可能です。

ユーザーアクションの視点

ユーザーセッションの視点

Googleが発表したCore Web Vitalsは「ウェブ上で優れたユーザー体験を提供するための指標」であり業界の標準として利用することができます。 Dynatraceは、Core Web Vitalsを自動で測定し、数回のクリックで詳細を確認することができます。

Core Web Vitalsの3つの指標

Core Web Vitalsは以下の3つの指標が含まれています。

Core Web Vitalsでは、上記の指標をモバイル デバイスとデスクトップ デバイスに分けた上で、総ページロード数の 75 パーセンタイルをしきい値として設定しています。

ページとページグループの視点での解析

ユーザーのタグ付けやセッションとユーザーアクションのプロパティで指定するCSSセレクターについてGoogle Chromeで取得する方法について、説明します。

上記、操作は任意のDOM要素に対して行うことができます。

ハンズオン環境では、デフォルトでrevenuedestinationという2つのリクエスト属性が設定されています。

新しいリクエスト属性の定義

ここでは新しくユーザーのステータス(loyalty)をリクエスト属性として取得する方法について説明します。

easyTravelアプリの再起動

リクエスト属性をメソッドパラメーターから取得する場合、該当プロセスを再起動する必要があるため、easyTravelアプリを再起動させます。

セッションプロパティでのリクエスト属性の追加

RevenueとDestinationを設定したときと同様の手順で、Loyalty statusをセッションプロパティに設定します。

メンバーステータス毎の売上高の可視化

先ほど作成したダッシュボードにメンバーステータス毎の売上高を表示するタイルを追加します。

  SELECT stringProperties.memberstatus AS "メンバーステータス", SUM(doubleProperties.booking) AS "売上高" FROM usersession WHERE stringProperties.memberstatus IS NOT NULL GROUP BY stringProperties.memberstatus ORDER BY sum(doubleProperties.booking) DESC

このラボで最も役立ったことは何ですか?

デジタルビジネスアナリティクスの学習 User Session Propertiesの設定 BizDevOpsのコロケーションを向上させるDynatraceの使い方 USQLの使い方

このラボを友人や同僚に勧める可能性はどの程度ありますか?

強く勧めたい 勧めたい わからない 勧めない 全く勧めない