U.S. patent application number 13/155782 was filed with the patent office on 2011-12-08 for recommending link placement opportunities.
This patent application is currently assigned to OPTIFY, INC.. Invention is credited to Erez Barak, Paul Robert Brown, Scott Fasser, Thomas R. Unger.
Application Number | 20110302145 13/155782 |
Document ID | / |
Family ID | 45065276 |
Filed Date | 2011-12-08 |
United States Patent
Application |
20110302145 |
Kind Code |
A1 |
Brown; Paul Robert ; et
al. |
December 8, 2011 |
RECOMMENDING LINK PLACEMENT OPPORTUNITIES
Abstract
Techniques for recommending Web pages or other content sources
as candidates for link placement are described. Some embodiments
provide a marketing activity support system ("MASS") configured to
recommend candidate Web pages for link placement. Recommending
candidate Web pages may include determining multiple Web pages that
include or reference one or more keywords that describe some
subject matter domain. Recommending candidate Web pages may then
further include ranking or ordering at least some of the multiple
Web pages based on how many times each of the at least some Web
pages references another one of the multiple Web pages. The ordered
Web pages may then be presented as recommended candidate sites for
link placement.
Inventors: |
Brown; Paul Robert;
(Seattle, WA) ; Fasser; Scott; (Seattle, WA)
; Unger; Thomas R.; (Seattle, WA) ; Barak;
Erez; (Kirkland, WA) |
Assignee: |
OPTIFY, INC.
Seattle
WA
|
Family ID: |
45065276 |
Appl. No.: |
13/155782 |
Filed: |
June 8, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61352701 |
Jun 8, 2010 |
|
|
|
Current U.S.
Class: |
707/706 ;
707/769; 707/E17.108 |
Current CPC
Class: |
G06Q 30/0256 20130101;
G06Q 30/0201 20130101; G06F 16/9535 20190101; G06F 16/958
20190101 |
Class at
Publication: |
707/706 ;
707/769; 707/E17.108 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1. A computer-implemented method for providing Web page
recommendations for the creation of inbound links to a target Web
page, comprising: receiving one or more keywords that describe a
subject matter domain; determining one or more domain-specific Web
pages that refer to the received one or more keywords; based at
least in part upon the determined one or more domain-specific Web
pages, determining an ordered set of Web pages that contain links
to highly ranked Web pages of the determined domain-specific Web
pages; and providing indicators to one or more Web pages of the
determined ordered set of Web pages as recommendations for the
creation of inbound links to a target Web page.
2. The method of claim 1, further comprising adding at least one
link to the target Web page on one or more of the determined
ordered set of Web pages to create at least one inbound link to the
target Web page.
3. The method of claim 1 wherein the determining the one or more
domain-specific Web pages that refer to the received one or more
keywords is accomplished using one or more search engines.
4. The method of claim 3 wherein the one or more search engines
include an off-the-shelf and/or publicly available search
engine.
5. The method of claim 4 wherein the search engine is provided by
at least one of Google, Bing, or Yahoo.
6. The method of claim 1, further comprising: creating a graph that
represents links contained in each of the determined one or more
domain-specific Web pages; determining which ones of the determined
one or more domain-specific Web pages are ranked above a threshold
number; using the graph, selecting, as a resulting set of potential
Web pages to be recommended, one or more of the determined
domain-specific Web pages that contain links to one or more of the
determined one or more domain-specific Web pages that are ranked
above the threshold number; ordering the selected resulting set of
potential Web pages; and providing indicators to the selected
resulting set of potential Web pages.
7. The method of claim 6 wherein the graph is stored as an
intermediate data structure.
8. The method of claim 6 wherein the domain-specific Web pages that
are ranked above the threshold number are Web pages that are ranked
using a ranking algorithm of a conventional search engine.
9. The method of claim 8 wherein the conventional search engine is
an off-the-shelf and/or publicly available search engine.
10. The method of claim 1 wherein the indicators are links to one
or more Web sites.
11. A computer-readable storage medium containing content that
controls a computer processor, when executed, to determine a list
of indications to an ordered set of Web pages, by performing a
method comprising: receiving a plurality of keywords that describe
a subject matter domain; determining, using one or more search
engines, a set of Web pages that refer to the received keywords;
based at least in part upon the determined set of Web pages,
determining an ordered set of resultant Web pages that contain
links to one or more Web pages of the determined Web pages; and
providing indicators to one or more resultant Web pages.
12. The computer-readable storage medium of claim 11 wherein the
one or more Web pages of the determined Web pages are ranked over a
prescribed threshold by the one or more search engines, and wherein
the links to the one or more Web pages of the determined Web pages
include direct and indirect links.
13. The computer-readable storage medium of claim 11 wherein the
ranking results from application of at least one of a PageRank
algorithm or a Hubs and Authorities algorithm.
14. The computer-readable storage medium of claim 11 wherein the
determining of the ordered set of resultant Web pages is performed
by creating a graph of links between some of the determined Web
pages.
15. The computer-readable storage medium of claim 11 wherein the
computer-readable storage medium is a memory in a computing system,
and wherein the contents are instructions that, when executed,
cause the computing system to perform the method.
16. The computer-readable storage medium of claim 11, further
comprising: providing an online user interface that is configured
to receive the plurality of keywords and list the provided
indicators as selectable links to Web pages.
17. The computer-readable storage medium of claim 11 the online
user interface further configured to display an indication of
search engine rank for each resultant Web page.
18. A computer-implemented method for providing messaging
influencer recommendations, comprising: receiving a plurality
keywords that describe a subject matter domain; determining, using
one or more search engines, a set of Web pages that refer to the
received keywords; determining one or more messaging users who are
referenced by at least some of the determined Web pages, the
determined messaging users posting messages about the subject
matter domain; and providing indicators of the one or more
messaging users as messaging influencers with respect to the
subject matter domain.
19. The method of claim 18 wherein the determined messaging users
are blog users who generate blog postings that are related to the
subject matter domain.
20. The method of claim 18 wherein the determined messaging users
are microblog users who generate short messages related to the
subject matter domain.
21. The method of claim 20 wherein the microblog users are Twitter
users.
22. The method of claim 18, further comprising ordering the
determined one or more messaging users based at least in part on a
number of followers and/or readers associated with each of the
messaging users.
23. A computing system comprising: a memory; and a module that is
stored on the memory and that is configured, when executed by the
computing system, to provide Web page recommendations for the
creation of inbound links to a target Web page by: receiving a
plurality of keywords that describe a subject matter domain;
determining a set of Web pages that refer to the received keywords;
based at least in part upon the determined set of Web pages,
determining an ordered set of resultant Web pages that contain
links to one or more Web pages of the determined Web pages; and
initiating a link placement of at least one link to the target Web
page on one or more of the ordered set of resultant Web pages,
thereby creating at least one inbound link to the target Web
page.
24. The computing system of claim 23, wherein the module is further
configured, when executed by the computing system, to: determine
one or more messaging users who are referenced by at least some of
the determined set of Web pages, the determined messaging users
posting messages about the subject matter domain; and provide
indicators of the one or more messaging users as messaging
influencers with respect to the subject matter domain.
Description
TECHNICAL FIELD
[0001] The present disclosure relates to techniques for
facilitating marketing activities and, in particular, to methods,
systems, and techniques for recommending web pages or other content
sources relevant to a particular domain based upon link
frequency.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] FIG. 1A illustrates an example block diagram of an example
embodiment of a marketing activity support system.
[0003] FIG. 1B illustrates an example flow diagram of a link
placement recommendation process performed by a marketing activity
support system according to an example embodiment.
[0004] FIGS. 2A-2G illustrate example screen displays provided by
an example embodiment of a marketing activity support system.
[0005] FIG. 3 is an example block diagram of an example computing
system for implementing a marketing activity support system
according to an example embodiment.
[0006] FIG. 4 illustrates an example flow diagram of a link
placement recommendation process performed by a marketing activity
support system according to an example embodiment.
DETAILED DESCRIPTION
[0007] Embodiments described herein provide enhanced computer- and
network-based methods, systems, and techniques for supporting
marketing activities. Example embodiments provide a marketing
activity support system ("MASS") configured to recommend
opportunities for link placement. Recommending opportunities for
link placement includes determining Web pages and other content
sources (e.g., messaging users/sites, such as online forum, blog,
or microblog posters/users) that are relevant to a subject matter
domain that is described by one or more sets of keywords. The
subject matter domain may be one towards which a user (e.g., a
marketing professional) of the MASS is directing a marketing
campaign or other marketing activities. The determined Web pages
can then be recommended by the MASS as candidates for the placement
of a link or other reference to a target Web page or other
network-accessible resource (e.g., Web page, online audio/video)
that is directed to the subject matter domain.
[0008] In one embodiment, the recommended Web pages are determined
based upon link frequency to other Web pages that are themselves
highly ranked by one or more search engines for the subject matter
domain specified by the provided keywords. Thus, the recommended
Web pages may be useful locations for the placement of inbound
links to a target Web page/site directed to a particular good or
service that is in the subject matter domain. By adding to one or
more of the recommended Web pages links pointing to the target Web
page, the search engine rank for the target Web page may be
organically increased.
[0009] In one example, a marketer may be seeking to promote a Web
site that sells or otherwise traffics in a particular good or
service. The marketer provides the MASS with one or more keywords
or sets of keywords describing the good or service. In response,
the MASS determines one or more Web pages for the provided
keywords. Determining the Web pages may include first using one or
more search engines to obtain a list of Web pages that are relevant
to the provided keywords. Then, for each candidate Web page in the
obtained list of Web pages, the MASS determines how many other Web
pages from the obtained list are referenced by the candidate Web
page. The MASS then orders or ranks the results based at least in
part on the number of times each Web page in the list refers to
other Web pages in the list, where pages that reference more pages
in the list are ranked more highly. In some embodiments, the
ordering or ranking gives preference to those Web pages that refer
to other Web pages that are highly ranked by external means, such
as by the one or more search engines used to create the initial
list of Web pages.
[0010] The MASS then provides the ordered list of Web pages, so
that links to the promoted Web site can be added to one or more of
the pages in the ordered list. For example, the ordered list of Web
pages may be provided to a user (e.g., the marketer or other user),
such that the user can initiate a link placement, such as by
manually placing a link on a page, requesting that a Web site
operator add a link to one or more pages, or the like. In some
embodiments, link placement may be performed at least in part
automatically, such as by the MASS interacting with a link
placement form or API, automatically posting a message (e.g., a
comment to a blog entry) that includes the link, or the like. Once
a link to the promoted Web site is placed, it serves as an inbound
link to the promoted Web site, thereby potentially organically
increasing the search engine rank of the promoted Web site,
particularly to search engines that consider inbound links in their
rankings.
[0011] FIG. 1A illustrates an example block diagram of an example
embodiment of a marketing activity support system. In particular,
FIG. 1A illustrates a marketing activity support system ("MASS")
100 that a link placement recommender 102 and a data store 115.
[0012] As an overview of the operation of an example embodiment, a
user 130 (e.g., sales representative, marketing agent, researcher,
advertiser, Web site owner, Web site operator, online agency)
utilizes the MASS 100 to manage a marketing campaign. As part of
the campaign, the user 130 may utilize the MASS 100 to obtain
information about other Web pages or other content sources that may
be good candidates for link placement, as well as possibly to
perform other marketing-related activities, such as creating and
transmitting marketing messages, determining suitable keywords for
advertising purchases, generating and managing marketing leads,
determining the effectiveness of various marketing activities, and
the like.
[0013] In the illustrated example embodiment, the user 130 first
provides (activity 1) keywords to the link placement recommender
102. The keywords typically describe some subject matter domain
that is of interest to the marketer, such as because the marketer
is promoting a good or service that is situated in or otherwise
relevant to the subject matter domain. The keywords may be provided
as one or more sets of keywords, each set of keywords describing or
otherwise related to the subject matter.
[0014] Next, the link placement recommender 102 initiates (activity
2) one or more keyword searches using the search facility 122. The
search facility 122 may be any logic/system that ranks Web pages or
other network accessible content based at least in part on keywords
provided within a search query, including publicly available,
"off-the-shelf" search engines (e.g., Google search, Yahoo search,
Bing search), proprietary/non-public indexes or information stores
(e.g., LexisNexis), or the like. In response, the link placement
recommender 102 receives (activity 3) from the search facility 122
results for the one or more keyword searches. The search results
typically include references (e.g., URLs) to one or more Web pages
that are determined by the search facility 122 to be relevant to at
least some of the provided keywords.
[0015] Then, the link placement recommender 102 obtains (4)
information about the content and structure of the Web pages
included in the search results. Here the link placement recommender
102 may generate or otherwise build a graph or other data structure
that represents the interconnections between the Web pages of the
result set. Using the generated graph, the link placement
recommender 102 then determines relevant Web pages of the result
set, and provides a ranked list as recommended Web sites to the
user. As noted above, determining the relevant Web pages may be
based at least in part on the frequency of links from the relevant
Web pages to other Web pages in the result set.
[0016] The data store 115 is generally used to store or record
information used by components of the MASS 100, including
information about operations performed by the link placement
recommender 102. For example, the link placement recommender 102
may cache or otherwise record keyword sets for a user, such that
the link placement recommender 102 can from time to time determine
whether any new relevant Web pages have come online. For example,
the link placement recommender 102 may process a keyword set on a
weekly basis, and if the results are sufficiently different from a
prior result, notify the user by sending an email or other message.
The data store 115 may also be used to record intermediate results,
such as a graph or other data structure, such that the graph need
not be fully reconstructed for subsequent queries.
[0017] The described techniques herein are not limited to the
specific architecture shown in FIG. 1A. In some embodiments,
additional functions may be performed by the MASS 100. For example,
the search facility 122 may be internal to the MASS 100. In other
embodiments, the MASS 100 may not interact directly with users, but
rather provide user interface components (e.g., plug-ins or
widgets) that may be embedded or otherwise incorporated in
third-party applications or systems, such as Web sites, smart
phones, desktop systems, and the like. In further embodiments, the
MASS 100 may provide an application program interface, such that
external programs can programmatically interact with or invoke
functions of the MASS 100.
[0018] In addition, although the described techniques for link
placement recommendation are illustrated primarily with respect to
textual Web pages and marketing content, other structures and/or
forms of content are contemplated, including any network-accessible
resources, such as audio, images, and/or video, as well as active
or interactive content such as interactive applications (e.g., code
modules, programs, online applications, smart phone applications),
games, and the like. In particular, the MASS may recommend content
sources/entities other then Web pages or Web sites. In general, the
MASS can recommend any entity that is referenced by a Web page or
other referencing content, including messaging services and/or
users, including blogs, microblogs, online forums, and the like. In
some embodiments, the MASS can identify relevant messaging users
(e.g., Twitter users) based on how frequently those users are
referenced by Web pages or other analyzed content.
[0019] FIG. 1B illustrates an example flow diagram of a link
placement recommendation process performed by a marketing activity
support system according to an example embodiment. The process may
be performed by, for example, one or more of the components of the
MASS 100 described with respect to FIG. 1A.
[0020] The illustrated process begins at block 152, where it
receives one or more keywords that describe a subject matter
domain. In some embodiments, the keywords are received from a user
via an interactive user interface. In other embodiments, the
keywords may be received programmatically, such as when the process
is operating in "batch" or "bulk" mode, and processing a sequence
of previously stored inputs. Example keywords may be provided as a
text string that includes delimited (e.g., by a space, comma,
colon) words or phrases. As an example to be used throughout the
description of the illustrated process, the process may receive the
keywords "home improvement tools."
[0021] At block 154, the process determines multiple Web pages that
are relevant to the subject matter domain. Determining the multiple
Web pages may include initiating a search by forming a search query
that includes at the received keywords. Continuing the above
example, the process would create a search query that would include
the keywords "home improvement tools." In response, the process
receives a result set that includes multiple Web pages that are
ranked in order of relevance with respect to the received keywords.
Further to the above example, the process may receive a list of ten
URLs that each point to a respective Web page, denoted here as P1,
P2, . . . , P10.
[0022] At block 156, the process orders at least some of the
multiple Web pages based on how frequently they reference other of
the multiple Web pages. Ordering the Web pages may include
generating a graph or other data structure of the interconnections
between the multiple Web pages. In the present example, a graph
between the ten Web pages of the result set may be described as by
Table 1, below.
TABLE-US-00001 TABLE 1 Page References P1 {P2, P5} P2 {P3} P3 {P2,
P8} P4 { } P5 { } P6 {P3, P4} P7 {P1, P3, P4} P8 { } P9 {P1, P2,
P3, P5} P10 {P4, P5}
[0023] Table 1 is an adjacency list representation of the
interconnections between the ten Web pages of the example result
set. Table 1 denotes, for each page of the result set (P1, P2, . .
. , P10), a reference set that includes zero or more other pages of
the result set that are referenced by that page. For example, page
P1 references (e.g., links to) pages P2 and P5; page P2 references
page P3; pages P4, P5, and P8 do not reference any of pages P1-P10;
etc. Other representations are contemplated, including adjacency
matrixes, link and node structures, or the like. Also, in the
illustrated embodiment, a reference set only contains unique
references, such that a page with many duplicate links has no
impact on the scoring process describe below. In other embodiments,
duplicate references may be treated differently, such as by
penalizing Web pages for excessive link duplication.
[0024] Ordering the Web pages includes scoring each Web page in the
result set based at least in part on link frequency to other pages
in the result set. In one embodiment, each Web page gets a score of
one "point" for each referenced Web page. Scores can thus be
determined in a straightforward manner based on the contents of
Table 1, by taking the cardinality of each reference set, as shown
in Table 2, below.
TABLE-US-00002 TABLE 2 Page References Score P1 {P2, P5} 2 P2 {P3}
1 P3 {P2, P8} 2 P4 { } 0 P5 { } 0 P6 {P1, P4} 2 P7 {P1, P3, P4} 3
P8 { } 0 P9 {P1, P2, P3, P5} 4 P10 {P4, P5} 2
[0025] Table 2 is includes the contents of Table 1 with an
additional column (Score) that includes a score that is equal to
the cardinality of the corresponding reference set for each
row.
[0026] Once the pages have been scored, they can be ordered based
on the score. In the above example, one example non-increasing
order based on the determined scores is: P9, P7, P1, P3, P6, P10,
P2, P4, P5, and P8. In some embodiments, only Web page having a
score that is higher than some threshold may be included in a final
ordering, such that low scoring pages are discarded, and the user
is not presented with pages that are not good candidates for link
placement.
[0027] In addition, some embodiments may take other factors into
account during scoring. For example, some embodiments may give
weight to the ranking provided as part of the original search
result, such that pages that reference high ranking pages are
scored more highly than those referencing low ranking pages. In the
above example, the search engine may have provided the results
P1-P10 in decreasing order of relevance, such that P1 was deemed to
be the most relevant page and P10 was deemed to be the least
relevant page. In such a case, page P6 would be scored more highly
than P10 because, even though P6 and P10 both reference two pages,
P6 references P1 and P4, which are more highly ranked than the
pages (P4 and P5) referenced by P10.
[0028] Another factor that may be used for scoring is the number of
links to pages that are not in the result set. Thus, some
embodiments may consider the "concentration" or "density" of links
to pages in the result set with respect to links to pages that are
not in the result set, such that pages that have many links that do
not reference the result set may be scored lower than pages that
have fewer links that do not reference the result set. In one
embodiment, scoring is based at least in part on a ratio of the
number of links to pages in the result set to the number of links
to pages not in the result set.
[0029] A further factor that may be used for scoring is the
likelihood that a particular page can be a target for link
placement. For example, some pages (e.g., those in the .gov domain,
or those belonging to famous brands) may not be good candidates for
link placement because they are unlikely to include a link to a
third-party commercial Web page. Thus, in one embodiment, scoring
is based at least in part on the likelihood that a link can be
placed on a particular Web page.
[0030] Yet another factor that may be used for scoring is whether
or not a page in the result page already references the
promoted/target Web page. For example, pages that do not reference
the promoted Web page may be scored more highly, because they are
likely to be valuable in terms of providing new inbound links to
the promoted Web page.
[0031] Another technique may include scoring Web pages based on
search results obtained from multiple distinct search engines. For
example, for each set of keywords, a search result set may be
obtained from multiple search engines. Then, Web page scoring may
be based on an aggregation of the received search results and/or
search engine rankings of individual Web pages. In this manner, the
link placement recommender may identify Web pages that will likely
yield valuable link placement opportunities for optimizing search
engine results across multiple search engines.
[0032] At block 158, the process provides the ordered Web pages as
recommendations for link placement opportunities.
[0033] FIGS. 2A-2G illustrate example screen displays provided by
an example embodiment of a marketing activity support system. In
the illustrated example, the screen displays are presented by a Web
browser interacting with the MASS and executing on a client device,
such as a desktop computing system. Variations on the illustrated
screen displays are contemplated, including other user interface
elements, more or less information, different orders of
presentation, and the like. In one embodiment, a "mobile" version
of at least some of the illustrated screens is provided by the
MASS, such that users of smart phones or other limited display
devices can access at least some of the functions of the MASS.
[0034] FIG. 2A illustrates a link placement recommendation page (a
"Link Builder") provided by an example embodiment of a marketing
activity support system. In particular, FIG. 2A illustrates a Web
browser 200 that displays a screen 201 (e.g., a Web page) that is
being used by a user to interact with the marketing activity
support system. The screen 201 includes user interface controls
(text entry fields) 202 that can be used by the user to specify one
or more sets of keywords. The screen also includes a control
(button) 203 that, when selected by the user, initiates the link
placement recommendation process described herein. The screen
further includes a control 204 (text field) that can be used by the
user to specify a URL of the promoted Web site, so that the user
can see where their Web site ranks among the returned
recommendations.
[0035] FIG. 2B illustrates the link placement recommendation screen
201 after recommendations for a set of user-specified keywords have
been provided. In this example, the user has specified three sets
of keywords: "home improvement," "home remodel," and "home
construction tools." In response, the MASS provides recommendations
organized into tabs 210-212 that respectively identify relevant Web
sites, Twitter users referenced by Web pages, and Twitter users by
activity.
[0036] Tab 210 is currently active and includes a table 215 that
arranges Web sites (e.g., denoted by domain name) in non-increasing
order of a score based on link frequency and other factors as
described herein. Each row of the table 215 includes a Web site
reference (e.g., a URL) field, a priority field (e.g., indicating a
rank or position based on the recommender's scoring algorithm), and
a web search rank field (e.g., PageRank, hubs and authorities rank,
or the like). In this example, 15 Web sites are listed in table
215, which may be a fraction of the total number of Web pages
returned by searches for the provided keywords. In one embodiment,
the link placement recommender performs one search for each keyword
set, and processes 100 results for each search. Thus, in the
current example having three keyword sets, a total of 300 (possibly
non-unique) result Web pages would be considered by the link
placement recommender.
[0037] FIG. 2C illustrates an example Web page identified by the
link placement recommender as described with respect to FIG. 2B.
Here, the user has selected the link named "www.dmoz.org" in tab
210 of screen 201. In response, the browser 200 has loaded and
presented on screen 220 the corresponding Web page (at
www.dmoz.org/Home/Home_Improvement/), which is a directory that
includes links to various home improvement Web pages. Such a
directory is typically a good candidate for link placement, as this
directory likely links to other Web pages that are in the domain
specified by the provided keywords (e.g., home improvement). Thus,
a user who wants to find a home improvement-related Web site would
be likely to visit the displayed Web page for references.
[0038] FIG. 2D illustrates the link placement recommendation screen
201 presenting Twitter users referenced by Web pages. As noted, the
MASS can in some embodiments recommend other sources of content
besides Web pages, including messaging users such as bloggers,
microbloggers, online forum posters, and the like. In particular,
the screen 201 is shown after activation of the tab 211. Tab 211
includes a table 235 that arranges Twitter users based on how
frequently those users are referenced or otherwise mentioned on Web
pages in the result set. Some embodiments order the Twitter users
based on how frequently those users are uniquely referenced by Web
pages in the result set, such that Web pages that include many
duplicate references do not adversely impact scoring. Each row in
the table 235 specifies a Twitter user, a number of followers, and
a status. In the illustrated example, Twitter users are ranked by
the number of references and by the number of readers (e.g.,
followers).
[0039] FIG. 2E illustrates an example Twitter user identified by
the link placement recommender as described with respect to FIG.
2D. Here, the user has selected the Twitter user named "remodeling"
in tab 211 of screen 210. In response, the browser 200 has loaded
and presented on screen 240 the corresponding Twitter page for the
user, who operates a message feed related to remodeling and/or home
improvement topics. Such a Twitter user represents a good candidate
for a relationship with the marketing user. For example, the
marketing user could interact with the Twitter user and request
that the Twitter user post a link and/or review of a Web page being
promoted by the marketing user.
[0040] FIG. 2F illustrates the link placement recommendation screen
201 presenting
[0041] Twitter users based on activity. In particular, the screen
201 is shown after activation of the tab 212. Tab 212 includes a
table 255 that arranges Twitter users based on how frequently those
users have transmitted a message (e.g., a tweet) that is relevant
to the specified keywords.
[0042] FIG. 2G illustrates an example Twitter user identified by
the link placement recommender as described with respect to FIG.
2F. Here, the user has selected the Twitter user named
"homeimprovetips" in tab 212 of screen 210. In response, the
browser 200 has loaded and presented on screen 260 the
corresponding Twitter page for the user, who operates a message
feed related to remodeling and/or home improvement topics.
[0043] Note that although the link placement recommender is
described with respect to the Twitter micro-blogging service, use
of other messaging (e.g., one-to-one and/or broadcast in nature)
services can be similarly processed. In some embodiments, other or
additional broadcast messaging services may be considered by the
link placement recommender, including social network status updates
(e.g., a Facebook status update), news feeds (e.g., RSS), Internet
news (e.g., NNTP), blogs, and the like.
[0044] FIG. 3 is an example block diagram of an example computing
system for implementing a marketing activity support system
according to an example embodiment. In particular, FIG. 3 shows a
computing system 300 that may be utilized to implement a marketing
activity support system 310 that facilitates marketing activities
as described herein.
[0045] Note that one or more general purpose or special purpose
computing systems/devices may be used to implement the marketing
activity support system 310. In addition, the computing system 300
may comprise one or more distinct computing systems/devices and may
span distributed locations. Furthermore, each block shown may
represent one or more such blocks as appropriate to a specific
embodiment or may be combined with other blocks. Also, the
marketing activity support system 310 may be implemented in
software, hardware, firmware, or in some combination to achieve the
capabilities described herein.
[0046] In the embodiment shown, computing system 300 comprises a
computer memory ("memory") 301, a display 302, one or more Central
Processing Units ("CPU") 304, Input/Output devices 304 (e.g.,
keyboard, mouse, CRT or LCD display, and the like), other
computer-readable media 305, and network connections 306. The
marketing activity support system 310 is shown residing in memory
301. In other embodiments, some portion of the contents, some or
all of the components of the marketing activity support system 310
may be stored on and/or transmitted over the other
computer-readable media 305. The components of the marketing
activity support system 310 preferably execute on one or more CPUs
303 and extract and provide quotations, as described herein. Other
code or programs 330 (e.g., an administrative interface, a Web
server, and the like) and potentially other data repositories, such
as data repository 320, also reside in the memory 301, and
preferably execute on one or more CPUs 303. Of note, one or more of
the components in FIG. 3 may not be present in any specific
implementation. For example, some embodiments may not provide or
include the other computer-readable media 305 or the display
302.
[0047] In a typical embodiment, the marketing activity support
system 310 includes a link placement recommender 311, a user
interface manager 315, a marketing activity support system
application program interface ("API") 316, and a data store 317.
The user interface manager 315 and MASS API 316 are drawn in dashed
lines to emphasize that in other embodiments, functions performed
by one or more of these components may be performed externally to
the marketing activity support system 310. In other embodiments,
the marketing activity support system 310 also includes additional
modules, such as a search facility. The link placement recommender
311 and data store 317 respectively perform functions such as those
described with reference to the link placement recommender 102 and
the data store 115 of FIG. 1A.
[0048] The UI manager 315 provides a view and a controller that
facilitate user interaction with the marketing activity support
system 310 and its various components. For example, the UI manager
315 may provide interactive access to the marketing activity
support system 310, such that users can obtain recommendations and
possibly perform various activities (e.g., initiate contact,
request link placement) with respect to the obtained
recommendations. In some embodiments, access to the functionality
of the UI manager 315 may be provided via a Web server, possibly
executing as one of the other programs 330. In such embodiments, a
user operating a Web browser executing on one of the client devices
360 can interact with the marketing activity support system 310 via
the UI manager 315.
[0049] The MASS API 316 provides programmatic access to one or more
functions of the marketing activity support system 310. For
example, the API 316 may provide a programmatic interface to one or
more functions of the marketing activity support system 310 that
may be invoked by one of the other programs 330 or some other
module. In this manner, the API 316 facilitates the development of
third-party software, such as user interfaces, plug-ins, news
feeds, adapters (e.g., for integrating functions of the marketing
activity support system 310 into Web applications), and the like.
In addition, the API 316 may be in at least some embodiments
invoked or otherwise accessed via remote entities, such as one of
the Web sites 365 and/or client computing devices 360, to access
various functions of the marketing activity support system 310. For
example, a third-party application may request link placement
recommendations from the marketing activity support system 310 via
the API 316.
[0050] The marketing activity support system 310 interacts via the
network 350 with search facilities 355, Web sites 365, and client
computing devices 360. In particular, the marketing activity
support system 310 obtains search results from the one or more
search facilities 355, obtains content and structure information
about Web pages from the Web sites 365, and provides marketing
activity services to the client computing devices 360. The network
350 may be any combination of media (e.g., twisted pair, coaxial,
fiber optic, radio frequency), hardware (e.g., routers, switches,
repeaters, transceivers), and protocols (e.g., TCP/IP, UDP,
Ethernet, Wi-Fi, WiMAX) that facilitate communication between
remotely situated humans and/or devices. The client computing
devices 360 include desktop computing systems, notebook computers,
mobile phones, smart phones, personal digital assistants, and the
like.
[0051] In an example embodiment, components/modules of the
marketing activity support system 310 are implemented using
standard programming techniques. For example, the marketing
activity support system 310 may be implemented as a "native"
executable running on the CPU 303, along with one or more static or
dynamic libraries. In other embodiments, the marketing activity
support system 310 may be implemented as instructions processed by
a virtual machine that executes as one of the other programs 330.
In general, a range of programming languages known in the art may
be employed for implementing such example embodiments, including
representative implementations of various programming language
paradigms, including but not limited to, object-oriented (e.g.,
Java, C++, C#, Visual Basic.NET, Smalltalk, and the like),
functional (e.g., ML, Lisp, Scheme, and the like), procedural
(e.g., C, Pascal, Ada, Modula, and the like), scripting (e.g.,
Perl, Ruby, Python, JavaScript, VBScript, and the like), and
declarative (e.g., SQL, Prolog, and the like).
[0052] The embodiments described above may also use either
well-known or proprietary synchronous or asynchronous client-server
computing techniques. Also, the various components may be
implemented using more monolithic programming techniques, for
example, as an executable running on a single CPU computer system,
or alternatively decomposed using a variety of structuring
techniques known in the art, including but not limited to,
multiprogramming, multithreading, client-server, or peer-to-peer,
running on one or more computer systems each having one or more
CPUs. Some embodiments may execute concurrently and asynchronously,
and communicate using message passing techniques. Equivalent
synchronous embodiments are also supported. Also, other functions
could be implemented and/or performed by each component/module, and
in different orders, and by different components/modules, yet still
achieve the described functions.
[0053] In addition, programming interfaces to the data stored as
part of the marketing activity support system 310, such as in the
data store 317, can be available by standard mechanisms such as
through C, C++, C#, and Java APIs; libraries for accessing files,
databases, or other data repositories; through markup languages
such as XML; or through Web servers, FTP servers, or other types of
servers providing access to stored data. The data store 317 may be
implemented as one or more database systems, file systems, or any
other technique for storing such information, or any combination of
the above, including implementations using distributed computing
techniques.
[0054] Different configurations and locations of programs and data
are contemplated for use with techniques of described herein. A
variety of distributed computing techniques are appropriate for
implementing the components of the illustrated embodiments in a
distributed manner including but not limited to TCP/IP sockets,
RPC, RMI, HTTP, Web Services (XML-RPC, JAX-RPC, SOAP, and the
like). Other variations are possible. Also, other functionality
could be provided by each component/module, or existing
functionality could be distributed amongst the components/modules
in different ways, yet still achieve the functions described
herein.
[0055] Furthermore, in some embodiments, some or all of the
components of the marketing activity support system 310 may be
implemented or provided in other manners, such as at least
partially in firmware and/or hardware, including, but not limited
to one or more application-specific integrated circuits ("ASICs"),
standard integrated circuits, controllers executing appropriate
instructions, and including microcontrollers and/or embedded
controllers, field-programmable gate arrays ("FPGAs"), complex
programmable logic devices ("CPLDs"), and the like. Some or all of
the system components and/or data structures may also be stored as
contents (e.g., as executable or other machine-readable software
instructions or structured data) on a computer-readable medium
(e.g., as a hard disk; a memory; a computer network or cellular
wireless network or other data transmission medium; or a portable
media article to be read by an appropriate drive or via an
appropriate connection, such as a DVD or flash memory device) so as
to enable or configure the computer-readable medium and/or one or
more associated computing systems or devices to execute or
otherwise use or provide the contents to perform at least some of
the described techniques. Some or all of the system components
and/or data structures may be stored as non-transitory content on
one or more tangible computer-readable mediums. Some or all of the
system components and data structures may also be stored as data
signals (e.g., by being encoded as part of a carrier wave or
included as part of an analog or digital propagated signal) on a
variety of computer-readable transmission mediums, which are then
transmitted, including across wireless-based and wired/cable-based
mediums, and may take a variety of forms (e.g., as part of a single
or multiplexed analog signal, or as multiple discrete digital
packets or frames). Such computer program products may also take
other forms in other embodiments. Accordingly, embodiments of this
disclosure may be practiced with other computer system
configurations.
[0056] FIG. 4 illustrates an example flow diagram of a link
placement recommendation process performed by a marketing activity
support system according to an example embodiment. In particular,
FIG. 4 illustrates a process that may be implemented by, for
example, one or more elements of the marketing activity support
system 100 described with reference to FIG. 1A. The process
recommends Web pages based on link reference frequency.
[0057] The illustrated process begins at block 402, where it
receives keywords that describe a subject matter domain.
[0058] At block 404, the process performs a search to obtain a
result set of Web pages that each includes at least some of the
keywords. Such results may be obtained by use of a search engine
that provides links (e.g., URLs) to pages that match at least some
of the provided keywords. In addition, the result set may be
ordered (e.g., ranked) by a ranking algorithm employed by the
search engine (e.g., Google PageRank, hubs and authorities).
[0059] In blocks 406-410 the routine performs a loop in which it
processes each of the Web pages returned by the search result. At
block 406, the process sets a candidate page to be the next page of
the result set obtained via the search.
[0060] At block 408, the process increases the rank of the
candidate page based at least in part on the number of links from
the candidate page to other pages in the result set. For example,
the process may increase a score for the candidate page by a
constant factor (e.g., one point) for each reference from the
candidate page to one of the pages in the result set. Other factors
may be taken into account, such as the search engine rank of the
referenced web page, the likelihood that the candidate page can is
likely to be amenable to link placement (e.g., whitehouse.gov is
less likely to be amenable to link placement than a blog page), or
the like.
[0061] At block 410, the process determines whether there are more
pages in the result set, and if so, continues the loop of blocks
406-410, else proceeds to block 412.
[0062] At block 412, the process provides an ordered list of at
least some of the Web pages. As noted the result set may include
many (e.g., hundreds or thousands) Web pages. In some cases, the
routine selects some fraction of those Web pages, such as the top
ten (based onto determined rank) for presentation, so as not to
overwhelm the user with information. After block 412, the process
ends.
[0063] All of the above U.S. patents, U.S. patent application
publications, U.S. patent applications, foreign patents, foreign
patent applications and non-patent publications referred to in this
specification and/or listed in the Application Data Sheet,
including but not limited to U.S. Provisional Patent Application
No. 61/352,701, filed on Jun. 8, 2010, entitled "RECOMMENDING LINK
PLACEMENT OPPORTUNITIES," are incorporated herein by reference, in
their entireties.
[0064] From the foregoing it will be appreciated that, although
specific embodiments have been described herein for purposes of
illustration, various modifications may be made without deviating
from the spirit and scope of this disclosure. For example, the
methods, techniques, and systems for link placement recommendation
are applicable to other architectures or environments. Also, the
methods, techniques, and systems discussed herein are applicable to
differing languages, protocols, communication media (optical,
wireless, cable, etc.) and devices (such as wireless handsets,
electronic organizers, personal digital assistants, portable email
machines, game machines, pagers, navigation devices such as GPS
receivers, etc.).
* * * * *
References