REDUCING ALREADY VIEWED CONTENT IN SOCIAL NETWORKS

An approach for reducing already viewed content in a social network, the approach including receiving a first content in a social network service and creating an identifier corresponding to the first content. The approach includes retrieving one or more identifiers associated with content previously viewed by a user and determining whether the user has previously viewed the first content. Responsive to determining that the user has previously viewed the first content, removing the first content from one or more social networking services accessed by the user.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of social networking and more particularly to reducing the circulation of already viewed content in social networks.

Users of social networks enjoy sharing information. Social networking services such as Facebook®, LinkedIn®, and Twitter® capture large volumes of information from various sources that may be shared among users. Typically, a user sees an informative article, an amusing video, or other information that may be of interest to the user's friends and posts the article or video to a group of his or her friends. Similarly, another user with an overlapping group of friends sees the same article or video and posts it to his or her friends. Posting and re-posting of information on social networks occurs routinely, creating multiple posts of the same information or content that are received by a user from one or more friends. Additionally, the same content may be posted multiple times to the user by friends using multiple social networks, for example, if friends on both Facebook® and on LinkedIn® share the interesting article with the user, thus creating a duplication of the same shared social media content.

SUMMARY

Embodiments of the present invention disclose a method, a computer program product, and a system for reducing already viewed content in a social network. The method includes receiving, by one or more computer processors, a first content in a social network service and creating an identifier corresponding to the first content. The method includes retrieving one or more identifiers associated with content previously viewed by a user and determining whether the user has previously viewed the first content. Responsive to determining that the user has previously viewed the first content, the method includes removing the first content from one or more social networking services accessed by the user.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that a user may receive the same content from multiple friends within a social networking service. Furthermore, embodiments of the present invention recognize that the same content may be received in more than one social networking service. Embodiments of the present invention recognize that viewing or re-reading of previously viewed social networking shared content is unnecessary to many social networking service users. The elimination of previously viewed content shared in a social network, such as the same article received from multiple friends, is time consuming, especially when the same content is proliferated on many different social networks within various groups of friends and on many different social network services.

Embodiments of the present invention provide a method to reduce the circulation of already viewed content in social networks. Embodiments of the present invention create an identifier such as a hash value associated with each received content shared with a user in any of his or her social networks. Embodiments of the method provide a way to create an already viewed list that tracks an identifier corresponding to content such as shared articles, photographs, videos, comments, and news items in social networks viewed or acted upon by a user. Embodiments of the present invention provide a method to compare the identifier of the received content to an already viewed list of identifiers corresponding to content previously viewed by a user. Embodiments of the present invention prevent a user from viewing a display of already viewed content based, at least in part, on the comparison of an identifier of received content to identifiers present in an already viewed list for a user.

As depicted, distributed data processing environment100includes servers120A-120Y (representing a variable number of servers, not limited to the number illustrated), server150, and computers130A,130B, and130C all interconnected over network110. Network110can include, for example, a telecommunications network, a local area network (LAN), a virtual LAN (VLAN), a wide area network (WAN), such as the Internet, or a combination of the these, and can include wired or wireless connections. Network110can include one or more wired and/or wireless networks that are capable of receiving and transmitting data including receiving GPS signals or radio waves, voice, and/or video signals, including multimedia signals that include voice, data, and video information. In general, network110can be any combination of connections and protocols that will support communications between servers120A-120Y, computers130A-130C, server150, and other computing devices (not shown) within distributed data processing environment100.

Servers120A-120Y and server150can each be a standalone computing device, an application server, a web server, a management server, a database server, or any other electronic device or computing system capable of receiving, sending, and processing data. In another embodiment, each of servers120A-120Y and server150can be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with computers130A-130C, and other computing devices (not shown) within distributed data processing environment100via network110. In various embodiments, each of servers120A-120Y and server150represents a computing system utilizing clustered computers and components (e.g., database server computers, application server computers, etc.) that act as a single pool of seamless resources such as used in a cloud-computing environment when accessed within distributed data processing environment100.

Each of servers120A-120Y hosts a respective social networking service such as social networking service121A-121Y (representing a variable number of social networking services, not limited to the number illustrated). Servers120A-120Y send and receive to and from computer130A-130C information such as user generated posts and shared content in social networking services121A-121Y respectively.

Server150includes already viewed database155. Server150may send and receive information to and from each of servers120A-120Y and computers130A-130C. Server150receives information such as identifiers corresponding to already viewed content from already viewed plug-in133A, already viewed plug-in122A, and other already viewed plug-ins (not depicted inFIG. 1) from computers130A-130C stored in already viewed database155. Already viewed database155stores an already viewed list of identifiers corresponding to previously viewed content viewed by each user. In various embodiments, server150receives identifiers corresponding to content already viewed by a user from one or more servers120A-120Y and/or one or more computers130A-130C. Server150may receive identifiers associated with each user accessing or utilizing an already viewed plug-in (e.g., already viewed plug-in133A and already viewed plug-in122A inFIG. 1). Servers120A-120Y and server150may include internal and external hardware components, as depicted and described in further detail with respect toFIG. 4.

Social networking services (SNS)121A-121Y are each one of any known social networking service such as Facebook®, Instagram®, or the like. A social networking service such as SNS121A is a platform to build social networks or social relations among people who share similar interests, activities, backgrounds or real-life connections. Each of SNS121A-121Y provides users of the service with the ability to post and share information or content such as articles, comments, videos, links, photographs, and the like with friends and contacts in one or more of the user's social networks in SNS121A-121Y. Each of SNS121A-121Y stores and shares received content such as articles, videos, messages, links to blogs, and other similar information of interest to the users who are members of the respective service.

In various embodiments, an already viewed plug-in is a software extension to one or more social networking services (e.g., a software extension to SNS121A-121Y such as already viewed plug-in122A depicted inFIG. 1), a software extension to a mobile application (e.g., a plug-in or a software extension to a social networking app such as social networking app131A) used in a mobile computer, and a software extension to one or more browsers (e.g., already viewed plug-in133A on browser132A) that provide the ability to prevent the display of content received in SNS121A-121Y previously viewed by a user (e.g., user1). An already viewed plug-in uses methods similar to those discussed with respect toFIGS. 2 and 3to determine if a received content in SNS121A-121Y is a content previously viewed or acted upon by a user (e.g., “liked” or commented on).

Already viewed plug-in122A is a software extension or a plug-in to SNS121A that prevents the display of content already viewed by a user such as user1. Already viewed plug-in122A automatically creates an identifier, for example using a hash function, for each content shared with a user in SNS121A. Already viewed plug-in122A retrieves an already viewed list of identifiers corresponding to each received content (e.g., from already viewed database155on server150) that has been viewed or acted upon (e.g., “liked”) by user1. Already viewed plug-in122A compares the identifier corresponding to each received content to an already viewed list of identifiers corresponding to content previously viewed by user1to determine if a received content in SNS121A is a content previously viewed by user1(e.g., when the identifier for a received content matches an identifier on the already viewed list for user1). Already viewed plug-in122A removes previously viewed content from SNS121A. While depicted as already viewed plug-in122A for SNS121A, the function provided already viewed plug-in122A is not limited SNS121A. Already viewed plug-in122A tracks the received content in each social network within a social network service (e.g., SNS121A) to determine received content of high interest to the social network composed of a group of a user friends. The code and routines of already viewed plug-in122A may be configured to function with any of SNS121A-121Y to prevent a user from displaying previously viewed content in any social networking service such as SNS121A-121Y that is utilizing a social networking service plug-in. For example, already viewed plug-in122Y (not depicted inFIG. 1) is a software extension to SNS121Y to prevent the display of already viewed content to user1using the method discussed later inFIG. 3.

Computers130A-130C can each be one or more of a laptop computer, a tablet computer, a smart phone, or any programmable electronic device capable of communicating with various components and devices within distributed data processing environment100, via network110. In general, computers130A-130C each represent any programmable electronic device or combination of programmable electronic devices capable of executing machine readable program instructions and communicating with other computing devices (not shown) within distributed data processing environment100via a network, such as network110.

As depicted inFIG. 1, computers130A-130C each include browser132A with already viewed plug-in133A, and user interface (UI)135in each of computers130A-130C. Browser132A is representative of a type of browser technology (e.g., a browser) that can be used for fetching and retrieving information from network110. As depicted inFIG. 1, computer130A is a smart phone for user1, computer130B is a tablet for user1, and computer130C is a desktop computer for user1. Computers130A-130C are depicted as an example of one embodiment of the present invention, but not limited to the types of devices or the number of devices depicted inFIG. 1). Computers130A-130C may include internal and external hardware components, as depicted and described in further detail with respect toFIG. 4.

Social networking app131A is an application or program that may be used by computers130A-130C to access a social networking service, such as SNS121A. For example, social networking app131on computer130A (e.g., a smartphone used by user1) may be a mobile application used to access SNS121A. In various embodiments, an already viewed plug-in is included with social networking app131. Already viewed plug-in133A may be configured or added to social networking app131A. An already viewed plug-in in a mobile application, such as social networking app131A in computer130A, is capable of providing the function to identify and prevent the display of content previously viewed by user1that is shared in SNS121A. Additionally, an already viewed plug-in for accessing a social networking service may be configured to be included in social networking app for any of SNS121A-121Y (e.g., social networking app131Y not depicted inFIG. 1for SNS121Y) to which user1subscribes.

Browser132A is a software application that may be used for retrieving, presenting, and traversing information resources on the Internet. Browser132A may be, e.g., any known type of web browser. Additionally, computers130A-130C may include more than one browser (e.g., computer130A may include both browser132A and one or more additional browsers). Based, at least in part, on a user input via UI135, browser132A may locate a social networking service such as SNS121Y on server120Y for user access. As depicted inFIG. 1, each instance of browser132A includes already viewed plug-in133A. In an embodiment, one or more browsers on a computing device does not include an already viewed plug-in.

Already viewed plug-in133A is a software plug-in or an extension to browser132A. In an embodiment, already viewed plug-in133A is a plug-in or extension associated with a specific browser (i.e., the plug-in uses code consistent with the functionality of the browser). For example, already viewed plug-in133A may include code and routines for an extension to browser132A (e.g., already viewed plug-in133A will not be supported by another browser technology or type, say browser type Z). In another embodiment, already viewed plug-in133A is a cross-browser extension to browser132A that is capable of functioning on more than one browser or browser technology. Development frameworks for cross-browser extensions use one set of code and/or one application programming interface (API) to provide functionality of a plug-in or an extension on more than one browser technology (e.g., a development framework allowing cross-bowser extensions operate on three different browsers).

Already viewed plug-133A retrieves and identifies, for example using a hash function, received content shared with user1in one or more of SNS121A-121Y. Similar to already viewed plug-in122A, the received content shared with user1may be any type of received content in SNS121A-121Y such as an article in a newsfeed, a blog entry, or any type of shared user-generated content such as an article, a video, one or more photographs, a comment, and the like. Already viewed plug-in133A tracks the displayed or already viewed content (e.g., articles, videos, etc.) provided by any of SNS121A-121Y that are accessed using browser132A and displayed on any computing device (e.g., computers130A-130C) to user1. Already viewed plug-in133A creates an already viewed list of the identifiers such as hash values of already viewed content viewed or read by user1using one or more of SNS121A-121Y through browser132A. Already viewed plug-in133A sends the identifiers corresponding to each viewed content to already viewed database155on server150, which stores an already viewed list of identifiers corresponding to content viewed by user1. Already viewed plug-in133A updates the already viewed list when user1views additional content. Already viewed plug-in133A adds the already viewed list for user1identifiers corresponding to the viewed content.

Already viewed plug-in133A retrieves the already viewed list from already viewed database155to compare the respective identifiers corresponding to each received content to each identifier corresponding to content previously viewed by user1included on the already viewed list to determine if the received content has been viewed by user1. Already viewed plug-in133A generates a command preventing display of content corresponding to identifiers of previously viewed content to SNS121A-121Y.

User interface135provides an interface for each user of computers130A-130C with server120A-120Y and other computing devices in distributed data processing environment100(not shown). In one embodiment, user interface135is a graphical user interface (GUI) or a web user interface (WUI) and can display text, documents, web browser windows, user options, application interfaces, and instructions for operation, and include the information (such as graphic, text, and sound) that a program presents to a user and the control sequences the user employs to control the program. In another embodiment, user interface135may also be mobile application software that provides an interface between the users of computers130A-130C and server120A-120Y. Mobile application software, or an “app,” is a computer program designed to run on smart phones, tablet computers and other mobile devices. User interface135enables computers130A-130C to receive a user selection of information to share with other users or friends in a social network.

FIG. 2is flowchart200depicting operational steps of one example of a method to reduce already viewed content using a browser plug-in, in accordance with an embodiment of the present invention. As depicted,FIG. 2includes one example of the operational steps of a method to reduce the display of already viewed content in a social network to user1by executing already viewed plug-in133A on browser132A.

In step202, already viewed plug-in133A retrieves shared content. For example, when a user initiates already viewed plug-in133A (e.g., by selecting a browser icon for browser132A in a toolbar or menu) and provides user authentication or sign-in to one or more selected SNS121A-121Y, then already viewed plug-in133A retrieves from accessed SNS121A-121Y shared content such as articles or videos. In an embodiment, already viewed plug-in133A retrieves from an accessed social network service (e.g., one or more of SNS121A-121Y) shared content received since the last access of the accessed social network service (e.g., one or more of SNS121A-121Y) by already viewed plug-in133A. For example, already viewed plug-in133A retrieves from one or more of SNS121A-121Y the shared articles, comments, and photographs received while already viewed plug-in133A did not have access to SNS121A-121Y (e.g., the user was not signed into SNS121A-121Y and/or was not using already viewed plug-in133A).

In various embodiments, already viewed plug-in133A is configured to access each SNS121A-121Y of which user1is a member of (e.g., saves in respective storage of computers130A-130C account information for user1such as an account location, userid, account log-on and/or password for previously accessed SNS121A-121Y). For example, already viewed plug-in133A automatically accesses SNS121A-121Y to which user1is a member to retrieve updates to content shared in one or more of the user1's social networks (i.e., content received since user1's last use of already viewed plug-in133A). In various embodiments, already viewed plug-in133A retrieves, from each of SNS121A-121Y accessed by already viewed plug-in133A, shared content received while already viewed plug-in133A has been inactive. For example, when already viewed plug-in133A is initiated, already viewed plug-in133A automatically fetches or retrieves from accessible SNS121A-121Y recently received content (i.e., content that has not yet been retrieved by already viewed plug-in133A). In one embodiment, already viewed plug-in133A retrieves content from each accessed SNS121A-121Y on a determined frequency (e.g., every ten minutes).

In step204, already viewed plug-in133A creates an identifier for received content. In various embodiments, already viewed plug-in133A creates an identifier using known hash functions for each shared content retrieved from any of SNS121A-121Y accessed. For example, already viewed plug-in133A uses a hash function to create a hash value, a hash code, or other similar hash function output to identify retrieved content received by user1in accessed SNS121A-121Y. Already viewed plug-in133A is not limited to the use of hash functions to create identifiers and may use other known methods of generating identifiers for content.

Already viewed plug-in133A creates an identifier, for example a hash value or hash code, for each content shared with user1in SNS121A-121Y accessed by the plug-in. In various embodiments, the identifier corresponds to the content of each post or notification of shared content and is specific to the content (e.g., the identifier is not based on a notification or a post but, on the content associated with the notification or post).

In step206, already viewed plug-in133A retrieves an already viewed list, for example from already viewed database155on server150. An already viewed list is a list of identifiers (e.g., hash values) corresponding to content that has been displayed to user1for viewing, reading, or content that user1has acted upon (e.g., user1“liked” or comments on the content). In an embodiment, already viewed plug-in133A uses known algorithms to track an amount of time a user views the content to determine if user1has read or viewed a displayed content (e.g., a video). When user1selects for viewing a shared content or comments on shared content, then the identifier corresponding to the viewed content is sent by already viewed plug-in133A to already viewed database155for inclusion in the already viewed list for user1.

In various embodiments, an already viewed list includes an identifier for any shared content viewed or acted upon by user1received from any already viewed plug-in (e.g., a browser plug-in, a mobile application plug-in, or a plug-in or extension to a social networking service). Examples of already viewed plug-ins sending identifiers of user-generated content previously viewed by user1to an already viewed list for user1stored in already viewed database155include browser already viewed plug-ins such already viewed plug-in133A depicted inFIG. 1, server-side already viewed plug-ins such as already viewed plug-in122A in SNS121A depicted inFIG. 1, and already viewed plug-ins (not shown) for mobile applications such as social networking app131A depicted in computer130A ofFIG. 1. In an embodiment, an already viewed list is stored in, and retrieved from, storage on computers130A-130C in addition to storing in already viewed database155on server150. An already viewed list stored in already viewed database155is specific to a user (e.g., user1).

In decision step208, already viewed plug-in133A determines whether user1has previously viewed the received content. Already viewed plug-in133A compares the identifier of the received content to identifiers on the retrieved already viewed list to determine if user1has already viewed the received content in a SNS121A-121Y accessed with an already viewed plug-in. The already viewed list for user1may be retrieved from already viewed database155on server150. Already viewed plug-in133A determines whether any of the identifiers on the already viewed list corresponding to content previously viewed by user1match the identifier corresponding to the received content.

If already viewed plug-in133A determines the identifier of the received content matches an identifier on the already viewed list, then the plug-in133A determines the user has previously viewed the received content (yes branch of decision step208). Already viewed plug-in133A sends a command to SNS121A-121Y to not display the received content in social network feeds (step210). For example, already viewed plug-in133A sends a command to remove the received content from SNS121A-121Y feeds associated with user1, such that the feeds do not include previously viewed content. In an embodiment, already viewed plug-in133A uses facial or object recognition algorithms for determining if a received or shared photograph or video matches a stored photograph and video previously viewed by user1stored in a database (e.g., already viewed database155).

If already viewed plug-in133A determines that user1did not previously view the received content (no branch of decision step208), then already viewed plug-in133A does not send a command to prevent the display of the received content (step212). When already viewed plug-in133A determines the identifier of the received content does not match at least one of the plurality of identifiers on the already viewed list, the plug-in133A determines user1has not yet viewed the received content in any SNS121A-121Y accessed by an already viewed plug-in. If already viewed plug-in133A determines that the user has not viewed the received content, then already viewed plug-in133A does not send a command to any of SNS121A-121Y to block the display of the received content.

In an embodiment, already viewed plug-in133A includes a pre-set threshold number of times a notice of content is included in a social network service feed without an action such as a user request to display the content or “liking” the content. If already viewed plug-in133A is configured with a threshold or pre-set number of views in social network service feed without user selection and a social network feed including the content has been viewed or appears in a social network feed for the threshold or pre-set number of times to the user without the user initiating a display, a comment, or other user action for the content, then already viewed plug-in133A determines that the user is not interested in the content.

If already viewed plug-in133A determines the user is not interested in the content, already viewed plug-in133A sends a command to each of SNS121A-121Y the user is a member of to remove the selection for the unacted upon content from all social network service feeds associated with user1(e.g., each of SNS121A-121Y user1is associated with). For example, if the threshold is configured as ten displays of a content in a social network service feed without a user action (e.g., user1displays or comments on the content) and the user has looked at a feed of asocial network service (e.g., SNS121A) ten times without viewing, then already viewed plug-in133A sends a command to each of SNS121A-121Y accessed by user1to remove the unacted upon content. The already viewed plug-in133A removes the content determined not to be of interest to the user from each of the SNS121A-121Y feeds associated with user1and sends the identifier corresponding to the content for inclusion on user1's already viewed list (e.g., sends to already viewed database155on server150via network110). In an embodiment, already viewed plug-in133A tracks the number of times a user sees a content without an action by user1(e.g., no selection of the content by user1) and when the number of times the user has seen the content without an action exceeds a pre-set threshold of times, then already viewed plug-in133A sends a command to remove the content from SNS121A-121Y associated with user1.

In various embodiments, already viewed plug-in133A includes the ability to track the number of comments and user actions on each content by each group of the user's friends (e.g., within each specific social network or configured group of friends). In this embodiment, when already viewed plug-in133A determines that a pre-set number of times a user views or acts on (e.g., re-posts, or comments on a content) have occurred on a specific content within a social network (e.g., a group of friends), then already viewed plug-in133A indicates to user1that significant interest in the content is occurring within one or more of user1's social networks. For example, when users in a social network view or act upon a specific content sixty times and the pre-set number of times the user's in the social network view or act upon on a specific content is fifty times, already viewed plug-in133A sends a command to the social network service to highlight the specific content to user1. The highlighted content may be a highly relevant content to a social network of user1's friends. In an embodiment, the specific content is highlighted in the social network feed for the social network finding the specific content highly relevant (i.e., the specific content is not highlighted in other social networks or other social network services). In an embodiment, already viewed plug-in133A highlights the specific content determined of interest or relevant to a group of friends (e.g., to a social network) in all social networks in SNS121A-121Y accessed by user1. For example, already viewed plug-in133A sends a command to each of SNS121A-SNS121Y user1is a member of to highlight the specific content determined to be interesting to one of user1's social networks in SNS121A. The highlight indicates to the user that the specific content is a highly relevant content within at least one social network (e.g., a group of the user's friends). Already viewed plug-in133A may highlight in one or each of the identified user's social network feeds the specific relevant content by a color, a type font, an icon, or other known identification method.

In an embodiment, already viewed plug-in133A highlights in each social network service feed, for any SNS121A-121Y user1accesses, the specific content highly relevant to at one or more of user1's social networks. For example, already viewed plug-in133A highlights the specific content in user1's social networks in accessed SNS121A-121Y when the number of users viewing the specific content in at least one social network exceeds the pre-set number of views. In one embodiment, already viewed plug-in133A highlights a display of specific content when a pre-set number of views or actions by members of any of user1's social networks in accessed SNS121A-121Y exceed a pre-set threshold. For example, if a picture is received one hundred times by user1's social network, then the picture will be highlighted as a highly relevant or interesting content.

In various embodiments, any already viewed plug-in (e.g., a server-side already viewed plug-in or a mobile application already viewed plug-in) includes the ability to track interest (i.e., posts, views, and comments) within a group of the user's friends and to highlight in one or more of the user's SNS121A-121Y feeds a high level of interest in a specific content.

In step214, already viewed plug-in133A receives user1's selection to display the received content, or to otherwise interact with the content. When a user displays a content in one of SNS121A-121Y accessed by already viewed plug-in133A or takes an action such as commenting on a content, already viewed plug-in133A adds the identifier corresponding to the displayed content to the already viewed list (step216). For example, already viewed plug-in133A sends the identifier corresponding to the viewed content to already viewed database155for inclusion in the already viewed list associated with user1.

In response to receiving a user input from user1to display (or act upon) the received content, or otherwise receiving a notification of user interaction with the content, already viewed plug-in133A sends a command to remove instances of the received content from one or more social network feeds (step218) from SNS121A-121Y accessed by user1. Already viewed plug-in133A sends a command to remove the display of the viewed, received content from any accessed social network feed associated with the user (i.e., from any SNS121A-121Y that the user is a member of). In various embodiments, already viewed plug-in133A performs steps216and218simultaneously. The method described in steps202through218provide the ability to reduce the circulation of previously viewed content shared in one or more social networks in SNS121A-121Y accessed by user1.

Already viewed plug-in133A prevents user1from viewing the previously viewed content by retrieving an already viewed list from a database such as already viewed database155that receives updates of user1viewed content from multiple social networks in any of SNS121A-121Y associated with user1when accessed with already viewed plug-in133A. Already viewed plug-in133A may be used from any computing device such as one or more of computers130A-130C configured with the plug-in for a browser such as browser132A. Furthermore, in various embodiments, already viewed plug-in133A prevents user1from viewing previously viewed content accessed using any already viewed plug-in (e.g., a browser already viewed plug-in, a server-side already viewed plug-in for any of SNS121A-121Y, or an already viewed plug-in for any mobile application) on any computing device (e.g., computers130A-130C).

Already viewed list for user1, stored in a database such as already viewed database155, receives identifiers of user1viewed content from any already viewed plug-in, such already viewed plug-in discussed with reference to133A. Any already viewed plug-in can compare the already viewed list of identifiers corresponding to content previously viewed by the user to an identifier corresponding to received or shared content. In various embodiments, already viewed plug-in133A prevents the display to a user of previously viewed content in each SNS121A-121Y feed associated with the user based on the comparison of identifiers. For example, an already viewed plug-in for a social networking app (e.g., social networking app131A depicted inFIG. 1) prevents a user from viewing previously viewed user-generated content when one or more social networks are accessed using a social networking app. with an already viewed plug-in (not depicted inFIG. 1).

FIG. 3is a flowchart300depicting operational steps of one example of a method to reduce already viewed content using a social networking service plug-in in accordance with an embodiment of the present invention. While the steps of a plug-in for a social networking service such as already viewed plug-in122A in SNS121A are discussed in reference to one social networking service (e.g., SNS121A), the steps for an already viewed plug-in are not limited to use with SNS121A and already viewed plug-in122A but, may be applied with any already viewed plug-in corresponding to any other social networking service (e.g., any of SNS121A-121Y). For example, an already viewed plug-in for SNS121Y may be already viewed plug-in122Y (not depicted inFIG. 1).

In step302, already viewed plug-in122A receives content shared with user1in SNS121A. For example, already viewed plug-in122A receives in near-real time each content shared with user1in any social network in SNS121A. In an embodiment, already viewed plug-in122A retrieves from SNS121A each recently received shared content when user1initiates already viewed plug-in122A by accessing SNS121A.

In step304, already viewed plug-in122A creates an identifier for a received content. For example, already viewed plug-in122A creates an identifier for the received content using the methods discussed in reference to step204inFIG. 2.

In step306, using the methods previously described with reference to step206inFIG. 2, already viewed plug-in122A retrieves an already viewed list. For example, already viewed plug-in122A retrieves an already viewed list from already viewed database155on server150(depicted inFIG. 1). As previously discussed, the already viewed list is a list of identifiers corresponding to each content selected for display or otherwise acted upon by user1.

In step308, using the methods previously described with reference to decision step208inFIG. 2, in decision step308, already viewed plug-in122A determines whether user1has previously viewed the received content. Already viewed plug-in122A determines whether the identifier corresponding to the received content matches an identifier in the retrieved already viewed list. In an embodiment, already viewed plug-in122A using the method previously discussed with respect to already viewed plug-in133A, highlights the specific content of interest or highly relevant to a social network of friends in each social network in SNS121A.

When already viewed plug-in122A determines user1has previously viewed the received content (yes branch decision308), then already viewed plug-in122A sends a command to SNS121A not to display the received content in the feed of SNS121A to the user (step310). If the identifier of the received content matches an identifier in the already viewed list, then already viewed plug-in122A determines that user1has previously viewed or acted upon the received content. If the content has been viewed by the user, the content is not provided to SNS121A feed(s) to user1. The SNS121A feeds associated with user1will not include the received content.

However, if the user has not viewed the received content (no branch decision308), then already viewed plug-in122A does not send a command to SNS121A to prevent the display of the received content (step312) in SNS121A feed to user1. In this example, the received content will be available in SNS121A feeds to user1. As previously discussed, already viewed plug-in122A determines the user has not viewed the received content when the identifier of the received content does not match any identifier in the already viewed list. Additionally, in an embodiment, using the methods discussed with respect to already viewed plug-in133A, already viewed plug-in122A tracks the number of times a user sees a content without an action by user1(e.g., no selection of the content by user1) and when the number of times the user has seen the content without an action exceeds a pre-set threshold configured in the plug-in, then already viewed plug-in122A removes from SNS121A the content determined not to be of interest to user1.

In step314, already viewed plug-in122A receives user1input to select or display the received content. User1on any computing device such as any one of computers130A-130C elects to view the received content in SNS121A. In various embodiments, already viewed plug-in122A receives a notification of the selection from one or both of SNS121A and computers130A-130C.

In response to the display of the received content to user1, already viewed plug-in122A adds the identifier for the received content to the already viewed list (step316). Already viewed plug-in122A sends the identifier corresponding to the received content to already viewed database155for inclusion in the already viewed list for user1.

Additionally, in response to the display of the received content to user1, already viewed plug-in122A sends a command to remove all instances of the content from the social network feeds (step318) to user1in SNS121A. For example, if the received content is a new stock market update that has been shared with user1by friends, John Smith, Sally Jones, John Doe, and Jane Doe, then when user1displays the content or the new stock market update from Jane Doe all other instances of the new stock market update shared from John Smith, Sally Jones, and John Doe are removed from user1's social network feeds in SNS121A. Already viewed plug-in122A sends the identifier corresponding to the new stock market update to already viewed database155for inclusion on user1's user's already viewed list.

As discussed with reference to the steps associated with flowchart200and flowchart300, an already viewed plug-in may be a software plug-in extending the function of any browser, mobile application, or server-side program or service such as SNS121A-121Y. An already viewed plug-in uses an already viewed list associated with a user retrieved from a database such as already viewed database155to determine if a user has previously viewed a shared content in one or more SNS121A-121Y.

FIG. 4is block diagram400depicting components of a computer system in accordance with at least one embodiment of the present invention. As depicted,FIG. 4depicts the components of a computer system, which is an example of a system such as server120A-120Y, server150, or a system such as computers130A-130C within distributed data processing environment100, in accordance with an embodiment of the present invention. It should be appreciated thatFIG. 4provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments can be implemented. Many modifications to the depicted environment can be made.

Servers120A-120Y, server150, and computers130A-130C can include processor(s)404, cache414, memory406, persistent storage408, communications unit410, input/output (I/O) interface(s)412, and communications fabric402. Communications fabric402provides communications between cache414, memory406, persistent storage408, communications unit410, and input/output (I/O) interface(s)412. Communications fabric402can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, communications fabric402can be implemented with one or more buses.

Memory406and persistent storage408are computer readable storage media. In this embodiment, memory406includes random access memory (RAM). In general, memory406can include any suitable volatile or non-volatile computer readable storage media. Cache414is a fast memory that enhances the performance of processor(s)404by holding recently accessed data, and data near recently accessed data, from memory406.

Program instructions and data used to practice embodiments of the present invention are stored in persistent storage408for execution and/or access by one or more of the respective processor(s)404via cache414. In this embodiment, persistent storage408includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage408can include a solid-state hard drive, a semiconductor storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer readable storage media that is capable of storing program instructions or digital information.

The media used by persistent storage408may also be removable. For example, a removable hard drive may be used for persistent storage408. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer readable storage medium that is part of persistent storage408.

Communications unit410, in these examples, provides for communications with other data processing systems or devices, including resources of servers120A-120Y, server150, computers130A-130C, and other computing devices not shown inFIG. 1. In these examples, communications unit410includes one or more network interface cards. Communications unit410may provide communications with either or both physical and wireless communications links. Program instructions and data used to practice embodiments of the present invention may be downloaded to persistent storage408through communications unit410.

I/O interface(s)412allows for input and output of data with other devices that may be connected to server120A-120Y and computers130A-130C. For example, I/O interface(s)412may provide a connection to external device(s)416such as a keyboard, a keypad, a touch screen, a microphone, a digital camera, and/or some other suitable input device. External device(s)416can also include portable computer readable storage media, for example, devices such as thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention can be stored on such portable computer readable storage media and can be loaded onto persistent storage408via I/O interface(s)412. I/O interface(s)412also connect to a display418.

Display418provides a mechanism to display data to a user and may be, for example, a computer monitor. Display418can also function as a touchscreen, such as a display of a tablet computer.