An embodiment of the invention relates generally to filtering the notifications being provided from a third party application to a user of a social networking system based on an action of the user.
Currently, numerous third-party applications may be used in social networking systems. These third-party applications include, for example, multi-player games (e.g., Farmville™ Cityville™ and Words with Friends™), applications linked to the user's blogs (e.g., Wordpress™) as well as applications related to other social networking websites (e.g., Pinterest™, Yelp™, Spotify™ and Turntable.fm™).
The challenge for the social networking systems that act as intermediaries between the user and the third-party applications is to ensure that important information from these applications be received by the user while preventing the user from being spammed or overloaded with unwanted communications.
Once a user has downloaded and accepted the Terms of Service of a third-party application (hereinafter, “application”), the application may use the services of the social networking system to provide communications (hereinafter, “notifications”) to the user. However, without properly filtering the communications to the user, there is great potential for abuse and spam from the applications looking to advertise to user and his connections (“friends”).
One embodiment of the invention is a method for filtering the notifications being provided from a third party application to a user of a social networking system based on an action of the user. The method starts by receiving the notification from the application to the user. If the notification is a first notification sent from the application to the user, the notification is displayed to the user with (i) a prompting message that includes a selectable opt in image, and (ii) a selectable opt out image. The prompting message includes a request to opt in to receiving notifications from the application. If the notification is not the first notification sent from the application to the user, the method determines whether to display the notification to the user by determining whether the user previously opted in to notifications from the application and whether click-through rate (CTR) of notifications from the application is greater than CTR threshold.
Another embodiment of the invention is a non-transitory machine-readable storage medium having stored thereon instruction, when executed by a processor, causes the processor to filter the notifications being provided from a third party application to a user of a social networking system based on an action of the user.
In yet another embodiment of the invention, a social networking system filters a notification being provided from an application to a user of the social networking system based on an action of the user. The system includes a processor to execute the instructions stored in the memory of the system to cause the system to receive the notification from the application to the user and to display the notification to the user with (i) a prompting message with a selectable opt in image, and (ii) a selectable opt out image if the notification is a first notification sent from the application to the user. If the notification is not the first notification sent from the application to the user, the system determines whether to display the notification to the user.
The above summary does not include an exhaustive list of all aspects of the present invention. It is contemplated that the invention includes all systems, apparatuses and methods that can be practiced from all suitable combinations of the various aspects summarized above, as well as those disclosed in the Detailed Description below and particularly pointed out in the claims filed with the application. Such combinations may have particular advantages not specifically recited in the above summary.
The embodiments of the invention are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment of the invention in this disclosure are not necessarily to the same embodiment, and they mean at least one. In the drawings:
In the following description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques have not been shown to avoid obscuring the understanding of this description.
An online social networking system allows users to associate themselves and establish connections with other users of the social networking system. When two users become connected, they are said to be “connections,” “friends,” “contacts,” or “associates” within the context of the social networking system. Generally being connected in a social networking system allows connected users access to more information about each other than would otherwise be available to unconnected users. Likewise, becoming connected within a social networking system may allow a user greater access to communicate with another user, such as by email (internal and external to the social networking system), instant message, text message, phone, or any other communicative interface. Finally, being connected may allow a user access to view, comment on, download or endorse another user's uploaded content items. Examples of content items include but are not limited to messages, queued messages (e.g., email), text and SMS (short message service) messages, comment messages, messages sent using any other suitable messaging technique, an HTTP link, HTML files, images, videos, audio clips, documents, document edits, calendar entries or events, and other computer-related files.
Users of social networking systems may interact with objects such as content items, user information, user actions (for instance communication made within the social networking system, or two users becoming connections), or any other activity or data within the social networking system. This interaction may take a variety of forms, such as by communicating with or commenting on the object; clicking a button or link associated with affinity (such as a “like” button); sharing a content item, user information or user actions with other users; downloading or merely viewing a content item; or by any other suitable means for interaction. Users of a social networking system may also interact with other users by connecting or becoming friends with them, by communicating with them, or by having common connections within the social networking system. Further, a user of a social networking system may form or join groups, or may become a fan of a fan page. Finally, a social networking system user may interact with content items, websites, other users or other information outside of the context of the social networking system's web pages that are connected to or associated with the social networking system. For instance, an article on a news website might have a “like” button that users of the social networking system can click on to express approval of the article. These interactions and any other suitable actions within the context of a social networking system may be recorded in social networking system data.
The social networking system maintains a user profile for each user. Any action that a particular member takes with respect to another member is associated with each user's profile, through information maintained in a database or other data repository. Such actions may include, for example, adding a connection to the other member, sending a message to the other member, reading a message from the other member, viewing content associated with the other member, attending an event posted by another member, among others. The user profiles may also describe characteristics, such as work experience, educational history, hobbies or preferences, location or similar data, of various users and include data describing one or more relationships between users, such as data indicating users having similar or common work experience, hobbies or educational history. Users can also post messages specifically to their profiles in the form of status updates. Users of a social networking system may view the profiles of other users if they have the permission. In some embodiments, becoming a connection of a user automatically provides the permission to view the user's profile.
The social networking system also attempts to deliver the most relevant information to a viewing user employing algorithms to filter the raw content on the network. Content may be filtered based on the attributes in a user's profile, such as geographic location, employer, job type, age, music preferences, interests, or other attributes, as well as based on the interests of the user with respect to another user who is related to the generated content (e.g., the user who performed an action that resulted in the content or information). Newsfeed stories may be generated to deliver the most relevant information to a user based on a ranking of the generated content, filtered by the user's affinity, or attributes. Similarly, social endorsement information may be used to provide social context for advertisements that are shown to a particular viewing user.
The social networking system also attempts to notify the user of important changes to content that are relevant to the user. For instance, the social networking environment may display a message (“notification”) to the user when his friend posts on the user's profile or when a friend “likes” one of the user's posts. These notifications are examples of user-to-user notifications. The social networking environment may also provide notifications from a third party application (“application”) to the user. Described in further detail below is a method of filtering these application-to-user notifications in the social networking system to provide the user with a better user experience.
Users interact with the social networking system 101 using user electronic devices 1021-102n, respectively. The user electronic devices 1021-102n may be, for example, a personal computer, a laptop computer, a mobile telephone communication device, a smartphone, or a tablet computer. The user electronic devices 1021-102n may communicate with the social networking system 101 via an application such as a web browser or native application. Typical interactions between the user electronic devices 1021-102n and the social networking system 101 include operations such as viewing profiles of other users of the social networking system 101, contributing and interacting with media items, joining groups, listing and confirming attendance at events, checking in at locations, liking certain pages, creating pages, and performing other tasks that facilitate social interaction.
The social networking system also provides application developers with the ability to create applications that extend the functionality of the social networking system to provide new ways for users to interact with each other. For example, an application may provide an interesting way for a user to communicate with other users, or allow users to participate in multiplayer games, or collect some interesting information such as news related to a specific topic and display it to the member periodically. To the applications, the social networking system resembles a platform. In some embodiments, external third party applications 1041-104m (m>1) running on the external server 103 interact with the social networking system 101. In other embodiments, a version of the external applications 1041-104m is downloaded and installed on the user electronic device 1021-102n. In other embodiments, these applications 1041-104m are stored and run on the social networking system 101.
Once a user has downloaded and accepted the Terms of Service of an application, the application may also use the services of the social networking system to provide notifications to the user. These notifications may include actions that have been taken by the user's friend in the application and calls to action the user (e.g., Lin N. has played the word “spiffy” in Words with Friends™. It's your turn.), advertisements from the application to the user (e.g., If you like Farmville™, you may also like Cityville™), and invitations from friends to use the application (e.g., Lin N. has sent you a request in Words with Friends™).
For instance, in one embodiment, the social graph 201 stores the connections that each user has with other users of the social networking system 101. The social graph 201 may also store second-order connections, in some embodiments. The connections may thus be direct or indirect. In one embodiment, the action store 202 stores actions that have been performed by the users of the social networking system 101, along with an indication of the time associated with those actions and references to any objects related to the actions. The action store 202 may also store actions that have been performed by the users in third party applications 1041-104m. The social graph 201 and the action store 202 may utilize one or more different types of storage such as hard disk drive storage, other nonvolatile memory, and volatile memory such as dynamic random access memory.
The social networking system 101 may also include platform applications 2031-203i (i>1), which are applications that operate within the social networking system 101 but may be provided by third parties other than an operator of the social networking system 101. For instance, platform applications 2031-203i may include social games (e.g., Words with Friends™ Farmville™), messaging services (e.g., IMO™, Whatsapp™), and any other application that uses the social platform provided by the social networking system 101.
The authentication manager 205 authenticates a user on user device 1021 as being a registered user of the social networking system 101. The authentication manager 205 allows a user to log into the social networking system 101 from any user device 1021-102n that has an application supporting the social networking system 101. The application programming interface (API) 204 works in conjunction with the authentication manager 205 to validate users via external third party applications 1041-104m (m>1).
In some embodiments, the social networking system 101 also includes a processor (not shown) that is coupled to the storage components (e.g., social graph 201, the action store 202), the platform applications 2031-203i, the API 204, and the authentication manager 205. The processor may be a microprocessor, a microcontroller, a digital signal processor, or a central processing unit. The term “processor” may refer to a device having two or more processing units or elements, e.g. a CPU with multiple processing cores. The processor may be used to control the operations of social networking system 101 by executing software instructions or code stored in the storage components.
In some embodiments, external third party applications 1041-104m running on the external server 103 interact with the social networking system 101 via API 204. The third party applications 1041-104m can perform various operations supported by the API 204, such as enabling the application to send a user a notification through the social networking system 101. The ranking module 206 included in social networking system 101 ranks the notifications generated by the applications 1041-104m according to selected factors. These selected factors may be user-specific factors that take into account whether the user has engaged with the application 1041 within a predetermined timeframe (e.g. within the last month) and the frequency at which the user has engaged with the notifications from the application 1041 within a period of time (e.g., daily, weekly, or monthly). This period of time may be a rolling window. In some embodiments, if the user has not engaged with the application 1041 in the predetermined timeframe, the ranking module 206 will allocate a low importance to the notifications from the application 1041 and prevent the application 1041 from sending notifications to the user. In other embodiments, the frequency at which the user has engaged with the notifications from the application 1041 is based a click-through rate (CTR) which is the rate at which a user or users selects or clicks the notifications from the application 1041 within a period of time. Accordingly, the CTR may be calculated on a clicks-per-notifications being generated by the application 1041 to the user. The ranking module 206 calculates the CTR for application 1041 and determines whether the calculated CTR is less than a threshold CTR. This calculation may be on a system wide basis for all users of the application, on a filtered basis (for example, users of the application that meet certain requirements), or on an individual user basis. If the calculated CTR is less than the threshold CTR, the ranking module 206 will allocate a low importance to the notifications from the application 1041 and prevent the application 1041 from sending notifications to the user. In other embodiments, the frequency at which the user has engaged with the notifications from the application 1041 is based the rate at which the user engages with the notifications being generated from the application 1041 (e.g., like the notification or photos and/or comments included in the notifications, share the notification, bookmarking the application 1041 via the notification, playing the application 1041) within a period of time.
The first notification also includes an image or text or any suitable mechanism 403 that may be selected by the user to opt out of receiving a type of notification or all notifications from the application 1041. The opt out image or text 403 may be an image of an X. In one embodiment, when the image or text 403 is clicked by the user, an image may be displayed that provides the user with opt out options. The options may include opting out of all notifications from the application 1041 or opting out of a type of notification from the application 1041. For instance, if the first notification from the Farmville™ application is regarding “watering vegetables”, this first notification is displayed to the user with the prompt message 401 and opt in image or text 402 as well as the opt out image or text 403. If the user clicks on the opt out image 403, the user is provided with the options to opt out of all notifications from Farmville™ or to opt out of notifications regarding “vegetables”. As illustrated in
The notifications from the application 1041 to the user that contain a simple text message attributed to the application are called unstructured notifications. This text message may include free form text. For instance, Farmville™ can send “Farmville™ Your farm is on fire!” as an unstructured notification. The application 1041 developers may also use the system 101's templates to create the notifications. In one embodiment, the developers may send the message, image, or other data that the developers want to include in a notification. The developers may also provide variables (e.g., user identification, user's connection identification, etc.). The system 101 may use the data and the variables received from the developers and may substitute the variables with actual user data (e.g., the user's name, the connection's name, etc.) to generate the notification based on the templates. Thus, the templates may allow the system 101 to personalize the notifications to the users such that the notification is more relevant to each user receiving the notifications. In other embodiments, the templates are pre-approved and provided by the system 101 to create the notifications. In some embodiments, the system 101 may use a different template for each type of notification. Based on the user's opt in and opt out selections for each type of notification, the system 101 can determine which template is not relevant to the user. Using the templates, the system 101 may also aggregate the notifications provided by the application 1041 such that the system 101 displays all the notifications pertaining to one type of notification as an aggregated notification of that type. For example, if Farmville™ sends the notifications “Lin N. watered your vegetables in Farmville™”, “Ryan E. watered your vegetables in Farmville™”, and “Justin M. watered your vegetables in Farmville™” to the social networking system 101, the system 101 may aggregate the notifications as “Lin N. and 2 other friends watered your vegetables in Farmville™.” These notifications that are generated as a result of an action from a friend in the application 1041 are called structured notifications.
Since a user may access the system 101 via a plurality of electronic devices 1021-102n, in some embodiments, the system 101 determines on which electronic device 1021-102n (e.g., laptop, smart phone, tablet computer) the user was last active and pushes or sends the notification to that electronic device. If the user does not acknowledge the notification within a period of time, the system 101 then sends the notification to the next electronic device on which the user was last active. In one embodiment, the system 101 may provide a notification from the application 1041 to each of the electronic devices 1021-102n used by the user to access the system 101 or used by the user to interact with application 1041. In another embodiment, the system 101 determines which of the user's electronic devices 1021-102n includes application 1041 installed thereon. In this embodiment, the system 101 provides the notification from application 1041 only to the user's electronic devices 1021-102n that have the application 1041 installed thereon.
In one embodiment, as shown in
Referring back to Block 502, if the system determines that the received notification from the application is not the first notification from the application to the user, the system 101 determines whether the user has previously opted out of receiving notifications from this application (Block 507). The system 101 blocks the notifications from the application to the user if the user has opted out of receiving notifications from this application (Block 508). If the user did not opt out of receiving notifications from this application, the system 101 determines whether the CTR for notifications from the application to the user is greater than or equal to a threshold CTR (Block 509). The threshold CTR may be set by a system administrator or other entity, or be a predefined value. CTR may be kept system wide or based on demographics (such as location, age group, etc.) that are common with the user. The CTR may also be user as well as application specific. If the CTR for the notifications from the application is less than the threshold CTR (potentially indicating an unpopular application that users do not use), the system 101 blocks all notifications from the application to the user (Block 510) unless the user later opts in, but if the CTR for the notification from the application is greater than or equal to the threshold CTR, the system 101 displays the notification from the application to the user with the selectable opt out mechanism (Block 511). For instance, the notification being displayed at Block 511 may be the notification in
The foregoing description of the embodiments of the invention has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure.
Some portions of this description describe the embodiments of the invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof.
Any of the steps, operations, or processes described herein may be performed or implemented with one or more hardware or software modules, alone or in combination with other devices. In one embodiment, a software module is implemented with a computer program product comprising a computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described.
Embodiments of the invention may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, and/or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory, tangible computer readable storage medium, or any type of media suitable for storing electronic instructions, which may be coupled to a computer system bus. Furthermore, any computing systems referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
Embodiments of the invention may also relate to a product that is produced by a computing process described herein. Such a product may comprise information resulting from a computing process, where the information is stored on a non-transitory, tangible computer-readable storage medium and may include any embodiment of a computer program product or other data combination described herein.
Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.
This application is a continuation of U.S. application Ser. No. 13/844,720, filed Mar. 15, 2013, which is hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 13844720 | Mar 2013 | US |
Child | 15060059 | US |