> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# アクションとルールのクイックスタート

> トリガー、条件、アクションを使用して最初の PlayStream ルールを構築し、プレイヤー イベントにリアルタイムで反応して自動化された LiveOps 応答を推進します。

# アクションとルールのクイックスタート

PlayStream ルールを使用すると、1 つのタイプの PlayStream イベントのサブセットにリアルタイムで反応できます。

## 必要条件

* [Game Manager クイックスタート](/services/playfab/live-service-management/gamemanager/quickstart)
* [プレイヤー統計の使用](/services/playfab/community/leaderboards/tournaments-leaderboards/using-player-statistics) (このチュートリアルの例で役立つ情報が含まれています)。

関連用語の簡単な用語集:

* **PlayStream**: PlayFab イベント パイプラインを構成する機能のグループ。
  * **PlayStream イベント** は、プレイヤーまたはタイトルに関するイベントを記述する JSON 形式の文字列です。
  * **PlayStream イベント** には、Automation 機能ティアに基づいた最大サイズがあります。

* **Rule**: リアルタイムで 1 つのタイプの PlayStream イベントに応答して追加のロジックを実行します。
  * 合計: 1 つの **Event Trigger**、**Conditions** のオプション リスト、および **Actions** のオプション リスト。

* **Trigger**: このルールをアクティブ化するイベントの名前。

* **Condition**: ルールおよびその他の PlayStream 機能のコンテンツ フィルター。
  * PlayStream イベント JSON オブジェクトの非常に軽量な評価を実行し、要件に一致しないイベントをスキップします。

* **Action**: 適切なエンティティに対して実行される文脈的な作業。

ルールは、正確に 1 つの Trigger、Conditions のオプション リスト、および通常は少なくとも 1 つの Action で構成されます (必須ではありませんが、それがないとほぼ役に立ちません)。

Triggers、Conditions、および Actions は、他のシステムの一部でもあります: [一括アクション](/services/playfab/data-analytics/acting-data/action-rules-bulk-actions-for-an-entire-player-segment) と [トーナメント リーダーボード (非推奨)](/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards)。

## 例のケース: クライアントからのカスタム イベントをカウントする

以下に示す例では、クライアントから次のカスタム イベントを投稿します。

```csharp theme={null}
public void WriteEvent() {
    PlayFabClientAPI.WritePlayerEvent(new WriteClientPlayerEventRequest {
        EventName = "ForumPostEvent",
        Body = new Dictionary<string, object> {
            { "Subject", "My First Post" },
            { "Body", "My awesome Post." }
        }
    }, LogSuccess, LogFailure);
}
```

この場合、クライアントはカスタムの `ForumPostEvent` を手動で報告しています (これは現在、PlayFab またはサポートされているパートナーの自動イベントには対応していません)。

プレイヤーがこの方法でフォーラム投稿を報告した回数をカウントするために、PlayStream ルールを使用します。

**要件**: Game Manager の GUI でこれをトリガーするルールを作成できるようにするには、ゲームが *既に* このタイプのイベントを投稿している必要があります。

**Game Manager** に移動します:

* **タイトル** に移動します。
* **Automation** を選択します。
* **Rules** に移動します。
* **New Rule** を選択します。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/tutorials/game-manager-automation-new-rule.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=bd467d6b0caea0e4a258bf1c6b2a7cd8" alt="Game Manager - automation - new rule" width="897" height="1036" data-path="images/playfab/data-analytics/acting-data/tutorials/game-manager-automation-new-rule.png" />

この例の **New Rule** を 1 つずつ評価してみましょう:

* **`title.6195.ForumPostEvent`**
  * `6195` はこのチュートリアルで使用されているタイトルです。あなたの titleId は自分のタイトルと一致します。
  * `ForumPostEvent` は、このサンプル ケースのコードで使用されているイベント名です。
  * この行は、タイトルで少なくとも 1 つの `ForumPostEvent` を最近投稿した場合にのみ使用可能になります。
* この例で具体的に使用されている **Conditions** は、最小限の用途しかありません。
  * ただし、**Body** ディクショナリの **Body** キーが **Invalid string** にマップされている場合にカスタム イベントをフィルタリングする様子を実証しています。
  * フィルターはオプションであり、無関係なプレイヤーをルールから削除する必要があります。
* この場合に選択された **Actions** は、統計カウンターを 1 増やします。
  * **要件**: Game Manager の Leaderboards の下で **Forum Posts** 統計を定義する必要があります。

Game Manager の **PlayStream Debugger** (以下に示す) で、トリガーが効果を発揮するのを観察できます。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/tutorials/game-manager-playstream-debugger-event-trigger.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=7fbbc21d4c1f53db11e54c647d9610fa" alt="Game Manager - PlayStream - debugger - event trigger" width="452" height="213" data-path="images/playfab/data-analytics/acting-data/tutorials/game-manager-playstream-debugger-event-trigger.png" />

ご覧のように、カスタム `ForumPostEvent` は、新しいルールの **Actions** で設定した統計を自動的にトリガーします。

## 高度な: CloudScript アクション

**PlayFab** の組み込みアクションの多くはかなりシンプルで、必要な完全な力を提供できない場合があります。だからこそ、CloudScript でアクション ロジックを完全にカスタマイズできるようにしています。

**ルール** を編集しましょう。

* **Condition** を削除します。
* **Action** を **Execute CloudScript** に設定します。
* **Save Action** ボタンを選択します。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/tutorials/game-manager-automation-edit-rule.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=b69ba07416a1d485dc29b4e69637dfe0" alt="Game Manager - automation - edit rule" width="914" height="802" data-path="images/playfab/data-analytics/acting-data/tutorials/game-manager-automation-edit-rule.png" />

これで、新しい **ForumPostEvent** を投稿すると、CloudScript の実行が表示されます。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/tutorials/game-manager-playstream-debugger-cloudscript-execution.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=f0cdab71d528049e20c131b846a84eb5" alt="Game Manager - PlayStream - debugger - CloudScript execution" width="462" height="167" data-path="images/playfab/data-analytics/acting-data/tutorials/game-manager-playstream-debugger-cloudscript-execution.png" />

PlayStream ルールに反応するように CloudScript を作成することは、[PlayStream で CloudScript アクションを使用する](/services/playfab/data-analytics/acting-data/action-rules-using-cloudscript-actions-with-playstream) チュートリアルで扱う高度なトピックです。


## Related topics

- [アクションとルール](/ja-jp/services/playfab/data-analytics/acting-data/action-rules-overview.md)
- [PlayFab データと分析のドキュメント](/ja-jp/services/playfab/data-analytics/index.md)
- [スケジュール タスクのクイックスタート](/ja-jp/services/playfab/data-analytics/acting-data/scheduled-tasks/quickstart.md)
- [Postman 向け PlayFab REST API コレクション クイックスタート](/ja-jp/services/playfab/sdks/postman/postman-quickstart.md)
- [ディメンションとしてのセグメント クイックスタート](/ja-jp/services/playfab/data-analytics/learn-data/trends/segments-dimension-qs.md)
