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

# Implementando avaliações para o seu jogo

> Opções de avaliação disponíveis na Microsoft Store para títulos do GDK: configuração de avaliações gratuitas limitadas por uso no Partner Center e implementação de verificações de avaliação no jogo.

Você pode configurar vários tipos diferentes de avaliações gratuitas para o seu jogo:

* *Avaliações gratuitas por tempo limitado* - Essas avaliações expiram após um determinado período de tempo de *calendário* (por exemplo, sete dias após o usuário baixar a avaliação, independentemente de quanto tempo ele a usa).
* *Avaliações gratuitas limitadas por uso* - Permitem configurar o jogo para que o usuário o execute por um determinado período de *tempo de execução do jogo* e, em seguida, exigem que o usuário compre o jogo para continuar usando-o.
* *Avaliações selecionadas* - Essas avaliações não têm expiração nem limites de tempo de execução do jogo, mas o jogo pode limitar o que é jogável. Semelhante a uma demonstração, mas é necessário baixar o jogo inteiro.

> [!NOTE]
>
> As avaliações baseadas em tempo e em uso devem ser oferecidas uma vez por título por usuário e não devem ser misturadas com outras ofertas de avaliação. Os direitos de avaliação expirados ou esgotados permanecem na conta do usuário e impedem a aquisição de quaisquer ofertas de avaliação extras para o mesmo jogo. O tipo de avaliação não pode ser alterado ou redefinido depois que uma avaliação é adquirida por um cliente.

> [!NOTE]
>
> Algumas avaliações são gratuitas, mas são limitadas a usuários que possuem assinaturas específicas.

Este artigo também se aplica a essas avaliações.

> [!NOTE]
>
> Os jogos executados como parte de ofertas de **Dias de Jogo Grátis** não são executados como avaliações reais, mas só podem ser iniciados por licenças completas temporárias.

A configuração de avaliação e as estruturas relacionadas não se aplicam.

## Configurando uma avaliação limitada por uso no Partner Center

> [!NOTE]
>
> Você só pode acessar esse recurso se tiver as permissões adequadas e se o seu jogo usar [licenciamento restritivo](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-open-restrictive-licensing.md).

Para obter detalhes, entre em contato com seu gerente de conta da Microsoft.

Você pode configurar avaliações gratuitas limitadas por uso no Partner Center sem alterar o código do jogo. No entanto, você precisa adicionar código nos seguintes cenários:

* Restringir o acesso à avaliação somente ao usuário que adquiriu a avaliação na loja.
* Salvar o estado do jogo entre as sessões de jogo e transferir o progresso do usuário da avaliação para o jogo completo depois da compra.

1. Na página **Submission overview**, acesse a página **Pricing and availability**.
2. Em **Free trial**, abra o menu suspenso e selecione **Usage-limited**.
3. No segundo menu suspenso exibido, selecione o tempo máximo durante o qual os usuários podem usar seu aplicativo.
4. Selecione **Save**.

Depois de publicar seu jogo na Microsoft Store, você verá as informações da avaliação na página do produto do jogo.

## Restringir o acesso somente aos usuários que adquiriram a avaliação

Em alguns casos, talvez você queira permitir que somente os proprietários da avaliação executem o jogo. Essa limitação é importante para uma avaliação limitada por uso, pois você não quer que outra pessoa esgote o tempo de avaliação de outra conta. Você pode implementar essa funcionalidade verificando a propriedade [XStoreGameLicense](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md)`.isTrialOwnedByThisUser`. Se ela for `false`, impeça o jogador atual de prosseguir e informe o usuário para obter sua própria licença de avaliação.

O usuário que possui a licença de avaliação ativa é exibido em uma mensagem quando o jogo de avaliação é iniciado:

![TCUI da avaliação limitada por uso: "\<Gamertag>, você tem menos de x horas restantes"](https://mintcdn.com/microsoft-4404708b/iADzli99B7EWodAv/images/xstore/usagelimitedtrial.png?fit=max\&auto=format\&n=iADzli99B7EWodAv\&q=85\&s=d7ce2cbb02c139f99d5889ed54544e4d)

O exemplo de código a seguir mostra como verificar `isTrialOwnedByThisUser`.

```cpp theme={null}
void CALLBACK GameLicenseTrialCheck(XAsyncBlock* asyncBlock)
{
    XStoreGameLicense result{};

    HRESULT hr = XStoreQueryGameLicenseResult(
        asyncBlock,
        &result);

    // Is this a trial?
    if (result.isActive && result.isTrial)
    {
        // Is this trial owned by this user?  
        if (!result.isTrialOwnedByThisUser)
        {
            // The user can't use another user's trial time. Show an error message.
        }
    }
}

void QueryGameLicense(XStoreContextHandle storeContextHandle, XTaskQueueHandle taskQueueHandle)
{
    auto async = new XAsyncBlock{};
     asyncBlock->queue = m_asyncQueue;
    asyncBlock->callback = GameLicenseTrialCheck;

    HRESULT hr = XStoreQueryGameLicenseAsync(
        storeContextHandle,
        async);
}
```

## Salvar o estado do jogo para o usuário original da avaliação

Os jogos habilitados para os XBOX services que têm campanhas para um jogador ou outros modos de jogo que acompanham o progresso entre sessões usam o armazenamento conectado para salvar o estado do jogo. Com uma avaliação limitada, no entanto, um usuário de PC pode criar várias contas Microsoft e continuar jogando além do limite de tempo enquanto salva o progresso (usando a mesma conta XBOX). Para obter mais informações sobre esse cenário, consulte [Lidando com cenários de contas da loja incompatíveis no PC](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-mismatched-accounts.md).

Essa brecha pode ser evitada salvando o valor de [XStoreGameLicense](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md)`.trialUniqueId` quando o progresso do jogo é salvo. Posteriormente, quando o usuário começar a jogar a avaliação novamente, você poderá verificar se o valor de `trialUniqueId` corresponde ao da primeira execução.

Este código pressupõe que o jogo salva o `trialUniqueId` como parte do salvamento do jogo e tem uma função `GetSavedTrialUniqueId` que retorna esse valor.

```cpp theme={null}
void CALLBACK GameLicenseTrialCheck(XAsyncBlock* asyncBlock)
{
    XStoreGameLicense result{};

    HRESULT hr = XStoreQueryGameLicenseResult(
        asyncBlock,
        &result);

    // Is this a trial?
    if (result.isActive && result.isTrial)
    {
        // Is this trial owned by this user?
        if (!result.isTrialOwnedByThisUser)
        {
            // The user can't use another user's trial time. Show an error message.
        }
        else
        {
            // Read the trialUniqueId that was saved with the game on the first run.
            char trialUniqueId = GetSavedTrialUniqueId();
            if (trialUniqueId != result.trialUniqueId)
            {
                // Because the IDs don't match, start the game from the beginning.
            }
        }
    }
}
```

## Testando avaliações em desenvolvimento

Para testar seu jogo com uma licença de avaliação, o jogo deve primeiro ser configurado com uma licença de avaliação no Partner Center.

### XBOX

Para builds locais, é necessária uma licença real. Para builds soltos e empacotados, é necessário aplicar uma substituição de ID de conteúdo e de EKBID no MicrosoftGameConfig. Para obter mais informações, consulte [Habilitando o teste de licenças](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-licensing-setup.md).

Observe que o EKBID real de um build de avaliação deve ser usado aqui. Para obter o EKBID, você precisa baixar o build do jogo da Microsoft Store com uma conta que tenha uma licença de avaliação.

![PDP de avaliação com o botão "Install Free Trial" realçado](https://mintcdn.com/microsoft-4404708b/hprF_XHEe0cnRr8N/images/xstore/pdptrial.webp?fit=max\&auto=format\&n=hprF_XHEe0cnRr8N\&q=85\&s=c3119c04473575c1054c89a8dc840976)

Depois de configurado, ao iniciar com uma conta de teste que obteve a licença de avaliação da loja, `XStoreGameLicense` exibe atributos de avaliação precisos. Iniciar o build deve exibir a interface do usuário de notificação de avaliação.

### PC

É o mesmo processo usado para habilitar builds com uma licença completa: use a identidade de aplicativo correta no MicrosoftGame.config e garanta a ID de conteúdo adequada no local do Registro, e o build respeitará a licença da conta conectada ao aplicativo Microsoft Store, seja de avaliação ou não.

## Documentação de referência da API

* [XStore (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md)
  * Estruturas
    * [XStoreGameLicense](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md)

## Confira também

[Visão geral do comércio](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-commerce-overview.md)

[Habilitando o desenvolvimento e o teste do XStore](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-product-testing-setup.md)

[Habilitando o teste de licenças](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-licensing-setup.md)

[Referência da API XStore](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md)


## Related topics

- [Habilitar testes de licenciamento](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-licensing-setup.md)
- [Certificar um jogo](https://docs.xbox.com/pt-BR/publishing/game-publishing/tutorial-xbox-managed/how-to-certify-a-game.md)
- [Usar Review and Publish para publicar um jogo](https://docs.xbox.com/pt-BR/publishing/game-publishing/tutorial-xbox-managed/how-to-publish-a-base-game.md)
- [Configurando um aplicativo ou jogo no Partner Center para Managed Partners](https://docs.xbox.com/pt-BR/services/xbox-services/fundamentals/portal-config/live-setup-partner-center-partners.md)
- [Visão geral das avaliações](https://docs.xbox.com/pt-BR/publishing/game-publishing/concepts/availability/trials.md)
