Shared link tracking in online social networking systems

A computer-based system enables users who share content on online social networking systems to control the information that is shared in association with the shared content. For example, if a first user shares a hyperlink to content in an online social networking system with one or more other users, the user may specify the information to be shared in association with the hyperlink, such as one or more images to be shared in association with the hyperlink and a summary to be shared in association with the hyperlink. The information associated with the hyperlink may be used to create a modified hyperlink which has as its target a proxy web page containing metadata representing the data to associate with the first hyperlink. The modified hyperlink may then be shared with the other users instead of the original hyperlink.

BACKGROUND

Users of online social networking systems often use such systems to transmit messages to other users and to post content to such systems for sharing with other users. For example, the Facebook social networking system provides each registered user of the system with a personal page, referred to by terms such as “wall” and “timeline,” which displays a variety of information, such as personal information about the user, content posted by the user, and content posted by other users within the user's network on Facebook.

One of the primary goals of Facebook and other social networking systems is to facilitate the sharing of a wide variety of content among users in a wide variety of ways. One of the original reasons that users began using social networking systems was that they provided a convenient, user-friendly, easy way to engage in such content sharing, without requiring users to have knowledge of HTML or web programming, and without requiring users to visit different sites or use different mechanisms to share different kinds of content with other users.

For example, if a user of Facebook views content on any web site that the user wishes to share with other Facebook users, such as an article, a photograph or photo gallery, or an online coupon or promotion, the user may share a link to the content with other users. When the sharing user uses Facebook to share the link, Facebook gathers and generates information about the link that is shared, by analyzing the web page at the link address (URL), including images from the page located at that address, and a summary of that page. When recipients of the shared link view the link in Facebook, Facebook displays the link and some or all of the associated information, such as the associated image and summary. This provides more information to the receiving user than would be provided by a bare URL, thereby enabling the receiving user to understand the context and meaning of the linked information more easily than if a mere bare URL had been displayed. Furthermore, the presentation of an image and summary acts as a preview of the linked web page, and influences the receiving user's decision about whether it is worthwhile to navigate to the shared link. The preview has a substantial impact on the click-through rate (CTR) of the link, and as a result, the preview may have a direct commercial impact on the web content being linked. Facebook determines what to present in the preview by applying certain rules and algorithms on the linked web page. Because this preview is statically determined by the content of the linked page and private algorithms determined by Facebook, customizing the preview based on business goals or dynamically based on the targeted audience may be impractical or impossible. While this example refers to Facebook, Twitter and other social networks treat shared links in a similar way. The proprietary and confidential algorithms each social network applies to generate previews of linked content vary, adding to the difficulty of customizing previews of linked content.

What is needed, therefore, are improved techniques for sharing content in online social networking systems.

SUMMARY

A computer-based system enables users who share content on online social networking systems to control the information that is shared in association with the shared content. For example, if a first user shares a hyperlink to content in an online social networking system with one or more other users, the user may specify the information to be shared in association with the hyperlink, such as one or more images to be shared in association with the hyperlink and a summary to be shared in association with the hyperlink. The information associated with the hyperlink may be used to create a modified hyperlink which has as its target a proxy web page containing metadata representing the data to associate with the first hyperlink. The modified hyperlink may then be shared with the other users instead of the original hyperlink. When the online social networking system displays the modified hyperlink to the other users, the online social networking system may display the information associated with the modified hyperlink.

DETAILED DESCRIPTION

A computer-based system enables users who share content on online social networking systems to control the information that is shared in association with the shared content. For example, if a first user shares a hyperlink to content in an online social networking system with one or more other users, the user may specify the information to be shared in association with the hyperlink, such as one or more images to be shared in association with the hyperlink and a summary to be shared in association with the hyperlink. The information associated with the hyperlink may be embedded within the hyperlink to create a modified hyperlink. The modified hyperlink may then be shared with the other users instead of the original hyperlink. When the online social networking system displays the modified hyperlink to the other users, the online social networking system may display the information associated with the modified hyperlink.

Referring toFIG. 1, a diagram is shown of a system100implemented according to one embodiment of the present invention. In general, the system100ofFIG. 1enables users of an online social networking system, such as Facebook, to share hyperlinks with each other and to control the information that is associated with the shared hyperlinks and displayed in connection with the shared hyperlinks when the shared hyperlinks are displayed to the users with whom they are shared.

More specifically, consider the example ofFIG. 1, in which a company (referred to herein as “Company A”) is associated with a page114a, which contains content116aand content116b. Although only one page114ais shown inFIG. 1for ease of illustration, the system100may include any number of pages, which may be associated with one or more companies. The page114amay, for example, be a web page, or a social networking page, such as a page on Facebook or any other online social networking system. Furthermore, although only one company page114ais shown inFIG. 1, a company may be associated with pages on any number of online social networks (e.g., zero, one, two, or more). Similarly, the particular number of contents116a-bshown inFIG. 1is merely an example and not a limitation of the present invention.

Furthermore, although element114ais labeled as a “page” inFIG. 1, this is merely an example and does not constitute a limitation of the present invention. As another example, element114amay be a subset of a page (e.g., a subset of a web page or a social networking page). As yet another example, element114amay be any form of content contained within Facebook or another online social networking system. Even more generally, element114amay be any web page or other resource that is addressable by a URL, whether or not such a resource is contained within or otherwise related to an online social networking system. For ease of explanation, element114awill be described herein as a “shared page.”

Although the shared page114ais illustrated inFIG. 1as being owned by, created by, maintained by, or otherwise associated with a “company,” this is merely an example and does not constitute a limitation of the present invention. More generally, the shared page114amay be owned by, created by, maintained by, or otherwise associated with any user or set of users, including users who are individuals rather than companies or other organizations. Therefore, any reference herein to a “company” should be understood to refer more generally to any entity, such as a for-profit or non-profit organization, or an individual person.

A user of an online social networking site may use the system100ofFIG. 1to share hyperlinks to content within an online social networking system (such as Facebook) with other users of the online social networking system. For example, user112amay use the system100to share a hyperlink to content116awithin shared page114awith user112band/or user112c.

Consider an example in which user112awishes to share a hyperlink to content116awith user112b. Content116amay be any kind of content hosted on the Internet, such as a web page, advertisement, photograph, coupon, or promotion. The content116amay itself be a hyperlink, in which case the user112awishes to share the hyperlink itself with user112b. The user112amay or may not be the owner of the shared page114a.

Referring toFIG. 5, a flowchart is shown of a method500for sharing hyperlinks according to one embodiment of the present invention. The user112amay provide input130to the system100, where the input130contains selection data132that specifies the content for which the user112aintends to share a hyperlink. For example, if the user112aintends to share a hyperlink to content116a, then the hyperlink selection data132may point to, contain an identifier of, or otherwise specify the content116a. For example, the hyperlink selection data132may be a URL or other address of the content116a. Alternatively, for example, the hyperlink selection data132may be data that identifies the content116a, in response to which the hyperlink processor108may generate a URL of the content116abased on the hyperlink selection data132.

The input130provided by the user112amay also contain a recipient list134, which may be data that identifies one or more users with whom the sharing user (e.g., user112a) wishes to share the content that is specified by hyperlink selection data132(e.g., content116a). For example, the recipient list134may contain one or more email addresses, Facebook IDs (or IDs of users in other social networking systems), or other identifiers of the desired recipients. In the present example, assume that the recipient list134contains data specifying users112band112cas recipients.

The input130provided by the user112amay also contain associated data136. The associated data136may include any data that the user112adesires to be associated with the shared hyperlink when the hyperlink is shared with the recipients of the hyperlink (as specified by the recipient list134). For example, the associated data136may include any one or more of the following: one or more images, one or more videos, one or more text strings, and one or more advertisements.

The hyperlink input130is received by a hyperlink processor108(FIG. 5, operation502). The hyperlink processor108may be implemented in any manner. For example, the hyperlink processor108may be:implemented as client-side or server-side code in a web page (such as JavaScript);integrated into an online social networking system (such as Facebook);implemented as a plugin to or application running on an online social networking system;implemented as a plugin to a web browser; orimplemented as a standalone application, such as a client-side or server-side application.

In general, the hyperlink processor108generates a modified hyperlink140which contains both a hyperlink portion142and associated data portion146(FIG. 5, operation504). The hyperlink portion142is an example of a “content portion” as that term is used herein, because the hyperlink portion142may point to the content116ashared by the sharing user112a, or a web page or other data structure containing the content116a. For example, the hyperlink142may be the hyperlink specified by the hyperlink selection132, or a hyperlink generated based on the hyperlink selection132. As mentioned above, existing online social networking systems, such as Facebook, enable users to share hyperlinks with each other. The hyperlink portion142of the modified hyperlink140may be a hyperlink of the kind typically generated by an existing online social networking system, such as Facebook.

The associated data portion146may be any data, generated based on the associated data136provided by the sharing user112a, which represents some or all of the associated data136. For example, the associated data portion146in the modified hyperlink140may be a copy of some or all of the associated data136provided by the sharing user112a, or may be data that differs from some or all of the associated data136provided by the sharing user112abut nevertheless generated based on the associated data136.

For example, if the sharing user112aspecified, via the associated data136, the desire to associate the hyperlink portion142with a particular image from the page114athat contains the shared content116a, then the associated data portion146may contain the particular image and/or an identifier of the particular image. As another example, if the sharing user112aspecified, via the associated data136, a text string representing a summary of the shared content116a, then the associated data portion146may contain the text string or an identifier of the text string.

The modified hyperlink140may, for example, be implemented as a URL in which the hyperlink142is implemented within the server name, domain name, port number, path, and fragment identifier portions of the URL (e.g., “http://www.xyz.com/page.html” or “http://www.xyz.com/page.html#content”) and in which the associated data portion146is represented by a query string and optionally a fragment identifier embedded within the URL (e.g., “?image=image123&summary=HungerGames”). In this particular example, the associated data portion146is appended to the hyperlink. Furthermore, in this particular example, the text “image=image123” specifies an image within the associated data portion146and the text “summary=HungerGames” specifies a summary within the associated data portion146. In another embodiment, the modified hyperlink140may be implemented as a unique short URL, where the short URL is redirected to a proxy server, that looks up the hyperlink142and associated data portion146, and performs the needed processing.

The hyperlink processor108may provide the modified hyperlink140to the user(s) specified by the recipient list134, or otherwise cause the modified hyperlink140to be provided to those users (FIG. 5, operation506). In the example ofFIG. 1, the hyperlink processor108provides the modified hyperlink140to users112band112c(i.e., the recipients specified in the recipient list134).

Additionally or alternatively, the hyperlink processor108may provide the modified hyperlink140to the user who provided the hyperlink input130to the hyperlink processor108. For example, as shown inFIG. 1, the hyperlink processor108may provide the modified hyperlink140to user112a.

The hyperlink processor108may provide the modified hyperlink140to users (e.g., the recipients and/or the originating user) in any of a variety of ways. For example, the hyperlink processor108may provide the modified hyperlink140to users within an email message, text message, web page text, social networking message, or other message transmitted over the Internet110or other network. Additionally or alternatively, the hyperlink processor108may provide the modified hyperlink140to the recipients by posting the hyperlink140on the social networking pages (e.g., Facebook walls or timelines) of the recipients. For example, in the system100ofFIG. 1, the hyperlink processor108has posted copies of the modified hyperlink140to the Facebook page120bof user112bas modified hyperlink122band to the Facebook wall120cof user112cas modified hyperlink122c. As illustrated therein, both modified hyperlink122band modified hyperlink122ccontain copies of and/or links to the hyperlink142and the associated data portion146.

As another example, any of the recipients of the hyperlink (e.g., user112a, user112b, and/or user112c) may post the hyperlink to his or her Facebook page.FIG. 1shows an example in which user112ahas posted a copy122aof the modified hyperlink140to user112a's Facebook page120a, in which user112bhas posted a copy122bof the modified hyperlink140to user112b's Facebook page120b, and in which user112chas posted a copy122cof the modified hyperlink140to user112c's Facebook page120c.

Embodiments of the present invention may operate in ways other than those illustrated inFIG. 1. For example, referring toFIG. 2, a dataflow diagram is shown of a system200for generating hyperlinks according to another embodiment of the present invention. Referring toFIG. 6, a flowchart is shown of a method600that is performed by the system500ofFIG. 5according to one embodiment of the present invention.

A user, such as user112a, provides both content116aand associated data136to a content server202, which receives both the content116aand the associated data136(FIG. 6, operations602and604). The content116amay be any kind of content disclosed herein. For example, the content116amay include at least one of text, an image (e.g., a digital photograph), an audio file, and a video file. As another example, the content116amay be a hyperlink to any resource accessible via the Internet, such as a web page, an image, an audio file, or a video file. The associated data136may be of any of the kinds disclosed herein, such as one or more images, one or more videos, one or more text strings, and one or more advertisements.

The content server204generates a hyperlink210based on the content116aand the associated data136(FIG. 6, operation606). The hyperlink210may point to one or more of the following: (1) the content116a; (2) content derived from the content116a(such as a web page containing the content116aor a copy of the content116a); (3) the associated data136; or (4) data derived from the associated data. The hyperlink210may, for example, have any of the properties disclosed herein for the modified hyperlink140ofFIG. 1. In particular, the hyperlink210may include both a content portion representing the content descriptor206(such as a URL of or other pointer to the content descriptor206) and an associated data portion representing the associated data descriptor208(such as Open Graph Protocol meta tags representing the associated data descriptor208).

The content server204provides the hyperlink210to the user112a(FIG. 6, operation608). The user112amay then perform any of the actions on the hyperlink210as disclosed herein in connection with the modified hyperlink140ofFIG. 1. For example, the user112amay post the hyperlink210on his or her Facebook page120a, post the hyperlink210on a web page (i.e., a web page that is not on Facebook or any other social networking site), or share the hyperlink210with one or more other users (e.g., users120band120c).

The content server202may also generate and store a descriptor206of the content116ain a content store204(FIG. 6, operation610). The content descriptor206may, for example, be a copy of the content116a, content derived from the content (such as a thumbnail of an image if the content116ais an image), or a hyperlink to the content116a. The content store204may also generate and store associated data descriptor208, which may, for example, be a copy of the associated data136, data derived from the associated data136, or a hyperlink to the associated data136(FIG. 6, operation612). The associated data descriptor208may be any data, generated based on the associated data136provided by the sharing user112a, which represents some or all of the associated data136. The content server202may also store the hyperlink210(FIG. 6, operation614).

The content server202may associate the content descriptor206, associated data descriptor208, and hyperlink210with each other (FIG. 6, operation616). For example, the content server202may store the content descriptor206, associated data descriptor208, and hyperlink210in a single database record. More generally, the content server202may store any associations among the content descriptor206, the associated data descriptor208, and the hyperlink210which enable any one of them to be identified based on another one of them. Although only one set of content descriptor206, associated data descriptor208, and hyperlink210are shown inFIG. 2for purposes of example, the content server202may generate and store additional similar sets of data in response to the user112aand/or other users providing additional content and associated data to the content server202.

The content server202and/or content store204may, for example, be functionally independent of a social networking site, such as Facebook. For example, the content server202may be neither owned nor operated by Facebook or any other social networking site. Similarly, the content store204may be neither owned nor operated by any social networking site, such as Facebook. For example, in one embodiment of the present invention, the content descriptor206(e.g., a copy of the content116a) is stored and otherwise maintained by the server of a social networking site, such as Facebook, while the associated data descriptor208and/or hyperlink210are not stored or otherwise maintained by the server of the social networking site, and the content server202is functionally independent of the server of the social networking site. For example, the content server202and/or content store204may be located at a different physical machine, virtual machine, and/or IP address than the server of the social networking site.

The target of the hyperlink210may, for example, be one or both of the content descriptor206and the associated data descriptor208. For example, in one particular embodiment, the associated data descriptor208is implemented as a proxy web page which contains metadata representing the associated data136, such as in the form of Open Graph Metadata tags. Such a proxy web page may, for example, contain the metadata representing the associated data136but not the content descriptor206or the content116a. For example, if the content descriptor206is a photograph or a link to a photograph, then the metadata representing the associated data136may be Open Graph Metadata tags representing a caption of the photograph. In this embodiment, the target of the hyperlink210is the proxy web page that contains the metadata (e.g., the Open Graph Metadata tags).

Embodiments of the present invention may manifest hyperlinks generated by such embodiments (such as hyperlink140and hyperlink210) in any of a variety of ways. The term “manifest” as used herein refers to generating output that represents the hyperlink, such as visual and/or auditory output. For example, manifesting the hyperlink140or210(or copies thereof, or hyperlinks derived therefrom) may include any one or more of the following: displaying anchor text of the hyperlink, displaying the URL of the target of the hyperlink, displaying one or more images specified by the associated data of the hyperlink (e.g., associated data portion146or associated data descriptor208), and playing one or more multimedia files specified by the associated data of the hyperlink. Additionally or alternatively, manifesting a hyperlink may include generating and outputting sounds representing the hyperlink, such as generating and outputting synthetic speech representing the URL of the target of the hyperlink.

Referring toFIG. 3, a dataflow diagram is shown of a system300for manifesting the hyperlink210according to one embodiment of the present invention. Referring toFIG. 7, a flowchart is shown of a method700performed by the system300ofFIG. 3according to one embodiment of the present invention.

It should be appreciated that although the techniques ofFIGS. 3 and 7are described as being applied to the hyperlink210ofFIG. 2, the same techniques may be applied equally to the modified hyperlinks140and122a-cofFIG. 1. In fact, the hyperlink210ofFIG. 2may be implemented in any of the ways described herein for the modified hyperlink140ofFIG. 1, and vice versa.

The user112amay share the hyperlink210with other users in any of the way disclosed herein, such as by posting the hyperlink210on user112a's social networking site page, which is shown inFIG. 3as Facebook page320afor purposes of example. InFIG. 3, the user112ais shown as having posted a copy310of the hyperlink210on the user112a's Facebook page320a.

When another user, such as user112b, navigates to user112a's Facebook page320a, the user112b's computing device (not shown) transmits a request322to the social networking server that serves the page320a(e.g., Facebook server330) for the page320a. Facebook server330receives the request322(FIG. 7, operation702) and, in the process of processing the request322, encounters the hyperlink310within the page320a. In response to encountering the hyperlink310, the Facebook server transmits a request332for the target of the hyperlink332to content server202(FIG. 7, operation704). The request332may, for example, be an HTTP request for the resource specified by the hyperlink310(i.e., the target of the hyperlink310), such as an HTTP GET request. Content server202receives the request332(FIG. 7, operation706) and, in response, transmits the associated data descriptor208(e.g., the proxy web page containing the associated data descriptor208) to the Facebook server330(FIG. 7, operation708).

In response to receiving the associated data descriptor208, the Facebook server330determines whether the associated data descriptor208contains any Open Graph Metadata tags. If the Facebook server330determines that the associated data descriptor208contains Open Graph Metadata tags, then the Facebook server330uses those tags to manifest (e.g., display) the hyperlink310to the user112bin accordance with the tags, thereby creating a manifestation334of the link310(FIG. 7, operation710). For example, if the associated data descriptor208includes tags that specify a thumbnail image of the content116aand a caption for the content116a, then the Facebook server330uses those tags to render the thumbnail image and the caption to the user112bin the link manifestation334. The Facebook server330may, for example, use the tags to retrieve the thumbnail image (which may be stored, for example, in the context descriptor206in the content store204) and then manifest the retrieved thumbnail image. In this way, the content server202enables the user112ato specify how the hyperlink310will be manifested to the user112bwhen the Facebook server330manifests the hyperlink310to the user112b.

Embodiments of the present invention may also perform any of a variety of actions when a user clicks on or otherwise selects the hyperlink210and thereby issues a command to navigate to the target of the hyperlink210(or a copy of the hyperlink210or any hyperlink derived from the hyperlink210, such as hyperlink310). For example, referring toFIG. 4, a dataflow diagram is shown of a system400for manifesting the target of the hyperlink210according to one embodiment of the present invention. Referring toFIG. 8, a flowchart is shown of a method800performed by the system400ofFIG. 4according to one embodiment of the present invention.

A user, such as user112b, issues a request402to the content server202to navigate to the target of the hyperlink210. The user112may issue the request402in any of a variety of ways, such as by clicking on or otherwise selecting a manifestation of the hyperlink310in user112a's Facebook page320a, in user112b's Facebook page120b, in a non-Facebook web page (i.e., in a web page not hosted by any social networking site), or in an email message or other electronic message. The server portion of the target of the hyperlink310may specify the content server202, thereby causing the user112b's web browser to transmit the request402to the content server202in response to the user112bselecting the manifestation of the hyperlink310.

In response to receiving the request402, the content server202may retrieve the target of the hyperlink210, e.g., the proxy web page mentioned above (FIG. 8, operation804). As mentioned above, the target of the hyperlink210may be a proxy web page containing the associated data descriptor208. Such a web page may be designed to cause the content server202to immediately redirect the requester (e.g., the web browser of user112b) to a web page containing the content descriptor206and/or content described by the content descriptor206(e.g., the content116a) (FIG. 8, operation806). In other words, the content server202may, in response to receiving the hyperlink request402, first retrieve the proxy web page and then, in response to retrieving the proxy web page, retrieve the content descriptor206. For example, the content descriptor206may be implemented as a web page containing the content116a(e.g., a digital photograph) or content derived from the content116a(e.g., a thumbnail of the digital photograph). Therefore, in response to receiving the request402from the user112b's web browser to navigate to the target of the hyperlink210, the content server202may retrieve the associated data descriptor208and (optionally) provide the associated data descriptor208to the user122b. The content server202may then immediately retrieve the web page containing or consisting of the content descriptor206(FIG. 8, operation806). The content server202may then provide a content descriptor404(which may be a copy of the content descriptor206or data derived from the content descriptor206) to the user122b(FIG. 8, operation808). Note that the content server202may, therefore, retrieve the associated data descriptor208and the content descriptor206, and provide the content descriptor206but not the associated data descriptor208to the user122b.

In a particular example in which the content descriptor404is a web page, in response to the user112bclicking on a manifestation of the hyperlink310, the user112b's web browser may receive the content descriptor404web page from the content server202and then render that web page to render the content116a(e.g., digital photograph) to the user112b.

Because every request for the target of the hyperlink210is transmitted to and received by the content server202, the content server202may store a record of each such request, and thereby count the number of such requests, and store a record of such a count. More generally, for each request for a hyperlink stored in the content store204(such as hyperlink210and any other hyperlinks stored in the content store204), the content server202may store any of a variety of information, such as any one or more of the following: (1) an identifier of the requested hyperlink; (2) data identifying the requester (e.g., IP address, social networking site (e.g., Facebook) ID), email address); and (3) a time at which the request was received. The content server202may generate and store, based on such data, any of a variety of metrics, such as the total number of requests received for a particular hyperlink from all requesters, the total number of times all hyperlinks generated by a particular user (e.g., user112a) have been requested by all other users, and the total number of requests received from a particular user (e.g., user112b) for all hyperlinks.

Although certain embodiments are described herein as being applied to a single online social networking system, such as Facebook, this is merely an example and does not constitute a limitation of the present invention. Alternatively, for example, the system100may enable a single modified hyperlink, such as modified hyperlink140, to be shared across a plurality of online social networking systems to perform any of the functions disclosed herein.

Embodiments of the present invention have a variety of advantages. For example, embodiments of the present invention enable the user who shares a hyperlink in an online social networking system to control how that hyperlink appears when recipients of the hyperlink view the hyperlink. This differs from the behavior of existing online social networking systems, which do not provide the user who shares a hyperlink with control over how that hyperlink appears when it is shared. For example, when a user shares a hyperlink using Facebook, Facebook dictates the information that is displayed when the hyperlink is shared. In contrast, embodiments of the present invention enable the user to specify content, such as images and/or text, to be displayed in connection with the hyperlink when it is viewed by users with whom it has been shared. The default content selected by Facebook for display in connection with a particular hyperlink may not be particularly informative or useful. For example, Facebook may select the first or largest image on a shared page to display in connection with a shared hyperlink even though that image is not the most relevant or informative image on the page. In contrast, embodiments of the present invention enable the sharing user to select the image to be displayed in connection with the shared hyperlink. As a result, the sharing user may ensure that the most relevant image, or that the image having some other desirable feature, is displayed in connection with the hyperlink when it is shared.

Another benefit of embodiments of the present invention is that they need not require the creator of the shared hyperlink to modify the hyperlink to enable it to be shared in the ways described herein. Instead, for example, embodiments of the present invention may be applied to conventional hyperlinks in existing social networking site pages. Such hyperlinks, in other words, need not be changed before embodiments of the present invention may be applied to them. More generally, the creators of those hyperlinks need not take any special steps to enable embodiments of the present invention to be applied to those hyperlinks. Embodiments of the present invention therefore facilitate the sharing of hyperlinks in the ways described herein.

Yet another benefit of embodiments of the present invention is that they facilitate the generation of modified hyperlinks, such as the modified hyperlink140. For example, the system100enables the user112ato generate the modified hyperlink140merely by specifying the hyperlink to be shared (e.g., hyperlink116a), the recipients of that hyperlink, and the data (e.g., image and/or text) to be displayed in connection with that hyperlink. In response, the system100automatically generates the modified hyperlink140using the techniques disclosed herein. The user112aneed not know how to modify the original hyperlink to generate the modified hyperlink140. For example, the user112aneed not know how to embed query strings into HTML code. As a result, embodiments of the present invention may be used by users without programming knowledge to share customized hyperlinks with each other.

Any of the functions disclosed herein may be implemented using means for performing those functions. Such means include, but are not limited to, any of the components disclosed herein, such as the computer-related components described below.

The description herein refers to certain online social networking systems, such as Facebook and Twitter, merely for purposes of example. Embodiments of the present invention are not limited to use in conjunction with these particular online social networking systems, but instead may be used in conjunction with any one or more online social networking systems. More generally, embodiments of the present invention may be used in conjunction with any online system for hosting content, such as any web site. Therefore, any reference herein to an “online social networking system” should be understood to refer more generally to any online system for hosting content, whether or not such a system includes social networking features.

Any reference herein to a “Facebook server” should be understood to refer more generally to any server of any online social networking system, such as Facebook, LinkedIn, or Twitter. Furthermore, functions disclosed herein as performed by a server (such as a social networking server) may be performed by a server, a client, or a combination thereof. For example, functions performed by server-side code (e.g., server-side JavaScript) may alternatively be implemented using client-side code (e.g., client-side JavaScript) or a combination of server-side code and client-side code. Conversely, functions performed by client-side code (e.g., client-side JavaScript) may alternatively be implemented using server-side code (e.g., server-side JavaScript) or a combination of client-side code and server-side code.

Any “content” disclosed herein, such as content116aand content116b, may be any kind of content. For example, such content may be or include any one or more of the following in any combination: text, image, audio, video, hyperlinks, web pages or any portion thereof, messages (such as email messages, text messages, or any kind of message transmissible from one user to another user within an online social networking system), wall posts, and any kind of content that may be posted on or otherwise hosted by an online social networking system.

Any reference herein to a “product” should be understood to refer to a product and/or a service. Similarly, any reference herein to a “service” should be understood to refer to a product and/or a service.

Certain concepts described herein may be known by other names. For example, a “wall” on Facebook or other social networking system may also be referred to as a “timeline.” As another example, a “wall post” on Facebook or other social networking system may also be referred to as a “story.” Therefore any reference to a “wall,” “wall post,” or other concept that is also known by other names should be understood to refer to the concept generally, regardless of the name by which it is referred.

The techniques described above may be implemented, for example, in hardware, one or more computer programs tangibly stored on one or more computer-readable media, firmware, or any combination thereof. The techniques described above may be implemented in one or more computer programs executing on (or executable by) a programmable computer including any combination of any number of the following: a processor, a storage medium readable and/or writable by the processor (including, for example, volatile and non-volatile memory and/or storage elements), an input device, and an output device. Program code may be applied to input entered using the input device to perform the functions described and to generate output using the output device.

Each such computer program may be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a computer processor. Method steps of the invention may be performed by one or more computer processors executing a program tangibly embodied on a computer-readable medium to perform functions of the invention by operating on input and generating output. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, the processor receives (reads) instructions and data from a memory (such as a read-only memory and/or a random access memory) and writes (stores) instructions and data to the memory. Storage devices suitable for tangibly embodying computer program instructions and data include, for example, all forms of non-volatile memory, such as semiconductor memory devices, including EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROMs. Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (application-specific integrated circuits) or FPGAs (Field-Programmable Gate Arrays). A computer can generally also receive (read) programs and data from, and write (store) programs and data to, a non-transitory computer-readable storage medium such as an internal disk (not shown) or a removable disk. These elements will also be found in a conventional desktop or workstation computer as well as other computers suitable for executing computer programs implementing the methods described herein, which may be used in conjunction with any digital print engine or marking engine, display monitor, or other raster output device capable of producing color or gray scale pixels on paper, film, display screen, or other output medium.

Any data disclosed herein may be implemented, for example, in one or more data structures tangibly stored on a non-transitory computer-readable medium. Embodiments of the invention may store such data in such data structure(s) and read such data from such data structure(s).