IP Library Granted Patent US 12,261,900
Granted Patent B2
US 12,261,900 · App. 18/141,978 · Granted Mar 25, 2025

Platform-independent content generation for thin client applications

Inventor: Farhad Massoudi (San Francisco, CA)
Assignee: Tubi, Inc.
H04L67/02G06F8/38G06F9/44G06F16/9577G06Q30/0277H04L67/53H04L67/535
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,261,900
App. No.
18/141,978
Granted
Mar 25, 2025
Kind
B2
Abstract

A system for executing thin client applications, the system configured to: generate, by a thin client application executing on a client computing device, an initial content request identifying a platform; send the initial content request to a content provider; receive platform-independent initial content from the content provider in response to the initial content request; display the initial content on the client computing device; detect a user input associated with the initial content; send a user engagement request for secondary content; receive user-interactive secondary content server-side rendered in a platform-dependent format of the client computing device based on the platform identification; and display the secondary content on the display component.

Claims (66)

1. A system for providing content, the system comprising:

a computer processor; and

a content engine executing on the computer processor and configured to:

receive an initial content request from a thin client application executing on a client computing device;

provide a plurality of initial content for the thin client application in response to the initial content request, wherein the plurality of initial content is server-side rendered and platform-independent;

receive, from the thin client application, a user engagement request identifying a user input associated with the plurality of initial content;

execute a headless web browser to obtain a plurality of subsequent content generated in the platform of the client computing device based on the user input;

provide, in response to the user engagement request, the plurality of subsequent content in a platform-independent format for display by the thin client application; and

the headless web browser configured to execute in the platform of the client computing device to:

establish a session with a content provider of the plurality of initial content;

render the plurality of initial content in a platform-dependent format;

emulate the user input on the plurality of initial content rendered in the platform-dependent format; and

receive a plurality of subsequent content from the content provider in response to emulating the user input.

2. The system of claim 1 , wherein the plurality of initial content comprises an interactive user interface, and the content engine is further configured to:

receive a plurality of user engagement requests from the thin client application, each of the plurality of user engagement requests comprising a command for modifying the interactive user interface;

provide updates to the plurality of initial content for the thin client application in response to the plurality of user engagement requests; and

wherein the headless web browser is configured to, for each of the plurality of user engagement requests and during the session:

emulate a user interaction on the plurality of initial content rendered in the platform-dependent format, and

render, based on the command, a modification to the plurality of initial content rendered in the platform-dependent format.

3. The system of claim 1 , wherein the content engine is further configured to:

provide, for the thin client application, an instruction to request a tracking pixel, wherein the thin client application requests the tracking pixel from a reporting service in response to the instruction and in conjunction with displaying the plurality of subsequent content.

4. The system of claim 1 , wherein the headless web browser is further configured to maintain the session with the content provider across multiple requests from the thin client application.

5. The system of claim 1 , wherein the content engine further comprises functionality to:

provide a video stream for display by the thin client application, wherein the plurality of initial content and the plurality of subsequent content are advertisements displayed relative to the video stream.

6. The system of claim 1 , wherein the user input is a directional indicator obtained from a remote control device operatively connected to the thin client application, and wherein the thin client application includes limited rendering functionality.

7. The system of claim 1 , wherein the thin client application includes functionality to periodically request a tracking pixel from an external reporting service while the plurality of initial content is displayed to the user, and wherein the system further comprises the external reporting service comprising functionality to:

estimate a display time of the plurality of initial content based on a number of requests of the tracking pixel.

8. A method for providing content, comprising:

receiving an initial content request from a thin client application executing on a client computing device;

providing a plurality of initial content for the thin client application in response to the initial content request, wherein the plurality of initial content is server-side rendered and platform-independent;

receiving, from the thin client application, a user engagement request identifying a user input associated with the plurality of initial content;

executing, by a computer processor, a headless web browser to establish a session with a content provider of the plurality of initial content;

rendering, by the headless web browser, the plurality of initial content in a platform-dependent format;

emulating the user input on the plurality of initial content rendered in the platform-dependent format;

receiving a plurality of subsequent content from the content provider in response to emulating the user input,

providing, in response to the user engagement request, the plurality of subsequent content in a platform-independent format for display by the thin client application.

9. The method of claim 7 , wherein the plurality of initial content comprises an interactive user interface, and the method further comprising:

receiving a plurality of user engagement requests from the thin client application, each of the plurality of user engagement requests comprising a command for modifying the interactive user interface;

providing updates to the plurality of initial content for the thin client application in response to the plurality of user engagement requests; wherein the headless web browser is configured to, for each of the plurality of user engagement requests and during the session:

emulate a user interaction on the plurality of initial content rendered in the platform-dependent format, and

render, based on the command, a modification to the plurality of initial content rendered in the platform-dependent format.

10. The method of claim 7 , further comprising:

providing, for the thin client application, an instruction to request a tracking pixel, wherein the thin client application requests the tracking pixel from a reporting service in response to the instruction and in conjunction with displaying the plurality of subsequent content.

11. The method of claim 7 , wherein the headless web browser is further configured to maintain the session with the content provider across multiple requests from the thin client application.

12. The method of claim 7 , further comprising:

providing a video stream for display by the thin client application, wherein the plurality of initial content and the plurality of subsequent content are advertisements displayed relative to the video stream.

13. The method of claim 7 , wherein the user input is a directional indicator obtained from a remote control device operatively connected to the thin client application, and wherein the thin client application includes limited rendering functionality.

14. The method of claim 7 , wherein the thin client application includes functionality to periodically request a tracking pixel from an external reporting service while the plurality of initial content is displayed to the user, and wherein the method further comprises:

estimating a display time of the plurality of initial content based on a number of requests of the tracking pixel.

15. A non-transitory computer-readable storage medium comprising a plurality of instructions for providing content, the instructions configured to execute on at least one computer processor to enable the computer processor to:

receive an initial content request from a thin client application executing on a client computing device;

provide a plurality of initial content for the thin client application in response to the initial content request, wherein the plurality of initial content is server-side rendered and platform- independent;

receive, from the thin client application, a user engagement request identifying a user input associated with the plurality of initial content;

execute a headless web browser to establish a session with a content provider of the plurality of initial content, wherein the headless web browser renders the plurality of initial content in a platform-dependent format and emulates the user input on the plurality of initial content rendered in the platform-dependent format; and

provide, in response to the user engagement request, a plurality of subsequent content in a platform-independent format for display by the thin client application, wherein the plurality of subsequent content is obtained from the content provider in response to emulating the user input.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the plurality of initial content comprises an interactive user interface, and the plurality of instructions further configured to enable the computer processor to:

receive a plurality of user engagement requests from the thin client application, each of the plurality of user engagement requests comprising a command for modifying the interactive user interface;

provide updates to the plurality of initial content for the thin client application in response to the plurality of user engagement requests; wherein the headless web browser is configured to, for each of the plurality of user engagement requests and during the session:

emulate a user interaction on the plurality of initial content rendered in the platform-dependent format, and

render, based on the command, a modification to the plurality of initial content rendered in the platform-dependent format.

17. The non-transitory computer-readable storage medium of claim 14 , the plurality of instructions further configured to enable the computer processor to:

provide, for the thin client application, an instruction to request a tracking pixel, wherein the thin client application requests the tracking pixel from a reporting service in response to the instruction and in conjunction with displaying the plurality of subsequent content.

18. The non-transitory computer-readable storage medium of claim 14 , wherein the headless web browser is further configured to maintain the session with the content provider across multiple requests from the thin client application.

19. The non-transitory computer-readable storage medium of claim 14 , the plurality of instructions further configured to enable the computer processor to:

provide a video stream for display by the thin client application, wherein the plurality of initial content and the plurality of subsequent content are advertisements displayed relative to the video stream.

20. The non-transitory computer-readable storage medium of claim 14 , wherein the user input is a directional indicator obtained from a remote control device operatively connected to the thin client application, and wherein the thin client application includes limited rendering functionality.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2024
From: MASSOUDI, FARHAD
To: ADRISE, INC.
Reel/Frame 067314/0887 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2024
From: ADRISE, INC.
To: TUBI, INC.
Reel/Frame 067315/0139 →
Continuity (6)
Continuation 17498698 · Oct 11, 2021
Continuation 16819184 · Mar 16, 2020
Continuation 14846216 · Sep 4, 2015
Continuation 14056880 · Oct 17, 2013
Provisional Application 61800348 · Mar 15, 2013
Related Publication 20230353625A1 · Nov 2, 2023
References Cited (98)
US 6546554B1 · Schmidt · 2003 [cited by examiner]
US 6804816B1 · Liu · 2004 [cited by examiner]
US 8776111B1 · Eldering et al. · 2014 [cited by applicant]
US 9215123B1 · Fears et al. · 2015 [cited by applicant]
US 9277275B1 · Arini · 2016 [cited by applicant]
US 9465604B1 · Burgyan et al. · 2016 [cited by applicant]
US 9563928B1 · Sokolowski et al. · 2017 [cited by applicant]
US 10007863B1 · Pereira et al. · 2018 [cited by applicant]
US 10671852B1 · Zadeh et al. · 2020 [cited by applicant]
US 10846737B1 · Matarese et al. · 2020 [cited by applicant]
US 10887421B2 · Moassoudi · 2021 [cited by applicant]
US 11463540B2 · Massoudi · 2022 [cited by applicant]
US 20010020255A1 · Hofmann et al. · 2001 [cited by applicant]
US 20020111995A1 · Mansour · 2002 [cited by examiner]
US 20020129129A1 · Bloch · 2002 [cited by examiner]
US 20020129368A1 · Schlack et al. · 2002 [cited by applicant]
US 20020146181A1 · Azam · 2002 [cited by examiner]
US 20020178126A1 · Beck et al. · 2002 [cited by applicant]
US 20030191726A1 · Kirshenbaum · 2003 [cited by applicant]
US 20030235184A1 · Dorenbosch et al. · 2003 [cited by applicant]
US 20050049998A1 · Ruhlow · 2005 [cited by examiner]
US 20050101321A1 · Ikeda et al. · 2005 [cited by applicant]
US 20050172243A1 · Pabla · 2005 [cited by examiner]
US 20050177835A1 · Chickering · 2005 [cited by applicant]
US 20060075019A1 · Donovan et al. · 2006 [cited by applicant]
US 20060253323A1 · Phan et al. · 2006 [cited by applicant]
US 20070233671A1 · Oztekin et al. · 2007 [cited by applicant]
US 20080082604A1 · Mansour · 2008 [cited by examiner]
US 20080259906A1 · Shkedi · 2008 [cited by applicant]
US 20090006214A1 · Lerman · 2009 [cited by applicant]
US 20090013051A1 · Renschler et al. · 2009 [cited by applicant]
US 20090064301A1 · Sachdeva · 2009 [cited by applicant]
US 20090089161A1 · Alo et al. · 2009 [cited by applicant]
US 20090106785A1 · Pham · 2009 [cited by applicant]
US 20090129479A1 · Yellamraju · 2009 [cited by applicant]
US 20090204478A1 · Kaib et al. · 2009 [cited by applicant]
US 20100037255A1 · Sheehan · 2010 [cited by applicant]
US 20100151816A1 · Besehanic et al. · 2010 [cited by applicant]
US 20100211967A1 · Ramaswamy et al. · 2010 [cited by applicant]
US 20100246981A1 · Hu et al. · 2010 [cited by applicant]
US 20110040636A1 · Simmons et al. · 2011 [cited by applicant]
US 20110093335A1 · Fordyce et al. · 2011 [cited by applicant]
US 20110103374A1 · LaJoie et al. · 2011 [cited by applicant]
US 20110113116A1 · Burdette et al. · 2011 [cited by applicant]
US 20110125594A1 · Brown et al. · 2011 [cited by applicant]
US 20110167440A1 · Greenfield · 2011 [cited by applicant]
US 20110219229A1 · Cholas et al. · 2011 [cited by applicant]
US 20110225046A1 · Eldering et al. · 2011 [cited by applicant]
US 20110246298A1 · Williams et al. · 2011 [cited by applicant]
US 20110252305A1 · Tschäni et al. · 2011 [cited by applicant]
US 20110258049A1 · Ramer et al. · 2011 [cited by applicant]
US 20120007866A1 · Tahan · 2012 [cited by applicant]
US 20120016655A1 · Travieso · 2012 [cited by applicant]
US 20120029983A1 · Rodriguez et al. · 2012 [cited by applicant]
US 20120089455A1 · Belani et al. · 2012 [cited by applicant]
US 20120102169A1 · Yu et al. · 2012 [cited by applicant]
US 20120151079A1 · Besehanic et al. · 2012 [cited by applicant]
US 20120263385A1 · van Zwol · 2012 [cited by applicant]
US 20130110634A1 · Cochran et al. · 2013 [cited by applicant]
US 20130132856A1 · Binyamin et al. · 2013 [cited by applicant]
US 20130156269A1 · Matsui et al. · 2013 [cited by applicant]
US 20130198376A1 · Landa et al. · 2013 [cited by applicant]
US 20130227068A1 · Yasrebi et al. · 2013 [cited by applicant]
US 20130268951A1 · Wyatt et al. · 2013 [cited by applicant]
US 20130311649A1 · DeFrancesco et al. · 2013 [cited by applicant]
US 20130346202A1 · Kouladjie · 2013 [cited by applicant]
US 20140059636A1 · Patel · 2014 [cited by applicant]
US 20140075014A1 · Chourey · 2014 [cited by applicant]
US 20140101686A1 · Kitts · 2014 [cited by applicant]
US 20140101739A1 · Li et al. · 2014 [cited by applicant]
US 20140143052A1 · Stryker · 2014 [cited by applicant]
US 20140157289A1 · Aarts et al. · 2014 [cited by applicant]
US 20140181243A1 · Nieuwenhuys · 2014 [cited by applicant]
US 20140282642A1 · Needham et al. · 2014 [cited by applicant]
US 20140372415A1 · Fernandez-Ruiz · 2014 [cited by applicant]
US 20140379911A1 · Fayssal et al. · 2014 [cited by applicant]
US 20150055931A1 · Koivukangas et al. · 2015 [cited by applicant]
US 20150082345A1 · Archer et al. · 2015 [cited by applicant]
US 20150206198A1 · Marshall · 2015 [cited by applicant]
US 20150234564A1 · Snibbe et al. · 2015 [cited by applicant]
US 20150271540A1 · Melby et al. · 2015 [cited by applicant]
US 20150382075A1 · Neumeier et al. · 2015 [cited by applicant]
US 20160358099A1 · Sturlaugson · 2016 [cited by applicant]
US 20160358209A1 · Khozani et al. · 2016 [cited by applicant]
US 20160360289A1 · Santoro et al. · 2016 [cited by applicant]
US 20170064411A1 · Goli et al. · 2017 [cited by applicant]
US 20170193560A1 · Bhalgat · 2017 [cited by applicant]
US 20170278289A1 · Marino · 2017 [cited by applicant]
US 20180349391A1 · Chechik · 2018 [cited by applicant]
US 20190138810A1 · Chen et al. · 2019 [cited by applicant]
US 20190295122A1 · Kumar · 2019 [cited by applicant]
US 20190332865A1 · Dassa · 2019 [cited by applicant]
US 20200160389A1 · Yang · 2020 [cited by applicant]
US 20200242364A1 · Zadeh · 2020 [cited by applicant]
US 20210089780A1 · Chang · 2021 [cited by applicant]
US 20210195286A1 · Lohumi · 2021 [cited by applicant]
US 20220172384A1 · Pereira · 2022 [cited by applicant]
“Mediacampaign—A multi modal semantic analysis system for advertisement campaign detection”, IEEE, 2008. (Year: 2008). [cited by applicant]