System and apparatus for assessing reach, engagement, conversation or other social metrics based on domain tailored evaluation of social media exposure
Claim Score by NHIP
Abstract
Embodiments described herein provide a social media analytics platform. An entity may be configured with respect to the platform and a number of social media accounts, and other data such as aliases or search terms associated with the entity. Data is collected at certain intervals from the various online sites, including social media sites, using the various disparate and proprietary interfaces and data models provided by the sites and the configurations for the social media accounts associated with an entity. Using this data obtained from these online sites one or more scores can be calculated or update based on the data, where the score(s) may serve to quantify a facet of the entity's social media exposure and may serve to be domain specific to the entity. The scores for each of the indices for an entity can thus serve to quantify facets of an entity's social media exposure.

Term
10.3 yearsto projected expiry
Projected expiry 21 January 2037, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
18 claims: 2 independent, 16 dependent
- 1A system, comprising:a social media analytics platform coupled to each of one of more online sites over a network, wherein the one or more online sites include at least one social media site and each online site provides a proprietary interface for requesting data from that online site, the social media analytics platform configured with a plurality of entities, each entity associated with a domain of a plurality of domains and having an account at each of the online sites, and the social media analytics platform is further configured so each online site is associated with a plurality of data points wherein the social media analytics platform further comprises: a data store;and a set of computer devices, each computer device including a processor, the set of computer devices implementing: an update process module operable to update the data store with values for the plurality of data points for the plurality of entities by: determining a plurality of accounts to update, where each account is associated with one of the plurality of entities and one of the online sites;for each account of the plurality of accounts: forming a request for the plurality of data points associated with the online site associated with the account, wherein the request conforms to the proprietary interface provided by that online site and requests values for the plurality of data points associated with the online site for the entity associated with the account;sending the request to the online site associated with the account over the network;receiving a response to the request, where the response includes a value returned by the associated online site for each of the plurality of data points associated with the online site associated with the account;and storing the value for each of the plurality of data points received from the online site in the data store in association with the entity and the account;a scoring module operable to determine scores for facets of social media exposure for the plurality of entities based on the values for the plurality of data points for the plurality of entities by: accessing the data store to determine the value for each of a first set of the plurality of data points for the entity, wherein the first set of data points are associated with a first facet of social media exposure;determining a first score for the entity for the first facet of social media exposure utilizing a weight for each of the first set of data points, wherein the weight is specific to the domain associated with the entity;accessing the data store to determine the value for each of a second set of data points of the plurality of data points for the entity, wherein the second set of data points are associated with a second facet of social media exposure;determining a second score for the entity for the second facet of social media exposure utilizing a weight for each of the second set of data points, wherein the weight is specific to the domain associated with the entity;and an interface module operable to generate interfaces for presentation of scores for facets of social media exposure for the plurality of entities by: presenting the first score for the entity and the second score for the entity in association with that entity in a first interface accessed over the network.
- 18Broadest claimClaim Score 38, average(NHIP)A system, comprising:a social media analytics platform coupled to each of one of more online sites over a network, wherein the one or more online sites include at least one social media site and each online site provides a proprietary interface for requesting data from that online site, the social media analytics platform configured with a plurality of entities, each entity associated with a domain of a plurality of domains and having an account at each of the online sites, and the social media analytics platform is further configured so each online site is associated with a plurality of data points wherein the social media analytics platform further comprises: means to update a data store with values for the plurality of data points for the plurality of entities;means for determining a plurality of scores, each score associated with a facets of social media exposure, the plurality of scores for each entity based on the values for the plurality of data points associated with that entity and the domain of the entity;and means for presenting the for the entity in association with that entity in a first interface accessed over the network.
Independent claims2
274 paragraphs in 7 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
0001This application claims a benefit of priority under 35 U.S.C. 119(e) to United States Provisional Patent Application No. 61/883,801, filed Sep. 27, 2013, entitled “Social Media Engagement, Influence and Sponsorability System and Method” by Savelli et. al, which is hereby fully incorporated by reference herein.
TECHNICAL FIELD
0002This disclosure relates to obtaining and using data from disparate social media and other online sites utilizing the varied interfaces employed by those sites, including data on an entity's online and social media presence; and the use of that data to assess the online and social media exposure of an entity by quantifying facets of an entity's social media exposure in a domain specific manner.
BACKGROUND
0003Endorsement or sponsorship deals with various entities (e.g., athletes, celebrities, politicians, teams, other brands, leagues, etc.) are powerful marketing tools utilized by many brands. It is difficult, however, to quantify the potential efficacy of a marketing association (e.g., endorsement or sponsorship, etc.) with an entity with any degree of certainty. These problems are due in no small part to the fact that any assessment of the visibility, popularity or presence of a potential endorser or sponsor lacks any sort of insight into the reasons behind that status. The visibility could be due to a variety of causes and be due to notoriety or popularity, one of which may be potentially valuable while the other may be anathema to a brand who desires a certain image. Of course, in some circumstances that same notoriety could also be highly desirable for certain brands. As can be seen then, evaluating the potential efficacy of an entity in a marketing role may be difficult.
0004Such an evaluation may be further complicated by a brand's desire to determine the value of an entity within certain spheres of influence occupied by that entity, namely within a particular domain occupied by that entity. Thus, while it may be useful to attempt an evaluation of an entity's overall efficacy as a marketer, it may also be useful to know an entity's efficacy as a marketer within his or her own specific domain. For example, a brand may desire to determine a baseball player's marketability specifically within the domain of baseball. Part and parcel with this evaluation, then, is a brand's desire to evaluate entities relative to one another and relative to one another within a domain such that entities can effectively be compared with one another to arrive at marketing decisions for a brand. So, to continue with the above example, a brand may desire to know how a particular baseball player compares to other baseball players as relates to marketability.
0005Complicating the process of these types of marketability evaluations is the fact that, in recent years, insights from online presence, social media and social media conversations are changing the way brands make marketing decisions. Currently, online and social media exposure of entities may be significant criteria in marketing decisions made by brands with respect to endorsement or sponsorship deals with those entities. The assessment of an entity's online and social media exposures is, however, fraught with the same difficulty as the general assessment of the visibility, popularity or presence of an entity. While many social media sites provide some proprietary metrics for exposure generally, it is again difficult to suss out the reasons behind an entity's online and social media exposure. Like exposure generally, not all online or social media exposure is good exposure where most brands are concerned.
0006Moreover, the ever increasing prevalence of online outlets and social media sites has made an assessment of social media exposure of an entity difficult as well. The sheer number of social media sites across which an entity may have a presence, each of which may expose an entity in a different manner and which provides different methods of interaction and different data models makes the collection and evaluation of such data extremely difficult. Additionally, an entity's social media exposure may not be limited to just that entity's account with a particular social media site, as other users may link to, or otherwise, associate with or promulgate content associated with an entity.
0007It would thus be desirable to be able to interface with, and obtain data from, disparate online and social media sites despite the varied interfaces and data models used by those sites, amalgamate data on an entity's online and social media presence from these disparate online and social media sites and be able to evaluate that data to assess the online and social media exposure by quantifying facets of an entity's online and social media exposure in a domain specific manner that facilitates comparison between such entities.
SUMMARY OF THE DISCLOSURE
0008Embodiments described herein provide a social media analytics platform to assist companies or individuals in obtaining and aggregating social content and other content from a variety of sources to, for example, better understand an entity's social media exposure or presence. An entity may be configured with respect to the platform and a number of social media accounts, and other data such as aliases or search terms associated with the entity. Data is collected at certain intervals from the various online sites, including social media sites, using the various disparate and proprietary interfaces and data models provided by the sites and the configurations for the social media accounts associated with an entity. Using this data obtained from these online sites then, (e.g., social media sites or other online source such as a search engine or the like) one or more scores can be calculated or update based on the data, where the score(s) may serve to quantify a facet of the entity's social media exposure and may serve to be domain specific to the entity. The scores for each of the indices for an entity can thus serve to quantify facets of an entity's social media exposure.
0009Calculating scores for facets of an entity's social media exposure in a domain specific manner and normalizing such scores facilitates the comparing and contrasting of entities to one another within and across both facets and domains. Moreover, in addition to calculating domain specific scores for particular facets of social media exposure an aggregate score that can rank all entities within the database with a single score or ranking (e.g., for a particular facet or an overall score) can also be determined. Such an overall score may allow entities to be compared across domains.
0010Embodiments of such a social media analytics platform may therefore provide a whole host of advantages. While all data obtained from the online sites by the social media analytics platform, or determined therefrom, can be sortable and searchable, the platform can also be configured to allow a user to conduct searches of entities (such as athletes, teams and leagues to use sports as an example) within or across domains based on their rankings in a particular facet (e.g., reach, engagement and conversation) of social media exposure. This can enable brands to make better decisions on which entities they choose for product endorsements and also creates a social media gauge for analyzing the value of a social media footprint. The platform can also provide metrics on social media content such as tracking top social media posts among all athletes (or other entities) as well as for each individual.
0011To limit the effect of rate limits imposed in the collection of data from online sites and to effectively deal with the different rate limits that may be imposed by different sites while minimizing the impact on the freshness of the data used by embodiments of a social media analytics platform, embodiments described herein can monitor which data has been acquired for each entity and continually moderate and coordinate data retrieval across the social media platforms or search sites and entities, maximizing the data pulled from each site given the imposed rate limits without slowing or idling the social media analytics platform, while simultaneously limiting the number of errors received from the online sites. For example, if the number of requests using twitter's API has reached or exceeded a capacity or rate limit for a given timeframe, the data from another online site may be gathered until a request rate for twitter falls below the threshold rate limit imposed by twitter. This results in increased efficiencies in time and expense. The analytics platform can spread out requests over time and fully utilize parallel update processes in a way that respects the rate limiting while still achieving near real-time tracking of systems. Moreover, by applying these rate limiting techniques maximum use can be made of the free access granted by such online sites, allowing operators of social media analytics platform to avoid being charged a fee for accessing such data or obtaining a higher rate limit with respect to a particular online site.
0012These, and other, aspects of the invention will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. The following description, while indicating various embodiments of the invention and numerous specific details thereof, is given by way of illustration and not of limitation. Many substitutions, modifications, additions or rearrangements may be made within the scope of the invention, and the invention includes all such substitutions, modifications, additions or rearrangements.
BRIEF DESCRIPTION OF THE DRAWINGS
0013The drawings accompanying and forming part of this specification are included to depict certain aspects of the disclosure. A clearer impression of the disclosure will become more readily apparent by referring to the exemplary, and therefore nonlimiting, embodiments illustrated in the drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like features (elements). The drawings are not necessarily drawn to scale.
0014<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of one embodiment of an architecture that includes a social media analytics platform.
0015<figref idref="DRAWINGS">FIG. 2</figref> is a flow diagram of one embodiment of obtaining data associated with a facet of social media exposure.
0016<figref idref="DRAWINGS">FIG. 3</figref> is a flow diagram of one embodiment of a method for generating a score for a facet of social media exposure.
0017<figref idref="DRAWINGS">FIG. 4</figref> is a flow diagram of one embodiment of obtaining data associated with a facet of social media exposure.
0018<figref idref="DRAWINGS">FIG. 5</figref> is a flow diagram of one embodiment of a method for generating a score for a facet of social media exposure.
0019<figref idref="DRAWINGS">FIG. 6</figref> is a block diagram of one embodiment of an update process and associated data store.
0020<figref idref="DRAWINGS">FIG. 7</figref> is a flow diagram of one embodiment of a method for a method for updating data from online sites.
0021<figref idref="DRAWINGS">FIGS. 8A-8E</figref> are an illustration of one embodiment of an interface.
0022<figref idref="DRAWINGS">FIGS. 9A-9B</figref> are an illustration of one embodiment of an interface.
0023<figref idref="DRAWINGS">FIG. 10</figref> is an illustration of one embodiment of an interface.
0024<figref idref="DRAWINGS">FIGS. 11A-11D</figref> are an illustration of one embodiment of an interface.
0025<figref idref="DRAWINGS">FIGS. 12A-12C</figref> are an illustration of one embodiment of an interface.
DETAILED DESCRIPTION
0026Embodiments and the various features and advantageous details thereof are explained more fully with reference to the nonlimiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known starting materials, processing techniques, components and equipment are omitted so as not to unnecessarily obscure embodiments in detail. It should be understood, however, that the detailed description and the specific examples, while indicating preferred embodiments, are given by way of illustration only and not by way of limitation. Various substitutions, modifications, additions and/or rearrangements within the spirit and/or scope of the underlying inventive concept will become apparent to those skilled in the art from this disclosure. Embodiments discussed herein can be implemented in suitable computer-executable instructions that may reside on a computer readable medium (e.g., a hard disk (HD)), hardware circuitry or the like, or any combination.
0027As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
0028Additionally, any examples or illustrations given herein are not to be regarded in any way as restrictions on, limits to, or express definitions of, any term or terms with which they are utilized. Instead, these examples or illustrations are to be regarded as being described with respect to one particular embodiment and as illustrative only. Those of ordinary skill in the art will appreciate that any term or terms with which these examples or illustrations are utilized will encompass other embodiments which may or may not be given therewith or elsewhere in the specification and all such embodiments are intended to be included within the scope of that term or terms. Language designating such nonlimiting examples and illustrations includes, but is not limited to: “for example,” “for instance,” “e.g.,” “in one embodiment.”
0029Embodiments can be implemented in a computer communicatively coupled to a network (for example, the Internet, an intranet, an internet, a WAN, a LAN, a SAN, etc.) or another computer. As is known to those skilled in the art, a computer can include a central processing unit (“CPU”) or processor, at least one read-only memory (“ROM”), at least one random access memory (“RAM”), at least one hard drive (“HD”), and one or more input/output (“I/O”) device(s). The I/O devices can include a keyboard, monitor, printer, electronic pointing device (for example, mouse, trackball, stylus, etc.), or the like. In embodiments, the computer has access to at least one database over the network.
0030ROM, RAM, and HD are computer memories for storing computer-executable instructions executable by the CPU or capable of being compiled or interpreted to be executable by the CPU. Within this disclosure, the term “computer readable medium” is not limited to ROM, RAM, and HD and can include any type of data storage medium that can be read by a processor. For example, a computer-readable medium may refer to a data cartridge, a data backup magnetic tape, a floppy diskette, a flash memory drive, an optical data storage drive, a CD-ROM, ROM, RAM, HD, or the like. The processes described herein may be implemented in suitable computer-executable instructions that may reside on a computer readable medium (for example, a disk, CD-ROM, a memory, etc.). Alternatively, the computer-executable instructions may be stored as software code components on a DASD array, magnetic tape, floppy diskette, optical storage device, or other appropriate computer-readable medium or storage device.
0031In one exemplary embodiment, the computer-executable instructions may be lines of C++, Java, JavaScript, or any other programming or scripting code. In an embodiment, HTML may utilize JavaScript to provide a means of automation and calculation through coding. Other software/hardware/network architectures may be used. For example, the functions of embodiments may be shared among two or more computers. In one embodiment, the functions may be distributed in the network. Communications between computers implementing embodiments can be accomplished using any electronic, optical, radio frequency signals, or other suitable methods and tools of communication in compliance with known network protocols.
0032Communications between computers implementing embodiments can be accomplished using any electronic, optical, radio frequency signals, or other suitable methods and tools of communication in compliance with known network protocols. It will be understood for purposes of this disclosure that a service or module is one or more computer devices, configured (e.g., by a computer process or hardware) to perform one or more functions. A module or service may present one or more interfaces which can be utilized to access these functions. Such interfaces include APIs, interfaces presented for a web services, web pages, remote procedure calls, remote method invocation, etc.
0033Before delving into more detail regarding the specific embodiments disclosed herein, some brief context may be helpful. As discussed above, assessing an entity's online and social media presence is a desirable, but difficult, task. Entities in this context can be taken to mean a discrete entity of interest such as, for example, an individual (such as an athlete, celebrity, politician, blogger, etc.), a brand, a sports team, etc. The difficulty stems in no small part from the vast number of online outlets through which data on an entity may be present, including the number and variegation of social media sites. These social media sites provide a wide variety of different types of social media for users, collect different data, track or provide different metrics, utilize different methods (e.g., different APIs or other interfaces) for obtaining data, utilize different data models for such data, etc. It is thus difficult both to obtain data from these various sites and to accurately evaluate this data in a manner that lends any insight into an entity's social media exposure. It nevertheless remains desirable to do just that.
0034To that end, embodiments described herein provide a social media analytics platform to assist companies or individuals in obtaining and aggregating social content and other content from a variety of sources to, for example, better understand an entity's social media exposure or presence. An entity may be configured with respect to the platform and a number of social media accounts, and other data such as aliases or search terms associated with the entity. Data is collected at certain intervals from the various online sites, including social media sites, using the various disparate and proprietary interfaces and data models provided by the sites and the configurations for the social media accounts associated with an entity. Data may also be collected on the entity's online presence in certain categories from various other online sites such as search engines using aliases or other data such as search terms.
0035Certain online sites such as social media sites or platforms or search sites (collectively online sites herein) may however, present a number of roadblocks to efficient analysis. These online sites provide APIs or other interfaces that may be used by 3rd parties to query the online site to obtain and utilize the data provided by that online site. Depending on the API, in some cases the use of the provided interface is free and in some cases there is a charge, but in any case most online sites have a limit on the quantity or pace of utilization of provided APIs. Such limits are, in the main, imposed by these social media or other sites using rate limiting.
0036This rate limiting may impose a limit on the number of requests a particular user or site can make using the API provided by the online site within a certain time frame and different online sites may have different rate limits. Thus, for example, Facebook may impose rate limiting by limiting a requestor to utilizing an API for 600 requests per 600 seconds. Twitter may impose a rate limit for 150 requests per 5 minutes using their API. A search engine such as Bing or Google may also impose rate limits with respect to utilizing an API to obtain data on requested web searched. In other word, online sites may stipulate only a certain number of requests may be received from a user using a particular API within a particular time frame or that only a certain number of requests for certain information will be responded to by the site in a particular time frame. If these rate limits are exceeded (e.g., if more than 600 of requests are issued to Facebook within a 600 second window) the online site may not respond or may responds with an error.
0037As may be imagined in a system with thousands, if not hundreds of thousands or millions of entities, the rate limits imposed by the various online sites can create processing bottlenecks when accessing social media or other data. Additionally, these rate limits may cause data associated with various entities to become stale, thus tempering the efficacy or usefulness of such data. To limit the effect of the rate limits and to effectively deal with the different rate limits that may be imposed by different sites while minimizing the impact on the freshness of the data used by a social media analytics platform, embodiments described herein can automatically monitor which data has been acquired for each entity and continually moderate and coordinate data retrieval across the social media platforms or search sites and entities, maximizing the data pulled from each site given the imposed rate limits without slowing or idling the social media analytics platform, while simultaneously limiting the number of errors received from the online sites. For example, if the number of requests using twitter's API has reached or exceeded a capacity or rate limit for a given timeframe, the data from another online site may be gathered until a request rate for twitter falls below the threshold rate limit imposed by twitter. This results in increased efficiencies in time and expense. The analytics platform can spread out requests over time and fully utilize parallel update processes in a way that respects the rate limiting while still achieving near real-time tracking of systems. Moreover, by applying these rate limiting techniques maximum use can be made of the free access granted by such online sites, allowing operators of social media analytics platform to avoid being charged a fee for accessing such data or obtaining a higher rate limit with respect to a particular online site.
0038As such, embodiments described herein can be designed to operate in an asynchronous manner. This allows the rate of change for the overall measurement of the social media indexes for an entity to be much higher than the rate limits of the source channels would normally allow. An entity's accounts can be abstracted from the entity itself and the retrieval of each account treated as a discrete atomic operation. This methodology can give updating processes a defined unit of work to do and allows for robust fault-tolerance when online sites encounter issues or downtime. If any errors are encountered during such an update process, errors along with the corresponding account identifier can be placed into a resolution process that may involves a human in the loop before these accounts are again attempted to be utilized by the social media analytics platform, ensuring such errors are not repeated.
0039Using this data obtained from these online sites then, (e.g., social media sites or other online source such as a search engine or the like) one or more scores can be calculated or update based on the data, where the score(s) may serve to quantify a facet of the entity's social media exposure and may serve to be domain specific to the entity. These domains may include for example, a category of endeavor associated with an entity (such as a sport for an athlete or team, or entertainment for a celebrity). It will be noted that certain domains may be sub-domains of other domains (e.g., acting may be a subdomain of entertainment, NASCAR may be a subdomain of auto racing, etc.). Specifically, in certain embodiments, data obtained from each of the online sites, or derived therefrom, can be weighted according to a domain specific weight for a domain of the entity. The weighted data can then be used to calculate one or more domain specific scores for one or indices.
0040The scores for each of the indices for an entity can thus serve to quantify facets of an entity's social media exposure. For example, these indices can include a “Reach” index that measures, for example, the overall quantity of followers across the social media platforms (e.g., one or more social media platforms from which data was obtained); an “Engagement” index that, for example, measures the extent of interaction that and individual or entity has with its social media accounts; and a “Conversation” or “Sponsorability” index that measures an entity's name (or aliases, etc.) as associated with positive and negative keywords or other terms to assist in determining if the entity is associated with a positive image through associated terms such as “charity” or “giving back” as opposed to potentially a negative image due to association with words or phrases such as “arrest” or “performance enhancing drugs”.
0041The scores with respect to a facet can also be normalized on a scale. For example, the scores can be normalized from 1-9 with fractional increments between the whole numbers or be otherwise scaled. The scaling of such scores may, in one embodiment, be achieved by normalizing the data obtained from each of the online sites, or derived therefrom, after a domain specific weight is applied to such data.
0042Calculating scores for facets of an entity's social media exposure in a domain specific manner and normalizing such scores facilitates the comparing and contrasting of entities to one another within and across both facets and domains. Moreover, in addition to calculating domain specific scores for particular facets of social media exposure an aggregate score that can rank all entities within the database with a single score or ranking (e.g., for a particular facet or an overall score) can also be determined. Such an overall score may allow entities to be compared across domains.
0043Embodiments of such a social media analytics platform may therefore provide a whole host of advantages. While all data obtained from the online sites by the social media analytics platform, or determined therefrom, can be sortable and searchable, the platform can also be configured to allow a user to conduct searches of entities (such as athletes, teams and leagues to use sports as an example) within or across domains based on their rankings in a particular facet (e.g., reach, engagement and conversation) of social media exposure. This can enable brands to make better decisions on which entities they choose for product endorsements and also creates a social media gauge for analyzing the value of a social media footprint. The platform can also provide metrics on social media content such as tracking top social media posts among all athletes (or other entities) as well as for each individual.
0044The social media analytics platform may therefore have a wide variety of interfaces to enable a user to better interact with the platform and facilitate such a decision making process. These interfaces may include an administrative interface by which entities and the configuration data associated therewith may be specified. This interface may allow an administrator or account holder to customize associated search terms, allowing the addition and deletion of keywords that can be tracked. This enables, for example, a brand to associate their custom keywords to specific individuals for tracking purposes, making the platform more valuable to them.
0045Furthermore, the mechanism for determining scores or rankings within a facet or domain may not a fixed, static process. Instead, the social media analytics platform can allow for the addition, deletion and updating to the weighting of social media data (or other data). To that end, the administrative interface may allow an administrator to utilize a series of “dials,” for the weights to easily adjust the weights utilized in determining a score for a facet within a domain. This allows the analytics platform to continually be optimized based on new sources of data, growth of popularity of one social media platform over another and other factors.
0046The interfaces may also present data on the entities using a variety of interfaces. According to one embodiment, a “Player Card” may be determined for each entity in the database to create an online social media resume for that entity. An interface presenting the player card for one or all of the entities can be presented to a user by the analytics platform. The data can be further manipulated and tracked for one or more entities by the user. Through interfaces such as the “Player Card” or other interfaces, including for example, a search interface, actual social media content (e.g., posts, tweets, etc.) for entities may be accessed. The ability to access player cards or other interfaces for entities or track entities may be determined by, for example, a subscription that a user has with the operators of social media analytics platform.
0047It may now be useful to explain certain embodiments of such a social media analytics platform in more detail. Turning then to <figref idref="DRAWINGS">FIG. 1</figref>, an architecture that includes one embodiment of a social media analytics platform is depicted. Architecture <b>100</b> includes social media analytics platform <b>140</b> coupled, via network <b>130</b>, to one or more online sites <b>150</b> and one or more client computing devices <b>102</b> (e.g., laptop computers, desktop computers, servers, mobile devices) that can connect to the social media analytics platform <b>140</b> via the network <b>130</b>. Network <b>130</b> may be, for example, a wireless or wired network (or combination thereof), the Internet, an internet, an intranet, a LAN a WAN, an IP based network, etc. Communications over network <b>130</b> may be accomplished according to one or more protocols such as, for example, HTTP or SOAP and in one or more formats such as, for example, XML or HTML and may be encrypted using for example a public private key pair, Basic 256, adherence to the X.509 standard, etc.
0048Users at client computing devices <b>102</b> may create or access an account on social media analytics platform <b>140</b> to interact with analytic platform <b>140</b> and obtain data on various entities. Social media analytics platform <b>140</b> itself can comprise one or more physical computing devices which can include one or more physical servers on which modules are deployed. In one embodiment, the social media analytics platform <b>140</b> may include one or more modules deployed in a cloud based computing environment using a cloud based service provider, such as Amazon Cloud (e.g., Amazon Web Service or EC2), Microsoft Windows Azure, vMware vCloud, Google's cloud, etc. Thus, such modules may also communicate via a network and according to one or more protocols. By deploying the modules of the social media analytics platform <b>140</b> in the cloud increased security, accessibility or reliability may be achieved as the modules may utilize the storage, security, load balancing, or other functionality provided by the cloud provider.
0049Social media analytic platform <b>140</b> may be configured with data, including data about entities of interest. As will be discussed in more detail herein, such data may include an identifier for the entity (e.g., the name of the individual, a brand name, a team, etc.) along with one or more account identifiers for social media sites used by the entity (e.g., twitter handle, name on a Facebook page, YouTube account name, Instagram account name, etc.); aliases for the entity (e.g., nicknames, etc.), a domain for the entity (e.g., baseball for an athlete); a group (e.g., team) with which the entity is affiliated; search terms associated with a particular facet (e.g., conversation), or other data. Social media analytic platform <b>140</b> may thus use scoring and data point data store <b>184</b> to store this configuration data, including an identifier for the entity, the account identifiers for the entity's social media accounts, search terms, aliases, etc. The data associated with an entity of interest may be used to obtain and store data on the entities from the online sites <b>150</b> using interfaces provided by those online sites.
0050Specifically, online sites <b>150</b> may include, for example, one or more social media sites. Social media sites may be interactive Internet based platforms or applications that allow the creation, sharing, exchange or discussion of user-generated or other content. Examples of current social media sites include, for example, Facebook, Twitter, Instagram, Google+, Snapchat, YouTube, etc. In the main, these social media sites <b>150</b> allow an entity to post discrete pieces of content and allow other users of the social media site to interact with such content. This content and the interactions may be presented through, and interacted with, an interface offered by, and accessed through, the social media site itself.
0051In most cases, an entity who wishes to use such a social media site creates an account using an account identifier to facilitate the interaction with the social media site. The entity's content and interactions are thus associated with, and can be identified by, this account identifier. Additionally, when other users of such a social media site reference, or interact with, that entity's content these interactions or references usually utilize the account identifier for that entity's account. Each of these social media sites may maintain proprietary data that may be used as indicators of quantitative measures of social media exposure in association with an account or account identifier. For example, the social media site twitter maintains the number of “followers” associated with an account identifier has; Facebook maintains the number of “likes” for an account's page or content, etc. More examples of such data maintained by social media sites are given in Appendix A and Appendix B. It will be apparent to one or skill in the art that an entity may not have an account or account identifier (e.g., may not use or be active) on every social media site and that there may be lesser, fewer or different social media or other online sites then the ones discussed or illustrated herein.
0052Each of the social media sites may thus present a particular or proprietary interface (such as an Application Programming Interface (API), web service, or the like) for obtaining data about a particular account, including certain proprietary indicators maintained by that social media site, from the social media site according to a proprietary data model used by that particular social media site. For example, an interface may be provided by the social media site through which an account identifier can be provided to the social media site. In response the social media site returns certain data associated with the account identifier, including data points such as proprietary indicators associated with that account identifier (such as those listed in Appendix B) or actual social media content associated with that account identifier (or identifiers thereof).
0053Online sites <b>150</b> may also include search providers such as Google or Bing from which data can be obtained through for example, a keyword or other search term (which will be used interchangeably herein) search implemented through, for example, an interface (e.g., API) offered by those search providers. Specifically, the number of “hits” for a particular search (e.g., one or more terms with or without included Boolean operators) may be obtained from such search providers. In some cases additional data may also be provided through such interfaces such as portions of the content (e.g., text data, etc.) associated with the “hits” for the search term.
0054Online sites <b>150</b> can also include other online sites with other data about entities. These may include sites such as rating service from analytics companies such as KRED, Peer Index and KIout. These types of sites may also provide proprietary interfaces through which such scores can be obtained.
0055It is thus possible for social media analytics platform <b>140</b> to utilize the interfaces provided by the online sites <b>150</b> to obtain data about an entity such as that listed in Appendix A or B and store such data. Such data may include: <ul id="ul0001" list-style="none"><li id="ul0001-0001" num="0000"><ul id="ul0002" list-style="none"><li id="ul0002-0001" num="0056">Reach Data: for example, data that quantifies how many people the entity of interest interacts with. The data can include information, such as quantity of followers and friends for each individual across each social media platform, views of social media pages, likes for the entity's pages, or other similar data.</li><li id="ul0002-0002" num="0057">Engagement data: for example quantitative metrics concerning quantity of interaction, such as commenting, re-tweeting or sharing, that the individual has with these friends and followers or other similar data.</li><li id="ul0002-0003" num="0058">Conversation Data: for example, data based on the alignment of specific names (or aliases) of entities along with specific positive and negative keywords such as “positive fan interaction” or negative fan reaction”, “arrested”, “charity”, etc.</li><li id="ul0002-0004" num="0059">Social Media content: for example, actual content data such as atomic pieces of social media content such as tweets, Facebook posts, etc. that is associated with an entity of interest.</li><li id="ul0002-0005" num="0060">Other content: News feeds or other content about, or relevant to, an entity of interest.</li><li id="ul0002-0006" num="0061">Rankings or scores affiliated with the entity from other services.</li></ul></li></ul>
0062The data obtained from each of the online sites <b>150</b> for each entity can be stored in association with that entity in data store <b>184</b>. The data can then be analyzed to provide the information to users of the social media analytics platform <b>140</b> with measures of facets of the entities social media exposure. Specifically, a Reach, Engagement and Conversation score for an entity may be calculated for a domain associated with that entity. To calculate scores for a particular facet within a domain, data associated with that index may be weighted using a weight specific to that data, that domain and that index. Examples of data and its association with a particular facet are given in Appendix B. The weighted data for that entity, index and domain is then used to calculate the final score for that entity and facet within that domain.
0063Both the weighted data or the final score may be normalized to facilitate comparison across entities. For each calculation, an administrator of social media analytics platform <b>140</b> has the option to utilize the same algorithm across all individuals for each category, or to utilize individual algorithms based on domain (e.g., sport), facet (Reach, Engagement, Conversation) or other criteria. The ability to change the algorithm can be available to the administrator within an administrative interface. Scoring data, ratings services, and affinity data from other services and/or sentiment ratings can also be added for any of the three categories of Reach, Engagement and Conversation and weighted as the administrator sees fit. This provides flexibility to add data feeds and alter and amend the algorithms and weighting as need or desired. It can be further noted that the platform can be extended to calculate other social media metrics.
0064It will now be helpful to delve into one embodiment of the architecture of a social media analytics platform in more detail. It should be noted that this embodiment of an architecture is provided by way of example and that any suitable architecture may be utilized. In one embodiment then, social media analytics platform <b>140</b> may utilize a data services architecture. According to one embodiment, the data services may involve the interaction of multiple virtualized or real machines in a “Network of Services” architecture or “Service Oriented Architecture.” Each physical or virtual machine can run a single or multiple instances of one of several modules hosted on a server. According to one embodiment, each data service module can have a specific interface (e.g., Application Programming Interface (API)) that responds to requests from other services (such as client applications or other data services applications) via calls (e.g., over Ethernet using the Hypertext Transport Protocol (HTTP) or other protocol). Each of the hosting servers can be physically or virtually separate from the others to allow for scalable processing of parallel requests.
0065Such data service modules may include, scoring service module <b>172</b>, update process module <b>186</b> and query service module <b>180</b>. Moreover, social analytics platform <b>140</b> includes analytics client application data store <b>182</b> and scoring and data point data store <b>184</b>. Analytics platform <b>140</b> may include a database management application or other content management system (not shown) to manage data in the data stores <b>182</b>, <b>184</b>. It should be noted at this point that the division of functionality into the various modules as will be explained is provided by way of example and various services such as rate monitoring, prioritization, scoring, updates, client services, data store management, etc. can be provided through execution of any number of modules (e.g., greater or fewer) to provide the same or similar functionality.
0066Analytics client application module <b>178</b> may be responsible for interacting (e.g., receiving or responding) with requests from user computing device <b>102</b> received over network <b>130</b>, and specifically from browsers or applications (e.g., “apps” on mobile devices) or the like on the user computing devices <b>102</b>. Thus, client application module <b>178</b> may provide interfaces that include certain data to client browsers and, in turn, may provide data to be stored in a data stores <b>182</b>, <b>184</b> or interact with the other modules (e.g., data services modules or the like) of the social media analytics platform <b>140</b>, or data stores <b>182</b>, <b>184</b>, to obtain or provide such data. To facilitate the interaction between the analytics client application <b>178</b> and data service modules of the social media analytics system <b>140</b>, in one embodiment, the data services modules and the analytics client application module <b>178</b> can utilize a single master or multiple slave database servers that maintain a primary record of state across the entire system (not shown). Query service module <b>180</b> may allow specific user queries received through an interface provided by analytics client application module <b>178</b> to be run against scoring data store <b>184</b> to return results to analytics client application module <b>178</b> such that it can be presented to a user through an interface.
0067Client application data store <b>182</b> includes information on users of the social media analytics platform <b>140</b>. In one embodiment, the social media analytics platform <b>140</b> may offer multiple levels of accounts. Account information associated with account holders (referred to also as users) may be stored in client application data store <b>182</b> including, for example, username and password for the account, an account image or avatar, entities in which the user is interested, such as their top entities or their “team” of entities (e.g., athletes with which the user may have a sponsorship or endorsement agreement), their top watched athlete, etc. This data may be used in managing a user's account and may be used to by client application module <b>178</b> to determine what information to access and present to the user through one or more interfaces.
0068In one embodiment, the social media analytics platform <b>140</b> may include features to facilitate timely responses to users on devices <b>102</b>, such as load balancing and caching. In one embodiment, for example, a load balancer may be utilized, where the load balancer acts as a reverse proxy and handles even distribution between the multiple instances of analytics client application module <b>178</b>. Load balancing in this way allows the system to automatically scale the analytics client application module <b>178</b> during periods of high load.
0069A cache may also be maintained of commonly-requested data that the client application module <b>178</b> can utilize in order to avoid longer running and costly calls to a data service module or a data store <b>182</b>, <b>184</b>. The caching layer can reside between the data services modules or the data stores <b>182</b>, <b>184</b> and manage a temporal store of key-value pairs that expire in such a way that stale data is refreshed prior to being displayed to the user. According to one embodiment a caching layer can be provided using memcached to cache content that requires long-running tasks or calls to online sites <b>150</b>. The expiration times of these caches can be set on a case-by-case basis to balance the rate-limiting policies of the specific social media applications against the relative life-span of the data.
0070In any event, analytics client application module <b>178</b> may receive a request from a browser or application at user computing device <b>102</b> (e.g., as forwarded by a web server or directly in embodiments where analytics client application module <b>178</b> includes a web server component). In general, analytics client application module <b>178</b> resolves such a request into the resources used to assemble the response which may include, and be associated with, a web page to provide in response to the request. These resources may depend on the interface requested as will be discussed in more detail and may include items or entities referenced in the web page or used to generate the web page source. The analytics client application module <b>178</b> can resolve a single request to one or more resources. These resources may include resources from a cache management layer, resources from a data store <b>182</b>, <b>184</b> or resources from one or more of the other modules of social media analytics platform <b>140</b>.
0071If the request requires responding with information from a data services module or data store <b>182</b>, <b>184</b>, the analytics client application module <b>178</b> can request the information from the data services module or data store <b>182</b>, <b>184</b>. For example, if a requested web page includes scoring information for an entity, the analytics client application module <b>178</b> can query the caching layer or the appropriate data store <b>182</b>, <b>184</b> for the appropriate information. The caching layer, module or data store <b>182</b>, <b>184</b> can return the requested information to the analytics client application module <b>178</b>. The analytics client application module <b>178</b> can then assemble the various pieces of information gathered from the data store <b>182</b>, <b>184</b>, or module to generate the response (e.g., web page) to return back to the user browser, mobile application, etc. Specifically, analytics client application module <b>178</b> may present interfaces that utilize scores for facets of social media exposure for entities associated with particular domains as determined by, for example, scoring service module <b>172</b>. A list of interfaces implemented by client application module <b>178</b> will be discussed in more detail at a later point herein.
0072Administrative module <b>188</b> may allow an administrator (e.g., accessing interfaces provided by the administrative module <b>188</b> from administrator's computer <b>104</b>) to configure the social media analytics platform <b>140</b>. This includes configuration of the various entities that may be monitored by the social media analytics platform <b>140</b>. Thus, administrative module <b>188</b> may provide interfaces that allow the creation of updating a database of entities (e.g., individuals, brands, teams, and agents) and identifiers for their respective social media accounts. This database may, for example, be stored in scoring and data point data store <b>184</b>. Within this database, a list of entities (athlete, brand, team, or agent) can be maintained that contains identifying information (e.g., id and name) and domain information (e.g., sport) for each. For each of these entities, a list of “social accounts” can be maintained that contains a social account type (i.e., YouTube, twitter, Instagram, etc.) and an account identifier for that athlete on that social application (e.g., twitter screen name, YouTube user ID, Facebook page name, etc.). Each entity may have none, one, or more social account for each type of social media. Additionally, the database can contain aliases for the entity for use in web-crawler based searches (e.g., Chris Paul->CP3, Chad Johnson->Chad Ochocinco, Astros->‘Stros, etc.) or search terms to be used therewith.
0073Administrative module <b>188</b> may also provide an interface to allow the tuning of algorithms, weights and parameters that will be used in generating the scores for an entity in conjunction with various facets, as will be discussed in more detail at a later point herein. In order to accomplish this, in certain embodiments an interface can be provided that gives access to authorized person to modify the “knobs and switches” (e.g., parameters) of an algorithm used for generating a score for a facet for a particular domain. For example, according to one embodiment, a user (e.g., an administrator) can be shown an interface having a series of graphical dials or indicators that the administrator can “turn” or otherwise modify (e.g., using a touch screen, mouse or other input device) to tune the weights.
0074For each domain then, the administrative module <b>188</b> can provide an interface with the scoring algorithm for a facet and that domain, and the data points used by that algorithm, where the interface allows a user to set the relative weights for each of the data points for that facet and domain. The administrative module <b>188</b> can also provide an interface such that an administrative user can disable or enable any of the data points used in determining the score for a facet in a domain. A data point that is disabled can still be collected and stored but may not be used in the calculation of a score for a facet for a particular domain (this may be effectively the same as setting the weight of that data point to zero). The algorithms for each facet and domain including the respective weights for each data point for that algorithm may be stored in scoring and data point data store <b>184</b>. In one embodiment, such an algorithm may be applying a weighted average using the respective weights for each data point as will be discussed. According to one embodiment, only the relative values within a domain may impact the final score for an entity as a score for a facet may have already been normalized for a particular domain.
0075In one embodiment, the weights for a facet and a domain may be grouped into “versions” that allow an administrator to prepare a set of weights to be used beginning on a particular day. Additionally, this creates a history of weightings such that previous scores can be reconstructed in the future for retro-active scoring. One advantage to allowing the administrator to set weights on such scoring algorithms is that the system can be adapted to changing sentiment. For example, while having a celebrity's name associated with the term “arrested” may be generally thought of as negative, it may turn out that being arrested increases exposure and public perception of the celebrity. Therefore, an administrator may, for example, change the weight data points from negative to positive or the change weights so that certain data points become more influential on the final score.
0076Moreover, administrative module <b>188</b> may allow the configuration of one or more search terms to be used in conjunction with one or more facets. For example, a Conversation facet may be based on data points determined based on a number of conversation categories. These categories may, in general, fall into a negative group (e.g., cheating, arrest, negative fan reaction, legal issues, performance enhancing drugs, etc.) and a positive group (e.g., charity, giving back, positive fan reaction, foundation, etc.). Thus, data points associated with each of these conversation categories may be gathered by using terms associated with each of these categories. In one embodiment, administrative module <b>188</b> allows a user to manage the conversation categories. Here, a user could add, remove, or modify a conversation category. Each conversation category may have a name, a weight, and a “positive” or “negative” flag. Within each conversation category, an administrative user can manage a list of terms that can be searched for in relation to an entity to determine a data point value for that conversation category. These data points may be determined using a search provider (such as Bing or Google) and searching on the terms associated with a conversation category and, for example, an entity's name or alias. Alternatively, search terms may be associated with an individual entity. In any event, each entity may be deemed to have a “conversation account” and the conversation categories and their corresponding search terms may be stored in scoring and data point data store <b>184</b>.
0077Thus, such an administrative interface <b>188</b> may allow a user to, for example: <ul id="ul0003" list-style="none"><li id="ul0003-0001" num="0000"><ul id="ul0004" list-style="none"><li id="ul0004-0001" num="0078">List, add, view, set, delete, and modify entities (e.g., individuals, brands, teams, and agents).</li><li id="ul0004-0002" num="0079">List, add, view, set, delete, and modify domains associated with an entity (e.g., a sport, league, etc.).</li><li id="ul0004-0003" num="0080">List, add, view, set, delete, and modify social accounts for each entity</li><li id="ul0004-0004" num="0081">List, add, view, set, delete, and modify the data points gathered for each social account for each entity</li><li id="ul0004-0005" num="0082">List, add, view, set, delete, and modify the conversation categories and the search terms used for each conversation category or entity.</li><li id="ul0004-0006" num="0083">List, add, view, set, delete, and modify aliases, etc. for each entity.</li><li id="ul0004-0007" num="0084">List, add, view, set, delete, and modify the algorithms or weights used in those algorithms for each facet and domain.</li></ul></li></ul>
0085Some social media APIs provide links to other social media accounts. Thus, the administrative module <b>188</b> may also give the user the option of “auto-discovering” other social media handles for a given athlete based on these links. These links, in some embodiments, may be a “best-effort” guess by the administrative module <b>188</b> and can require user-intervention to be properly configured, but can be helpful in providing hints to the user when setting up an athlete's social media accounts.
0086Based on the configuration in scoring and data point data store <b>184</b> (e.g., as set through administrative module <b>188</b> interface), the social media analytics platform <b>140</b> can periodically obtain data from online sites <b>150</b> and store such data in scoring and data point data store <b>184</b> using one or more update processes <b>186</b>. Each online site <b>150</b> may have a different API (that may be published by that site) and provide different data. Update process module <b>186</b> can communicate with online sites <b>150</b> using their proprietary APIs (e.g., over the Internet), web search servers, and other servers that can provide social media data or content related to the entities (e.g., search results, news feeds, etc.)
0087Thus, update process <b>186</b> may periodically send a request associated with an entity (e.g., a particular account of an entity) configured in scoring and data point data store <b>184</b> to a particular online site <b>150</b> using that site's proprietary API and store the data returned by the online site <b>150</b> in conjunction with that entity and that account in scoring and data point data store <b>184</b>. For a social media site, update process <b>186</b> may use the API of that site to interact with the site to provide an account identifier associated with that social media site through the API to obtain data associated with that account identifier. Such data may include numerical data points associated with that account. Update process <b>186</b> can then update scoring and data point data store <b>184</b> with the data received from the social media site along with metadata or statistics concerning that data using the identifier for that social media content so that the latest information is available in scoring and data point data store <b>184</b>. Thus scoring and data point data store <b>184</b> can be used both as a repository for writing data points and as a source against which all queries required for proper operation of the rest of the system are run.
0088By way of example, for twitter, such numerical data points may include, a number of tweets, number of replies, number of followers, number following, retention rate, retweet rate, etc. For Facebook, such numerical data points may include the number of likes for the account's page, number of wall posts, post rate, number of comments, comment rate, number of shares, talking about, post like rate, share rate etc. For Google+ such numerical data points may include activities, plus ones, shares, replies, etc. For Instagram such numerical data points may include photos, followers and following. For YouTube such numerical data points may include videos, views, subscribers, interactions, etc.
0089Additionally, using an API provided by a social media site and the account identifier for an entity, update process <b>186</b> may interact with the social media site to obtain actual social media content (or identifiers of atomic pieces of social media content through which the piece of social media content may be obtained or accessed) and metadata or statistics associated therewith, such as, for example, for twitter the most (e.g., the top ten) retweeted tweets, for Facebook the most popular posts (e.g., the five most popular), YouTube the most popular videos, etc. Update process <b>186</b> can use the external identifiers of these pieces of content (as are typically provided by social media sites) to ensure that no duplicate content is stored in scoring and data point data store <b>184</b>.
0090In some cases, it may be preferable that a single update process <b>186</b> be responsible for taking a snapshot of a particular account (e.g., to prevent two processes from simultaneously requesting the same information). Accordingly, an update process can place a reservation on an account that allows that update process to atomically claim ownership over the account so that the account is not processed by two update processes simultaneously. According to one embodiment, a reservation can be asserted through the use of metadata in the scoring and data point data store <b>184</b> or other mechanism associated with that account.
0091Each time a new piece of social media content is encountered, the update process <b>186</b> can update metadata or statistics concerning that social media content using the identifier for that social media content so that the latest information is available in scoring and data point data store <b>184</b>. Rather than retaining a copy of the actual social content, scoring and data point data store <b>184</b> may contain a reference to the social content (e.g., the location or an identifier of each piece of social content) such that the social media content may be fetched by a client device (e.g., through incorporation of the reference in a web page or other interface provided to the client device).
0092Moreover, in certain embodiments, update process <b>186</b> may also be configured to obtain updates from a social media site on pieces of social media content obtained previously. For example, update process <b>186</b> may determine that a particular piece of social media content associated with a social media site was not returned or otherwise identified in response to a request to that social media site (e.g., a piece of social media content previously identified as a “most popular” is no longer identified as such). In these instances, update process <b>186</b> may contact the social media site again to determine a data point corresponding to the popularity of this previously identified piece of social media content (e.g., by providing the identifier for this atomic piece of social media content to the social media site to obtain such a data point). Data points on historically identified social media content may thus be kept current in scoring and data point data store <b>184</b>.
0093In addition to social media sites, online sites <b>150</b> may include other sites or source from which data points may be determined. In one embodiment, data points for a Conversation score are determined based on the frequency of occurrence of the entity's name or aliases in conjunction with a set of terms. Specifically, scoring and data point data store <b>184</b> may include a set of conversation categories, each conversation category associated with one or more search terms (as discussed above). Each domain may have a specific set of conversation categories and search terms associated with those categories; the set of conversation categories may be the same across domains and each domain may have domain specific search terms for those conversation categories; or both the categories and search terms may be the same across categories. Online sites <b>150</b> may include search sites or providers (e.g., Bing, Google, etc.). Thus, using a publicly available search engine API for a particular search site, update process <b>186</b> can submit a request to a search site to obtain a number of search results that contain an entity's name or aliases and one or more of a set of terms associated with a conversation category. Each conversation category can be defined to correspond to positive or negative public image of an entity (for example, may include “cheating”, “charity”, “arrested” “giving back”, etc.).
0094These data points (e.g., number of search results associated with a submitted search for a conversation category for a particular entity) can be stored in scoring and data point data store <b>184</b> in association with the entity and conversation category along with metadata or statistics on such data points.
0095Accordingly, each snapshot (e.g., response to a particular request using an online site's interface which may or may not be associated with metadata or statistics such as a timestamp), or data obtained therefrom, for a given account at a given social media site may be time-stamped and stored in scoring and data point data store <b>184</b> in association with the entity holding that account such that scoring and data point data store <b>184</b> holds historical information for entities and their accounts. Thus, for a particular entity, the scoring and data point data store <b>184</b> may include data collected from multiple online sites including aggregated social media content (e.g., posts, tweets, etc.).
0096It should be noted that the different accounts and online sites <b>150</b> can be treated as separate for purposes of update. Thus, not only is each entity updated asynchronously, but each account of an entity may also be updated asynchronously. For example, the twitter information and Facebook information for an entity may be updated by update process <b>186</b> (or two different update processes <b>186</b>) at different times using different requests. Consequently, entity data for one social media site may be updated even if, for example, another social media site cannot be accessed. Multiple update processes <b>186</b> may be operating simultaneously. It should be noted that new update processes and APIs can be added as needed or desired to the update process <b>186</b>.
0097Update process <b>186</b> can also be configured to determine whether a given snapshot has been successfully retrieved and placing the account back into the “idle” state such that it can be polled again based on future prioritization. (The “idle” state represents one in which the account is not queued or currently prioritized for snapshotting.) If an error occurs during the retrieval of a given snapshot, the update process can determine whether the error is one that can be recovered from with time or one that is indicative of incorrect social media account information or a more permanent issue with the system or social source service. To this end, for each social media site, an update process <b>186</b> can maintain a set of recoverable error states. Each error reported can be compared against these states to determine the recoverability or level of criticality for the error. If the error is one that cannot be automatically recovered from, the error can be placed in a state that requires human operator intervention. In this case, the account is not placed back in an “idle” state and will not be prioritized for snapshotting until the error state is changed. A human or programmatic operator can review the error, history of the account and other information in order to ascertain the true nature of the error and determine whether to return the account to the pool of “idle” accounts or whether more intervention or corrective actions are required.
0098As can be seen then, in certain embodiments, scoring and data point data store <b>184</b> can comprise data points for an entity collected from multiple online sites <b>150</b> at different times using the proprietary interfaces provided by those online sites. These data points can include, for each entity, a set of numerical data points provided from each social media site with which the entity has an associated account identifier; a set of numerical data points provided or determined from a search site associated with an entity and a conversation category; and one or more atomic pieces of social media content (or identifiers of atomic pieces of social media content through which the piece of social media content may be obtained or accessed) that may be associated with the entity. Thus, a numerical data points can be a single raw quantification of an aspect of one social media site. Additionally, data stored in scoring and data point data store <b>184</b> from online sites <b>150</b> may be correlated with an entity. For example, an entity may have a variety of social media accounts and scoring and data point data store <b>184</b> can include the information necessary to correlate these various accounts with that entity.
0099As the social media analytics platform <b>140</b> can score entities based on their social media activity and online information about the entities, it may be preferable that such scoring be done on up to date data. However, in many cases online sites <b>150</b> limit the number of requests (e.g., through an API) or the amount of data that may be requested in a given time period (e.g., such social media sites may utilize rate limiting). Update process <b>186</b> may thus be configured to interface with scoring and data point data store <b>184</b> (or management functionality associated therewith) to determine rate monitoring data and update prioritization data using for example, statistics or metadata associated with snapshots obtained from an online site. This rate monitoring data or update prioritization data can be used by update process <b>186</b> to ensure periodic updates occur in an efficient manner according to any limits imposed by such online sites <b>150</b>.
0100In some embodiments, the update processes <b>186</b> may connect to source social media systems subject to the rate monitoring data. Specifically, it can be determined based on the amount of data pulled from each online site <b>150</b> subject to rate limiting and a corresponding time period if the social media analytics platform <b>140</b> is exceeding data limits imposed by an online site <b>150</b>. If so, the update processes can delay updating data from an online site <b>150</b> for which the platform <b>140</b> is near, at or over capacity. Similarly, based on online site <b>150</b> whose rate limits have not been exceeded, and accounts on those sites that are amongst a group of least recently updated accounts, update process <b>186</b> may select an account for one or more of those sites to update.
0101According to one embodiment, a user-configurable (e.g., administrator) set of metadata is maintained that defines the number of calls allowed to each online site over a certain period of time. In this way, variability in the rates allowed by social media sources can be reacted to quickly and robustly. Each time an update process <b>186</b> is available, it can poll a rate determiner for how much capacity is available for each online site <b>186</b>.
0102The rate determiner maintains the state of each of the online sites <b>186</b> with respect to the number of requests that have been executed against each source. This information is gathered from a data store (e.g., the scoring and data point data store <b>184</b>) containing a history of data collected from online site <b>186</b>. By polling this data store, the rate determiner is able to calculate the capacity used and capacity remaining based on the metadata above. According to one embodiment, the system looks for the number of snapshots (or number data points) taken over the past timeframe specified in the metadata. This amount is subtracted from the allotted amount in the metadata to arrive at the number of snapshots that can be currently requested.
0103Each update process <b>186</b> can be substantially continually running and polling the rate determiner for available capacity. Based on the availability of capacity for a particular online site <b>150</b> the update process <b>186</b> can build a list of accounts that are ready for updating for social media sources that have capacity at that time. If one or more online sites <b>150</b> are at, or past capacity, or within some threshold, of capacity, the update process <b>186</b> can automatically promote the sources that are available when determining which accounts to update.
0104Social media analytics platform <b>140</b> can attempt to prioritize certain accounts based on how old or recent their last successful data point collection was. For example, accounts that have not have not had a snapshot taken in relatively long time may be prioritized above accounts that had snapshots taken of them more recently. In other embodiments, accounts may be prioritized based on other metrics. For example, accounts that generally have a lot of activity or have been less recently updated may be prioritized more highly than accounts that have little activity. Other criteria and combinations of criteria, including user set parameters, can be used prioritize accounts.
0105In general, when an update module <b>186</b> becomes available it can reserve the highest priority accounts and queue them for snapshotting (subject, in some embodiments, to API switching considerations). To this end, an update process can poll the data store (e.g., the scoring and data point data store <b>184</b>) for a number (N) of the highest priority accounts to be updated. The update process can reserve all or some of these accounts and retrieve data points for the reserved account. According to one embodiment, however, the update process <b>186</b> can take a random sample of accounts (less than N) that are prioritized for collection. This is done to ensure that no single error in a social media account causes the entire process to lock up because the account that experienced an error is less likely to be picked up repeatedly. Embodiments of such update processes <b>186</b> are discussed in more detail below.
0106Using the data points associated with an entity obtained by update process <b>186</b> from online sites <b>150</b> stored in scoring and data point data store <b>184</b>, scoring service module <b>172</b> can score entities on facets of their social media exposure for their domain. In one embodiment, scoring service module <b>172</b> may run on a periodic basis (e.g., nightly) to generate scores for each entity configured in scoring and data point data store <b>184</b> based on the domain associated with the entity. Thus, the scores for an entity can be calculated based on the most current data points available for that entity obtained from online sites <b>150</b>. Such scores may be stored, for example, in a data store <b>182</b>, <b>184</b> or in a caching layer and used by client application module <b>178</b> in providing interfaces in between runs of scoring service module <b>172</b>.
0107Specifically, in one embodiment, a score may be generated for each facet (e.g., Reach, Engagement, Conversation) within a domain associated with the entity using the algorithm and weights for each data point specific to that facet and that domain. These scores can be, for example, decimal numbers scored on a scale of 0 to 9 (or otherwise scaled). These scores may, in turn, be averaged or otherwise used to calculate an overall index score that can be used, for example, in rankings or for entities against one other.
0108Thus, to generate a score for a particular facet for an entity associated with a domain, scoring service module <b>172</b> may access scoring and data point data store <b>184</b> to obtain the algorithm, associated data points used by the algorithm and the weights associated with those data points for the domain of the entity. Scoring service module <b>172</b> also accesses scoring and data point data store <b>184</b> to obtain the values (e.g., numerical values) associated with that entity for each of the data points associated with the algorithm for that facet and that domain if they exist. According to one embodiment, scoring service module <b>172</b> may normalize the value for these data points to a rolling average for that domain. By way of example, but not limitation, each data point may be normalized to the 28-day rolling average for that data point for that domain (e.g., a data point for number of twitter followers for an entity in the domain of basketball may be normalized to a 28-day rolling average of the number of twitter followers for all basketball players). In another embodiment, the data points may be normalized based on the average score for all entities or otherwise defined.
0109Scoring service module <b>172</b> can then get a score from these normalized data points by applying the algorithm for that facet and domain using the normalized data points and the weights associated with each data point. In one embodiment, the score may be generated by multiplying each normalized data point by a configured weight for that data point, domain and facet and taking the average of each of the weighted data points for that facet (e.g., Reach, Engagement or Conversation) for that entity.
0110As has been noted, each different type of data point may be assigned a different weight (e.g., the number of Facebook followers may have a different weight than the number of twitter followers when determining a Reach score) and the weights for the type of data point may vary based on domain (e.g., the number of Facebook followers may have one weight for baseball players and another weight for basketball players).
0111In order to avoid saturation of the output, the average score can be fed through a function to control the distribution of scores. These functions may include, for example, inverse functions or sigmoid functions. Inverse functions may be useful in cases where a score is based off a starting score of 0. For example, in one embodiment, this may be the case with Reach and Engagement scores such that the average score for each of the Reach and Engagement categories is fed through a reciprocal function specific to a domain:
0000<maths id="MATH-US-00001" num="00001"><math overflow="scroll"><mrow><mn>1</mn><mo>-</mo><mfrac><mn>1</mn><mrow><mrow><mi>C</mi><mo>·</mo><mi>x</mi></mrow><mo>+</mo><mn>1</mn></mrow></mfrac></mrow></math></maths><img file="US2015095108A1_D0001.tif" />
0112where x is the raw category score, and C is a constant that can be set by an administrator (e.g., using an administrator interface <b>188</b>) to control the width of distribution of the output across all entities in a domain or across domains. In other embodiments, other functions can be used to control distribution.
0113Other functions may be useful where a baseline for a score is selected starting score (e.g., 7 out of 10). For example, Conversation may include negative conversation categories that represent negative effects on an entity's public image and positive categories that represent positive effects. Each of the weighted data points for each of these conversation categories may thus be used to adjust the baseline score by a negative or positive amount. Since Conversation has the possibility of being both negative and positive, a sigmoid function, or function, can be used to prevent saturation of the output. In one embodiment the following may be used:
0000<maths id="MATH-US-00002" num="00002"><math overflow="scroll"><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><msup><mi></mi><mrow><mrow><mo>-</mo><mi>C</mi></mrow><mo>·</mo><mi>x</mi></mrow></msup></mrow></mfrac></math></maths><img file="US2015095108A1_D0002.tif" />
0114where x is the raw Conversation score, and C is a constant that can be set by an administrator to control the width of distribution of the final Conversation scores in a domain or across domains.
0115In another embodiment the average score for a category may be fed through a sigmoid function such as:
0000<maths id="MATH-US-00003" num="00003"><math overflow="scroll"><mfrac><mrow><msup><mi></mi><mrow><mn>2</mn><mo>·</mo><mi>C</mi><mo>·</mo><mi>x</mi></mrow></msup><mo>-</mo><mn>1</mn></mrow><mrow><msup><mi></mi><mrow><mn>2</mn><mo>·</mo><mi>C</mi><mo>·</mo><mi>x</mi></mrow></msup><mo>+</mo><msup><mi></mi><mi>C</mi></msup></mrow></mfrac></math></maths><img file="US2015095108A1_D0003.tif" />
0116where x is the category's weighted average and C can be used to tune the midpoint resolution (starting at a value of 3 or 7). For positive x values, this function can, for example, return a value in the range [0, 1].
0117Scoring service module <b>172</b> can thus generate a score for a facet of social media exposure for an entity in a domain. Scores for each entity can be stored in association with that entity in scoring and data point data store <b>184</b> or a caching layer and used by analytics client application module <b>178</b> in providing interfaces in responses to a request from a browser or application at user computing device <b>102</b> (e.g., as forwarded by a web server or directly if the analytics client application module <b>178</b> includes a web server component). Embodiments of such interfaces will be discussed in more detail at a later point herein.
0118Turning now to <figref idref="DRAWINGS">FIG. 2</figref>, one embodiment of a method of obtaining data points associated with a Conversation score for an entity is depicted. Such an embodiment may, for example, be used by embodiments of an update process or the like.
0119At step <b>210</b>, the data on the entity for which data is being gathered may be determined, by, for example accessing a scoring and data point data store and determining a domain associated with that entity. Additionally during this step the aliases associated with the entity may also be determined. Once the domain and other data associated with the entity is determined, at step <b>220</b>, each of the conversation categories (e.g., associated with that domain) can be determined and at step <b>230</b> the search terms for that conversation category for that domain may be determined. Examples of conversation categories may include, a negative group of conversation categories (e.g., cheating, arrest, negative fan reaction, legal issues, performance enhancing drugs, etc.) and a positive group of conversation categories (e.g., charity, giving back, positive fan reaction, foundation, etc.).
0120For each of the conversation categories, a corresponding request may be submitted to an online search provider at step <b>240</b> (e.g., one request for all conversation categories, one request per conversation category, or one request for multiple, but less than all, conversation categories). The submitted request may include the search terms for that conversation category and the entity's name and any aliases. The request to the online search provider may request that one or more searches be performed the entity name, aliases and search terms (e.g., with one or more Boolean operators such as AND or OR between the entity name, aliases or search terms). In one embodiment, such a request may also indicate that the entity name, aliases or search terms appear in the title of any result. Such a request is formatted according to the API provided by that online site.
0121At step <b>250</b> the results of the request are received from the online search provider. These results may either be a numerical indication of the number of results associated with the submitted search in the request or may be a listing of actual results from which such a numerical indication of the number or results can be derived. This numerical indication is stored, at step <b>260</b>, as a data point for that conversation category for that entity in that domain.
0122Moving now to <figref idref="DRAWINGS">FIG. 3</figref>, one embodiment of a method of using data points in determining a Conversation score is depicted. Such a method may be used, for example, by embodiments of a scoring service module. Initially then, at step <b>310</b> when a Conversation score is to be determined the data points (e.g., numerical values for the data points) for each conversation category for the entity and a domain of that entity may be determined. Once the data points for that entity and domain are determined, at step <b>320</b> for each of the conversation categories, the value for the data point associated with that conversation category may be normalized. In one embodiment, for example, the data point may be normalized to a 28-day rolling average for that data point for that conversation category and that domain.
0123Once the data points are normalized, at step <b>330</b> each of the normalized data points may be weighted using a weight specific to that conversation category and domain. The weights utilized with a conversation category may have been selected to achieve a certain distribution or average of scores of for other reasons. The conversation categories themselves may be divided into a negative group (e.g., cheating, performance enhancing drugs, etc.) and a positive group (e.g., charity, giving back, etc.) as discussed. Accordingly, at step <b>340</b> a positive weighted average may be determined by taking the taking the average of each of the normalized and weighted data points for each of the positive conversation categories for that entity and domain. Similarly, at step <b>350</b> a negative weighted average may be determined by taking the taking the average of each of the normalized and weighted data points for each of the negative conversation categories for that entity and domain.
0124The weighted average for the positive conversation categories can then be passed through a positive conversation sigmoid function at step <b>360</b> to generate an adjusted positive weighted average. This sigmoid function may be associated with the domain and serve to control the distribution of the positive average score and can be tuned based upon, for example the desired distribution of the positive category weighted average or the distribution of the final conversation score, or on a wide variety of other criteria. The weighted average for the negative conversation categories can also be passed through a negative conversation sigmoid function at step <b>370</b> to generate an adjusted negative weighted average. This sigmoid function may again, be associated with the domain and serve to control the distribution of the negative average score and can be tuned based upon, for example the desired distribution of the negative category weighted average or the distribution of the final conversation score, or on a wide variety of other criteria. It will be noted that the negative conversation sigmoid function may be the same as, or different, than the negative conversation sigmoid function and may be independently adjusted based on different criteria.
0125Using the adjusted positive weighted average and the adjusted negative weighted average at step <b>380</b> an overall conversation score may be generated for that entity with respect to the domain. More specifically, in one embodiment, a starting value for the conversation score for that domain may be obtained and adjusted by subtracting out the adjusted negative weighted average and adding the adjusted positive weighted average to give a final conversation score for the entity and that domain. This final conversation score may be stored in association with the entity in step <b>390</b>.
0126Moving now to <figref idref="DRAWINGS">FIG. 4</figref> one embodiment of a method of obtaining data points associated with a Reach or Engagement score for an entity is depicted. Such an embodiment may, for example, be used by embodiments of an update process or the like. At step <b>410</b>, the data associated with the entity for which data is being gathered may be determined, by, for example accessing a scoring and data point data store and determining a domain associated with that entity. Once the domain associated with the entity is determined, at step <b>420</b>, each of the data points associated with that domain and the facets of Reach and Engagement can be determined. Each of these data points may be associated with a particular online site. For example, for the facet of Reach, data points may be for the online site twitter a number of followers; for Instagram the number of followers, for Facebook the number of likes, for YouTube the number of videos or subscribers. For the facet of Engagement, data points may be for the online site twitter a number of tweets, the number following, the mention rate and the retweet rate; for Instagram the number of photos and the number following, for Google+ the activities, plus ones, shares and replies; for Facebook the talking about number, the post rate, the comment rate, the post like rate and the share rate and for YouTube the number of videos and interactions.
0127For each of the online sites, a corresponding request may be submitted to that online site at step <b>430</b>. The submitted request may include an account identifier for the entity along with the requested data points identified for the Reach and Engagement facets. The request to the online search provider may indicate that the requested data points associated with that account identifier should be returned. The request may also specify that particular pieces of social media content should be returned such as, for example, the most popular content, the most viewed content, the most commented content, etc., or may request information on an identified piece of social media content. Such a request is formatted according to the API provided by that online site. As is discussed elsewhere herein, data points associated with a particular account for an entity with respect to a particular online site may be obtained using different requests for each of those accounts where those requests may be submitted in an asynchronous manner to those particular online sites.
0128At step <b>440</b> the results of the request(s) are received from the online site. These results may either be a numerical indication of the number of results associated with the submitted search in the request, actual pieces (or identifiers) of social media content or both. This data is stored, at step <b>450</b>, as historical data associated with the corresponding account for that entity in that domain. As has been discussed the data points associated with a particular account for an entity with respect to a particular online site may be obtained using different requests for each of those accounts where those requests may be submitted in an asynchronous manner to those particular online sites. Thus, a time-stamp indicating when the historical data associated with the entity and that account may be stored in conjunction with that historical data for that entity and that account.
0129Moving now to <figref idref="DRAWINGS">FIG. 5</figref>, one embodiment of a method of using data points in determining a Reach or Engagement score is depicted. Such a method may be used, for example, by embodiments of a scoring service module. Initially, at step <b>510</b>, when a Reach or Engagement score is to be determined the data points (e.g., numerical values for the data points) associated with that facet (e.g., Reach or Engagement) for the entity and the domain of that entity may be determined. Specifically, a configuration for the facet and the domain may be accessed and the data points to be used in determining the score for that facet within that domain may be determined. For example, for the facet of Reach, data points may be for the online site twitter a number of followers; for Instagram the number of followers, for Facebook the number of likes, for YouTube the number of videos or subscribers. For the facet of Engagement, data points may be for the online site twitter a number of tweets, the number following, the mention rate and the retweet rate; for Instagram the number of photos and the number following, for Google+ the activities, plus ones, shares and replies; for Facebook the talking about number, the post rate, the comment rate, the post like rate and the share rate and for YouTube the number of videos and interactions. Historical data associated with the entity may then be accessed at step <b>520</b> to determine the value for each of the data points for the facet being calculated for the entity.
0130Once the data points for that entity associated with the facet and the domain are determined, at step <b>530</b> each of the data point associated with the facet (e.g., Reach or Engagement) may be normalized. In one embodiment, for example, the data point may be normalized to a 28-day rolling average for that data point for that conversation category and that domain.
0131Once the data points are normalized, at step <b>540</b> each of the normalized data points may be weighted using a weight specific to that facet and domain. To determine the weights to apply for a particular facet and domain a configuration for the facet and the domain may be accessed and the weights to be used in determining the score for that facet within that domain may be determined. The weights utilized with a particular facet may have been selected to achieve a certain distribution or average of scores of for other reasons.
0132An overall average score for the facet may then be determined at step <b>550</b>. In one embodiment, overall average score may be generated by taking the average of each of the weighted data points for that facet (e.g., Reach, Engagement) for that entity. The score for the facet may then be adjusted at step <b>560</b> to obtain a final score for the facet. This adjustment may serve to control distribution of the scores for a facet within a domain. For example, the overall average score for the facet can be fed through a reciprocal function specific to a domain:
0000<maths id="MATH-US-00004" num="00004"><math overflow="scroll"><mrow><mn>1</mn><mo>-</mo><mfrac><mn>1</mn><mrow><mrow><mi>C</mi><mo>·</mo><mi>x</mi></mrow><mo>+</mo><mn>1</mn></mrow></mfrac></mrow></math></maths><img file="US2015095108A1_D0004.tif" />
0133where x is the raw category score, and C is a constant that can be set by an administrator (e.g., using an administrator interface) to control the width of distribution of the output across all entities in a domain or across domains. In other embodiments, other functions can be used to control distribution. This final score for the facet for the entity in the domain may be stored in association with the entity in step <b>570</b>.
0134Now that embodiments of obtaining and using data from various online sites in the generation of scores for certain facets has been explained it may now be useful to go into more detail regarding embodiments of how such data may be obtained from online sites. Turning then to <figref idref="DRAWINGS">FIG. 6</figref>, a block diagram of one embodiment of an update process and associated data store is depicted. In this embodiment, update process <b>600</b> may issue requests to online sites <b>650</b> to obtain data on accounts associated with online sites <b>650</b> subject to rate limiting imposed by online sites <b>650</b>. In such an embodiment, scoring and data point data store <b>684</b> may maintain a set of entities <b>670</b>, each entity <b>670</b> includes a set of accounts <b>672</b> for that entity <b>670</b> where each of the accounts <b>672</b> includes an account type <b>674</b> and account identifier <b>676</b> corresponding to an online site <b>650</b> (e.g., twitter, Facebook, Google+, etc.). It will be understood that each entity has an account type corresponding to an online search provide such as Bing or Google. While such an account type may not include a specific account identifier such as those used with certain online sites <b>650</b> (e.g., a twitter handle, a Facebook page name, etc.), the entity name or aliases can be considered account identifiers <b>676</b> for such an account type <b>674</b>.
0135Each entity <b>670</b> may be associated with corresponding online site data <b>660</b> for that entity <b>670</b>. Specifically, online site data <b>660</b> for an entity may include on or more historical snapshots <b>662</b> associated with each account <b>672</b> of the entity. Thus, each historical snapshot <b>662</b> may include a timestamp or the like denoting when that account <b>672</b> was last updated. Each account <b>672</b> may also have metadata associated with it denoting that the account is currently being update or has been reserved or queued for updating.
0136Scoring and data point data store <b>684</b> may be accessed or otherwise managed using database manger <b>686</b> which includes a rate determiner <b>688</b> and an account determiner <b>690</b>. Rate determiner <b>688</b> may have access to rate limiting data <b>692</b> (e.g., as configured by an administrator or the like) corresponding to each of the online sites <b>650</b>. This rate limiting data <b>692</b> associated with an online site <b>650</b>, as discussed above, may include a number of requests that may be submitted to that online site <b>650</b> in a particular time period. Rate determiner <b>688</b> can thus be configured to receive a request to determine which online sites <b>650</b> are currently available for a request given the rate limiting data <b>692</b> associated with that online site <b>650</b> and the timestamps associated with the snapshots <b>662</b> of each account <b>672</b> (and the account type <b>674</b> associated with that account).
0137Specifically, when rate determiner <b>688</b> receives such a request, for each of the online sites <b>650</b> it can access the associated rate limiting data <b>692</b> and determine a time period of interest for that online site <b>650</b> (e.g., if twitter only allows 150 requests every five minutes a time period of interest may be five minutes for twitter). By accessing the timestamps of snapshots <b>662</b> associated with accounts <b>672</b> of entities <b>670</b> that are of an account type <b>674</b> associated with that online site <b>650</b> the number of requests submitted to that online site within the time period of interest can be determined. This number of requests can be compared with a request number of interest determined from the rate limiting data associated with that online site <b>650</b> (e.g., if twitter only allows 150 requests every five minutes a request number of interest may be 150 requests for twitter) to determine if there are any available request slots for that online site <b>650</b> subject to the rate limiting data <b>692</b> (e.g., if the number of requests defined by the rate limiting data for that online site exceeds the number of snapshots from that online site <b>650</b> during a previous time period equal to the time period defined by the rate limiting data). In response to the received request, rate determiner may identify any online sites <b>650</b>, if any, for which request slots are available.
0138Account determiner <b>690</b> can thus be configured to receive a request to determine a number of time ordered account identifiers <b>676</b> or account types <b>674</b> associated with one or more online sites <b>650</b>. Specifically, account determiner <b>690</b> may receive a request specifying one or more online sites <b>650</b> and a number of accounts identifiers to return. When account determiner <b>690</b> receives such a request, for each of the identified online sites <b>650</b> it can access the timestamps of snapshots <b>662</b> associated with accounts <b>672</b> of entities <b>670</b> that are of an account type <b>674</b> associated with that online site <b>650</b> to determine those accounts that were least recently updated. These accounts <b>672</b> can be sorted based on the time they were last updated and the requested number of account identifiers <b>676</b> and account types <b>674</b> for the accounts <b>672</b> that were the least recently updated may be returned in response to the request. Thus, for example, if a request specifies only Facebook as an online site <b>650</b> and <b>10</b> as the number of accounts <b>672</b> to return, the account determiner <b>690</b> may return Facebook account identifiers <b>676</b> for the 10 least recently updated Facebook accounts sorted in order of least recently updated. As another example, if a request specifies both Facebook and twitter as online sites <b>650</b> and <b>10</b> as the number of accounts <b>672</b> to return, the account determiner <b>690</b> may determine the least recently updated Facebook and twitter accounts <b>672</b> and return account identifiers <b>676</b> for the 10 least recently updated accounts that are either Facebook or twitter sorted in order of least recently updated.
0139Update process <b>600</b> may therefore utilize database manager <b>686</b> to issue requests to online sites <b>650</b> subject to rate limiting imposed by online sites <b>650</b>. Update process includes a dispatch queue <b>602</b>. Each entry <b>604</b> in dispatch queue <b>602</b> corresponds to a request to be sent to a particular online site <b>650</b> for a particular account identifier <b>676</b>. For example, an entry <b>604</b> may corresponding to a request to be sent to twitter to obtain data (e.g., numerical data points or other data) for a particular twitter account associated with an account identifier <b>676</b> for an entity <b>670</b>. Queue <b>602</b> may have a certain number of slots for these entries, which may be determined, for example, by the number of update processes <b>600</b> being used, the computing environment or capabilities (e.g., processor speed, memory, bandwidth, etc.) of the physical computer on which update process <b>600</b> is implemented or for other reasons.
0140Enqueuer <b>620</b> may place entries <b>604</b> onto dispatch queue <b>602</b>. More specifically, either based on a number of open slots in queue <b>602</b> or based on same time interval (e.g., every 5 seconds), enqueuer <b>620</b> may request an identification of online sites <b>650</b> which may have requests issued on them from rate determiner <b>688</b>. Enqueuer <b>620</b> receives a response identifying any online sites <b>650</b> for which for which request slots are available given the rate limits associated with those sites <b>650</b>. Using the identified online sites <b>650</b> received in response to this request, enqueuer <b>620</b> may request a certain number of account identifiers associated with those online sites <b>650</b> from account determiner <b>690</b>. The response from account determiner <b>690</b> includes account identifiers <b>676</b> for that number of least recently updated accounts <b>672</b>. From these least recently updated accounts <b>672</b> enqueuer <b>620</b> may select a certain number to place on dispatch queue <b>602</b>. The number selected may be determined based the number of slots available in dispatch queue <b>602</b> or by some other metric and which of the accounts <b>672</b> of the least recently updated accounts <b>672</b> received are selected may be determined by random selection or by some other metric. Once the accounts <b>672</b> are selected, an entry <b>604</b> associated with the selected account <b>672</b> containing information associated with the account such as the account identifier <b>676</b> or account type <b>674</b> may be place on the dispatch queue <b>602</b>. Additionally, enqueuer <b>620</b> may mark that account <b>672</b> as being currently updated in data store <b>684</b> such that it may be accounted for by rate determiner <b>688</b> and account determiner <b>690</b> (e.g., accounted for in determining rate limits by rate determiner <b>688</b> and not selected or used by account determiner <b>690</b>).
0141Dispatcher <b>610</b> may access an entry <b>604</b> on the queue <b>602</b> and using data contained in the entry <b>604</b>, including the account identifier <b>676</b> or account type <b>674</b>, prepare and dispatch a request to the corresponding online site <b>650</b> according to the proprietary interface utilized by that online site <b>650</b>. Specifically, dispatcher <b>610</b> may utilize configuration information associated with the account type <b>674</b> to determine what data to obtain from that online site <b>650</b> and make a request for that data associated with that account identifier <b>676</b> to that online site <b>650</b> according to that online site's proprietary interface.
0142Receiver <b>630</b> may receive responses to requests issued by dispatcher <b>610</b>. The data from these responses may be written by receiver <b>630</b> to scoring and data point data store <b>684</b>. In particular, receiver <b>630</b> may write the received data as a historical snapshot <b>662</b> and associated timestamp associated with the corresponding account <b>672</b> of the entity <b>670</b> associated with the request which generated the received response. Any indication that this account <b>672</b> is currently being updated associated with the metadata for the account may also be removed.
0143Update process <b>600</b> can be responsible for deciding whether a given snapshot has been successfully retrieved and placing the account back into the “idle” state such that it can be polled again based on future prioritization (the “idle” state represents one in which the account is not queued or currently prioritized for snapshotting.) If an error occurs during the retrieval of a given snapshot, the update process can determine whether the error is one that can be recovered from with time or one that is indicative of incorrect social media account information or a more permanent issue with the system or social source service. To this end, for each social media source, an update process can maintain a set of recoverable error states. Each error reported can be compared against these states to determine the recoverability or level of criticality for the error. If the error is one that cannot be automatically recovered from, the error can be placed in a state that requires human operator intervention. In this case, the account is not placed back in an “idle” state and will not be prioritized for snapshotting until the error state is changed. A human or programmatic operator can review the error, history of the account and other information in order to ascertain the true nature of the error and determine whether to return the account to the pool of “idle” accounts or whether more intervention or corrective actions are required.
0144<figref idref="DRAWINGS">FIG. 7</figref> is a flow diagram of one embodiment of a method for a method for updating data from online sites. Such a method may be employed, for example, by embodiments of an update process in a social media analytics system to update data points associated with a social media account or to obtain data from a search provider associated with a conversation category.
0145Thus, at step <b>710</b>, an identification of all online sites from which to data may be requested is determined. This determination may be based on rate limiting data associated with each of the online sites. Specifically, each online site may have a corresponding request number (or request size) and request time period that may serve to define a rate limit for that online site. For each of the online sites then, data denoting when requests were previously sent (e.g., requests that have been completed during the time period, to that online site during a time period associated with the rate limiting for the online site. This data can be determined by determining each account of an account type associated with that online site and for each account of that account type accessing each of those accounts (e.g., a twitter account, an Instagram account, etc.) to determine how many of them have historical data (e.g., a snapshot) associated with them that was obtained within the request time period or how many of them have been marked as being currently updated or reserved for updating. In this manner, the number of requests that have been made to that online site within the request time period may be determined. The determined number of requests may be compared to the request number to determine if there is any difference and commensurately if any additional requests may be made to that online site without exceeding any rate limit imposed by that online site. Each online site for which additional requests may be made can therefore be identified.
0146If no online sites are identified (e.g., a rate limit associated with all online sites has been reached) after a certain time period the identification may be attempted again. Otherwise, based on the online sites that were determined in step <b>710</b>, a number of accounts (N) (e.g., associated with an account identifier) for at least one of those online sites may be determined at step <b>720</b>. The number determined may be configured by an administrator or may be determined based on a requesting process based on, for example, a number of open slots in which requests can be made to such online sites. Here, for each of the online sites identified at step <b>710</b> a number (N) of accounts associated with that online site that have been least recently updated may be determined at step <b>722</b>. This data can be determined by accessing each account of the account type associated with the online site (e.g., that are not marked as being currently updated or reserved for updating) and the timestamp associated with the most recently obtained historical data associated with that account. Based on the timestamps associated with the historical data for those accounts, the number (N) of those accounts that were least recently update may be determined. Thus, at the end of this step there may be a number (N) of accounts identified for each online site for which requests may be made to that online site without exceeding any rate limit imposed by that online site.
0147At step <b>724</b> all of the accounts for all of those online sites obtained at step <b>712</b> may then be sorted based on the timestamps associated with the historical data for those accounts. At step <b>726</b> a final number (N) of accounts from these sorted accounts that were least recently updated may be selected without regard to the type of account. In other words, at this point there may be a number (N) of accounts associated with any online site identified at step <b>710</b> which have been least recently updated, regardless of the account type or online site.
0148At step <b>730</b> one or more of the final (N) accounts determined in step <b>724</b> may be selected for updating. This selection may be done randomly from the final number (N) of accounts or may be done on other criteria, such as least recently updated or the like. The selected accounts may be reserved for updating at step <b>740</b> by denoting each of these accounts as being currently updated. This designation may for example, comprise entering or updating metadata associated with that account in a data store containing data on that account.
0149At step <b>750</b>, for each of the selected accounts the associated account identifier for that account may be used to submit a request to the online site associated with that account. Specifically, each online site may have a proprietary interface by which data from that online site may be obtained. A configuration associated with that online site or account type may be accessed to determined information to include in the request. This data may include the account identifier or data points or social media content to obtain if the online site is a social media site; or the search terms or an entity's aliases to be used in a search in the case where the online site is a search provider. Using this data a request may be formed according to the proprietary interface used by that particular online site and the request submitted to the online site. It will be noted here that each request associated with each account may be submitted asynchronously to one another and a different time.
0150For example, it may be determined that the online site associated with the account is the search provider site and the data store may be accessed to determine the set of search terms associated with each conversation category and the name (or aliases) associated with the entity. A request for values for each conversation category based on the search terms for the conversation category and the name of the entity may be formed (e.g., requesting a search be performed for each conversation category based on the search terms and the entity's name or aliases).
0151A response to the request may be received at step <b>760</b>. If the request to the online site for the account was successful the data (e.g., a snapshot of historical social media content or numerical data points, data points associated with a search provider such as a number of hits returned from a search, etc.) and a corresponding timestamp may be stored at step <b>770</b> and any metadata or other data associated with reserving or otherwise identifying the account as being updated may be changed to reflect that the account has been updated or is no longer reserved for updating.
0152Again, it will be noted here that similarly to the requests associated with each account, the response to each request associated with an account may be received asynchronously to one another and a different time (e.g., the steps <b>740</b>, <b>750</b>, <b>760</b>, <b>770</b> and <b>780</b> may be going on substantially simultaneously or asynchronously to one another). Thus, the requests and responses for each individual account for each individual entity may be updated separately and asynchronously from one another in a manner that conforms to different rate limiting imposed by each individual online site at which those accounts are maintained. Additionally by determining which accounts have been least recently updated and allowing those accounts to be selected or scheduled for updating data associated with the various entities may be kept substantially current while still conforming to such rate limits.
0153If the request was not responded to, or an error was received, at step <b>780</b> metadata associated with the account may be entered to denote error with respect to the account and account identifier. An administrator may be notified or an account flagged in administrator interface.
0154Referring now to <figref idref="DRAWINGS">FIGS. 8A-12C</figref>, embodiments of interfaces that may be used by embodiments of a social media analytics platform are illustrated. With reference first to <figref idref="DRAWINGS">FIGS. 8A-8E</figref>, an illustration of one embodiment of an interface that may be used for scoring administration is depicted. Such an interface may allow an administrator of a social media analytics platform to set or alter the weights associated with different data points from different online sites for each domain to which an entity may belong. The weights for the different data points and domains may be used in determining a score for a facet of social media exposure for an entity within that domain.
0155Here, the interface <b>800</b> may present a table of weights. Area <b>820</b> may include a set of domains to which an entity may be assigned by an administrator. These domains include, in the example illustrated in <figref idref="DRAWINGS">FIGS. 8A-8E</figref>, Football (NFL), Formula 1, Basketball (NBA), Golf (PGA Tour), Hockey (NHL), etc. Area <b>810</b> may include a set of data points, each of the data points associated with an icon identifying a corresponding online site or account type. For example, one data point <b>812</b> may be the number of tweets from the online site twitter; another data point <b>812</b> may be shares from the online site Google+; another data point <b>812</b> may be photos from the online site Instagram; another data point <b>812</b> may be likes from the online site Facebook; another data point <b>812</b> may be videos from the online site YouTube; another data point <b>812</b> may be the giving back Conversation category which is the number of hits returned from the online site Bing for an entity and search terms for that category, etc.
0156Each weight may indicate the weight of that particular data point to utilize when calculating a score for a facet which uses that data point in the associated domain. For example, a weight of 1.7 may be used with the number of tweets from the online site twitter when used in calculating a score for the domain of Formula 1; a weight of 2.99 may be used with the number of likes from the online site Facebook when used in calculating a score for the domain of Basketball (NBA), etc. Using interface <b>800</b> an administrator may alter these weights by, for example, clicking on the weight itself, which may bring up a data entry interface allowing the administrator to change the numerical weight assigned to that data point with respect to that domain.
0157<figref idref="DRAWINGS">FIGS. 9A-9B</figref> are an illustration of one embodiment of an interface that may be used for player card, scoring, or database administration. Here an administrative interface <b>900</b> which allows an administrative user to provide, view or alter data on an entity. Specifically, area <b>910</b> may provide a portion of interface <b>900</b> for displaying a name associated with an entity (e.g., LeBron James) and a domain for the entity (e.g., Basketball (NBA)). Area <b>920</b> may provide a portion of interface <b>900</b> for providing or altering a biography for the entity. In one embodiment, this area <b>920</b> may allow a portion of a Wikipedia entry (or a link to that entry) to be entered here. Area <b>930</b> may allow for providing or altering information about the entity (e.g., name, domain (e.g., sport); a tem or other group associated with the entity; etc.). Area <b>940</b> allows an administrative user to define accounts associated with online sites for that identify, including the account type or online site and an account identifier for the account. Here, for example, a twitter account (e.g., associated with an account type and online site twitter) has an account identifier “KingJames” while a Facebook account has an account identifier “LeBron”, etc. Area <b>950</b> may display one or more historical scores determined for different facets (e.g., here Reach, Engagement and Sponsorability/Conversation) of social media exposure for that entity (e.g., LeBron James) within the domain (e.g., Basketball (NBA)) of that entity using, for example, the accounts defined in area <b>940</b>. Area <b>960</b> allows an administrative user to provide or alter aliases which may be used to refer to the entity.
0158<figref idref="DRAWINGS">FIG. 10</figref> is an illustration of one embodiment of an interface for player card, scoring or database administration. Here, interface <b>1000</b> may include areas <b>1010</b> that display each of the facets in which a score for that entity (e.g., here LeBron James) in the domain of that entity (e.g., here Basketball (NBA)) has been generated and the associated score for that facet. Underneath each area <b>1010</b> is a corresponding area <b>1020</b> displaying each of the data points used in calculating the corresponding score for that facet in that domain.
0159For example here, for the facet of Reach, data points may be for the online site twitter a number of followers; for Instagram the number of followers, for Facebook the number of likes and for YouTube the number of videos and subscribers. For the facet of Engagement, data points may be for the online site twitter a number of tweets, the number following, the mention rate and the retweet rate; for Instagram the number of photos and the number following, for Google+ the activities, plus ones, shares and replies; for Facebook the talking about number, the post rate, the comment rate, the post like rate and the share rate and for YouTube the number of videos and interactions. For the facet of Sponsorability (i.e., Conversation) the data points may be associated with the conversation categories of cheating, arrest, negative fan reaction, legal issues, performance enhancing drugs, charity, giving back, positive fan reaction and foundation.
0160Each of the data point may have a numerical value associated with the entity (e.g., obtained from the most recent snapshot of that account for that entity), the average for that data point within the domain of the entity (e.g., Basketball (NBA)), the normalized value for that data point and the weight to be applied to that normalized data point in calculating the score for that facet for that domain. Here, for example, for data point of tweets for the facet of engagement, LeBron James may have a value of 4164, the average value for entity's associated with the domain of Basketball (NBA) may be 5594. Thus, the normalized value for LeBron James for this data point may be 0.372 and the weight that will be applied to this normalized value when calculating the Engagement score for LeBron James will be 1.96 as he is a member of the Basketball (NBA) domain.
0161<figref idref="DRAWINGS">FIGS. 11A-11D</figref> are an illustration of one embodiment of an interface for a player card or player card report that may be requested, displayed to, and interacted with by a user. This interface <b>1100</b> includes an area <b>1110</b> for displaying information on the entity, such as the domain, group (e.g., team), the biography, etc. This data displayed may, for example, be the data entered on the entity with respect to <figref idref="DRAWINGS">FIGS. 9A-9B</figref>. Area <b>1120</b> may display the current scores for the entity for one or more facets of social media exposure while area <b>1130</b> may display a graphical depiction of these scores over a user adjustable time window. Additionally, the interface <b>100</b> may include one or more areas <b>1140</b> associated with an account of the entity. For example, there may be an area <b>1140</b> corresponding to each account defined for the entity by the administrator with respect to <figref idref="DRAWINGS">FIGS. 9A-9B</figref>. Each area <b>1140</b> may display values for data points associated with that account for that entity at the online site. For example, area <b>1140</b><i>a </i>may be associated with a Facebook account for the entity LeBron James (e.g., associated with the account identifier LeBron). This area <b>1140</b><i>a </i>may display values for data points of that account (e.g., 20.7 million Likes, 783,000 talking about, 45 post on wall rate, etc.). Additionally, the area <b>1140</b><i>a </i>may display actual social media content associated with this account (e.g., generated by the entity) such as, in this, case the “Top Post” within a user adjustable time window, along with values for data points associated specifically with this piece of social media content (e.g., 157,616 likes, 3,979 shares, etc.). Area <b>1140</b> may also provide the ability for a user to request more social media content associated with that account, or graphically view value for data points associated with that account. It will be noted that each area <b>1140</b> and the abilities or interfaces presented therein may be specifically tailored to the type of account and the social media content or data points available in association with that account or account type.
0162<figref idref="DRAWINGS">FIGS. 12A-12C</figref> are an illustration of one embodiment of an interface that may be used with management or monitoring of an update process of a social media analytics platform. Specifically, interface <b>1200</b> may include area <b>1230</b> which shows the current number of entities (e.g., 19,698 athletes in this example) that have been configured for the social media analytics platform and the number of accounts that have been configured in association with these entities (e.g., here 41,856). Area <b>1210</b> displays representation of accounts (e.g., an account of an entity associated with an account type and account identifier or a search provider account for an entity) that have been selected and queued for updating, but have not yet completed updating. Here, for example, a Facebook account for Delvin N'Dinga has been selected and queued for updating along with a twitter account for Stephen Keel; and a Bing account for Nick Greenwood, etc. Area <b>1220</b> display representations <b>1222</b> of the status or data associated with, or obtained in response to, a request to a particular online site associated with a particular account for an entity. For example, here, representation <b>1222</b><i>a </i>represents that the Instagram account for Miguel Layun is being updated, that a request has been sent to the online site (Instagram) to obtain data on this account, that a response has not been received and that the request was sent out 5 seconds ago. Representation <b>1222</b><i>b </i>represents that the Bing account for Ionut Tarnacop has been updated, that a request has been sent to the online site (Bing) to obtain data on this account (e.g., to perform searches for the entity for the terms in each conversation category), that a response was received less than 20 seconds ago and the data points received in response to the request (e.g., there <b>25</b> hits for the all categories, there were 0 hits for the arrest category, there were 12,300 hits for the charity category, etc.). Representation <b>1222</b><i>c </i>represents that the Facebook account for ADO Den Haag has been updated, that a request has been sent to the online site (Facebook) to obtain data on this account, that a response was received less than 1 minute ago and the data points received in response to the request (e.g., there is a value of 680 for the comments data point, 18,907 for the likes data point, a value of 1,941 for the talking about data point, etc.). Representation <b>1222</b><i>d </i>represents that the twitter account for Dhani Jones has been updated, that a request has been sent to the online site (twitter) to obtain data on this account, that a response was received less than half a minute ago and the data points received in response to the request (e.g., there is a value of 74,358 for the followers data point, 295 for the following data point, a value of 9,230 for the tweets data point, etc.).
0163Area <b>1240</b> may present data on the update process overall, including the overall rate of snapshots (e.g., response from online sites) per minute; how many data point values have been obtained, how many snapshots have been obtained and the number of requests available for each online site in a particular time period given the rate limits imposed by that site and the requests that have been sent by any update processes operating. Area <b>1250</b> may present data on errors associated with requests for various accounts, including the entity and account type (e.g., Eric Hassll and twitter). By clicking on a representation <b>1252</b> of an error an administrator may be able to obtain further information on this error and take action with respect to the error.
0164It will now be helpful to discuss in more detail embodiments of certain interfaces that may be used with embodiments of a social media analytic platform. The first group of interfaces may include web based interfaces that may be provided by a client application to users of the social media analytics platform. Some features of these interfaces can be limited to specific account levels or type. Though examples and embodiments have been discussed specifically with reference to an athlete it should be understood that such interfaces are generally applicable to all types of entities. The second group of embodiments of interfaces described may include administrative interfaces for use by administrators of embodiments of social media analytics platform.
0165I. User Interfaces
Root Screen
0166This can be the page that all users can land on when visiting the root domain of the client application module. In addition to static marketing copy and a prominent search input, this page displays several areas of dynamic content.
0167Ticker
0168A rolling display of entities whose scores for facets have changed the most in the past block of time. The length of this block of time may change based on the rate-limiting and other factors associated with the data sources, but it can start in the range of an hour. The names of entities mentioned in the ticker can be clickable links that can bring the user to that entity's player card. The contents of this may or and may not update while the page is displayed.
0169Match Up
0170This can contain a curated pair of entities are relevant to the timeframe. The visual can include pictures or avatars of the two entities and their Index Ranks/Scores, a caption heading, and a caption. Clicking on the visual can bring the user to the Player Comparison card for those two entities.
0171Top Social Content
0172This can contain a dynamic single set of social media content. This may include, but is not limited to: <ul id="ul0005" list-style="none"><li id="ul0005-0001" num="0000"><ul id="ul0006" list-style="none"><li id="ul0006-0001" num="0173">Most popular Twitter tweet originating from an entity.</li><li id="ul0006-0002" num="0174">Most popular Facebook post originating from an entity.</li><li id="ul0006-0003" num="0175">Most popular Google+ post originating from an entity.</li><li id="ul0006-0004" num="0176">Most popular Instagram photo originating from an entity.</li><li id="ul0006-0005" num="0177">Most popular YouTube video originating from an entity.</li></ul></li></ul>
0178Top 10
0179This can contain the top 10 (or other number) entities by an index score (such as an overall index score). There can be an interactive element to allow the user to select “Overall” or to filter for example, athletes in a given sport.
Player Card
0180A client application module can interact with a score service to retrieve score information and provide a web page, app page or information for other interfaces incorporating the information. According to one embodiment, the client application module can return a “Player Card.” The “Player Card” provides, in one embodiment, a single aggregated collection of all social media data for a single entity (e.g., athlete). According to one embodiment, data shown on the Player Card is rendered in three formats. The first is a simple display of the raw data: a single number for a given statistic. These data always show the last value of the data point for that athlete.
0181Secondly, a graph is rendered for time-series data that allows the user to see collected data from social media sites over an adjustable period of time. This graph also allows for the direct comparison of different data points over the same time period.
0182Finally, individual activities of the athlete on a given social media source are shown with associated metadata, media, and statistics. Each provides direct access to the user to access those activities on the original source website. For example, Facebook activity statistics for and athlete can link the athlete's Facebook page.
0183In some embodiments, the Player card is the primary screen for information about a single entity (e.g., athlete). This page can contain several sections. There are a set of components common to all athletes that are not dependent on any 3rd-party social media content. These are listed below and, according to one embodiment, appear on all Player Cards.
0184Avatar Image
0185This is a static image of the entity. The may be image can be set using the Player Card Management Screen functionality described below. Avatar images can be set up by Administrators only.
0186Biographical Statistics
0187These statistics can be populated by the data entered in the Player Card Management Screen. These can include, but are not limited to: <ul id="ul0007" list-style="none"><li id="ul0007-0001" num="0000"><ul id="ul0008" list-style="none"><li id="ul0008-0001" num="0188">Sponsor list</li><li id="ul0008-0002" num="0189">Hometown City</li><li id="ul0008-0003" num="0190">Hometown State</li><li id="ul0008-0004" num="0191">College</li><li id="ul0008-0005" num="0192">Birthdate</li><li id="ul0008-0006" num="0193">Gender</li><li id="ul0008-0007" num="0194">Team (can be a link to the team page)</li><li id="ul0008-0008" num="0195">Sport</li><li id="ul0008-0009" num="0196">Website (can be a link to the athlete's website)</li></ul></li></ul>
0197Any of these fields that are not known or are not applicable (such as “Team” for golf or tennis players) can be omitted. A user can request a correction to biographical statistic and the biography on this player card through a simple form.
0198Biography
0199This can be a block of text as described in the Player Card Management Screen below.
0200Links to Social Media
0201These can be direct links to the entity's social media accounts as set up.
0202Top Competitors
0203The three top (or other number) of entity's in this Athlete's sport as ranked by combined Index Score can be shown under Top Competitors. The user can click on one of the avatar images to go to that athlete's Player Card.
0204Current MVP Index
0205Depending on the level of the user's account, they can either have access to Numeric Index Scores or Ranks and Trend Arrows. For users with access to Numeric Index Scores for this athlete, the Combined Index Score can be displayed between the range of “0.000” to “0.999”. Additionally, the scores for each of Reach, Engagement, and Sponsorability can be shown on a scale of “0” to “9” along with the trending arrows for each (up, down, or equal).
0206For users that do not have access to this Athlete's Numeric Index Scores, in place of the combined Index Score, the user can see a ranking of that athlete compared to all other athletes configured in the system. This ranking can be shown as an exact number (i.e., 3rd, 127th, etc.) for all athletes in the top 200 (or other number of) positions. In some embodiments, for athletes not in the top group, a percentile can be shown as to where that athlete falls in the list of all athletes. These percentiles can be defined as “Top 10%”, “Top 20%”, “Top 30%”, “Top 50%”, “Bottom 50%”, “Bottom 30%”, “Bottom 20%”, and “Bottom 10%” or otherwise.
0207Historical MVP Index
0208For users with access to this Athlete's scores, a graph showing each of Reach, Engagement, and Conversation can be shown. There can be options for the time scale, such as, for example: Week (rolling 7 days), Month (rolling 30 days), and Year (rolling 52 weeks). If a user does not have access to this Athlete's Numeric Index Scores, “teaser” other content can be shown.
0209The sections that describe specific social media statistics or content may only be shown on athletes that have those accounts. For instance, if an athlete has only a Facebook and Instagram account listed in the Athlete Database, a Twitter details section is not shown (either omitted or other content placed in that area of the web page). Example social media information can include, but is not limited to:
0210Facebook <ul id="ul0009" list-style="none"><li id="ul0009-0001" num="0000"><ul id="ul0010" list-style="none"><li id="ul0010-0001" num="0211">Profile Picture</li><li id="ul0010-0002" num="0212">Number of page likes</li><li id="ul0010-0003" num="0213">Number talking about</li><li id="ul0010-0004" num="0214">Number of page wall posts</li><li id="ul0010-0005" num="0215">Most recent wall post with number of likes and comments for that post</li><li id="ul0010-0006" num="0216">Male/female breakdown of people that liked all wall posts</li><li id="ul0010-0007" num="0217">Country breakdown of people that liked all wall posts</li></ul></li></ul>
0218Twitter <ul id="ul0011" list-style="none"><li id="ul0011-0001" num="0000"><ul id="ul0012" list-style="none"><li id="ul0012-0001" num="0219">Profile Picture</li><li id="ul0012-0002" num="0220">Number of followers</li><li id="ul0012-0003" num="0221">Number following</li><li id="ul0012-0004" num="0222">Number of tweets</li><li id="ul0012-0005" num="0223">Most recent Tweet from the athlete</li><li id="ul0012-0006" num="0224">Most popular recent Tweet mentioning the athlete</li><li id="ul0012-0007" num="0225">Time series graph of follower and tweet count—cumulative vs. timespan</li></ul></li></ul>
0226Instagram <ul id="ul0013" list-style="none"><li id="ul0013-0001" num="0000"><ul id="ul0014" list-style="none"><li id="ul0014-0001" num="0227">Profile Picture</li><li id="ul0014-0002" num="0228">Number of followers</li><li id="ul0014-0003" num="0229">Number following</li><li id="ul0014-0004" num="0230">Number of photos</li><li id="ul0014-0005" num="0231">3 Most recent images from the athlete with number of likes and comments</li><li id="ul0014-0006" num="0232">Time series graph of follower and photo count—cumulative vs. timespan</li></ul></li></ul>
0233Google Plus <ul id="ul0015" list-style="none"><li id="ul0015-0001" num="0000"><ul id="ul0016" list-style="none"><li id="ul0016-0001" num="0234">Profile Picture</li><li id="ul0016-0002" num="0235">Number of public activities this athlete has posted</li><li id="ul0016-0003" num="0236">Number of plus ones for this athlete's public activities</li><li id="ul0016-0004" num="0237">Number of reshares of this athlete's public activities</li><li id="ul0016-0005" num="0238">Number of replies to this athlete's public activities</li></ul></li></ul>
0239You Tube <ul id="ul0017" list-style="none"><li id="ul0017-0001" num="0000"><ul id="ul0018" list-style="none"><li id="ul0018-0001" num="0240">Profile Picture</li><li id="ul0018-0002" num="0241">Number of views</li><li id="ul0018-0003" num="0242">Number of subscribers</li><li id="ul0018-0004" num="0243">Number of videos</li><li id="ul0018-0005" num="0244">Most popular video with number of likes, dislikes, and favorites</li><li id="ul0018-0006" num="0245">Time series graph of views and videos—cumulative vs. timespan</li></ul></li></ul>
0246Information from other social media services can be provided as needed or desired.
Player Card Report
0247This report is accessible from a Player Card. It holds the same information as the Player Card with the addition of detailed historical data and the collected Social Media activity for that Athlete. Upon selecting this report, the user can be asked to select the time range from, for example, either a rolling 30-day window, a rolling 90-day window, any month that has already elapsed, any quarter that has already elapsed or other time period. According to one embodiment, the following can be shown in a time-series graph. <ul id="ul0019" list-style="none"><li id="ul0019-0001" num="0000"><ul id="ul0020" list-style="none"><li id="ul0020-0001" num="0248">Combined Index Score</li><li id="ul0020-0002" num="0249">Reach, Engagement, and Sponsorability Index Score</li><li id="ul0020-0003" num="0250">Daily or weekly Number of Tweets</li><li id="ul0020-0004" num="0251">Total Twitter Followers</li><li id="ul0020-0005" num="0252">Daily or weekly change in Total Twitter Followers</li><li id="ul0020-0006" num="0253">Total Twitter accounts Followed</li><li id="ul0020-0007" num="0254">Daily or weekly change in Total Twitter accounts Followed</li><li id="ul0020-0008" num="0255">Mention Rate</li><li id="ul0020-0009" num="0256">Retweet Rate</li><li id="ul0020-0010" num="0257">Total Facebook Likes</li><li id="ul0020-0011" num="0258">Daily or weekly change in Total Facebook Likes</li><li id="ul0020-0012" num="0259">Daily or weekly Facebook Talking About Count</li><li id="ul0020-0013" num="0260">Daily or weekly Number of Facebook Posts</li><li id="ul0020-0014" num="0261">Daily or weekly Number of Shares of Facebook Posts</li><li id="ul0020-0015" num="0262">Daily or weekly Number of Likes of Facebook Posts</li><li id="ul0020-0016" num="0263">Number of Instagram Followers</li><li id="ul0020-0017" num="0264">Daily or weekly change in Instagram Followers</li><li id="ul0020-0018" num="0265">Number of Instagram Friends</li><li id="ul0020-0019" num="0266">Daily or weekly change in Instagram Friends</li><li id="ul0020-0020" num="0267">Number of Instagram Photos</li><li id="ul0020-0021" num="0268">Daily or weekly count of new Photos posted</li><li id="ul0020-0022" num="0269">Total number of Google+ Activities</li><li id="ul0020-0023" num="0270">Daily or weekly count of new Google+ Activities</li><li id="ul0020-0024" num="0271">Total number of Plus Ones of Google+ Activities</li><li id="ul0020-0025" num="0272">Daily or weekly count of new Plus Ones of Google+ Activities</li><li id="ul0020-0026" num="0273">Total number of Replies to Google+ Activities</li><li id="ul0020-0027" num="0274">Daily or weekly count of Replies to Google+ Activities</li><li id="ul0020-0028" num="0275">Total number of Shares of Google+ Activities</li><li id="ul0020-0029" num="0276">Daily or weekly count of Replies of Google+ Activities</li><li id="ul0020-0030" num="0277">Total number of YouTube Videos</li><li id="ul0020-0031" num="0278">Daily or weekly count of new YouTube Videos</li><li id="ul0020-0032" num="0279">Total number of Views of YouTube Videos</li><li id="ul0020-0033" num="0280">Daily or weekly count of Views of YouTube Videos</li><li id="ul0020-0034" num="0281">Total number of YouTube Subscribers</li><li id="ul0020-0035" num="0282">Daily or weekly change in YouTube Subscribers</li><li id="ul0020-0036" num="0283">Total number of YouTube Interactions</li><li id="ul0020-0037" num="0284">Daily or weekly change in YouTube Interactions</li></ul></li></ul>
0285Each of the following Social Media Activities can be shown as part of this report (assuming that the Athlete has a presence on each of these sources). The time period selected above may not be applicable depending on the source. <ul id="ul0021" list-style="none"><li id="ul0021-0001" num="0000"><ul id="ul0022" list-style="none"><li id="ul0022-0001" num="0286">Facebook Wall Posts sorted by most likes</li><li id="ul0022-0002" num="0287">Twitter Tweets sorted by most retweets</li><li id="ul0022-0003" num="0288">Google Plus Activities sorted by most “Plus-One's”</li><li id="ul0022-0004" num="0289">Instagram Photos sorted by most likes</li><li id="ul0022-0005" num="0290">YouTube Videos sorted by most views</li></ul></li></ul>
Social Content Querying
0291In some cases, the client application module may be configured to allow an user to submit search terms as part of a request. According to one embodiment, the client application module can interact with a query service module to run a query on a database. The results returned can include the pieces of social media content responsive to the queries, information about the social content that contained the queries, metrics run on the results of the queries or other information.
0292For example, the web page provided by the client application module may allow a user to enter free text searches or searches limited to certain criteria (say information relating to specific brands, entities, etc.) If the user enters a search for “Brand x”, the client application module can forward a request to the query service, which can interact with the database to run a query. The result of the query may include all the social content (tweets, Facebook posts, etc.) that references Brand X, the entity responsible for the content, etc. The query service can return this information to the client application module or may run an analysis of the results (e.g., determine the top five people referencing Brand X in the social content, etc.) and return the results to the client application module.
0293In some embodiments, a client may wish to limited queries to only certain entities. For example, a query may be run to determine how many times entity <b>1</b> (say an athlete) mentioned Brand X (e.g., the athlete's sponsor) in social content (or specific types of social content (tweets, posts, etc.)).
0294Keywords of interest can be established for the client so that the database can be continually queried (or queried according to a schedule or other criteria) for the references to the information of interest. Thus, for example, a user may establish a monitoring rule to monitor for references to “Brand x” by all entities, references to “Brand y” by a specific entity (e.g., athlete) or otherwise. The monitoring rules may be arbitrarily complex.
0295Querying the database and processing the results to derive metrics can be the responsibility of the client application module or a query service module.
0296The search results can be displayed on the Search Results screen. All results can be filterable by for example, sport and/or location. Only one option in each of sport or location can be selected, and there can be an “All” option. The options in the sport category can be sports for the players found in the results. For example if a football team, two baseball teams, and 5 tennis players are returned as part of the results, the only options for sports to filter by can be football, baseball, and tennis. Location filtering options can be states or other locations for those players that have a state listed and country for those who do not. If more than one country is represented by the results, a country option can be added to filter for players by country and state/province or other region. Location filtering options can be treated similarly to the Sport filtering options in that only options relevant to the search results can be shown.
0297According to one embodiment, if any teams match the search term, they can be listed first, in order of relevance with ties being broken by the Combined Index Score. Each team search result can contain the name of the team, the team logo (if available), the city and/or state for the team, and avatars for the top 5 (or other number) players on that team sorted by Combined Index Score.
0298Following the team results (if there are any), matching players can be listed sorted by relevance with ties broken by the combined Index Score. For each search result, the athlete's avatar, name, sport, and team (if applicable) can be shown. The user can be able to sort the results by relevance or name. If no results are found for the search, the user can be told so and can be directed to modify the search query.
Player Comparison
0299From a Player Card, a user is able to click on a link that takes them to the player comparison page. On entry, this page has the athlete from the original Player card on the left with an input on the right where the user can type a player's name to compare against. The player search box can use a type-ahead input that searches. The user can click on a name that comes up in the type-ahead suggestions to select that athlete. Once an athlete is selected, the athlete is shown, lined up with the player to be compared against. The player search box can remain visible above the selected athlete and can continue to function as described. At any time, the user can click on the name of either athlete to go to that athlete's player card.
0300For each player shown, the athlete's avatar image, name, and biographical statistics can be shown. Additionally, the combined Index Score or Rank can be shown along with the Index Score or trend arrows for each of Reach, Engagement, and Sponsorability and other information
Team Card
0301The Team Card shows information related to the athletes associated with an individual team. The Team Card, in one embodiment, contains the following sections: <ul id="ul0023" list-style="none"><li id="ul0023-0001" num="0000"><ul id="ul0024" list-style="none"><li id="ul0024-0001" num="0302">Team Logo Image</li><li id="ul0024-0002" num="0303">Team Numeric Scores or trending arrows for each of Reach, Engagement, and Conversation averaged across each of the Team's Athletes</li><li id="ul0024-0003" num="0304">Time-series graph of each of Reach, Engagement, and Conversation averaged across each of the Team's Athletes (if the user has access to Numeric Team Index Scores) with options for choice of scale: Week (rolling 7 days), Month (rolling 30 days), and Year (rolling 52 weeks). If a user does not have access to this Team's Numeric Index Scores, “teaser” marketing copy or other content can replace this graph.</li><li id="ul0024-0004" num="0305">Social Media content aggregated across all Athletes on the Team</li><li id="ul0024-0005" num="0306">List of all Athletes on the Team sorted by Combined Index Score (Top 10, expandable to view all)</li><li id="ul0024-0006" num="0307">List of Top Competitors: the top three teams in the same sport as sorted by Combined Index Score</li></ul></li></ul>
Account Dashboard
0308A dashboard can be provided to allow an overview of the social portfolio of that account. Additionally, the user can set up a “Wish List” of athletes that they may or may not have a relationship with.
0309Account Image
0310The user can have an option to upload an image that can be placed in this area.
0311Account Index Scores
0312For accounts other than the Basic level, once the user has set up at least one Custom Social Media account, the Reach and Engagement scores can be shown along with the trending arrows.
0313Historical Account Index Scores
0314Once the user has set up at least one Custom Social Media account, and the Social Media Analytics System has gathered at least three Reach and Engagements Scores, the historical values of these scores can be shown in a time-series line graph. If the user has not set up any Custom Social Media accounts, a message can be displayed over the graph area stating this. If the user has set up at least one Custom Social Medial account, but there have not been enough scores calculated, a message stating this can be shown to the user.
0315Top Sponsored Athletes
0316The avatar images of the top number (e.g., 6) athletes that the account has marked can be shown. Clicking on an athlete's image can bring the user to that athlete's player card. A button can be provided that allows the user to see all of the athletes on that account's player list. Each of Reach, Engagement, and Conversation can be averaged among all players on the list. Additionally, a trend arrow for that score can be shown (up, down, or equal) to represent the most recent direction of motion for that score.
0317If there are not athletes in the Player List, copy can be shown to the user describing how to add players to the Player List.
0318The user can click on a button marked “Summary Report” that generates in a new window a Player Summary Report for that account's Player List.
0319Top Watched Athletes
0320The avatar images of the top number (e.g., 6) athletes that the user has placed on its Wish List can be shown. Clicking on an athlete's image can bring the user to that athlete's Player Card. A button can be provided that allows the user to see all of the athletes on that account's Wish List. Each of Reach, Engagement, and Sponsorability can be averaged among all players on the list. Additionally, a trend arrow for that score can be shown (up, down, or equal) to represent the most recent direction of motion for that average score.
0321If there are no athletes in the Wish List, copy can be shown to the user describing how to add players to the Wish List.
0322The user can click on a button marked “Summary Report” that generates in a new window a Player Summary Report for that account's Wish List.
0323Account Social Media Content
0324If the user has set up any twitter, Facebook, or Instagram Custom Social Media accounts, an Account Social Media Content section can be present below the Player List. If the user has not set up any accounts, this section can contain copy that instructs the user on how to add a Custom Social Media account.
0325If the user has a twitter account, the top three most popular tweets authored by the Account can be shown along with the number of retweets and favorites for each. If the user has a Facebook Page, the three most recent wall posts and the share, like, and comment counts for each. If the user has an Instagram account, the three most recent pictures can be shown along with the number of likes and comments for each image.
0326Player Social Media Content
0327If the user has at least one athlete on their Player List, the content of the social media accounts for all athletes listed can be aggregated. If at least one athlete has a Twitter account, the top three most popular tweets authored by any of the athletes on the Player List can be shown along with the number of retweets and favorites for each. If at least one athlete has a Twitter account, the three most recent wall posts across all athletes on the Player List and the share, like, and comment counts for each. If at least one athlete has an Instagram account, the three most recent pictures for all athletes on the Player List can be shown along with the number of likes and comments for each image.
0328Historical Player Index Scores
0329If the Social Media Analytics System has gathered at least three (or some other number) Reach, Engagement, and Conversation scores for at least one athlete on the Player List, the historical values of the average scores across all athletes on the Player List can be shown in a time-series line graph. If the user does not have any athletes on their Player List, the graph can be replaced with copy instructing the user to add athletes to the Player List.
0330Top Teams (for Team Accounts Only)
0331For Team accounts, the top 10 (or other number) teams in the same sport as the account can be shown ranked by combined Index Score. Clicking on one of these Teams can bring the user to that team's Team Card. Clicking to “see all” can bring the user to the Advanced Filtering page with “Teams” selected filtered by sport.
0332II. Administrative Interfaces
0333The MVP Index Web Application can allow authorized administrators to manage the functionality of the MVP Index Web Application. This includes account management, content management, and other functionality.
Player Card Administration
0334The administrator can add and remove athletes from the system. For each athlete, the administrator can modify the biographical information including, but not limited to the fields below: <ul id="ul0025" list-style="none"><li id="ul0025-0001" num="0000"><ul id="ul0026" list-style="none"><li id="ul0026-0001" num="0335">First Name</li><li id="ul0026-0002" num="0336">Last Name</li><li id="ul0026-0003" num="0337">Photo</li><li id="ul0026-0004" num="0338">Biography</li><li id="ul0026-0005" num="0339">Sponsor list</li><li id="ul0026-0006" num="0340">Hometown City</li><li id="ul0026-0007" num="0341">Hometown State</li><li id="ul0026-0008" num="0342">College</li><li id="ul0026-0009" num="0343">Birthdate</li><li id="ul0026-0010" num="0344">Gender</li><li id="ul0026-0011" num="0345">Team</li><li id="ul0026-0012" num="0346">Sport</li><li id="ul0026-0013" num="0347">Website</li></ul></li></ul>
Administrative Options
0348The administrator can be able to set administrative options that can have an effect on the entire application. According to one embodiment, only Administrators with a sufficient level of access (e.g., flagged as “Owner”) are able to modify these options. According to one embodiment, administrative options include: <ul id="ul0027" list-style="none"><li id="ul0027-0001" num="0000"><ul id="ul0028" list-style="none"><li id="ul0028-0001" num="0349">Approval requirement for each Account Level</li><li id="ul0028-0002" num="0350">Maximum number of Player Slots for Basic and Premium Account Levels</li><li id="ul0028-0003" num="0351">Base Subscription Prices for each Account Level</li><li id="ul0028-0004" num="0352">Additional Subscription Price for each Player Slot at each Account Level</li><li id="ul0028-0005" num="0353">Default sport for the Top 10 displayed on the Root Screen</li><li id="ul0028-0006" num="0354">Other options needed as development proceeds</li></ul></li></ul>
Administrative Account Management
0355A system administrator with a sufficient level of access can be able to add, remove, or modify other Administrative accounts. For each of these administrators, he or she can be able to flag the administrator as an “Owner” or as having another level of access.
Database Management
0356An athlete database management application can be configured to allow authorized users to view and manage the athletes through interaction of the database management application with the database service application. According to one embodiment, the authorized user can be able to perform various actions including, but not limited to: <ul id="ul0029" list-style="none"><li id="ul0029-0001" num="0000"><ul id="ul0030" list-style="none"><li id="ul0030-0001" num="0357">List, add, delete, and modify entities (athletes, brands, teams, and agents)</li><li id="ul0030-0002" num="0358">List, add, delete, and modify sports</li><li id="ul0030-0003" num="0359">View, modify, or set the sport for each entity</li><li id="ul0030-0004" num="0360">List, add, delete, and modify social accounts for each entity</li><li id="ul0030-0005" num="0361">Verify the data points gathered for each social account for each entity</li><li id="ul0030-0006" num="0362">List, add, delete, and modify aliases for each entity</li></ul></li></ul>
0363Some social media APIs provide links to other social media accounts. The management application can give the user the option of “auto-discovering” other social media handles for a given athlete based on these links. These links, in some embodiments, are a best-effort guess by the application and can require user-intervention to be properly configured, but can be helpful in providing hints to the user when setting up an athlete's social media accounts.
Scoring Management
0364Various aspects of the scoring system discussed above involve manually-tuned weights and parameters. In order to accomplish this, a web interface can be provided that gives access to authorized person to modify the “knobs and switches” of the algorithm. For example, according to one embodiment, a user (e.g., an administrator) can be shown an interface having a series of graphical dials that the administrator can “turn” (e.g., using a touch screen, mouse or other input device) to tune the weights.
0365For each sport (including “brands”, “teams”, and “agents”) (or other segment) the scoring management application can provide an interface with all of the data points listed, where the interface allows a user to set the relative weights for each of the data points for that segment. According to one embodiment, only the relative values within this sport impact the final Index Score for an athlete as that score has already been normalized for a particular sport. The sports (or other segments) available for tuning can be determined by those set up in the Athlete Database Service (see above).
0366Second, an interface can be provided where the user can disable any of the data points. A data point that is disabled can still be collected and stored, but is not used in the calculation of Index Score (effectively the same as setting the weight of that data point to zero).
0367Finally, an interface can be provided in which the user can manage the Conversation categories. Here, a user could add remove or modify a S Conversation Category. Each Conversation category has a name, a weight, and a “positive” or “negative” flag. Within each Conversation category, a user can be able to manage a list of terms that can be searched for in relation to an athlete to determine the data point value for that Conversation category.
Match Up Administration
0368The administrator can set up “Match Ups” for display on the Root Screen (see above). The administrator can see a list of all the scheduled Match Ups and can be able to add, modify, or delete them. Each Match Up can have the following fields: <ul id="ul0031" list-style="none"><li id="ul0031-0001" num="0000"><ul id="ul0032" list-style="none"><li id="ul0032-0001" num="0369">Start Date</li><li id="ul0032-0002" num="0370">Athlete 1 (can be shown on the left of the bout)</li><li id="ul0032-0003" num="0371">Athlete 2 (can be shown on the right of the bout)</li><li id="ul0032-0004" num="0372">Bout Title</li><li id="ul0032-0005" num="0373">Bout Content</li></ul></li></ul>
0374So that there is always content to display, the Root Screen can show the bout with the most recent start date in the past. For example, if there is a bout with a start date of May 3rd, one with May 15th, and one with May 25th, then on May 18th, the bout starting on May 15th can be shown. If the bout starting on May 15th is deleted, the one starting on May 3rd can be shown. If there is no bout in the past, the system can show the closest bout in the future. If there is only one bout listed in the system, the user can not be allowed to delete it.
0375Although the invention has been described with respect to specific embodiments thereof, these embodiments are merely illustrative, and not restrictive of the invention. The description herein of illustrated embodiments of the invention, including the description in the Abstract and Summary, is not intended to be exhaustive or to limit the invention to the precise forms disclosed herein (and in particular, the inclusion of any particular embodiment, feature or function within the Abstract or Summary, Description or Exhibits is not intended to limit the scope of the invention to such embodiment, feature or function). Rather, the description is intended to describe illustrative embodiments, features and functions in order to provide a person of ordinary skill in the art context to understand the invention without limiting the invention to any particularly described embodiment, feature or function, including any such embodiment feature or function described in the Abstract, Summary or Exhibits.
0376While specific embodiments of, and examples for, the invention are described herein for illustrative purposes only, various equivalent modifications are possible within the spirit and scope of the invention, as those skilled in the relevant art will recognize and appreciate. As indicated, these modifications may be made to the invention in light of the foregoing description of illustrated embodiments of the invention and are to be included within the spirit and scope of the invention. Thus, while the invention has been described herein with reference to particular embodiments thereof, a latitude of modification, various changes and substitutions are intended in the foregoing disclosures, and it will be appreciated that in some instances some features of embodiments of the invention will be employed without a corresponding use of other features without departing from the scope and spirit of the invention as set forth. Therefore, many modifications may be made to adapt a particular situation or material to the essential scope and spirit of the invention.
0377Reference throughout this specification to “one embodiment,” “an embodiment,” or “a specific embodiment” or similar terminology means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment and may not necessarily be present in all embodiments. Thus, respective appearances of the phrases “in one embodiment,” “in an embodiment,” or “in a specific embodiment” or similar terminology in various places throughout this specification are not necessarily referring to the same embodiment. Furthermore, the particular features, structures, or characteristics of any particular embodiment may be combined in any suitable manner with one or more other embodiments. It is to be understood that other variations and modifications of the embodiments described and illustrated herein are possible in light of the teachings herein and are to be considered as part of the spirit and scope of the invention.
0378In the description herein, numerous specific details are provided, such as examples of components and/or methods, to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that an embodiment may be able to be practiced without one or more of the specific details, or with other apparatus, systems, assemblies, methods, components, materials, parts, and/or the like. In other instances, well-known structures, components, systems, materials, or operations are not specifically shown or described in detail to avoid obscuring aspects of embodiments of the invention. While the invention may be illustrated by using a particular embodiment, this is not and does not limit the invention to any particular embodiment and a person of ordinary skill in the art will recognize that additional embodiments are readily understandable and are a part of this invention.
0379Different programming techniques can be employed such as procedural or object oriented. Data may be stored in a single storage medium or distributed through multiple storage mediums, and may reside in a single database or multiple databases (or other data storage techniques). Although the steps, operations, or computations may be presented in a specific order, this order may be changed in different embodiments. In some embodiments, to the extent multiple steps are shown as sequential in this specification, some combination of such steps in alternative embodiments may be performed at the same time. The sequence of operations described herein can be interrupted, suspended, or otherwise controlled by another process, such as an operating system, kernel, etc. The routines can operate in an operating system environment or as stand-alone routines. Functions, routines, methods, steps and operations described herein can be performed in hardware, software, firmware or any combination thereof.
0380Embodiments described herein can be implemented in the form of control logic in software or hardware or a combination of both. The control logic may be stored in an information storage medium, such as a computer-readable medium, as a plurality of instructions adapted to direct an information processing device to perform a set of steps disclosed in the various embodiments.
0381It is also within the spirit and scope of the invention to implement in software programming or of the steps, operations, methods, routines or portions thereof described herein, where such software programming or code can be stored in a computer-readable medium and can be operated on by a processor. The invention may be implemented by using software programming or code, by using application specific integrated circuits, programmable logic devices, field programmable gate arrays, optical, chemical, biological, quantum or nanoengineered systems, components and mechanisms may be used. Distributed or networked systems, components and circuits can be used. In another example, communication or transfer (or otherwise moving from one place to another) of data may be wired, wireless, or by any other means.
0382It will also be appreciated that one or more of the elements depicted in the drawings/figures can also be implemented in a more separated or integrated manner, or even removed or rendered as inoperable in certain cases, as is useful in accordance with a particular application. Additionally, any signal arrows in the drawings/figures should be considered only as exemplary, and not limiting, unless otherwise specifically noted.
APPENDIX A
0000<ul id="ul0033" list-style="none"><li id="ul0033-0001" num="0000"><ul id="ul0034" list-style="none"><li id="ul0034-0001" num="0383">Profile Picture</li><li id="ul0034-0002" num="0384">Number of page likes</li><li id="ul0034-0003" num="0385">Number talking about</li><li id="ul0034-0004" num="0386">Number of page wall posts</li><li id="ul0034-0005" num="0387">Most recent wall post with number of likes and comments for that post</li><li id="ul0034-0006" num="0388">Male/female breakdown of people that liked all wall posts</li><li id="ul0034-0007" num="0389">Country breakdown of people that liked all wall posts</li></ul></li></ul>
0000<ul id="ul0035" list-style="none"><li id="ul0035-0001" num="0000"><ul id="ul0036" list-style="none"><li id="ul0036-0001" num="0390">Profile Picture</li><li id="ul0036-0002" num="0391">Number of followers</li><li id="ul0036-0003" num="0392">Number following</li><li id="ul0036-0004" num="0393">Number of tweets</li><li id="ul0036-0005" num="0394">Most recent Tweet from the athlete</li><li id="ul0036-0006" num="0395">Most popular recent Tweet mentioning the athlete</li><li id="ul0036-0007" num="0396">Time series graph of follower and tweet count—cumulative vs. timespan</li></ul></li></ul>
0000<ul id="ul0037" list-style="none"><li id="ul0037-0001" num="0000"><ul id="ul0038" list-style="none"><li id="ul0038-0001" num="0397">Profile Picture</li><li id="ul0038-0002" num="0398">Number of followers</li><li id="ul0038-0003" num="0399">Number following</li><li id="ul0038-0004" num="0400">Number of photos</li><li id="ul0038-0005" num="0401">3 Most recent images from the athlete with number of likes and comments</li><li id="ul0038-0006" num="0402">Time series graph of follower and photo count—cumulative vs. timespan</li></ul></li></ul>
Google Plus
0000<ul id="ul0039" list-style="none"><li id="ul0039-0001" num="0000"><ul id="ul0040" list-style="none"><li id="ul0040-0001" num="0403">Profile Picture</li><li id="ul0040-0002" num="0404">Number of public activities this athlete has posted</li><li id="ul0040-0003" num="0405">Number of plus ones for this athlete's public activities</li><li id="ul0040-0004" num="0406">Number of reshares of this athlete's public activities</li><li id="ul0040-0005" num="0407">Number of replies to this athlete's public activities</li></ul></li></ul>
You Tube
0000<ul id="ul0041" list-style="none"><li id="ul0041-0001" num="0000"><ul id="ul0042" list-style="none"><li id="ul0042-0001" num="0408">Profile Picture</li><li id="ul0042-0002" num="0409">Number of views</li><li id="ul0042-0003" num="0410">Number of subscribers</li><li id="ul0042-0004" num="0411">Number of videos</li><li id="ul0042-0005" num="0412">Most popular video with number of likes, dislikes, and favorites</li><li id="ul0042-0006" num="0413">Time series graph of views and videos—cumulative vs. timespan</li></ul></li></ul>
0000<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0" pgwide="1"><tgroup align="left" colsep="0" rowsep="0" cols="4"><colspec colname="1" colwidth="42pt" align="left" /><colspec colname="2" colwidth="77pt" align="left" /><colspec colname="3" colwidth="91pt" align="left" /><colspec colname="4" colwidth="49pt" align="left" /><thead><row><entry namest="1" nameend="4" rowsep="1">APPENDIX B</entry></row><row><entry namest="1" nameend="4" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>Twitter</entry><entry>twitter:tweets</entry><entry>number of tweets by this</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>entity</entry></row><row><entry /><entry>twitter:mention_rate</entry><entry>number of mentions of this</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>entity's handle by others</entry></row><row><entry /><entry>twitter:reply_rate</entry><entry>number of replies to tweets</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>this athlete authored</entry></row><row><entry /><entry>twitter:followers</entry><entry>number of followers this</entry><entry>Reach</entry></row><row><entry /><entry /><entry>entity has</entry></row><row><entry /><entry>twitter:following</entry><entry>number of users this entity is</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>following</entry></row><row><entry>Facebook</entry><entry>facebook:likes</entry><entry>number of likes for this</entry><entry>Reach</entry></row><row><entry /><entry /><entry>entity's page</entry></row><row><entry /><entry>facebook:talking_about</entry><entry>talking about count for</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>entity's page</entry></row><row><entry /><entry>facebook:posts</entry><entry>number of wall posts on the</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>entity's page</entry></row><row><entry /><entry>facebook:comments</entry><entry>number of comments left on</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>all wall posts on this page</entry></row><row><entry /><entry>facebook:post_likes</entry><entry>number of likes for all wall</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>posts on this page</entry></row><row><entry /><entry>facebook:shares</entry><entry>number of shares for all wall</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>posts on this page</entry></row><row><entry>YouTube</entry><entry>youtube:videos</entry><entry>number of videos this entity</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>has uploaded</entry></row><row><entry /><entry>youtube:views</entry><entry>number of views for this</entry><entry>Reach</entry></row><row><entry /><entry /><entry>entity's uploaded videos</entry></row><row><entry /><entry>youtube:subscribers</entry><entry>number of subscriber's to</entry><entry>Reach</entry></row><row><entry /><entry /><entry>this entity's channels</entry></row><row><entry /><entry>youtube:interactions</entry><entry>number of likes, dislikes,</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>and shares for all videos</entry></row><row><entry>Instagram</entry><entry>instagram:photos</entry><entry>number of photos the entity</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>has uploaded</entry></row><row><entry /><entry>instagram:followers</entry><entry>number of followers this</entry><entry>Reach</entry></row><row><entry /><entry /><entry>entity has</entry></row><row><entry /><entry>instagram:following</entry><entry>number of Instagram users</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>this entity is following</entry></row><row><entry>Google+</entry><entry>google_plus:activities</entry><entry>number of activities by this</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>entity</entry></row><row><entry /><entry>google_plus:plus_ones</entry><entry>number of “+1”s for this</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>entity's activities</entry></row><row><entry /><entry>google_plus:shares</entry><entry>number of shares of this</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>entity's activities</entry></row><row><entry /><entry>google_plus:replies</entry><entry>number of replies to this</entry><entry>Engagement</entry></row><row><entry /><entry /><entry>entity's activities</entry></row><row><entry namest="1" nameend="4" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
Contents7
30 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2017221120A1 | Cited by | United States of America | Search report |
| US2018196807A1 | Cited by | United States of America | Search report |
| US11483332B2 | Cited by | United States of America | Search report |
| US2018091611A1 | Cited by | United States of America | Search report |
| EP3718072A1 | Cited by | European Patent Office (EPO) | Examiner |
| US2014236931A1 | Cited by | United States of America | Pre-grant |
| US12082311B2 | Cited by | United States of America | Applicant |
| US10817960B2 | Cited by | United States of America | Search report |
| US10949459B2 | Cited by | United States of America | Search report |
| US11363679B2 | Cited by | United States of America | Search report |
| US11102314B2 | Cited by | United States of America | Search report |
| US11055796B2 | Cited by | United States of America | Search report |
| US10719566B1 | Cited by | United States of America | Search report |
| US2017221120A1 | Cited by | United States of America | Search report |
| US2018091611A1 | Cited by | United States of America | Search report |
| US10311453B2 | Cited by | United States of America | Applicant |
| US10841257B1 | Cited by | United States of America | Search report |
| US10853863B2 | Cited by | United States of America | Search report |
| US2020082475A1 | Cited by | United States of America | Search report |
| US9762686B2 | Cited by | United States of America | Search report |
12 members in 5 offices; this record represents the family
Priority claims1
| Document | Office | Kind | Date |
|---|---|---|---|
| 201361883801 | United States of America | P |
Members12
| Document | Office | Kind | |
|---|---|---|---|
| CA2925616A1 | Canada | A1 | |
| US2015095108A1 | United States of America | A1 | |
| US2015095137A1 | United States of America | A1 | |
| WO2015048556A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2015048557A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2014324654A1 | Australia | A1 | |
| EP3050286A1 | European Patent Office (EPO) | A1 | |
| EP3050286A4 | European Patent Office (EPO) | A4 | |
| US10049371B2 | United States of America | B2 | |
| US2018330388A1 | United States of America | A1 | |
| US10311453B2 | United States of America | B2 | |
| US2019251579A1 | United States of America | A1 |
89 transactions on the USPTO file
Allowed after 1 non-final rejection, 1 final rejection and 1 RCE.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Maintenance Fee Reminder MailedREM. | REM. | |
| Surcharge for late Payment, Small EntityM2554 | M2554 | |
| Payment of Maintenance Fee, 4th Yr, Small EntityM2551 | M2551 | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Printer Rush- No mailingTCPB | TCPB | |
| Printer Rush- No mailingTCPB | TCPB | |
| Printer Rush- No mailingTCPB | TCPB | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Printer Rush- No mailingTCPB | TCPB | |
| Printer Rush- No mailingTCPB | TCPB | |
| Printer Rush- No mailingTCPB | TCPB | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Response to Reasons for AllowanceREAS | REAS | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Applicant Initiated Interview SummaryMEXIA | MEXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Filing Receipt - CorrectedFLRCPT.C | FLRCPT.C | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Preliminary AmendmentA.PE | A.PE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Application Is Now CompleteCOMP | COMP | |
| Applicant Has Filed a Verified Statement of Small Entity Status in Compliance with 37 CFR 1.27SMAL | SMAL | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Entity status set to undiscounted (initial default setting or status change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYFEPP | FEPP | |
| Fee payment procedureSURCHARGE FOR LATE PAYMENT, SMALL ENTITY (ORIGINAL EVENT CODE: M2554); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYFEPP | FEPP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 20150095108
- Application
- 14498840
Titles
- English
- SYSTEM AND APPARATUS FOR ASSESSING REACH, ENGAGEMENT, CONVERSATION OR OTHER SOCIAL METRICS BASED ON DOMAIN TAILORED EVALUATION OF SOCIAL MEDIA EXPOSURE
Patent term adjustment
- A delay
- +635 daysthe office missed an examination deadline
- B delay
- +285 dayspendency past three years
- Applicant delay
- −72 days
- Net adjustment
- 848 days
Classification
- CPC, 11
- G06Q30/0201
- H04L67/02
- H04L67/306
- H04L67/24
- G06F16/24578
- H04L67/22
- G06Q30/0242
- H04L67/535
- G06Q50/01
- G06Q10/40
- G06F17/3053
- IPC, 4
- G06Q30 02
- G06Q50 00
- G06F17 30
- H04L29 08