U.S. patent application number 15/339588 was filed with the patent office on 2017-03-30 for cross platform user joining.
The applicant listed for this patent is BloomReach Inc.. Invention is credited to Suchitra Amalapurapu, Rahul Bhandari, Ashutosh Garg, Pradeep Muthukrishnan, Anand Raghuraman, Jasvinder Singh.
Application Number | 20170093996 15/339588 |
Document ID | / |
Family ID | 51865681 |
Filed Date | 2017-03-30 |
United States Patent
Application |
20170093996 |
Kind Code |
A1 |
Amalapurapu; Suchitra ; et
al. |
March 30, 2017 |
CROSS PLATFORM USER JOINING
Abstract
Techniques for cross platform user joining are disclosed. In
some embodiments, cross platform user joining includes associating
a first user identification (UID) and a second UID with one or more
Internet Protocol addresses (IPs); associating the first UID and
the second UID with one or more monitored behaviors; and joining
the first UID and the second UID based on the one or more IPs and
the one or more monitored behaviors.
Inventors: |
Amalapurapu; Suchitra;
(Bangalore, IN) ; Raghuraman; Anand; (Campbell,
CA) ; Bhandari; Rahul; (San Mateo, CA) ;
Muthukrishnan; Pradeep; (Mountain View, CA) ; Singh;
Jasvinder; (Bangalore, IN) ; Garg; Ashutosh;
(Sunnyvale, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
BloomReach Inc. |
Mountain View |
CA |
US |
|
|
Family ID: |
51865681 |
Appl. No.: |
15/339588 |
Filed: |
October 31, 2016 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14264569 |
Apr 29, 2014 |
|
|
|
15339588 |
|
|
|
|
61822800 |
May 13, 2013 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 67/22 20130101;
H04L 67/306 20130101; H04L 67/146 20130101; H04L 67/00 20130101;
G06Q 30/0251 20130101; G06F 16/95 20190101; H04L 61/2084 20130101;
H04L 61/103 20130101; G06Q 30/0269 20130101; G06F 16/337 20190101;
H04L 67/20 20130101; G06F 16/9535 20190101 |
International
Class: |
H04L 29/08 20060101
H04L029/08; G06Q 30/02 20060101 G06Q030/02; G06F 17/30 20060101
G06F017/30; H04L 29/12 20060101 H04L029/12 |
Claims
1. (canceled)
2. A system for cross platform user joining, comprising: a
processor configured to: associate a first user identification
(UID) and a second UID with one or more Internet Protocol addresses
(IPs); associate the first UID and the second UID with one or more
monitored behaviors; and join the first UID and the second UID
based on the one or more IPs and the one or more monitored
behaviors, wherein the joining of the first UID and the second UID
includes one of the following: A) determine whether a first set of
monitored behaviors associated with the first UID is related to a
second set of monitored behaviors associated with the second UID
based on a Map Reduce processing operation; and in the event that
the first set of monitored behaviors is related to the second set
of monitored behaviors, join the first UID and the second UID; B)
determine whether a first login associated with the first UID
matches a second login associated with the second UID; and in the
event that the first login matches the second login, join the first
UID and the second UID; C) determine whether a first unique
information associated with the first UID matches a second unique
information associated with the second UID; and in the event that
the first unique information matches the second unique information,
join the first UID and the second UID; or D) determine whether a
first email including a first unique identifier or code associated
with the first UID matches a second email including a second unique
identifier or code associated with the second UID; and in the event
that the first unique identifier or code matches the second unique
identifier or code, join the first UID and the second UID; and a
memory coupled to the processor and configured to provide the
processor with instructions.
3. The system recited in claim 2, wherein the first UID is
associated with a first user platform, and the second UID is
associated with a second user platform.
4. The system recited in claim 2, wherein the first UID is
associated with a first mobile device, and the second UID is
associated with a second mobile device, and wherein at least one of
the first UID and the second UID corresponds to an anonymous
UID.
5. The system recited in claim 2, wherein the one or more monitored
behaviors are tracked using a pixel log.
6. The system recited in claim 2, wherein the one or more IPs are
tracked using a pixel log.
7. The system recited in claim 2, wherein the processor is further
configured to: determine a number of UIDs associated with each of
the one or more IPs to categorize each of the one or more IPs.
8. The system recited in claim 2, wherein the processor is further
configured to: generate a joined user profile based on the first
UID and the second UID.
9. The system recited in claim 2, wherein the processor is further
configured to: generate a joined user profile based on the first
UID and the second UID; and send the joined user profile to a web
service.
10. The system recited in claim 2, wherein the processor is further
configured to: generate a joined user profile based on the first
UID and the second UID; and send the joined user profile to a web
service, wherein the web service can customize content presented by
the web service to a user based on the joined user profile.
11. A method of cross platform user joining, comprising:
associating a first user identification (UID) and a second UID with
one or more Internet Protocol addresses (IPs); associating the
first UID and the second UID with one or more monitored behaviors;
and joining the first UID and the second UID based on the one or
more IPs and the one or more monitored behaviors, wherein the
joining of the first UID and the second UID includes one of the
following: A) determine whether a first set of monitored behaviors
associated with the first UID is related to a second set of
monitored behaviors associated with the second UID based on a Map
Reduce processing operation; and in the event that the first set of
monitored behaviors is related to the second set of monitored
behaviors, join the first UID and the second UID; B) determine
whether a first login associated with the first UID matches a
second login associated with the second UID; and in the event that
the first login matches the second login, join the first UID and
the second UID; C) determine whether a first unique information
associated with the first UID matches a second unique information
associated with the second UID; and in the event that the first
unique information matches the second unique information, join the
first UID and the second UID; or D) determine whether a first email
including a first unique identifier or code associated with the
first UID matches a second email including a second unique
identifier or code associated with the second UID; and in the event
that the first unique identifier or code matches the second unique
identifier or code, join the first UID and the second UID.
12. The method of claim 11, wherein the first UID is associated
with a first user platform, and the second UID is associated with a
second user platform.
13. The method of claim 11, wherein the first UID is associated
with a first mobile device, and the second UID is associated with a
second mobile device, and wherein at least one of the first UID and
the second UID corresponds to an anonymous UID.
14. The method of claim 11, further comprising: determining a
number of UIDs associated with each of the one or more IPs to
categorize each of the one or more IPs.
15. The method of claim 11, further comprising: generating a joined
user profile based on the first UID and the second UID; and sending
the joined user profile to a web service, wherein the web service
can customize content presented by the web service to a user based
on the joined user profile.
16. A computer program product for cross platform user joining, the
computer program product being embodied in a tangible computer
readable storage medium and comprising computer instructions for:
associating a first user identification (UID) and a second UID with
one or more Internet Protocol addresses (IPs); associating the
first and second UIDs with one or more monitored behaviors; and
joining the first and second UIDs based on the one or more IPs and
the one or more monitored behaviors, wherein the joining of the
first UID and the second UID includes one of the following: A)
determining whether a first set of monitored behaviors associated
with the first UID is related to a second set of monitored
behaviors associated with the second UID based on a Map Reduce
processing operation; and in the event that the first set of
monitored behaviors is related to the second set of monitored
behaviors, joining the first UID and the second UID; B) determining
whether a first login associated with the first UID matches a
second login associated with the second UID; and in the event that
the first login matches the second login, joining the first UID and
the second UID; C) determining whether a first unique information
associated with the first UID matches a second unique information
associated with the second UID; and in the event that the first
unique information matches the second unique information, joining
the first UID and the second UID; or D) determining whether a first
email including a first unique identifier or code associated with
the first UID matches a second email including a second unique
identifier or code associated with the second UID; and in the event
that the first unique identifier or code matches the second unique
identifier or code, joining the first UID and the second UID.
17. The computer program product recited in claim 16, wherein the
first UID is associated with a first user platform, and the second
UID is associated with a second user platform.
18. The computer program product recited in claim 16, wherein the
first UID is associated with a first mobile device, and the second
UID is associated with a second mobile device, and wherein at least
one of the first UID and the second UID corresponds to an anonymous
UID.
19. The computer program product recited in claim 16, further
comprising computer instructions for: determining a number of UIDs
associated with each of the one or more IPs to categorize each of
the one or more IPs.
20. The computer program product recited in claim 16, further
comprising computer instructions for: generating a joined user
profile based on the first UID and the second UID; and sending the
joined user profile to a web service, wherein the web service can
customize content presented by the web service to a user based on
the joined user profile.
Description
CROSS REFERENCE TO OTHER APPLICATIONS
[0001] This application is a continuation of co-pending U.S. patent
application Ser. No. 14/264,569 entitled CROSS PLATFORM USER
JOINING filed Apr. 29, 2014, which claims priority to U.S.
Provisional Patent Application No. 61/822,800 entitled CROSS
PLATFORM USER JOINING filed May 13, 2013, both of which are
incorporated herein by reference for all purposes.
BACKGROUND OF THE INVENTION
[0002] Internet-based web services can be delivered through web
sites on the World Wide Web (WWW). A web site is typically a set of
related web pages served from a web domain. Web pages are often
formatted using HyperText Markup Language (HTML), eXtensible HTML
(XHTML), or using another language that can be processed by a web
browser that is typically executed on a user's client device, such
as a computer, tablet, phablet, smart phone, smart television, or
other client device. A web site is generally hosted on a web
server. The web server is typically accessible via a network, such
as the Internet, through a web address, which is generally known as
a Uniform Resource Indicator (URI) or a Uniform Resource Locator
(URL).
[0003] For example, a web service can be delivered via a web site.
In some cases, the web site can allow users to access content
delivered via the web site using anonymous user access. Some web
sites can allow or require that users login to access some or all
of the content delivered via the web site (e.g., subscription
access may be required to access certain content on the web site,
such as for an online newspaper, an e-commerce shopping site, a
social networking web site, a web-based email service, a file
sharing web site, and/or other web services).
[0004] A web site can be a static web site. Generally, a static web
site does not customize content delivered to different users of the
web site (e.g., a static web site has web pages stored on a web
server in the format that is sent to a client web browser).
[0005] A web site can be a dynamic web site or can include dynamic
web pages. Generally, a dynamic web site can customize content
delivered to different users of the web site (e.g., a dynamic web
site is one that can change or customize web content
automatically).
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Various embodiments of the invention are disclosed in the
following detailed description and the accompanying drawings.
[0007] FIG. 1 is a block diagram illustrating an overview of an
architecture of a system for providing cross platform user joining
in accordance with some embodiments.
[0008] FIG. 2 is a functional block diagram illustrating a cross
platform user joining engine in accordance with some
embodiments.
[0009] FIG. 3 is a functional diagram illustrating an architecture
for IP-based, behavior signal, and other signal processing for
providing cross platform user joining in accordance with some
embodiments.
[0010] FIG. 4 is a graph diagram illustrating an association of IP
addresses and UIDs for providing cross platform user joining in
accordance with some embodiments.
[0011] FIGS. 5A and 5B are functional block diagrams illustrating
overviews of an offline architecture and an online architecture of
a system for providing cross platform user joining in accordance
with some embodiments.
[0012] FIG. 6 is a functional diagram illustrating an architecture
for IP-based UID processing for providing cross platform user
joining in accordance with some embodiments.
[0013] FIG. 7 is a screen diagram illustrating a graphical user
interface (GUI) of a web interface for providing cross platform
user joining in accordance with some embodiments.
[0014] FIG. 8 is a flow diagram illustrating a process for
providing cross platform user joining in accordance with some
embodiments.
[0015] FIG. 9 is another flow diagram illustrating a process for
providing cross platform user joining in accordance with some
embodiments.
DETAILED DESCRIPTION
[0016] The invention can be implemented in numerous ways, including
as a process; an apparatus; a system; a composition of matter; a
computer program product embodied on a computer readable storage
medium; and/or a processor, such as a processor configured to
execute instructions stored on and/or provided by a memory coupled
to the processor. In this specification, these implementations, or
any other form that the invention may take, may be referred to as
techniques. In general, the order of the steps of disclosed
processes may be altered within the scope of the invention. Unless
stated otherwise, a component such as a processor or a memory
described as being configured to perform a task may be implemented
as a general component that is temporarily configured to perform
the task at a given time or a specific component that is
manufactured to perform the task. As used herein, the term
`processor` refers to one or more devices, circuits, and/or
processing cores configured to process data, such as computer
program instructions.
[0017] A detailed description of one or more embodiments of the
invention is provided below along with accompanying figures that
illustrate the principles of the invention. The invention is
described in connection with such embodiments, but the invention is
not limited to any embodiment. The scope of the invention is
limited only by the claims and the invention encompasses numerous
alternatives, modifications and equivalents. Numerous specific
details are set forth in the following description in order to
provide a thorough understanding of the invention. These details
are provided for the purpose of example and the invention may be
practiced according to the claims without some or all of these
specific details. For the purpose of clarity, technical material
that is known in the technical fields related to the invention has
not been described in detail so that the invention is not
unnecessarily obscured.
[0018] Existing web sites can generally track activities of users
on the web site (e.g., monitoring and tracking a user's browsing
activity during a session on the web site). For example, the web
site can use cookies (e.g., in pixel logs, in which cookies are
used to identify a user, at least anonymously, per device, and in
which the cookies are typically persistent on the device, that is,
the cookies are stored across sessions) or other approaches to
track a user's activity on the web site. Thus, what is being
actively browsed, viewed, and/or other user activities on the web
site can be tracked. But if the user is anonymously accessing
(e.g., browsing) the web site (e.g., if the user has not logged
into/signed into the web site and/or has not otherwise verified the
user's identity with the web site using a type of user
authorization/authentication, such as username, a username and
password, a biometric verification of a user, a token, or other
schemes or combinations thereof), then the web site generally
cannot associate such tracked user activities with a
specific/confirmed user identity.
[0019] However, as web sites continue to develop new services and
content for users, there is an increasing need to be able to
identify users even if the user has not logged into the web site
and/or has not otherwise authenticated or verified the user's
identity with the web site.
[0020] For example, there is a need for service providers to
control the manner of presentation and/or to customize the content
and/or services that are presented for each user. Customization and
personalization with respect to interface, content, and other
aspects can lead to additional revenue for the service provider and
can also provide a better user experience for its users. Thus, one
approach that web service providers can use is to employ user
identification systems to collect data to form user profiles, and
the web service providers can use this data to personalize the
content and form of their services (e.g., through dynamic web site
implementations that can customize content delivered to users based
on such user profiles).
[0021] To identify users, web service providers have traditionally
relied on the user's signing or logging into the web site in order
to access the web site. Sign-in/log-in based authorization on its
own is generally very restrictive in that it will often only
identify a fraction of users to a web site (e.g., as further
discussed below, due to the fact that many users opt to browse a
web site without signing/logging into that web site, such as for
users that have not created sign-in credentials on that site, and
this also often occurs in cases in which such users have sign-in
credentials for that site, but elect not to sign-in due to user
convenience or other reasons).
[0022] Specifically, the sign-in (e.g., also referred to as log-in)
based authorization approach applied by web service providers
generally does not provide sufficient user related data for at
least the following reasons.
[0023] First, users can visit web sites anonymously. In particular,
users often visit web sites anonymously, that is, without
signing-in. As a result, it is difficult for such web sites to
identify these users. Although this problem is not limited to any
particular device type (e.g., desktop, laptop, tablet, phablet,
smart phone, or another device type), it is generally a more
prevalent issue for users browsing web sites on their mobile
devices (e.g., tablets, phablets, smart phones or other types of
mobile phones, and other types of mobile devices).
[0024] Second, users can have more than one device. With the
proliferation of Internet connected devices, a single user may use
many devices (e.g., tablet, home computer/laptop, work
computer/laptop, mobile phone, smart TV, and/or other devices). As
a result, users may browse content and, thus, create data for a
user profile across such devices. However, this information can be
valuable in generating a complete profile of the user.
[0025] Specifically, the combination of these two problems means
that without a user sign-in on each device, a service provider
(e.g., a web service provider) will not be able to determine that
the user behind the multiple devices is the same user or is likely
the same user.
[0026] More specifically, an inability to be able to identify users
creates several different problems for the web service provider.
The inability to be able to identify users makes it difficult for
the service provider to personalize or customize the web site for
each user. For example, the service provider cannot effectively
provide customized content for the user if the service provider
cannot identify the user across devices (e.g., user platform).
Furthermore, the site provider cannot connect user activity across
devices to create user profiles. As a result, a typical approach is
for service providers to simply attribute actions to devices
instead of users (e.g., users that can be associated with two or
more devices). For many service providers, these user profiles will
continue to be split across devices if users are not signed in on
each device that they use to access the service (e.g., to access
the service provider's web site).
[0027] Further, web services providing online content (e.g.,
dynamic or other customized content for a web site) can be
customized to provide different content to different users.
However, as discussed above, customizing online content based on
users is not effective if the user cannot be identified (e.g., a
user that did not log into the web service), and the user accesses
the web service from two or more devices.
[0028] In a common scenario, assume that a user, named Bob, browses
a web service, such as ACME.com, during a session from Bob's smart
phone without logging into the web service (e.g., anonymously
browsing a web site of the web service without using a sign-in or
other based authorization technique). In this scenario, Bob and
Bob's smart phone are typically just associated using an identifier
(ID) via a cookie associated with that session (e.g., cookies can
be stored past a given session, that is, cookies can be
persistently stored, in this example, on Bob's smart phone).
However, Bob would not be identified as the same user when browsing
that web service, which is ACME.com in this example, using a
different user platform/device, such as from Bob's laptop computer.
In such cases, the web service, ACME.com, cannot customize content
for Bob that is uniquely identified, such as when Bob is browsing
ACME.com anonymously from a different device, such as Bob's laptop
computer. Moreover, this inability to identify users who access web
services anonymously across different devices/user platforms also
results in a fragmented data set for user profiles for such web
services. As a result, this also creates challenges for the web
services to accurately and effectively customize content and
associated information that web services desire to generate, for
example, various e-commerce related metrics, such as lifetime value
of a user, and/or various other e-commerce related activities, such
as user profile-based targeted advertisements or targeted
service/product offerings.
[0029] Thus, what are needed are techniques for identifying users
of a web site(s) even if the user has not signed into the web site,
including for users that access such web site(s) from multiple
different devices/user platforms.
[0030] Accordingly, techniques for cross platform user joining are
disclosed.
[0031] In some embodiments, by using various signals, such as
Internet Protocol (IP) addresses, in joining users across
platforms, this technique offers increased coverage of joined users
and more complete user profiles (e.g., provides additional
information by associating two or more, in some cases, anonymous
user profiles). In particular, this technique does not rely solely
on sign-in authentication to identify a user (e.g., in some cases,
the exact user is not identified, but an anonymous user profile
across platforms can be created using various techniques described
below, and as further discussed below, in some cases one or more
anonymous user profiles can be joined with a user identified user
profile using sign-in, user provided information, and/or other
techniques).
[0032] In some embodiments, cross platform user joining includes
associating a first user identification (UID) and a second UID with
one or more Internet Protocol addresses (IPs); associating the
first UID and the second UID with one or more monitored behaviors;
and joining the first UID and the second UID based on the one or
more IPs and the one or more monitored behaviors.
[0033] For example, the first UID can be associated with a first
set of monitored behaviors, and the second UID can be associated
with a second set of monitored behaviors. Also, the first UID can
be associated with a first user platform, and the second UID can be
associated with a second user platform. In some instances, the
first UID can be associated with a first mobile device, and the
second UID can be associated with a second mobile device, and at
least one of the first UID and the second UID can correspond to an
anonymous UID.
[0034] In an example implementation, the one or more monitored
behaviors can be tracked using a pixel log. In addition, the one or
more IPs are tracked using a pixel log.
[0035] In one embodiment, cross platform user joining further
includes monitoring user browsing activity on a web site to
associate two or more anonymous user profiles. In particular, in
order to associate two or more anonymous user profiles, various
techniques for cross platform user joining are disclosed herein.
For example, in order to monitor user browsing activity on a web
site, pixel logs can be implemented on the web site. Additionally,
various algorithms for cross platform user joining can be applied
to determine which of a set of anonymous profiles can be joined
(e.g., and with a determined confidence/probability level). As a
result, such cross platform user joining can provide the web site
service provider the ability to provide customized content and/or
targeted web services to the user browsing the web site anonymously
based on the enhanced user profile data. In some implementations, a
cloud service provides suggested/customized web content for
subscribing merchant web sites (e.g., suggested
content/products/categories, etc.) based on a joined user profile
to the subscribing merchant web sites for presentation to the user
associated with the joined user profile.
[0036] As an example, assume that ACME Company is a company that
sells a significant variety of products (e.g., clothing,
electronic, hardware, home related, and other products) online
using an ACME Company web site, which is ACME.net. Also, assume
that in a first session, Alice is anonymously browsing the ACME.net
site from her smart phone web browser and that she is browsing the
ACME.net site (web site) for a potential purchase of a new digital
camera. Next, assume that in a subsequent, second browsing session,
Alice is anonymously browsing the ACME.net site from her tablet.
Using the various cross platform user joining techniques described
herein, Alice's earlier anonymous browsing session (e.g., in which
in this example, Alice was viewing new digital cameras for sale on
the ACME.net web site) can be associated with her subsequent
anonymous browsing session on a different device, in this example
her table, to provide customized web content targeted to Alice
during her second anonymous browsing session (e.g., based on her
associated earlier anonymous browsing session by joining such
anonymous user profiles, that is, even though such sessions
are/were anonymous user browsing sessions). In this example, during
Alice's second anonymous browsing session, the ACME.net web site
can determine one or more digital camera products on their web site
to output, for example, a listing of such one or more digital
camera products to display as output to Alice during her second
anonymous browsing session (e.g., as suggested products, as
recommended products, as featured products, as special offers, as a
home page listing of products, as product advertisements, and/or in
some other form of targeted/customized web content displayed to
Alice during her second anonymous browsing session on ACME.net).
This approach facilitates a more 1:1, user customized web services
experience, as opposed to existing approaches that cannot associate
anonymous user profiles to offer customized web services, and as
opposed to a typical brick and mortar shopping experience, in which
all users see the same product offerings when walking into a brick
and mortar store. Such products would not be displayed using
typical approaches based on prior user product page views or
purchases on the merchant's web site, because such products were
not previously viewed during Alice's second anonymous browsing
session on her tablet device and prior approaches would not have
associated Alice's first anonymous browsing session with her second
anonymous browsing session (e.g., or if just one of those browsing
sessions were anonymous, prior approaches would not have been able
to have joined such user profiles). These and other examples
illustrating applications of cross platform user joining techniques
are further discussed below.
[0037] In one embodiment, cross platform user joining further
includes generating a joined user profile based on the first UID
and the second UID. In one embodiment, cross platform user joining
further includes sending the joined user profile to a web service.
For example, the web service can customize content and/or
personalized content presented by the web service to a user based
on the joined user profile.
[0038] In one embodiment, cross platform user joining further
includes determining a number of UIDs associated with each of the
one or more IPs to categorize each of the one or more IPs (e.g., to
provide an IP-based signal that provides more information based on
the categorization of the IP address, such as whether the IP
address is associated with a home IP address, a small/retail
business IP address, a corporate IP address, and/or some other
categorization(s)). For example, cross platform user joining can be
determined using categorized IPs that are associated with certain
UIDs.
[0039] In one embodiment, cross platform user joining further
includes determining an intersection of relatively uncommon
behaviors to facilitate an association between the first UID and
the second UID. For example, in addition to IP address signal input
analysis for implementing cross platform user joining, various
techniques can be implemented to improve a confidence level in the
association (e.g., joining) of the first and second UIDs by
observing additional commonalities in behavior signals associated
with the paired users (e.g., associated/joined UIDs), as further
described herein with respect to various embodiments. Example
behavior signals can include similarity in content of web pages
visited (e.g., similar product pages on a merchant's e-commerce web
site); similarity in channels the user entered a site from, such as
identified via a referral URL (e.g., email, organic search, paid
search, direct, etc.); similarity in queries on an internal site
search; a time window in which similar user activities on a site
were monitored; a navigational pattern (e.g., a pattern of browsing
or searching, such as a user visiting a merchant site and searching
for shoes using the site's internal search option as opposed to
navigating to a particular product category or a sales category,
etc.); and/or various other behavior signals (e.g., monitored using
a pixel log or other techniques for monitoring user activities on a
web site), as further described herein with respect to various
embodiments.
[0040] In some implementations, pixel logs can be used to gather
user activity data that can be associated with anonymous user
profiles that can be joined using various techniques for cross
platform user joining. For example, these pixel logs can be
analyzed to determine incoming traffic (e.g., clicks, such as a
clickstream of user activity on a site) from web sites (e.g.,
e-commerce merchant web sites, e-mail web sites, social
sites/channels, news sites, and/or various other types of web
services) and what items in particular were selected (e.g., clicked
on) while the user browsed such web sites. Also, such pixels can
use cookies to at least identify such tracked user activity with an
anonymous user identification (UID) stored persistently on the
user's device. Pixel logs or web logs can be used to monitor
various types of user behavior (e.g., to provide behavior signals
associated with a UID), such as one or more of the following: web
pages visited; channels from which a user entered a site, which can
be identified via a referral URL/URI (e.g., email, organic search,
paid search, direct, etc.); queries entered by a user on an
internal site search; a time on which a user browses a site or a
particular web page or other content on a site; an IP address
associated with a user's device from which the user is accessing a
site; and a navigational pattern (e.g., pattern of browsing or
searching performed by a user on a site). As would be apparent to
those of ordinary skill in the art, various pixel log
implementations can be provided and/or similar or other approaches
can be implemented for monitoring user activities on web sites.
[0041] In one embodiment, cross platform user joining further
includes applying various other behavior signals in an analysis of
which UIDs can be joined based on a probability determination that
such UIDs can be inferred to be associated with the same user
across two or more different devices. For instance, additional
types of signal input can also be used to make the cross platform
user joining determinations, including, for example, sign-in by
users to one or more sites, e-mail, a save for later e-mailed link
to a site (e.g., in which a user can email a link to web content to
their own email account to view at a later time, possibly using a
different user platform/device), referral URL, user input, and/or
various other information, as further described herein with respect
to various embodiments.
[0042] As further described below, these and various other features
and techniques are disclosed for providing cross platform user
joining.
[0043] Overview of an Example Cross Platform User Joining
Service
[0044] FIG. 1 is a block diagram illustrating an overview of an
architecture of a system for providing cross platform user joining
in accordance with some embodiments.
[0045] As shown, various user devices, such as a laptop computer
102, a desktop computer 104, a smart phone 106, and a tablet 108
(e.g., and/or various other types of computing devices that can
access the Internet to browse, for example, various types of web
sites) are in communication with Internet 140 to access various web
sites provided by different web servers 130A, 130B, . . . , 130N
(e.g., which can each serve one or more web sites).
[0046] For example, the web servers can each provide a web site,
such as a merchant's web site that can offer various products
and/or services for sale from the merchant and/or various other
types of web sites. Each of the web sites can also include dynamic
content that can be used to customize/personalize various content
of the respective web site for a user accessing/browsing the web
site (e.g., based on a user identification or a user profile). For
example, users can generally browse the web site, in some cases
from different devices, to view and/or access different content
available on the web site, in some cases anonymously browsing the
web site.
[0047] The web servers can also subscribe to a cross platform user
joining service 120 (e.g., which can be provided as a cloud-based
cross platform user joining service for web sites). In some
implementations, the cross platform user joining service provides
various techniques for identifying users across devices, even if
such users are accessing the web sites anonymously and using
multiple different/distinct devices to access the web sites, as
disclosed herein.
[0048] In particular, a web server can communicate with the cross
platform user joining service to receive information regarding user
activities performed on the web site to the cross platform user
joining service (e.g., as a user activity feed, and/or in some
other format, using an API or other mechanism for communications
over the Internet between the web server and the cross platform
user joining service, such as using secure data communications).
The cross platform user joining service can communicate, for
example, joined UIDs as a data feed to the web site. As a result,
this joined UIDs data feed can be applied by the web site to
generate customized/personalized web content for presentation to a
user associated with a joined set of UIDs.
[0049] For example, assume that Alice was anonymously browsing for
digital cameras on an electronics consumer review web site while
she was using her smart phone. Assume that Alice had previously
visited (anonymously) that same electronics consumer review web
site when she was on her work computer. The UIDs for Alice on those
two different user platforms can be joined using various cross
platform user joining techniques disclosed herein, and the cross
platform user joining service communicates the determination of
these joined UIDs to the electronics consumer review web site. As a
result, when Alice is visiting that same electronics consumer
review web site the following day on her work computer, the
electronics consumer review web site can utilize that joined UIDs
determination received from the cross platform user joining service
to provide customized content to Alice, such as suggesting a new
digital camera review article or by presenting targeted
advertisements to Alice.
[0050] In some implementations, the cross platform user joining
service can be implemented on a computer server or appliance (e.g.,
or using a set of computer servers and/or appliances) or as a cloud
service, such as using Amazon Web Services or other cloud service
providers. For example, cross platform user joining service 120 can
be implemented on one or more computer server or appliance devices
or can be implemented as a cloud service, such as using Amazon Web
Services or another cloud service provider for cloud-based
computing and storage services.
[0051] FIG. 2 is a functional block diagram illustrating a cross
platform user joining engine in accordance with some embodiments.
As shown, a cross platform user joining engine 202 includes a CPU
204, a RAM 206, and a data storage 208. For example, cross platform
user joining engine 202 can be implemented on the cross platform
user joining service 120 as shown in FIG. 1.
[0052] As also shown in FIG. 2, cross platform user joining engine
202 includes an IP processing component 210 (e.g., to process, and
in some cases, categorize IPs that are identified as associated
with one or more UIDs as further described herein), a behavior
signal processing component 212 (e.g., behavior signal data can be
provided for subscriber/monitored web sites by using click
logs/pixel tags data for monitoring user activities during a
session to provide a user's browsing history, including any
referral URLs associated with a product(s) on a web site, user
profile data to provide information about a user including a user's
explicit preferences, and/or other behavior signal data as
described herein), other signal processing component 214 (e.g., for
processing additional signals, such as save for later email
signals, user input signals, user login signals, and/or various
other signals as further discussed below), and a UID joining
processing component 220 (e.g., for determining which UIDs to join
for providing cross platform user joining based on input received
from IP processing, behavior signal processing, and/or other signal
processing components). The processing performed by each of these
components is further described below. In some implementations, one
or more of these functions can be performed by another device or
function, such as the behavior signal processing and/or the other
signal processing can be performed using another device or
function, which can provide respective input to the cross platform
user joining engine. As another example implementation, various
components can be implemented as a common component, such as a
behavior processing component can be implemented to receive and
process both behavior signals and other signals. In some
implementations, the cross platform user joining engine is
implemented using the Apache Solr open source framework as further
described below with respect to FIG. 3.
[0053] For example, cross platform user joining engine 202 can
implement the cross platform user joining service 120 described
above with respect to FIG. 1. For example, a cross platform user
joining determination for a set of UIDs can be processed using CPU
204 and RAM 206 to automatically generate a joined set of UID
results that can be stored in storage 208 and communicated to a web
site that subscribes to cross platform user joining service 120 for
presenting to a user via the user's web browser executed on the
user's device.
[0054] Overview of Cross Platform User Joining Techniques
[0055] FIG. 3 is a functional diagram illustrating an architecture
for IP-based, behavior signal, and other signal processing for
providing cross platform user joining in accordance with some
embodiments. For example, this architecture for IP processing,
behavior processing, and other signal processing shown as 302 in
FIG. 3 can be used to implement processing components shown as 210,
212, and 214 of the cross platform user joining engine illustrated
in FIG. 2.
[0056] Because user activity can happen across multiple devices as
users can access web sites from one or more devices (e.g., from
their home computer, from their work computer, from their mobile
phone, etc.), this information that is otherwise spread across
different user devices can be collected and aggregated in a
centralized or common data store for analysis and processing. For
example, once a user identification (UID) join is identified for a
set of two or more UIDs, the data for such UIDs can be merged
resulting in a reduced set of unique UIDs. In addition, these users
can be further clustered based on session/behavior analysis, which
provides behavior signal input (e.g., monitored user activities,
such as browsing behavior, navigation patterns, etc.) resulting in
user profiles that can be used for example as shown in FIG. 3 as
further described below.
[0057] Referring to FIG. 3, pixel logs data input 304 is received
at UID correlation based on IP (e.g., IP address information) 306.
For example, UID correlation based on IP 306 can process such
received IP address information to correlate UIDs with such IPs. In
some cases, other signal data, such as email related data, user
provided data, save for later data (e.g., save for later in which
an email link to a web page is sent by a user to access that web
page later possibly from another device, such as when a user emails
a unique link to an article when accessing a web site from their
mobile phone but would rather view later on their tablet or
computer), and/or other input can also be received via pixel logs
304, which can also be used for performing UID correlation with
IPs.
[0058] As also shown, pixel logs data input 308 is received at
session analysis 310 (e.g., for behavior analysis). For example,
session analysis 310 can extract various session/behavior related
data parameters (e.g., browsing activity, navigation patterns,
and/or various other monitored user activities, such as described
herein), associating the extracted various session/behavior related
data parameters with corresponding UIDs.
[0059] As shown in FIG. 3, one use case of merged profiles of users
across devices are then provided as input into a search platform,
such as an Apache Solr open source search platform (e.g., or
another open source or commercially available search platform can
be used), to serve personalized results to each profile in
accordance with some embodiments. Specifically, at 312, user data
received from UID correlation based on IP, email 306 and session
analysis 310 can be merged. At 314, such users can be clustered
into user profiles (e.g., various clustering techniques are further
described below). At 316, the Apache Solr platform can also be used
to provide user preferences based on the clustered user profiles
(e.g., to associate common user session/behavior data parameters
with clustered user profiles).
[0060] In one embodiment, UIDs can be joined based on one or more
of the following techniques: Internet Protocol (IP) address;
behavior related user activities; and/or other signals. For
example, other signals for providing cross platform joining can
include one or more of the following: sign-in information (e.g.,
using HTTP, HTTPS, or other network and/or authentication
protocols); user provided data (e.g., contact information); email;
save for later (e.g., a special case discussed further below); and
machine learning algorithms (e.g., which can enhance and/or provide
new approaches or signals for providing cross platform user/UID
joining). Each of these techniques for performing UID joining are
discussed in more detail below.
[0061] Internet Protocol (IP) Address-Based Joining
[0062] FIG. 4 is a graph diagram illustrating an association of IP
addresses and UIDs for providing cross platform user joining in
accordance with some embodiments. For example, a bipartite graph
can be used to illustrate a relationship between one or more IP
addresses (IPs) with one or more user identifiers (UIDs).
[0063] Consider a scenario in which a user uses multiple different
devices over his/her home Wi-Fi network (e.g., a laptop, a tablet,
a mobile phone, and/or other devices). All of these devices will
typically share the same external IP address (e.g., accessing the
Internet via that same home Wi-Fi network, such that will have the
same IP address for each session accessing, for example, a web
site, regardless of which device the user is using to access a
given web site during a particular browsing session). However, the
user's cookie (e.g., set by the web site, which can be persistently
stored on a user's device) on all these devices will be different.
The unique cookie stored on each device corresponds to a user
identifier (UID). At the same time, as a user moves from one place
to another (e.g., home to office and/or to another location),
his/her IP address will generally change; however, the cookie
(e.g., which corresponds to a UID) on the machine will remain the
same.
[0064] This type of example scenario can be illustrated using a
bipartite graph of the form as described below, in which the UID as
used in this example is synonymous to a cookie in the pixel logs.
In this example, assume that IP1 corresponds to the IP address at
this user's home, IP2 corresponds to an IP address at this user's
office, and IP3 corresponds to an IP address at a local coffee shop
that is visited by this user that has a local Wi-Fi that can be
used by customers of the coffee shop (e.g., a free Wi-Fi access
point).
[0065] Also assume that UID1 has been associated with IP1, IP2, and
IP3; UID2 has been associated with IP1 and IP2; UID3 has been
associated with IP3; and UID4 has been associated with IP2. In this
example, a UID (e.g., associated with a user's device) can be
associated with an IP address if the device associated with that
UID is monitored accessing a site associated with that particular
UID from that given IP address of the user's session. These IP to
UID relationships in this example are illustrated in the bipartite
graph shown in FIG. 4.
[0066] The following relations can be inferred across UIDs from the
bipartite graph of IPs versus UIDs. In this example, UID1 is
inferred to be related to UID2, UID3, and UID4; UID2 is inferred to
be related to UID1 and UID4; UID3 is inferred to be related to
UID1; and UID4 is inferred to be related to UID1 and UID2.
[0067] Analysis of the directed graph representation as shown in
FIG. 4 will lead to identifying an anonymous user profile across
all devices that share the same IP address and then extending this
to multiple IP addresses based on overlapping cookies.
[0068] In an example implementation, the IP address-based joining
of the users can be placed into one of three buckets for an
approximate calculation (e.g., to apply a confidence level based on
number of users associated with a given IP address, in which a more
privately shared IP address can provide a higher
confidence/probability than a more publicly shared IP address for
performing cross platform user joining) as described below.
[0069] Household Private IP: if the IP address is shared by, for
example, 1-4 devices, the cross platform user joining service can
reliably infer that it is either the same user or at least the same
household.
[0070] Small--Medium Group IP: if the IP address is shared by 5-20
people, most likely these people have some common interests,
demographics, and/or other aspects or attributes that can be
reasonably inferred by the cross platform user joining service. For
example, such persons may be part of the same Small/Medium Business
(SMB) or may be frequent visitors of the same coffee shop or
another location.
[0071] Public IP/Corporate IP: if an IP address is shared by more
than, for example, 21-100+ users, it generally provides less
information than can be reliably inferred by the cross platform
user joining service. In this case, either the observed IP address
belongs to an Internet Service Provider (ISP) or some large entity
(e.g., a large corporation, a governmental organization, or another
large entity). In such cases, the IP address can be ignored by the
cross platform user joining service.
[0072] As will be apparent to those of ordinary skill in the art,
these ranges of numbers of devices can vary and are generally a
continuum that can be used for categorization that can be
associated with different inferences with different confidence
levels as further described below.
[0073] In some implementations, the cross platform user joining
service uses UID and IP data collected across multiple different
sites, such as e-commerce merchant web sites, news web sites,
social networking web sites, email web sites, and/or other types of
sites.
[0074] In some implementations, merchant/other web site provider
data sets and external data sets can be used to supplement this
categorization (e.g., to provide more information regarding IP
addresses for enhanced IP address categorizations). For example,
web log data (e.g., web log data can include pixel log data) that
is collected and analyzed across a plurality of merchants/other web
site providers can be used to implement enhanced IP address
categorizations. In some cases, data from service providers
regarding IP addresses can be used to supplement these techniques
to make more refined inferences (e.g., ISPs and/or other third
party service providers that provide various information regarding
allocated IP address information). For example, if an Internet
Service Provider (ISP) provides IP address data that indicates that
IP2 is a coffee shop or other small retail enterprise, then that
additional information can be used by the cross platform user
joining service to perform a more reliable inference (e.g., on how
likely it is, how probable it is) on whether UIDs associated with
that IP2 are (likely) associated with the same user.
[0075] Cross Platform User Joining System Architecture
[0076] FIGS. 5A and 5B are functional block diagrams illustrating
overviews of an offline architecture and an online architecture of
a system for providing cross platform user joining in accordance
with some embodiments.
[0077] Building on this example, in some embodiments, a solution
includes the following operations that can be automatically
performed by a service and/or a system for cross platform user
joining (e.g., a cross platform user joining service, such as
described above with respect to FIG. 1, and/or a cross platform
user joining engine, such as described above with respect to FIG.
2), which can perform a process such as shown in FIGS. 5A and
5B.
[0078] In some implementations, additional information, such as
behavior signals, can be applied to increase confidence in cross
platform user joining based on IP addresses. For example, user
behavior can also be monitored to further refine the
categorization/inferences of UIDs based on IP addresses, such as by
associating common events across UIDs (e.g., monitored behavior,
such as various user activity, including, for example, browsing for
men's running shoes, or browsing for women's running shoes,
browsing sale sections of e-commerce merchant sites, viewing a news
web site's home page versus viewing a news web site's particular
international news section, versus tracking a particular author,
versus browsing a particular article, etc.). As further described
below, these techniques attempt to identify events that are
relatively unique events that are common between a set of UIDs.
[0079] Referring now to the offline method as shown in FIG. 5A, as
shown at step 1 of FIG. 5A, a user visits a service provider on
multiple platforms. For example, a user executes a browser 502 on a
user platform (e.g., a user's local client device) to access a web
site 506 via the Internet 504. In this example, the web site
service provider creates a persistent first-party cookie to assign
a unique identifier (UID) to the user's device that the user is
using to access web site 506. This cookie and UID allows the server
to continue to identify the device in later web sessions (e.g., the
cookie is persistent).
[0080] As shown at step 2 of FIG. 5A, a web log collects critical
data (e.g., using pixel log data) on the information each unique
user profile makes and receives (e.g., using a platform for cross
platform user joining that can receive pixel log data from browser
502). As an example, for an e-commerce site, such information can
include the following: IP address, what parts of a web site a user
clicks on, when a user chooses to include an item in the shopping
cart, purchase an item, and other shopping actions, registration
events, viewing of products, payment actions, and/or other
activities.
[0081] As shown in Step 3 of FIG. 5A, user data collected from the
web log for each device is stored in a data store (e.g., a storage
device), shown as a data storage 508. In particular, each device is
associated with its unique cookie/unique identifier (UID). The user
data associated with each UID can be queued for analysis at queue
510, classified using an Apache Hadoop framework to provide a
classification engine 512 (e.g., or other open source frameworks or
other commercially available solutions for providing large data set
analysis can be used for the classification engine), and the
multiple signals can be analyzed to determine whether a match is
determined, such as based on a sign-in match 514, an email match
516, and/or an IP match 518, as further discussed below with
respect to step 4.
[0082] As shown at step 4 of FIG. 5A, a list of IPs that the
device/UID has been observed accessing the web service is
determined using various engines for cross platform user joining,
including a sign-in match engine 514, an email match engine 516,
and/or an IP match engine 518 (e.g., the cross platform user
joining engine as described above with respect to FIG. 2).
[0083] For example, for each IP address, the following operations
can be performed as described below. A search operation can be
performed across web logs to find other UIDs that have connected to
the web site using that IP address. A determination of a number of
devices that have connected using that IP address over a particular
time period (e.g., in the past week or another time period) can be
performed. Next, a probability can be calculated and assigned that
the pairs of users found on that IP are the same user. In this
example, high probability pairs of the type A:B, A:C can be used to
form clusters of users that are highly similar to A:B:C, which can
then have a probability that the user is again the same. In
particular, a methodology and various factors for determining
probability are further described below. At this stage of
processing, the processing can proceed to a next IP address. Email
and other signals for facilitating cross platform user joining are
also further described below.
[0084] Referring now to the online method as shown in FIG. 5B, for
new users, the cross platform user joining engine can associate a
new UID with a set of related users, based on already existing
attributes of other users stored in a user attribute mapping
database 554 and the known attributes of the new user received from
the visited site 552. As shown, when a new user 550 visits site
552, new user attributes can be sent to user attribute mapping 554.
At step 5 of FIG. 5B, based on the new user attributes received
from the visited site and based on already existing attributes of
other users stored in a user attribute mapping database 554, a Map
Reduce processing operation is performed at step 5 as shown to
determine a list of related users provided in a related users data
set/store 556.
[0085] Thus, using these techniques, the cross platform user
joining service can generate a list of devices/UIDs that are likely
to belong to the same user profile and assign a confidence level to
that match.
[0086] IP-Based UID Joining
[0087] FIG. 6 is a functional diagram illustrating an architecture
for IP-based UID processing for providing cross platform user
joining in accordance with some embodiments. For example, this
architecture for IP-based UID processing shown as 602 in FIG. 6 can
be used to implement UIDs joining processing component shown as 220
of the cross platform user joining engine illustrated in FIG.
2.
[0088] As shown in FIG. 6, IP-based UID joining can be provided to
serve personalized results to each user profile (e.g., joined UIDs)
in accordance with some embodiments. As discussed below, the
IP-based UID joining process can combine IP data with other
behavior analysis signal data (e.g., user clickstream-based signals
and/or other behavior signals) to merge UIDs to create pairs of
users along with confidence measurements, as further described
below.
[0089] Referring to FIG. 6, pixel logs data input 604 is received
at IP, UID mapping component 606. For example, the IP, UID mapping
can be implemented using a Map Reduce (MR) (e.g., also commonly
referred to as MapReduce) processing operation(s). The result of
this IP, UID mapping is a generation of a bipartite graph 608
(e.g., providing an IP versus UID bipartite graph, such as shown in
FIG. 4 as discussed above). Bipartite graph 608 is provided to a
UID similarities component 610 for determining a mapping of
(likely) related/associated UIDs at 612. The UID to UID
relationship mapping result 612 is provided to merge UID, behavior
data component 620.
[0090] As also shown, pixel logs data input 614 is received at
UID/behavior analysis component 616. For example, UID/behavior
analysis component 616 can determine an association of various
behaviors (e.g., products, categories, search terms, etc.) to each
UID, which can be implemented using a Map Reduce (MR) processing
operation(s). The result of this UID to behavior(s) relationships
result 618 is also provided to merge UID, behavior data component
620.
[0091] Merge UID, behavior data component 620 receives input 612
and 618 and merges the received UID and behavior data to generate
merged UID, behavior data results 622. The merged UID, behavior
data results 622 are provided as input to a cluster UIDs component
624 (e.g., which can also be implemented using a Map Reduce
operation(s)). Also, at 624, one or more machine learning
algorithms can be implemented to facilitate the clustering
operation(s). Various machine learning algorithms that can be used
to implement the clustering operation(s) are further described
below.
[0092] Calculating Probability/Confidence with Behavior Data
[0093] In addition to using the pure IP address signal, the cross
platform user joining engine can enhance the confidence in the
joining of UIDs (e.g., pairing of users) further by observing
additional commonalities in the behaviors (e.g., clickstream) of
the paired users/joined UIDs.
[0094] For example, this probability can be computed as shown
below.
[0095] Given that two devices exist each with the following UID to
event (e.g., behavior event) relationships, the probability that
two distinct UIDs are associated with the same user can be
expressed as follows.
[0096] UID.sub.1 is associated with events(E.sub.n1 . . .
E.sub.n2)
[0097] UID.sub.2 is associated with events(E.sub.n2 . . .
E.sub.n4)
[0098] E.sub.1,2 is the set of common events between UID.sub.1 and
UID.sub.2
P(UID.sub.a,UID.sub.b are same user)=P(2 random UIDs have E.sub.1,2
in common|(n2-n1)events for one UID and (n4-n3)events for the other
UID)
[0099] For example, probabilities can be calculated by the same
cross platform user joining engine periodically sampling historical
behavior signal data.
[0100] In an implementation using Monte Carlo simulations, the
cross platform user joining engine can then compute the likelihood
of the users to be the same. For example, user history can then be
determined using the weighted average of the probabilities
associated with each UID and their respective user history as shown
below.
Events for U I D 1 = n = 1 n P ( U I D 1 , U I D n are same user )
* Events U I D n ##EQU00001##
[0101] This weighted average set of events can then be used for
further upstream algorithms that receive UID.sub.1 history as an
input (e.g., a personalization algorithm, such as for providing
personalized or customized content on a site to a given user).
[0102] For example, if the devices/UIDs identified as potentially
belonging to the same user both show visits to the same page on a
site (e.g., an event in common), then the cross platform user
joining engine can automatically join the users together with
higher confidence. Further, if the probability of two users picked
at random having visited that page is relatively low, then the
cross platform user joining engine can automatically determine with
increased confidence that the user across the devices is the same
user. That is, this probability determination facilitates
determining relatively unique events to assist in cross platform
user joining based on using behavior data (e.g., relatively unique
common set of events, such as when UID.sub.1 and UID.sub.2 are
monitored to both have visited a common set of international news
stories related to a particular country and news stories by a
particular author on a news site, as opposed to UID.sub.3 and
UID.sub.4 both visiting a home page of a popular news site).
[0103] Similarly, the cross platform user joining engine can use
one or more of the other characteristics to determine the
probability that two distinct UIDs belong to devices of the same
user. For example, these characteristics can include one or more of
the following: similarity in content of web pages visited (e.g.,
similar product pages); similarity in channels a user entered site
from, such as identified via a referral URL (e.g., email, organic
search, paid search, direct, etc.); similarity in queries on
internal site search; a number of common IP addresses; a time
window in which these similar actions were seen; a geo-location of
the set of IP addresses associated with the UIDs (e.g., ISPs and
other services provide a mapping of IPs to geo-locations); and a
navigational pattern (e.g., pattern of browsing or searching, such
as visiting a merchant's web site and searching for shoes as
opposed to navigating to a particular product category versus an on
sale category, etc.).
[0104] In some embodiments, additional information can be used
based on user provided data, such as login, forms input, and/or
other user provided data, as is now further described below,
including sign-in based UID joining, user information-based UID
joining, email-based user joining, and save for later-based UID
joining, each discussed in more detail below.
[0105] Sign-In Based UID Joining
[0106] If a user signs into multiple devices, the cross platform
user joining engine can automatically join the UIDs (e.g., cookies)
across these devices based on the user's login information. If the
sign-in happens to be behind a secure login (e.g., a login using
HTTPS or another secure authentication protocol), web site service
provider data can assist the cross platform user joining engine in
joining such users. For example, merchant provided data can be
communicated to the cross platform user joining engine, in which
that merchant provided data includes an identification of the
user's identity based on the user logging into the web site (e.g.,
which can be securely provided to the cross platform user joining
engine using above-described communication mechanisms that allow
for secure communications between the merchant's web site server
and the cross platform user joining service).
[0107] In some cases, sign-in for a site may be with or without
password authentication. Other forms of sign-in can include
providing an email address, a social networking site login (e.g.,
Facebook.RTM., LinkedIn.RTM., Google.RTM., or other social
networking sites), a federated login service (e.g., OpenID or other
federated login services), and/or other types of sign-in
operations, which can similarly be used to implement this sign-in
based UID joining.
[0108] User Provided Information-Based UID Joining
[0109] Similar to sign-in based UID joining techniques, the cross
platform user joining engine can accept user entered information on
a web site/web service to join users. For example, credit card,
addresses, phone numbers, and other contact information entered by
the user can be used to link a UID on a particular device to other
UIDs (e.g., such information can be monitored using pixel logs
while a user is interacting with the web site/web service, such as
from entry data, etc.).
[0110] Email-Based UID Joining
[0111] Similar to IP address-based UID joining techniques, the
cross platform user joining engine can automatically identify users
across platforms through their interaction with email. For example,
anytime an email is opened on multiple devices, the cross platform
user joining engine can join the user across these devices/UIDs if
the email link contains a unique identifier or code specific to
that user. In some cases, certain service providers can provide
this information as part of a referral URL that can be monitored
using a pixel log.
[0112] Special Case--Save for Later-Based UID Joining
[0113] Save for later-based UID joining is an example special case.
This case involves promoting emails that allow users to, for
example, email themselves a link to a product to later purchase
that product on desktop and/or to later view that web content such
as an article at a later time possibly on a different device.
[0114] For example, consider the following process flow for this
use case scenario. A user browses a web site on the user's first
device, such as the user's mobile phone. The user would like to
bookmark certain items to view later on another device, such as
their laptop or tablet. In this example, the user can select those
items and send those to their email address to view later on
another device. The email can include a unique link that when
opened on another device will allow the user to access these items.
Because the link is unique, if the user accesses it on another
device, that unique link can also be used by the cross platform
user joining engine as a signal (e.g., monitored using a pixel log
on each device) to identify other devices the user may use.
[0115] As a result, such a feature can allow a user to save items
for later and can be used as a signal by the cross platform user
joining engine in joining users across devices--UID joining. As
another example, a user of a news web site can share a news article
that was viewed by the user first on their mobile phone by emailing
a link to that article to themselves, and then the user can choose
to save for later that news article so that the user can view this
article on another device, such as their tablet at a later date by
clicking the link in the email. These techniques can then be used
to associate the UIDs of that user's smart phone and that user's
tablet.
[0116] Machine Learning Techniques to Expand Coverage of UID
Joining
[0117] Using the various techniques described above, users across
devices (e.g., UIDs) can be automatically merged at different
confidence levels. For example, using the high-confidence user
joins, patterns/features can be mined to learn what intrinsic
features are exclusive to high-confidence user joins.
[0118] In some embodiments, machine learning classification
algorithms can be implemented to classify whether a pair of
different UIDs belong to the same user, and at what confidence
level. For example, the training data for such a machine
algorithm(s) is based on high confidence matches that can be
provided either from the IP join or through other joining
techniques described herein (e.g., sign-in based joining).
[0119] Some of the features in such a machine algorithm(s) can
include, for example, one or more of the following: a number of
common IP addresses the two UIDs have browsed from; a number of
common private IP addresses; a similarity between behavior signals
(e.g., clickstreams) on the different platforms using
product/category page views; a similarity between behavior signals
(e.g., using clickstreams) using search queries weighted by the
frequency of the common search queries; a probability of common
search queries or product/category page views in two randomly
chosen behavior signals (e.g., using clickstreams); a similarity
between behavior signals (e.g., using clickstreams) using
similarity of product types viewed; a time between the visits from
the different platforms; a location obtained from IP-based
geo-location data; and different signatures of a particular visit
(e.g., median time spent on product/category/search pages, and/or a
shorthand representation of the state transitions represented in
the clickstream).
[0120] For example, based on one or more of these features, a
machine learning algorithm can seek to discover patterns in the
training data set and apply those to new sets of users. Thus, these
machine learning techniques can lead to expanded coverage beyond
just the joining techniques specifically described above.
[0121] As an example implementation, a machine learning based
implementation can learn related users as described below. For
example, assume that there are N users stored in the database, and
the objective is to determine groups of related users (e.g.,
related UIDs). In this context, related users can be defined to be
the same person accessing the site as different users. The
difference is manifested, because of the use of cookies for
tracking purposes (e.g., the same person can be allocated different
cookies or UIDs when, for example, accessing the site using
different devices, such as their desktop computer and their mobile
device). Hence, a person using a desktop computer and a mobile
device will generally be classified as two different users (e.g.,
allocated two distinct UIDs).
[0122] In this example, assume there are two users, A and B, whose
attributes are represented as attributes(A) and attributes(B),
respectively. The probability that A and B represent the same user
can be computed as follows:
P ( A = B attributes ( A ) , attributes ( B ) ) = P ( A = B and
attributes ( A ) and attributes ( B ) ) P ( attributes ( A ) and
attributes ( B ) ) ##EQU00002##
[0123] Given a training data set of related users, the above
probability can be computed using, in some implementations, using a
count. In this example, the training data can be in the form of
pairs of users, A and B, and their attributes and a target label
denoting if they are related users or not.
[0124] As would now be apparent to one of ordinary skill in the
art, the larger the training data set, the more accurate would be
the results for applying such machine learning techniques to
compute the above-described probabilities. In some implementations,
in order to mitigate potential inaccuracies based on the size of
the training data set being used, various smoothing techniques can
be implemented, such as the Jelinek-Mercer smoothing, add-one
smoothing, Katz back-off smoothing, and/or various other smoothing
algorithms can be implemented. In particular, the use of such
smoothing techniques facilitates an accurate computation of these
probabilities even for smaller training data sets.
[0125] In some implementations, given the training data, the
above-described probability computational problem can be posed as a
standard classification problem. As such, in some implementations,
various classification algorithms can be used to provide a machine
learning based implementation that can learn related users, such as
random forests, Support Vector Machines (SVM), and/or various other
classification algorithms as would now be apparent to one of
ordinary skill in the art.
[0126] Further, the above-described cross platform user joining
system has a positive feedback loop in which the system learns
continuously from the user pairs that are merged using the various
techniques described herein.
[0127] Example Front-End Application of Cross Platform User Joining
Engine
[0128] FIG. 7 is a screen diagram illustrating a graphical user
interface (GUI) of a web interface for providing cross platform
user joining in accordance with some embodiments. In particular,
FIG. 7 illustrates a screen image 700 of a front-end display
showing various product items output on an example merchant's web
site. At 702, items that the user viewed on this device/user
platform (not joined) are shown. At 704, items viewed on other
unique devices/user platforms joined with high probability are
shown. In this example, a high probability can be inferred based on
UIDs that have an IP match with this device/UID and also have
similar behavior(s) across such joined UIDs/devices (e.g., and/or
other cross platform user joining techniques can be implemented to
determine a high probability, as described herein, such as a
sign-in match, user provided information, and/or other
techniques).
[0129] Further, this information accumulated about the user and
joined user data can be used in various forms. For example,
recommendations and/or other customized/personalized content based
on a user history that is provided via joined user profiles can be
presented to the user.
[0130] Various other formats and/or icons can be provided to
provide a GUI for implementing cross platform user joining as will
now be apparent to one of ordinary skill in the art.
[0131] Example Processes for Cross Platform User Joining
[0132] FIG. 8 is a flow diagram illustrating a process for
providing cross platform user joining in accordance with some
embodiments. In some embodiments, the process for providing cross
platform user joining is performed using the cross platform user
joining system/service, such as described above with respect to
FIGS. 1-7.
[0133] Referring to FIG. 8, at 802, associating a first user
identification (UID) and a second UID with one or more Internet
Protocol addresses (IPs) is performed. For example, the first UID
can be associated with a first user platform (e.g., a user's
laptop), and the second UID can be associated with a second user
platform (e.g., a user's smart phone). In some cases, at least one
of the first UID and the second UID can correspond to an anonymous
UID (e.g., the UID has not been associated with an authorized user
sign-in).
[0134] At 804, associating the first UID and the second UID with
one or more monitored behaviors is performed. For example, a pixel
log data stream can be used to monitor user behavior, which is
provided to a cross user platform service for associating with
UIDs.
[0135] At 806, joining the first UID and the second UID based on
the one or more IPs and the one or more monitored behaviors is
performed. In some implementations, a number of UIDs associated
with each of the one or more IPs is determined to categorize each
of the one or more IPs. In some cases, external data sources can be
used to classify or categorize IPs, such as described above.
[0136] For example, if a distinct set of UIDs are determined to be
associated with two different IP addresses (e.g., both of which
have been categorized as being associated with private residences),
and if the distinct set of UIDs have also been associated with
similar behavior signals, then the distinct set of UIDs can be
joined, such as further described below with respect to FIG. 9.
[0137] FIG. 9 is another flow diagram illustrating a process for
providing cross platform user joining in accordance with some
embodiments. In some embodiments, the process for providing cross
platform user joining is performed using the cross platform user
joining system/service, such as described above with respect to
FIGS. 1-7.
[0138] Referring to FIG. 9, at 902, associating each of a plurality
of distinct user identifications (UIDs) with one or more IP
addresses is performed. For example, a pixel log data stream can be
used to monitor IPs, which is provided to a cross user platform
service for associating with UIDs.
[0139] At 904, associating each of the plurality of distinct UIDs
with one or more monitored behaviors is performed. In some
implementations, a variety of behavior and other signals can be
collected and associated with UIDs, as discussed above with respect
to various embodiments.
[0140] At 906, joining a subset of the plurality of distinct UIDs
based on the one or more IPs and the one or more monitored
behaviors is performed. For example, if a subset of the plurality
of distinct UIDs is determined to be associated with a particular
set of different IP addresses (e.g., which have been categorized as
being associated with private residences), and if the subset of the
plurality of distinct UIDs has also been associated with common
behavior signals that are determined to be (relatively) unique to
this subset of the plurality of distinct UIDs, then the subset of
the plurality of distinct UIDs can be joined (e.g., with a
determined confidence level).
[0141] At 908, generating a joined user profile based on the joined
subset of the plurality of distinct UIDs is performed. For example,
user behaviors monitored with each of the joined UIDs can be
associated with the joined user profile.
[0142] At 910, sending the joined user profile to a web service, in
which the web service can customize content presented by the web
service to a user based on the joined user profile is performed.
For example, using a user profile based on a plurality of UIDs that
have been joined based on such cross platform user joining
techniques, content on the web site can be customized and/or
personalized for presentation to the user based on the joined user
profile. In some cases, a recommended category of content can be
displayed automatically or in response to a user request on a web
site.
[0143] In some implementations, a cloud service provides
suggested/customized web content for subscribing merchant web sites
(e.g., suggested content/products/categories, etc.) based on a
joined user profile to the subscribing (merchant) web sites for
presentation to the user associated with the joined user
profile.
[0144] Although the foregoing embodiments have been described in
some detail for purposes of clarity of understanding, the invention
is not limited to the details provided. There are many alternative
ways of implementing the invention. The disclosed embodiments are
illustrative and not restrictive.
* * * * *