[MUSIC PLAYING]
LAURA NECHITA: Hi, my name is Laura Nechita,
and I'm a software engineer on the Play Game Services team.
Our focus is on creating awesome gaming experiences
across the entire Google Play ecosystem.
ANDREW GIUGLIANO: And my name is Andrew Giugliano.
I'm a DevRel engineer on the Android and Play
team, a role where we work closely with our partners
to be successful with our latest tech, such as Google Play
Games, then take that experience internally to create better
products for our developers.
LAURA NECHITA: Play Game Services
stand at the core of the Play gaming experience.
With over 2 billion gamer profiles,
we empower developers with tools to offer players
awesome experiences across Play surfaces.
Today, we will dive deep on how to use Play Game
Services to drive seamless continuity
across your portfolio of games.
The bridge between users and developers
is the Play Games profile.
Profile creation is a one-time process,
which is triggered when the player tries
to sign in with Play Games for the first time.
The onboarding takes just one click and it's done.
Once the user is signed in, you can
start linking the player's in-game progress with the Play
Games Service's player ID.
Let's go over the additional gains
you can offer to your players by integrating Play Games
Services.
As we've seen, onboarding is a low-friction process.
Beyond that, we've made it possible for users
with an existing Play Games profile
to sign in with zero friction every time.
That means you can help your players jump
to where they left off in the game
without any extra effort like additional clicks
or entering long passwords from their side.
Besides the ease, signing in with PGS
gives the confidence to the players
that their Google account identity
is kept safe and distinct from their gamer identity.
Furthermore, Play Game Services allows
players to play the same game on multiple devices.
A user starts playing the "AFK Arena" on their mobile
and continues playing on their Google Play Games on PC
without losing their progress.
When a user signs with a Play Games profile in your game,
you will receive an identifier, the Play Games Player ID.
You can use it to identify the user
or to store in their in-game progress
to later restore it when they join the game.
Take, for example, users upgrading their devices.
This is a high-stress situation for the user
because it involves getting credentials right.
When that doesn't happen, the user
will lose their existing progress
and turn out with a high probability resulting
in lost business for you.
Play Game Services helps you solve this issue by giving you
the tools to ensure continuity.
On the previous slide, I briefly introduced Google Play Games
on PC.
As the name implies, players can play their favorite mobile game
on their Windows PC.
And one of the features offered on this platform
is continuity of play.
By signing in with the Play Games profile on mobile,
you can use their gaming profile to store the in-game progress
and restore it when they later join the game.
Imagine a user who is playing your game on mobile
and runs out of battery.
Instead of waiting for the phone to charge,
they carry on playing the game on their Windows PC.
Play Game Services and Google Play Games on PC
can help developers drive meaningful retention.
For example, we saw that Lilith Games increased
seven-day retention by over 50% and one-day retention
by over 40% by integrating with Play Game Services
and launching on Google Play Games on PC with their titles
"Rise of Kingdoms" and "AFK Arena."
Lilith attributed their higher retention value
to providing a seamless onboarding experience
for the users across mobile and PC,
where users can easily pick up where they left off.
As we saw from Lilith, Play Game Services
can bring great retention benefits to your game.
Another one of our partners, Supercell,
integrated Play Game Service's version 1 into "Clash of Clans"
a few years ago.
And after upgrading to V2 this year,
they saw an increase of 35% of daily active users signed
into their game.
Furthermore, now they see 62% of their daily active users
spending with Play Game Services.
If you are currently on Play Game Services v1,
we recommend migrating to version 2
to get the best coverage of signing in users with Play Game
Services.
Now that we've seen the benefits of Play Game Services,
let's take a quick look at how to integrate Play Game Services
v2 with your game and some new features coming
along this year.
And now, I'll hand it over to Andrew
to tell us more about how to use Play Game Services
sign-in and some new features we are introducing.
ANDREW GIUGLIANO: PGS is easy to integrate,
has a frictionless login experience for the user,
and can be leveraged within your own identity system
so that your users can seamlessly bring their game
progress across surfaces.
Let's focus on that first point.
With PGS v2, sign-in is automatically
triggered without needing any extra code.
And retrieving the player's info only takes a few lines of code.
Let's take a look at the three steps
to integrate PGS within your game.
First, you'll need to go into the Play Console, which you use
today to distribute your game among many other features.
There's a dedicated Play Game Services section
within the console, which will walk you
through the steps needed to configure your PGS project so
that your client code can call our APIs.
Next, you'll need to plug the Play SDK into your game client.
In this example, we are using Java and Gradle.
However, we also have Native and Unity SDKs
to simplify your developer experience with other setups.
As you see here, you'll pull in the PGS SDK,
specify your game's PGS project ID in the Android manifest,
and finally instantiate the SDK in your application class.
Finally, on startup in your client code,
you can see if the user successfully
logged into your game, and if so, what their Player ID is.
The first block of code here shows the call
to ensure the user is logged in with your game.
If the user chose to decline, we offer an API
to trigger the sign-in prompt so that you
can have a button in your game menu
to login the user in case they change your mind.
Otherwise, if the user is logged in,
you can use a call in the second block
to retrieve their Player ID, which
you can use to identify the player across surfaces.
And that's it.
You now have the flow all set up for user
to sign in with your game and you can retrieve the Player ID.
Now that PGS is integrated into your game,
you can take advantage of other features PGS offers,
such as profile friend lists, achievements, and leaderboards.
We also offer REST APIs so that you
can verify your PGS login attempts
server-side with Play Services.
We won't cover these in our talk,
but we recommend reading more at our developer site.
Now that we've covered how to integrate PGS into your game,
let's talk about some new features
coming this year to create a better experience
for developers and users.
First, let's cover a new privacy-forward feature
coming to PGS this year, as we call them,
Next Generation Player IDs.
As we've discussed a few times already in this talk,
the PGS Player ID is a powerful feature
which allows you to get a cross-platform identifier
on the user so that you can seamlessly restore progress
across surfaces for your users.
This also plays an important role
when fulfilling our continuity requirements
for Google Play Games on PC.
As we see here, when the PGS user
"aly" is playing his favorite game,
he has the same PGS Player ID across all of his devices.
This allows the developer to more easily create
a consistent experience for aly as he picks this game up where
he left off on each device.
Starting this year, we will be rolling out
Next Generation Player IDs, where a user's Player ID will
be consistent across surfaces for any given game
but guaranteed to be unique across different games.
With Next Generation Player IDs, they
will still be retrieved the same way as done today
and as previously shown a few slides ago.
For users who have already logged
in to your game with PGS, you will
continue to receive the same Player ID for that user
even after you've enabled Next Generation Player IDs.
If you have a portfolio of games using PGS
and you need to have a way to follow users
across more than one game, we have built a new developer
player key which will give you a cross-game identifier you
can optionally request via a new server-side API.
Visually, this is what it might look like for a single user.
I have a unique Player ID across all games.
However, for Game1 and Game2, built by the same developer,
I will have the same developer player
key, which will allow DeveloperOne
to restore my account progress across their games if needed.
For those of you who currently use PGS,
let's take a moment to focus on how
this might affect your games.
If you don't currently use a Player ID to follow players
across titles, then we expect enabling Next Generation Player
IDs won't cause any issues.
That being said, we strongly recommend
running tests using tester accounts to make sure
that your identity system is effective, such as ensuring
accounts are able to log in and link their PGS
profile with game progresses and accounts
are able to log in to the same identity
system with the same PGS profile across separate games
and have their progress tracked.
As a reminder for users who have already
logged in to your game with PGS, you
will continue to receive the same Player ID for that user,
even after you've enabled Next Generation Player IDs.
To start testing and enabling Next Generation
IDs in production, navigate to the PGS project configuration
page and under Properties, you'll
see a checkbox allowing you to turn on the feature.
When clicking On but before publishing the change,
you can test out Next Generation IDs with tester accounts
and run some of the tests we recommended
in the previous slide.
As a reminder, since Next Generation Player IDs
are delivered using the same mechanisms as Player IDs are
requested today, you won't need to make
any code changes to start testing out this new feature.
Once you have completed testing, you can publish the changes
and all users to your game will start receiving Next Generation
Player IDs.
If any issues arise and production,
you can temporarily turn the setting back to off
and publish a change.
If you rely on the PGS Player ID to power cross-site
experiences, then you can request the developer player
key with a server-side call as shown here.
However, please note that this key
will change if the title is transferred
to another developer account.
Therefore, you should not consider the developer player
key as stable over time and not use it as a primary key
to restore users' progress.
For those purposes, you should use a Player ID,
which will be stable over time.
LAURA NECHITA: Currently, the radio button
has the default value turned off.
After April 15, only game projects
will have a radio button turned on in draft mode.
You can test if this changes the game experiences.
If all goes well, publish this all together
with the other changes.
In February 2024, we will enable the feature
for all games in production.
If you notice any issues in your game,
you'll have one month to temporarily disable Next
Generation IDs and fix it.
By March 2024, Next Generation IDs
will be the default of how Play Game Services works.
Next Generation IDs enable better Play Game Services
support for all accounts, including
those under supervision, which leads us to the next subject.
This year, we've been working on adding support
for more Google accounts.
Many parents have requested this feature for a long time,
and we're happy to announce that Play Games Services
team has added full support for accounts under supervision.
Children on these accounts are able to create a Play Games
profile and have access to all our features,
such as automatic signing into games, achievements,
and leaderboards.
The child can initiate a process to create a profile
and the parent is then notified to approve the profile creation
in the Family Link app.
Once this step is completed, the profile
can be used to sign into games.
Now the user has access to the seamless experience
across devices just like regular accounts.
By turning on Next Generation IDs,
you are enabling better Play Games Services support
for all accounts, including those under supervision.
ANDREW GIUGLIANO: To finish off our talk today,
we want to give you a sneak peek on a new feature coming
this year to PGS.
As we've worked closely with partners
over the past few years, we have gained insight
on how PGS often works together as part of a larger identity
system for many of our partners.
While we have made advancements in ease of integration
with PGS v2, we want to take it one step further
and reduce the burden beyond that for developers
to integrate PGS within their own system
and deliver seamless continuity for the users.
We call this new feature the Recall API,
which will help developers integrate PGS quicker
by taking on the responsibility of mapping a developer's
identity for the user with their PGS ID.
Let's take a closer look at how this works.
This new API will allow developers
to store one or more tokens with Google,
which correspond with the user account within the developer's
identity system.
After the developer stores these tokens with Google,
they will be able to retrieve them
when the user goes on to a new device and signs
into their game with PGS.
And then they will be able to automatically restore
their progress.
To give an idea on how this new API works
within the context of a developer's identity system,
let's go through a sample scenario.
A user is playing a game where the developer has an identity
system to track user progress and uses
PGS in parallel with other authentication methods
to log users into their game.
In this example, a user is logged into their PGS account,
"Laura," and creates an in-game account
with the developer's identity system called Racer94.
As the user plays the game, the developer's game server
syncs their progress.
Separately, the developer saved the recall token
with Google, which corresponds with the user's
in-game account.
Google will automatically store that recall token
against the user's PGS profile.
The user now decides to play the game on Google Play
Games on PC for the first time.
The user is automatically signed in with their PGS account
and the game client checks to see
if there's any progress available for this PGS user.
The game server then queries Google
to see if there are any tokens for this PGS account.
Since there are, Google will send back the recall token
and the game server will use that token
to find the user's associated account, Racer94,
and restore that progress.
Since signing in with PGS is a frictionless experience,
the user's progress is restored by the developer
without needing to enter a username or password.
Furthermore, the developer can leverage PGS sign-in
with their existing identity system
and rely on Google to store the link between the player
progress and their PGS account.
As seen from the last example, with the Recall API,
there are two basic operations you'll
need to do-- store the recall tokens when a user signs in
with your identity system or creates an account
and restore those tokens when the user plays
your game on a new device and signs in with PGS.
Let's take a closer look at what you'll
need to do starting off with storing the recall token.
In the diagram to the right, we'll
discuss the actions needed from your game server and client,
the furthest two items on the left,
and how it will interact with Google Games SDK,
Game's backend, and OAuth backend.
In the first step, the game will initialize the PGS SDK
and attempt to sign in the user with PGS, which is successful.
Later on, the user will sign in with the developer's identity
system or create a new account if one doesn't exist.
Note, this isn't signing with PGS,
which has been done already, but with the developer's identity
system outside of PGS.
At this point, you can link this player account
with the user's PGS account by storing a recall token.
In order to do so, request a session ID
from the PGS SDK on your game client
and then request an OAuth2 token from Google's OAuth backend.
You will use both the session ID and the OAuth2 token
to communicate with the Google Games backend.
Finally, create an encrypted recall token,
which encodes the user's account and send
it to Google along with the session ID and OAuth2 token.
At this point, Google will create
an association between the recall token you sent
and the player's PGS account.
Please note that you can store more than one recall tokens
if you'd like to associate more than one player
progresses for a single PGS user.
Now let's say the user goes on a new device
and you want to retrieve the recall tokens.
The user will log on to a new device with PGS,
and as before, you will request a session ID
from the game client and an OAuth2 token
to communicate with Google.
You can then request for any associated recall tokens
with the PGS user's account.
Finally, you can use these tokens to seamlessly restore
the PGS user's associated accounts onto this new device.
As mentioned before, the Recall API
will be available to all developers this year.
Stay tuned for more updates.
To recap, we have discussed how PGS
can help you drive user retention for your games
by giving you the tools to provide
your players with seamless continuity across Play devices.
Furthermore, we've discussed how new features coming this year
will make PGS even more privacy-friendly for your users
and easier to integrate for developers with an existing
identity system.
So integrate PGS today to help get more users signed
into your game across multiple devices
and offer them seamless continuity no matter
how they switch between them.
And stay tuned at the link for product updates as new features
come out this year.
[MUSIC PLAYING]