IP Library Granted Patent US 9,967,230
Granted Patent B2
US 9,967,230 · App. 15/015,983 · Granted May 8, 2018

Systems and methods for allocating communication resources via information technology infrastructure

Inventors: Ahmed Mohamed Hassan Osman Akef (San Jose, CA); Anshul Kothari (Sunnyvale, CA); Daniel Andersson (Mountain View, CA); Amit Agarwal (Mountain View, CA); Anshul Kundani (Yorba Linda, CA); Narendra Kumar Singhal (Cupertino, CA)
Assignee: Google LLC
H04L61/2076H04L67/02H04L61/605
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,967,230
App. No.
15/015,983
Filed
Feb 4, 2016
Granted
May 8, 2018
Kind
B2
Art Unit
2441
USPC
709/245
Abstract

The present disclosure is directed to allocating communication resources via information technology infrastructure. A system can provide a communication tag and an analytics tag for integration in a web site. The system can receive a request to allocate a phone number generated based on an interaction between the communication tag and the analytics tag. The request can include the communication endpoint identifier, the site identifier for the web site, and a bucket identifier formed from bucketing criteria corresponding to a network activity session of the computing device. The system can determine a virtual phone number to assign to a combination of the values of the fields provided in the request, and create a link between the assigned virtual number and the combination. The system can provide the assigned virtual phone number to the computing device that initiated the request.

Claims (82)

1. A method of allocating communication resources via information technology infrastructure, comprising:

providing, by a data processing system including one or more processors, for integration in a web site, a communication tag established with a communication endpoint identifier and a site identifier for the web site;

providing, by the data processing system for integration in the web site, an analytics tag that uses bucketing criteria to determine a bucket identifier for a network activity of a computing device responsive to detecting network activity between the computing device and the web site;

receiving, by the data processing system via the communication tag, a request to allocate a virtual phone number, the request including a first field comprising the communication endpoint identifier, a second field comprising the site identifier for the web site, and a third field comprising the bucket identifier determined by the analytics tag based on the bucketing criteria;

identifying, by the data processing system, a number of active sessions corresponding to the web site;

determining, by the data processing system, that the number of active sessions is greater than or equal to a threshold;

switching, by the data processing system, from using session identifiers to bucket identifiers responsive to the determination that the number of active sessions is greater than or equal to the threshold;

determining, by the data processing system responsive to switching to using bucket identifiers to assign virtual phone numbers due to the number of active sessions being greater than or equal to the threshold, to assign a virtual phone number to a combination of the communication endpoint identifier provided in the first field of the request, the site identifier provided in the second field of the request, and the bucket identifier provided in the third field of the request;

creating, by the data processing system in a map data structure, a link between the virtual phone number and the combination of the communication endpoint identifier stored in the first field, the site identifier stored in the second field, and the bucket identifier stored in the third field; and

providing, by the data processing system, the assigned virtual phone number to the computing device prior to termination of the link.

2. The method of claim 1 , comprising:

receiving, by the data processing system, the request including the third field having the bucket identifier, the bucket identifier identifying a source that directed the computing device to the web site and a medium via which the computing device accessed the web site,

the source comprising one of the data processing system, direct, or referral, and

the medium comprising one of organic search engine, paid online content provider, none, or an identifier of a referral site.

3. The method of claim 1 , comprising:

receiving, by the data processing system, the request including the third field having the bucket identifier, the bucket identifier identifying a source, a medium, and a campaign identifier.

4. The method of claim 1 , comprising:

receiving, by the data processing system, the request including the third field having the bucket identifier, the bucket identifier identifying a source, a medium, and a search query keyword.

5. The method of claim 1 , comprising:

using, by the analytics tag, bucketing criteria including at least one of a source that directed the computing device to the web site, a medium via which the computing device accessed the web site, a campaign identifier, a search query keyword, or a location.

6. The method of claim 1 , comprising:

receiving, by the data processing system, responsive to network activity of a second computing device on the web site, a request to allocate a virtual phone number including a first field comprising the communication endpoint identifier, a second field comprising the site identifier for the web site, and a third field comprising the bucket identifier determined by the analytics tag based on the bucketing criteria, the second computing device different from the first computing device;

performing, by the data processing system, a lookup in the map data structure using the combination of the communication endpoint identifier stored in the first field, the site identifier stored in the second field, and the bucket identifier stored in the third field to identify the assigned virtual phone number; and

providing the assigned virtual number to the second computing device.

7. The method of claim 6 , comprising:

receiving, by the data processing system, responsive to network activity of a third computing device on the web site, a request to allocate a virtual phone number including a first field comprising the communication endpoint identifier, a second field comprising the site identifier for the web site, and a third field comprising a different bucket identifier determined by the analytics tag based on different bucketing criteria, the third computing device different from the first computing device and the second computing device;

creating, by the data processing system in the map data structure, a second link between a second virtual phone number and a combination of the communication endpoint identifier stored in the first field, the site identifier stored in the second field, and the different bucket identifier stored in the third field; and

providing, by the data processing system, the second virtual phone number to the third computing device prior to termination of the link.

8. The method of claim 1 , comprising:

receiving, by the data processing system via the communication tag, the request to allocate the virtual phone number including the first field comprising the communication endpoint identifier, the second field comprising the site identifier for the web site, the third field comprising the bucket identifier determined by the analytics tag based on the bucketing criteria, and a fourth field comprising a network activity session identifier for the computing device;

determining, by the data processing system, the number of active sessions associated with a provider of the web site; and

creating, by the data processing system responsive to the number of active sessions exceeding the threshold, the link between the virtual phone number and the combination of the communication endpoint identifier stored in the first field, the site identifier stored in the second field, and the bucket identifier stored in the third field.

9. The method of claim 1 , comprising:

receiving, by the data processing system via the communication tag, a second request to allocate a virtual phone number including a first field comprising the communication endpoint identifier, a second field comprising the site identifier for the web site, a third field comprising the bucket identifier determined by the analytics tag based on the bucketing criteria, and a fourth field comprising the network activity session identifier for a second computing device;

determining, by the data processing system, the number of active sessions associated with a provider of the web site;

creating, by the data processing system responsive to the number of active sessions less than the threshold, a second link between a second virtual phone number and a combination of the communication endpoint identifier stored in the first field, the site identifier stored in the second field, and the network activity session identifier stored in the fourth field; and

providing, by the data processing system, the second virtual phone number to the second computing device prior to termination of the second link.

10. The method of claim 1 , comprising:

accessing, by the data processing system, a plurality of available virtual numbers maintained in a pool data structure in memory of the data processing system; and

retrieving, by the data processing system responsive to the request via the communication tag, the virtual phone number from the plurality of available virtual numbers.

11. The method of claim 1 , comprising:

launching, by a web browser of the computing device, the analytics tag prior to launching the communication tag;

determining, via the analytics tag, that the bucket identifier has not been established;

determining, via the analytics tag responsive to determining that the bucket identifier for the network activity of the computing device has not been established, the bucket identifier; and

storing, via the analytics tag, the determined bucket identifier in a data file in memory of the computing device.

12. The method of claim 1 , comprising:

initiating, by the data processing system, an expiration module responsive to creating the link, wherein the expiration module terminates the link stored in the map data structure responsive to a termination event.

13. The method of claim 1 , comprising:

determining, by the data processing system, that a request including the combination has not been received from one or more computing devices for a predetermined time interval; and

terminating, by the data processing system responsive to the determination, the link by removing the link in the map data structure between the assigned virtual phone number and the combination.

14. The method of claim 1 , comprising receiving, via the computing device, an indication to initiate a communication channel between the computing device and the data processing system via at least one of a selection or a mouse over of a graphical user interface object rendered by a web browser executed by the computing device to provide the web site for display via the computing device.

15. The method of claim 1 , comprising:

providing, by the data processing system to the computing device, the assigned virtual phone number with instructions to launch, on the computing device, a communication application to establish a communication channel between the computing device and the data processing system; and

bridging, by the data processing system, the computing device with the communication endpoint identifier mapped to the virtual phone number to establish the communication channel.

16. The method of claim 1 , comprising:

launching, by a web browser, the communication tag responsive to an indication to initiate a communication channel for the computing device;

requesting, via the communication tag, an identifier of the computing device from the analytics tag embedded on the web site; and

generating, via the communication tag, the request with a first field comprising the communication endpoint identifier, a second field comprising the site identifier for the web site, and a third field comprising the bucket identifier.

17. A system to allocate communication resources via information technology infrastructure, comprising:

a data processing system comprising one or more processors and memory;

a tag server executed by the data processing system to:

provide for integration in a web site, a communication tag established with a communication endpoint identifier and a site identifier for the web site;

provide, for integration in the web site, an analytics tag that uses bucketing criteria to determine a bucket identifier for a network activity of a computing device responsive to detecting network activity between the computing device and the web site;

an location allocation engine executed by the data processing system to:

receive, via the communication tag, a request to allocate a virtual phone number including a first field comprising the communication endpoint identifier, a second field comprising the site identifier for the web site, and a third field comprising the bucket identifier determined by the analytics tag based on the bucketing criteria;

identify a number of active sessions corresponding to the web site;

determine that the number of active sessions is greater than or equal to a threshold;

switch from using session identifiers to bucket identifiers responsive to the determination that the number of active sessions is greater than or equal to the threshold;

determine, responsive to the switching to using bucket identifiers to assign virtual phone numbers due to the number of active sessions being greater than or equal to the threshold, to assign a virtual phone number to a combination of the communication endpoint identifier provided in the first field of the request, the site identifier provided in the second field of the request, and the bucket identifier provided in the third field of the request;

create, in a map data structure, a link between the virtual phone number and the combination of the communication endpoint identifier stored in the first field, the site identifier stored in the second field, and the bucket identifier stored in the third field; and

provide the assigned virtual phone number to the computing device prior to termination of the link.

18. The system of claim 17 , comprising the location allocation engine configured to:

receive the request including the third field having the bucket identifier, the bucket identifier identifying a source that directed the computing device to the web site and a medium via which the computing device accessed the web site,

the source comprising one of the data processing system, direct, or referral, and

the medium comprising one of organic search engine, paid online content provider, none, or an identifier of a referral site.

19. The system of claim 17 , comprising the data processing system configured to:

receive, via the communication tag, the request to allocate the phone number including the first field comprising the communication endpoint identifier, the second field comprising the site identifier for the web site, the third field comprising the bucket identifier determined by the analytics tag based on the bucketing criteria, and a fourth field comprising a network activity session identifier for the computing device;

determine the number of active sessions associated with a provider of the web site; and

create, responsive to the number of active sessions exceeding the threshold, the link between the virtual phone number and the combination of the communication endpoint identifier stored in the first field, the site identifier stored in the second field, and the bucket identifier stored in the third field.

20. The system of claim 17 , comprising the data processing system configured to:

determine that a request including the combination has not been received from one or more computing devices for a predetermined time interval; and

terminate, responsive to the determination, the link by removing the link in the map data structure between the assigned virtual phone number and the combination.

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 Feb 11, 2016
From: KOTHARI, ANSHUL; KUNDANI, ANSHUL; AGARWAL, AMIT; SINGHAL, NARENDRA KUMAR; AKEF, AHMED MOHAMED HASSAN OSMAN; ANDERSSON, DANIEL
To: GOOGLE INC.
Reel/Frame 037716/0955 →
Continuity (1)
Related Publication 20170230329A1 · Aug 10, 2017