Perguntas frequentes

Este documento responde a perguntas comuns sobre SDKs e publicação para o Google Play Games no PC.

Monetização

  1. Por que meu fluxo de compra falha com o código do erro 6 depois de adicionar uma nova chave de faturamento ou chave de licença?

    As chaves de licença recém-geradas no Google Play Console passam por um atraso de armazenamento em cache e propagação de várias horas no back-end de comércio antes que os caches internos do Google Play sejam sincronizados em todos os ambientes de veiculação. Mesmo que o cliente do jogo possa consultar os detalhes do produto, os pedidos de aprovação de compra vão falhar com o código de erro 6 até que a sincronização seja concluída. Aguarde algumas horas após o upload ou a atualização da chave de licenciamento antes de testar as compras.

  2. Posso usar o fluxo de compra sem um servidor de back-end?

    Do ponto de vista da segurança, o Google recomenda o uso de um servidor de back-end.

    Para mais informações, consulte Processar sem um servidor de back-end.

  3. Os sistemas de pagamento baseados em API atuais são permitidos após a integração do SDK do Google Play Games no PC?

    Todos os pagamentos precisam ser processados pelo SDK do Google Play Games no PC usando o Google Play Faturamento. Não é possível usar a forma de pagamento atual baseada em API no mesmo jogo.

  4. Como podemos consumir compras no modo de desenvolvedor?

    Consuma a compra no modo de desenvolvedor em até 3 minutos. Caso contrário, ela será reembolsada.

  5. Os pagamentos recorrentes ou assinaturas são aceitos?

    Não para o futuro imediato, mas você pode fornecer casos de uso específicos para adicionarmos ao nosso roteiro futuro.

  6. O que é o erro de faturamento nas minhas chamadas de compra?

    BillingError é a resposta do resultado do pagamento. LaunchPurchaseFlow vai retornar imediatamente sem bloqueio, mas você precisa detectar o callback para saber quando ele foi concluído e capturar o resultado.

  7. Como posso usar a verificação de compra do lado do cliente?

    Recomendamos usar a compra do lado do servidor e o processo de verificação dela. Para processar compras no app cliente, o jogo precisa estar em uma lista de permissões. Entre em contato com seu parceiro do Google se o jogo precisar de acesso. Para mais informações, consulte Processar sem um servidor de back-end.

  8. Quais são os limites da API para consultar detalhes do produto?

    O número máximo de produtos que podem ser consultados em uma única chamada para a API QueryProductDetails é 50. Se você exceder esse limite, divida a solicitação em várias chamadas.

  9. Por que as consultas de produtos ou os fluxos de compra falham com erros internos ao carregar muitas SKUs de produtos?

    Consultar muitos SKUs de produtos de uma só vez ou chamar QueryProductDetails em C++ ou QueryProductDetailsAsync no Unity consecutivamente muitas vezes em um curto período, por exemplo, enviando dezenas de chamadas em lote em um loop apertado ou criando uma nova instância BillingClient por lote, pode sobrecarregar as conexões locais de IPC e de back-end. Quando essas conexões são redefinidas, as consultas de detalhes do produto falham, e o jogo não consegue receber os tokens de oferta necessários para iniciar um fluxo de compra.

    Para evitar esses erros ao carregar o catálogo, siga estas práticas:

    • Siga o número de produtos aceitos por chamada: consulte no máximo 50 produtos em uma única chamada QueryProductDetails ou QueryProductDetailsAsync e armazene em cache o ProductDetails retornado na memória em vez de consultar novamente o catálogo completo repetidamente. Para mais informações sobre os limites de lote aceitos e a consulta de detalhes do produto, consulte a pergunta anterior sobre limites da API, Mostrar produtos disponíveis para compra para C++ e Consultar detalhes do produto para Unity.
    • Evite chamar as APIs consecutivamente muitas vezes em um curto período: não envie vários lotes de consulta de produtos simultaneamente ou em sequência sem um ritmo. Reutilize uma única instância BillingClient, serialize as solicitações ou limite a simultaneidade a duas ou três chamadas em andamento por vez e adicione um breve atraso entre lotes consecutivos.
    • Atualize para o SDK mais recente: atualize sua integração para a versão mais recente do SDK do Google Play Games no PC, versão 26.9.261.0 para C++ ou 26.9.261.0 para Unity, na página de downloads do SDK do Play Games no PC para garantir que seu cliente inclua as melhorias mais recentes de faturamento e estabilidade de IPC.
  10. Quais parâmetros são necessários ao chamar Query Purchases ou Launch Purchase Flow no Billing Client?

    A função aceita QueryPurchasesContinuation, que é um callback de função com a assinatura std::function<void(QueryPurchasesResult)>. O retorno de chamada transmite o resultado com todos os ProductPurchaseDetails. Essas informações estão disponíveis nos arquivos principais do SDK no arquivo includes/billing/models.h.

    O launch_purchase_flow_result resultante tem as funções ok() e code(). A função ok() retorna se o fluxo foi bem-sucedido. A função code() retorna o tipo enumerado BillingError (includes/billing/enums.h), que tem 10 casos de erro possíveis, como cancelamento pelo usuário ou erro de rede.

  11. É possível personalizar a ordem do fluxo de compra de lançamento no cliente de faturamento?

    No design atual do SDK, não é possível transmitir seu próprio payload. No entanto, é possível fornecer qualquer combinação de obfuscated_account_id e obfuscated_profile_id. Você pode não fornecer nenhum, apenas um ou ambos.

    O campo offer_token é obrigatório e especifica a oferta de compra que o usuário está tentando comprar no processo de finalização da compra. Por enquanto, cada SKU no Google Play tem exatamente uma oferta (por exemplo, compre um item por US $10). No futuro, a equipe do Play Faturamento vai oferecer suporte a várias ofertas.

    Para garantir que os metadados sejam associados em caso de interrupções no fluxo de compra, armazene-os no servidor de back-end antes de iniciar a caixa de diálogo de compra e associe-os ao ID da conta do usuário, à SKU que está sendo comprada e ao carimbo de data/hora atual. Para mais informações, consulte Associar uma compra a dados internos.

  12. Quais são os pré-requisitos para mudar do faturamento do Google com OAuth para o faturamento do Google baseado em DLL?

    Os jogos podem continuar usando o login do OAuth com o Google para gerenciar a conta conectada, mas o Google recomenda que você pare de usar as APIs REST legadas de faturamento. A mudança das APIs REST de faturamento (com login OAuth2) para o fluxo do SDK pode ser uma operação com flag de recurso. Assim, as duas podem coexistir por um período enquanto o jogo faz a transição.

  13. A chamada de API Launch Purchase Flow é processada por um navegador da Web?

    Não, o fluxo de compra agora é concluído inteiramente no jogo usando uma sobreposição de WebView, sem sair do cliente do jogo.

  14. O usuário precisa fazer login separadamente em cada jogo para fazer uma compra?

    A conta em primeiro plano no Google Play Games é usada para cada sessão de jogo, então não é necessário fazer login novamente. A conta que você usa no Google Play Games quando a sessão de jogo começa é a conta que emite as chamadas de API. O fluxo de compra vai usar essa conta automaticamente.

  15. Um jogo pode ser compatível com o SDK para PC e os sistemas de pagamento legados ao mesmo tempo?

    O sistema de pagamento opera em um modelo de fluxo duplo, dependendo da versão binária do jogo. Os usuários em builds legados continuam no fluxo atual, e os usuários em novos builds fazem a transição para pagamentos baseados no SDK. Os usuários de ambos os fluxos de pagamento coexistem durante o período de transição.

Pacote de app do Windows

  1. Ao enviar um WAB usando um inicializador de terceiros, o pacote do jogo é necessário para revisão?

    Basta enviar o instalador, sem precisar enviar todo o pacote do jogo. O revisor poderá fazer o download do pacote do jogo usando o instalador.

  2. Há alguma limitação no tamanho do arquivo WAB?

    Para a publicação do instalador, é possível fazer upload de um WAB de até 10 GB. Para a publicação gerenciada do Google Play, o limite máximo de tamanho do arquivo WAB é de 200 GB.

  3. Por que meu jogo não está sendo instalado ou não aparece depois que fiz upload do WAB?

    Se o jogo estiver sendo integrado sem uma versão para PC pré-existente (um "WAB pela primeira vez"), o sistema poderá colocá-lo automaticamente em um estado de retenção de publicação gerenciada. Isso acontece porque não há um valor de referência para atualizar. Para lançar totalmente o WAB e disponibilizar o jogo para instalação, acesse o Google Play Console e execute manualmente a ação de publicação necessária (por exemplo, clique em "Publicar mudanças").

  4. Como faço upload do WAB para teste interno?

    Compartilhe as contas da lista de permissões com o Google para que elas possam ser ativadas para testes internos. Depois que o Google tiver a lista, ele vai garantir que eles sejam incluídos no processo de integração.

  5. Onde o pacote WAB deve ser enviado?

    Você pode fazer upload do pacote WAB no local mencionado na primeira pergunta. No entanto, não é possível publicá-lo manualmente. É necessário fornecer à equipe de back-end do Google um horário UTC preciso (até a hora). Em seguida, o Google configura o cronograma de lançamento e garante que ele seja publicado no prazo.

SDK para PC

  1. Quais são as diferenças entre a API legada e o SDK do Google Play Games no PC?

    • A API legada oferece apenas a funcionalidade de faturamento.
    • O SDK para PC é compatível com o Google Desktop Service (GDS) e todos os recursos para PC.
    • Não é necessário fazer login no Google pelo navegador com o SDK para PC.
  2. Existe uma maneira alternativa de inicializar o SDK iniciando o jogo diretamente usando o inicializador de jogos, sem passar pelo Google Play Games no PC?

    O jogo precisa ser iniciado pelo cliente do Google Play Games no PC. Para mais detalhes, consulte este documento para desenvolvedores.

  3. O SDK para PC é compatível com caracteres multibyte no arquivo de certificação PEM?

    Sim, o SDK é compatível com caracteres multibyte para certificação.

  4. Como o SDK lida com o login na Conta do Google para várias instâncias ou contas?

    Cada inicialização no Google Play Games é tratada como uma "sessão de jogo", e cada "sessão de jogo" pode ter uma conta associada. Eles podem ser diferentes. Portanto, se você iniciar o jogo com a conta A, mudar para a conta B e reiniciar, as duas poderão ser executadas ao mesmo tempo.

  5. A integração do Play Install Referrer funciona com o SDK para PC?

    O SDK para PC (25.5.409.0 e versões mais recentes) é compatível com a API Play Install Referrer. Para mais informações, consulte a API Play Install Referrer.

Launcher

  1. Se um jogador usar um launcher de terceiros em vez do cliente do Google Play, a conta dos serviços do Google Play Games será sincronizada automaticamente?

    Para que as funções do SDK funcionem, o jogo precisa ser iniciado diretamente pelo cliente do Google Play Games. Se outro processo, como um instalador ou aplicativo de inicialização, iniciar o jogo, esse processo precisará ser iniciado pelo cliente do Google Play Games. O jogo precisa transmitir todos os parâmetros recebidos do cliente para o processo do cliente.

  2. Como faço para lidar com a inicialização se o Google Play Games iniciar um inicializador de jogos de terceiros?

    Não é necessário integrar o SDK diretamente ao seu inicializador. No entanto, é necessário transmitir todos os argumentos de linha de comando recebidos pelo inicializador do cliente do Google Play Games diretamente para o processo filho gerado (o executável do jogo). Se a inicialização falhar (por exemplo, retornando kActionRequiredShutdownClientProcess), todos os processos, incluindo o inicializador, precisam ser encerrados para que o Google Play Games possa tentar recuperar e reiniciar o jogo automaticamente. Para mais detalhes, consulte a Etapa 5 no guia de configuração.

  3. Como posso lidar com atualizações e manutenção do meu jogo e inicializador depois que ele estiver em produção?

    As atualizações e manutenções subsequentes precisam ser implementadas pelo inicializador. O cliente do Google Play Games não oferece suporte a funções de atualização. Por isso, o inicializador precisa ser capaz de atualizar o jogo e o próprio inicializador.

  4. Como o instalador recebe o token de sessão do GPG para a reprodução automática?

    O GPG transmite o token de sessão usando o argumento de linha de comando --g_session_token=<token> para o instalador. Para ativar esse recurso, defina acceptsCommandLineArguments="true" no play_publishing_config.xml.

    O instalador é responsável por extrair esse token e usá-lo para iniciar o jogo. Se a geração do token falhar, o GPG vai iniciar o instalador sem o token (substituto).

Inicialização

  1. Quando inicio um jogo usando o app Google Play Games, ele sincroniza os detalhes da minha Conta do Google?

    Depois de iniciar o jogo pelo cliente do Google Play Games, a conta é sincronizada automaticamente, e não é necessário fazer login pelo processo de login do Google novamente.

  2. É possível reutilizar os parâmetros de inicialização várias vezes?

    Isso é possível desde que o cliente do Google Play Games esteja em execução e as informações de login sejam válidas. No entanto, em cenários como o descrito no guia, todos os processos iniciados pelo jogo precisam ser encerrados quando o usuário fecha o jogo ou quando o jogo é encerrado devido a uma falha de inicialização do SDK, como kActionRequiredShutdownClientProcess.

  3. Existe alguma forma de criar um atalho para abrir o jogo diretamente?

    Use o seguinte URI para abrir o jogo diretamente:

    googleplaygames://launch/?pid=2&id=com.company.gamename

    O URI permite detectar se o cliente do Google Play Games no PC está aberto. Se o cliente não estiver aberto, o cliente do Google Play Games será aberto antes da execução do jogo ou do inicializador. Você precisa gerenciar o jogo ou o inicializador para evitar que várias instâncias sejam executadas.

  4. Existe alguma maneira de verificar a instalação do Google Play Games no PC sem usar o SDK?

    É possível verificar o status de instalação do Google Play Games no PC sem integrar o SDK. Para isso, confira se a seguinte chave de registro do Windows está presente:

    HKEY_LOCAL_MACHINE\SOFTWARE\Google\Play Games Services

    A presença dessa chave indica que os serviços do Google Play Games (necessários para executar jogos no PC) estão instalados na máquina. Se a chave estiver ausente, direcione o usuário para a página de instalação do Google Play Games no PC para baixar e instalar o cliente.

Teste

  1. Existem ambientes de teste aberto ou fechado semelhantes aos de dispositivos móveis?

    Embora um sandbox dedicado de ponta a ponta não esteja disponível, reconhecemos a necessidade de um ambiente de teste semelhante ao de produção para desenvolvedores. Uma solução mais robusta será oferecida em breve.

  2. Como posso adicionar novos testadores?

    Seu ponto de contato do Google cria um grupo de e-mail para cada projeto de PC, em que as Contas do Google dos testadores precisam ser adicionadas. Somente os membros desse grupo de e-mail estão autorizados a baixar os pacotes de teste no Google Play Games.

Diversos

  1. Posso usar uma VPN?

    Para desenvolvedores que precisam testar o jogo em regiões em que o Google Play Games no PC não está disponível, recomendamos o uso de uma VPN para adquirir um endereço IP de uma região com disponibilidade.

    Ative o modo TUN na VPN. As orientações sobre como ativar o modo TUN e configurar o firewall podem ser encontradas no manual de operação do provedor de VPN.

    Depois que o modo TUN for ativado, instale o Google Play Games no PC e o emulador para fins de teste.

  2. Como faço para começar a desenvolver para o Google Play Games no PC no Unity ou no UE Editor?

  3. Como usar as chaves de registro corretamente?

    Crie chaves de registro com base na seção raiz. É possível definir o hive raiz como HKEY_LOCAL_MACHINE ou HKEY_CURRENT_USER, dependendo da finalidade e da natureza dos dados. A seção HKEY_LOCAL_MACHINE é usada como exemplo nas diretrizes.

  4. Quais são os requisitos para a análise de pacotes para PC do Google?

    Os pacotes para PC passam por uma verificação de malware. Depois disso, os revisores testam apenas os processos de instalação, inicialização e desinstalação do jogo.

  5. É necessário integrar todas as APIs?

    Outras APIs não são obrigatórias, mas oferecem benefícios adicionais. O google::play::billing é obrigatório para compras no app e venda de conteúdo digital. O google::play::install_referrer é necessário para rastrear dados de referência e ajudar você a entender quais origens de tráfego enviam mais usuários para fazer o download do seu app. O google::play::games::integrity é necessário para proteger seu app contra usuários de má-fé, detectando dispositivos potencialmente perigosos e emuladores desconhecidos.

  6. Por que alguns processos de jogos são encerrados quando o cliente do Google Play Games é fechado, enquanto outros não?

    O Google não controla os subprocessos ou processos do jogo em execução. O comportamento depende se o jogo é emulado do Android ou para PC. Os jogos emulados são instalados no próprio ambiente, portanto, o comportamento deles depende em grande parte da inicialização e do encerramento do emulador.

  7. Devo usar o recurso de desinstalação do Google Play Games ou um desinstalador personalizado?

    O Google recomenda usar o recurso de desinstalação do Google Play Games.

Receber mais ajuda

Se você precisar de mais ajuda não abordada nestas perguntas frequentes, entre em contato com google-play-games-pc@google.com