IP Library Granted Patent US 9,602,369
Granted Patent B2
US 9,602,369 · App. 14/842,583 · Granted Mar 21, 2017

Data delivery

Inventors: Jesse Savage (Redwood City, CA); Brian N. Kuhn (Lake Forest, CA); James L. Wogulis (Laguna Beach, CA)
Assignee: Google Inc.
H04L43/04G06Q10/0637G06Q50/30H04L67/02
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 9,602,369
App. No.
14/842,583
Filed
Sep 1, 2015
Granted
Mar 21, 2017
Kind
B2
Art Unit
2441
USPC
709/203
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for support dependent post delivery. In one aspect, a method included generating transmission data for a web page served by a first server and rendered on the client device, the first sever belonging to a first domain; determining if the client device supports cross origin resource sharing; in response to a determination that the client device does not support cross origin resource sharing: defining an iFrame for the web page, the iFrame belonging to a second domain of a receiving server, and having a name value derived from the transmission data, receiving iFrame instructions from the receiving server and executing the iFrame instructions in the iFrame, the iFrame instruction causing the client device to: generate an HTTP POST request to the receiving server from the iFrame name value, the first HTTP POST request including the transmission data.

Claims (62)

1. A method performed by data processing apparatus, the method comprising:

generating event data specifying one or more events for a web page served by a publisher server and rendered on a client device, the web page and publisher belonging to a first domain;

determining whether the event data exceeds a size threshold specified by a request method of a communications protocol for communicating between the client device and the publisher server, wherein the size threshold is based on a limit on an amount of information that is sent by an HTTP GET request;

in response to determining that the event data exceeds the size threshold, determining whether the client device supports cross origin resource sharing interrogating a browser type and a browser version, checking for the presence of a credentials property on an HTTP request object, or checking for the presence of a domain request object; and

in response to determining that the client device supports cross origin resource sharing, generating a first HTTP POST request for an analytics server that belongs to a second domain that is different from the first domain, the first HTTP POST request comprising the event data and being a cross-domain HTTP POST request that comprises a cross origin resource sharing compliant message.

2. The method of claim 1 , further comprising:

in response to determining that the client device does not support cross origin resource sharing, causing a generation of an environment on the client device belonging to the second domain; and

generating a second HTTP POST request for the analytics server, wherein the second HTTP POST request is sent from the environment belonging to the second domain.

3. The method of claim 2 , wherein generating the second HTTP POST for the analytics server comprises:

generating the environment with a name value derived from the event data;

requesting, from the environment, environment instructions from the analytics server; and

receiving the environment instructions and executing the environment instructions in the environment, the environment instructions causing the client device to generate the second HTTP post for the analytics server.

4. The method of claim 3 , wherein the environment is an iFrame.

5. The method of claim 3 , further comprising:

in response to generating the second HTTP POST request,

changing a domain of the environment from the second domain of the analytics server to the first domain of the publisher; and

causing a deletion of the environment.

6. The method of claim 1 , further comprising:

in response to determining that the event data exceeds the size threshold, causing the client device to generate a second HTTP POST request; and

consolidating the event data upon receiving the second HTTP POST request.

7. A non-transitory computer storage medium encoded with instructions that when executed by a data processing device cause the data processing device to perform operations comprising:

generating event data specifying one or more events for a web page served by a publisher server and rendered on a client device, the web page and publisher belonging to a first domain;

determining whether the event data exceeds a size threshold specified by a request method of a communications protocol for communicating between the client device and the publisher server, wherein the size threshold is based on a limit on an amount of information that is sent by an HTTP GET request;

in response to determining that the event data exceeds the size threshold, determining whether the client device supports cross origin resource sharing by interrogating a browser type and a browser version, checking for the presence of a credentials property on an HTTP request object, or checking for the presence of a domain request object; and

in response to determining that the client device supports cross origin resource sharing, generating a first HTTP POST request for an analytics server that belongs to a second domain that is different from the first domain, the first HTTP POST request including the event data and being a cross-domain HTTP POST request that is a cross origin resource sharing compliant message.

8. The non-transitory computer storage medium of claim 7 , wherein the operations further comprise:

in response to determining that the client device does not support cross origin resource sharing, causing a generation of an environment on the client device belonging to the second domain; and

generating a second HTTP POST request for the analytics server, wherein the second HTTP POST request is sent from the environment belonging to the second domain.

9. The non-transitory computer storage medium of claim 8 , wherein generating the second HTTP POST for the analytics server comprises:

generating the environment with a name value derived from the event data;

requesting, from the environment, environment instructions from the analytics server; and

receiving the environment instructions and executing the environment instructions in the environment, the environment instructions causing the client device to generate the second HTTP post for the analytics server.

10. The non-transitory computer storage medium of claim 9 , wherein the environment is an iFrame.

11. The non-transitory computer storage medium of claim 9 , wherein the operations further comprise:

in response to generating the second HTTP POST request,

changing a domain of the environment from the second domain of the analytics server to the first domain of the publisher; and

causing a deletion of the environment.

12. The non-transitory computer storage medium of claim 7 , wherein the operations further comprise:

in response to determining that the event data exceeds the size threshold, causing the client device to generate a second HTTP POST request; and

consolidating the event data upon receiving the second HTTP POST request.

13. A system comprising:

a data processing apparatus;

a memory storage apparatus in data communication with the data processing apparatus, the memory storage apparatus storing instructions executable by the data processing apparatus and that upon such execution cause the data processing apparatus to perform operations comprising:

generating event data specifying one or more events for a web page served by a publisher server and rendered on a client device, the web page and publisher belonging to a first domain;

determining whether the event data exceeds a size threshold specified by a request method of a communications protocol for communicating between the client device and the publisher server, wherein the size threshold is based on a limit on an amount of information that is sent by an HTTP GET request;

in response to determining that the event data exceeds the size threshold, determining whether the client device supports cross origin resource sharing interrogating a browser type and a browser version, checking for the presence of a credentials property on an HTTP request object, or checking for the presence of a domain request object; and

in response to determining that the client device supports cross origin resource sharing, generating a first HTTP POST request for an analytics server that belongs to a second domain that is different from the first domain, the first HTTP POST request including the event data and being a cross-domain HTTP POST request that is a cross origin resource sharing compliant message.

14. The system, of claim 13 , wherein the operations further comprise:

in response to determining that the client device does not support cross origin resource sharing, causing a generation of an environment on the client device belonging to the second domain; and

generating a second HTTP POST request for the analytics server, wherein the second HTTP POST request is sent from the environment belonging to the second domain.

15. The system of claim 14 , wherein generating the second HTTP POST for the analytics server comprises:

generating the environment with a name value derived from the event data;

requesting, from the environment, environment instructions from the analytics server; and

receiving the environment instructions and executing the environment instructions in the environment, the environment instructions causing the client device to generate the second HTTP post for the analytics server.

16. The system of claim 15 , wherein the environment is an iFrame.

17. The system, of claim 15 , wherein the operations further comprise:

in response to generating the second HTTP POST request,

changing a domain of the environment from the second domain of the analytics server to the first domain of the publisher; and

causing a deletion of the environment.

18. The system, of claim 13 , wherein the operations further comprise:

in response to determining that the event data exceeds the size threshold, causing the client device to generate a second HTTP POST request; and

consolidating the event data upon receiving the second HTTP POST request.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2015
From: SAVAGE, JESSE; KUHN, BRIAN N.; WOGULIS, JAMES L.
To: GOOGLE INC.
Reel/Frame 036717/0760 →
Continuity (3)
Continuation 13840100 · Mar 15, 2013
Continuation 12938781 · Nov 3, 2010
Related Publication 20150372888A1 · Dec 24, 2015