The present disclosure generally relates to filtering social media feeds in order to deliver social media messages to digital signage systems.
With the prevalence of social media, many retailers have started using social media as an integral part of their marketing campaigns to reach their customers by using targeted and localized content. While customers are in-store, retailers may also constantly engage customers with digital signage systems. However, when retailers want to deliver the same targeted and localized content from their social media feeds to their in-store digital signage systems, it can be very expensive to produce that targeted content on an ongoing basis.
Furthermore, messages that may have been created and intended for social media platforms may not always be suitable for display by an in-store digital signage system. For example, a message may tell customers to “come to our store”, which is not appropriate to display to customers that are already in the store. Social media may also contain URLs/links or other content that is only relevant when the message is being viewed on a web browser or network-connected device. Some social media messages may be too long to be displayed on a digital signage system while using a suitable font size, and other messages may refer to events that happened in the past.
Therefore, there is a need to intelligently filter out such messages to enable a retailer's existing marketing efforts via social media to be used in-store while avoiding the potentially awkward or nonsensical messages that may negatively affect the retailer's image in order to provide more value from the retailer's existing marketing efforts.
Some embodiments provide a system and method for filtering social media messages for presentation on digital signage systems. Some embodiments provide for receiving account credentials from one or more social media accounts managed by a retailer. Social media content may be retrieved from the various social media accounts managed by the retailer. A filter may then be applied to the retrieved social media content. The filter identifies a set of social media content from the retrieved social media content and will then provide the identified set of social media content in a format compatible with one or more digital signage display devices.
The preceding Summary is intended to serve as a brief introduction to some embodiments of the present disclosure. It is not meant to be an introduction or overview of all inventive subject matter disclosed in this document. The Detailed Description that follows and the Drawings (or “Figures” or “FIGs.”) that are referred to in the Detailed Description will further describe some of the embodiments described in the Summary as well as other embodiments. Accordingly, to understand all the embodiments described by this document, a full review of the Summary, Detailed Description and the Drawings is needed.
The novel features of the disclosure are set forth throughout this specification. However, for purpose of explanation, some embodiments are set forth in the following drawings.
In the following detailed description, numerous details, examples, and embodiments are set forth and described. However, it will be clear and apparent to one skilled in the art that the disclosure is not limited to the embodiments set forth, and that the disclosed embodiments may be practiced without some of the specific details and examples discussed.
Marketing messages distributed via social media and other channels can be repurposed for digital signage solutions, but intelligent filtering of messages is required so that messages that do not contain relevant content, fail to meet the requirements of the digital signage system, and/or systems that may be rendering the message content into alternate media formats (e.g. video) are ignored. Exemplary messages that may be found on local retailer social media feeds (e.g., Facebook, Twitter, Instagram, etc.) may include sale announcements (graphics and/or video presentations), in store promotions, holiday wishes, free training sessions (e.g., tools, crafts, etc.), employee recognition/promotions for that particular retail location, and user/customer comments/feedback/reviews/photographs/videos/etc.
Since many retailers may already be delivering targeted and/or localized content on their social media platforms, some of the same retailer content, as well as user contributed content, may be repurposed for digital signage systems, either using the text of the social media message directly, or rendering the text and accompanying images into a video or graphical file. However, messages that may have been created and intended for social media platforms may not always be suitable for display by an in-store digital signage system. Therefore, a system and method for intelligently and automatically filtering out such messages may enable a retailer's existing marketing efforts via social media to be used in-store while avoiding the potentially awkward or nonsensical messages.
When a new message is found in a retailer's social media feed (e.g., the potential message), it may be evaluated against a set of rules and requirements before it is deemed acceptable and ingested into the digital signage or related content management system.
A first exemplary approach may be to ensure that a set of criteria is met for a potential message to be ingested. One skilled in the art would understand that several different sets of criteria may be used to decide whether a particular message is acceptable, and that the below criteria are exemplary.
A first criteria check/filter may be to see whether the text of the message is greater than or equal to a minimum length (character count), and less than or equal to a maximum length that is acceptable for displaying on the digital signage system. If a case where an image accompanies the text, a different minimum/maximum criteria may be used since the presence of an image may reduce the amount of space available for text when rendering the message into video or other applicable medium.
Another filtering criteria may analyze the message to see if the message contain text that is not acceptable (e.g. profanity, URLs, or a call to action such as “come to our store” or action that is specific to the social media platform, such as “Like us”). This filtering criteria may be implemented as a set of tests using regular expressions.
A filter may also be provided to check whether the date of the message is too far in the past or announcing a future event that is too far in the future. For example, a message regarding an event one day in the past may not be relevant, and a message conveying an event scheduled for more than one week out from the current date may also be too early for display. When filtering by date of an event, the filter may be set to different parameters for past and/or future events, so that all past event may be filtered out, while some future events (e.g., sale events, promotions, customer activities, in-store trainings) are displayed based on event type and how close the date of the future event will take place.
A further filter may check to see whether the message contain characters that cannot be displayed by the digital signage or rendering system (e.g. non-ASCII content, characters that are not available in the fonts used to display the message, or data that was corrupted due to improper character encodings).
The above filters/checks are meant as exemplary checks. In some cases, these and other filters may be easy and inexpensive to perform, but they still may not be sufficient to detect all undesirable messages. For example, messages with time-sensitive content may still be challenging. For example, if a message is related to a holiday (e.g., “Have a Happy and Safe 4th of July”), it would not be suitable to display after the holiday has passed. Simple filtering of holiday names may be too aggressive, since similar messages (e.g., (“Hope you had a happy 4th of July”) may still be suitable to display after the holiday.
To further improve the filtering process, some embodiments may add a more sophisticated analysis of the messages, such as one or more natural language processing/algorithms, to determine if the content refers to a specific event that has yet to happen or an event that has already happened. Additionally, such inferred knowledge could then be used to instruct the digital signage system that a message with time-sensitive content can only be displayed up to a specific date.
Additionally, more sophisticated measures of a message's length could be used, using knowledge of the width of various characters in a variable-width font and word sizes to determine when a message would be too long to fit using the minimum required font size, or appear unbalanced when the text is flowed across multiple lines.
The preceding description illustrates the principles of the present disclosure. Further details, including examples of specific implementation will be provided in reference to
All examples and conditional language recited are intended for informational purposes to aid in understanding the principles of the disclosure and the concepts furthering the art and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herewith represent conceptual views embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, diagrams, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
Turning now to
After all new content is retrieved (at 220), the process 200 may then apply (at 230) a filter to the content to remove irrelevant and potentially awkward or nonsensical messages. This step is further discussed with reference to
The process 200, may then check (at 250) to see if there is another social media platform owned by the retailer. If another social media platform is identified, via retailer input and/or identification for example, then the process (200) will repeat steps 210 to 240.
If all social media platforms have been checked, the process 200 may then prepare (at 260) the identified social media messages in a format suitable for display on the retailer's digital signage system. Such formats may include video format, graphics format, text format, audio format, and/or any combination thereof. Once the media is prepared (at 260), the process 200 may then push (at 270) the new content to the various digital signage displays within the retailer's store.
Next, the process 300 may remove (at 340) content related to future events. Various rules may be implemented to dictate which future events messages to remove and/or when to display such messages. For example, some future events may only be displayed starting from a pre-defined number of days before the event will occur, while other future events may have trigger dates or indications for when to display the event and whether the message should be displayed for a few hours, days, or weeks after the trigger event. Such triggers may include words, dates, phrases or a combination thereof. Furthermore, these triggers may also be pre-defined by the retailer so that certain messages, when phrased in a particular manner will cause the process 300 to identify the message and treat it based on a particular set of defined rules and/or filters.
The process 300, may then remove (at 350) unacceptable messages that may be inappropriate for display in a retail store. Such messages may include URLs/links to other content that customers would be unable to select and view on the retailer's digital signage system, or messages requesting customer to visit the store via social media since the customer would already be present at the retail store while viewing similar messages. Other unacceptable messages may be user comments left on the retailer's social media feed that are complaints, negative in nature, or contain inappropriate language. Moreover, unacceptable content may also include non-ASCII content, characters that are not available in the fonts used to display the message, or data that was corrupted due to improper character encodings.
The process 300 may also remove (at 360) content based on the length of the content. For example, content that is too long or not long enough to properly be displayed on the digital signage. Such determinations may consider several factors based on pre-defined rules set by the retailer or automatically generated by the system of the present disclosure. For example, some content may have too many characters or be too long to retain a customer's attention while shopping in a retail environment. Other messages that may be deemed too short may be combined with graphics during the content preparation process (e.g., as described in
Some embodiments may also allow for a manager of the retail location to review the filtered social media content for final approval before or after the rendering step occurs. This may allow a double check to ensure that the automatic filtering criteria is performing properly and that no unacceptable messages may accidently pass through the filtering process.
One of ordinary skill in the art will recognize that processes 200 and 300 may be performed in various appropriate ways without departing from the scope of the disclosure. For instance, the process may not be performed as one continuous series of operations in some embodiments. In addition, the process may be implemented using several sub-processes (e.g.
In some embodiments, the above-described operations may be implemented as software running on a particular machine such as a server, desktop computer, laptop, or handheld device (e.g. smartphone or tablet), or as software stored in a computer readable medium.
The social media content aggregator 430 may be responsible for connecting to all the various social media platforms managed and owned by a particular retail store. The aggregator 430 may pull all messages and/or media content (e.g., videos, photographs, graphics, etc.) from the retailer's social feeds and store them in storage 460. The social media content aggregator 430 may periodically check all the maintained social media sites at pre-determined intervals or update on the fly to capture new messages that may potentially be useful in marketing or informational purposes within the retail stores.
The content filtering engine 440 will parse through all the messages received by the aggregator to identify all relevant and useful messages and content that may potentially be displayed on the digital signage devices 480 throughout the retailer's store. Exemplary filtering techniques were provided by reference to
Finally, the content rendering engine 450, or alternatively the storage 460, may push the rendered content to the retailer's digital signage devices 480. In some embodiments, the rendered content may be sent to the retailer's digital signage devices 480 via the Internet, while other embodiments may use a local or private local area network to distribute the rendered content to the display devices 480. In some embodiments, the application 490 may send different content to different display devices rather that blanketing all displays with the same content. For example, particular department may receive content relevant to that department while other departments may not receive such content, while other global content that may be relevant to the entire retail store is sent to all digital signage devices 480 throughout the retailer's store.
It should be recognized by one of ordinary skill in the art that any or all of the components of software application 490 may be used in conjunction with the present disclosure. Moreover, one of ordinary skill in the art will appreciate that many other configurations may also be used in conjunction with the present disclosure or components of the present disclosure to achieve the same or similar results.
As shown, the process 500 may define (at 510) sets of instructions for implementing a social media content aggregator (e.g., as described above in reference to
Next, process 500 defines (at 720) sets of instructions for a content filtering engine. Process 500 then defines (at 530) sets of instructions for a content rendering engine. Finally, the process writes (at 540) the sets of instructions to a storage medium such as, but not limited to, a non-volatile storage medium.
One of ordinary skill in the art will recognize that the various sets of instructions defined by process 500 are not exhaustive of the sets of instructions that could be defined and stored on a computer readable storage medium for a social media filtering application incorporating some embodiments of the disclosure. In addition, the process 500 is an exemplary process, and the actual implementations may vary. For example, different embodiments may define the various sets of instructions in a different order, may define several sets of instructions in one operation, may decompose the definition of a single set of instructions into multiple operations, etc. In addition, the process 500 may be implemented as several sub-processes or combined with other operations within a macro-process.
Many of the processes and modules described above may be implemented as software processes that are specified as at least one set of instructions recorded on a non-transitory storage medium. When these instructions are executed by one or more computational elements (e.g., microprocessors, microcontrollers, Digital Signal Processors (“DSPs”), Application-Specific ICs (“ASICs”), Field Programmable Gate Arrays (“FPGAs”), etc.) the instructions cause the computational element(s) to perform actions specified in the instructions.
Computer system 600 may be implemented using various appropriate devices. For instance, the computer system may be implemented using one or more personal computers (“PC”), servers, mobile devices (e.g., a Smartphone), tablet devices, and/or any other appropriate devices. The various devices may work alone (e.g., the computer system may be implemented as a single PC) or in conjunction (e.g., some components of the computer system may be provided by a mobile device while other components are provided by a tablet device).
Computer system 600 may include a bus 610, at least one processing element 620, a system memory 630, a read-only memory (“ROM”) 640, other components (e.g., a graphics processing unit) 650, input devices 660, output devices 670, permanent storage devices 680, and/or a network connection 690. The components of computer system 600 may be electronic devices that automatically perform operations based on digital and/or analog input signals.
Bus 610 may represent all communication pathways among the elements of computer system 600. Such pathways may include wired, wireless, optical, and/or other appropriate communication pathways. For example, input devices 660 and/or output devices 670 may be coupled to the system 600 using a wireless connection protocol or system. The processor 620 may, in order to execute the processes of some embodiments, retrieve instructions to execute and data to process from components such as system memory 630, ROM 640, and permanent storage device 680. Such instructions and data may be passed over bus 610.
ROM 640 may store static data and instructions that may be used by processor 620 and/or other elements of the computer system. Permanent storage device 680 may be a read-and-write memory device. This device may be a non-volatile memory unit that stores instructions and data even when computer system 600 is off or unpowered. Permanent storage device 680 may include a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive).
Computer system 600 may use a removable storage device and/or a destination storage device as the permanent storage device. System memory 630 may be a volatile read-and-write memory, such as a random access memory (“RAM”). The system memory may store some of the instructions and data that the processor uses at runtime. The sets of instructions and/or data used to implement some embodiments may be stored in the system memory 630, the permanent storage device 680, and/or the read-only memory 640. For example, the various memory units may include instructions for authenticating a client-side application at the server-side application in accordance with some embodiments. Other components 650 may perform various other functions. These functions may include interfacing with various communication devices, systems, and/or protocols.
Input devices 660 may enable a user to communicate information to the computer system and/or manipulate various operations of the system. The input devices may include keyboards, cursor control devices, audio input devices and/or video input devices. Output devices 670 may include printers, displays, and/or audio devices. Some or all of the input and/or output devices may be wirelessly or optically connected to the computer system.
Finally, as shown in
As used in this specification and any claims of this application, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic devices. These terms exclude people or groups of people. As used in this specification and any claims of this application, the term “non-transitory storage medium” is entirely restricted to tangible, physical objects that store information in a form that is readable by electronic devices. These terms exclude any wireless or other ephemeral signals.
It should be recognized by one of ordinary skill in the art that any or all of the components of computer system 600 may be used in conjunction with the disclosed embodiments. Moreover, one of ordinary skill in the art will appreciate that many other system configurations may also be used in conjunction with the disclosed embodiments or components of the embodiments.
Moreover, while the examples shown may illustrate many individual modules as separate elements, one of ordinary skill in the art would recognize that these modules may be combined into a single functional block or element. One of ordinary skill in the art would also recognize that a single module may be divided into multiple modules.
While the disclosure has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the disclosure can be embodied in other specific forms without departing from the scope of the disclosure. For example, several embodiments were described above by reference to particular features and/or components. However, one of ordinary skill in the art will realize that other embodiments might be implemented with other types of features and components, and that the disclosure is not to be limited by the foregoing illustrative details.