Questions fréquentes

Ce document répond aux questions fréquentes sur les SDK et la publication pour Google Play Jeux sur PC.

Comment ajouter un VPN ?

Pour les développeurs qui souhaitent tester leur jeu dans des régions où Google Play Jeux sur PC n'est pas disponible, nous vous recommandons d'utiliser un VPN pour obtenir une adresse IP dans une région compatible.

Assurez-vous d'activer le mode TUN sur le VPN. Pour savoir comment activer le mode TUN et configurer le pare-feu, consultez le manuel d'utilisation du fournisseur de VPN.

Une fois le mode TUN activé, installez Google Play Jeux sur PC et l'émulateur à des fins de test.

Pouvez-vous utiliser le parcours d'achat sans serveur de backend ?

Du point de vue de la sécurité, le traitement sans serveur backend est généralement déconseillé.

Pour en savoir plus, consultez Traiter sans serveur backend.

Comment commencer à développer pour Google Play Jeux sur PC dans Unity ou l'éditeur UE ?

Lorsque vous lancez un jeu à l'aide de l'application Google Play Jeux, vos informations de compte Google sont-elles synchronisées ?

Après avoir lancé le jeu via le client Google Play Jeux, le compte est automatiquement synchronisé et il n'est pas nécessaire de se reconnecter via le processus de connexion Google.

Lorsque vous envoyez un app bundle Windows (WAB) à l'aide d'un lanceur tiers, le package du jeu est-il requis pour l'examen ?

Vous pouvez simplement envoyer votre programme d'installation sans avoir à envoyer l'intégralité du package de votre jeu. L'examinateur pourra télécharger le package de votre jeu à l'aide du programme d'installation.

Si un joueur utilise un lanceur d'applications tiers au lieu du client Google Play, son compte de services de jeux Play sera-t-il synchronisé automatiquement ?

Pour que les fonctions du SDK fonctionnent, le jeu doit être lancé directement via le client Google Play Jeux. Si un autre processus, tel qu'une application d'installation ou de lancement, lance le jeu, ce processus doit lui-même être lancé à partir du client Google Play Jeux. Le jeu doit transmettre tous les paramètres reçus du client au processus client.

Comment le SDK gère-t-il la connexion à un compte Google pour plusieurs instances ou comptes ?

Chaque lancement de jeu dans Google Play Jeux est traité comme une "session de jeu", et chaque "session de jeu" peut être associée à un compte. Elles peuvent être différentes. Ainsi, si vous lancez le jeu avec le compte A, puis que vous passez au compte B et que vous relancez le jeu, les deux peuvent s'exécuter en même temps.

La taille des fichiers WAB (Windows App Bundle) est-elle limitée ?

La taille des fichiers WAB ne doit pas dépasser 10 Go.

Les systèmes de paiement existants basés sur des API sont-ils autorisés après l'intégration du SDK Google Play Jeux sur PC ?

Tous les paiements doivent être gérés par le SDK Google Play Jeux sur PC à l'aide de Google Play Billing. Vous ne pouvez pas utiliser votre mode de paiement existant basé sur l'API dans le même jeu.

Existe-t-il des environnements de test ouverts ou fermés semblables à ceux pour mobile ?

Bien qu'un bac à sable de bout en bout dédié ne soit pas disponible pour le moment, nous reconnaissons la nécessité d'un environnement de test de type production pour les développeurs. Une solution plus robuste sera bientôt proposée.

Nous ne pouvons pas consommer correctement les achats effectués en mode développeur.

La consommation d'un achat en mode développeur doit être effectuée dans un délai de trois minutes, sinon l'achat peut avoir été remboursé.

Existe-t-il des différences entre l'ancienne API et le SDK Google Play Jeux sur PC ?

  • Ancienne version axée uniquement sur la facturation
  • Le SDK sera compatible avec le service Google Desktop (GDS) et toutes les fonctionnalités PC.
  • Interface SDK conviviale pour les développeurs
  • Aucune connexion Google basée sur un navigateur n'est requise

Existe-t-il une autre façon d'initialiser le SDK en lançant le jeu directement à l'aide du lanceur de jeu, sans passer par Google Play Jeux sur PC ?

Le jeu doit être lancé via le client Google Play Jeux sur PC. Pour en savoir plus, consultez la documentation pour les développeurs.

Les paiements récurrents ou les abonnements ne sont pas acceptés. Prévoyez-vous de les implémenter ?

Nous ne prévoyons pas d'ajouter ces options d'achat en plus des achats via l'application. N'hésitez pas à nous faire part de vos commentaires avec des cas d'utilisation spécifiques.

L'erreur billingerror provient-elle du début du parcours d'achat ou du résultat du paiement ?

Il s'agit de la réponse du résultat du paiement. LaunchPurchaseFlow renverra immédiatement une réponse sans bloquer l'exécution, mais vous devez écouter le rappel pour savoir quand il est terminé et capturer le résultat.

Existe-t-il un moyen de créer un raccourci pour ouvrir directement le jeu ?

Vous pouvez utiliser l'URI suivant pour ouvrir le jeu directement :

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

L'URI permet de détecter si le client Google Play Jeux sur PC est ouvert. Si le client n'est pas ouvert, le client Google Play Jeux s'ouvre avant l'exécution du jeu/lanceur. Vous devez gérer le jeu/lanceur pour empêcher l'exécution de plusieurs instances.

QueryProductDetails Limites de requêtes d'API

Le nombre maximal de produits pouvant faire l'objet d'une requête dans un seul appel à l'API QueryProductDetails est de 50. Si vous dépassez cette limite, vous devez diviser la requête en plusieurs appels.

Pourquoi mon jeu ne s'installe-t-il pas ou n'apparaît-il pas après que j'ai importé mon premier Windows App Bundle (WAB) ?

Si votre jeu est intégré sans version PC préexistante (une "première fois WAB"), le système peut le placer automatiquement dans un état de publication gérée. Cela se produit parce qu'il n'existe aucune référence à mettre à jour. Pour publier complètement le WAB et rendre le jeu disponible à l'installation, vous devez accéder à la Google Play Console et exécuter manuellement l'action de publication requise (par exemple, en cliquant sur "Publier les modifications").

Comment gérez-vous l'initialisation si Google Play Games lance un lanceur de jeu tiers ?

Vous n'êtes pas tenu d'intégrer le SDK directement dans votre lanceur d'applications. Toutefois, vous devez transmettre tous les arguments de ligne de commande reçus par le lanceur du client Google Play Jeux directement au processus enfant généré (l'exécutable du jeu). Si l'initialisation échoue (par exemple, en renvoyant kActionRequiredShutdownClientProcess), tous les processus, y compris le lanceur, doivent être arrêtés afin que Google Play Jeux puisse tenter de récupérer et de relancer le jeu automatiquement. Pour en savoir plus, consultez l'étape 5 du guide de configuration.

Une erreur de délai d'attente est-elle prévue si un utilisateur ferme le navigateur sans payer lors d'un parcours d'achat ?

Oui, il s'agit d'un problème connu et d'un comportement prévu dans le flux actuel basé sur le navigateur. Google travaille activement sur une fonctionnalité d'achat fluide (basée sur WebView) qui permettra de maintenir le parcours de paiement dans le jeu et de résoudre ce problème de délai d'expiration.

Le SDK PC natif est-il compatible avec les caractères multibytes dans le fichier de certification (PEM) ?

Oui, le SDK accepte les caractères multibytes pour la certification.

Quels paramètres sont requis lorsque vous appelez BillingClient::QueryPurchases ou BillingClient::LaunchPurchaseFlow ?

La fonction accepte QueryPurchasesContinuation, qui est un rappel de fonction avec la signature std::function<void(QueryPurchasesResult)>. Le rappel vous transmet le résultat avec tous les ProductPurchaseDetails. Ces informations sont disponibles dans les fichiers d'en-tête du SDK, dans le fichier includes/billing/models.h.

Le launch_purchase_flow_result obtenu comporte les fonctions ok() et code(). La fonction ok() indique si le flux a réussi. La fonction code() renvoie l'énumération BillingError (includes/billing/enums.h), qui comporte 10 cas d'erreur possibles, tels que l'annulation par l'utilisateur ou une erreur réseau.

L'appel de BillingClient::LaunchPurchaseFlow() permet-il de transmettre un numéro de commande personnalisé ?

Dans la conception actuelle du SDK, il n'est pas possible de transmettre votre propre charge utile. Toutefois, vous pouvez fournir n'importe quelle combinaison de obfuscated_account_id et obfuscated_profile_id. Vous pouvez n'en fournir aucun, un seul ou les deux.

Le champ offer_token est obligatoire et spécifie l'offre d'achat que l'utilisateur tente d'acheter dans le parcours de paiement. Pour le moment, chaque SKU sur Google Play ne comporte qu'une seule offre (par exemple, acheter un article pour 10 $). À l'avenir, l'équipe chargée de la facturation Play prendra en charge plusieurs offres.

Pour garantir l'association des métadonnées en cas d'interruption du parcours d'achat, stockez-les sur votre serveur backend avant de lancer la boîte de dialogue d'achat et associez-les à l'ID de compte de l'utilisateur, au SKU acheté et à l'horodatage actuel. Pour en savoir plus, consultez Associer un achat à des données internes.

L'intégration de Play Install Referrer fonctionne-t-elle ?

La dernière version du SDK (25.5.409.0 et versions ultérieures) est compatible avec l'API Play Install Referrer. Pour en savoir plus, consultez la documentation de l'API Play Install Referrer.

Un utilisateur doit-il se connecter séparément à chaque jeu pour effectuer un achat ?

Le compte au premier plan dans Google Play Jeux est utilisé pour chaque session de jeu. Vous n'avez donc pas besoin de vous reconnecter. Le compte que vous utilisez dans Google Play Jeux au début de la session de jeu est celui à partir duquel les appels d'API sont émis. Lorsque vous lancez un parcours d'achat dans le navigateur, vous devez être connecté et utiliser le même compte que celui de la session de jeu. Si l'utilisateur est connecté à un autre compte, le parcours Web l'invite à changer de compte.

Quelles sont les conditions préalables pour passer de la facturation Google avec OAuth à la facturation Google native avec DLL ?

Les jeux peuvent continuer à utiliser la connexion OAuth avec Google pour gérer le compte connecté, mais Google vous recommande d'arrêter d'utiliser les anciennes API REST de facturation. Le passage des API de facturation REST (avec connexion OAuth2) au flux du SDK peut être une opération signalée par un indicateur de fonctionnalité. Les deux peuvent donc coexister pendant un certain temps pendant que le jeu effectue la transition.

L'API Payment Request (LaunchPurchaseFlow) est-elle traitée par le biais d'un navigateur Web ?

Oui, pour le moment, elle est traitée via un navigateur. Google prévoit de finaliser l'ensemble du processus sans quitter le jeu, ce qui est possible grâce au SDK.

Est-il possible de réutiliser plusieurs fois les paramètres d'initialisation ?

Cela est possible tant que le client Google Play Jeux est en cours d'exécution et que les informations de connexion sont valides. Toutefois, dans des scénarios comme celui décrit dans le guide, tous les processus lancés par le jeu doivent être arrêtés lorsque l'utilisateur ferme le jeu ou que le jeu se ferme en raison d'un échec d'initialisation du SDK, tel que kActionRequiredShutdownClientProcess.

Puis-je utiliser des clés de registre sous HKEY_CURRENT_USER au lieu de HKEY_LOCAL_MACHINE ?

Vous devez créer des clés de registre en fonction de la ruche racine. Vous pouvez définir la ruche racine sur HKEY_LOCAL_MACHINE ou HKEY_CURRENT_USER selon votre objectif et la nature des données. La ruche HKEY_LOCAL_MACHINE est utilisée comme exemple dans les consignes.

Un jeu peut-il prendre en charge à la fois le SDK natif et les anciens systèmes de paiement ?

Le système de paiement fonctionne selon un modèle à double flux en fonction de la version binaire du jeu. Les utilisateurs des anciennes versions continuent d'utiliser le flux existant, tandis que ceux des nouvelles versions passent aux paiements basés sur le SDK. Les utilisateurs des deux parcours de paiement coexistent pendant la période de transition.

Comment importer le fichier WAB pour les tests internes ?

Partagez les comptes de la liste d'autorisation avec Google pour que Google puisse les activer pour les tests internes. Une fois que Google a reçu la liste, il s'assure que les fournisseurs sont inclus dans le processus d'intégration.

Où ajouter de nouveaux testeurs ?

Votre point de contact Google crée un groupe de diffusion pour chaque projet de PC, auquel les comptes Google des testeurs doivent être ajoutés. Seuls les membres de ce groupe de diffusion sont autorisés à télécharger les packages de test dans Google Play Jeux.

Où le package PC officiel doit-il être importé avant le lancement officiel ?

Vous pouvez importer le package WAB à l'emplacement mentionné dans la première question. Toutefois, vous ne pouvez pas le publier manuellement. Vous devez fournir au personnel du backend Google une heure UTC précise (à l'heure près). Google configure ensuite le calendrier de publication et s'assure qu'il est publié à temps.

Comment gérez-vous les mises à niveau et la maintenance après le lancement officiel ?

Les mises à niveau et la maintenance ultérieures doivent être implémentées via votre lanceur. Le client Google Play Jeux n'est pas compatible avec les fonctions de mise à jour. Le lanceur doit donc être capable de mettre à jour à la fois le jeu et le lanceur lui-même.

Quelles sont les exigences pour l'examen des packages PC par Google ?

Les packages pour PC sont soumis à une analyse anti-malware, après quoi les examinateurs ne testent que les processus d'installation, de démarrage et de désinstallation du jeu.

Est-il nécessaire d'intégrer toutes les API ?

Les autres API ne sont pas obligatoires, mais elles offrent des avantages supplémentaires. google::play::billing est obligatoire pour les achats via une application et la vente de contenus numériques. google::play::games::recall est nécessaire pour suivre les données de parrainage et vous aider à comprendre quelles sources de trafic envoient le plus d'utilisateurs pour télécharger votre application. google::play::games::integrity est nécessaire pour protéger votre application contre les acteurs malveillants en détectant les appareils potentiellement risqués et les émulateurs inconnus.

Pourquoi certains processus de jeu sont-ils arrêtés lorsque le client Google Play Jeux est fermé, tandis que d'autres ne le sont pas ?

Google ne contrôle pas les sous-processus ni les processus du jeu en cours d'exécution. Le comportement dépend du type de jeu : jeu Android émulé ou jeu PC natif. Les jeux émulés sont installés dans leur propre environnement. Leur comportement dépend donc en grande partie de l'initialisation et de l'arrêt de l'émulateur.

Dois-je utiliser la fonctionnalité de désinstallation de Google Play Jeux ou un programme de désinstallation personnalisé ?

Google recommande d'utiliser la fonctionnalité de désinstallation de Google Play Jeux.