Digital service subscription scheduling

A centralized subscription management system automates the switching and scheduling of multiple digital service subscriptions, addressing inefficiencies and redundancy in existing methods, improving user experience and efficiency.

WO2025212090A1PCT designated stage Publication Date: 2025-10-09STREAMSAVER LTD +4

Patent Information

Application Number
PCT/US2024/022879
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-03
Publication Date
2025-10-09

AI Technical Summary

Technical Problem

Managing multiple digital service subscriptions across different providers is time-consuming and inefficient, especially on smaller devices, and users often end up with redundant access due to difficulty in comprehending and coordinating subscription details.

Method used

A computer-implemented method and application that allows users to manage multiple subscriptions through a centralized online account, enabling switching between active and inactive states, automating subscription rotations, and providing a graphical interface for managing and scheduling subscriptions.

Benefits of technology

Simplifies the management of multiple digital service subscriptions by reducing manual interactions, optimizing active subscriptions, and providing automated switching and scheduling, thereby enhancing user convenience and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024022879_09102025_PF_FP_ABST
    Figure US2024022879_09102025_PF_FP_ABST
Patent Text Reader

Abstract

A computer-implemented method of scheduling a plurality of subscriptions of a user to digital services, in which each subscription of the plurality of subscriptions is manageable by the user in an online user account of a provider of the digital service, including switchable between active and inactive, which method comprise the steps of: within an application (118) on a user device (116): requesting the user to access their online user account at each provider of the plurality of subscriptions using an in-app browser; receiving session data (230) sent by each provider to the in-app browser when the user accesses each online user account of the respective provider using the in-app browser; storing a mapping between said session data and the associated provider; using a graphical user interface (141) of said user device (116) to display a subscription rotation order of at least two of said plurality of subscriptions, wherein said subscription rotation order comprises an indication of at least one subscription to be active at any one time, a rotation order in which the plurality of subscriptions is to be rotated sequentially, and a rotation date; enabling the user to change said rotation order; storing said rotation order; and transmitting from the application on the user device to a cloud application said mapping, said session data and said subscription rotation order; at said cloud application: storing said mapping, said session data and said subscription rotation order; before or on said rotation date, with an automation script using said session data to access the online user account of the provider of the next inactive subscription in the rotation order and to switch said next inactive subscription to active.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] DIGITAL SERVICE SUBSCRIPTION SCHEDULING

[0002] TECHNICAL FIELD

[0003] Some embodiments of the present invention relate to computer-implemented methods of scheduling a plurality of subscriptions of a user to digital services.

[0004] BACKGROUND

[0005] In the digital age, a user will frequently subscribe to multiple online digital services at the same time. Different providers make a digital service or service available through a provider website and / or mobile app. Typically the user will need to have a user account with each provider to manage the subscription to the digital service or service. Managing multiple subscriptions through different user accounts is time-consuming and inefficient, especially on smaller form factor user devices such as a smartphones and tablets.

[0006] It is also difficult for users to comprehend details of multiple subscriptions easily and conveniently. Sometimes the user can end up with access to the same underlying service but through different providers.

[0007] SUMMARY

[0008] According to some embodiments there is provided a computer-implemented method of scheduling a plurality of subscriptions of a user to services such as digital services. Each subscription of the plurality of subscriptions may be manageable by the user in an online user account of a provider of the digital service, and may be switchable between active and inactive. The method may use an application on a user device to perform various steps. The application on the user device may request the user to access their online user account at each provider of the plurality of subscriptions. This may be via an in-app browser. The application on the user device may receive session data sent by each provider to the in-app browser when the user accesses each online user account of the respective provider using the in-app browser. The application on the user device may store a mapping between said session data and the associated provider. The application on the user device may use a graphical user interface of said user device to display a subscription rotation order of at least two of said plurality of subscriptions. The subscription rotation order may comprise an indication of at least one subscription to be active at any one time. The subscription rotation order may comprise a rotation order in which the plurality of subscriptions is to be rotated sequentially. The subscription rotation order may comprise a rotation date. The application on the user device may enable the user to change said rotation order. The application on the user device may store said rotation order. The application on the user device may transmit from the application on the user device to a cloud application said mapping, said session data and said subscription rotation order. The method may use a cloud application to perform various steps. The cloud application may store said mapping, said session data and said subscription rotation order received from the user device. Before or on said rotation date, the cloud application may invoke an automation script and with said session data access the online user account of the provider of the next inactive subscription in the rotation order and switch said next inactive subscription to active.

[0009] In some embodiments the method may comprise the steps of said automation script using said session data to access each online user account periodically before said rotation date to keep current each said session data associated with each provider of each subscription.

[0010] In some embodiments the method said periodic access by said automation script is one of at least once per hour, at least once every few hours, at least once per day, at least once per week, and at least once per month.

[0011] In some embodiments the method, the application on the user device may enable the user to change the number subscriptions active simultaneously. When the user changes the number of subscriptions active simultaneously, the application on the user device may transmit the changed number of subscriptions to said cloud application. The cloud application may receive said changed number of subscriptions. The could application may, before or on said rotation date, with said automation script use said session data to access the necessary number of online user accounts next in the rotation order and switch the necessary number inactive subscriptions to active to keep the number subscriptions active simultaneously equal to the changed number of subscriptions chosen by the user.

[0012] In some embodiments the number of subscriptions active simultaneously may be changeable by the user between one and the number of said plurality of subscriptions.

[0013] In some embodiments when said number of subscriptions active simultaneously is greater than one, the method further comprises the step of setting a respective rotation date for each active subscription. Each respective rotation date may be different to the or each other respective rotation date of the active subscriptions.

[0014] In some embodiments the application on said user device may enable the user to change the duration for which each subscription in said plurality of subscriptions is active. When the user changes said duration the cloud application may re-calculating said rotation date according to said changed duration and store said rotation date at said cloud application.

[0015] In some embodiments a unit of said duration may be one of days, weeks and months.

[0016] In some embodiments the method may further comprise the step of before or on said rotation date, with said automation script using said session data to access the online user account of the or each active subscription in the rotation order and to switch said active subscription to inactive.

[0017] In some embodiments the method may further comprise the steps of, following said switching of said next inactive subscription to active, the cloud application may update said subscription rotation order to hold a current rotation state of said rotation order and an updated rotation date. The cloud application may transmit said updated subscription rotation order to said application on said user device. The application on said user device may store said updated subscription rotation order for display on said graphical user interface, whereby the user may see the or each active subscription and the updated rotation date.

[0018] In some embodiments the application on said user device may enable a user to select an auto renew function for at least one subscription of said plurality of subscriptions. When said auto renew function is selected for at least one subscription, the application on the user device may store said at least one auto renew subscription out of said subscription rotation order. The application on the user device may transmit to said cloud application an auto renew indication for said at least one auto renew subscription. The cloud application may receive said auto renew indication. The cloud application may remove the at least one auto renew subscription from said subscription rotation order. The cloud application may transmit to said application on said user device a confirmation of said auto renew indication.

[0019] In some embodiments the cloud application may use said automation script and said session data to access the or each online user account at the or each provider of the at least one auto renew subscription and, before or on said rotation date, switch said at least one auto renew subscription to active.

[0020] In some embodiments the method may further comprise the step of, at said application on said user device, enabling the user to move a subscription into or out of said subscription rotation order.

[0021] In some embodiments the application on said user device may enable a user to mark a subscription as cancelled. The application on the user device may transmit to said cloud application a cancellation indication for said marked subscription. The cloud application may receive said cancellation indication. Before the rotation date of the marked subscription, the cloud application may with an automation script use said session data to access the user account at the provider website of the marked subscription and take the action in the user account to cancel the subscription. The cloud application may transmit to the application on said user device a confirmation of said cancellation.

[0022] In some embodiments the cloud application may comprise a suite of automation scripts. In some embodiments the suite of automation scripts may comprise a first set of automation scripts. The method may further comprise the step of at least one automation script of said first set of automation scripts accessing different publicly accessible digital service provider websites. The digital service provider websites may or may not correspond to the provider websites of said plurality of subscriptions. The method may further comprise the step of at least one automation script of first set of automation scripts obtaining from said publicly accessible digital service provider websites publicly available plan offer data of advertised plans to which a user may subscribe to access a digital service. The method may further comprise the step of storing said publicly available plan offer data in a database accessible to said cloud application.

[0023] In some embodiments each digital service available under each subscription may be associated with a respective service identifier. The application on said user device may transmit to said cloud application for each subscription of said plurality of subscriptions a subscription identifier comprising said service identifier. The cloud application may receive and store said subscription identifier. The cloud application may user said service identifier to identify in said database publicly available plan offer data representing advertised plans relevant to said service identifier.

[0024] In some embodiments the subscription identifier may further comprises a plan identifier, a date indicator and a cost indicator per time period.

[0025] In some embodiments the subscription identifier may further comprises said mapping, said session data and said subscription rotation order.

[0026] In some embodiments the method may further comprise the step of said cloud application executing said first set automation scripts at least daily.

[0027] In some embodiments the suite of automation scripts may comprises a second set of automation scripts. The method may further comprise the step of at least one automation script of said second set of automation scripts using said session data to access, for each user respectively, the user account at each provider website of the plurality of subscriptions. The method may further comprise the step of said at least one automation script of said second set of automation scripts obtaining from each provider website plan data of the corresponding subscription. The method may further comprise the step of storing said privately available plan data in said cloud application associated with said user.

[0028] In some embodiments said suite of automation scripts may comprises a second set of automation scripts. The method may further comprise the step of at least one automation script of said second set of automation scripts using said session data to access, for each user respectively, the user account at each provider website of the plurality of subscriptions. The method may further comprise the step of said at least one automation script of said second set of automation scripts obtaining from each provider website privately available plan offer data of at least one plan that is available to the user when accessing the website through the user account. The method may further comprise the step of storing said privately available plan offer data in said cloud application associated with said user.

[0029] In some embodiments the application on said user device may transmit to said cloud application an updated version of said mapping, said session data and said subscription rotation order when the user makes an adjustment to said subscription rotation order. The cloud application may receive said updated version. The cloud application may execute at least some of said second set of automation scripts to update said privately available plan data and / or said privately available plan offer data for said user.

[0030] In some embodiments the application on said user device may enable the user to select a balance option from amongst a plurality of balance options. The balance option may facilitate adjustment by said cloud application of the number of said plurality of subscriptions active simultaneously in said subscription rotation order. The application on the user device may transmit the selected balance option to the cloud application. The cloud application may store said balance option. The cloud application may use said balance option to determine a number of subscriptions to be active simultaneously. The cloud application may transmit to said application on said user device an updated subscription rotation order comprising an indication of which subscription or subscriptions are active at the same time, and optionally an updated rotation order.

[0031] In some embodiment the cloud application may selecta balance option. The balance option may include one of n subscriptions to be active at any one time. The balance option may include n - 1 subscriptions to be active at any one time. The balance option may include n / 2 subscriptions to be active at any one time, n may be the number of subscriptions in said at least two of said plurality of subscriptions in said rotation order.

[0032] In some embodiments each subscription of said plurality of subscriptions may be associated with a respective plan of the provider website. The plan may comprise plan data representing a financial cost and a duration of the plan. The plan data may be associated with the digital service to which the user has access. The method may further comprise the step of using said plan data and said balance option in the step of determining the number of subscriptions to be active simultaneously.

[0033] In some embodiments the method may further comprise the step of using data contained in said subscription identifier in the step of determining the number of subscriptions to be active simultaneously.

[0034] In some embodiments the method may further comprise the step of using said plan indicator and said cost indicator from said subscription identifier to identify publicly and / or privately available plan offer data that provides the same or a similar digital service to the user but for lower cost over a given period.

[0035] In some embodiments the application on said user device may display said updated subscription rotation order on said graphical user interface with an option for the user to accept or decline said updated subscription rotation order. If the user accepts the updated subscription rotation order the application on the user device may transmit an indication to said cloud application.

[0036] In some embodiments the cloud application may use said automation script and said session data to perform automatic subscription management within each user account according to said subscription rotation order.

[0037] In some embodiments the step of requesting the user to access their online account at each provider comprises the step of using a federated authentication method, such as single sign-on.

[0038] In some embodiments the method may further comprise the step of displaying each subscription of said plurality of subscriptions as a respective \ element on said graphical user interface.

[0039] In some embodiments said first graphical element may comprise an identity of the digital service provided by the corresponding subscription, a subscription cost indicator and a date.

[0040] In some embodiments the method may further comprise the step of enabling the user to drag and drop said first graphical element within the graphical user interface to change said rotation order and / or to move a subscription into or out of said subscription rotation order.

[0041] In some embodiments the method may further comprise the step of displaying each subscription of said plurality of subscriptions as a respective second graphical element on said graphical user interface.

[0042] In some embodiments the method may further comprise the step of displaying said second graphical element with an identity of the digital service provided by the corresponding subscription. The second graphical element may be displayed with a size that is proportional to the duration of the subscription.

[0043] In some embodiments the method may further comprise the step of displaying a timeline on said graphical user interface. The method may comprise the step of arranging each of said second graphical elements on said timeline so that a start date, an end date and said duration of each subscription is apparent to the user when looking at the graphical user interface. In some embodiments the method may further comprise the step of stacking each of said second graphical elements on said timeline, whereby any overlap between different subscriptions is apparent to the user when looking at the graphical user interface.

[0044] In some embodiments each of said second graphical elements represents one of a subscription in said rotation order, a subscription set to auto renew, and a subscription set to be cancelled.

[0045] In some embodiments said session data may comprise an authentication cookie or equivalent.

[0046] In some embodiments said digital service may comprise any one or more of a subscription media on-demand streaming service; a subscription online gaming service, a subscription to a Software-as-a-Service, and a subscription to a Platform-as-a-Service.

[0047] According to some embodiments there is provided a computer program for use in scheduling a plurality of subscriptions of a user to digital services. Each subscription of the plurality of subscriptions may be manageable by the user in an online user account of a provider of the digital service, and may be switchable between active and inactive. The computer program comprising instructions which, when the program is executed by a user device, cause the user device to perform various steps. The computer program may cause the user device to request the user to access their online user account at each provider of the plurality of subscriptions using an in-app browser. The computer program may cause the user device to receive session data sent by each provider to the in-app browser when the user accesses each online user account of the respective provider using the in-app browser. The computer program may cause the user device to store a mapping between said session data and the associated provider. The computer program may cause the user device to use a graphical user interface of said user device to display a subscription rotation order of at least two of said plurality of subscriptions. The subscription rotation order may comprise an indication of at least one subscription to be active at any one time. The subscription rotation order may comprise a rotation order in which the plurality of subscriptions is to be rotated sequentially. The subscription rotation order may comprise a rotation date. The computer program may cause the user device to enable the user to change said rotation order. The computer program may cause the user device to store said rotation order. The computer program may cause the user device to transmit from the user device to a cloud application said mapping, said session data and said subscription rotation order.

[0048] According to some embodiments there is provided a computer program product comprising a computer program as set out above. In some embodiments the computer program product may be in the form of an application downloadable from a server remote from said user device.

[0049] According to some embodiments there is provided a computer-readable data carrier having stored thereon the computer program product as set out above.

[0050] According to some embodiments there is provided a computing device, such as a hand-held computing device, comprising the computer-readable data carrier as set out above.

[0051] According to some embodiments there is provided a data carrier signal carrying the computer program product as set out above.

[0052] According to some embodiments there is provided a computer program for use in scheduling a plurality of subscriptions of a user to services such as digital services. Each subscription of the plurality of subscriptions may be manageable by the user in an online user account of a provider of the digital service, and may be switchable between active and inactive. The computer program may comprise instructions which, when the program is executed, cause a cloud application to perform various steps. The computer program may cause the cloud application to receive from a user device the mapping, the session data and the subscription rotation order. The computer program may cause the cloud application to store said mapping, said session data and said subscription rotation order. The computer program may cause the cloud application to, before or on said rotation date, with an automation script use said session data to access the online user account of the provider of the next inactive subscription in the rotation order and to switch said next inactive subscription to active.

[0053] According to some embodiments there is provided a computer program product comprising a computer program as set out above.

[0054] According to some embodiments there is provided a computer-readable data carrier having stored thereon the computer program as set out above.

[0055] According to some embodiments there is provided a server, such as a bare-metal server and / or a virtual server, comprising the computer-readable data carrier as set out above.

[0056] According to some embodiments there is provided a data carrier signal carrying the computer program as set out above.

[0057] According to some embodiments there is provided a computer-implemented method of scheduling a plurality of subscriptions of a user to services such as digital services. Each subscription of the plurality of subscriptions may be manageable by the user in an online user account of a provider of the digital service, and may be switchable between active and inactive. The method may comprise the step of, at a cloud application, using at least one automation script to access different publicly accessible digital service provider websites. The digital service provider websites may or may not correspond to the provider websites of said plurality of subscriptions. The method may comprise the step of said at least one automation script obtaining from said publicly accessible digital service provider websites publicly available plan offer data of advertised plans to which a user may subscribe to access a digital service. The method may comprise the step of storing said publicly available plan offer data in a database accessible to said cloud application.

[0058] In some embodiments the method may further comprise the step of receiving from a user device a subscription identifier comprising a service identifier. The service identifier may represent a digital service to which a user of the user device is subscribed. The method may comprise the step of using said service identifier to identify in said database publicly available plan offer data representing advertised plans relevant to said service identifier.

[0059] In some embodiments said subscription identifier may further comprise a plan identifier, a date indicator and a cost indicator per time period.

[0060] In some embodiments the method may further comprise the step of said cloud application executing said first set automation scripts at least daily.

[0061] According to some embodiments there is provided a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method set out above.

[0062] According to some embodiments there is provided a computer program product comprising a computer program as set out above.

[0063] According to some embodiments there is provided a computer-readable data carrier having stored thereon the computer program as set out above.

[0064] According to some embodiments there is provided a server, such as a bare-metal server and / or a virtual server, comprising the computer-readable data carrier as set out above.

[0065] According to some embodiments there is provided a data carrier signal carrying the computer program as set out above.

[0066] According to some embodiments there is provided a computer-implemented method of scheduling a plurality of subscriptions of a user to services such as digital services. Each subscription of the plurality of subscriptions may be manageable by the user in an online user account of a provider of the digital service, and may be switchable between active and inactive. The method may comprise the step of, at a cloud application, receiving from a user device session data sent by each provider to the user device when the user device accesses the or each online user account of the respective provider. The method may further comprise the step of the cloud application, with at least one automation script, using said session data to access, for each user respectively, the user account at each provider website of the plurality of subscriptions. The method may further comprise the step of said at least one automation script obtaining from each provider website privately available plan data of the corresponding subscription. The method may further comprise the step of said storing said privately available plan data in said cloud application associated with said user.

[0067] In some embodiments the method may further comprise the step of said at least one automation script obtaining from each provider website privately available plan offer data of at least one plan that is available to the user when accessing the website through the user account. The method may further comprise the step of storing said privately available plan offer data in said cloud application associated with said user.

[0068] According to some embodiments there is provided a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method set out above.

[0069] According to some embodiments there is provided a computer program product comprising a computer program as set out above.

[0070] According to some embodiments there is provided a computer-readable data carrier having stored thereon the computer program as set out above.

[0071] According to some embodiments there is provided a server, such as a bare-metal server and / or a virtual server, comprising the computer-readable data carrier as set out above.

[0072] According to some embodiments there is provided a data carrier signal carrying the computer program as set out above.

[0073] According to some embodiments there is provided a computer-implemented method of managing a plurality of subscriptions to services such as digital services, which method comprises the steps of: on a user device comprising a display, displaying a plurality of graphical elements, each graphical element corresponding to one subscription of the plurality of subscriptions; displaying on said display whether each subscription is active or inactive; arranging said graphical elements on the display to indicate a sequence or order in which each subscription will switch between inactive and active. The order may be a date order indicating when a subscription switches from inactive to active and vice-versa. The user may drag and drop each graphical element to change the sequence or order when each subscription will switch between inactive and active. The sequence or order of the graphical elements may be transmitted from the user device to a cloud application for automatic management of changes to each subscription to follow the sequence or order. Each element of the plurality of graphical elements may have any of the first graphical element features and / or second graphical element features set out above in the summary section and / or as described or as claimed anywhere herein.

[0074] Throughout the description and claims of this specification, the words "comprise" and "contain" and variations of the words, for example "comprising" and "comprises", mean "including but not limited to", and do not exclude other components, integers or steps. Moreover the singular encompasses the plural unless the context otherwise requires: in particular, where the indefinite article is used, the specification is to be understood as contemplating plurality as well as singularity, unless the context requires otherwise.

[0075] Preferred features of each aspect of the invention may be as described in connection with any of the other aspects. Within the scope of this application it is expressly intended that the various aspects, embodiments, examples and alternatives set out in the preceding paragraphs, in the claims and / or in the following description and drawings, and in particular the individual features thereof, may be taken independently or in any combination. That is, all embodiments and / or features of any embodiment can be combined in any way and / or combination, unless such features are incompatible.

[0076] BRIEF DESCRIPTION OF THE DRAWINGS

[0077] One or more embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which:

[0078] Figure 1 is a schematic block diagram of a wide area network (WAN) computer network environment in which at least some embodiments of the present invention may be employed;

[0079] Figure 2 is a schematic block diagram of a user device shown in Figure 1;

[0080] Figure 3 is a schematic block diagram showing a relationship between providers, plans and services;

[0081] Figure 4 is a table showing how users may subscribe to different numbers of plans;

[0082] Figure 5 is a schematic block diagram of various different screens of a user device application displayed on a graphical user interface of the device of Figure 2, together with some steps in a method of using the user device;

[0083] Figure 6 is a schematic block diagram illustrating aspects of a cloud platform providing a cloud application according to at least some embodiments of the present invention, together with some aspects of the interaction between the cloud application and an application on a user device; Figure 7 is a schematic block diagram showing a structure of an automation script database used by the cloud application of Figure 6;

[0084] Figure 8 is a schematic block diagram of a further screen of the application displayed on a graphical user interface of the user device of Figure 2,

[0085] DETAILED DESCRIPTION

[0086] The following detailed description and disclosure illustrates by way of example and not by way of limitation. This description will clearly enable one skilled in the art to make and use the disclosed systems and methods, and describes several embodiments, adaptations, variations, alternatives and uses of the disclosed systems and methods. As various changes could be made in the above constructions without departing from the scope of the disclosures, it is intended that all matter contained in the description or shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.

[0087] Throughout this disclosure, the term "computer" describes hardware that generally implements functionality provided by digital computing technology, particularly computing functionality associated with microprocessors. The term "computer" is not intended to be limited to any specific type of computing device, but it is intended to be inclusive of all computational devices including, but not limited to: processing devices, microprocessors, personal computers, desktop computers, laptop computers, workstations, terminals, servers, clients, portable computers, handheld computers, smart phones, tablet computers, mobile devices, server farms, hardware appliances, minicomputers, mainframe computers, video game consoles, handheld video game products, and wearable computing devices including but not limited to eyewear, wrist-wear, pendants, and clip-on devices.

[0088] As used herein, a "computer" is necessarily an abstraction of the functionality provided by a single computer device outfitted with the hardware and accessories typical of computers in a particular role. By way of example and not limitation, the term "computer" in reference to a laptop computer would be understood by one of ordinary skill in the art to include the functionality provided by pointer-based input devices, such as a mouse or track pad, whereas the term "computer" used in reference to an enterprise-class server would be understood by one of ordinary skill in the art to include the functionality provided by redundant systems, such as RAID drives and dual power supplies.

[0089] It is also well known to those of ordinary skill in the art that the functionality of a single computer may be distributed across a number of individual machines. This distribution may be functional, as where specific machines perform specific tasks; or, balanced, as where each machine is capable of performing most or all functions of any other machine and is assigned tasks based on its available resources at a point in time. Thus, the term "computer" as used herein, can refer to a single, standalone, self-contained device or to a plurality of machines working together or independently, including without limitation: a network server farm, "cloud" computing system, data centers, software-as-a-service, or other distributed or collaborative computer networks.

[0090] Those of ordinary skill in the art also appreciate that some devices which are not conventionally thought of as "computers" nevertheless exhibit the characteristics of a "computer" in certain contexts. Where such a device is performing the functions of a "computer" as described herein, the term "computer" includes such devices to that extent.

[0091] Devices of this type include but are not limited to: network hardware, print servers, file servers, NAS and SAN, load balancers, and any other hardware capable of interacting with the systems and methods described herein in the matter of a conventional "computer."

[0092] Throughout this disclosure, the term "software" refers to code objects, program logic, command structures, data structures and definitions, source code, executable and / or binary files, machine code, object code, compiled libraries, implementations, algorithms, libraries, or any instruction or set of instructions capable of being executed by a computer processor, or capable of being converted into a form capable of being executed by a computer processor, including without limitation virtual processors, or by the use of run-time environments, virtual machines, and / or interpreters. Those of ordinary skill in the art recognize that software can be wired or embedded into hardware, including without limitation onto a microchip, and still be considered "software" within the meaning of this disclosure. For purposes of this disclosure, software includes without limitation: instructions stored or storable in RAM, ROM, flash memory BIOS, CMOS, mother and daughter board circuitry, hardware controllers, USB controllers or hosts, peripheral devices and controllers, video cards, audio controllers, network cards, Bluetooth™ and other wireless communication devices, virtual memory, storage devices and associated controllers, firmware, and device drivers. The systems and methods described herein are contemplated to use computers and computer software typically stored in a computer- or machine-readable storage medium or memory.

[0093] Throughout this disclosure, terms used herein to describe or reference media-holding software, including without limitation terms such as "media", "storage media", and "memory", may include or exclude transitory media such as signals and carrier waves.

[0094] Throughout this disclosure, the term "network" generally refers to a voice, data, or other telecommunications network over which computers communicate with each other. The term "server" generally refers to a computer providing a service over a network, and a "client" generally refers to a computer accessing or using a service provided by a server over a network. Those having ordinary skill in the art will appreciate that the terms "server" and "client" may refer to hardware, software, and / or a combination of hardware and software, depending on context. Those having ordinary skill in the art will further appreciate that the terms "server" and "client" may refer to endpoints of a network communication or network connection, including but not necessarily limited to a network socket connection. Those having ordinary skill in the art will further appreciate that a "server" may comprise a plurality of software and / or hardware servers delivering a service or set of services. Those having ordinary skill in the art will further appreciate that the term "host" may, in noun form, refer to an endpoint of a network communication or network (e.g., "a remote host"), or may, in verb form, refer to a server providing a service over a network ("hosts a website"), or an access point for a service over a network.

[0095] Throughout this disclosure, the term "virtual machine" generally refers to a type of software-enabled machine that can be created by partitioning a physical server into smaller, self-contained segments. The virtual machine may be enabled by virtualization software (e.g. a hypervisor) that acts like a layer between the physical hardware and multiple virtual environments. Each of these virtual environments can run its own operating system (such as Microsoft Windows, Linux or Ubuntu). The hypervisor enables machine virtualization by isolating each machine and managing the resources as the physical server, at times working as a load balancer and redistributing compute resources to promote efficient operation. The virtual machine may be in the form of a virtual server for replicating a physical, bare-metal server to provide a cloud application for example.

[0096] As used herein, the terms "or" and "and / or" shall have the same meaning, which shall both have the meaning of an "inclusive or".

[0097] Referring to Fig. 1A a wide area network (WAN) environment is generally identified by reference numeral 100. The WAN 100 comprises several computer networks including the Internet 102, cellular network 104, first cloud computing environment ('CCE') 106 and second cloud computing environment ('CCE') 108, and first home computer network 110 and second home computer network 112. The cellular network 104 may comprise several base stations 110 that provide a cellular network service to a user device 112. The cellular network service may be any known mobile technology that service provides wireless access to the Internet 102 via the cellular network 104 for each user device 112. Example mobile technology includes but is not limited to 3G networks, 4G networks, 5G networks, etc. The user device 116 may include any device capable of using the cellular network 104 to send and receive data, such as a handheld mobile device e.g. a smartphone.

[0098] The first CCE 106 may comprise a computing platform (offered for example by a Platform- as-a-Service ('PaaS') vendor) having an operating system, programming-language execution environment, database and web server. A cloud application 117 (to be described in greater detail below) runs on the computing platform is accessible to mobile application software 118 on the user devices 116 via the first CCE 106. The cloud application 117 is illustrated schematically by a server 119 and by a database 120. Typical cloud computing platforms are available from Amazon Web Services, Google Cloud Platform and Microsoft Azure amongst others.

[0099] The second CCE 108 may comprise a Software-as-a-Service ('Saas'), accessible to user devices 112. The SaaS may comprise a streaming platform that provides a subscription media on-demand streaming service. The media is delivered over the Internet 102, bypassing traditional channels of delivery such as broadcast, satellite and cable. The streaming platform comprises, or at least has access to, digital media content is stored in media databases 122 with access and delivery of digital media content by media servers 124 (which may include virtual machines and servers, such as system virtual machines / servers and process virtual machines / servers). Typically, the streaming platform is provided via one or more datacentre (not shown), and most likely several datacentres around the globe. Digital media content may be any content that may be received by a user or users of a user device 116, including but not limited to video, audio and images, such as films, television, music, gaming, live sports. It may also include extended reality (XR) services, such as augmented reality (AR), virtual reality (VR.) and mixed reality (MR), delivered from a cloud computing platform or other online service to user devices 116.

[0100] The first home computer network 110 and the second home computer network 112 may provide wired and wireless access to the Internet 102. This may be provided by a wireless local area network ('WLAN') router 126 that has a connection to the Internet, for example via a DSL or cable modem. The WLAN router may also comprise a wired LAN, by which various devices may access the Internet 102.

[0101] Generally, the user device 116 may be any device adapted to access the Internet 102 and permit user to access the aforementioned media on-demand streaming service. Examples of such user devices include but are not limited to smartphones, smart TVs, laptops, tablets, smartwatches, in-vehicle infotainment systems, etc.

[0102] Fig. 2 illustrates some of the principal components of a user device 116. The user device 116 may comprise a case 42 housing a CPU 132, a computer memory 134, a WLAN transceiver (or interface) 136, and a cellular network transceiver (or interface) 138. The WLAN transceiver 136 and cellular network transceiver 138 are wired to an antenna 140 for reception and transmission of data with the various networks mentioned in Fig. 1. The CPU 132 interfaces with all the aforementioned components to process (store, access, etc.) electronic data. The memory 134 stores computer executable instructions that when executed by the CPU 44 bring into operation the mobile application software 118 (the functions of which are described in greater details below. To obtain the mobile application software, the computer executable instructions may be downloaded from an app store, such as Google Play and the Apple App Store. The user may interact with the mobile application software 118 via a graphical user interface 141.

[0103] In Fig. 1 the number and kind of the various computer networks and the various devices shown within them is purely illustrative to aid in understanding of at least some embodiments of the invention as set out below. To summarise, via various networks 104, 110 and 112, user devices 116 have access to media on-demand streaming services provided from a cloud computing platform. It is to be noted however, that embodiments of the invention are not limited to this example, and embodiments include provision of any digital services and / or digital content to user devices over a WAN 102 and / or any subscription that can be managed online and / or through an app. Examples includes but are not limited to online newspapers and magazines, music apps (e.g. Spotify, Apple), podcasts, delivery subscriptions, gym memberships, gaming subscriptions (e.g. PSN, Xbox game pass), office software (e.g. Microsoft Office, Google workspace, Lambda), fitness, diet and wellbeing app subscriptions, utility bills (such as water, electricity, gas, mobile phone and broadband) and sports specific TV scheduling. Accordingly, whilst examples described herein relate principally to media on-demand streaming services, features, concepts and principles are applicable more widely as indicated above.

[0104] Referring to Fig. 3, schematic diagram 200 illustrates how catalogues of digital content may be accessed by users. In general, users take paid Subscription (e.g. a one-off payment, monthly fee) to access to a certain catalogue of digital content for a certain period. Typically, a catalogue of digital content (including for example the rights to broadcast live sports) is owned and / or licensed by companies Amazon, Disney, Sky, etc. These catalogues of digital content are made available to users, either directly through these companies or via third party resellers, via a media on-demand streaming platform as described above.

[0105] Referring to Fig. 3 a Provider 202 offers one or more Plan 204. A Plan 204 may be an offer that is made by a Provider to users for access to a Service 206, for example for on-demand streaming access to one or more catalogue of digital content 208. It is noted that the Provider 202 may or not be the owner of the digital content 208. For example, third-party re-sellers can offer Plans to Services that they do not own or control. There are many Providers 202, for example companies such as Amazon, Disney, Netflix, Sky, Britbox, etc. Each Service 206 provides user access to one or more catalogue of digital content 208 for users who have a Subscription to an appropriate Plan 204. A Service may comprise one or more Channel, e.g. the Sky Service may include access to the Sky Movies Channel.

[0106] Purely by way of example, in Fig. 3 Provider A offers a Plan Ai which includes Service 1 that has access to a single catalogue of digital content, Digital Content Catalogue 1. Provider A also offers Plan A? which includes Services 1 and 2 which provides access to Digital Content Catalogue 1 and Digital Content Catalogue 2. Provider A also offers Plan An which includes Services 2 and N which provides access to Digital Content Catalogue 2 and Digital Content Catalogue N. Sometimes Plan A2 and Plan An are each referred to as 'bundles'.

[0107] There may be many other combinations of features which define a Plan 206 and distinguish it from other Plans, including any one or more of content, price, duration, resolution of video content, geographic region, whether the Service 206 comes with advertisements or is advertisement-free, etc. Plans may also be publicly available in the sense that they are advertised online and available to anyone. Some Plans 206 are privately available in the sense that they may only be offered to existing subscribers and visible only to the user when logged into the Provider's website. Such privately available Plans may be tailored to a specific user or group of users.

[0108] Referring to Fig. 4 a user 210 who subscribes to a Plan has a Subscription 212 to that Plan. Several examples are given in Fig. 4: user 2 has Subscriptions A? and C2 where the letter indicates the Provider and the subscript the Plan number of that Provider. These letters and numbers are provided purely to aid understanding; Plans in the real-world are identified in different ways. Each Subscription to a Plan will very likely have a different start and end date, and an associated periodic cost. Generally, the difficulty of managing Subscriptions increases with the number of Subscriptions the user has at any one time, often requiring users to login to different Provider websites to manage each one. Furthermore, many users manage Subscriptions using a portable hand-held device such as a smartphone or tablet, requiring users to switch between different apps to manage subscriptions.

[0109] As explained above with reference to Fig. 1, the first CCE 106 comprises the cloud application 117 that is accessible by the mobile application software ('mobile app') 118 on user devices 116. It is noted that the cloud application 117 may also be accessible in other ways, for example via a web browser on a user device 116 and visiting the website of the cloud application 117. In general, the mobile app 118 provides a centralised way for a user to manage on the user device 116 multiple Subscriptions, usually from different Providers, assisted by the cloud application 117. The cloud application 117 may provide an automatic subscription management function for the user so that that subscriptions are switched on and off, cancelled, etc. without the user having to interact with the Provider website. The mobile app 118 may also allow the user to create a 'playlist' of subscriptions, in which one or more subscription is active simultaneously, with other subscriptions are 'queued' for 'playing' in an order either chosen by the user or recommended by the cloud application 117.

[0110] Fig. 5 shows screenshots 220, 222, 224 of some of the screens available to the user when using the mobile app 118, along with an indication of some of the data that is sent by the mobile app 118 to the cloud application 117. The screens may be available with a 'settings' part of the mobile app 118. Before it can function fully, the mobile app 118 needs to gather details of the user's existing Subscriptions and a way to access the online user accounts at the Providers providing the Subscriptions, typically via the different websites of the Providers. For each Subscription, the details may include Plan data, such as a price, next renewal date, and other features of the Plan such as video resolution, advertisement status, maximum number of devices, etc. Gathering of this data may be via a website of the Provider providing the Plan to which the user is subscribed, and will be described in greater detail below.

[0111] With reference also to Fig. 6, the cloud application 117 comprises a master database 260 comprising Plan mappings 262 between Providers, Plans and Services. This is managed via a combination of automation scripts (scraping public and private Plans per Provider) and manual data entry. This will be described in greater detail below.

[0112] By means of an 'Add subscription' button 226 the mobile app 118 enables the user to add details of the or each of their existing Subscriptions into the mobile app 118. The mobile app 118 also allows a user to create a new Subscription with an existing Provider (i.e. one with whom they already have a Subscription). For example, if a user already has an Amazon Subscription in the mobile app 118, they can add a new Subscription for a channel offered by Amazon as an ’add-on1subscription (e.g. Britbox, or Shudder). Another example is Hulu that offers a similar add-on with STARZ and SHOWTIME. These are 'add-on' subscriptions under an existing provider's billing relationship. Additionally the mobile app 118 may include a direct link for the user to sign up to a completely new Subscription with a default Provider of a Service. After the user has signed up with the Provider, details of the new Subscription can be added within the mobile app 118 as described in greater detail below.

[0113] At a first step, when the user presses the 'Add subscription' button 226, the mobile app 118 requests the cloud application 117 to return to the mobile app 118 a list of known Providers, which may be based on the user's region. The list of known Providers may comprise a list of Subscription Identifiers 232 (described in greater detail below). The mobile app 118 then displays a list of Services and asks the user to select the Service for which they have a Subscription. Since there may be multiple Providers offering the same Service, the mobile app 118 then displays to the user the list of known Providers offering that Service, and asks the user to select the Provider with whom they have a Subscription to the Service. If the user has already created a Subscription within the mobile app 118, the mobile app 118 may provide the user with the option to re-categorize it.

[0114] In a second step, once the user has selected the Provider with whom they have a Subscription, the user is requested to authenticate with the Provider. There are a number of ways that this may be achieved. In some embodiments, the mobile app 118 and / or cloud application 117 may use a federated authentication method (such as single sign-on, SSO) to authenticate the user at the Provider. In some embodiments, the user may authenticate at the Provider using a browser that is opened within the environment of the mobile 118. The mobile app 118 and cloud application 117 may support multiple different types of user authentication method of course.

[0115] In this example, a user will authenticate with a Provider using a browser opened inside the environment of the mobile app 118 (an 'in-app' browser). The Provider's website is accessed. This may be a login screen 228 of the Provider. Alternatively, another web page (e.g. the homepage) of the Provider's website is opened and the user may use the in-app browser to find and access the login screen 228. The user enters their login details to access their account within the Provider's website. Once the user is authenticated with the Provider's website, browser session data is generated and stored on the Provider's website. The browser session data may vary per platform (i.e. per Provider). Usually, at a minimum, the browser session data comprises a token (e.g. an authentication cookie) generated by the Provider that represents a user id and a session window (expiry). The browser session data may also comprise the user's location and permission scope within that Service.

[0116] The Provider's website then sends to the in-app browser session data (e.g. the authentication cookie) to establish a session. By enabling the user to log in to Provider's website through the in-app browser, the mobile app 118 is able to extract from the in-app browser Service session data 230 (for example the authentication cookie) and to store it for later user. In this way, it is possible to access the user's account subsequently by continuing the same session (as will be explained in greater detail below).

[0117] At a third step, the Service session data 230, Provider identity and a user identity of the user of the mobile app 118 are sent by the mobile app 118 to the cloud application 117, where they are stored in the database 120. The user identity of the user of the mobile app 118 may be generated by the cloud application 117 when the user first registers to use the mobile app 118 for example. This enables the user to be uniquely identified to the cloud application 117.

[0118] At the cloud application 117 the Service session data 230 and Provider identity may be saved in a User subscription entry 254 (to be described in greater detail below) comprising an association with the user identity of the user of the mobile app 118, a Plan Identifier 256 (which is populated with data subsequently - see the section below headed 'Syncing Subscription data') and the Provider identity. The Service session data 230 may be saved in the User subscription entry 254 a blob of encrypted data for example.

[0119] At a fourth step, the corresponding Subscription Identifier 232 from the list served by the cloud application 117 in the first step is displayed in the mobile app 118 to confirm to the user that it has been added. Each Subscription Identifier 232 comprises various fields including the Plan Identifier 256, a Service identifier (which could be displayed to the user as an app icon representing the Provider, e.g. Netflix), a Plan status identifier (active, auto renew, inactive, or cancelled), a date indicator and a cost indicator per time period. The date indicator changes according to the current state of the Subscription held in the cloud application 117:

[0120] • when the Subscription is active the date indicator may provide: o the rotation date of the Subscription (i.e. when it is going to be switched to inactive) if it is part of the smart rotation function(see further below); o the next renewal date if the Subscription is a manually controlled Subscription and it is set to Auto renew (see further below);

[0121] • when the Subscription is inactive the date indicator may provide: o the resumption date of the Subscription (i.e. when it is going to be switched to active) if it is part of the smart rotation function (see further below); o the expiry date if the Subscription is a manually controlled Subscription and it is set to be cancelled (see further below).

[0122] When the user first adds a Subscription to the mobile app 118, some of the fields within a Subscription Entry 232 may be empty and will be populated subsequently when the current state of the Subscription Entry 232 is updated in the cloud application 117.

[0123] The 'Add Subscription' process is repeated by the user for each Provider and Subscription that the user wishes to be managed centrally by the cloud application 117. Once this is completed the mobile app 118 displays the Subscription Identifiers 232 that will be managed centrally by the could application 117. Fig. 5 shows three Subscription Identifiers 232: Subscription C, Subscription D and Subscription E.

[0124] The Subscription Identifier 232 for each Subscription may be displayed to the user in the form of a first graphical element 233 on the graphical user interface 141 of the user device 116. The first graphical element 233 may comprise an identity (e.g. the Service Identifier) of the digital service provided by the corresponding subscription, the date indicator and the cost indicator per time period. The mobile app 118 may enable the user to drag and drop the first graphical element 233 within the graphical user interface 141 to change the rotation order and / or to move a subscription into or out of the rotation order (described in greater detail below). By providing the first graphical element 233 in this way, the user can readily view details of the Subscription and can move the Subscription into and out of the rotation order, as well start and stop the Subscription, simply by dragging and dropping it within the mobile app 118. Smart Rotation

[0125] Screen 220 shows preferences selectable by the user to control a smart rotation function 234. The smart rotation function enables users to treat Subscriptions in a similar way to a music playlist, except that there may be more than one Subscription 'playing' at the same time.

[0126] To add a Subscription to the smart rotation function 234, the user uses the Add subscription button 226 on screen 220 and selects the Subscription, or creates a new one, as described above. Once the user has finished adding Subscriptions there is a total of n Subscription Identifiers 232 listed in a rotation order block 238. As explained above, the rotation order block 238 allows the user to change the order of rotation of the Subscription Identifiers 232 included within the smart rotation function 234 (e.g. by dragging and dropping the respective first graphical element 233).

[0127] The user may choose m Subscription Identifiers 232 to be active at the same time, where m < n. m is chosen using an Active Subscription drop down list 236 that allows the user to select 1 < m < n Subscriptions to be active simultaneously. By 'active' it is meant that the user can access digital content available in the Service corresponding to the Subscription, i.e. is paying for the Subscription. By 'inactive' it is meant that the user cannot access digital content available in the Service corresponding to the Subscription, i.e. is not paying for the Subscription. The rotation order is descending, with m Subscriptions 232 at the top of the rotation list being active, where most usually m < n. When a Subscription expires (i.e. becomes inactive), it is moved to the bottom of the rotation order block 238 and it moves toward the top of the rotation order block 238 as other Subscriptions expire and are rotated.

[0128] In the example shown in Fig. 5, there are 3 Subscription Identifiers in the rotation order block 238: of those, Subscription C and Subscription D are active simultaneously (see setting of '2 per month' in the Active Subscription drop down list 236) and Subscription E is inactive. If Subscription C becomes inactive, it would be moved to the bottom of the rotation order block 238, Subscription D would move to the top of the rotation list, and Subscription E would move to second place in the rotation list. Subscriptions D and E would then be active simultaneously.

[0129] It is possible for the m active Subscription (s) to become inactive at the same time or at different times, depending an end date. Each inactive Subscription Identifier 232 is provided with a start date to let the user know when that Service will resume.

[0130] Via a Subscription duration drop-down list 240 list the user can select the duration for which each Subscription remains active once it is started on a start / resume date. Various periods for subscription duration that are used in the Subscription duration drop-down list 240 are envisaged, for example, days, weeks or months.

[0131] Balance option

[0132] A balance option may be provided that enables to configure how Subscriptions will be configured in the rotation function. In this example, the balance option may be in the form of a Savings goal selection box 242 allows the user to set a target for the financial savings they would like to achieve by trading off various options. In this example the options are 'more savings', 'balanced' or 'more content'. Other balance options may used, for example 'higher resolution', 'more devices', etc. It may be possible to the user to set up their own choice of balance goals to be shown in the Savings goal selection box 242, perhaps within another settings area of the mobile app 118.

[0133] There are a variety of ways each savings goal could be implemented. For example, 'more savings' may be implemented as 1 of n Subscriptions active per Subscription duration. 'More content' may be implemented as n - 1 Subscriptions active per Subscription duration. 'Balanced' may be implemented as n / 2 Subscriptions active per Subscription duration. A non-integer integer result may be handled by rounding down or rounding up for example.

[0134] Manual Subscriptions

[0135] The user may add a manual subscription to the mobile app 118 by pressing 'Add subscription' button 226 on screen 222. Screen 222 shows a manual subscription function 243 that comprises preferences selectable by the user to handle Plan subscriptions manually. For example, a user may prefer certain Services to be always available. These can be set to auto-renew within an Auto renew section 244. A user may later decide that they would like to cancel a Subscription shown within the Auto renew section 244. The user can drag and drop that Subscription Identifier 232 into a Cancel section 246. The Cancel section 246 lists the or each Subscription Identifier 232 to be cancelled (as well the expiry date), along with any other Subscription Identifier(s) 232 that have been made inactive by the user previously. In the example shown in Fig. 5: Service A and Service B are set to auto renew; Service F and Service G have been moved from the Auto renew section 244 into the Cancel section 246, and their expiry dates are indicated; and Service H and Bundle XYZ have already been cancelled and are inactive.

[0136] Screen 224 shows Scheduling Rules 250 that are adjustable by the user. These Scheduling Rules 250 are the same as those visible on screen 220 but provide another screen to adjust them separately from the smart rotation function 234. A change on either screen 220 or 224 may result in a corresponding change in the other screen.

[0137] Once the user is content with the preferences set on screens 220, 222, and / or 224, an Update Schedule button 248 can be pressed by the user on screen 224. On activation of the Update Schedule button 248, the mobile app 118 is adapted to transmit the Scheduling Rules 250 to the cloud application 117, which stores the Scheduling Rules 250 for the user in a User entry 252 (to be described in greater detail below). This may be achieved using a REST API at the cloud application 117 for example. The Scheduling Rules 250 may comprise data representing some or all the information set by the user on screens 220, 222 and / or 224, along with the user id of the user in the mobile app 118. Upon receipt of the Scheduling Rules 250, the cloud application 117 may extract details of each Subscription (e.g. Plan Identifier 256 from the Subscription Identifiers 232) and add to the User subscription entry 254.

[0138] Cloud Application

[0139] Fig. 6 is a schematic diagram, partly showing the architecture of the cloud application 117 and the data in the database 120, and partly some of the steps in a method performed by the cloud application 117.

[0140] As explained above, as each Subscription is added by the user in the mobile app 118, a corresponding User subscription entry 254 is created in the cloud application 117. The or each User subscription entry 254 present in the cloud application 117 represents the 'current state' of the or each corresponding Subscription as known to the cloud application 117. As such there may be a User subscription entry 254 for each user. Within each User subscription entry 254 there may be a mapping between the user identity (assigned the cloud application 117), each Plan Identifier 256, the corresponding Provider identity, and a Plan status 258 (e.g. active, auto renew, inactive, or cancelled). The User subscription identifier 254 may also contain data relating to other 'non-subscribed' Plans that may only be available to the particular user through their user account (for example special offers, offers upon cancellation, etc). This will be described in greater detail below.

[0141] As shown in the top left of Fig. 6, in a first step of a method performed by the cloud application 117, the Scheduling Rules 250 are received at the cloud application 117. In a second step, the Scheduling Rules 250 are stored in the database 120 in the User entry 252 that comprises a mapping between the user identifier, the Scheduling Rules 250 and each Subscription Identifier 232 held in the mobile app 118. If the User entry 252 already exists for that user, it is updated to reflect any changes in the Scheduling Rules 250 (e.g. addition of a new Subscription, change to the Savings goal selection box 242, etc.). After these steps, the User entry 252 at the cloud application 117 represents a 'desired state' of the user's Subscriptions as configured by the user in the mobile app 118. For example, the 'desired state' may represent a new Subscription added by the user in the mobile app 118, a 'cancel' instruction to a Subscription, a change in settings (e.g. to the smart rotation order). There may be multiple desired changes to multiple Subscriptions simultaneously. There is then a difference between the 'desired state' of the or each Subscription (as defined by the Scheduling Rules 250 in the User entry 252) and the 'current state' of the or each corresponding Subscription as known to the cloud application 117 (defined in the User subscription entry 254).

[0142] Automation Scripts

[0143] The cloud application 117 further comprises an automation script database 264 that comprises a plurality of automation scripts. The purpose of the automation scripts includes effecting the necessary action at a Provider to achieve the 'desired state' as defined by the Scheduling Rules 250 in the User entry 252, syncing the User subscription entry 254 with data held for each user's Subscription by the corresponding Provider, and maintaining the Provider, Plan and Service data held by the master database 260.

[0144] Accordingly each automation script is configured to gather and collate data from various Provider websites for integration into the master database 260 and each User subscription entry 254 at the cloud application 117. In general, the automation scripts are configured to simulate user actions on the Provider websites and to collect Plan data and Plan offer data relevant to a particular user, a group of users, or all users. To that end the automation scripts may be configured to use software such as Puppeteer ( Sl / 2^ or Playwright (htL&s.: / Z;;da wrj.g i: ev / ) . A single automation may support multiple paths, or ’fuzzy’ paths, through each Provider website that look for likely button labels to continue the process (for example in cancellation flows).

[0145] Fig. 7 illustrates an example number of possible automation scripts that need to be configured and maintained. There are two general categories of automation script: a Publicly available Plan category 266 and a Privately available Plan category 268. These reflect, respectively, Plan offers that are publicly available and Plan offers that are privately available. The Publicly available Plan category 266 can be further sub-divided into a Provider sub-category 270 and a Third-party sub-category 272, representing Plans available directly on a Provider's website (e.g. Netflix) and Plans available on a third-party website (E.g. Amazon re-selling the Disney Service). The Privately available Plan category 268 is further sub-divided into a User account sub-category 274 and a User third-party account subcategory 276, representing Plans available to the user through their user account on the Provider's website and Plans available to the user through their user account on a third- party website. Such Plans could include upsell offers and discounts, including those offered when a user begins a Subscription cancellation process.

[0146] As shown in Fig. 7, under each sub-category, an automation script may be uses for each Service and for each Channel for which a Plan is offered, from both the Provider directly and any third parties, either publicly or privately to the user. To cater for users in different geographic regions it is also possible that the number of automation scripts is further multiplied by the number of geographic regions where the Provider may offer the same Service(s) and / or Channel(s), but under different Plans specific to each geographic region.

[0147] Referring to Fig. 6, in order to execute each automation script, it is queued in an automation queue 279 and then executed in a headless browser 265 that is operated by the cloud application 117. The cloud application 117 operates a number of such headless browsers 265 simultaneously to enable automation scripts to be executed in parallel. The number of headless browsers 256 may be based on user and subscription volume, along with cost / efficiency. The number of headless browsers 265 in operation at any one time is expected to range between single digits and hundreds. The number of headless browsers 265 available for use at any one time may be dynamically controlled to balance load.

[0148] Syncing Subscription data

[0149] The automation scripts falling under the Publicly available Plan category 266 may be executed periodically (e.g. every day) by the cloud application 117 and may not need to be executed on a per user basis to save compute power. In this way data in the master database 260 is kept current, i.e. with details of Plans in the Publicly available Plan category 266.

[0150] On the other hand, the relevant automation scripts falling under the Privately available Plan category 268 may be executed periodically (e.g. every 24 - 48 hours) and / or substantially on demand (for example when a user clicks the Update Schedule button 248 in the mobile app 118 that triggers updated Scheduling Rules 250 to be sent to the cloud application 117). As described below, the purpose of this is to keep each User subscription entry 254 synced with details of Plans in the Privately available Plan category 268, i.e. the relevant Subscription details at the Provider website that the user actually has, as well as private subscription offers made within the user's account at the relevant Provider. For example, an automation script may be executed to investigate subscription offers made to the user if they were to start the cancellation process to an existing Subscription.

[0151] When each automation script runs, it retrieves the relevant Service session data 230 for the Provider of the user's Subscription and loads it into the headless browser 265. It then accesses the Provider's website. By loading the Service session data into the headless browser 265, the automation script is able to continue the session started previously by the user and does not require the user to log in to the Provider's website again. In this way the automation script has access to the user's account and Subscription details. The automation script extracts from the Provider website details about the user's Subscription (e.g. any one or more of current Plan, Plan price, billing period and next billing date) and may also extract details of other available Plans for that user (e.g. any one or more of Plan, Plan price, and billing period). The extracted data (representing Privately available Plans) is stored in the User subscription entry 254. If the automation script is running on a Subscription added to the mobile app 118 for the first time, the Plan Identifier 256 is initially empty as that data is not sent by the mobile app 118. Instead, the automation script obtains the Plan Identifier 256 from the Provider website and stores it in the associated User subscription entry 254.

[0152] Each time the User subscription entry 254 is updated, data for the user's existing Subscriptions is transmitted to the mobile app 118 so that the relevant data (e.g. Plan expiry date, billing price, billing period, status) may be displayed to the user in the Subscription Identifier 232 (see Fig. 5).

[0153] Changes to Subscriptions

[0154] When a user makes a change to a Subscription within the mobile app 118, updated Scheduling Rules 250 are transmitted to the cloud application 117. For example, a user may change a Subscription from 'subscribed' to 'cancelled' or may add a new Subscription in the mobile app 118. Receipt of updated Scheduling Rules 250 causes the cloud application 117 to update the Scheduling Rules stored in the User entry 252. It is recalled that the User entry 252 represents a 'desired state' of the user's Subscriptions as configured in the mobile app 118, and that the User subscription entry 254 represents the 'current state' of the user's subscriptions known to the cloud application 117. As explained above, the User subscription entry 254 is synced (using the automation scripts) with the data held in the user accounts at the Provider websites.

[0155] The cloud application 117 monitors, e.g. compares periodically, data held in the User entry 252 and data held in the User subscription entry 254. If the cloud application 117 finds that there is a mismatch between the User entry 252 and the User subscription entry 254 (for example a Subscription has switched from 'subscribed' to 'cancel'), an automation script is added to the automation queue 279 to update the state of that Subscription within the user's account at the Provider website. The automation script includes the action (e.g. subscribe / cancel), the Provider id (within the cloud application 117) and the user id (within the cloud application 117).

[0156] When the automation script runs on a headless browser 265, it retrieves from the User subscription entry 254 the relevant Service session data 230 for the user's Provider and loads it into the headless browser 265. The headless browser 265 then loads the Provider's website. In this way the headless browser 265 is able to continue the session started by the user when they logged into their account, and the mobile app 118 does not need to ask the user to log in again.

[0157] The automation script checks the real state of the Subscription in the Provider website (from the user's account page). If it is different from the ’current’ state represented in the User subscription entry 254, it updates the User subscription entry 254 and compares the User entry 252 with the updated User subscription entry 254. If there is a match, the automation script does not need to take any further action in the user's account. For example, if the user had logged into their account separately (i.e. outside the mobile app 118) and already cancelled the Subscription (for example), this step improves computing resource efficiency by stopping automation scripts taking unnecessary action in the user's account and freeing the headless browser 265 to be used by other automation scripts.

[0158] However, if after this step, there is still a difference between the User entry 252 (i.e. 'desired state') and the User subscription entry 254 (i.e. 'current state'), the automation script continues to take the necessary action in the user account at the Provider (e.g. to unsubscribe).

[0159] Following this, the automation script extracts the real state of the subscription from the Provider website and updates the User subscription entry 254. A comparison is made between the User entry 252 and the User subscription entry 254. At this stage they should match, and the automation script concludes.

[0160] After the User subscription entry 254 is updated, the data is transmitted to the mobile app 118 for display to the user.

[0161] Automation script validation and updating

[0162] To ensure reliability, an hourly (or other periodic) check verifies the functionality of the automation scripts. Given the propensity for Service websites to update their interfaces and subscription or cancellation processes, these checks are useful for detecting changes. The automation scripts are queued in the automation queue 279 (see Fig. 6) Any identified alterations prompt notifications to a monitoring platform and the automation is queued for updating by an operational team.

[0163] The streaming industry's frequent use of A / B testing and dynamic offers, particularly in subscription workflows, necessitates complex decision logic within the automation scripts. These scripts must navigate various potential pathways based on the user interface presented. Any deviations or updates encountered by the automations are reported back to a central monitoring system, complete with logs and screenshots, aiding in the refinement of the decision-making process.

[0164] Should an automation script encounter an error or a blockage, the monitoring platform is notified, prompting a review by the operational team. Automation scripts are designed to retry a predetermined number of times before alerting the operational team. Additionally, the cloud application 117 is equipped to detect expired Service session data 230, and to prompt users to reauthenticate through an the in-app browser, after which the automation script is re-entered into the automation queue 279.

[0165] Scheduling Engine The cloud application 117 further comprises a Scheduling Engine 278. The function of the Scheduling Engine 278 is to receive / access various input data, to process that data and output a Smart Schedule 280 for each user. In some embodiments the Scheduling Engine 278 may be provided in the form of an API that is accessed by the cloud application 117.

[0166] The Scheduling Engine 278 receives from the database 120 the following data:

[0167] • the User entry 252 comprising : o the user identity, the Scheduling Rules 250 comprising the Subscription Identifiers 232, savings goal selected in the Savings goal selection box 242, the number of simultaneous active Subscriptions selected in the Active Subscription drop down list 236 the Subscription duration selected in the Subscription duration drop-down list 240, and the order of the Subscriptions in the rotation order block 238;

[0168] • the User subscription entry 254 comprising : o the user identity, Plan Identifiers 256, Provider identities, Plan status 258 (e.g. active, auto renew, inactive, or cancelled), the date indicators and the cost indicators per time period; and

[0169] • relevant Plan data extracted from the master database 260 comprising : o publicly available Plan offers that provide Services corresponding to those to which the user has Subscriptions. These Plan offers can be looked up in the master database 260 by the Scheduling Engine 278 using the Service Identifiers (contained in the Subscription Identifiers 232 of the User entry 252).

[0170] The data input into the Scheduling Engine 278 may also include other user preferences such as video quality, maximum number of allowed devices, and advertisement preferences.

[0171] Based on the input data, the Scheduling Engine 278 may determine a 'best fit' for the user which may include a price indication and a suggested order and timing of Subscriptions (akin to a 'playlist') which aims to meet the savings goal chosen by the user. The Scheduling Engine 278 outputs a Smart Schedule 280 and sends it to the mobile app 118 for display to the user.

[0172] The Scheduling Engine 278 may be adapted to standardize the diverse range of plan offerings, akin to a price comparison service. For example the Scheduling Engine 278 may normalize differences in streaming quality, device concurrency, ad inclusion, and subscription terms (e.g., monthly vs. annual, trial periods). For example, the Scheduling Engine 278 may filter / sort plans based on known attributes. It may hide duplicates with the same price and attributes and services. For example if Disney offers the same 'Duo premium' bundle plan on Disney+ and Hulu for the same price the Scheduling Engine 278 may filter the duplicate out.

[0173] The Scheduling Engine 278 may display to the user difference offers for the same Service if the user has a subscription with the relevant Providers. For example, the Scheduling Engine 278 may display two plans for Britbox: one direct from the Britbox Provider for $8.99 per month, and one via the Amazon Provider for $7.99 per month. The Amazon offer may be $1 cheaper per month but is dependent on the user already having an Amazon Prime subscription. The Scheduling Engine 278 would only show this cheaper offer if the user has the Amazon Prime subscription already active.

[0174] The Scheduling Engine 278 may recommend a rotation schedule of active Subscriptions based on how many Subscriptions a user first adds to the smart rotation function 234. For example, if the user has only 2 Subscriptions in total and both are included in the smart rotation function 234, the Scheduling Engine 278 may suggest a simple 1 per time period alternating rotation. However, if the user has 3 Subscriptions in total and all included in the smart rotation function 234, the Scheduling Engine 278 may suggest the first Subscription sits outside the rotation (i.e. renews always) and the remaining 2 alternate monthly. If there are 4 Subscriptions, the Scheduling Engine 278 may suggest 1 Subscription on auto renew, and 3 Subscriptions in rotation, etc.

[0175] It will be appreciated that there are various ways that rotation schedules may be devised, and the embodiments of the invention are not limited to the examples described herein.

[0176] Additional Plan data

[0177] Plan data held within the User subscription entry 254 may also include any combination of the following :

[0178] • name, price, currency, region (e.g. US, UK)

[0179] • a list of attributes for comparison purposes that may or may not be populated per plan. For example: o with ads (true / false) o Concurrent streams (true / false or numeric count) o Concurrent downloads (true / false or numeric count) o Quality (e.g. HD, 4K) • Other attributes (a list of other non-comparable attributes to display to user - e.g. Netflix premium comes with 'Netflix spatial audio')

[0180] • Included Services (1 or more)

[0181] • Available add-ons / Child plans I Channels o 'Child' plans may be Plans that are dependent on having the original Plan (e.g. Britbox offered through Amazon for an extra $8.99 / month).

[0182] This additional Plan data may be used by the Scheduling Engine 278 to include other recommendations for the user depending on the Scheduling Rules 250.

[0183] Smart Schedule

[0184] Referring to Fig. 8 a screenshot of an example Smart Schedule 280 is shown. The Smart Schedule 280 comprises a price indication zone 282, a schedule zone 284, and a coming up zone 286. The price indication zone 282 provides the user with an indication of any cost savings that can be made by using the schedule suggested by the Scheduling Engine 278. In this example, annual spend and monthly spend are shown.

[0185] The schedule zone 284 shows time on the x axis, in this example indicated in months starting with the current month on the left. Other time units are possible such as days and weeks.

[0186] In the schedule zone 284, each Subscription is displayed as respective second graphical element 288 on said graphical user interface 141 of said user device 116. The second graphical element 288 may comprise an identity of the digital service provided by the corresponding subscription. The second graphical element 288 may have a size or dimension that is proportional to the duration of the subscription. The schedule zone 284 may comprise a timeline and each of the second graphical elements 288 may be arranged on the timeline so that a start date, an end date and said duration of each subscription is apparent to the user when looking at the graphical user interface 141. The second graphical elements may be stacked within the schedule zone 284 over the timeline, whereby any overlap between different subscriptions is apparent to the user when looking at the graphical user interface 141.

[0187] The schedule zone 284 comprises three areas. A first area 284a (upper part of schedule zone 284 in this example) which shows Subscriptions chosen by the user to Auto renew. Referring back to Fig. 5 it will be recalled that the user selected Subscriptions A and B to Auto renew. Subscriptions A and B are shown in the Smart Schedule 280 as running continuously with time, meeting the Auto renew condition. However, it may be that the automation scripts have found a better price for equivalent Plans under these Subscriptions. For example an automation script may have discovered that by moving through a Subscription cancellation work flow on the Provider's website a lower price for a time period was offered. Alternatively, an automation script for Subscription A or B may have found a publicly available offer for a correspond Plan that would provide the user with the same Service for a lower price. This information was reported to the cloud application 117 as Plan offer data, and then input to the Scheduling Engine 278 to generate the Smart Schedule 280.

[0188] Referring again to Fig. 8, the schedule zone 284 comprises a second area 284b (middle part of schedule zone 284 in this example) which shows a suggested schedule for the Subscriptions included in the smart rotation function 234. At any point in time there are no more than 2 active Subscriptions from the smart rotation function 234, and that when Service C ends toward the end of January, Service E commences at the same time. Then, when Service D ends toward the end of February, Service C commences at the same time. Referring back to Fig. 5, it will be noted that the user set the Subscription rotation order in the rotation order block 238 as: C, D, E in that order. Furthermore, in Fig. 5 the savings goal 242 was set in the updated Scheduling Rules 250 as 'more content', the maximum number of Subscriptions active simultaneously was set to 2, and the Subscription duration set to 2 months.

[0189] In agreement with the update Scheduling Rules 250, the second area 284b of the schedule zone 284 suggests a rotation order of C, D and E, and that no more than 2 Subscriptions are active at any point in time.

[0190] The schedule zone 284 comprises a third area 284c (lower part of schedule zone 284 in this example) which shows inactive Subscriptions and their expiry date. Referring to Fig. 5 the user added Subscriptions F and G to the Cancel section 246. Subscriptions F and G show up in the third area 284c as the user would expect, with their expiry date indicated. In the background, the cloud application 117 will use respective automation scripts to cancel Subscriptions F and G at the appropriate time (before it ends), freeing the user from that task.

[0191] The Scheduling Engine 278 will also factor into the cost determination the earliest possible expiry date for the Subscription. For example, a user may add a Subscription to the Cancel section 246 in January but the user may be contracted to pay for the Subscription until April. The Scheduling Engine 278 will factor this into the determination of the Smart Schedule 280: when the cancelled Subscription finally concludes, the next available one is slated to commence on the same day, but not before.

[0192] In the lower part of the Smart Schedule 280, the coming up zone 288 lists in ascending date order the Subscriptions scheduled to start next, together with their start / renewal date and cost per time period. This list comprises both active Subscriptions and auto renew subscriptions. If the user is content with the Smart Schedule 280, an 'accept' button is available (not shown in the Figures). On pressing 'accept' a notification is sent to the cloud application 117. The cloud application 117 then uses the automation scripts at the right times to act in the user's account at each Provider so that the Smart Schedule 280 is followed.

[0193] The user may be notified in advance of an impending rotation event. The user may have the option to extend an active Subscription by a time period, for example one month. Before a rotation event, the automation scripts in the list of automation scripts 274 for the relevant user are triggered to verify the Service session data 230. The mobile app 118 may prompt the user to reauthenticate within the in-app browser if any session has expired with a Provider website which would otherwise prevent the automation scripts from taking the necessary actions on the user's behalf. Additionally, automation is employed to cancel an active subscription before it ends and to resubscribe to the next scheduled inactive subscription on the day of change. Notifications are sent to the user upon success or error, the latter potentially including a link to update the subscription manually.

[0194] User Adjustment to Scheduling Rules

[0195] If the user makes any adjustments within the mobile app 118, this triggers an update that is sent to the cloud application 117, which processes the updated Scheduling Rules 250 and sends an updated Smart Schedule 280 to the user. For example, a user may adjust which Subscriptions are active Subscriptions and / or the order of them in the rotation order block 238. This may result in the rescheduling of inactive subscriptions to the next available end date.

[0196] Other user preferences with the mobile app 118 available to the user may include any of the following. A user may select an active Subscriptions and ’extend’ the current cycle by another time period, such as one month (e.g. Subscription service C is scheduled to end next week and service E start. The user may choose to extend service A by 1 more month, and delay the start of service B by the same amount.

[0197] As a user modifies their preferences in the Scheduling Rules 250, the mobile app 118 may be adapted to display a visual preview of the Smart Schedule 278 and the predicted cost / savings once received from the cloud application 117. That way, the user may easily visualise the options before committing.

[0198] A target budget cap is an alternative preference to concurrent services - that determines number of active services based on their total concurrent price.

[0199] Within the app, users are presented with the option to switch plans immediately or at the start of the next billing cycle, allowing for a seamless transition and optimal cost-efficiency. While the invention has been disclosed in conjunction with a description of certain embodiments, including those that are currently believed to be useful embodiments, the detailed description is intended to be illustrative and should not be understood to limit the scope of the present disclosure. As would be understood by one of ordinary skill in the art, embodiments other than those described in detail herein are encompassed by the present invention.

[0200] Modifications and variations of the described embodiments may be made without departing from the spirit and scope of the invention.

[0201] It will further be understood that any of the ranges, values, properties, or characteristics given for any single component of the present disclosure can be used interchangeably with any ranges, values, properties, or characteristics given for any of the other components of the disclosure, where compatible, to form an embodiment having defined values for each of the components, as given herein throughout. Further, ranges provided for a genus or a category can also be applied to species within the genus or members of the category unless otherwise noted.

Claims

CLAIMS1. A computer-implemented method of scheduling a plurality of subscriptions of a user to digital services, in which each subscription of the plurality of subscriptions is manageable by the user in an online user account of a provider of the digital service, including switchable between active and inactive, which method comprise the steps of: within an application on a user device: requesting the user to access their online user account at each provider of the plurality of subscriptions using an in-app browser; receiving session data sent by each provider to the in-app browser when the user accesses each online user account of the respective provider using the in-app browser; storing a mapping between said session data and the associated provider; using a graphical user interface of said user device to display a subscription rotation order of at least two of said plurality of subscriptions, wherein said subscription rotation order comprises an indication of at least one subscription to be active at any one time, a rotation order in which the plurality of subscriptions is to be rotated sequentially, and a rotation date; enabling the user to change said rotation order; storing said rotation order; and transmitting from the application on the user device to a cloud application said mapping, said session data and said subscription rotation order; at said cloud application: storing said mapping, said session data and said subscription rotation order; before or on said rotation date, with an automation script using said session data to access the online user account of the provider of the next inactive subscription in the rotation order and to switch said next inactive subscription to active.

2. A computer-implemented method as claimed in claim 1, further comprising the steps of said automation script using said session data to access each online user account periodically before said rotation date to keep current each said session data associated with each provider of each subscription.

3. A computer-implemented method as claimed in claim 2, wherein said periodic access by said automation script is one of at least once per hour, at least once every few hours, at least once per day, at least once per week, and at least once per month.

4. A computer-implemented method as claimed in claim 1, 2 or 3, further comprising the steps of:at said application on said user device: enabling the user to change the number subscriptions active simultaneously; and when the user changes the number of subscriptions active simultaneously, transmitting the changed number of subscriptions to said cloud application; at said cloud application: receiving said changed number of subscriptions; and before or on said rotation date, with said automation script using said session data to access the necessary number of online user accounts next in the rotation order and to switch the necessary number inactive subscriptions to active to keep the number subscriptions active simultaneously equal to the changed number of subscriptions chosen by the user.

5. A computer-implemented method as claimed in claim 4, wherein said number of subscriptions active simultaneously is changeable by the user between one and the number of said plurality of subscriptions.

6. A computer-implemented method as claimed in claim 4 or 5, wherein when said number of subscriptions active simultaneously is greater than one, the method further comprises the step of setting a respective rotation date for each active subscription, and optionally wherein each respective rotation date may be different to the or each other respective rotation date of the active subscriptions.

7. A computer-implemented method as claimed in any of claims 1 to 6, further comprising the steps of, at said application on said user device, enabling the user to change the duration for which each subscription in said plurality of subscriptions is active, and when the user changes said duration re-calculating said rotation date according to said changed duration and storing said rotation date at said cloud application.

8. A computer-implemented method as claimed in claim 7, wherein a unit of said duration is one of days, weeks and months.

9. A computer-implemented method as claimed in any of claims 1 to 8, further comprising the step of before or on said rotation date, with said automation script using said session data to access the online user account of the or each active subscription in the rotation order and to switch said active subscription to inactive.

10. A computer-implemented method as claimed in any preceding claim, further comprising the steps of, following said switching of said next inactive subscription to active: at said cloud application:updating said subscription rotation order to hold a current rotation state of said rotation order and an updated rotation date; and transmitting said updated subscription rotation order to said application on said user device; and at said application on said user device: storing said updated subscription rotation order for display on said graphical user interface, whereby the user may see the or each active subscription and the updated rotation date.

11. A computer-implemented method as claimed in any preceding claim, further comprising the steps of: at said application on said user device: enabling a user to select an auto renew function for at least one subscription of said plurality of subscriptions and, when said auto renew function is selected for at least one subscription, storing said at least one auto renew subscription out of said subscription rotation order; and transmitting to said cloud application an auto renew indication for said at least one auto renew subscription; at said cloud application: receiving said auto renew indication; removing said at least one auto renew subscription from said subscription rotation order; transmitting to said application on said user device a confirmation of said auto renew indication.

12. A computer-implemented method as claimed in claim 11, further comprising the steps of at said cloud application, with said automation script using said session data to access the or each online user account at the or each provider of the at least one auto renew subscription and, before or on said rotation date, switching said at least one auto renew subscription to active.

13. A computer-implemented method as claimed in any preceding claim, further comprising the step of, at said application on said user device, enabling the user to move a subscription into or out of said subscription rotation order.

14. A computer-implemented method as claimed in any preceding claim, further comprising the steps of: at said application on said user device: enabling a user to mark a subscription as cancelled; and transmitting to said cloud application a cancellation indication for said marked subscription;at said cloud application: receiving said cancellation indication; and before the rotation date of the marked subscription, with an automation script, using said session data to access the user account at the provider website of the marked subscription and taking the action in the user account to cancel the subscription; and transmitting to said application on said user device a confirmation of said cancellation.

15. A computer-implemented method as claimed in any preceding claim, wherein said cloud application comprises a suite of automation scripts.

16. A computer-implemented method as claimed in claim 15, wherein said suite of automation scripts comprises a first set of automation scripts, the method further comprising the steps of: at least one automation script of said first set of automation scripts accessing different publicly accessible digital service provider websites, which digital service provider websites may or may not correspond to the provider websites of said plurality of subscriptions; said at least one automation script of first set of automation scripts obtaining from said publicly accessible digital service provider websites publicly available plan offer data of advertised plans to which a user may subscribe to access a digital service; and storing said publicly available plan offer data in a database accessible to said cloud application.

17. A computer-implemented method as claimed in claim 16, wherein each digital service available under each subscription is associated with a respective service identifier, the method further comprising the steps of: at said application on said user device: transmitting to said cloud application for each subscription of said plurality of subscriptions a subscription identifier comprising said service identifier; at said cloud application: receiving and storing said subscription identifier; using said service identifier to identify in said database publicly available plan offer data representing advertised plans relevant to said service identifier.

18. A computer-implemented method as claimed in claim 17, wherein said subscription identifier further comprises a plan identifier, a date indicator and a cost indicator per time period.

19. A computer-implemented method as claimed in claim 17 or 18, wherein said subscription identifier further comprises said mapping, said session data and said subscription rotation order.

20. A computer-implemented method as claimed in claims 16 to 19, further comprising the step of said cloud application executing said first set automation scripts at least daily.

21. A computer-implemented method as claimed in any of claims 15 to 20, wherein said suite of automation scripts comprises a second set of automation scripts, the method further comprising the steps of: at least one automation script of said second set of automation scripts using said session data to access, for each user respectively, the user account at each provider website of the plurality of subscriptions; said at least one automation script of said second set of automation scripts obtaining from each provider website plan data of the corresponding subscription; and storing said privately available plan data in said cloud application associated with said user.

22. A computer-implemented method as claimed in claim 21, the method further comprising the steps of: at least one automation script of said second set of automation scripts using said session data to access, for each user respectively, the user account at each provider website of the plurality of subscriptions; said at least one automation script of said second set of automation scripts obtaining from each provider website privately available plan offer data of at least one plan that is available to the user when accessing the website through the user account; and storing said privately available plan offer data in said cloud application associated with said user.

23. A computer-implemented method as claimed in claim 21 or 22, further comprising the steps of: at said application on said user device: transmitting to said cloud application an updated version of said mapping, said session data and said subscription rotation order when the user makes an adjustment to said subscription rotation order; at said cloud application: receiving said updated version; and executing at least some of said second set of automation scripts to update said privately available plan data and / or said privately available plan offer data for said user.

24. A computer-implemented method as claimed in any preceding claim, further comprising the steps of: at said application on said user device: enabling the user to select a balance option from amongst a plurality of balance options, said balance option to facilitate adjustment by said cloud application of the number of said plurality of subscriptions active simultaneously in said subscription rotation order; and transmitting the selected balance option to the cloud application; at said cloud application: storing said balance option; using said balance option to determine a number of subscriptions to be active simultaneously; and transmitting to said application on said user device an updated subscription rotation order comprising an indication of which subscription or subscriptions are active at the same time, and optionally an updated rotation order.

25. A computer-implemented method as claimed claim 24, the method further comprising the steps of: at said cloud application: selecting a balance option from: one of n subscriptions to be active at any one time; n - 1 subscriptions to be active at any one time; or n / 2 subscriptions to be active at any one time; where n is the number of subscriptions in said at least two of said plurality of subscriptions in said rotation order.

26. A computer-implemented method as claimed in claim 24 or 25, wherein each subscription of said plurality of subscriptions is associated with a respective plan of the provider website, wherein the plan comprises plan data representing a financial cost and a duration of the plan, and the plan data is associated with the digital service to which the user has access, the method further comprising the step of using said plan data and said balance option in the step of determining the number of subscriptions to be active simultaneously.

27. A computer-implemented method as claimed in claim 26, when dependent on any of claims 17 to 20, further comprising the step of using data contained in said subscription identifier in the step of determining the number of subscriptions to be active simultaneously.

28. A computer-implemented method as claimed in claim 27, the method further comprising the steps of: using said plan indicator and said cost indicator from said subscription identifier to identify publicly and / or privately available plan offer data that provides the same or a similar digital service to the user but for lower cost over a given period.

29. A computer-implemented method as claimed in any of claims 24 to 28, the method further comprising the steps of: at said application on said user device: displaying said updated subscription rotation order on said graphical user interface with an option for the user to accept or decline said updated subscription rotation order; and if the user accepts the updated subscription rotation order transmitting an indication to said cloud application.

30. A computer-implemented method as claimed in any preceding claim, further comprising the step of said cloud application using said automation script and said session data to perform automatic subscription management within each user account according to said subscription rotation order.

31. A computer-implemented method as claimed in any preceding claim, wherein the step of requesting the user to access their online account at each provider comprises the step of using a federated authentication method, such as single sign-on.

32. A computer-implemented method as claimed in any preceding claim, further comprising the step of displaying each subscription of said plurality of subscriptions as a respective first graphical element on said graphical user interface.

33. A computer-implemented method as claimed in claim 32, wherein said first graphical element comprises an identity of the digital service provided by the corresponding subscription, a subscription cost indicator and a date.

34. A computer-implemented method as claimed in claim 32 or 33, further comprising the step of enabling the user to drag and drop said first graphical element within the graphical user interface to change said rotation order and / or to move a subscription into or out of said subscription rotation order.

35. A computer-implemented method as claimed claim 32, 33 or 34, further comprising the step of displaying each subscription of said plurality of subscriptions as a respective second graphical element on said graphical user interface.

36. A computer-implemented method as claimed in claim 35, further comprising the step of displaying said second graphical element with an identity of the digital service provided by the corresponding subscription, and with a size that is proportional to the duration of the subscription.

37. A computer-implemented method as claimed in claim 36, further comprising the step of displaying a timeline on said graphical user interface and arranging each of said second graphical elements on said timeline so that a start date, an end date and said duration of each subscription is apparent to the user when looking at the graphical user interface.

38. A computer-implemented method as claimed in claim 36, further comprising the step of stacking each of said second graphical elements on said timeline, whereby any overlap between different subscriptions is apparent to the user when looking at the graphical user interface.

39. A computer-implemented method as claimed in any of claims 36 to 38, wherein each of said second graphical elements represents one of a subscription in said rotation order, a subscription set to auto renew, and a subscription set to be cancelled.

40. A computer-implemented method as claimed in any preceding claim, wherein said session data comprises an authentication cookie.

41. A computer-implemented method as claimed in any preceding claim, wherein said digital service comprises any one or more of a subscription media on-demand streaming service; a subscription online gaming service, a subscription to a Software-as-a-Service, and a subscription to a Platform-as-a-Service.

42. A computer program for use in scheduling a plurality of subscriptions of a user to digital services, in which each subscription of the plurality of subscriptions is manageable by the user in an online user account of a provider of the digital service, including switchable between active and inactive, the computer program comprising instructions which, when the program is executed by a user device, cause the user device to perform the steps of: requesting the user to access their online user account at each provider of the plurality of subscriptions using an in-app browser; receiving session data sent by each provider to the in-app browser when the user accesses each online user account of the respective provider using the in-app browser; storing a mapping between said session data and the associated provider; using a graphical user interface of said user device to display a subscription rotation order of at least two of said plurality of subscriptions, wherein said subscription rotation order comprises an indication of at least one subscription to be active at any one time, a rotation order in which theplurality of subscriptions is to be rotated sequentially, and a rotation date; enabling the user to change said rotation order; storing said rotation order; and transmitting from the user device to a cloud application said mapping, said session data and said subscription rotation order.

43. A computer program product comprising a computer program as claimed in claim 42.

44. The computer program product of claim 43, in the form of an application downloadable from a server remote from said user device.

45. A computer-readable data carrier having stored thereon the computer program product of claim 43 or 44.

46. A computing device, such as a hand-held computing device, comprising the computer-readable data carrier as claimed in claim 45.

47. A data carrier signal carrying the computer program product of claim 43 or 44.

48. A computer program for use in scheduling a plurality of subscriptions of a user to digital services, in which each subscription of the plurality of subscriptions is manageable by the user in an online user account of a provider of the digital service, including switchable between active and inactive, the computer program comprising instructions which, when the program is executed, cause a cloud application to perform the steps of: receiving from a user device the mapping, the session data and the subscription rotation order; storing said mapping, said session data and said subscription rotation order; before or on said rotation date, with an automation script using said session data to access the online user account of the provider of the next inactive subscription in the rotation order and to switch said next inactive subscription to active.

49. A computer program product comprising a computer program as claimed in claim 48.

50. A computer-readable data carrier having stored thereon the computer program of claim 48.

51. A server, such as a bare-metal server and a virtual server, comprising the computer- readable data carrier as claimed in claim 50.

52. A data carrier signal carrying the computer program of claim 48.

53. A computer-implemented method of scheduling a plurality of subscriptions of a user to digital services, in which each subscription of the plurality of subscriptions is manageable by the user in an online user account of a provider of the digital service, including switchable between active and inactive, which method comprise the steps of: at a cloud application: using at least one automation script to access different publicly accessible digital service provider websites, which digital service provider websites may or may not correspond to the provider websites of said plurality of subscriptions; said at least one automation script obtaining from said publicly accessible digital service provider websites publicly available plan offer data of advertised plans to which a user may subscribe to access a digital service; and storing said publicly available plan offer data in a database accessible to said cloud application.

54. A computer-implemented method as claimed in claim 53, the method further comprising the steps of receiving from a user device a subscription identifier comprising a service identifier, the service identifier representing a digital service to which a user of the user device is subscribed, and using said service identifier to identify in said database publicly available plan offer data representing advertised plans relevant to said service identifier.

55. A computer-implemented method as claimed in claim 54, wherein said subscription identifier further comprises a plan identifier, a date indicator and a cost indicator per time period.

56. A computer-implemented method as claimed in any of claims 53 to 55, further comprising the step of said cloud application executing said first set automation scripts at least daily.

57. A computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method of any of claims 53 to 56.

58. A computer program product comprising a computer program as claimed in claim 57.

59. A computer-readable data carrier having stored thereon the computer program of claim 57.

60. A server, such as a bare-metal server and a virtual server, comprising the computer- readable data carrier as claimed in claim 59.

61. A data carrier signal carrying the computer program of claim 57.

62. A computer-implemented method of scheduling a plurality of subscriptions of a user to digital services, in which each subscription of the plurality of subscriptions is manageable by the user in an online user account of a provider of the digital service, including switchable between active and inactive, which method comprise the steps of: at a cloud application: receiving from a user device session data sent by each provider to the user device when the user device accesses the or each online user account of the respective provider; with at least one automation script using said session data to access, for each user respectively, the user account at each provider website of the plurality of subscriptions; said at least one automation script obtaining from each provider website privately available plan data of the corresponding subscription; and storing said privately available plan data in said cloud application associated with said user.

63. A computer-implemented method as claimed in claim 62, further comprising the steps of: said at least one automation script obtaining from each provider website privately available plan offer data of at least one plan that is available to the user when accessing the website through the user account; and storing said privately available plan offer data in said cloud application associated with said user.

64. A computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method of claims 62 or 63.

65. A computer program product comprising a computer program as claimed in claim 64.

66. A computer-readable data carrier having stored thereon the computer program of claim 64.

67. A server, such as a bare-metal server and a virtual server, comprising the computer- readable data carrier as claimed in claim 66.

68. A data carrier signal carrying the computer program of claim 64.

Citation Information

Patent Citations

  • Portable data for mobile devices

    US20170118352A1

  • System and method of receiving, managing, controlling, saving and sharing information content of social media platforms and other applications

    US20210367915A1

  • Adaptive scheduling to facilitate optimized distribution of subscribed items

    US20230316220A1

  • Automatic user session

    US7380007B1

  • User-controlled session manager to provide remote disabling of session tokens

    WO2021242586A1

Cited By

  • Rules for data quality support

    US20260023789A1