IP Library Granted Patent US 11,463,498
Granted Patent B2
US 11,463,498 · App. 16/906,857 · Granted Oct 4, 2022

Persisting state of a streaming application

Inventors: Tuna Toksoz (Mountain View, CA); Thomas Graham Price (San Francisco, CA)
Assignee: Google LLC
H04L65/764H04L65/40H04L65/612H04L67/53
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,463,498
App. No.
16/906,857
Granted
Oct 4, 2022
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for persisting state of a streaming application are disclosed. In one aspect, a method includes the actions of receiving data indicating interaction with third-party content that is displayed with first-party content at a client device. The interaction with the third-party content initiates an application request for a streaming version of an application (“streaming application”). The actions further include generating a representation of the streaming application in response to the interaction with the third-party content at the client device. The actions further include receiving data indicating a user interaction with the representation of the streaming application at the client device. The actions further include generating and storing data indicating a first state of the streaming application at a first time based on the user interaction with the representation of the streaming application.

Claims (73)

1. A computer-implemented method comprising:

receiving, by a server system and from a user device of a user, a request for a graphical interface of a web-based application accessed at the server system;

in response to the request for the graphical interface of the web-based application, providing, by the server system and to the user device, the graphical interface of the web-based application;

prompting the user to choose between (i) using the graphical interface of the web-based application presented in a browser executing at the user device and (ii) using a locally-installed application that is installed on the user device; and

in response to the user choosing to use the locally-installed application, providing (i) state data specifying a current state of the web-based application, and (ii) instructions that update a state of the locally-installed application being locally executed at the user device to match the current state of the web-based application.

2. The method of claim 1 , wherein a display of the user device is updated to present the graphical interface to the web-based application without installing the locally-installed application on the user device.

3. The method of claim 1 , comprising generating and storing data indicating a changed state of the web-based application with data that identifies the user device.

4. The method of claim 3 , wherein generating and storing data indicating a changed state of the web-based application comprises generating and storing data indicating an item placed in a virtual shopping cart by the user.

5. The method of claim 1 , comprising:

receiving, by the server system, data indicating interaction with third-party content that is displayed with first-party content at the user device;

in response to the interaction with the third-party content at the user device, initiating, by the server system, a request for a streaming application;

in response to the request for the streaming application:

executing, by the server system, the streaming application, and

generating, by the server system, a graphical representation of the streaming application;

providing, by the server system and to the user device, the graphical representation of the streaming application and instructions to display the graphical representation of the streaming application on the display of the user device;

receiving, from the user device and by the server system, data indicating a user interaction with the graphical representation of the streaming application at the user device;

determining, by the server system, that the user interaction changed a state of the streaming application;

based on determining that the user interaction changed the state of the streaming application, generating and storing, by the server system, data indicating the changed state of the streaming application; and

after a particular period of time has elapsed after storing the data indicating the changed state of the streaming application, deleting the data indicating the changed state of the streaming application.

6. The method of claim 5 , wherein:

the streaming application is a game application; and

the server system executes the game application, generates the graphical representation of the game application, and stores game progress as the user interacts with the graphical representation of the game application.

7. The method of claim 1 , comprising:

receiving a request for the current state of the web-based application;

authenticating the request for the current state of the web-based application, wherein the instructions that update the state of the locally-installed application are provided based on authenticating the request for the current state of the web-based application.

8. A system comprising:

a memory and one or more data processing apparatus, wherein the one or more data processing apparatus are configured to execute instructions that cause the one or more data processing apparatus to perform operations including:

receiving, from a user device of a user, a request for a graphical interface of a web-based application accessed at a server;

in response to the request for the graphical interface of the web-based application, providing, to the user device, the graphical interface of the web-based application;

prompting the user to choose between (i) using the graphical interface of the web-based application presented in a browser executing at the user device and (ii) using a locally-installed application that is installed on the user device; and

in response to the user choosing to use the locally-installed application, providing (i) state data specifying a current state of the web-based application, and (ii) instructions that update a state of the locally-installed application being locally executed at the user device to match the current state of the web-based application.

9. The system of claim 8 , wherein a display of the user device is updated to present the graphical interface to the web-based application without installing the locally-installed application on the user device.

10. The system of claim 8 , wherein the instructions cause the one or more data processing apparatus to perform operations comprising generating and storing data indicating a changed state of the web-based application with data that identifies the user device.

11. The system of claim 10 , wherein generating and storing data indicating a changed state of the web-based application comprises generating and storing data indicating an item placed in a virtual shopping cart by the user.

12. The system of claim 8 , wherein the instructions cause the one or more data processing apparatus to perform operations comprising:

receiving, by the server, data indicating interaction with third-party content that is displayed with first-party content at the user device;

in response to the interaction with the third-party content at the user device, initiating, by the server, a request for a streaming application;

in response to the request for the streaming application:

executing, by the server, the streaming application, and

generating, by the server, a graphical representation of the streaming application;

providing, by the server and to the user device, the graphical representation of the streaming application and instructions to display the graphical representation of the streaming application on the display of the user device;

receiving, from the user device and by the server, data indicating a user interaction with the graphical representation of the streaming application at the user device;

determining, by the server, that the user interaction changed a state of the streaming application;

based on determining that the user interaction changed the state of the streaming application, generating and storing, by the server, data indicating the changed state of the streaming application; and

after a particular period of time has elapsed after storing the data indicating the changed state of the streaming application, deleting the data indicating the changed state of the streaming application.

13. The system of claim 12 , wherein:

the streaming application is a game application; and

the server executes the game application, generates the graphical representation of the game application, and stores game progress as the user interacts with the graphical representation of the game application.

14. The system of claim 8 , wherein the instructions cause the one or more data processing apparatus to perform operations comprising:

receiving a request for the current state of the web-based application;

authenticating the request for the current state of the web-based application, wherein the instructions that update the state of the locally-installed application are provided based on authenticating the request for the current state of the web-based application.

15. A non-transitory computer-readable medium storing instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:

receiving, from a user device of a user, a request for a web-based application a graphical interface of a web-based application accessed at a server system;

in response to the request for the graphical interface of the web-based application, providing, to the user device, the graphical interface of the web-based application;

prompting the user to choose between (i) using the graphical interface of the web-based application presented in a browser executing at the user device and (ii) using a locally-installed application that is installed on the user device; and

in response to the user choosing to use the locally-installed application, providing (i) state data specifying a current state of the web-based application, and (ii) instructions that update a state of the locally-installed application being locally executed at the user device to match the current state of the web-based application.

16. The non-transitory computer-readable medium of claim 15 , wherein a display of the user device is updated to present the graphical interface to the web-based application without installing the locally-installed application on the user device.

17. The non-transitory computer-readable medium of claim 15 , wherein the instructions cause the one or more computers to perform operations comprising generating and storing data indicating a changed state of the web-based application with data that identifies the user device.

18. The non-transitory computer-readable medium of claim 17 , wherein generating and storing data indicating a changed state of the web-based application comprises generating and storing data indicating an item placed in a virtual shopping cart by the user.

19. The non-transitory computer-readable medium of claim 16 , wherein the instructions cause the one or more computers to perform operations comprising:

receiving data indicating interaction with third-party content that is displayed with first-party content at the user device;

in response to the interaction with the third-party content at the user device, initiating a request for a streaming application;

in response to the request for the streaming application:

executing the streaming application, and

generating a graphical representation of the streaming application;

providing, to the user device, the graphical representation of the streaming application and instructions to display the graphical representation of the streaming application on the display of the user device;

receiving, from the user device, data indicating a user interaction with the graphical representation of the streaming application at the user device;

determining that the user interaction changed a state of the streaming application;

based on determining that the user interaction changed the state of the streaming application, generating and storing data indicating the changed state of the streaming application; and

after a particular period of time has elapsed after storing the data indicating the changed state of the streaming application, deleting the data indicating the changed state of the streaming application.

20. The non-transitory computer-readable medium of claim 19 , wherein:

the streaming application is a game application; and

the one or more computers execute the game application, generate the graphical representation of the game application, and store game progress as the user interacts with the graphical representation of the game application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2020
From: TOKSOZ, TUNA; PRICE, THOMAS GRAHAM
To: GOOGLE INC.
Reel/Frame 053295/0928 →
CHANGE OF NAME Recorded Jul 23, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 053300/0220 →
Continuity (3)
Continuation 16406280 · May 8, 2019
Continuation 15213994 · Jul 19, 2016
Related Publication 20200322398A1 · Oct 8, 2020