Abstract:
A system and method for identifying network terminals includes: initiating a service request at a network terminal by an Internet user; and transmitting network terminal information from the network terminal to a fingerprinting service. In an embodiment, the fingerprinting service (a) uses the network terminal information and a fingerprint information database to produce a Device ID for the network terminal; and (b) stores the Device ID and user data concerning the Internet user in a Device ID database.

Description:
FIELD 
       [0001]    This invention relates systems for determining attributes of network terminals and, more particularly, determining attributes of network terminals making a request for streaming video content. 
       BACKGROUND 
       [0002]    Advertising is a common way or seller of goods and/or services to generate sales and/or to initiate, maintain and increase brand awareness. In traditional media, such as television and print media, an advertisement may be seen by a wide demographic audience. Generally, only a small percentage of the audience will have any interest in purchasing the goods or services. Also, with traditional media, there is typically a limited supply of space for advertisements. In the art, the amount of resources (e.g., physical space, time, etc.) available for advertising is sometimes referred to as “inventory.” 
         [0003]    In order to optimize their advertising investment, online advertisers try to choose among the immense inventory available so as to place their video advertisements for optimal results. This can be a hit-or-miss process whereby brand managers assume certain demographics for their ideal audience (e.g. males ages 18-35 who like fast cars) and then choose publishers that cater to that demographic profile (e.g. a website dedicated to reviewing race cars). However, this does not entirely address the ultimate goal of most brand advertisers: i.e. not only making the right placement for their advertisement but also reaching the right audience at the right time. 
         [0004]    In today&#39;s connected world of devices, most of consumers&#39; media time is spent in front of four video screens or “terminals”, namely their computer, smartphone, tablet and television screens. As used herein, the terms “screen”, “user device”, and “network terminal  18 ” may be used synonymously. The type of user device selected may be dependent upon the context of where they are located (workplace, home, travelling, etc.), what we they want to achieve (shop, make travel plans, watch video, etc.) and how long will it take to achieve their desired results. 
         [0005]    Google in  The New Multi - screen World: Understanding Cross - platform Consumer Behavior , dated August 2012, and hereafter referred to as  Google Multi - Screen , calls this phenomenon as “the new multi-screen world” As explained in  Google Multi - Screen , there are at least two different modes of consumer&#39;s behavior in context of multi-screen usage, namely: 1) sequential screening as a user moves between screens; and 2) Simultaneous screening where we use multiple screens at the same time. 
         [0006]    Network terminals (e.g. personal computers, laptops, etc.) provided with traditional network browsers (e.g. Google Chrome, Internet Explorer, Firefox, Safari etc.) typically have the functionality of providing a “cookie” which tracks browsing activities, personal data, preferences, etc. of a user. For example, cookies have been used to provide relevant advertisements to users of network terminals. However, users have become increasing wary of cookies, primarily due to privacy issues, and increasing disable the cookie function in their browsers or use cookie-blocking services. Also, some providers of browser software, responding to user demand, are starting to block cookies to varying degrees. For example, Safari has a default setting which blocks all third party cookies. Also, many cookies have an expiration date and many network terminals have applications with network browsing capabilities (e.g. apps in smartphones, tablets, etc.) that don&#39;t have cookies. As a result, user cookies are often not available to service providers such as, for example, advertisers so that they can customize the delivery of advertisements to a user. 
       SUMMARY 
       [0007]    Various examples are set forth herein for the purpose of illustrating various combinations of elements and acts within the scope of the disclosures of the specification and drawings. As will be apparent to those of skill in the art, other combinations of elements and acts, and variations thereof, are also supported herein. 
         [0008]    In an embodiment, set forth by way of example but not limitation, customized SDK software is embedded in network devices to provide information concerning the network devices and/or the users of the network devices when making an ad request. This network device information (“data”) can be analyzed and enhanced with other data sources to generate a “fingerprint” for the network device which can be associated with a unique device ID. By using a device ID, customized services for a network terminal and/or its user can be provided. 
         [0009]    In an embodiment, set forth by way of example and not limitation, a system for identifying network terminals includes a network terminal having a first digital processor, a first non-transient computer readable media, and a first network interface. In this example embodiment, the first computer readable media includes program instructions executable on the first digital processor for: initiating a service request by an Internet user with the network terminal; and transmitting network terminal information via the first network interface. This example embodiment also includes a fingerprinting service system having a second digital processor, a second non-transient computer readable media, and a second network interface, where the second computer readable media includes program instructions executable on the second digital processor for: receiving the network terminal information via the second network interface; using the network terminal information and a fingerprint information database to produce a Device ID for the network terminal; and storing the Device ID and user data in a Device ID database. In an additional example embodiment, the system further includes a service providing system including a third digital processor, a third non-transient computer readable media, and a third network interface, the third computer readable media including program instructions executable on the third digital processor for: retrieving user data related to the network terminal from the Device ID database; and providing a service to the Internet user that is configured for the Internet user in accordance with user data. 
         [0010]    In an embodiment, set forth by way of example and not limitation, a method for identifying network terminals includes: initiating a service request at a network terminal by an Internet user; and transmitting network terminal information from the network terminal to a fingerprinting service which: (a) uses the network terminal information and a fingerprint information database to produce a Device ID for the network terminal; and (b) stores the Device ID and user data concerning the Internet user in a Device ID database. 
         [0011]    An advantage of fingerprinting network terminals with the processes set forth herein is that they do not require cookies, which can expire or be blocked, and the results are entirely device-specific. For example, a change in configuration or operating system version can result in the network terminal becoming even more unique when a historical set of its fingerprints is examined. 
         [0012]    Another advantage of example embodiments is that the fingerprinting of network terminals can potentially identify the one or more users of the network terminal, allowing for the custom-tailoring of services for the user(s). 
         [0013]    These and other examples of combinations of elements and acts supported herein as well as advantages thereof will become apparent to those of skill in the art upon a reading of the following descriptions and a study of the several figures of the drawing. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0014]    Several examples will now be described with reference to the drawings, wherein like elements and/or acts are provided with like reference numerals. The examples are intended to illustrate, not limit, concepts disclosed herein. The drawings include the following figures: 
           [0015]      FIG. 1  illustrates an example network system supporting a network terminal identification process; 
           [0016]      FIG. 2  is a block diagram of an example computer, computerized device, proxy and/or server which may form a part of the system of  FIG. 1 ; 
           [0017]      FIG. 3  is a block diagram of an example ad fulfillment system which can implement a network terminal identification process; 
           [0018]      FIG. 4  is an illustration of example fingerprinting processes; 
           [0019]      FIG. 5  is an illustration of an example system data sharing process; 
           [0020]      FIG. 6  illustrates an example household of user devices and persons; and 
           [0021]      FIG. 7  illustrates example methods for determining whether an IP address is associated with a home residence. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0022]      FIG. 1  illustrates a network system  10  supporting a network terminal identification process in accordance with a non-limiting example. In this example, the network system  10  includes one or more analysis servers  12 , one or more advertiser servers  14  and one or more publisher servers  16 . The system at  10  may further include other computers, servers or computerized systems such as user devices  18 . In this example, the analysis servers  12 , advertiser servers  14 , publisher servers  16 , and user devices (“network terminals”)  18  can communicate by a wide area network such as the Internet  20  (also known as a “global network” or a “wide area network” or “WAN” operating with TCP/IP packet protocols). 
         [0023]    The analysis servers  12  can be implemented as a single server or as a number of servers, such as a server farm and/or virtual servers, as will be appreciated by those of skill in the art. Alternatively, the functionality of the analysis servers  12  may be implemented elsewhere in the network system  10  such as on an advertiser server  14 , as indicated at  12 A, on the publisher server  16 , as indicated at  12 B, or as part as cloud computing as indicated at  12 C, all being non-limiting examples. As will be appreciated by those of skill in the art, the processes of analysis servers  12  may be distributed within network system  10 . 
         [0024]    In the example of  FIG. 1 , the network system  10  includes a plurality of advertiser servers  14  {ADV.  1 , ADV.  2 , . . . , ADV. N}. ADV.  1  can be, for example, a manufacturer of soft drinks, ADV.  2  can be a computer manufacturer and ADV. N can be, for example, an accounting firm. Alternatively, an advertiser can be an advertising agency acting as a middleman in the purchase of advertising for a client, can be an advertising (“ad”) network, or be an ad exchange. While each of the advertiser servers  14  may be implemented as a single computer, such as a network server, they can also represent other computer configurations, such as a computing cluster on a local area network (LAN). 
         [0025]    It should further be noted that, in some instances, an ad network is, essentially, transparent to advertisers, publishers or both. That is, an ad network may be considered to be a publisher or collection of publishers to an advertiser and/or an ad network may be considered to be an advertiser or collection of advertisers to a publisher. 
         [0026]    The publisher servers  16  can each represent one or more servers, such as a server farm. In the example of  FIG. 1 , the network system  10  includes a plurality of publisher servers  16  {PUB.  1 , PUB.  2 , . . . , PUB. M}. For example, PUB.  1  can be an Internet portal, PUB.  2  can be a search engine, and PUB. M can be a news website. As noted previously, one or more of the publisher servers  16  can implement some or all of the functionality of analysis servers  12 . 
         [0027]    It should be noted that the selection of publishers can be enhanced by categorizing the publishers by, for example, content. That is, a “publisher” can be a single legal entity, or a subset of that entity, or a part of a group of entities, by way of several non-limiting examples. For example, a publisher entity may have 1000 publications of which 100 are directed to dramatic content, 100 are directed to comedy, etc. The subset of publications of the publisher entity having a common thematic content may be considered a “publisher.” Furthermore, “publishers” may include a group of publications provided by different agencies which conform to a theme such as, by way of non-limiting examples, drama, sports or entertainment. Also, a “publisher” can be, by way of further non-limiting example, and application (“app”) executing on a smartphone, tablet, game unit, etc. 
         [0028]    User devices  18  can be any type of terminal, screen or device including, by way of non-limiting examples, a computer  18 A, a connected TV (a/k/a Smart TV or CTV)  18 D, a tablet  18 B and a smartphone  18 C. Other non-limiting examples of user devices are Roku® streaming Internet players, game units such as the Sony PS3® and the Microsoft. Xbox®, etc. Distinguishing characteristics of user devices  18  include connectivity to the Internet  20  and the inclusion of, or access to, display screens which can display, for example, advertisements delivered to the network terminals over the Internet. 
         [0029]      FIG. 2  is a simplified block diagram of a computer and/or server  22  suitable for use in network system  10 . By way of non-limiting example, computer  22  includes a microprocessor  24  coupled to a memory bus  26  and an input/output (I/O) bus  30 . A number of memory and/or other high speed devices may be coupled to memory bus  26  such as the RAM  32 , SRAM  34  and VRAM  36 . Attached to the I/O bus  30  are various I/O devices such as mass storage  38 , network interface  40 , and other I/O  42 . As will be appreciated by those of skill in the art, there are a number of computer readable media available to the microprocessor  24  such as the RAM  32 , SRAM  34 , VRAM  36  and mass storage  38 . The network interface  40  and other I/O  42  also may include computer readable media such as registers, caches, buffers, etc. Mass storage  38  can be of various types including hard disk drives, optical drives and flash drives, to name a few. 
         [0030]      FIG. 3  illustrates, by way of example and not limitation, a network terminal  18 , a Publisher  43  and an Ad Fulfillment System  44 . The network terminal  18  is a “connected” device in that it communicates with the Publisher  43  and the Ad Fulfillment System  44  via the Internet. In this non-limiting example, network terminal  18  sends a Request to an Ad Network  46  of Ad Fulfillment System  44  via an SDK, as described in greater detail below. 
         [0031]    The Ad Network  46  of this example is associated with a database  47 . The Ad Network  46  will reply to the user device Request with a Reply (Ad). The Ad Network, in this example, is coupled to one or more Advertisers  48  and to one or more Ad Exchanges  50 . The Ad Exchanges, in turn, can be coupled to one or more Advertisers  52 , one or more Ad Networks  54 , etc. 
         [0032]    It will be appreciated that the network of the Ad Fulfillment System  44  can include other computers, databases and servers, e.g. Advertisers  56  and  58  connected to the Ad Network  54 . However, at some point latency becomes a issue in that the person using the user device will typically only wait for a short period of time for an advertisement before “clicking out” and moving on to another screen. 
         [0033]    It will be further appreciated that, in this non-limiting example, the Ad Network  46  is a gateway for the fulfillment of the ad request by the network terminal  18 . The request to the Ad Network  46  can be accomplished, by way of example, with an ad network SDK (Software Development Kit)  59  which allows the user device to send a request to the URL (Universal Resource Locator) of in this example, Ad Network  46 . The SDK can, for example, be embedded in a player provided to the network terminal  18  by Publisher  43 . A Request will include, as a minimum, the IP address of network terminal  18  so that the Ad Network  46  may send its Reply. However, the SDK may provide additional information concerning, by way of non-limiting example, the user, the user device, its environment and/or how it is being used (“Attributes”) to the Ad Network  46  that can be useful in determining an appropriate advertisement to be sent to the network terminal  18 . 
         [0034]    When the network terminal  18  is a computer  18 A, or another user device that can support a web browser, part of the Request can include what is known as a “cookie.” A cookie is a relatively small file of information about a user device which may include demographics, personal information, browser history, context and other information or Attributes that can help with the ad selection process. However, cookies are being increasingly disabled and/or blocked for privacy purposes and they are not generally used on user devices (such as many mobile devices) by application programs (“apps”) that don&#39;t implement a web browser. However, Attributes can be provided by user devices in other ways, such as by the applications (“apps”) themselves. 
         [0035]    In an embodiment, set forth by way of example and not limitation, software can be provided in each network terminal  18  which can provide terminal information that can form the basis of a “fingerprint” for that terminal. For example, YuMe, Inc. of Redwood City, Calif. embeds the customized software SDK  59  into user devices such as CTVs, smartphones, tablets and personal computers (PCs) which can provide a variety of information to, for example, their analysis servers  12  or advertisers  14 , SDKs can be used to collect valuable real-time, continuous, network terminal information (“data”) that can be saved and aggregated into a central decision-making engine. By way of non-limiting examples, information that can be derived from a terminal device  18  for the purpose of fingerprinting can include the size of the screen, fonts, the time zone, GPS, operating system versions, what plugins are available, what application the user is currently in, and other features or information that can, for example, be provided to an advertiser  14  as part of an advertisement (“ad”) request. 
         [0036]    By way of further non-limiting example, a network terminal  18  can be defined as a screen user device which has had installed upon it a unique SDK  59  which communicates with a server, such as an analysis server  12  or an advertiser server  14 . By using information sent by the SDK for a network terminal  18  a terminal “fingerprint” can be developed using, for example, configuration settings and other observable characteristics by the SDK. Terminal fingerprinting allows for the identification or re-identification of a visiting terminal for such purposes as authenticating a terminal, to identify a user, to track and correlate a user&#39;s activity within and across sessions, and to collect information from which inferences can be drawn about a user. 
         [0037]    In an embodiment, set forth by way of example but not limitation, a “terminal fingerprint” can include a homogeneous set of fields that describe a specific user device at a specific point in time. In this example, the fields can be collected via a variety of mechanism. In certain embodiments, missing fields can be considered part of the fingerprint. 
         [0038]    It will be appreciated that a fingerprint of a given network terminal may change over time due to changes in software versions, browser plugins, network configurations etc. To address this fact, prior versions (“historical set”) of a network terminal&#39;s fingerprint may be stored in a database. In a non-limiting example, a new fingerprint preferably matches the most recent fingerprint of the historical set within a certain threshold. 
         [0039]    As used herein, a “terminal ID” is preferably a unique, algorithmically generated identification (“ID”) that is assigned to the historical set of terminal fingerprints for a given terminal. A “match probability” reflects the probability that two fingerprints are from the same network terminal. The match probability can be normalized between the values of 0 and 1, for example, such that two fingerprints are more similar when the probability is closer to 1 and more dissimilar when the probability is closer to 0. A “match threshold” can be defined as the threshold of the match probability above which a fingerprint is considered to be from the same network terminal. If, for example, multiple fingerprints have a match probability above the threshold then the one with the highest score can be considered to be a match. 
         [0040]      
         [0041]      FIG. 4  illustrates, by way of example and not limitation, network terminal fingerprinting processes  60 , which span several systems. In this example, an Internet user  62 , e.g. a user of a network terminal  18 , uses a service  64  and, optionally, configures privacy settings  66 . A fingerprinting service  68 , which comprises a computer implemented process executing on, for example, analysis servers  12  or advertisers  14 , gathers information  70 , uses terminal device information  72  of user  62  and a fingerprint information database  74 . The information of process  70  is provided to a device ID database  76 . A “Service_A”  78 , which is also a computer-implemented process, links “user data” (e.g. the data associated with Internet user  62 ) to a device ID provided by device ID database  76  in an operation  80  to provide a service  82  to user  62 . Service_A  78  comprises a computer implemented process executing on, for example, an advertiser  14 . By way of non-limiting example, Service_A  78  can be a video ad server providing an advertisement for the network terminal  18  of the user  62 . 
         [0042]      FIG. 5  illustrates, by way of example and not limitation, a system data sharing process  84 . In this example, Service_A  78  shares user data  86  using device ID database  76 . A “Service_B”  90  likewise shares user data  90  using device ID database  76 . In this fashion, the knowledge base concerning the user(s) of a terminal device having a device ID in device ID database  76  can be expanded to provide ever-better tailored services for the user  62 . 
         [0043]    In  FIG. 6 , a Household  92  is illustrated. By “household” it is generally meant a residential household including at least one, but often several, resident(s), although the term “household” can sometimes refer to other social groups, e.g. businesses or organizations which can include multiple screens, multiple members and sometimes multiple locations. Each “household” will have certain attributes which can be targeted for the more effective implementations of advertising campaigns. 
         [0044]    In the non-limiting example of  FIG. 6 , a “household” refers to a collection of devices  18  and persons  94  that are associated with a home residence  96 . The devices  18  can be identified using the techniques described herein, including fingerprinting, cookies, etc. In certain non-limiting embodiments, Household  92  is identified by a Household Identifier (a/k/a “Household ID” and “HID”), that can be stored in, for example, database  47  (see  FIG. 3 ). By way of non-limiting example, home residence  96  can be connected to the Internet  20  by a transmission media  98  such as cable, fiber optic, twisted pair and wireless transmission media. In this example, the transmission media is coupled to a WiFi hub  100  having an associated IP (Internet Protocol) address HIP. As will be appreciated by those of skill in the art, the HIP address may change upon occasion, either due to a resetting by the ISP (Internet Service Provider) or by the household members. In such cases, the HID is updated to associate the user devices  18  and persons  94  associated with the new HIP. 
         [0045]    In this non-limiting example, the WiFi hub  100  communicates through a wired (e.g. Ethernet) connection with devices D 1  and D 2  and wirelessly with user devices D 3 , D 4  and D 5 . For example, device D 1  can be a desktop computer, device D 2  can be a CTV, device D 3  can be a tablet computer, device D 4  can be a laptop computer, and device D 5  can be a smartphone. Since each of these user devices  18  are communicating with the WiFi hub  100 , they will all have the same HIP when they are physically within (or nearby) the Household  60 . As will be discussed subsequently, determining that the user devices D 1 -D 5  and persons  94  are associated with the Household  92  allows a HID to be assigned to those devices and persons. The HID is a useful tool in providing appropriate ads to the user devices. Furthermore, the HID is transferrable if the household with which it is associated moves to a new home. 
         [0046]    It will be appreciated from the foregoing that the HIP alone may be enough to identify a Household  90 . This is because certain IP addresses are known to be associated exclusively with residential areas. However, in some instances, it may be uncertain whether an IP address is associated, in whole or in part, with a residential area. In such cases, it is desirable to confirm that the IP address is, in fact, associated with a home residence. 
         [0047]    As illustrated in  FIG. 7 , home residence  96  may be located geographically by using certain attributes provided by the devices  18  when requesting an advertisement. For example, the attributes of LAT (latitude), LONG (longitude) and/or zip code (“94022” in this example) may be provided as part of an ad request. Also, a cellular (“cell”) tower ID (“CID”) may be provided by as an Attribute if provided during an Ad Request. These and other Attributes can help geographically locate the Household  60  by using such tools as Google Maps, by way of non-limiting example. 
         [0048]    Although various examples have been described using specific terms and devices, such description is for illustrative purposes only. The words used are words of description rather than of limitation. It is to be understood that changes and variations may be made by those of ordinary skill in the art without departing from the spirit or the scope of any examples described herein. In addition, it should be understood that aspects of various other examples may be interchanged either in whole or in part. It is therefore intended that the claims be interpreted in accordance with the true spirit and scope of the invention without limitation or estoppel.