IP Library Granted Patent US 12,210,856
Granted Patent B2
US 12,210,856 · App. 17/941,158 · Granted Jan 28, 2025

Dynamic code management

Inventors: Grant Lawrence Miller (Los Angeles, CA); Marc Campbell (Los Angeles, CA)
Assignee: LIVEPERSON, INC.
G06F8/447G06F16/9577G06F16/958G06F16/972
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,210,856
App. No.
17/941,158
Granted
Jan 28, 2025
Kind
B2
Abstract

Systems and methods for performing dynamic code management, such as dynamic management of JavaScript tags in webpages or code segments in native applications, are disclosed. A user device loading a web or native application can access a factor, such as a user device-specific attribute or a piece of content of the webpage or native application being loaded. That factor can be applied to a rule that is evaluated (e.g., by the user device or a code server) to select one or more desired segments of code (e.g., JavaScript tags or native application code) to be executed by the user device from a pool of available code (e.g., pre-embedded code or dynamically injected code).

Claims (35)

1. A computer-implemented method, comprising:

receiving an indication of content associated with a native application executed on a user device, wherein the native application includes a set of available code segments stored in memory of the user device, and wherein the set of available code segments correspond to different versions of an application interface associated with the native application;

generating a device inference based on the content, wherein the device inference indicates one or more capabilities associated with the user device;

accessing a set of rules associated with the native application, wherein the set of rules indicates which code segments from the set of available code segments are executable by the native application according to different content associated with the native application;

identifying one or more code segments based on the content associated with the native application and by applying the device inference to the set of rules, wherein the one or more code segments are identified from the set of available code segments;

generating decision data, wherein the decision data includes updates to the set of available code segments, and wherein the decision data indicates that the one or more code segments are to be executed by the native application;

transmitting the decision data, wherein when the decision data is received, the native application performs the updates and executes the one or more code segments to provide a particular version of the application interface through the user device; and

receiving rule update information corresponding to the set of rules and that defines an updated version of one or more rules from the set of rules, wherein the rule update information is processed to implement the updated version of the one or more rules, and wherein when a new indication of content is received, corresponding code segments are identified from the set of available code segments based on the updated version of the one or more rules.

2. The computer-implemented method of claim 1 , wherein the indication is received as a result of execution of a static tag included in the native application, and wherein the static tag causes the native application to provide the indication.

3. The computer-implemented method of claim 1 , wherein the content associated with the native application includes a title corresponding to the native application, a client identifier associated with the native application, or a portion of the native application being accessed through the user device.

4. The computer-implemented method of claim 1 , wherein the decision data includes executable code that, when executed by the native application, causes the native application to execute the one or more code segments.

5. A system, comprising:

one or more processors; and

memory storing thereon instructions that, as a result of being executed by the one or more processors, cause the system to:

receive an indication of content associated with a native application executed on a user device, wherein the native application includes a set of available code segments stored in memory of the user device, and wherein the set of available code segments correspond to different versions of an application interface associated with the native application;

generate a device inference based on the content, wherein the device inference indicates one or more capabilities associated with the user device;

access a set of rules associated with the native application, wherein the set of rules indicates which code segments from the set of available code segments are executable by the native application according to different content associated with the native application;

identify one or more code segments based on the content associated with the native application and by applying the device inference to the set of rules, wherein the one or more code segments are identified from the set of available code segments;

generate decision data, wherein the decision data includes updates to the set of available code segments, and wherein the decision data indicates that the one or more code segments are to be executed by the native application;

transmit the decision data, wherein when the decision data is received, the native application performs the updates and executes the one or more code segments to provide a particular version of the application interface through the user device; and

receive rule update information corresponding to the set of rules and that defines an updated version of one or more rules from the set of rules, wherein the rule update information is processed to implement the updated version of the one or more rules, and wherein when a new indication of content is received, corresponding code segments are identified from the set of available code segments based on the updated version of the one or more rules.

6. The system of claim 5 , wherein the indication is received as a result of execution of a static tag included in the native application, and wherein the static tag causes the native application to provide the indication.

7. The system of claim 5 , wherein the content associated with the native application includes a title corresponding to the native application, a client identifier associated with the native application, or a portion of the native application being accessed through the user device.

8. The system of claim 5 , wherein the decision data includes executable code that, when executed by the native application, causes the native application to execute the one or more code segments.

9. A non-transitory, computer-readable storage medium storing thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to:

receive an indication of content associated with a native application executed on a user device, wherein the native application includes a set of available code segments stored in memory of the user device, and wherein the set of available code segments correspond to different versions of an application interface associated with the native application;

generate a device inference based on the content, wherein the device inference indicates one or more capabilities associated with the user device;

access a set of rules associated with the native application, wherein the set of rules indicates which code segments from the set of available code segments are executable by the native application according to different content associated with the native application;

identify one or more code segments based on the content associated with the native application and by applying the device inference to the set of rules, wherein the one or more code segments are identified from the set of available code segments;

generate decision data, wherein the decision data includes updates to the set of available code segments, and wherein the decision data indicates that the one or more code segments are to be executed by the native application;

transmit the decision data, wherein when the decision data is received, the native application performs the updates and executes the one or more code segments to provide a particular version of the application interface through the user device; and

receive rule update information corresponding to the set of rules and that defines an updated version of one or more rules from the set of rules, wherein the rule update information is processed to implement the updated version of the one or more rules, and wherein when a new indication of content is received, corresponding code segments are identified from the set of available code segments based on the updated version of the one or more rules.

10. The non-transitory, computer-readable storage medium of claim 9 , wherein the indication is received as a result of execution of a static tag included in the native application, and wherein the static tag causes the native application to provide the indication.

11. The non-transitory, computer-readable storage medium of claim 9 , wherein the content associated with the native application includes a title corresponding to the native application, a client identifier associated with the native application, or a portion of the native application being accessed through the user device.

12. The non-transitory, computer-readable storage medium of claim 9 , wherein the decision data includes executable code that, when executed by the native application, causes the native application to execute the one or more code segments.

Assignments (4)
SECURITY INTEREST Recorded Jan 13, 2026
From: LIVEPERSON, INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 073451/0061 →
SECURITY INTEREST Recorded Sep 13, 2025
From: LIVEPERSON, INC.; VOICEBASE, INC.; LIVEPERSON AUTOMOTIVE, LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 072891/0627 →
PATENT SECURITY AGREEMENT Recorded Jun 3, 2024
From: LIVEPERSON, INC.; LIVEPERSON AUTOMOTIVE, LLC; VOICEBASE, INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 067607/0073 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2023
From: MILLER, GRANT LAWRENCE; CAMPBELL, MARC
To: LIVEPERSON, INC.
Reel/Frame 065438/0887 →
Continuity (5)
Continuation 17063270 · Oct 5, 2020
Continuation 15595492 · May 15, 2017
Continuation 14849396 · Sep 9, 2015
Provisional Application 62048022 · Sep 9, 2014
Related Publication 20230134632A1 · May 4, 2023
References Cited (74)
US 6748588B1 · Fraser et al. · 2004 [cited by applicant]
US 7200809B1 · Paul et al. · 2007 [cited by applicant]
US 7206647B2 · Kumar · 2007 [cited by applicant]
US 8438473B2 · Mak · 2013 [cited by applicant]
US 8869019B1 · Sampath-Kumar et al. · 2014 [cited by applicant]
US 9262058B2 · Mubarek · 2016 [cited by applicant]
US 9280677B1 · Perry · 2016 [cited by examiner]
US 9384346B1 · Dayan · 2016 [cited by examiner]
US 9489190B1 · Wang · 2016 [cited by examiner]
US 9558288B1 · Boswell et al. · 2017 [cited by applicant]
US 9645980B1 · Kim · 2017 [cited by examiner]
US 9772829B2 · Miller et al. · 2017 [cited by applicant]
US 10474735B2 · DeLoach · 2019 [cited by applicant]
US 10831459B2 · Miller et al. · 2020 [cited by applicant]
US 11481199B2 · Miller et al. · 2022 [cited by applicant]
US 20050015365A1 · Kavacheri et al. · 2005 [cited by applicant]
US 20050246635A1 · Hirose et al. · 2005 [cited by applicant]
US 20070061486A1 · Trinh et al. · 2007 [cited by applicant]
US 20090070413A1 · Priyadarshan · 2009 [cited by applicant]
US 20090305682A1 · Spalink · 2009 [cited by applicant]
US 20100057581A1 · Narayanaswami · 2010 [cited by applicant]
US 20100180192A1 · Hall et al. · 2010 [cited by applicant]
US 20100205024A1 · Shacha · 2010 [cited by applicant]
US 20100318892A1 · Teevan et al. · 2010 [cited by applicant]
US 20100325607A1 · Meijer et al. · 2010 [cited by applicant]
US 20110125594A1 · Brown · 2011 [cited by applicant]
US 20110197156A1 · Strait · 2011 [cited by applicant]
US 20110271175A1 · Lavi et al. · 2011 [cited by applicant]
US 20120011431A1 · Mao · 2012 [cited by applicant]
US 20120042232A1 · Brelsford · 2012 [cited by applicant]
US 20120072488A1 · Manion et al. · 2012 [cited by applicant]
US 20120166609A1 · Lux · 2012 [cited by applicant]
US 20120254853A1 · Aggarwal et al. · 2012 [cited by applicant]
US 20120266101A1 · Shah · 2012 [cited by applicant]
US 20120297288A1 · Mansouri · 2012 [cited by applicant]
US 20130021381A1 · Zhang · 2013 [cited by applicant]
US 20130036351A1 · King et al. · 2013 [cited by applicant]
US 20140019844A1 · Rakow · 2014 [cited by applicant]
US 20140052576A1 · Zelenka · 2014 [cited by applicant]
US 20140068589A1 · Barak · 2014 [cited by examiner]
US 20140075287A1 · Scoda · 2014 [cited by applicant]
US 20140157380A1 · Abrams et al. · 2014 [cited by applicant]
US 20140237378A1 · Gonen · 2014 [cited by applicant]
US 20140281904A1 · Burckart et al. · 2014 [cited by applicant]
US 20140300643A1 · Urosev · 2014 [cited by applicant]
US 20140310742A1 · Kim · 2014 [cited by applicant]
US 20140380137A1 · Zhang et al. · 2014 [cited by applicant]
US 20150040098A1 · Akins et al. · 2015 [cited by applicant]
US 20150067589A1 · Xiao · 2015 [cited by applicant]
US 20150089475A1 · Geng · 2015 [cited by examiner]
US 20150180946A1 · Mellamphy et al. · 2015 [cited by applicant]
US 20150309993A1 · Wilde · 2015 [cited by applicant]
US 20160026716A1 · Yeager · 2016 [cited by applicant]
US 20160070551A1 · Miller et al. · 2016 [cited by applicant]
US 20170123635A1 · Zhang · 2017 [cited by applicant]
US 20180173393A1 · Verdier · 2018 [cited by applicant]
EP 1641211 · 2006 [cited by applicant]
WO 2016040494 · 2016 [cited by applicant]
U.S. Appl. No. 14/849,396, “Non-Final Office Action”, Jun. 3, 2016, 18 pages. [cited by applicant]
U.S. Appl. No. 14/849,396, “Notice of Allowance”, Feb. 14, 2017, 11 pages. [cited by applicant]
Buttler et al., “Device Independence and the Web”, [Retrieved from Internet on Feb. 1, 2017], <http://www.hpl.hp.com/research/papers/2003/device_independence.pdf>, 2002, pp. 1-10. [cited by applicant]
Charland et al., “Mobile application development”, Web vs. Native, Communications of the ACM, vol. 54 Issue 5, May 2011, 49-53 Pages. [cited by applicant]
PCT/US2015/049204 , “International Search Report and Written Opinion”, Nov. 23, 2015, 15 pages. [cited by applicant]
Retrieved From Internet on Feb. 1 et al., “Evaluating Web Accessibility for Specific Mobile Devices”, Retrieved from Internet on Feb. 1, 2017], <https://pdfs.semanticscholar.org/8fcf/2683e22cec2ae5008417e27c48b831e33d20… [cited by applicant]
SMUS , “A non-responsive approach to building cross-device webapps-HTML5 Rocks”, http://www.html5rocks.com/en/mobile/cross-device/, Apr. 24, 2012, 12 pages. [cited by applicant]
Vander et al., “Extracting and Evolving Mobile Games Product Lines”, Retrieved from Internet on Feb. 1, 2017 <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.9134&rep=repl&type=pdf>, 2005, pp. 70-81. [cited by applicant]
A. Roudaki,J.Kong et al., “A classification of webbrowsing on mobile devices”, [Online], pp. 82-98, [Retrieved from Interent on Jun. 22, 2020], <https://www.sciencedirect.com/science/article/pii/S1045926X14001505>, (Yea… [cited by applicant]
Louis-Pierre Berge et al., “Exploring Smartphone-Based Interaction with Overview+Detail Interfaces on 3D Public Displays”, [Online ], pp. 125-134, [Retrieved from Internet on Jun. 22, 2020], <https://dl.acm.org/doi/pdf/… [cited by applicant]
Michael Nebeling et al., “W3Touch: Metrics-based Web Page Adaptation for Touch”, [Online], pp. 2311-2320, [Retrieved from Interent on Jun. 22, 2020], <https://dl.acm.org/doi/pdf/10.1145/2470654.2481319>, (Year: 2013). [cited by applicant]
Patrick Baudisch et al., “Collapse-to-Zoom: Viewing Web Pages on Small Screen Devices by Interactively Removing Irrelevant Content”, [Online], pp. 91-94, [Retrieved from Interent on Jun. 22, 2020], <https://dl.acm.org/d… [cited by applicant]
U.S. Appl. No. 15/595,492, “Final Office Action”, Dec. 13, 2019, 21 pages. [cited by applicant]
U.S. Appl. No. 15/595,492, “Notice of Allowance”, Jul. 7, 2020, 8 pages. [cited by applicant]
U.S. Appl. No. 17/063,270, “Non-Final Office Action”, Oct. 15, 2021, 8 pages. [cited by applicant]
U.S. Appl. No. 17/063,270, “Notice of Allowance”, Jun. 23, 2022, 16 pages. [cited by applicant]