> ## 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.

# Início rápido de Ações e Regras

> Crie sua primeira Regra do PlayStream com gatilhos, condições e ações para reagir a eventos de jogadores em tempo real e impulsionar respostas automatizadas de LiveOps.

# Início rápido de ações e regras

Uma regra do PlayStream permite que você reaja a um subconjunto de um tipo de evento do PlayStream em tempo real.

## Requisitos

* [Início rápido do Game Manager](/pt-BR/services/playfab/live-service-management/gamemanager/quickstart)
* [Usando estatísticas de jogadores](/pt-BR/services/playfab/community/leaderboards/tournaments-leaderboards/using-player-statistics) (contém informações que podem ajudar você com o exemplo deste tutorial).

Um glossário rápido de termos relevantes:

* **PlayStream**: o grupo de recursos que compõe o pipeline de Eventos do PlayFab.
  * Um **Evento do PlayStream** é uma cadeia de caracteres no formato JSON que descreve um evento sobre um Jogador ou Título.
  * Os **Eventos do PlayStream** têm um tamanho máximo com base no nível do seu recurso de Automação.

* **Regra**: executa lógica extra em resposta a um tipo de Evento do PlayStream em tempo real.
  * A soma de: um **Gatilho de Evento**, uma lista opcional de **Condições** e uma lista opcional de **Ações**.

* **Gatilho**: o nome do Evento que ativa esta Regra.

* **Condição**: um filtro de conteúdo para Regras e outros recursos do PlayStream.
  * Executa uma avaliação muito leve do objeto JSON do evento do PlayStream e ignora os eventos que não atendem aos requisitos.

* **Ação**: o trabalho contextual a ser feito na entidade apropriada.

Uma regra consiste em exatamente um Gatilho, uma lista opcional de Condições e normalmente pelo menos uma Ação (não é obrigatória, mas a regra é bastante inútil sem ela).

Gatilhos, Condições e Ações também fazem parte de outros sistemas: [ações em massa](/pt-BR/services/playfab/data-analytics/acting-data/action-rules-bulk-actions-for-an-entire-player-segment) e [placares de torneio (preterido)](/pt-BR/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards).

## Caso de exemplo: contar eventos personalizados do cliente

No exemplo apresentado abaixo, publicamos o seguinte evento personalizado do cliente.

```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);
}
```

Neste caso, o cliente está relatando manualmente um `ForumPostEvent` personalizado (isso atualmente não corresponde a nenhum Evento Automático no PlayFab ou em parceiros compatíveis)

Usaremos uma Regra do PlayStream para contar o número de vezes que um Jogador relata uma postagem no fórum dessa forma.

**Requisito**: seu jogo *já* deve estar publicando Eventos desse tipo antes que a interface gráfica do Game Manager permita que você crie uma Regra disparada por eles.

Acesse o seu **Game Manager**:

* Navegue até o seu **Title**.
* Selecione **Automation**.
* Vá para **Rules**.
* Selecione **New Rule**.

![Game Manager - automação - nova regra](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)

Vamos avaliar a **New Rule** deste exemplo parte por parte:

* **`title.6195.ForumPostEvent`**
  * `6195` é o título usado neste tutorial. Seu titleId corresponderá ao seu próprio Título.
  * `ForumPostEvent` é o nome do evento usado no código deste caso de exemplo.
  * Esta linha só estará disponível se você tiver publicado recentemente pelo menos um `ForumPostEvent` no seu Título.
* As **Conditions** usadas especificamente neste exemplo têm uso mínimo.
  * No entanto, elas *demonstram* a filtragem do nosso Evento Personalizado se a chave **Body** estiver mapeada para **Invalid string** no nosso dicionário **Body**.
  * Os filtros são opcionais e devem remover jogadores irrelevantes da sua Regra.
* As **Actions** escolhidas neste caso incrementam um contador de estatística em um.
  * **Requisito**: a estatística **Forum Posts** deve estar definida em Leaderboards no Game Manager.

No **PlayStream Debugger** do Game Manager (mostrado abaixo), você pode observar o gatilho entrar em vigor.

![Game Manager - PlayStream - depurador - gatilho de evento](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)

Como você pode ver, o `ForumPostEvent` personalizado dispara automaticamente a estatística que definimos em **Actions** para a nossa nova Regra.

## Avançado: Ações do CloudScript

Muitas das ações integradas do **PlayFab** são bastante simples e podem não oferecer todo o poder de que você precisa. É por isso que permitimos que você personalize totalmente a lógica da ação com o CloudScript.

Vamos editar a **Regra**.

* Remova a **Condition**.
* Defina a **Action** como **Execute CloudScript**.
* Selecione o botão **Save Action**.

![Game Manager - automação - editar regra](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)

Agora, se publicarmos um novo **ForumPostEvent**, veremos uma execução do CloudScript.

![Game Manager - PlayStream - depurador - execução do CloudScript](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)

Escrever seu CloudScript para reagir a Regras do PlayStream é um tópico avançado abordado no nosso tutorial: [usando ações do CloudScript com o PlayStream](/pt-BR/services/playfab/data-analytics/acting-data/action-rules-using-cloudscript-actions-with-playstream).


## Related topics

- [Ações e Regras](/pt-BR/services/playfab/data-analytics/acting-data/action-rules-overview.md)
- [Documentação de dados e análises do PlayFab](/pt-BR/services/playfab/data-analytics/index.md)
- [Guia de início rápido do CloudScript do PlayFab usando Azure Functions](/pt-BR/services/playfab/live-service-management/service-gateway/automation/cloudscript-af/quickstart.md)
- [Início rápido da Amostragem de Eventos](/pt-BR/services/playfab/data-analytics/export-data/event-sampling-quickstart.md)
- [Início rápido da Previsão de Rotatividade](/pt-BR/services/playfab/data-analytics/learn-data/churn-prediction/churn-prediction-quickstart.md)
