The present invention relates to providing a customized media broadcast to a group of users.
With the proliferation of digital media content and the popularity of social networking services, there is a desire for new ways in which users can experience media content in a social context.
The present invention relates to providing customized data to a social group of users. In the preferred embodiment, the present invention relates to providing a customized media broadcast to a social group of users referred to as a broadcast group. In general, a broadcast group including a number of users is identified. User profiles of the users forming the broadcast group are obtained and aggregated to provide a group profile for the broadcast group. More specifically, in one embodiment, the users forming the broadcast group are weighted. The users forming the social group may be weighted as a function of, for example, their distances from a group center of the broadcast group; their social network relationships; or the like. The user profiles of the users may then be aggregated according to the weights assigned to the corresponding users to provide the group profile of the broadcast group. A customized media broadcast is then delivered to the users forming the broadcast group based on the group profile of the broadcast group. The customized media broadcast may include customized media content selected based on the group profile, customized advertisement content selected based on the group profile, or both customized media content and customized advertisement content selected based on the group profile.
Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.
The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
First, users are identified for a social group for delivery of a customized media broadcast (step 100). The social group for delivery of a customized media broadcast is hereinafter referred to as a broadcast group. In general, the users for the broadcast group may be identified in any suitable manner. In one embodiment, a user participating in a social networking activity, such as a chat session, may initiate creation of the broadcast group. In response, one or more other users participating in the social networking activity may be prompted or otherwise queried to determine whether they desire to join the broadcast group. In another embodiment, a user may initiate creation of the broadcast group. In response, one or more other users having a social relationship with the user may be prompted or otherwise queried to determine whether they desire to join the broadcast group. For example, the other users may be users in a contact list of the user initiating the broadcast group. The contact list may be, for example, an email contact list, an instant messaging buddy list, a contact list maintained by a mobile phone of the user, a contact list of the user maintained by a social networking service such as a social networking website, or the like. The user initiating the creation of the broadcast group and the other users that choose to join the broadcast group are then identified as the users for the broadcast group.
Next, user profiles for the users in the broadcast group are obtained (step 102). For each user, the user profile of the user preferably includes media preferences and demographic information. The media preferences may include information identifying one or more preferred music genres, one or more preferred music artists, one or more preferred decades or similar time periods of music, one or more preferred video genres, one or more preferred actors or actresses, one or more preferred video directors, or the like. For example, in one embodiment, the media preferences include weights assigned to each of a number of music genres, weights assigned to each of a number of music artists, weights assigned to each of a number of decades or similar time periods of music, weights assigned to each of a number of video genres, weights assigned to each of number of actors or actresses, weights assigned to each of a number of video directors, or the like. The weights may be assigned by the user or automatically assigned based on, for example, an analysis of songs in a media collection of the user, a play history of the user, a purchase history of the user identifying songs previously purchased by the user, or the like. The demographic information may include, for example, age, gender, income level, or the like. In addition, the user profile may include a purchase history of the user including information identifying media items previously purchased by the user as well as information identifying non-media items previously purchased by the user. The purchase history of the user may be used to identify purchase habits of the user. Lastly, the user profile may include a home address, or mailing address, of the user.
In addition, in this embodiment, the users in the broadcast group are weighted (step 104). In one embodiment, the users are weighted as a function of their distances from a group center of the users forming the broadcast group. Preferably, the users are assigned weights that are inversely related to their distances from the group center. As such, users closer to the group center are weighted the highest.
More specifically, in order to weight the users based on their distances from the group center, a location of each user in the broadcast group is obtained. The locations of the users may be obtained using any desired technique. For example, in one embodiment, the users are equipped with mobile devices such as, but not limited to, mobile smart phones equipped with Global Positioning System (GPS) receivers. The locations of the mobile devices may then be obtained from the mobile devices and utilized as the locations of the users. As another alternative, the users may be equipped with mobile devices such as, but not limited to, mobile smart phones where tower triangulation may be used to determine the locations of the mobile devices and thus the users. Once the locations of the users in the broadcast group are obtained, the group center is determined. In one embodiment, the group center is a center of gravity of the broadcast group and determined based on the following equation:
where GroupCenter is the group center, N is the number of users in the broadcast group, and ri is the location of the ith user with respect to a predefined reference point expressed ri=xi*i+yi*j. Equation (1) may be re-written such that the group center is expressed in terms of an x-component and a y-component:
where GroupCenterX and GroupCenterY define the group center in Cartesian coordinates, N is the number of users in the broadcast group, and xi and yi define the location of the ith user with respect to a predefined point in Cartesian coordinates. For each user, a distance between the user and the group center is then determined. The users are then weighted based on their distances from the group center.
As an example, referring to
where a normalized value of x=3 in this example corresponds to −78° 56′ 02″ Longitude. Likewise, using the normalized values for the latitude components of the locations of the users U1 through U5:
where a normalized value of y=2.2 in this example corresponds to 35° 54′ 02.2″ Latitude. As such, the group center in this example is 35° 54′ 02.2″ Latitude and −78° 56′ 02″ Longitude. Note that the group center is not limited to being the center of gravity of the broadcast group. Other schemes for determining the group center based on the locations of the users in the broadcast group will be apparent to one of ordinary skill in the art upon reading this disclosure and are to be considered within the scope of the present invention.
Once the group center is known, for each user of the users U1 through U5, the distance of the user from the group center is determined. In this example, the distance from the user U1 to the group center is 24 meters, the distance from the user U2 to the group center is 46.8 meters, the distance from the user U3 to the group center is 64.5 meters, the distance from the user U4 to the group center is 80.7 meters, and the distance from the user U5 to the group center is 72.3 meters. In this example, the weights for the users U1 through U5 are determined by first determining a value for each user based on the equation:
where Di is the distance from the ith user to the group center and N is the number of users, which in this example is five (5). Using Equation (4), the following values are provided:
In order to assign weights to the users U1 through U5 that are inversely related to the distances of the users U1 through U5 from the group center, in this example, the values determined using Equation (4) and illustrated in Table 1 are assigned as weights of the users U1 through U5 such that the highest value is assigned as the weight of the user closest to the group center, which in this example is the user U1; the next highest value is assigned as the weight of the next closest user to the group center, which in this example is the user U2; etc. Accordingly, the weights are assigned as shown in Table 2.
As a result, the users U1 through U5 are assigned weights that are inversely related to their distances from the group center.
Note that the process discussed above for assigning weights to the users U1 through U5 based on the distances of the users U1 through U5 from the group center is exemplary. Numerous alternative schemes for determining the weights to assign to the users in the broadcast group based on the distances of the users U1 through U5 from the group center will be apparent to one of ordinary skill in the art and are to be considered within the scope of the present invention. For example, as one alternative, the weights may be assigned to the users in the broadcast group using the following equation:
where weighti is the weight assigned to the ith user, Di is the distance between the ith user and the group center, and N is the number of users in the broadcast group. Using Equation (5), the following weights may be assigned to the users U1 through U5 from the example above:
Returning to step 104 of
As an example,
where weighti is the weight assigned to the ith user, InNetwork_Friendsi is the number of “in network” friends or contacts of the ith user, and N is the number of users.
Note that Equation (6) is exemplary and not intended to limit the scope of the present invention. With respect to
where weighti is the weight assigned to the ith user, InNetwork_Friendsi is the number of “in network” friends or contacts of the ith user, Out_of_Network_Friendsi is the number of “out of network” friends or contacts of the ith user, and N is the number of users. Further, A and B are user-defined or system-defined weighting values, where A+B preferably equals one (1).
Returning to step 104 of
Still further, the weights assigned to the users in the broadcast group may additionally or alternatively be a function of an amount of time each of the users in the broadcast group has participated in the broadcast group. This may be particularly beneficial where users are enabled to dynamically join and exit the broadcast group. For example, once the users have chosen to join the broadcast group, the users may log-in or log-out of the broadcast group as desired. As such, users that have been logged-in to the broadcast group the longest may be assigned greater weights.
Once the users in the social group are weighted, the user profiles of the users in the broadcast group are aggregated according to the weights assigned to the corresponding users to provide a group profile for the broadcast group (step 106). Continuing the example from
where AggregateWeightROCK is the aggregate weight for the Rock music genre for the group profile, weighti is the weight assigned to the ith user, and weightROCK,i is the weight assigned to the Rock music genre in the user profile of the ith user. Thus, using Equation (7), the aggregate weight for the Rock music genre for the group profile is:
AggregateWeightROCK=(0.28·2)┤(0.25·0)┤(0.22·1)┤(0.08·0)┤(0.16·0)=0.78.
Likewise, the aggregate weights for the remaining media preferences and demographics may be determined for the group profile of the broadcast group.
Returning to
The content server 14 includes a customized media broadcast function 22 and optionally a royalty tracking function 24, each of which may be implemented in software, hardware, or a combination thereof. In this embodiment, the customized media broadcast function 22 includes a broadcast group creation function 26, a profile aggregation function 28, a content selection function 30, and a streaming function 32. The broadcast group creation function 26 generally operates to identify two or more users from the users 18-1 through 18-N for a broadcast group. The profile aggregation function 28 then assigns weights to the users forming the broadcast group, obtains user profiles of the users forming the broadcast group, and aggregates the user profiles of the users forming the broadcast group according to the weights assigned to the users forming the broadcast group to provide a group profile for the broadcast group. The content selection function 30 then selects advertisements and media content for a customized media broadcast for the broadcast group from an advertisement (“ad”) repository 34 and a media content repository 36, respectively, based on the group profile for the broadcast group. In this embodiment, the streaming function 32 then delivers media content and advertisements forming the customized media broadcast to media playback devices of the media playback devices 16-1 through 16-N of the users forming the broadcast group. More specifically, in one embodiment, the streaming function 32 streams the customized media broadcast to the media playback devices of the users in the broadcast group via a multicast communication channel. The multicast communication channel may be provided according to the Internet Protocol version 6 (IPv6). The royalty tracking function 24 generally operates to track delivery of the media items from the media content repository 36 such that appropriate royalties are paid to the corresponding owners of the media content.
The ad repository 34 includes a number of advertisements such as, for example, audio or video advertisements that may be utilized when creating customized media broadcasts. The media content repository 36 includes a number of media items such as songs, videos, or the like that may be utilized when creating customized media broadcasts. Note that while the ad repository 34 and the media content repository 36 are illustrated as being hosted by the content server 14, the present invention is not limited thereto. The ad repository 34 and/or the media content repository 36 may be completely or partially hosted by one or more remote sources and accessible to the content server 14.
The media playback devices 16-1 through 16-N may be, for example, personal computers, mobile smart phones having media playback capabilities, portable media players having network capabilities, set-top boxes, or the like. Using the media playback device 16-1 as an example, the media playback device 16-1 includes a playback function 38-1, which may be implemented in software, hardware, or a combination thereof. In addition, in this example, the media playback device 16-1 hosts a contact list 40-1 of the user 18-1. The contact list 40-1 identifies one or more other users from the users 18-2 through 18-N that are contacts or friends of the user 18-1. Likewise, the media playback devices 16-2 through 16-N include playback functions 38-2 through 38-N and host contact lists 40-2 through 40-N, respectively.
In response, the content server 14, and more specifically the broadcast group creation function 26 of the customized media broadcast function 22, sends join requests to the user devices 16-2 and 16-3 of the users 18-2 and 18-3 (steps 202 and 204). Again, the users 18-2 and 18-3 may be the users in identified by the contact list 40-1 of the user 18-1, other users with which the user 18-1 is participating in a social network activity, or the like. In this example, both the user 18-2 and the user 18-3 choose to join the broadcast group. As such, responses indicating that the users 18-2 and 18-3 desire to join the broadcast group are returned to the content server 14 (steps 206 and 208). In response, the broadcast group creation function 26 of the customized media broadcast function 22 of the content server 14 identifies the user 18-1, the user 18-2, and the user 18-3 as users forming the broadcast group.
The profile aggregation function 28 of the customized media broadcast function 22 of the content server 14 then obtains user profiles of the users 18-1, 18-2, and 18-3 forming the broadcast group (step 210). In one embodiment, the user profiles of the users 18-1 through 18-N are hosted by the content server 14 and therefore obtained from local storage. In another embodiment, the user profiles of the users 18-1 through 18-N may be obtained from one or more remote sources such as, for example, the media playback devices 16-1 through 16-N. In this embodiment, the profile aggregation function 28 of the content server 14 weights the users 18-1, 18-2, and 18-3 forming the broadcast group, as discussed above (step 212). The profile aggregation function 28 then aggregates the user profiles of the users 18-1, 18-2, and 18-3 according to the weights assigned to the users 18-1, 18-2, and 18-3 to provide a group profile for the broadcast group (step 214).
The content selection function 30 of the customized media broadcast function 22 of the content server 14 then selects advertisements and/or media content for the customized media broadcast from the ad repository 34 and the media content repository 36, respectively, based on the group profile of the broadcast group (step 216). Using the group profile of
The profile aggregation function 48 of the negotiation server 44 then obtains user profiles of the users 18-1, 18-2, and 18-3 forming the broadcast group (step 310). In one embodiment, the user profiles of the users 18-1 through 18-N are hosted by the negotiation server 44 and therefore obtained from local storage. In another embodiment, the user profiles of the users 18-1 through 18-N may be obtained from one or more remote sources such as, for example, the media playback devices 16-1 through 16-N. In this embodiment, the profile aggregation function 48 of the negotiation server 44 weights the users 18-1, 18-2, and 18-3 forming the broadcast group, as discussed above (step 312). The profile aggregation function 48 then aggregates the user profiles of the users 18-1, 18-2, and 18-3 according to the weights assigned to the users 18-1, 18-2, and 18-3 to provide a group profile for the broadcast group (step 314).
Based on the group profile for the broadcast group, the source selection function 50 of the negotiation server 44 then selects one of the streaming media servers 52-1 through 52-M as a source for the customized media broadcast for the broadcast group (step 316). More specifically, in one embodiment, the negotiation server 44 provides the group profile of the broadcast group to each of the streaming media servers 52-1 through 52-M. In response, each of the streaming media servers 52-1 through 52-M generates a bid form and returns the bid form to the negotiation server 44. Using the streaming media server 52-1 as an example, in one embodiment, the bid form generated by the streaming media server 52-1 includes a list of media content and advertisements for a proposed customized media broadcast for the broadcast group selected based on the group profile of the broadcast group. Note that the bid form may additionally or alternatively include other information describing or defining the media content and/or advertisements for the proposed customized media broadcast. In addition, the bid form may include an ad time ratio corresponding to a ratio of advertisement time to total playback time for the proposed customized media broadcast. The bid form may also include an advertisement rating for one or more of the advertisements for the proposed customized media broadcast. Still further, the bid form may include a minimum number of users required for the broadcast group. Lastly, the bid form may include a commitment duration defining a period of time that the streaming media server 52-1 will commit to providing the proposed customized media broadcast.
Upon receiving the bid forms from the streaming media servers 52-1 through 52-M, the source selection function 50 of the negotiation server 44 selects one of the streaming media servers 52-1 through 52-M as the source of the customized media broadcast for the broadcast group based on the information contained in the bid forms. For example, the source selection function 50 may select the streaming media server corresponding to the proposed customized media broadcast that most closely matches the group profile of the broadcast group. In addition or alternatively, the source selection function 50 may consider the ad time ratio, the minimum number of users, the commitment duration, or the ad rating for each of the streaming media servers 52-1 through 52-M when selecting the source for the customized media broadcast for the broadcast group. In another embodiment, the source selection function 50 may provide the bid forms, or the information from the bid forms, to the media playback devices 16-1, 16-2, and 16-3 of the users 18-1, 18-2, and 18-3 forming the broadcast group. The information from the bid forms may then be presented to the users 18-1, 18-2, and 18-3 at the media playback devices 16-1, 16-2, and 16-3, and the users 18-1, 18-2, and 18-3 may vote or otherwise select one of the streaming media servers 52-1 through 52-M as the source for the customized media broadcast for the broadcast group.
Assuming that the streaming media server 52-1 is selected as the source of the customized media broadcast for the broadcast group, in this embodiment, the negotiation server 44 then obtains the customized media broadcast from the streaming media server 52-1 (step 318). For example, the negotiation server 44 may request streaming of the customized media broadcast from the streaming media server 52-1 to the negotiation server 44. The negotiation server 44 then delivers the customized media broadcast to the media playback devices 16-1, 16-2, and 16-3 of the users 18-1, 18-2, and 18-3 in the broadcast group (step 320). In this embodiment, the negotiation server 44 streams the customized media broadcast to the media playback devices 16-1, 16-2, and 16-3 via a multicast communication channel. However, the present invention is not limited thereto.
In an alternative embodiment, the negotiation server 44 may cause delivery of the customized media broadcast from the streaming media server 52-1 to the media playback devices 16-1, 16-2, and 16-3 of the users 18-1, 18-2, and 18-3 in the broadcast group. For example, the negotiation server 44 may cause the media playback devices 16-1, 16-2, and 16-3 to request the customized media broadcast from the streaming media server 52-1. In response, the streaming media server 52-1 may stream the customized media broadcast to the media playback devices 16-1, 16-2, and 16-3 via separate communication channels or a multicast communication channel. As another example, the negotiation server 44 may instruct the streaming media server 52-1 to stream the customized media broadcast to the user devices 16-1, 16-2, and 16-3 via separate communication channels or a multicast communication channel.
The present invention provides substantial opportunity for variation without departing from the spirit or scope of the present invention. For example, the discussion above focuses on the scenario where each of the users 18-1 through 18-N is associated with a corresponding one of the media playback devices 16-1 through 16-N. However, the present invention is not limited thereto. Multiple users may be associated with a single media playback device. For example, multiple users may be associated with a single network-enabled audio system. As such, those users may be identified as a broadcast group. The profiles of those users may be obtained and aggregated at the audio system, a negotiation server, or a content server, as discussed above. Note that if the locations of the users are needed for weighting the users, the locations of the users may be obtained from corresponding mobile devices such as, for example, GPS-enabled mobile phones of the users. A customized media broadcast may then be delivered to the broadcast group at the audio system.
Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.