The invention relates generally to systems and methods for tracking mobile network usage, and more specifically to determining user preferences and user behavior tendencies while accessing content from multiple wireless mobile networks and/or wired content domains using various access modalities.
The use of mobile phones in the United States and around the world has increased dramatically. It is projected that soon the number of mobile phone users will exceed the number of fixed telephone subscribers. The proliferation of mobile phone usage has engendered corresponding advances in mobile phone technology. Mobile phones can now handle many types of multimedia content. Consumers can navigate the World Wide Web (the “Web”) from their mobile phones to much the same degree as from their home computers. Often, users switch between access devices, using a wireless device, a personal computer interchangeably throughout the day to access the same content. The proliferation of these new multimedia mobile phone devices and the implementation of wireless application protocols (WAP) have created a ripe market for the presentation of mobile-enabled content and advertising, which provides significant revenue opportunities for both third-party advertisers and wireless carrier companies. Some of the key challenges in providing targeted content and advertising to users are (i) to be able to accurately identify the user as often as possible, and (ii) to maintain comprehensive usage histories for individual users. The combination of these two capabilities leads to improved ad targeting and an enhanced user experience as users are provided with the content they want, when, where and on what device they want it.
While there have been many solutions with respect to traditional web usage (i.e., users browsing websites from a personal computer), no such solution provides the same depth and breadth of user profiling for mobile web usage, much less for identifying the same users as they alternate among delivery channels. While there are many differences, one key distinction is the added complexity of supporting multiple phone types, network types and carriers. For example, carrier-specific mobile identifiers such as x-up-subno and msisdn identify each subscriber with a unique user ID and pass it through request headers. However, the request header names vary from carrier to carrier, as some carriers may use phone numbers as the unique user ID, whereas others may use a randomly generated ID. Moreover, content providers (e.g., content distribution networks, advertising networks, etc.) cannot access a carrier's identifiers or headers when they are removed or scrambled from network data flows. This lack of information limits third-party mobile networks from providing a consistent experience to their users across different devices, carriers, and content formats.
In cases in which the mobile device supports the use of device-resident cookies, a network cookie identifier can be set. When a page request is serviced, a cookie is placed in the mobile browser. Such an approach does not work, however, for devices that do not accept cookies, or in cases in which the user disables such functionality. In implementations in which WAP gateways honor non-persistent cookies, session identifiers may be used to track session-specific usage, but such an approach does not provide a complete or persistent picture of a user's behavior over time.
What is needed, therefore, are techniques and supporting systems to track users and site visitors across multiple networks of mobile media properties as the users interact with the properties via mobile web, SMS, within mobile-device resident applications and conventional “wired” content sites.
Various aspects of the invention facilitate the tracking and profiling of users of mobile devices and media. More specifically, the techniques described herein enable uniform user tracking across the major pillars of mobile media interaction—web, SMS, application usage and wired-to-mobile—using a network-resident cookie and hash matching. Such an approach implements user tracking via a “server-side cookie” that leverages device support for cookies (if available) but does not depend upon it. Such an approach also supports tracking for sites across multiple domains absent browser support for Javascript tags as well as cookies.
The network cookie enables advertiser targeting across multiple user sessions, content distribution channels, devices, and across different media interactions. Furthermore, data gathered over time enables the clustering of users having similar behavior patterns. Each of the mobile channels supplies unique data points to enable richer targeting and clustering based attributes of the content requests. As examples, mobile web sites identify content interests (based on the sites visited by a user), SMS supplies a phone number (from which we may derive a location), application supplies precise location (on platforms such as the iPhone). The user cookie/record is then augmented with these data points and uses the data for site personalization and targeting purposes.
To associate specific content requests to particular users and/or sessions, a hash_id is created as a unique user ID (UUID) for users in a locality-sensitive manner which optimizes the group containment logic of mobile users based on different attributes. The constituent attributes are spread across different dimensions (device type, model type, carrier, behavioral patterns, etc.) and thus captures various data points for each interaction. A probabilistic matching technique is then used to identify content requests that emanate from the same user (or device), to facilitate targeted advertising and content delivery.
Therefore, in a first aspect, a computer-implemented method for identifying and/or associating requests for WAP-enabled content with mobile subscribers includes receiving mobile content requests that include various request attributes and assigning each request attribute to attribute groups. A hash function is applied to each attribute group, and multiple mobile content requests are then assigned to a mobile subscriber based on a degree of match (which may be less than 100% in some cases) among corresponding hashed attribute groups.
The request attributes can be a device ID, a carrier ID, a telephone number, an account number, a MAC address, an IP address, a location, a SIM card ID, and/or a device model. The request attributes may be assigned to one group, no groups or in some cases more than one group. The groups may, in some cases, be unique across users. In some embodiments, a match confidence level is calculated that represents a degree of match between mobile content requests. In such cases, the match confidence level may be used to sort the mobile content requests, and some number (e.g., the top k requests where k is an integer) of the requests are assigned to a single mobile subscriber. The number of selected requests may be predetermined and/or based on a minimum confidence level threshold.
Once associated with a particular mobile subscriber, the content requests may be augmented with a user-specific identifier and stored in a database. The database of user-specific content requests may be used to identify subsequent requests as being associated with known subscribers. For example, subsequent mobile content requests may be received from an unidentified mobile subscriber. A query may be executed against the database to identify previously received mobile content requests that match, to some degree, the stored mobile content requests, such that the subsequent mobile content requests can be attributed to the same mobile subscriber as those in the query results. As such, the requested content may then be augmented with additional content (e.g., advertisements) consistent with the previously received mobile content requests, usage histories, and/or demographics.
In another aspect, a system for identifying and/or associating requests for WAP-enabled content with mobile subscribers includes a domain server and an ID processing module. The domain server is configured to receive mobile content requests that include various request attributes, such as a device ID, a carrier ID, a telephone number, an account number, a MAC address, an IP address, a location, a SIM card ID, and/or a device mode. The ID processing module is configured to assign each request attribute to an attribute group, apply a hash function to each attribute group, and assign mobile content requests to a mobile subscriber based on a degree of match among corresponding hashed attribute groups of the mobile content requests.
In some embodiments, the ID processing module assigns each of the request attributes to one group, whereas in other cases the attributes may be assigned to more than one group, or, in other cases, some attributes may be ignored and not used. The ID processing module may also calculate a match confidence level between mobile content requests based on the degree of match between corresponding hashed attribute groups. The resulting series of hashed groups may be sorted based on the match confidence level, and may be assigned a certain number of mobile content requests from the sorted mobile content requests to a single mobile subscriber. The number of assigned requests may be determined by confidence level threshold, for example.
The system may also include a database for storing the content requests, either as received, as processed by the ID processing module, and/or as augmented with a mobile subscriber ID. In such cases, the domain server may be further configured to receive subsequent mobile content requests from a mobile subscriber and query the database for previously received mobile content requests based on a degree of match among corresponding hashed attribute groups of the subsequent mobile content requests and the stored mobile content requests. The subsequent mobile content requests can then be assigned to the same mobile subscriber as those resulting from the query. Further content returned to the subscriber in response to the request may be augmented with advertisements consistent with the previously received mobile content requests, user preferences, and/or demographic information.
The foregoing and other objects, features, and advantages of the present invention, as well as the invention itself, will be more fully understood from the following description of various embodiments, when read together with the accompanying drawings, in which:
Referring to
In response, many content providers have looked to ways to automatically process their existing web site source code into “mobile-specific” source code. Furthermore, the variety of devices and the likelihood that content varies among web pages and web sites means that certain pages (or even individual requests for certain pages) may be processed differently. To address this challenge, a domain content and ad server 115 (“domain server”) may be used to maintain “rule sets” that facilitate the generation of page-specific, site-specific, and/or device-specific source code. By doing so, web pages (and in some cases entire web sites) that are designed for full-screen display can be rendered on mobile devices without requiring manual design and development of a second, “mirror” site. Such functionality is described in greater detail in currently co-pending, co-owned U.S. patent application Ser. No. 12/138,876, entitled “Displaying Content on a Mobile Device,” the entire disclosure of which is incorporated by reference herein. Content specifically formatted and coded for presentation on wireless devices is commonly referred to as Wireless Application Protocol-enabled (“WAP-enabled” or “WAP”) content, and is transmitted using one or more “WAP” protocols.
Still referring to
However, as the domain server 115 is used to create and serve WAP content (referred to herein as “content”) from multiple content providers, the need arises to be able to consistently identify and track individual wireless users and usage sessions. By doing so, content providers and advertisers can gain a more accurate profile of each user and/or groups of users in order to better target content and advertising. Therefore, in accordance with various embodiments of the invention, a unique user identifier (UUID) is created and used to track users as they browse, request and interact with content, applications and advertisements across multiple content and/or advertising domains (process 1). In one embodiment, the UUID is created and tracked using a server-side cookie (process 2) that contains various attributes of a mobile session and updated for subsequent requests (process 3). The UUIDs may be cached and/or stored in one or more databases 120 (process 1a) and processed by an ID processing module 125 (process 4) that groups, hashes, sorts and analyzes the UUIDs as described below. This “enriched” mobile user data may then be stored in a separate database 135, or, in some instances, a separate storage area (e.g., partition, table, set of tables, etc.) of the primary database 120. For subsequent requests with a matching sessionID, the cookie can be retrieved from the database (step 5) and returned to the device 110 (process 5a).
In some cases, a server-side cookie cannot be used due to device and carrier limitations. In other cases, as the server-side or session cookie is set, subsequent requests may not return the cookie information due to data flow loss, carrier scrambling processes, or users resetting the cookie persistence schedule on their devices. In addition, depending on the particular content channel, it may be difficult to match a cookie generated by one system (e.g., by an online content provider's servers) and automatically identify this as the same user as they request content on a different mobile device or network. In these cases, the domain server 115 queries the database 120 to determine whether a server-side cookie exists for the current request. If the cookie does not exist, the domain server 115 may query the mobile user database 135 for sets or subsets of attributes similar to the current request. Based on matching a relevant subset of group attributes and/or attribute combinations that are minimally needed to identify an unknown user, one or more matching users or user groups based on group attribute membership, or attribute pattern identification (process 6a). In some implementations, the ID processing module 125 is continuously updated the mobile user database 135 with the most recent, or new information about existing UUIDs as well as new, unknown users. Updates may be sent to a cached memory 130 in real time (process 6b) such that the most recent lists of UUID, hash and attribute groups and logic are available for incoming requests.
Any subsequent hits from the previously-visited mobile website domain gets the same cookie set on the domain server with the cookie swapping process occurring on the server-side via session ID as bridge. The cookie continues to propagate to other domains using the same process.
In implementations in which the content providers deliver content in real-time and that operate outside the domain server (e.g., a mobile site managed by a third-party publisher) the server-side cookie is propagated to the mobile users by inserting a 1×1 pixel image into advertisements and other content and sets the cookie for the domain-specific session. The session ID and/or client ID may used an intermediate key to assign the cookie for all the transactions. For short messaging service (“SMS”) feeds, a phone number or similar ID is transmitted along with the request for an ad to be delivered with an SMS feed. In other cases, the key may be a subscriber ID that is passed along with the click-through URL, which enables setting the server-cookie when users click on the link, and associates the SMS feed-specific ID with the server-side cookie ID.
For applications used via mobile devices (e.g., GMail for wireless, Facebook, etc.), the mobile applications provide an application-specific user ID when requesting an advertisement from the ad network. The user ID is concatenated to, embedded within, or otherwise made part of the click-through URL associated with the ad. When a user click on the ad, a browser is launched and communicates with the advertising server, enables the server-side cookie, and associates the application ID with the cookie ID. Adding a hosted “thank-you” page (or other jump-off page) is another way to set the server-side cookie for mobile devices using mobile applications.
However, because not all of the particular attributes are available, and in some cases may actually change (a user may change carriers or devices, or have multiple devices) the technique for identifying requests to be grouped based on the UUIDs accounts for minor corrections, can operate with partial input (e.g., missing certain attributes) and can detect similar, but not necessarily identical UUIDs.
Again referring to
In some embodiments, each attribute is assigned a unique attribute ID, and the attribute IDs and respective hash values are stored as tuples or a list of ordered pairs of integers using a variable integer encoding technique. A distance function may then be used to determine the match probability by computing an XOR between each attribute hash value associated with matching attribute IDs and summing the “1s” in the resulting XOR'ed product vector.
For example, one approach uses four buckets {bkt1, bkt2, bkt3 and bkt4}. Bkt1 comprises attributes ID1 and ID2 (e.g., account number and telephone number), bkt2 comprises the device model number and browser, bkt3 comprises the MSISDN (SIM card number) and client ID, and bkt4 comprises the carrier (e.g., t-Mobile, Sprint, etc.) and the device (iPod, Blackberry, etc.). As request1 is received, the values in each attribute grouping are hashed, as represented by the vertically-shaded markers 220. As request 2 is received, the same hash function is applied. The resulting values are represented as the horizontally-shaded markers 225. For those that match, however, the overlapping patterns appear as cross-hatched markers 230. In the example shown, three of the four hashes match, resulting in a match confidence level of 0.75. This may occur in situations where, for example, a user switches account numbers and/or phone numbers, but uses the same device, browser and carrier.
More specifically, one method for identifying potentially matching UUIDs builds an ordered list of all UUIDs based on the number of matching buckets when compared to a candidate UUID using a distance calculation. The list is then sorted based on the calculated distance (e.g., closest UUID listed first) that represents the probability of a match. A number k of UUIDs may then be considered to be from the same user by selecting the top k UUIDs from the ranked list. The number k may be predefined number, a threshold (e.g., all UUIDs having a match confidence greater than 70%), or determined at run-time based on a time or processing limitation. The grouped UUIDs may then be “tagged” or otherwise annotated such that they are associated with the subscriber and her requests for mobile content.
The UUIDs may be stored in a database for reference and querying when subsequent mobile content requests are received from mobile subscribers. For example, if an unidentified subscriber sends a content request to the domain server, the ID processing module computer may process the request as described above and query the database for matching content requests in order to attribute the request to a previously identified subscriber. If the identified subscriber has known tendencies (based, for example, on previous content requests or request attributes) the requested content may be augmented with advertising or other content consistent with (or at least based on) known likes or attributes of the subscriber.
The processes described above may be implemented on the ID processing module 125 which may be operating on a computer which contains one or more processors on which commands and computational requests are processed. Memory, (either RAM, flash, ROM, or other storage means) stores computer-executable instructions for receiving and processing content requests, creating, storing and analyzing the hashed UUIDs, and performing the sorting and matching steps illustrated in
In some embodiments, the processor and memory may implement the functionality of the present invention in hardware or software, or a combination of both on a general-purpose or special-purpose computer. In addition, such a program may set aside portions of a computers random access memory to provide control logic that affects one or more of the functions. In such an embodiment, the program may be written in any one of a number of high-level languages, such as FORTRAN, PASCAL, C, C++, C#, Java, Tcl, or BASIC. Further, the program can be written in a script, macro, or functionality embedded in commercially available software, such as EXCEL or VISUAL BASIC. Additionally, the software may be implemented in an assembly language directed to a microprocessor resident on a computer. For example, the software can be implemented in Intel 80×86 assembly language if it is configured to run on an IBM PC or PC clone. The software may be embedded on an article of manufacture including, but not limited to, computer-readable program means such as a floppy disk, a hard disk, an optical disk, a magnetic tape, a PROM, an EPROM, or CD-ROM.
While the invention has been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The scope of the invention is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.
This application claims priority to and the benefits of U.S. provisional patent application Ser. No. 61/103,098, filed Oct. 6, 2008, the entire disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61103098 | Oct 2008 | US |