Distributing content via content publishing platforms

Content provider systems publish content via content publishing platforms. An online system is associated with multiple content publishing platforms. Each content publishing platform is associated with policies that determine whether a content item is acceptable for publishing via the content publishing platform. For example, the policy may specify dimensions of a media object of the content item, keywords that are unacceptable for publishing via the content publishing platform, and so on. The online system receives requests from content provider systems to publish content via a particular content publishing platform. The online system determines whether the content item is suitable for publishing via one or more other content publishing platforms. The online system determines whether the content provider system approves publishing content via any of the identified content publishing platforms. The online system may deliver the content item to all content publishing platforms approved by the content provider system.

BACKGROUND

This disclosure relates generally to distribution of content via content publishing platforms, and in particular, to distributing content via multiple content publishing platforms associated with an online system.

Content providers publish content via content publishing platforms. Different content publishing platforms offer different types of information and different features. Various users access the content publishing systems for the features offered by the content publishing systems and the content published by the content publishing systems. For example, a particular content publishing platform may allow users to interact with each other in relation to a published content. Another content publishing platform may allow users to share content published via the platform. The set of users that access a particular content sharing platform may be different from the set of users that access another content publishing platform.

Content providers may not be aware of the various content publishing systems that they can avail of while publishing their content. Accordingly, the users that they reach are often limited to the set of users of a specific content publishing platform that they chose. Content publishers would like to increase the number of users to which they provide their content.

SUMMARY

An online system is associated with a plurality of content publishing platforms. Each content publishing platform is associated with policies that determine whether a given content item qualifies for publication by the content publishing platform. For example, a content publishing platform may have a policy that specifies constraints on dimensions of media objects of a content item. Accordingly, a content item can be published by the content publishing platform if any media objects of the content item satisfy the constraints specified by the policy. The online system receives a content item from a content provider system for publishing in a content publishing platform. The online system identifies other content publishing platforms for which the content item qualifies for publication and recommends these additional content publishing platforms to the content provider system. The online system delivers the content item for publishing by the additional content publishing platforms if the online system receives an approval from the content provider systems. Therefore, embodiments allow distribution of a content item to a larger target audience than originally requested by the content provider system.

In an embodiment, the online system stores rules implementing the policies associated with content publishing platforms. For example, a rule associated with a policy may represent an expression based on attributes of a content item such that if the rule evaluates to true, the content item complies with the policy and if the rule evaluates to false, the content item does not comply with the policy. The online system executes the rules associated with a content publishing platform to determine whether the content item complies with the policies of the content publishing platform.

If the online system determines that a content item complies with the rules associated with a given content publishing platform, the online system sends a recommendation to the content provider system identifying the content publishing platform for publishing the content item in addition to the content publishing platform originally requested by the content provider system.

In an embodiment, if the online system determines that, if the content does not comply with the rules associated with a given platform, the online system determines if the content item can be modified to conform to the policies of the content publishing platform. If the online system determines that certain modifications to the content item cause the content item to comply with the policies of the content publishing platform, the online system recommends these modifications to the content publishing platform. The online system may receive a modified content item from the content provider system such that the modified content item incorporates the recommended modifications or the online system makes the suggested modifications if approved by the content provider system. The online system delivers the content item via the content publishing platforms approved by the content provider system.

DETAILED DESCRIPTION

System Environment

FIG. 1is a block diagram of a system environment in which an online system operates, in accordance with an embodiment of the disclosure. The system environment101shown byFIG. 1includes a content provider system105, an online system100, a set of content publishing platforms (150a,150band150c), and a set of client devices (130a,130band130c). In alternative configurations, different and/or additional components may be included in the system environment101.

The online system100is associated with a plurality of content publishing platforms150. The online system100receives content from the content provider system105for publishing via one or more content publishing platforms150. The content provider system105typically identifies a particular content publishing platform150for publishing a content item. The online system100determines whether the given content item can be published via one or more other content publishing platforms150that were not identified by the content provider system105. The online system100determines that a content item can be published via a content publishing platform150if the content item conforms to a set of policies associated with the content publishing platform150. For example, the policies may specify attributes or properties of the video, audio, text, or images of the content item that should be satisfied by the content item to qualify for publishing by the content publishing platform150.

If the online system100determines that the given content item qualifies for publication by one or more other content publishing platforms150, the online system100interacts with the content provider system105to determine whether the content item can be published via the one or more other content publishing platforms150in addition to the content publishing platform150originally identified by the content provider system105. If the online system100receives an approval from the content provider system105, the online system100delivers the content item to the content publishing platform150originally identified by the content provider system105as well as any content publishing platforms150approved by the content provider system105in addition.

The content provider system105receives content from content providers103. The content providers103may be client devices of users that include amateurs or professional users that generate content. Content received from content providers103includes text, video, audio, images, and the like. The content provider system105stores the received content items in the content store110. The content store110stores the content item as well as metadata associated with the content item. The metadata associated with the content item includes information identifying the content provider103that provided the content item, time at which the content item was received or updated, any special instructions or comments associated with the content item, and so on.

The content provider system105includes an administration module120that allows a user, for example, system administrator to interact with the content provider system. A system administrator of the content provider system105identifies a particular content publishing platform associated with the online system in connection with a given content item. The content provider system105provides instructions to the online system100to publish the content item via the selected content publishing system130.

The online system100offers various features to the users of the online system100. Users of the online system may create user accounts that are stored by the online system. In an embodiment, the online system100is a social networking system that allows users to establish connections with other users. The online system100allows users to interact with their connections or other users. The online system100provides information describing other users connected to a user to the user, for example, as news feed.

The online system100is associated with one or more content publishing platforms150. The online system100may be associated with multiple content publishing platforms150for various reasons. For example, each content publishing platform150may be developed separately to offer certain features and the online system100may interact with the content publishing platforms150to provide users of the online system100with access to features of the content publishing platforms150. Alternatively, one or more content publishing platforms150may be associated with different vendors and the online system may be associated with the one or more content publishing platforms150as a result of an agreement, for example, a business agreement between parties managing the online system and vendors of the one or more content publishing platforms150. Alternatively, the content publishing platforms may have been developed as part of the online system100and then separated as independent platforms with which the online system100continues to interact. In an embodiment, a content publishing platform150is a part of the online system, for example, a sub-system of the online system100. The online system100may be associated with multiple content publishing platforms150for a combination of reasons, for example, for several or all reasons listed above.

A content publishing platform150publishes content received from content providers. In an embodiment, a content publishing platform150allows the online system100to publish content. The content publishing platform1550includes code or instructions for receiving content, storing content, and for distributing content to users. The content publishing platform150may include servers, for example web servers that host the content for access by users.

As an example, the content publishing platform may represent a media sharing platform (e.g. INSTAGRAM), wherein the user uses the client device180to share media objects and to view media objects shared by other users of the content publishing platform150. Alternatively, the content publishing platform150may be part of the online system100that distributes content published by other users as well as content received from content provider systems. In an embodiment, the online system100is a social networking system. A portion of the social networking system acts as a content publishing platform by distributing content as news feed items to users of the social networking system.

Users associated with the online system100receive content published by the content provider system105via client devices130. The content published via a content publishing platform150may be content received from users of the online system100or from content provider systems105. For example, a user may upload a video and share with other users via a content publishing platform150. The online system100may also provide content received from a content provider system105to users of the online system. The online system100may receive compensation from the content provider systems105for distributing their content via the content publishing platforms150. Accordingly, the content distributed by the online system via the content publishing platforms can be promotional content or sponsored content.

The online system100, receives the content from content provider systems105, and analyzes the content to verify if the content complies with the rules corresponding to various policies associated with various content publishing platforms150. The online system100, is further described with reference toFIG. 2. In an embodiment, the online system100stores rules corresponding to various policies, and executes the rules. The online system100uses the result of execution of the rules to determine the compliance with the policies of a content publishing platform.

The client devices130are one or more computing devices capable of receiving user input as well as transmitting and/or receiving data via the network not shown inFIG. 1. In one embodiment, a client device180is a conventional computer system, such as a desktop or laptop computer. Alternatively, a client device180may be a device having computer functionality, such as a personal digital assistant (PDA), a mobile telephone, a smartphone or another suitable device. A client device180is configured to communicate via the network. In one embodiment, a client device180executes a client application allowing a user of the client device180to interact with platform A150. Content publishing platforms may receive content from users for publishing, for example, comments, videos, images, etc. published by users. In addition to content received from users, the content publishing platforms150publish content received from the content provider system105.

The user uses the client device180to view content items published by the content publishing platform150received from the content provider system105. The client device180executes a browser application to enable interaction between the client device180and the content publishing platforms150via the network. In another embodiment, a client device180interacts with content publishing platforms150through an application programming interface (API) running on a native operating system of the client device180, such as IOS® or ANDROID™.

System Architecture

FIG. 2is an overview of architecture of an online system, in accordance with an embodiment of the disclosure. The online system100shown inFIG. 2includes a content store220, a recommendation module230, a platform metadata store260, a content analyzer240, a platform rules store270, and a rule engine290. In other embodiments, the online system100may include additional, fewer, or different components for various applications.

The content analyzer240receives content items from content provider systems105for publishing via a particular content publishing system150. The content analyzer240stores the received content item in the content store220. The content analyzer240also determines metadata describing the content item and stores the metadata in the content store220. The content analyzer240determines whether the received content item is suitable for publishing via one or more other content publishing systems150, in addition to the content publishing system150specified by the content provider system105. The content analyzer240sends a recommendation to the content provider system105identifying the one or more other content publishing systems150to determine if the content provider system105approves publishing the content item in any additional content publishing system150. The content analyzer240comprises a machine-learning system that generates models for scoring the content items received from content provider systems105.

The content store220stores data and metadata describing content items received from content provider systems105. Examples of components of a content stored in the content store220include, title, body, image, and landing page of the content. The content analyzer240identifies different components of content and stores them in the content store220. The content analyzer240analyzes the components of a content item to determine metadata describing the content. For example, the content analyzer240may identify an image in the content, and identify various tags of the image, dimensions of the image, and may perform object recognition on the image to determine if the image contains objectionable content.

The content store220stores information identifying a content provider system105that provided the content item and one or more users associated with the content provider system105, for example, administrators or representatives of the content provider system105. The information identifying users (or administrators) associated with a content provider system105is used by the content analyzer240to send recommendations of content publishing platforms for a content item received from the content provider system105to the users associated with the content provider system105.

In another example, if the content item includes text, content analyzer240analyzes the text to determine attributes of the text and stores the attributes as metadata in the content store220. The content analyzer240extracts keywords from the text associated with the content item and determines whether the keywords satisfy certain criteria. For example, the content analyzer240determines whether the text includes profanity by matching keywords extracted from the text against a set of keywords predetermined to be profane. In an embodiment, the content analyzer240converts audio information from a content item into text by transcribing the audio and stores the text and metadata describing the text in the content store220in association with the content item.

In an embodiment, the content store220is implemented as a relational database that stores tables representing relations between various entities represented in the database. The content store220stores a table representing metadata as name value pairs. A set of name value pairs is associated with a content item. The content item is associated with an identifier that uniquely identifies the content item. Accordingly, the name value pairs representing metadata for a content item are associated with the identifier of the content item. The online system100may retrieve all name value pairs representing metadata for a content item and store them in cache that allows efficient access of the information. The data stored in the cache is available for access by various modules of the online system100.

The platform metadata store260stores the information describing different content publishing platforms associated with the online system100. The platform metadata store260stores a unique platform identifier for each content publishing platform150. The platform metadata store260store information identifying one or more users or administrators associated with the content publishing platform150.

The platform metadata store260stores information used for establishing a connection with the content publishing platform150for delivering content via the content publishing platform. The information may include at least authentication information, a URL for accessing the content publishing platform, and so on. For example, the authentication information can represent the login details such as a passcode and any other information used for creating a connection with the content publishing platform.

In an embodiment, the platform metadata store260stores dictionaries comprising keywords associated with the content publishing platforms150. The dictionary stores keywords that represent acceptable or unacceptable terms for the content published via the content publishing platform. For example, a dictionary may store keywords that represent terms that are classified as unacceptable terms for the content published via a content publishing platform150. The content analyzer240uses the dictionary to determine whether a content item includes terms or keywords that are unacceptable for publishing via a content publishing platform150, for example, terms or keywords that include profanity.

The platform rules store270stores the rules defined by the online system100for determining whether various content items are compatible with certain content publishing platforms150. The rules defined by the online system100represent policies of each content publishing platform. For example, a rule may determine whether the text of a content item includes profanity. A rule may determine whether dimensions of an image included in a content item exceed certain threshold values.

In an embodiment, the platform rules store270is implemented as a relational database that maps identifiers of content publishing platforms to rules implementing policies of the content publishing platforms. In an embodiment, the online system100represents rules as expressions representing conditions based on attributes describing the content item. For example, if the conditions corresponding to a rule evaluate to true for a content item, the content item is validated with respect to that rule and accordingly complies with the policy associated with the rule. If a content item is validated with respect to all the rules for a content publishing platform, the content analyzer240determines that the content item is suitable for publishing via the content publishing platform. A rule is associated with a policy and may be shared across a plurality of content publishing platforms that implement the corresponding policy.

A platform rules store270may represent a rule using a particular syntax of a language that allows representation of expressions. The language may be a proprietary language or a commonly used programming language. In an embodiment, the platform rules store270stores rules using a markup language, for example, the extensible markup language (XML).

The rule engine290receives a content item and executes rules corresponding to various content publishing platforms150. The rule engine290retrieves a set of rules for a particular content publishing platform. The rule engine290executes all the rules of the content publishing platform for the given content item. The rule engine290parses each rule to build a data structure representing a rule. In an embodiment, the rule engine290builds a parse tree representation of a rule and generates an in-memory data structure representing the rule based on the parse tree representation. The in-memory data structure allows the rule engine290to access the various parts of the rule and to execute the rule. The rule engine provides the results of execution of the rules to the content analyzer240.

In an embodiment, the content analyzer240determines if specific components do not satisfy one or more policies of a content publishing platform150and sends suggestions for modifying the content items to comply with the policies of the content publishing platform150. For example, the content analyzer240may identify keywords that are considered offensive based on comparison with terms stored in a dictionary of terms considered offensive by a particular content publishing platform150. The content analyzer240sends a list of the identified terms to an administrator of the content provider103. The online system100may receive a revised content item which has been modified to comply with the policies of the content publishing system150. The online system100delivers the revised content item for publication by the content publishing system150.

In an embodiment, the content analyzer240identifies the components that cause a content item to fail to comply with certain policies of a content publishing system and modifies the components to comply with the policies. For example, the content rule engine290may determine that an image exceeds certain threshold values specified by a content publishing platform150. The content analyzer240modifies the image to change the dimensions, for example, by reducing the size of the image. Alternatively, if a rule requires the image to be a particular shape, the content analyzer240crops the image to match the shape specified by the rule. As another example, if the text contains keywords that are unacceptable to the content publishing platform, the content analyzer240may modify the text or the corresponding audio to mask the offending keywords with redacted text or beeping audio sounds respectively.

The online system100may send the modified content item to an administrator of the content provider103for approval. The online system100sends the modified content item to the content publishing platform150for publication if the administrator approves the publication of the content item.

Validation of Rule Check

FIG. 3shows an example set of rules stored in the platform rule store for a set of content publishing platforms, in accordance with an embodiment of the disclosure. The number of content publishing platforms associated with an online system may be more or fewer than those illustrated inFIG. 3. Furthermore, the number of rules associated with each content publishing platform150may be more or fewer than those illustrated inFIG. 3.

As shown inFIG. 3, content publishing platform150amaps to a set S1of policies implemented as rules R1and R3stored in the platform rules store270. Similarly, content publishing platform150bmaps to a set S2of policies implemented as rules R1and R2stored in the platform rules store270and content publishing platform150cmaps to a set S3of policies implemented as rule R3stored in the platform rules store270. As shown inFIG. 3, various content publishing platforms may have overlapping policies as indicated by the rules shared across the content publishing platforms. For example, rule R1is common across content publishing platforms150aand150band rule R3is common across content publishing platforms150aand150c.

As an example, assume that the online system100receives a request to publish a content item via content publishing platform150cwhich maps to a set S3of rules with only rule R3matching with the content. However, the online system100may determine that same content also matches with the set of rules S1which comprises rules R1and R3. The online system100sends a recommendation to the content provider system105, suggesting the content provider system105to publish the content item via content publishing platform A.

Hierarchy of Rules

In an embodiment, the platform rules store270stores the rules as a hierarchy. The online system100identifies sets of rules that are common across sets of content publishing platforms150and represents the common set of rules as a separate set. A content publishing platform150may have rules in addition to the common set of rules.

FIG. 4is an illustration of a hierarchy of policies of a plurality of content publishing platforms, in accordance with an embodiment of the disclosure. As shown inFIG. 4, the platform rules store270organizes the rules as a hierarchy. Accordingly, the rules comprise a common set of rules that apply across all content publishing platforms and sets of rules that are specific to individual platforms. In an embodiment, the hierarchy has multiple levels in which intermediate levels comprise sets of rules shared by a subset of platforms.

In one example ofFIG. 4, the online system100follows a two-level hierarchy of rules with rules that are common to all the platforms placed at a higher level (indicated as level A) and rules that are specific to a given platform are placed at the lower level (indicated as level B). Level A405represent the top of the hierarchy with the common rules410representing rules applicable to all the content publishing platforms420.

In an embodiment, the online system100execute rules from the set of common rules410in level A and then executes the rule with platform-specific rules in level B. The online system100may execute the rules from the platform specific rules in parallel (or concurrently). This allows the online system100to determine early if the content item does not comply with one or more content publishing platforms, for example, as a result of a failure of the content item to comply with a rule that is common across a subset of content publishing platforms.

Identifying Content Publishing Platforms for a Content Item

FIG. 5is a flowchart showing the overall process of identifying additional content publishing platforms for a content item received by the online system, in accordance with an embodiment of the disclosure.

The online system100receives510a request from a content provider system105to publish a content item. The request received510by the online system100includes information identifying a target content publishing platform for publishing the content item.

The online system100determines whether the content item complies with the policies of various content publishing platforms150associated with the online system100. The content analyzer240determines whether the content item complies with all policies of a content publishing platform150based on the execution of the rules. In an embodiment, content analyzer240first executes530the common rules410received from the platform rules store270and subsequently executes platform specific rules for each content publishing platform150. The content analyzer240may execute the rules of the various content publishing platforms150in any other order, for example, by executing all the rules of a content publishing platform150before starting execution of the rules of another content publishing platform150. If the content analyzer240uses the results of execution of each rule to determine whether the content item complies with a policy associated the content publishing platform150. For example, if the content analyzer240executes a rule and determines that a rule evaluates to false, the content analyzer240stores an indication that a policy defined by the rule is violated by the content item.

The common rules410are applicable to a plurality of content publishing platforms150. For example, the common rules may be applicable to all content publishing platforms150or to a subset of content publishing platforms150. If the content analyzer240determines that a content rule evaluates to false, the content analyzer240determines that the policy corresponding to the rule is violated for all content publishing platforms implementing that policy.

The online system100repeats the steps540,550,560, and570for each content publishing platform150. The online system100selects540a content publishing platform and retrieves metadata describing the selected content publishing platform from the platform metadata store260. The rule engine290identifies550a set of rules associated with the selected content publishing platform. These rules are platform specific rules420, i.e., rules associated with the selected content publishing platform150that are in addition to any common rules previously executed530. The rule engine290executes560rules of the identified set of rules for the content item. The content analyzer240uses the results of execution of the set of rules to determine570if the content item complies with the policies of the selected content publishing platform. For example, the content analyzer240may use the results of execution of one or more rules associated with the selected content publishing platform to determine that one or more policies of the content publishing platform are violated, for example, if the rules evaluate to a false result.

If the content item complies with the rules and policies of one or more additional content publishing platform150(in addition to the content publishing platform identified by the content provider system), the content analyzer240sends580a recommendation to the content provider system105that provided the content item, indicating that the content item qualifies for publication in these one or more additional content publishing platform150.

If the content does not comply with the rules in a given platform, the online system100determines if certain modifications can be made to the content item that would result in compliance of the violated rules or policies of the content publishing platform. The content analyzer240sends590recommendations of these modifications to the content item content to the content provider system.

In an embodiment, the online system100receives a modified content item from the content provider system105. The online system100executes the process illustrated in theFIG. 5to determine whether the modified content item received complies with the various content publishing platforms. In some embodiments, the online system100makes the required modifications to the content item to ensure that the content item complies with the policies violated and sends the modified content item to the content provider system105for approval. If the online system100receives an approval for the modifications, the online system proceeds with delivery of the modified content item. The online system100delivers595the content item via the content publishing systems150that are approved by the content provider system105.

Alternative Embodiments