IP Library Granted Patent US 12,248,673
Granted Patent B2
US 12,248,673 · App. 16/793,926 · Granted Mar 11, 2025

Systems and methods for attributing a scroll event in an infinite scroll graphical user interface

Inventors: Tianjiu Yin (Mountain View, CA); Kun Zhang (Pleasanton, CA)
Assignee: GOOGLE LLC
G06F3/0485G06F3/0483G06F3/04855G06F3/04886G06F9/451
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,248,673
App. No.
16/793,926
Granted
Mar 11, 2025
Kind
B2
Abstract

Systems and methods for attributing a scroll event are described herein. The system can provide, to a client device, an infinite scroll attribution script. The script can cause the client device to set a dimension of an inline frame, embedded with a content document, of an page to a dimension corresponding to a viewport of an application and determine, responsive to detecting a scroll event, that a first offset between a first content document end and a first viewport end is less than or equal to a first predetermined threshold. The script can further cause the client device to determine, responsive to detecting the scroll event, that a second offset between a second content document end and a second viewport end is greater than or equal to a second threshold and assign the scroll event to the inline frame responsive to the determinations of the first and second offsets.

Claims (69)

1. A method of attributing scroll events in applications, comprising:

providing, by a data processing system to a client device, a script to execute on the client device, the script configured to cause the client device to:

monitor for a scroll event on an information resource presented via a viewport of an application executing on the client device, the information resource identifying a first inline frame, the first inline frame embeddable with a content document;

determine that an offset between an end of the content document of the first inline frame and a corresponding end of the viewport is not within a threshold value; and

change, responsive to the scroll event and based on determining that the offset is not within the threshold value:

a value for a scrollable property of the first inline frame from a value indicating that the content document is not allowed to scroll relative to the first inline frame to a value indicating that the content document is allowed to scroll relative to the first inline frame; and

a value for a scrollable property of the viewport to a value indicating that the information resource is not allowed to scroll.

2. The method of claim 1 , wherein the script is further configured to cause the client device to:

determine, responsive to detecting a second scroll event, a second offset between the end of the content document of the first inline frame and the corresponding end of the viewport is within the threshold value; and

change, responsive to the determination that the second offset is within the threshold value:

a value for the scrollable property of the first inline frame to a value indicating that the content document is not allowed to scroll relative to the first inline frame; and

a value for the scrollable property of the viewport to a value indicating that the information resource is allowed to scroll.

3. The method of claim 2 , wherein the script is further configured to cause the client device to:

determine, responsive to the determination that the second offset is within the threshold, that the information resource does not have another inline frame besides the first inline frame; and

add, responsive to the determination that the information resource does not have the other inline frame, to the information resource, a second inline frame adjacent to an end of the first inline frame.

4. The method of claim 2 , wherein the script is further configured to cause the client device to:

transmit, responsive to the determination that the second offset is within the threshold, a request for content to insert into a second inline frame, the request including a location identifier referencing a second content document; and

receive, subsequent to a transmission of the request, the second content document corresponding to the location identifier of the request to insert into the second inline frame of the information resource.

5. The method of claim 1 , wherein the script is further configured to cause the client device to:

identify, responsive to receipt of a second content document to embed into a second inline frame, a dimension of the content document; and

set a dimension of the second inline frame to correspond to the dimension of the second content document to embed into the second inline frame.

6. The method of claim 1 , wherein the script is further configured to cause the client device to:

identify, responsive to detecting the scroll event, an axis along which a scroll position of the application is affected based on the scroll event, the axis defining a direction along which the end of the viewport is traversable via scrolling by the end of the first inline frame; and

determine the offset between the end of the content document of the first inline frame and the corresponding end of the viewport about the axis along which the scroll position affected based on the scroll event is not within the threshold value.

7. The method of claim 1 , wherein the script is further configured to cause the client device to:

append the first inline frame embedded with the content document to primary content of the information resource; and

update a scroll length of the information resource based on the appending of the first inline frame.

8. The method of claim 1 , wherein the script is further configured to cause the client device to transfer at least a portion of primary content of the information resource to the content document to embed into the first inline frame, the transferred portion of the primary content of the information resource separate from the content document of the first inline frame.

9. The method of claim 1 , wherein the script is further configured to cause the client device to determine the threshold value based on at least one of a dimension of the viewport and a dimension of the information resource along an axis along which a scroll position of the application is affected based on the scroll event.

10. The method of claim 1 , wherein providing the script further comprises providing, to the client device, responsive to receiving a request for content identifying the information resource, the information resource including the script to execute on the client device.

11. A system for attributing scroll events in applications, comprising:

a data processing system having one or more processors coupled with memory, configured to provide, to a client device, a script to execute on the client device, the script configured to cause the client device to:

monitor for a scroll event on an information resource presented via a viewport of an application executing on the client device, the information resource identifying a first inline frame, the first inline frame embeddable with a content document;

determine that an offset between an end of the content document of the first inline frame and a corresponding end of the viewport is not within a threshold value; and

change, responsive to the scroll event and based on determining that the offset is not within the threshold value;

a value for a scrollable property of the first inline frame from a value indicating that the content document is not allowed to scroll relative to the first inline frame to a value indicating that the content document is allowed to scroll relative to the first inline frame; and

a value for a scrollable property of the viewport to a value indicating that the information resource is not allowed to scroll.

12. The system of claim 11 , wherein the script is further configured to cause the client device to:

transmit, responsive to a determination that a second offset is within the threshold, a request for content to insert into a second inline frame, the request including a location identifier referencing a second content document; and

receive, subsequent to a transmission of the request, the second content document corresponding to the location identifier of the request to insert into the second inline frame of the information resource.

13. The system of claim 11 , wherein the script is further configured to cause the client device to:

determine, responsive to a determination that a second offset is within the threshold, that the information resource does not have another inline frame besides the first inline frame; and

add, responsive to the determination that the information resource does not have the other inline frame, to the information resource, a second inline frame adjacent to an end of the first inline frame.

14. The system of claim 11 , wherein the script is further configured to cause the client device to:

identify, responsive to detecting the scroll event, an axis along which a scroll position of the application is affected based on the scroll event, the axis defining a direction along which the end of the viewport is traversable via scrolling by the end of the first inline frame; and

determine the offset between the end of the first inline frame and the corresponding end of the viewport about the axis along which the scroll position affected based on the scroll event is not within the threshold value.

15. The system of claim 11 , wherein the script is further configured to cause the client device to:

determine, responsive to detecting a second scroll event, a second offset between the end of the content document of the first inline frame and the corresponding end of the viewport is not within the threshold value; and

change, responsive to the determination that the second offset is not within the threshold value:

a value for the scrollable property of the first inline frame to a value indicating that the content document is not allowed to scroll relative to the first inline frame; and

a value for the scrollable property of the viewport to a value indicating that the information resource is allowed to scroll.

16. The system of claim 11 , wherein the script is further configured to cause the client device to:

append the first inline frame embedded with the content document to primary content of the information resource; and

update a scroll length of the information resource based on the appending of the first inline frame.

17. A method of attributing scroll events in applications, comprising:

monitoring, by a client device having one or more processors, for a scroll event on an information resource presented via a viewport of an application executing on the client device, the information resource identifying a first inline frame, the first inline frame embeddable with a content document;

determining, by the client device, that an offset between an end of the content document of the first inline frame and a corresponding end of the viewport is not within a threshold value; and

changing, by the client device responsive to the scroll event and based on determining that the offset is not within the threshold value:

a value for a scrollable property of the first inline frame from a value indicating that the content document is not allowed to scroll relative to the first inline frame to a value indicating that the content document is allowed to scroll relative to the first inline frame; and

a value for a scrollable property of the viewport to a value indicating that the information resource is not allowed to scroll.

18. The method of claim 17 , further comprising:

transmitting, by the client device, responsive to a determination that a second offset is within the threshold, a request for content to insert into a second inline frame, the request including a location identifier referencing a second content document; and

receiving, by the client device, subsequent to transmitting of the request, the second content document corresponding to the location identifier of the request to insert into the second inline frame of the information resource.

19. The method of claim 17 , further comprising:

determining, by the client device, responsive to determining that a second offset is within the threshold, that the information resource does not have another inline frame besides the first inline frame; and

adding, by the client device, responsive to the determination that the information resource does not have the other inline frame, to the information resource, a second inline frame adjacent to an end of the first inline frame.

20. The method of claim 17 , further comprising:

appending, by the client device, the first inline frame embedded with the content document to primary content of the information resource; and

updating a scroll length of the information resource based on the appending of the first inline frame.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2022
From: YIN, TIANJIU; ZHANG, KUN
To: GOOGLE INC.
Reel/Frame 059540/0625 →
CHANGE OF NAME Recorded Apr 8, 2022
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 059657/0425 →
Continuity (3)
Continuation 15014795 · Feb 3, 2016
Provisional Application 62246453 · Oct 26, 2015
Related Publication 20200183559A1 · Jun 11, 2020
References Cited (88)
US 6912694B1 · Harrison et al. · 2005 [cited by applicant]
US 7428709B2 · Forstall et al. · 2008 [cited by applicant]
US 7756880B2 · Sighart et al. · 2010 [cited by applicant]
US 8307278B1 · Spear · 2012 [cited by applicant]
US 8423901B2 · D'Entremont et al. · 2013 [cited by applicant]
US 8555193B2 · Sar · 2013 [cited by examiner]
US 8589367B2 · Sighart et al. · 2013 [cited by applicant]
US 9575615B1 · Nicholls et al. · 2017 [cited by applicant]
US 9852759B2 · Doherty et al. · 2017 [cited by applicant]
US 9865005B1 · Pottjegort · 2018 [cited by applicant]
US 9971846B1 · Krecichwost · 2018 [cited by examiner]
US 20050160360A1 · Nadamoto et al. · 2005 [cited by applicant]
US 20060174214A1 · McKee et al. · 2006 [cited by applicant]
US 20060212803A1 · Arokiaswamy · 2006 [cited by examiner]
US 20070198476A1 · Farago et al. · 2007 [cited by applicant]
US 20090240683A1 · Lazier et al. · 2009 [cited by applicant]
US 20090327869A1 · Fan et al. · 2009 [cited by applicant]
US 20090327952A1 · Karas et al. · 2009 [cited by applicant]
US 20100017289A1 · Sah et al. · 2010 [cited by applicant]
US 20100179949A1 · Safar · 2010 [cited by applicant]
US 20100235765A1 · Worthington · 2010 [cited by applicant]
US 20110082755A1 · Itzhak · 2011 [cited by applicant]
US 20110184960A1 · Delpha et al. · 2011 [cited by applicant]
US 20110191716A1 · Sakamoto et al. · 2011 [cited by applicant]
US 20120054596A1 · Kroger et al. · 2012 [cited by applicant]
US 20120246593A1 · Rauenzahn · 2012 [cited by examiner]
US 20120254729A1 · Wan · 2012 [cited by applicant]
US 20130027408A1 · Garg · 2013 [cited by applicant]
US 20130054371A1 · Mason · 2013 [cited by examiner]
US 20130305170A1 · De Souza et al. · 2013 [cited by applicant]
US 20140006982A1 · Wabyick et al. · 2014 [cited by applicant]
US 20140071483A1 · Urakawa · 2014 [cited by examiner]
US 20140136528A1 · Anima et al. · 2014 [cited by applicant]
US 20140149922A1 · Hauser et al. · 2014 [cited by applicant]
US 20140195337A1 · Taylor et al. · 2014 [cited by applicant]
US 20140195890A1 · Taylor et al. · 2014 [cited by applicant]
US 20140281901A1 · Mostowy et al. · 2014 [cited by applicant]
US 20140281924A1 · Chipman et al. · 2014 [cited by applicant]
US 20140358668A1 · Fredinburg et al. · 2014 [cited by applicant]
US 20140372937A1 · Shieh · 2014 [cited by examiner]
US 20150007108A1 · Ozcelik · 2015 [cited by applicant]
US 20150154660A1 · Weald et al. · 2015 [cited by applicant]
US 20150160817A1 · Hwang et al. · 2015 [cited by applicant]
US 20150213487A1 · Nwosu · 2015 [cited by applicant]
US 20160004781A1 · Sturm et al. · 2016 [cited by applicant]
US 20160019604A1 · Kobayashi et al. · 2016 [cited by applicant]
US 20160034976A1 · Dayanand · 2016 [cited by examiner]
US 20160328755A1 · Uchida · 2016 [cited by examiner]
US 20170024098A1 · Doherty et al. · 2017 [cited by applicant]
US 20180130097A1 · Tran et al. · 2018 [cited by applicant]
US 20180197575A1 · Doherty et al. · 2018 [cited by applicant]
JP 2009527052A · 2009 [cited by applicant]
WO WO2004031994A1 · 2004 [cited by applicant]
WO WO2011084860A2 · 2011 [cited by applicant]
WO WO2013033445A2 · 2013 [cited by applicant]
WO WO2015107670 · 2015 [cited by applicant]
Notice of Allowance for U.S. Appl. No. 16/379,344 dated Jul. 8, 2020 (6 pages). [cited by applicant]
Baxter, Richard, “On Indefinite Scroll, pushState and SEO”, Apr. 20, 2015, retrieved Jul. 1, 2021 from URL: https://web.archive.org/web/20150420095702/https://builtvisible.com/on-infinite-scroll-pushstate/ (9 pages). [cited by applicant]
First Office Action for CN Appln. Ser. No. 201680028297.X dated Jun. 3, 2021 (23 pages). [cited by applicant]
Examination Report for EP Appln. Ser. No. 16760267.1 dated Apr. 30, 2020 (6 pages). [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 16/379,344 dated May 15, 2020 (7 pages). [cited by applicant]
Examination Report for IN Appln. Ser. No. 201747044317 dated Nov. 25, 2020 (6 pages). [cited by applicant]
First Office Action for CN Appln. Ser. No. 201680034837.5 dated Sep. 16, 2020 (12 pages). [cited by applicant]
Examination Report for EP Appln. Ser. No. 16795189.6 dated Apr. 30, 2021 (6 pages). [cited by applicant]
Examination Report for GB Appln. Ser. No. 1720780.4 dated Apr. 29, 2021 (2 pages). [cited by applicant]
“Iframe . . . ”, HTML Code Tutorial, Dec. 5, 2015, retrieved Dec. 8, 2015 from URL: http://www.htmlcodetutorial.com/frames/_IFRAME.html (2 pages). [cited by applicant]
“infinity.js”, Airbnb, Inc., 2012, retrieved Oct. 19, 2016 from URL: http://airbnb.io/infinity/docs/infinity.html (8 pages). [cited by applicant]
Baxter, Richard, “Infinite Scroll, pushState and SEO”, Oct. 7, 2014, XP055312334, retrieved Feb. 8, 2018 from URL: https://builtvisible.com/on-infinite-scroll-pushstate/ (8 pages). [cited by applicant]
Baxter, Richard, “Infinite Scroll, pushState and SEO”, Oct. 7, 2014, XP055312334, retrieved Oct. 19, 2016 from URL: https://builtvisible.com/on-infinite-scroll-pushstate/ (8 pages). [cited by applicant]
Final Office Action for U.S. Appl. No. 15/014,795 dated Jan. 2, 2019 (12 pages). [cited by applicant]
International Preliminary Report on Patentability for PCT Appln. Ser. No. PCT/US2016/047887 dated Jan. 12, 2018 (28 pages). [cited by applicant]
International Preliminary Report on Patentability for PCT Appln. Ser. No. PCT/US2016/058833 dated Mar. 1, 2018 (26 pages). [cited by applicant]
International Search Report and Written Opinion for PCT Appln. Ser. No. PCT/US2016/047887 dated Nov. 8, 2016 (12 pages). [cited by applicant]
International Search Report and Written Opinion for PCT Appln. Ser. No. PCT/US2016/058833 dated Feb. 16, 2017 (14 pages). [cited by applicant]
Naver, “A Reply to iframe from Naver,” dated May 30, 2009, retrieved from URL: https://kin.naver.com/qna/detail.nhn?d1id=1&dirld=105&docld=69486524&qb=7J2465287J24IO2UhOugiOyehCDsiqTtgazroaQ=&enc=utf8?ion=kin&rank=3&sea… [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 15/014,795 dated Jun. 15, 2018 (11 pages). [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 15/018,667 dated Apr. 30, 2018 (14 pages). [cited by applicant]
Notice of Allowance for JP Appln. Ser. No. 2017-567733 dated Aug. 14, 2019 (6 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/014,795 dated Jan. 15, 2020 (5 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/014,795 dated Sep. 9, 2019 (5 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/018,667 dated Apr. 2, 2019 (2 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/018,667 dated Jan. 3, 2019 (9 pages). [cited by applicant]
Office Action for KR Appln. Ser. No. 10-20177035508 dated Mar. 29, 2019 (15 pages). [cited by applicant]
Office Action on EP Appln. Ser. No. 16795189.6 dated Nov. 12, 2019 (8 pages). [cited by applicant]
Reasons for Rejections for JP Appln. Ser. No. 2017-567733 dated Feb. 25, 2019 (6 pages). [cited by applicant]
Svensson, Christer, “HTML5 and Seamless Iframes with JavaScript”, christersvensson.com, Jan. 1, 2012, XP055341156, retrieved Feb. 6, 2018 from URL: http://www.christersvensson.com/html-tool/iframe.htm (3 pages). [cited by applicant]
Zimmerman, Christopher, “Strategies for the iFrame on the iPad Problem”, Magnolia Blogs, May 18, 2012, XP055342211, retrieved Feb. 6, 2018 from URL: https://blogs.magnolia-cms.com/christopher-zimmerman/detail˜@strategie… [cited by applicant]
United Kingdom Search Report Corresponding to Application No. 2117238.2 on Jan. 24, 2022. [cited by applicant]