IP Library › Granted Patent US 12,321,726
Granted Patent B2
US 12,321,726 · App. 18/761,232 · Granted Jun 3, 2025

In-application user interface messaging

Inventors: Nathan Mark Wittstock (Portland, OR); Ryan Lepinski (Portland, OR); Michael James Herrick (Portland, OR)
Assignee: Airship Group, Inc.
G06F8/38H04L51/214
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,321,726
App. No.
18/761,232
Granted
Jun 3, 2025
Kind
B2
Abstract

A server may receive from a software development kit (SDK) a channel identifier that represents an in-application communication channel of a software application that imports the SDK as part of the software application. In some cases, the software application is developed by a message publisher and the SDK is developed by the message management server. The server receives configuration data describing an in-application user interface (UI) element for display by the software application, the configuration data including a trigger condition for displaying the in-application UI element. The server transmits a message to the SDK via the in-application communication channel. The message includes the trigger condition from the configuration data for the in-application UI element. In response to the SDK determining that the trigger condition is satisfied, the server provides additional configuration data from the configuration data for the in-application UI element to the SDK.

Claims (46)

1. A computer-implemented method, comprising:

receiving a design of in-application user interface elements (in-app UI elements) generated by a message publisher via a graphical user interface provided by a message management server, wherein the in-app UI elements comprise a series of messages, wherein the graphical user interface provided by the message management server simulates an appearance of the in-app UI elements that augment a software application, the software application developed by the message publisher;

converting the design of the in-app UI elements as a payload that includes configuration data of the in-app UI elements;

receiving, from a software development kit (SDK) associated with the message management server, an identifier that represents an instance of the SDK incorporated as part of the software application, and the SDK developed by the message management server;

receiving, from the message publisher, a trigger condition for displaying the in-app UI elements;

determining that the software application associated with the identifier matches the trigger condition;

generating, responsive to the trigger condition being met, the payload that includes the configuration data of the in-app UI elements; and

transmitting the message payload to the SDK, wherein the SDK uses the configuration data to render the in-app UI elements, wherein the in-app UI elements are rendered as the series of messages that cover at least a portion of the software application.

2. The computer-implemented method of claim 1 , wherein the configuration data is received from the message publisher through a portal provided by the message management server, and the graphical user interface is part of the portal.

3. The computer-implemented method of claim 1 , further comprising:

receiving a response from the SDK, the response corresponding to an interaction with rendered in-app UI elements by an end user in the software application and forwarded to the SDK.

4. The computer-implemented method of claim 3 , further comprising performing, by the message management server, an action based on the response.

5. The computer-implemented method of claim 1 , wherein the trigger condition is a mobile event.

6. The computer-implemented method of claim 1 , wherein the series of messages is a series of horizontally scrollable messages.

7. The computer-implemented method of claim 1 , wherein the series of messages is a series of application on-boarding messages.

8. A system, comprising:

a software development kit (SDK) included in a software application, the software application importing the SDK as part of the software application, the software application developed by a message publisher; and

a message management server in communication with the SDK, the SDK developed by the message management server, the message management server comprising one or more processors and memory configured to store computer code comprising instructions, the instructions, when executed by the one or more processors, cause the one or more processors to:

receive a design of in-application user interface elements (in-app UI elements) generated by the message publisher via a graphical user interface provided by the message management server, wherein the in-app UI elements comprise a series of messages, wherein the graphical user interface provided by the message management server simulates an appearance of the in-app UI elements that augment the software application, the software application developed by the message publisher;

convert the design of the in-app UI elements as a payload that includes configuration data of the in-app UI elements;

receive, from the SDK associated with the message management server, an identifier that represents an instance of the SDK incorporated as part of the software application, and the SDK developed by the message management server;

receive, from the message publisher, a trigger condition for displaying the in-app UI elements;

determine that the software application associated with the identifier matches the trigger condition;

generate, responsive to the trigger condition being met, the payload that includes the configuration data of the in-app UI elements; and

transmit the message payload to the SDK, wherein the SDK uses the configuration data to render the in-app UI elements, wherein the in-app UI elements are rendered as the series of messages that cover at least a portion of the software application.

9. The system of claim 8 , wherein the configuration data is received from the message publisher through a portal provided by the message management server, and the graphical user interface is part of the portal.

10. The system of claim 8 , wherein the instructions, when executed, further cause the one or more processors to:

receive a response from the SDK, the response corresponding to an interaction with rendered in-app UI elements by an end user in the software application and forwarded to the SDK.

11. The system of claim 10 , wherein the instructions, when executed, further cause the one or more processors to perform, by the message management server, an action based on the response.

12. The system of claim 8 , wherein the trigger condition is a mobile event.

13. The system of claim 8 , wherein the series of messages is a series of horizontally scrollable messages.

14. The system of claim 8 , wherein the series of messages is a series of application on-boarding messages.

15. A non-transitory computer-readable medium configured to store computer code comprising instructions, wherein the instructions, when executed by one or more processors, cause the one or more processors to:

receive a design of in-application user interface elements (in-app UI elements) generated by a message publisher via a graphical user interface provided by a message management server, wherein the in-app UI elements comprise a series of messages, wherein the graphical user interface provided by the message management server simulates an appearance of the in-app UI elements that augment a software application, the software application developed by the message publisher;

convert the design of the in-app UI elements as a payload that includes configuration data of the in-app UI elements;

receive, from a software development kit (SDK) associated with the message management server, an identifier that represents an instance of the SDK incorporated as part of the software application, and the SDK developed by the message management server;

receive, from the message publisher, a trigger condition for displaying the in-app UI elements;

determine that the software application associated with the identifier matches the trigger condition;

generate, responsive to the trigger condition being met, the payload that includes the configuration data of the in-app UI elements; and

transmit the message payload to the SDK, wherein the SDK uses the configuration data to render the in-app UI elements, wherein the in-app UI elements are rendered as the series of messages that cover at least a portion of the software application.

16. The non-transitory computer-readable medium of claim 15 , wherein the configuration data is received from the message publisher through a portal provided by the message management server, and the graphical user interface is part of the portal.

17. The non-transitory computer-readable medium of claim 15 , wherein the instructions, when executed, further cause the one or more processors to:

receive a response from the SDK, the response corresponding to an interaction with rendered in-app UI elements by an end user in the software application and forwarded to the SDK.

18. The non-transitory computer-readable medium of claim 17 , wherein the instructions, when executed, further cause the one or more processors to perform, by the message management server, an action based on the response.

19. The non-transitory computer-readable medium of claim 15 , wherein the trigger condition is a mobile event.

20. The non-transitory computer-readable medium of claim 15 , wherein the series of messages is a series of horizontally scrollable messages.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2024
From: WITTSTOCK, NATHAN MARK; LEPINSKI, RYAN; HERRICK, MICHAEL JAMES
To: AIRSHIP GROUP, INC.
Reel/Frame 067899/0731 →
Continuity (3)
Continuation 17881422 · Aug 4, 2022
Provisional Application 63230670 · Aug 6, 2021
Related Publication 20240354073A1 · Oct 24, 2024
References Cited (81)
US 5873106A · Joseph · 1999 [cited by applicant]
US 6230309B1 · Turner et al. · 2001 [cited by applicant]
US 6732120B1 · Du · 2004 [cited by applicant]
US 7743064B2 · Faulkner et al. · 2010 [cited by applicant]
US 7925982B2 · Parker et al. · 2011 [cited by applicant]
US 8065600B2 · Chorv et al. · 2011 [cited by applicant]
US 8607154B2 · Watts et al. · 2013 [cited by applicant]
US 8761797B1 · Norton · 2014 [cited by applicant]
US 8909771B2 · Heath · 2014 [cited by applicant]
US 9081855B1 · Abeloe et al. · 2015 [cited by applicant]
US 9553838B1 · Panchenko et al. · 2017 [cited by applicant]
US 10338898B2 · Savliwala et al. · 2019 [cited by applicant]
US 10732782B1 · Krivopaltsev et al. · 2020 [cited by applicant]
US 11770579B2 · Ganschow · 2023 [cited by examiner]
US 20020156618A1 · Mathur et al. · 2002 [cited by applicant]
US 20020188669A1 · Levine · 2002 [cited by applicant]
US 20030148771A1 · de Verteuil · 2003 [cited by applicant]
US 20040183838A1 · Lahiri · 2004 [cited by applicant]
US 20040257259A1 · Jindal · 2004 [cited by applicant]
US 20050197121A1 · Fujiwara et al. · 2005 [cited by applicant]
US 20050246373A1 · Faulkner et al. · 2005 [cited by applicant]
US 20050268080A1 · Quang et al. · 2005 [cited by applicant]
US 20060025161A1 · Funato et al. · 2006 [cited by applicant]
US 20060284878A1 · Zimmer · 2006 [cited by applicant]
US 20060294199A1 · Bertholf · 2006 [cited by applicant]
US 20080010262A1 · Frank · 2008 [cited by applicant]
US 20080059889A1 · Parker et al. · 2008 [cited by applicant]
US 20080108370A1 · Aninye · 2008 [cited by applicant]
US 20080133336A1 · Altman et al. · 2008 [cited by applicant]
US 20080174570A1 · Jobs et al. · 2008 [cited by applicant]
US 20080208620A1 · Karkanias et al. · 2008 [cited by applicant]
US 20080222283A1 · Ertugrul et al. · 2008 [cited by applicant]
US 20090228464A1 · Jones et al. · 2009 [cited by applicant]
US 20090265220A1 · Bayraktar et al. · 2009 [cited by applicant]
US 20090265345A1 · Carroll · 2009 [cited by applicant]
US 20100287566A1 · Hauser · 2010 [cited by applicant]
US 20100325194A1 · Williamson et al. · 2010 [cited by applicant]
US 20110154287A1 · Mukkamala et al. · 2011 [cited by applicant]
US 20110161328A1 · Park et al. · 2011 [cited by applicant]
US 20110238608A1 · Sathish · 2011 [cited by applicant]
US 20110258049A1 · Ramer et al. · 2011 [cited by applicant]
US 20110264996A1 · Norris · 2011 [cited by applicant]
US 20110289513A1 · Degirmenci et al. · 2011 [cited by applicant]
US 20120227000A1 · McCov et al. · 2012 [cited by applicant]
US 20120317205A1 · Lahiani et al. · 2012 [cited by applicant]
US 20130014046A1 · Watts et al. · 2013 [cited by applicant]
US 20130019182A1 · Gil et al. · 2013 [cited by applicant]
US 20130054706A1 · Graham et al. · 2013 [cited by applicant]
US 20130073336A1 · Heath · 2013 [cited by applicant]
US 20130212487A1 · Cote · 2013 [cited by applicant]
US 20130219307A1 · Raber et al. · 2013 [cited by applicant]
US 20130324098A1 · Piemonte et al. · 2013 [cited by applicant]
US 20140047344A1 · Watts et al. · 2014 [cited by applicant]
US 20140100669A1 · Hammack et al. · 2014 [cited by applicant]
US 20140109176A1 · Barton et al. · 2014 [cited by applicant]
US 20140282218A1 · Kaufman et al. · 2014 [cited by applicant]
US 20140297175A1 · Zarem et al. · 2014 [cited by applicant]
US 20150160931A1 · Glazer et al. · 2015 [cited by applicant]
US 20150161088A1 · Kamada · 2015 [cited by applicant]
US 20170052835A1 · Cook et al. · 2017 [cited by applicant]
US 20180004507A1 · Aijaz et al. · 2018 [cited by applicant]
US 20180314513A1 · DiTullio et al. · 2018 [cited by applicant]
US 20190312746A1 · Myers et al. · 2019 [cited by applicant]
US 20200153821A1 · Cao et al. · 2020 [cited by applicant]
US 20210096826A1 · Duggal et al. · 2021 [cited by applicant]
US 20210281654A1 · Howett et al. · 2021 [cited by applicant]
US 20220051221A1 · Pandey et al. · 2022 [cited by applicant]
KR 1020170006813A · 2017 [cited by applicant]
Boltclock, “Revision—Stack Overflow,” https://stackoverflow.com/revisions/8426901/2, 1 page, Dec. 8, 2011. [cited by applicant]
European Patent Office, Extended European Search Report and Opinion, EP Patent Application No. 20162248.7, dated Jun. 25, 2020, nine pages. [cited by applicant]
Extended European Search Report, European Application No. 15739969.2, dated Aug. 30, 2017, 12 pages. [cited by applicant]
Leiva, L., “ACE: An Adaptive CSS Engine for Web Pages and Web-based Applications,” WWW2012 Developer Track, Apr. 2012, pp. 1-4. [cited by applicant]
Leiva, L., “Interaction-based user interface redesign,” Proceedings of the 2012 ACM International Conference on Intelligent User Interfaces, Feb. 2012, pp. 311-312. [cited by applicant]
PCT International Search Report and Written Opinion, PCT Application No. PCT/IB2022/057286, Nov. 3, 2022, 9 pages. [cited by applicant]
PCT International Search Report and Written Opinion, PCT Application No. PCT/US15/11986, dated Apr. 9, 2015, 9 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 14/506,990, dated Jan. 12, 2017, 24 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 14/506,990, dated Jun. 15, 2018, 12 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 14/506,990, dated Nov. 16, 2017, 22 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 16/381,590, filed Aug. 20, 2020, 11 pages. [cited by applicant]
W3C, “Selectors API Level 1,” Feb. 21, 2013, eight pages, [Online] [Retrieved on Jun. 12, 2020] Retrieved on the Internet <URL: https://www.w3.org/TR/selectors-api/>. [cited by applicant]
W3Schools, “CSS Selector Reference,” https://www.w3schools.com/cssref/css_selectors.asp, 9 pages, Jan. 1, 2014. [cited by applicant]