イルミネートとは?
PubNub Illuminateは、ゲームデータのライブ分析トラッキングに基づいた、その場での意思決定と実行可能なソリューションです。Illuminateを使用すると、ゲームにとって重要なKPIをマッピングし、ユーザーの行動に基づいて意思決定を行い、結果を即座に確認することができます。Illuminateを使用すれば、リアルタイムのインタラクションやゲームプレイが発生しているときに、データに裏打ちされたスマートな意思決定を即座に行い、ゲームの成長を促進し、効率を最適化することができます。
このチュートリアルでは、Illuminateの詳細、ゲーム(およびスタジオ)の成功にとってIlluminateが重要な理由、およびゲームのデータに基づいてアクションをトリガーするイン・ザ・モーメントの意思決定を作成するためのIlluminateのセットアップ方法について説明します。
なぜゲームにIlluminateなのか?
従来のほとんどの分析ツールでは、リアルタイムのデータに対してアクションを起こすのは、通常はリアクティブなものでした。プレイヤーのフィードバックに基づく価格変更などの調整は、データ収集、テスト、プラットフォーム間での展開を含む長いパッチサイクルによって妨げられ、さらに開発および将来のコンテンツ作成からリソースを逸らしてしまいます。イベント発生から数時間でも遅れると、実用的な洞察が効かなくなるため、迅速な戦術的決定を可能にするために、プレイヤーのエンゲージメントと収益化をリアルタイムで可視化することが非常に必要です。
Illuminateはローコードでカスタマイズ可能な製品であり、ゲームマネージャーやデータアナリストが戦略的決定の影響を即座に適用・評価できるようにします。Illuminateは、ゲーム開発者に負担をかけることなく、不正行為を検出しながら、ゲームバランスのオンザフライ調整、リアルタイムの実験によるより効果的で適切な収益化戦略、リテンションとプレイヤー体験を向上させるためのパーソナライズされたプレイヤー報酬の実行を可能にします。
Illuminateがあれば、プラットフォームを管理し、その時々のアクションをすべてリアルタイムで行うことができます:
- チャンネル内でターゲットを絞った収益化実験を実行し、結果を即座に確認
- プレイヤーのアクションに基づいて、パーソナライズされたレコメンデーションを即座に送信します。
- ユーザーまたはコホートの行動に基づいてアクションをトリガーし、即座に結果を確認できます。
- 不正行為の検出を改善し、疑わしい行動をリアルタイムで特定して対処。
- ゲーム内のショップアイテムの価格を調整し、試してみる。プレイヤーが同じアイテムを何個も購入している場合は価格を調整し、ゲーム内イベントをトリガーして全ショップの価格に影響を与えます。
- チャレンジやアチーブメントを達成したプレイヤーに、ゲーム内アイテムの割引コードで報酬を与える。プレイヤーが最も時間を費やしていない場所を調整し、そのエリアで時間を費やすように報酬を与えるか、プレイヤーが得る報酬の種類を変更することを検討する。
- エンジニアをバグらせることなく、その場で役立つアイテムを生み出したり、ゲームプレイの中核となる機能を調整する。
Illuminateがどのようにゲームをパワーアップさせるかについては、Illuminate for Gamingのビデオをご覧ください。
ゲームにIlluminateをセットアップする方法
ゲーム用のIlluminateのセットアップに入る前に、セットアップを通して使用されるいくつかの重要な用語を理解する必要があります。Illuminateは以下の3つのモジュールで構成されています:
- ビジネスオブジェクト:データをIlluminateに取り込む方法。選択したアプリやキーセットからデータを取得するためのコンテナであるBusiness Objectsを定義、作成、アクティブ化できます。一連のオプション(メジャー、ディメンション、またはメトリック)を通じて、リアルタイムで追跡したい特定のデータと、それをどのように集計するかを決定できます。
- 決定:作成したメトリクスに対してアクションを起こす場所です。満たすべき条件を含むルールを定義し、これらのルールが満たされたときにトリガーされるアクションを定義することで実行できます。
- ダッシュボード:Business Objects で作成したメトリクスや、Decisions で実行したアクションを、チャートやダッシュボード(チャートの集合体)を使って可視化します。
重要な用語を定義したところで、Illuminateをゲームに統合するには6つのステップがあります:
- メッセージスキーマを理解する
- データの送信元を選択します。
- データを選択する
- データを視覚化する
- データを活用する
- 可視化して調整する
メッセージスキーマを理解する
ゲームのデータスキーマを理解することは非常に重要です。これは、プレイヤーのアクション、ゲーム内のトランザクション、システムイベントなど、追跡および分析したいデータのタイプを特定することを意味します。ペイロードに何が含まれているかを正確に理解し文書化することで、開発者は、アナリストや他のチームメンバーが JSONPath を使用してデータを適切なソースに効率的にマッピングできるようになります。Business Objects を作成する際にデータを選択する際に、なぜこれが重要なのかを理解できるでしょう。
データの取得元を選択する
Illuminateは、PubNubの電源の有無にかかわらず、オンラインに接続するあらゆるゲームで使用できます。PubNubがゲームのインフラを提供している場合は、管理ポータルでビジネスオブジェクトを作成する際に、ゲームに使用する適切なアプリとキーセットを選択するだけです(詳細は後ほど説明します)。
あなたのゲームがPubNubによって供給されていない場合、あなたのデータは、REST APIを介して、または私たちのSDKのいずれかを介して、Fire APIを使用して送信することができます。Fireエンドポイントを使用すると、クライアントはFunctionsイベントハンドラにメッセージを送信できます。これらのメッセージは、あなたがファイアしたチャネルに登録されているイベントハンドラに直接送られ、それらの実行をトリガします。
PubNub Fire APIを利用するには、PubNubアカウントを作成し、ゲームに必要な機能をキーセットに設定する必要があります。このキーセットにはFire APIに必要なpublishキーとsubscribeキーが含まれています。その方法はハウツーガイドをご覧ください。
データを選択します:ビジネスオブジェクト
ビジネスオブジェクトはIlluminateの基本です。これは、Illuminate内で意思決定や視覚化に使用するデータのコンテナであり、基本的にIlluminateにデータを取り込む方法です。
ビジネスオブジェクトは3つの要素で構成されます:
- データの選択(メジャーとディメンション)
- データ・ソース(データの出所
- 条件(メトリクス)
データベースとは関係ありませんが、SQLのSELECT(メジャーとディメンジョン)、FROM(データ・ソース)、WHERE(メトリクス)という観点からビジネス・オブジェクトの構造を考えると便利です。ビジネス・オブジェクトを作成する際、注意すべき特定の詳細や回避策については、必ずドキュメントに従ってください。
データの選択
ビジネス・オブジェクトで選択できる値には 2 つのタイプがあります:メジャーとディメンジョンです。
メジャーは数値で、定量的な値です。メジャーの例としては、ゲーム時間、コイン数、キル数、武器ダメージ、注文金額などがあります。
Dimensionsは定性的な値で、プレイヤーの言語、選択した化粧品、クエストの種類、選択した武器の種類、ゲームのレベルなどがあります。
追跡したいデータの種類に応じて、JSONPathを使用してデータをメジャーとディメンションにマッピングする必要があります。Illuminate は、(前のステップで設定した)データソースからこのデータのキャプチャを開始する場所を理解する必要があります。データ・ソースを定義するには、各メジャーおよびディメンションの横にあるマップ・ボタンを選択し、対応する JSON パスを指定します。
これは、メッセージ・スキーマを理解する必要があるため、Business Objects のセットアップで最も厄介な部分です。メッセージスキーマは文書化されているか、または以前から理解しているので、これを Iluminate がデータを探す方法にマッピングする必要があります。
メッセージ(特にPublish Message API)をキャプチャしている場合、Illuminateは次の構造を探しています。インフラストラクチャがPubNubによって提供されていない場合、データはPublish Message APIと同じ構造でマッピングする必要があります:
{
"message":{ // data from the published message
"body": JSON | message body payload defined by you
"meta": JSON | meta query params defined by you
"userId": string | user ID a.k.a UUID / sender ID
"channel": string | the channel on which the message is published
},
}
メジャーまたはディメンジョンを正しくマッピングするには、メッセージ・
オブジェクトの後に別のフィールドを指定する必要があります。メジャーまたはディメンションを正しくマップするには、メッセージオブジェクトの後に別のフィールドを指定する必要があります。
これは常に次の構造に従います。
どのようにデータをマッピングするかは、メッセージの構造によって決まります。以下は、メッセージのデータをマッピングする例です:
- コインの追跡数 (メジャー) => $.message.meta.coins
- 装備している化粧品 (ディメンション) => $.message.body
- チャンネル名 (dimension) => $message.channel
- 与えたダメージ(メジャー) => $.message.body[6]
- 特定のユーザー名の取得(次元) => $.message.userId
- 友達の数 (メジャー) => $.message.body.user.friends_count
IlluminateはPubNubのApp Contextを利用してデータを取得することもでき、PubNubネットワーク上で送信されたチャネル、チャネルメンバー、チャネルメンバー、ユーザに関するメタデータを永続化することができます。Illuminateがこのデータをキャプチャする方法を正確に追うことで、この情報にアクセスできます。
{
"user": { // data from the sending user metadata, can be null
"externalId": string | user’s external ID
"type": string | user type
"status": string | user status
"custom": JSON | JSON user metadata defined by you
},
"channel":{ // data from the channel the message is sent on, can be null
"name": string | channel name
"type": string | channel type
"status": string | channel status
"custom": JSON | JSON channel metadata defined by you
},
"membership":{ // data from the user's membership to the channel, can be null
"status": string | membership status
"custom": JSON | JSON membership metadata defined by you
}
}
メッセージと同様に、メジャーまたはディメンジョンを正しくマッピングするには、ユーザ
、チャネル
、またはメンバシップ・オブジェクトに続いて
、JSONから少なくとも1つのキーを指定する必要があります。これは常に、$.user.{obligatory-secondary-field}.{optional-further-fields}
という構造に従います。以下に、App Contextのデータをマッピングする例をいくつか示します:
- ショップアイテムの詳細 (ディメンション) => $.channel.custom.details
- フレンドリストのステータス (ディメンション) => $.membership.status
- プレーヤーの言語 (ディメンション) => $.user.custom.language
- プレーヤーの平均スコア (メジャー) => $.user.custom.team_deathmatch_score
注釈 ビジネス・オブジェクトを作成するには、少なくとも 1 つのディメンジョンまたは 1 つのメジャーを追加する必要があります。
データ・ソース
メジャーおよびディメンジョンのマッピングが完了したら、データの取得元を決定する必要があります。これは、以前に決定した内容です。Illuminateが正しいソースからデータを取得していることを確認するために、先に定義した適切なアプリとキーセットを必ず選択してください。
条件(メトリクス)
データソースを選択したら、メトリクスと呼ばれる条件を追加できます。SQL の WHERE 文に似ていますが、Business Objects でデータを取得するためにメトリクスは必須ではありません。ただし、メトリッ クは、ディシジョンを作成したり、チャートを通じてダッシュボードで視覚化したりするために必要であることに留意してくだ さい(詳細は後述します)。
メトリクスの作成時には、フィルタにフィールドを割り当てて選択する必要があります。注意すべきフィールドがいくつかあります:
- ダッシュボードでデータを視覚化するチャートも同じ名前になるため、メトリックに意味のある名前を付けます。
- 関数を選択する場合、メジャーは現在、
SUM
、AVG
、MAX
、およびMIN
を使用して集計できます。ディメンジョンは、COUNT
関数のみを使用できます。関数を選択すると、ドロップダウン・リストからメジャーまたはディメンジョンを選択できます。 - Period では、Aggregation ウィンドウまたは関数の期間を選択します。
- チャートやデシジョンで使用したいディメンションを必ず選択してください(後でこれらを選択しないと、チャートでセグメンテーションしたり、デシジョンでルールに適用したりできないため)。
- 異なるディメンションに基づいて、特定のメッセージまたはApp Contextデータをフィルタリングします。ダッシュボードで視覚化してデータを収集するには、メトリックにフィルタを適用する必要はないことに留意してください。
1つのビジネス・オブジェクトに対して、異なるデータを取得する複数のメトリックを作成できます。以下は、Measure の与えたダメージと、そのダメージを与えた武器の種類をキャプチャするメトリックの例です:
データの可視化ダッシュボードとチャート
Illuminateでは、追跡したいメトリクスだけでなく、ダッシュボードのチャートを通じて、意思決定アクションとその結果も視覚化できます。
こうすることで、製品の傾向をリアルタイムで観察し、データに基づいたビジネス上の意思決定で対応し、アプローチを改善することができます。また、先に設定したビジネスオブジェクトに基づいて、Illuminateが適切にデータを取得しているかどうかを判断するのにも最適です!
ダッシュボードを作成することができます。ダッシュボードはチャートの集合体で、すべてのメトリクスを一箇所で確認したり、ダッシュボードにチャートを追加したりできます。チャートは、特定の Business Object に対して定義されたメトリックを視覚的に表したものです。
いつでも、異なる時間範囲(30 分、1 時間、またはカスタム日付など)を表示したり、棒グラフ(デフォルト表示)や折れ線グラフなど、異なるチャート・タイプでメトリッ ク・データを表示したりするなど、メトリッ ク・データをチャートに表示する方法をカスタマイズできます。
1つのダッシュボードに複数のチャート(メトリクス)を追加したり、ゲームの異なる領域(収益化、ゲームプレイ、クエスト報酬など)を視覚化するために異なるダッシュボードを持つこともできます。デシジョンを設定すると、ダッシュボードのチャートでデシジョンアクションのトリガーとその結果を見ることができます。
データの活用デシジョンとアクション
メトリックが作成されたら、そのデータの評価を開始し、傾向を監視し、最も重要なことは、それに基づいて行動することです。
IlluminateにはDecisionsモジュールがあり、さまざまなタイプのアクションと、これらのアクションを実行するタイミングを定義するルールを作成することで、行動したいメトリクスを定義できます。
デシジョンを作成する場合
- ビジネス・オブジェクトと、それにリンクされているメトリクスのいずれかを選択します。
- 実行したいアクションを定義する。
- 選択した条件と構成したアクションを使用して、[rules}(https://www.pubnub.com/docs/illuminate/decisions/basics#rules) 。これらのルールがアクションをトリガーします。
Decisionsは、プロダクト・マネージャーがエンゲージメントとマネタイズの戦略を、成文化して展開する前に実験することを目的としています。Illuminateを使用すると、仮定ではなく実際のデータに基づいて意思決定を行い、自動化された条件とアクションによってそのデータに基づいて行動することができる。
意思決定は2つの部分で構成される:アクションとルールだ。
アクション
アクションは、条件(次に説明する)が満たされたときに何が起こるかを定義する。
アクションを設定する際に、5つのアクションタイプから選択できます:
- メッセージの送信:ユーザーまたはチャネルにメッセージを送信します。PubNub Publish APIを利用します。オプションで変数(${variableThatChanges})を追加することができ、決定ルールを設定する際に動的に変更することができます。
- Webhook:サードパーティのサービス連携に接続することで、特定のURLにコールを送信します。オプションで変数 (${variableThatChanges}) を追加でき、決定ルールを設定するときに動的に制御して変更できます。
- Update User: ユーザー用のPubNub App Context APIを利用して、必要な情報をキーと値のペアとして提供することで、定義済みまたはカスタムのユーザーメタデータを設定します。
- チャネルの更新:チャネル用のPubNub App Context APIを利用して、必要な情報をキー/値のペアとして提供することで、定義済みまたはカスタムのチャネルメタデータを設定します。
- メンバーシップの更新:メンバーシップ用のPubNub App Context APIを利用して、必要な情報をキー/値のペアとして提供することで、定義済みまたはカスタムメンバーシップのメタデータを設定します。
1つのDecisionにつき設定できるメトリックは1つだけですが、ユースケースをカバーするために複数のDecisionを作成できます。DecisionのActionを作成するときは、必ずドキュメントに従ってください。
アクションの設定が完了したら、アクションをトリガーするためのルールを設定する必要があります。
ルール
ルールは、アクションをトリガするために満たさなければならない条件である、評価する条件と、条件が満たされたときに実行されるアクションで構成されます。1つのルールは、どの条件に対してどのアクションをトリガーすべきかを記述した定義(デシジョンテーブルの行)である。
デシジョンテーブルは4つの部分で構成される:
- ヒット・ポリシー:条件を満たした場合に、最初にマッチしたルール(Single)に対してのみアクションをトリガーするか、すべてのルール(Multiple)に対してアクションをトリガーするかを定義する設定。
- 集約ウィンドウ:ルール設定ウィンドウで編集できない唯一の値。メトリックを作成するときにFunctionに選択したPeriod値から自動入力されます。この値は、メトリックがメジャーまたはディメンジョンに対して指定の関数 (COUNT、AVG、MAX、その他) を実行する頻度を示します。
- 評価頻度:ルールのルックバック・ウィンドウで、Illuminate がこの Decision でルールを実行する頻度を定義します。
- 条件:条件:構成テーブルを使用して独自に定義する要件のセット。ここでは、どの条件(およびそれらが満たすしきい値)がどのアクションをトリガするかを定義します。
デシジョ ン テーブルの各行は、 条件 と ア ク シ ョ ンで構成 さ れ る 個別のデシジョ ン ルールである こ と に留意 し て く だ さ い。ルールの順序は、それらが実行される順序を決定する。既存の順序を変更したい場合は、「デシジョンのルールの編集」を選択し、各ルールの横にある「アクション」メニューの「上へ移動」または「下へ移動」オプションを使用して順序を変更する。
可視化と調整
ビジネスオブジェクト、ダッシュボード、チャート、およびディシジョンを設定したら、リアルタイムで分析し、変更を試すことができます。あなたが行った変更がゲーマーやゲームに良い影響を与えているかどうかを確認するために、バランスパッチを待つ必要はもうありません。
ゲーム内のエンゲージメントを高めるための調整を行うため、実験的な決断を下すことになります。
次のページ
Illuminateは、成長と会社の収益に直接責任を持つチームの手に、リアルタイムの実験の力を与えます。ゲームにとって重要なKPIをマッピングし、それらの行動に基づいて意思決定をトリガーすることで、ゲームプレイやユーザーの行動に基づいて実験し、データに裏打ちされたスマートな意思決定を行うための貴重なプラットフォームです。
Illuminateのリソースをチェックして、Illuminateがあなたのゲームにどのように役立つかを確認し、Illuminateを自分で試す方法を学んでください。ご質問がございましたら、devrel@pubnub.com のデベロッパー・リレーション・チームまでお気軽にお問い合わせください。
Top comments (0)