System and method for providing multi-part persistent content

By storing the user's interaction state with content items in the content server, cross-application maintenance of multiple continuous content components is achieved, solving the problems of resource waste and user disappointment caused by repeated presentation of interactive content items, and improving user engagement and resource utilization efficiency.

CN116347162BActive Publication Date: 2025-12-16GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211598748.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2018-11-02
Publication Date
2025-12-16
Estimated Expiration
2038-11-02

AI Technical Summary

Technical Problem

In existing technologies, interactive content projects such as game previews cannot maintain user interest and engagement across multiple presentations, and repeated presentations lead to a waste of computing and bandwidth resources.

Method used

By storing the user's interaction state with content items in the content server, multi-part persistent content is provided, allowing client devices to maintain and restore the running state of games or media in different applications, reducing the need for repeated downloads and storage.

Benefits of technology

It increases user engagement, reduces the waste of computing and bandwidth resources caused by repetitive presentations, and provides deeper interactivity and an enhanced user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116347162B_ABST
    Figure CN116347162B_ABST
Patent Text Reader

Abstract

A method for providing multi-part persistent content is provided herein, comprising: transmitting, by a client device, a first request for a multi-part content item from a server; receiving, by the client device, a first part of the multi-part content item from the server; presenting, by the client device, the first part of the multi-part content item on a display of the client device; transmitting, by the client device, an authentication token and an identification of a run state of the multi-part content item to the server, wherein the authentication token comprises a device identifier associated with the multi-part content; transmitting, by the client device, a second request for the content item to the server, the second request comprising the authentication token; receiving, by the client device, a second part of the multi-part content item from the server; and presenting, by the client device, the second part of the multi-part content item on the display of the client device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the patent application for "System and Method for Providing Multi-Part Persistent Content" having application number 201880065518.X and filed on November 02, 2018. TECHNICAL FIELD

[0002] The present disclosure relates to systems and methods for providing multi-part persistent content. BACKGROUND

[0003] Content items, such as interactive content or application previews, can be provided to client computing devices. However, such content items can be limited to single, self-contained items. While a content item can be presented multiple times to a user of a client computing device, this can increase user disappointment or disengagement with the content item. SUMMARY

[0004] The systems and methods discussed herein can provide multi-part persistent content that can maintain state across multiple presentations, including via different applications. In one such implementation, a first portion of a content item, such as a first level of a video game, can be provided to a client device, and the client device can interact with the game. An identification of the game state or an identification of completion of the first portion can be provided to a content server, which can store an association of the device or user with the running state. At a later time, based on the stored association, a second portion of the content item, such as a second level of the game, can be provided to the client device. This enables the user to be provisioned with the content item based on actual interaction of the user with the content item, and thereby can prevent the need to retransmit the same content multiple times. As a result, this can reduce computing and bandwidth resources used in provisioning the content item.

[0005] And more specifically, a method for providing multi-part persistent content is provided herein, comprising: transmitting, by a client device, a first request for a multi-part content item from a server; receiving, by the client device, a first portion of the multi-part content item from the server; presenting, by the client device, the first portion of the multi-part content item on a display of the client device; transmitting, by the client device, an authentication token and an identification of a running state of the multi-part content item to the server, wherein the authentication token includes a device identifier associated with the multi-part content; transmitting, by the client device, a second request for the content item to the server, the second request including the authentication token; receiving, by the client device, a second portion of the multi-part content item from the server; and presenting, by the client device, the second portion of the multi-part content item on the display of the client device. BRIEF DESCRIPTION OF DRAWINGS

[0006] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the disclosure will become apparent from the description, the drawings, and the claims, in which:

[0007] Figure 1A and 1B is an illustration of an example of a multi-part persistent content item in accordance with some implementations;

[0008] Figure 1C is an illustration of an example state association database in accordance with some implementations;

[0009] Figure 2 is a block diagram illustrating an embodiment of a computing device for use with multi-part persistent content; and

[0010] Figure 3 is a flow diagram illustrating an embodiment of a method for providing multi-part persistent content.

[0011] Like reference numbers and designations in different drawings indicate like elements. DETAILED DESCRIPTION

[0012] Content items, such as interactive content or application previews, can be provided to client computing devices. However, such content items can be limited to a single, self-contained item. For example, a content item can include a preview of a simple interactive game, with an option to download or purchase the full game. However, the state of the game preview can not be saved between presentations of the preview, and on each new presentation, the user can have to start over from the beginning level. While the content item can be presented to the user of the client computing device multiple times, this can increase the user's disappointment or disengagement with the content item.

[0013] Nonetheless, publishers want to engage with users multiple times to keep their interest and engagement with the content. In an offline environment, this can sometimes be accomplished via token-based games, in which a customer receives a token for each purchase, and must match a set of tokens to win a prize. However, this does not translate well to an online environment with interactive content.

[0014] In contrast, the systems and methods discussed herein can provide multi-part persistent content that can maintain state across multiple presentations, including via different applications. In one such implementation, a first part of a content item, such as a first level of a video game, can be provided to a client device, and the client device can interact with the game. An identification of the game state or an identification of the first part completion can be provided to a content server, which can store an association of the device or user with the running state. At a later time, based on the stored association, a second part of the content item, such as a second level of the game, can be provided to the client device. This can allow a content publisher to reach a user multiple times with interactive content, increasing engagement and reducing repetitive presentations. In some implementations where the content item is a preview of an application or game, the state can be saved and transferred to the application or game at download. For example, after multiple levels of a game are provided as a preview to a client device over multiple sessions, if the user chooses to download the full game, the state can be transferred to the downloaded game so that the user can resume playback from the level that had already been reached during the preview.

[0015] Figure 1A and Figure 1B are illustrations of examples of multi-part persistent content items in accordance with some implementations. In some implementations as illustrated, content items 102a-102b can be displayed as pop-ups within applications 100a, 100b. As illustrated, applications 100a, 100b can be any type and form of application, and need not be the same application. For example, in one implementation, a first application can comprise a web browser, while a second application can comprise a media player. Although illustrated as pop-ups, in many implementations, content items 102a, 102b can be provided via a banner, interstitial content, pre-roll or post-roll content, within a frame of a web page or other application, or any other type and form of content presentation.

[0016] In Figure 1A and Figure 1BIn the example shown, the content items 102a, 102b are successive levels of an interactive game. The game can be provided in separate portions, e.g., as a first portion corresponding to the first level and a second portion corresponding to the second level. This can reduce download and storage requirements, as only a portion of the game, rather than the complete game, needs to be downloaded for each content item. This can represent a significant bandwidth and storage savings for complex games, previews of applications, or media items such as television shows or movies. For example, given a content item that is a half-hour television show, short portions such as successive 30-second clips can be provided as multiple interstitial or pre- or post-roll content items to the client device. This can represent a 60: 1 reduction in the amount of data to be downloaded, while providing a potentially engaging and compelling preview for the user. Similar bandwidth and storage savings can be realized for other content as well. For example, a single level of a game can be only a few megabytes in size, as compared to several hundred megabytes for a complete game.

[0017] As shown, in many embodiments, the content items 102a, 102b can include a link, button, or other element that enables a user to download or purchase the corresponding content item (e.g., a complete application, television show, or other such content) or related content. In some embodiments as shown, the content items 102a, 102b can also include a button for canceling or skipping presentation of a portion of the content item (e.g., a skip button). In some embodiments, when a user cancels or skips a content item, a status of the content item can be provided to the content provider. In some embodiments, the cancel status can indicate that the content provider can provide the same portion of the content item in response to a subsequent request for content from the client device, rather than a subsequent portion; while in other embodiments, the cancel status can indicate that the content provider can provide a completely different content item, e.g., in the case that the user is not interested in the first content item.

[0018] In response to a cancellation or skip of a content item, and / or in response to completion of a portion of a content item (e.g., completion of a level, completion of viewing a video clip, previewing of an application for a predetermined time, etc.), a status of the content item can be provided to the content provider along with an identifier of the device or user. The status of the content item can be variously referred to as a completed portion, a running status, a playback time, or other such term. In some implementations, the identification of the status of the content item can be granular (e.g., limited to the boundaries of a portion of the content item, such as whether a user completed a level or media segment), while in other implementations, the identification of the status of the content item can be continuous (e.g., a playback time within a media segment, a score reached during playback of a game, a number of seconds of usage elapsed, etc.). The status of the content item can include other identifiers in addition to a time or progress through the content item, such as a number of coins collected in a game. The status of the content item can be communicated to the content provider via any suitable manner, such as via a parameter in a RESTful request (e.g., an HTTP POST or GET request including parameter value pairs corresponding to the status), via a remote procedure call, or any other such manner. In some implementations, the identification of the status can be included in any protocol layer of a network packet, such as in an options field of a transmission control protocol header. This can reduce processing requirements to receive and parse the packet or reduce the packet size (e.g., by not including an application layer header).

[0019] The client device can also provide an identifier of the device or user to the content provider for storage in association with the running status of the content item. The identifier can include a device identifier, a user identifier, an account name, or other such identifier. In some implementations, the identifier can include an authentication token received in response to an authentication request with an authentication server or content provider server (e.g., upon verification of user or device credentials).

[0020] Figure 1C is a diagram of an example status association database or device status database 120 according to some implementations. In some implementations, the database 120 can include a flat file, a data array, a relational database, or other such database, and can store associations between user or device identifiers 122, multi-portion content 124, and running statuses 126 of the content. In the illustrated implementation, the identifier can include an alphanumeric or numeric string, and the status 126 represents a predetermined status within the content item (e.g., completion of a level, points earned, seconds played, etc.). In other implementations, the database can include dynamically defined fields, such as XML data, and the status 126 can include a status definition (e.g., <score> 1200< / score> ; <playback time (seconds)> 30 < / playback time> ;<level> 2< / level> ; etc.

[0021] In many embodiments, the user or device identifier 122, sometimes referred to as an authentication credential or authentication token, can include an alphanumeric hash value generated from device or user information. The hash value can be used to protect privacy and enhance security by not exposing any user or device information within the database 120. Similarly, in many embodiments, the content identifier can include an alphanumeric hash value, a uniform resource identifier (URI) of the content item, a name of the content item, and / or other information such as a type, genre, publisher, or other metadata of the content. Although only three fields are shown in the example of Figure 1C Although labeled as a device identifier, in many embodiments, the database entry can be associated with a user account or other identifier that is consistent across multiple devices (e.g., a user's desktop computer, smartphone, and tablet computer). Thus, a first portion of a multi-part content item can be provided via a first device of the user, and a second portion of the multi-part content item can be subsequently provided via a second device of the user.

[0022] As shown, in many embodiments, the device identifier can be associated with multiple content items and corresponding states of operation. This can allow for presentation of different multi-part content items associated with different applications or other content. For example, in one such embodiment, a first multi-part content item including a video game can be presented as interstitial content between levels of another related game application. A second multi-part content item including a television show can be presented as a short post-roll media clip after an episode of another similar television show. Both states can be maintained concurrently, such that a user can first play the game application and receive a portion of the first multi-part content item; can then watch an episode of the television show and receive a portion of the second multi-part content item; and can then return to the game application and receive a second portion of the first multi-part content item. Thus, there is no need to limit the number and state of content items associated with any device and / or user.

[0023] Figure 2 is a block diagram illustrating embodiments of a computing device for use with multi-part persistent content. As shown, one or more client devices 250 can communicate with one or more content servers 252 via one or more networks 254 for exchanging state information and multi-part content items.

[0024] One or more client devices 250 can be variously referred to as a client, a device, a client device, a computing device, a user device, or any other such term, and can include any type and form of computing device, including a desktop computer, a laptop computer, a portable computer, a tablet computer, a wearable computer, an embedded computer, a smart television, a console, an Internet of Thing (IoT) device, or a smart appliance, or any other type and form of computing device.

[0025] In many embodiments, the client device 250 includes a processor 200 and a memory 206. The memory 206 can store machine instructions that, when executed by the processor 200, cause the processor 200 to perform one or more operations described herein. The processor 200 can include a microprocessor, an ASIC, an FPGA, or the like, or combinations thereof. In many embodiments, the processor 200 can be a multi-core processor or an array of processors. The memory 206 can include, but is not limited to, electronic, optical, magnetic, or any other storage device capable of providing the processor 200 with program instructions. The memory 206 can include a floppy disk, a CD-ROM, a DVD, a magnetic disk, a memory chip, a ROM, a RAM, an EEPROM, an EPROM, a flash memory, an optical media, or any other suitable memory from which the processor 200 can read instructions. The instructions can include code from any suitable computer programming language (such as, but not limited to, C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python, and Visual Basic).

[0026] The client device 250 can include one or more network interfaces 202. The network interface 202 can include any type and form of interface for communicating with a network, including an Ethernet interface, including 10Base T, 100Base T, or 1000Base T (“gigabit”), any kind of 802.11 wireless, such as 802.11a, 802.11b, 802.11g, 802.11n, or 802.11ac, cellular, including CDMA, LTE, 3G, or 4G cellular, Bluetooth or other short-range wireless connection, or any combination of these or other interfaces. In many embodiments, the client device 250 can include multiple network interfaces 202 of different types, allowing connection to various networks via different sub-networks, such as the Internet.

[0027] The client device 250 can include one or more user interface devices 204. The user interface devices 204 can be any electronic devices that deliver data to a user by generating sensory information (e.g., visualizations on a display, one or more sounds, tactile feedback, etc.) and / or transducing sensory information received from a user into electronic signals (e.g., a keyboard, a mouse, a pointing device, a touchscreen display, a microphone, etc.). According to various implementations, the one or more user interface devices can be internal to the housing of the client device 250 (such as a built-in display, touchscreen, microphone, etc.) or external to the housing of the client device 250, such as a monitor connected to the client device 250, a speaker connected to the client device 250, etc.

[0028] The client device 250 can include one or more applications 100a, 100b, generally referred to as one or more applications 100, in the memory 206 or can run the applications 100 with the processor 200. The applications 100 can be an application, applet, script, service, daemon, routine, or other executable logic for receiving content and displaying or otherwise outputting the content via an output interface 204 (e.g., a display, a speaker, etc.) of the client device. In some implementations, the applications 100 can be a web browser, a mail client, a video player, a music player, a video game, or any other such application. The applications 100 can include functionality for displaying content received via the network interface 202 and / or generated locally by the processor 200. In some implementations, the applications 100 can be a media player or include an embedded media player, such as a plug-in within a web browser or a native media player. Such applications 100 can include a command line interface, a graphical user interface, or any combination of these or other interfaces.

[0029] Further, in some implementations, the applications 100 can include an agent that runs in conjunction with a second application. For example, the application 100a can include a plug-in, daemon, subroutine, or other executable logic that runs with a web browser application. In such implementations, the second application need not be configured to provide run-time information to a content server; rather, the first application or agent can provide such state information for multi-part content rendered within or by the second application.

[0030] The client device 250 can include or be identified by a user or device identifier 208. The device identifier 208 can be an alphanumeric string, data string, serial number, media access control (MAC) address, internet protocol (IP) address, username or account name, globally unique identifier (GUID), cookie, random or pseudo-random number, or any other type and form of identifier, including combinations of these or other identifiers. In some implementations, the device identifier 208 can be fixed to or preconfigured in the device, such as a manufacturer serial number or MAC address, while in other implementations the device identifier 208 can be dynamically set by a content provider, streaming server, application 100, or other entity, such as a cookie or username. In some implementations, a unique or new device identifier 208 can be set for each communication to a content provider or authentication server 110, while in other implementations the device identifier 208 can not change, or can change periodically (e.g., every hour, day, week, etc.) or at other time intervals (e.g., upon rebooting the client device, logging into an internet service, etc.). In some implementations, the device identifier 208 can be associated with one or more other device identifiers 208 (e.g., a device identifier for a mobile device, a device identifier for a home computer, etc.). In many implementations, as described above, the device identifier 208 can be generated by the authentication server and / or transmitted to the device 250. In other implementations, as described above, the client 250 can request a device identifier from the authentication server 110 and can transmit the device identifier to the authentication server 110 in association with a request for content or application parameters.

[0031] The client device 250 can include user credentials 210. The user credentials 210 can be any type and form of identifier or credential, including a username, password, account name, account identifier, pass-phrase, biometric data such as a fingerprint, facial scan data, retinal information, or voice print, or any other type and form of user-specific information. In many embodiments, the client device 250 can receive the user credentials in response to a login prompt displayed by an application 100 or operating system of the client device 250. In some embodiments, the client device 250 can temporarily store the user credentials, for example during the running of an application or for a predetermined period of time. For example, in one such embodiment, a user can run a first application 100a and provide credentials to the application, which can be stored in the memory 206 of the device. Subsequently, the user can utilize a second application 100b, and the second application 100b can retrieve the user credentials 210 from the memory and provide the user credentials to an authentication server or content server 252. In many embodiments, the user credentials 210 can be encrypted, hashed, or otherwise obfuscated to protect user privacy and security. In many embodiments, the user credentials can be provided to the content server 252 via an authentication process: the user credentials or a hash of the user credentials can be provided to the content server 252, which can match the hash or credentials to hashes or credentials in a database of the server; upon identifying a match, the content server 252 can determine that the user or device is authorized or trusted, and can respond with an authorization token or other data indicating that the device is authorized. The device utilizes the authentication token with third party servers, applications, or other entities.

[0032] The client device 250 can communicate with a content server 252 via one or more networks 254. The network(s) 254 can include any type and form of network, including a local area network (LAN), a wide area network (WAN), such as the Internet, a satellite network, a cable network, a broadband network, a fiber optic network, a microwave network, a cellular network, a wireless network, or any combination of these or other such networks. The network(s) 254 can be the same type and form of network or different types and forms of networks, and can include multiple additional devices (not shown), including gateways, modems, firewalls, routers, switches, and the like. The network(s) 254 can also include any number of computing devices (e.g., computers, servers, routers, network switches, and the like) configured to receive and / or transmit data within the network(s). The network(s) 254 can also include any number of hardwired and / or wireless connections. The client device 250 can communicate wirelessly (e.g., via WiFi, cellular, radio, and the like) with a transceiver that is hardwired (e.g., via a fiber optic cable, CAT5 cable, and the like) to other computing devices in the network. In some embodiments, the network(s) 254 can be a virtual network (such as a virtual network between multiple virtual machines run by a single physical machine) or an abstract network (such as an offline transfer of data via physical removable media (e.g., Sneakernet, transferring data via tape media, CD-ROM, flash media, external hard drives, floppy disks, and the like)).

[0033] Figure 2 A block diagram of an embodiment of the content server 252 is also shown in FIG. 2. Like the client device 250, the content server 252 can include one or more processors 200, memory or storage devices 206, network interfaces 202, and user interfaces 204. In some embodiments, referred to as headless servers, the content server 252 can not include a user interface 204, but can communicate with the client 250 or other devices having a user interface 204 via the network(s) 254. In some embodiments, the memory 206 can store one or more applications run by the processor(s) 200 of the server, including an FTP server, a web server, a mail server, a file sharing server, a peer-to-peer server, or other such applications for delivering content or redirecting commands to allow a client to access content at a content provider. The content server 252 can include any type and form of computing device, including a desktop computer, a server, a workstation, a laptop computer, a portable computer, an embedded computer, or any other type and form of computing device. In many embodiments, the content server 252 can include one or more virtual machines run by one or more physical computing devices, and can be configured as a server farm, a cluster, or a cloud of devices.

[0034] The content server 252 can include a content store 212 that stores one or more content items 102a, 102b, which are generally referred to as one or more content items 102 for retrieval and installation by the client device 250. The content items 102 can be identified via a URI or URL or other application identifier as described above, and can be compressed, encrypted, or otherwise packaged for download and execution. In many embodiments, the content items 102 can have multiple portions or portions, or be divided into multiple associated content items 102 (e.g., multiple media segments, multiple levels of a game, etc.). In many embodiments, the content items 102 can have an explicit presentation order (e.g., level 2 after level 1, level 3 after level 2; or first media clip followed by second media clip, etc.). This presentation order can be noted in metadata of the content item, or in a separate playlist or manifest.

[0035] The content server 252 can include or run a content selector 214. The content selector 214 can include an application, server, service, daemon, routine, or other runnable logic to receive authentication credentials or tokens from the client device 250, and to select portions of a multi-part content item 102 associated with the user credentials and content items in the device state database 120. As described above, the device state database 120 can include any type and form of data store, including a database, flat file, relational database, array, or other structure capable of associating a device identifier 208 or user identifier (e.g., identifier 122) with content items 102 and states 126. In many embodiments, each entry or association can be further associated with an expiration time or duration. Upon expiration of the duration or expiration time, the corresponding association or entry can be removed, allowing the state of a multi-part content to "time out" or expire.

[0036] Figure 3 is a flowchart illustrating an embodiment of a method for providing multi-part persistent content. At step 300, a client device 250 can request a content item from a content server 252. In many embodiments, the request for the content item can not specify a multi-part item of content; for example, based on whether the client device can be authenticated or whether the client device does not provide valid credentials, the content server can respond with a multi-part content item or a single-part content item. Accordingly, in many embodiments, the content server 252 can determine whether to provide a multi-part content item or a single-part content item based on the request for the content item.

[0037]

[0038] ​The request may not specify any particular parameters for the content item. In many implementations, for example, if the device has been previously authenticated, the client device may submit the request to the content server 252 along with the request.

[0039] Provide an authentication token, or provide an authentication token to the content server 252 in response to a subsequent request for an authentication token.

[0040] In step 302, content server 252 can determine whether the device has been authenticated. In some implementations...

[0041] In this method, as described above, the content server can receive an authentication token upon request. If the token is valid, the content server can skip to step 308 and select a content item. If the token is invalid, then in some...

[0042] In this implementation, in step 304, the content server may transmit a request for authentication credentials. In step 306, the client device may retrieve and provide an authentication token, or retrieve and provide credentials to be authenticated by the content server or authentication server (and in turn receive an authentication token). Retrieving authentication credentials may include...

[0043] Retrieve previously entered credentials, or receive credentials from the user (e.g., username and password, biometric data, etc.). In some implementations, as described above, if the device is not authenticated or cannot be authenticated,

[0044] The content server can then select individual content items to deliver (not shown).

[0045] Once the device is authenticated and / or the authentication token has been received or transmitted to the client device, in step 308, the content server can select multiple content items to deliver. This can be done via any method.

[0046] Multi-part content items, such as other content based on what the client is watching or requesting (e.g., from a web page that requests content, such as via a referrer tag); previously played media items.

[0047] The selection of content can be based on any type and form of information, including information about the user, the client device, the application being used or the media being viewed, or any other type and form of information.

[0048] In step 310, content server 252 can determine the number of device states on content server 252.

[0049] whether or not the database contains a state association for the authentication token and the associated device or user. In some implementations, the content server 252 can look up the association via the content item as an index, while in other implementations, the content server 252 can look up the association via the device or user identifier or authentication token as an index. If no state is identified in the database, or if a state exists indicating that no portion of the content item has completed, then at step 312a, a first portion of the content item can be retrieved or selected for delivery. If a state is identified in the database, then at step 312b, the content server can select a subsequent portion of the content item for delivery.

[0050] At step 314, the content server 252 can provide the selected portion of the multi-part content item for delivery. In some implementations, providing the selected portion can include responding to the client device transmitting a redirect including an address of the selected portion of the content item; while in other implementations, providing the selected portion can include transmitting the portion of the content item in response to the content request of step 300. In some implementations, the portion of the content item can be compressed or encrypted for transmission. In some implementations, the transmission of the content item can include one or more state identifiers or parameters (e.g., a score within a game, a playback start time within the portion, or other such parameters) to allow the client device to resume presentation of the content item in the same state as the previous ended presentation of the content item.

[0051] At step 316, the client device 250 can display or render the received portion of the content item. Displaying or rendering the portion of the content item can include generating a window or frame in which to display the content, running code of the content item, decoding or rendering media of the content item, or other such functions. In some implementations, displaying or rendering the portion of the content item can include setting parameters of variables of the content item according to received state information (e.g., a score or a playback start time). As described above, in many implementations, displaying the content item can include displaying the content item within the application from which the request for content was generated at step 300. The application can be a different application than the previous one or more portions of the content item were requested and rendered.

[0052] In some implementations, at step 318, the client device 250 or application can determine whether the user of the client device has interacted with the display or rendering of the portion of the content item. The interaction can include playing a game, typing text or data in an application preview, or taking other such actions. In some implementations, the user's interaction with the content can be inferred by the user's failure to select a skip or end button. For example, in some implementations, a lack of detection of any interaction with the skip or end button can indicate that the user interacted with or viewed the content item; and this lack of a skip command can be treated as detection of an interaction. In some implementations, if an interaction is detected or if the presentation is not skipped or prematurely ended, at step 320, the client device can provide the authentication token and the running state of the content item (e.g., completed levels or media items, reached new scores, etc.) to the content server 252. At step 322, the content server can update the device state association in the database according to the received state information. In some implementations, if there is no interaction with the content within a predetermined time (or if the skip or end button is selected), the method can return to step 300 and can provide the content server 252 with state information that is not updated, allowing the content server to reselect the same portion of content in response to a subsequent request for content. In other implementations, state information indicating that the user did not interact with the content can be provided (e.g., state information that is the same as or corresponds to the state information received from the content server at step 316).

[0053] In some implementations, if the running state information indicates that the presentation of all portions of the multi-portion content is complete (e.g., all portions of a media item have been fully displayed, or the user has completed all levels of a game preview, or a total predetermined period of time has been spent using an application preview), a second content item can be provided to the client device for display to the user and / or use by the application. Thus, the systems and methods discussed herein provide for multi-portion content to be presented on a client device, with the running state maintained across multiple applications and / or sessions. This enables a deeper level of interactivity and enhanced user experience with lower bandwidth and storage requirements compared to delivering larger versions of content.

[0054] In one aspect, the application relates to a method for providing multi-part persistent content. The method includes requesting, by a client device, a content item from a content server. The method also includes receiving, by the client device from the content server, a first part of a multi-part content item, the first part of the multi-part content item being displayed to a user of the client device. The method further includes providing, by the client device to the content server, an authentication token and an identification of a run state of the multi-part content item, the content server storing the authentication token in association with the run state of the multi-part content item. The method also includes subsequently requesting, by the client device from the content server, a second content item, the request including the authentication token. The method further includes receiving, by the client device from the content server, a second part of the multi-part content item, the second part of the multi-part content item being displayed to the user of the client device, the second part being selected by the content server in response to retrieval of an association between the authentication token and the run state of the multi-part content item.

[0055] In some embodiments, the multi-part content item comprises a game, and wherein the first part and the second part each comprise a different level of the game. In some embodiments, the run state of the multi-part content item indicates completion of the first part of the multi-part content item. In some embodiments, receiving the first part of the multi-part content item includes receiving, by the client device, authentication credentials from the user of the device, transmitting, by the client device, the authentication credentials to the content server, and receiving, by the client device from the content server, the authentication token in response to validation of the authentication credentials by the content server.

[0056] In some embodiments, the method includes providing, by the client device to the content server, the authentication token and a second identification of the run state of the multi-part content item, the content server storing the authentication token in association with the second run state of the multi-part content item, and receiving, by the client device from the content server, the second content item in response to the content server determining that the second identification of the run state of the multi-part content item indicates completion of the run of the multi-part content item. In further embodiments, the second content item comprises a reward for successful completion of the multi-part content item, the reward usable by an application executed by the client device.

[0057] In some embodiments, the authentication token comprises a device identifier. In some embodiments, the first part of the multi-part content item is displayed via a first application executed by the client device; and wherein the second part of the multi-part content item is displayed via a second, different application executed by the client device.

[0058] In another aspect, the disclosure relates to a method for providing multi-part persistent content. The method includes receiving, by a content server, a request for a content item from a client device. The method also includes providing, by the content server, a first part of a multi-part content item to the client device, the first part of the multi-part content item being displayed to a user of the client device. The method also includes receiving, by the content server, an authentication token and an identification of a run state of the multi-part content item from the client device. The method also includes storing, by the content server, the authentication token in association with the run state of the multi-part content item. The method also includes subsequently receiving, by the content server, a request for a second content item from the client device, the request including the authentication token. The method also includes selecting, by the content server, a second part of the multi-part content item in response to the association between the authentication token and the run state of the multi-part content item. The method also includes providing, by the content server, the second part of the multi-part content item to the client device, the second part of the multi-part content item being displayed to the user of the client device.

[0059] In some embodiments, the multi-part content item comprises a game, and wherein the first part and the second part each comprise a different level of the game. In some embodiments, the run state of the multi-part content item indicates completion of the first part of the multi-part content item.

[0060] In some embodiments, providing the first part of the multi-part content item comprises receiving an authentication credential from the client device, validating the authentication credential, and sending the authentication token to the client device. In some embodiments, the method includes receiving, by the content server, the authentication token and a second identification of the run state of the multi-part content item from the client device, storing, by the content server, the authentication token in association with a second run state of the multi-part content item, determining, by the content server, that the second identification of the run state of the multi-part content item indicates completion of the run of the multi-part content item, and in response to the determination, providing, by the content server, a second content item to the client device. In further embodiments, the second content item comprises a reward for successful completion of the multi-part content item, the reward being usable by an application executed by the client device.

[0061] In some embodiments, the authentication token comprises a device identifier. In some embodiments, the first part of the multi-part content item is displayed via a first application executed by the client device; and wherein the second part of the multi-part content item is displayed via a second, different application executed by the client device.

[0062] In another aspect, the disclosure relates to a system for providing multi-part persistent content. The system includes a client device including a network interface to communicate with a content server and a processor running a first application. The first application is configured to request a content item from the content server and receive a first part of a multi-part content item from the content server, the first part of the multi-part content item being displayed to a user of the client device. The first application is further configured to provide an authentication token and an identification of a run state of the multi-part content item to the content server, the content server storing the authentication token in association with the run state of the multi-part content item. The first application is further configured to subsequently request a second content item from the content server, the request including the authentication token. The first application is further configured to receive a second part of the multi-part content item from the content server, the second part of the multi-part content item being displayed to the user of the client device, the second part being selected by the content server in response to retrieval of an association between the authentication token and the run state of the multi-part content item.

[0063] In some embodiments, the multi-part content item includes a game, and wherein the first part and the second part each include a different level of the game. In some embodiments, the run state of the multi-part content item indicates completion of the first part of the multi-part content item. In some embodiments, the first application is further configured to provide the authentication token and a second identification of the run state of the multi-part content item to the content server, the content server storing the authentication token in association with the second run state of the multi-part content item, and receive the second content item from the content server in response to the content server determining that the second identification of the run state of the multi-part content item indicates completion of the run of the multi-part content item.

[0064] Embodiments of the subject matter and operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on one or more computer storage media for execution by, or to control the operation of, data processing apparatus. Alternatively or additionally, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium can also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). Accordingly, the computer storage medium can be tangible.

[0065] The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0066] The term“client” or“server” includes all kinds of apparatus, devices, and machines for processing data, such as a programmable processor, a computer, a system on a chip, or multiple ones, or combinations of the foregoing. The apparatus can include special-purpose logic, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus also can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.

[0067] A computer program, which can also be referred to or referred to as a program, software, a software application, an app, a script, or code, can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to operate on one computer or on multiple computers that are located at one site or distributed across multiple sites and are interconnected by a communication network.

[0068] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[0069] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0070] To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display), OLED (organic light emitting diode), TFT (thin-film transistor), plasma, other flexible configuration, or any other monitor for displaying information to the user, and a keyboard, a pointing device, e.g., a mouse, a trackball, etc., or a touch screen, a touch pad, etc., by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user’s client device in response to requests received from the web browser.

[0071] Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. The communication network can include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0072] To the extent that the systems discussed herein collect personal information about users, or can make use of personal information, the users can be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, a user's preferences, or a user's location), or to control whether and / or how to receive content from the content server that can be more relevant to the user. In addition, certain data can be anonymized in one or more ways before it is stored or used, so that personally identifiable information is removed when generating parameters. For example, users can be anonymized so that personally identifiable information is not available to the computing system when generating parameters, or a user's geographic location can be generalized where location information is obtained (such as to a city, postal code, or state level), so that a particular location of a user cannot be determined. Thus, the user can have control over how information is collected about him or her and used by a content server.

[0073] Although this specification contains many specifics, these should not be construed as limiting the scope of any invention or application, but as merely describing a particular implementation, albeit a specific one, of a particular invention. Some features described in the specification in the context of separate implementations can also be implemented in combinations. Conversely, various features described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features can be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination and the claimed combination can be directed to a subcombination or variation of a subcombination.

[0074] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring such order, nor that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing can be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated in a single software product or packaged into multiple software products.

[0075] Accordingly, particular implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the process depicted in the accompanying figures does not necessarily require the particular order shown, or sequential order, to achieve the desired results. In some implementations, multitasking and parallel processing can be advantageous.

Claims

1. A method for providing multi-part persistent content, comprising: transmitting, by a client device from a server, a first request for a multi-part content item; receiving, by the client device from the server, a first part of the multi-part content item; presenting, by the client device on a display of the client device, the first part of the multi-part content item; transmitting, by the client device to the server, an authentication token and an identification of a run state of the multi-part content item, wherein the authentication token includes a device identifier associated with the multi-part content; transmitting, by the client device to the server, a second request for a content item, the second request including the authentication token; receiving, by the client device from the server, a second part of the multi-part content item; and presenting, by the client device on the display of the client device, the second part of the multi-part content item. the multi-part content item comprises a game, and wherein the first part and the second part each comprise a different level of the game.

2. The method of claim 1, wherein, the run state of the multi-part content item indicates completion of the first part of the multi-part content item.

3. The method of claim 1, wherein, receiving the first part of the multi-part content item further comprises:

4. The method of claim 1, wherein, receiving, by the client device from a user of the device, authentication credentials; transmitting, by the client device to the server, the authentication credentials; and receiving, by the client device from the server, the authentication token.

5. The method of claim 1, further comprising: transmitting, by the client device to the server, the authentication token and a second identification of the run state of the multi-part content item, the second identification of the run state of the multi-part content item indicating completion of a run of the multi-part content item; and receiving, by the client device from the server, a second content item. the second content item comprises a reward for successful completion of the multi-part content item, the reward usable by an application run by the client device. the first part of the multi-part content item is displayed via a first application run by the client device; and wherein the second part of the multi-part content item is displayed via a second, different application run by the client device.

6. The method of claim 5, wherein, 8. A client device, comprising:

7. The method of claim 1, wherein, a network interface configured to communicate with a server; and a processor that executes an application, the application configured to implement the method of any of the preceding claims. ​ ​

Citation Information

Patent Citations

  • Systems and methods for providing time-shifted intelligently synchronized game video

    CN107096221A

  • Data synchronization method, mobile terminal and server

    CN108132812A